The previous design of how params handled being set programmatically and from input fields mostly worked, but was rather convoluted, and limited the precision of the stored value to the display precision, which is very silly.
The back-end way params work and the associated signalling has thus been reworked, and new tests were introduced to test for correctness of the new behaviour.
See https://github.com/jdranczewski/puzzlepiece/commit/af352443ceb9f10afc556b706d7af7e4d208b597 for the exact changes, but most of the behaviour should be unchanged. Most notably:
- params no longer have limited precision, should go as precise as float allows
- the `changed` Signal is now emitted every time `set_value` is called, even if the value didn't necessarily change
- if implementing custom params, `_input_set_value` should block any Signals emitted by changing the input using this method. This can be achieved using `self.input.blockSignals(True)` and `self.input.blockSignals(False)`
v0.2.0-bumped
This update introduces an official way to handle threaded jobs to the library with `Workers` and `LiveWorkers`! For implementation details see https://puzzlepiece.readthedocs.io/en/latest/puzzlepiece.threads.html and for an example of how to use the new `PuzzleTimer` and the `returned` Signal, see https://github.com/jdranczewski/puzzlepiece/blob/v0.2.0/puzzlepiece/pieces/plotter.py
Some convenience functions were also added to the `Puzzle` object, see https://github.com/jdranczewski/puzzlepiece/commit/7319dbdbf521be4e3eadaae20dd253e23856c731