🚀 This release changes how the shrinker represents its progress
✅ internally. For large generated test cases this should result in
significantly less memory usage and possibly faster shrinking. Small
✅ generated test cases may be slightly slower to shrink but this
shouldn't be very noticeable.
🚀 This release makes "arrays()" more pedantic about "elements"
strategies that cannot be exactly represented as array elements.
👀 In practice, you will see new warnings if you were using a "float16"
or "float32" dtype without passing "floats()" the "width=16" or
"width=32" arguments respectively.
The previous behaviour could lead to silent truncation, and thus some
elements being equal to an explicitly excluded bound (issue #1899).
👍 This patch changes an internal use of MD5 to SHA hashes, to better
👌 support users subject to FIPS-140. There is no user-visible or API
Thanks to Alex Gaynor for this patch.
🚀 This release simplifies the logic of the "print_blob" setting by
🖨 removing the option to set it to "PrintSettings.INFER". As a result
🖨 the "print_blob" setting now takes a single boolean value, and the use
🗄 of "PrintSettings" is deprecated.
📄 This patch improves the docstrings of several Hypothesis strategies,
by clarifying markup and adding cross-references. There is no runtime
Thanks to Elizabeth Williams and Serah Njambi Rono for their
🖨 contributions at the SciPy 2019 sprints!
This patch improves the behaviour of the "text()" strategy when passed
an "alphabet" which is not a strategy. The value is now interpreted
as "whitelist_characters" to "characters()" instead of a sequence for
"sampled_from()", which standardises the distribution of examples and
the shrinking behaviour.
You can get the previous behaviour by using
🚀 This release deprecates "find()". The ".example()" method is a better
replacement if you want an example, and for the rare occasions where
you want the minimal example you can get it from "@given".
"@given" has steadily outstripped "find()" in both features and
🐎 performance over recent years, and as we do not have the resources to
✅ maintain and test both we think it is better to focus on just one.
🚀 This release refactors the implementation of the ".example()" method,
to more accurately represent the data which will be generated by
As a result, calling "s.example()" on an empty strategy "s" (such as
"nothing()") now raises "Unsatisfiable" instead of the old
👻 "NoExamples" exception.
This patch ensures that the Pandas extra will keep working when Python
🚚 3.8 removes abstract base classes from the top-level "collections"
⚠ namespace. This also fixes the relevant warning in Python 3.7, but
there is no other difference in behaviour and you do not need to do