./devel/py-hypothesis, Python library for property based testing

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 4.53.3, Package name: py37-hypothesis-4.53.3, Maintainer: pkgsrc-users

Hypothesis is a library for testing your Python code against a much
larger range of examples than you would ever want to write by hand.
It's based on the Haskell library, Quickcheck, and is designed to
integrate seamlessly into your existing Python unit testing work

Hypothesis is both extremely practical and also advances the state
of the art of unit testing by some way. It's easy to use, stable,
and extremely powerful. If you're not using Hypothesis to test your
project then you're missing out.

Required to run:
[devel/py-setuptools] [devel/py-attrs] [lang/python37]

Required to build:

Master sites:

SHA1: f622e3eb92cab969c995898b53da3bf58629803c
RMD160: 4ea3ba46b7a2a02bb8e0c7d7b0e507ea18219b6f
Filesize: 222.704 KB

Version history: (Expand)

CVS history: (Expand)

   2019-12-15 12:28:53 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
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).
   2019-11-13 22:08:30 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
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:`~hypothesis.strategies.data` 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:`~hypothesis.strategies.data` 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.
   2019-10-22 15:20:27 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.41.3

This patch is to ensure that our internals remain comprehensible to :pypi:`mypy` \ 
0.740 - there is no user-visible change.

This patch changes some internal hashes to SHA384, to better support users \ 
subject to FIPS-140. There is no user-visible API change.

This release makes --hypothesis-show-statistics much more useful for tests using \ 
a :class:`~hypothesis.stateful.RuleBasedStateMachine`, by simplifying the reprs \ 
so that events are aggregated correctly.

This release upgrades the :func:`~hypothesis.strategies.fixed_dictionaries` \ 
strategy to support optional keys (:issue:`1913`).

This release makes some minor internal changes in support of improving the \ 
Hypothesis test suite. It should not have any user visible impact.

This release changes how Hypothesis checks if a parameter to a test function is \ 
a mock object. It is unlikely to have any noticeable effect, but may result in a \ 
small performance improvement, especially for test functions where a mock object \ 
is being passed as the first argument.

This release fixes a bug where our example database logic did not distinguish \ 
between failing examples based on arguments from a \ 
@pytest.mark.parametrize(...). This could in theory cause data loss if a common \ 
failure overwrote a rare one, and in practice caused occasional file-access \ 
collisions in highly concurrent workloads (e.g. during a 300-way parametrize on \ 
16 cores).

For internal reasons this also involves bumping the minimum supported version of \ 
:pypi:`pytest` to 4.3

This patch improves our type hints on the :func:`~hypothesis.strategies.emails`, \ 
:func:`~hypothesis.strategies.functions`, \ 
:func:`~hypothesis.strategies.integers`, \ 
:func:`~hypothesis.strategies.iterables`, and \ 
:func:`~hypothesis.strategies.slices` strategies, as well as the .filter() \ 

There is no runtime change, but if you use :pypi:`mypy` or a similar \ 
type-checker on your tests the results will be a bit more precise.

This patch improves the performance of unique collections such as \ 
:func:`~hypothesis.strategies.sets` of :func:`~hypothesis.strategies.just` or \ 
:func:`~hypothesis.strategies.booleans` strategies. They were already pretty \ 
good though, so you're unlikely to notice much!

If a value in a dict passed to :func:`~hypothesis.strategies.fixed_dictionaries` \ 
is not a strategy, Hypothesis now tells you which one.

This release adds the :func:`~hypothesis.extra.numpy.basic_indices` strategy, to \ 
generate basic indexes for arrays of the specified shape (:issue:`1930`).

It generates tuples containing some mix of integers, :obj:`python:slice` \ 
objects, ... (Ellipsis), and :obj:`numpy:numpy.newaxis`; which when used to \ 
index an array of the specified shape produce either a scalar or a shared-memory \ 
view of the array. Note that the index tuple may be longer or shorter than the \ 
array shape, and may produce a view with another dimensionality again!

This patch defers creation of the .hypothesis directory until we have something \ 
to store in it, meaning that it will appear when Hypothesis is used rather than \ 
simply installed.

This patch bumps our dependency on :pypi:`attrs` to >=19.2.0; but there are \ 
no user-visible changes to Hypothesis.

This is a comment-only patch which tells :pypi:`mypy` 0.730 to ignore some \ 
internal compatibility shims we use to support older Pythons.

