Subject: CVS commit: pkgsrc/devel/py-hypothesis
From: Adam Ciarcinski
Date: 2019-11-13 22:08:30
Message id:

Log Message:
py-hypothesis: updated to 4.44.2

This release fixes :func:`@given <hypothesis.given>` to only complain \ 
about missing keyword-only arguments if the associated test function is actually \ 

This matches the behaviour of other InvalidArgument errors produced by @given.

This patch allows Hypothesis to run in environments that do not specify a \ 
__file__, such as a :mod:`python:zipapp` (:issue:`2196`).

This release adds a gufunc argument to \ 
:func:`~hypothesis.extra.numpy.mutually_broadcastable_shapes` (:issue:`2174`), \ 
which allows us to generate shapes which are valid for functions like \ 
:obj:`numpy:numpy.matmul` that require shapes which are not simply \ 

This patch fixes :issue:`2108`, where the first test using \ 
:func:`` to draw from \ 
:func:`~hypothesis.strategies.characters` or :func:`~hypothesis.strategies.text` \ 
would be flaky due to unreliable test timings.

Time taken by lazy instantiation of strategies is now counted towards drawing \ 
from the strategy, rather than towards the deadline for the test function.

This release ensures that the strategies passed to :func:`@given \ 
<hypothesis.given>` are properly validated when applied to a test method \ 
inside a test class.

This should result in clearer error messages when some of those strategies are \ 

This release changes how Hypothesis manages its search space in cases where it \ 
generates redundant data. This should cause it to generate significantly fewer \ 
duplicated examples (especially with short integer ranges), and may cause it to \ 
produce more useful examples in some cases (especially ones where there is a \ 
significant amount of filtering).

This patch refactors width handling in :func:`~hypothesis.strategies.floats`; \ 
you may notice small performance improvements but the main purpose is to enable \ 
work on :issue:`1704` (improving shrinking of bounded floats).

This patch removes an unused internal flag. There is no user-visible change.

This patch corrects the exception type and error message you get if you attempt \ 
to use :func:`` to draw from something which is not a \ 
strategy. This never worked, but the error is more helpful now.

We've adopted :pypi:`flake8-bugbear` to check for a few more style issues, and \ 
this patch implements the minor internal cleanups it suggested. There is no \ 
user-visible change.

This patch fixes the formatting of some documentation, but there is no change to \ 
any executed code.

Python 3.8's new :obj:`python:typing.Literal` type - see PEP 586 for details - \ 
is now supported in :func:`~hypothesis.strategies.from_type`.

This release adds the strategy \ 
:func:`~hypothesis.extra.numpy.mutually_broadcastable_shapes`, which generates \ 
multiple array shapes that are mutually broadcast-compatible with an optional \ 
user-specified base-shape.

This is a generalisation of \ 
:func:`~hypothesis.extra.numpy.broadcastable_shapes`. It relies heavily on \ 
non-public internals for performance when generating and shrinking examples. We \ 
intend to support generating shapes matching a ufunc signature in a future \ 
version (:issue:`2174`).

This release fixes :func:`~hypothesis.strategies.from_type` when used with \ 
bounded or constrained :obj:`python:typing.TypeVar` objects (:issue:`2094`).
Previously, distinct typevars with the same constraints would be treated as all \ 
single typevar, and in cases where a typevar bound was resolved to a union of \ 
subclasses this could result in mixed types being generated for that typevar.

This patch ensures that the default value \ 
:func:`~hypothesis.extra.numpy.broadcastable_shapes` chooses for max_dims is \ 
always valid (at most 32), even if you pass min_dims=32.

This patch ensures that we only add profile information to the pytest header if \ 
running either pytest or Hypothesis in verbose mode, matching the builtin cache \ 
plugin (:issue:`2155`).

This patch makes stateful step printing expand the result of a step into \ 
multiple variables when you return :func:`~hypothesis.stateful.multiple` \ 

This release fixes a bug (:issue:`2166`) where a Unicode character info cache \ 
file was generated but never used on subsequent test runs, causing tests to run \ 
more slowly than they should have.

This patch corrects some internal documentation. There is no user-visible change.

This release fixes a bug (:issue:`2160`) where decorators applied after \ 
:func:`@settings <hypothesis.settings>` and before :func:`@given \ 
<hypothesis.given>` were ignored.

This release updates Hypothesis's formatting to the new version of \ 
:pypi:`black`, and has absolutely no user visible effect.

This release fixes a bug in :func:`~hypothesis.strategies.recursive` which would \ 
have meant that in practice max_leaves was treated as if it was lower than it \ 
actually is - specifically it would be capped at the largest power of two \ 
smaller than it. It is now handled correctly.

Python 3.8's new :class:`python:typing.SupportsIndex` type - see PEP 357 for \ 
details - is now supported in :func:`~hypothesis.strategies.from_type`.

This release significantly simplifies Hypothesis's internal logic for data \ 
generation, by removing a number of heuristics of questionable or unproven \ 

The results of this change will vary significantly from test to test. Most test \ 
suites will see significantly faster data generation and lower memory usage. The \ 
"quality" of the generated data may go up or down depending on your \ 
particular test suites.

If you see any significant regressions in Hypothesis's ability to find bugs in \ 
your code as a result of this release, please file an issue to let us know.

Users of the new :ref:`targeted property-based testing <targeted-search>` \ 
functionality are reasonably likely to see improvements in data generation, as \ 
this release changes the search algorithm for targeted property based testing to \ 
one that is more likely to be productive than the existing approach.