This release is mostly focused on internal refactoring, but has some nice polishing and a few bug fixes.
New features:
- Much more sensible reprs for strategies, especially ones that come from hypothesis.strategies. These should now have as reprs python code that would produce the same strategy.
- lists() accepts a unique_by argument which forces the generated lists to be only contain elements unique according to some function key (which must return a hashable value).
- Better error messages from flaky tests to help you debug things.
Mostly invisible implementation details that may result in finding new bugs in your code:
- Sets and dictionary generation should now produce a better range of results.
- floats with bounds now focus more on ‘critical values’, trying to produce values at edge cases.
- flatmap should now have better simplification for complicated cases, as well as generally being (I hope) more reliable.
Bug fixes:
- You could not previously use assume() if you were using the forking executor (because the relevant exception wasn’t pickleable).