Subject: CVS commit: pkgsrc/devel/py-hypothesis
From: Adam Ciarcinski
Date: 2019-12-15 12:28:53
Message id:

Log Message:
py-hypothesis: updated to 4.53.3

This patch fixes :func:`~hypothesis.strategies.from_type` with \ 
:class:`python:typing.Hashable` and :class:`python:typing.Sized`, which \ 
previously failed with an internal error on Python 3.7 or later.

This release reorganises a number of the Hypothesis internal modules into a \ 
package structure. If you are only depending on the public API it should have no \ 
effect. If you are depending on the internal API (which you shouldn't be, and \ 
which we don't guarantee compatibility on) you may have to rename some imports.

This release changes the size distribution of the number of steps run in \ 
stateful testing: It will now almost always run the maximum number of steps \ 

:ref:`statistics` now include the best score seen for each label, which can help \ 
avoid the threshold problem when the minimal example shrinks right down to the \ 
threshold of failure (:issue:`2180`).

This release changes the stateful_step_count setting to raise an error if set to \ 
0. This is a backwards compatible change because a value of 0 would never have \ 
worked and attempting to run it would have resulted in an internal assertion \ 

This release makes a small internal change to the distribution of test cases. It \ 
is unlikely to have much user visible impact.

This release deprecates use of :func:`@example <hypothesis.example>`, \ 
:func:`@seed <hypothesis.seed>`, or :func:`@reproduce_failure \ 
<hypothesis.reproduce_failure>` without :func:`@given \ 

This patch makes certain uses of Bundles more efficient in stateful testing \ 

This release refactors some of Hypothesis's internal interfaces for representing \ 
data generation. It should have no user visible effect.

This patch removes some old debugging helpers in our Numpy extra which have not \ 
been needed since :issue:`1963` and :issue:`2245`.

This patch fixes :issue:`2229`, where Numpy arrays of unsized strings would only \ 
ever have strings of size one due to an interaction between our generation logic \ 
and Numpy's allocation strategy.

This patch fixes a rare internal error in strategies for a list of unique items \ 
sampled from a short non-unique sequence (:issue:`2247`). The bug was discovered \ 
via :pypi:`hypothesis-jsonschema`.

This release improves the error message when :func:`@settings \ 
<hypothesis.settings>` tries to inherit settings from a parent argument \ 
that isn't a settings instance.

This release improves Hypothesis's "Falsifying example" output, by \ 
breaking output across multiple lines where necessary, and by removing \ 
irrelevant information from the stateful testing output.

This patch adds :pypi:`flake8-comprehensions` to our linter suite. There is no \ 
user-visible change - expect perhaps via some strange microbenchmarks - but \ 
certain parts of the code now have a clear and more consistent style.

This release fixes some cases where we might previously have failed to run the \ 
validation logic for some strategies. As a result tests which would previously \ 
have been silently testing significantly less than they should may now start to \ 
raise InvalidArgument now that these errors are caught.

This release significantly improves the data distribution in :doc:`rule based \ 
stateful testing <stateful>`, by using a technique called Swarm Testing \ 
(Groce, Alex, et al. "Swarm testing." Proceedings of the 2012 \ 
International Symposium on Software Testing and Analysis. ACM, 2012.) to select \ 
which rules are run in any given test case. This should allow it to find many \ 
issues that it would previously have missed.

This change is likely to be especially beneficial for stateful tests with large \ 
numbers of rules.

This release adds some heuristics to test case generation that try to ensure \ 
that test cases generated early on will be relatively small.

This fixes a bug introduced in :ref:`Hypothesis 4.42.0 <v4.42.0>` which \ 
would cause occasional :obj:`~hypothesis.HealthCheck.too_slow` failures on some \ 

This release revokes the deprecation of find, as we've now rebuilt it on top of \ 
@given, which means it has minimal maintenance burden and we're happy to support \ 

This release rebuilds find() on top of @given in order to have more code in \ 
common. It should have minimal user visible effect.

This patch removes an internal compatibility shim that we no longer need.

This patch fixes several typos in our docstrings and comments, with no change in \ 

This release fixes an internal issue where Hypothesis would sometimes generate \ 
test cases that were above its intended maximum size. This would only have \ 
happened rarely and probably would not have caused major problems when it did.

Users of the new :ref:`targeted property-based testing <targeted-search>` \ 
might see minor impact (possibly slightly faster tests and slightly worse target \ 
scores), but only in the unlikely event that they were hitting this problem. \ 
Other users should not see any effect at all.

This release removes some unused code from the core engine. There is no \ 
user-visible change.

This release commonizes some code between running explicit examples and normal \ 
test execution. The main user visible impact of this is that deadlines are now \ 
enforced when running explicit examples.

This patch ensures that a KeyboardInterrupt received during example generation \ 
is not treated as a mystery test failure but instead propagates to the top \ 
level, not recording the interrupted generation in the conjecture data tree.

This release changes the behaviour of :func:`~hypothesis.strategies.floats` when \ 
excluding signed zeros - floats(max_value=0.0, exclude_max=True) can no longer \ 
generate -0.0 nor the much rarer floats(min_value=-0.0, exclude_min=True) \ 
generate +0.0.

The correct interaction between signed zeros and exclusive endpoints was \ 
unclear; we now enforce the invariant that :func:`~hypothesis.strategies.floats` \ 
will never generate a value equal to an excluded endpoint (:issue:`2201`).

If you prefer the old behaviour, you can pass floats(max_value=-0.0) or \ 
floats(min_value=0.0) which is exactly equivalent and has not changed. If you \ 
had two endpoints equal to zero, we recommend clarifying your tests by using \ 
:func:`~hypothesis.strategies.just` or \ 
:func:`~hypothesis.strategies.sampled_from` instead of \ 

This patch improves the error message when invalid arguments are passed to \ 
:func:`~hypothesis.stateful.rule` or :func:`~hypothesis.stateful.invariant` \ 

This release supports :obj:`python:typing.Final` and \ 
:obj:`python:typing.TypedDict` in :func:`~hypothesis.strategies.from_type`.

This patch disables our :pypi:`pytest` plugin when running on versions of \ 
:pypi:`pytest` before 4.3, the oldest our plugin supports. Note that at time of \ 
writing the Pytest developers only support 4.6 and later!

Hypothesis tests using :func:`@given() <hypothesis.given>` work on any \ 
test runner, but our integrations to e.g. avoid example database collisions when \ 
combined with @pytest.mark.parametrize eventually drop support for obsolete \ 

This patch adds some internal comments and clarifications to the Hypothesis \ 
implementation. There is no user-visible change.

This patch avoids importing test runners such as :pypi:`pytest`, \ 
:pypi:`unittest2`, or :pypi:`nose` solely to access their special "skip \ 
test" exception types - if the module is not in :obj:`sys.modules`, the \ 
exception can't be raised anyway.

This fixes a problem where importing an otherwise unused module could cause \ 
spurious errors due to import-time side effects (and possibly -Werror).