This release adds the :func:`hypothesis.target` function, which implements \ 
experimental support for :ref:`targeted property-based testing \ 
<targeted-search>` (:issue:`1779`).

By calling :func:`~hypothesis.target` in your test function, Hypothesis can do a \ 
hill-climbing search for bugs. If you can calculate a suitable metric such as \ 
the load factor or length of a queue, this can help you find bugs with inputs \ 
that are highly improbably from unguided generation - however good our \ 
heuristics, example diversity, and deduplication logic might be. After all, \ 
those features are at work in targeted PBT too!

This release emits a warning if you use the .example() method of a strategy in a \ 
non-interactive context.

:func:`~hypothesis.given` is a much better choice for writing tests, whether you \ 
care about performance, minimal examples, reproducing failures, or even just the \ 
variety of inputs that will be tested!

This patch disables part of the :mod:`typing`-based inference for the \ 
:pypi:`attrs` package under Python 3.5.0, which has some incompatible internal \ 
details (:issue:`2095`).

This patch fixes a bug in strategy inference for :pypi:`attrs` classes where \ 
Hypothesis would fail to infer a strategy for attributes of a generic type such \ 
as Union[int, str] or List[bool] (:issue:`2091`).

This patch deprecates min_len or max_len of 0 in \ 
:func:`~hypothesis.extra.numpy.byte_string_dtypes` and \ 
:func:`~hypothesis.extra.numpy.unicode_string_dtypes`. The lower limit is now 1.

Numpy uses a length of 0 in these dtypes to indicate an undetermined size, \ 
chosen from the data at array creation. However, as the \ 
:func:`~hypothesis.extra.numpy.arrays` strategy creates arrays before filling \ 
them, strings were truncated to 1 byte.

This patch improves the messaging that comes from invalid size arguments to \ 
collection strategies such as :func:`~hypothesis.strategies.lists`.

This release improves the :func:`~hypothesis.extra.lark.from_lark` strategy, \ 
tightening argument validation and adding the explicit argument to allow use \ 
with terminals that use @declare instead of a string or regular expression.

This feature is required to handle features such as indent and dedent tokens in \ 
Python code, which can be generated with the :pypi:`hypothesmith` package.

The :func:`~hypothesis.strategies.from_type` strategy now knows to look up the \ 
subclasses of abstract types, which cannot be instantiated directly.

This is very useful for :pypi:`hypothesmith` to support :pypi:`libCST`.
   2019-08-22 13:05:27 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-hypothesis: updated to 4.33.1

This patch works around a crash when an incompatible version of Numpy
is installed under PyPy 5.10 (Python 2.7).

If you are still using Python 2, please upgrade to Python 3 as soon
as possible - it will be unsupported at the end of this year.

This release improves the :func:~hypothesis.provisional.domains
strategy, as well as the :func:~hypothesis.provisional.urls and
the :func:~hypothesis.strategies.emails strategies which use it.
These strategies now use the full IANA list of Top Level Domains
and are correct as per :rfc:1035.

Passing tests using these strategies may now fail.

This patch tidies up the repr of several settings-related objects,
at runtime and in the documentation, and deprecates the undocumented
edge case that phases=None was treated like phases=tuple(Phase).

It *also* fixes :func:~hypothesis.extra.lark.from_lark with
:pypi:lark 0.7.2 <lark-parser> and later.

This patch updates some internal comments for :pypi:mypy 0.720.
There is no user-visible impact.

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 :func:~hypothesis.extra.numpy.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 :func:~hypothesis.strategies.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 change.

This release simplifies the logic of the :attr:~hypothesis.settings.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 change.

This patch improves the behaviour of the :func:~hypothesis.strategies.text
strategy when passed an alphabet which is not a strategy.  The value is
now interpreted as whitelist_characters to :func:~hypothesis.strategies.characters
instead of a sequence for :func:~hypothesis.strategies.sampled_from, which
standardises the distribution of examples and the shrinking behaviour.

You can get the previous behaviour by using
lists(sampled_from(alphabet)).map("".map) instead.

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 :func:@given <hypothesis.given>.

:func:@given <hypothesis.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
:func:@given <hypothesis.given>.

As a result, calling s.example() on an empty strategy s
(such as :func:~hypothesis.strategies.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 :obj:python: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 anything.

This release fixes  :issue:2027, by changing the way Hypothesis tries to \ 
generate distinct examples to be more efficient.

This may result in slightly different data distribution, and should improve \ 
generation performance in general,
but should otherwise have minimal user impact.

This release fixes :issue:1864, where some simple tests would perform very slowly,
because they would run many times with each subsequent run being progressively \ 
They will now stop after a more reasonable number of runs without hitting this \ 

Unless you are hitting exactly this issue, it is unlikely that this release will \ 
have any effect,
but certain classes of custom generators that are currently very slow may become \ 
a bit faster,
or start to trigger health check failures.

This release adds the strategy :func:~hypothesis.extra.numpy.integer_array_indices,
which generates tuples of Numpy arrays that can be used for
advanced indexing \ 
to select an array of a specified shape.

This release significantly improves the performance of drawing unique \ 
collections whose
elements are drawn from  :func:~hypothesis.strategies.sampled_from  strategies.

As a side effect, this detects an error condition that would previously have
passed silently: When the min_size argument on a collection with distinct elements
is greater than the number of elements being sampled, this will now raise an error.

This release removes some defunct internal functionality that was only being used
for testing. It should have no user visible impact.

This release deprecates and disables the buffer_size setting,
which should have been treated as a private implementation detail
all along.  We recommend simply deleting this settings argument.

This patch makes :func:~hypothesis.strategies.datetimes more efficient,
as it now handles short months correctly by construction instead of filtering.

This patch improves the development experience by simplifying the tracebacks
you will see when e.g. you have used the .map(...) method of a strategy
and the mapped function raises an exception.

No new exceptions can be raised, nor existing exceptions change anything but
their traceback.  We're simply using if-statements rather than exceptions for
control flow in a certain part of the internals!

This patch fixes :issue:2014, where our compatibility layer broke with version
3.7.4 of the :pypi:typing module backport on PyPI.

This issue only affects Python 2.  We remind users that Hypothesis, like many other
packages, will drop Python 2 support on 2020-01-01 \ 
and already has several features that are only available on Python 3.

This patch improves the implementation of an internal wrapper on Python 3.8
beta1 (and will break on the alphas; but they're not meant to be stable).
On other versions, there is no change at all.
   2019-06-12 11:51:52 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.24.3

This patch improves the implementation of an internal wrapper on Python 3.8 \ 
beta1 (and will break on the alphas; but they're not meant to be stable). On \ 
other versions, there is no change at all.

Deprecation messages for functions in hypothesis.extra.django.models now \ 
explicitly name the deprecated function to make it easier to track down usages. \ 
Thanks to Kristian Glass for this contribution!

This patch fixes :issue:`1999`, a spurious bug raised when a \ 
:func:`@st.composite <hypothesis.strategies.composite>` function was \ 
passed a keyword-only argument.
   2019-06-02 10:30:19 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.24.0

This release deprecates GenericStateMachine, in favor of \ 
:class:~hypothesis.stateful.RuleBasedStateMachine. Rule-based stateful testing \ 
is significantly faster, especially during shrinking.

If your use-case truly does not fit rule-based stateful testing, we recommend \ 
writing a custom test function which drives your specific control-flow using \ 

This patch fixes a very rare example database issue with file permissions.

When running a test that uses both :func:@given <hypothesis.given> and \ 
pytest.mark.parametrize, using :pypi:pytest-xdist on Windows, with failing \ 
examples in the database, two attempts to read a file could overlap and we \ 
caught FileNotFound but not other OSErrors.

This patch has a minor cleanup of the internal engine. There is no user-visible \ 

This patch clarifies some error messages when the test function signature is \ 
incompatible with the arguments to :func:@given <hypothesis.given>, \ 
especially when the :obj:@settings() <hypothesis.settings> decorator is \ 
also used (:issue:1978).

This release adds the :pypi:pyupgrade fixer to our code style, for consistent \ 
use of dict and set literals and comprehensions.

This release slightly simplifies a small part of the core engine. There is no \ 
user-visible change.
   2019-05-09 13:53:58 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-hypothesis: updated to 4.23.4

Fixes a minor formatting issue the docstring of from_type()

Adds a recipe to the docstring of from_type() that describes a means for drawing \ 
values for “everything except” a specified type. This recipe is especially \ 
useful for writing tests that perform input-type validation.

This patch uses autoflake to remove some pointless pass statements, which \ 
improves our workflow but has no user-visible impact.

This patch fixes an OverflowError in from_type(xrange) on Python 2.

It turns out that not only do the start and stop values have to fit in a C long, \ 
but so does stop - start. We now handle this even on 32bit platforms, but remind \ 
users that Python2 will not be supported after 2019 without specific funding.

This release implements the slices() strategy, to generate slices of a \ 
length-size sequence.

This patch exposes DataObject, solely to support more precise type hints. \ 
Objects of this type are provided by data(), and can be used to draw examples \ 
from strategies intermixed with your test code.

This patch fixes the very rare issue 1798 in array_dtypes(), which caused an \ 
internal error in our tests.

This patch fixes a rare bug in from_type(range).

The unique_by argument to lists now accepts a tuple of callables such that every \ 
element of the generated list will be unique with respect to each callable in \ 
the tuple.

This patch cleans up the internals of one_of(). You may see a slight change to \ 
the distribution of examples from this strategy but there is no change to the \ 
public API.

The from_type() strategy now supports slice objects.

This release improves the array_shapes() strategy, to choose an appropriate \ 
default for max_side based on the min_side, and max_dims based on the min_dims. \ 
An explicit error is raised for dimensions greater than 32, which are not \ 
supported by Numpy, as for other invalid combinations of arguments.

The from_type() strategy now supports range objects (or xrange on Python 2).

This release fixes a very rare edge case in the test-case mutator, which could \ 
cause an internal error with certain unusual tests.

This patch makes Hypothesis compatible with the Python 3.8 alpha, which changed \ 
the representation of code objects to support positional-only arguments. Note \ 
however that Hypothesis does not (yet) support such functions as e.g. arguments \ 
to builds() or inputs to @given.

This patch improves the performance of unique collections such as sets() when \ 
the elements are drawn from a sampled_from() strategy.

This release adds the functions() strategy, which can be used to imitate your \ 
‘real’ function for callbacks.

This release refactors stateful rule selection to share the new machinery with \ 
sampled_from() instead of using the original independent implementation.

This patch allows Hypothesis to try a few more examples after finding the first \ 
bug, in hopes of reporting multiple distinct bugs. The heuristics described in \ 
issue 847 ensure that we avoid wasting time on fruitless searches, while still \ 
surfacing each bug as soon as possible.
   2019-04-16 09:14:00 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.17.0

This release adds the strategy \ 
:func:~hypothesis.extra.numpy.broadcastable_shapes, which generates array shapes \ 
that are broadcast-compatible with a provided shape.

This release allows :func:~hypothesis.strategies.register_type_strategy to be \ 
used with :obj:python:typing.NewType instances. This may be useful to e.g. \ 
provide only positive integers for :func:from_type(UserId) \ 
<hypothesis.strategies.from_type> with a UserId = NewType('UserId', int) \ 

This release supports passing a :class:~python:datetime.timedelta as the \ 
:obj:~hypothesis.settings.deadline setting, so you no longer have to remember \ 
that the number is in milliseconds (:issue:1900).

Thanks to Damon Francisco for this change!

This patch makes the type annotations on hypothesis.extra.dateutil compatible \ 
with :pypi:mypy 0.700.

This release fixes a bug introduced in :ref:Hypothesis 4.14.3 <v4.14.3> \ 
that would sometimes cause :func:sampled_from(...).filter(...) \ 
<hypothesis.strategies.sampled_from> to encounter an internal assertion \ 
failure when there are three or fewer elements, and every element is rejected by \ 
the filter.

This patch takes the previous efficiency improvements to \ 
:func:sampled_from(...).filter(...) <hypothesis.strategies.sampled_from> \ 
strategies that reject most elements, and generalises them to also apply to \ 
sampled_from(...).filter(...).filter(...) and longer chains of filters.

This release fixes a bug that prevented \ 
:func:~hypothesis.strategies.random_module from correctly restoring the previous \ 
state of the random module.

The random state was instead being restored to a temporary deterministic state, \ 
which accidentally caused subsequent tests to see the same random values across \ 
multiple test runs.

This patch adds an internal special case to make \ 
:func:sampled_from(...).filter(...) <hypothesis.strategies.sampled_from> \ 
much more efficient when the filter rejects most elements