commit df02d97b1a0881a19d51e07cd5fce5e18ec9c3cfc5c03b794d167781098a98c0 Author: Adrian Schröter Date: Fri May 3 21:01:03 2024 +0200 Sync from SUSE:SLFO:Main python-hypothesis revision bd2b2ad3593f2edef50785e1250dba9a diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/_service b/_service new file mode 100644 index 0000000..0e695ea --- /dev/null +++ b/_service @@ -0,0 +1,16 @@ + + + https://github.com/HypothesisWorks/hypothesis.git + git + hypothesis-python-6.82.7 + @PARENT_TAG@ + hypothesis-python-(.*) + hypothesis-python + hypothesis-python + + + *.tar + gz + + + diff --git a/hypothesis-python-6.82.7.tar.gz b/hypothesis-python-6.82.7.tar.gz new file mode 100644 index 0000000..4168604 --- /dev/null +++ b/hypothesis-python-6.82.7.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68caafc9ca1908e0ac3c6b1f2bfb56b50fbf3f185d4a1899a43ff002586cc6ca +size 818596 diff --git a/python-hypothesis.changes b/python-hypothesis.changes new file mode 100644 index 0000000..342dccf --- /dev/null +++ b/python-hypothesis.changes @@ -0,0 +1,3533 @@ +------------------------------------------------------------------- +Tue Aug 29 17:43:45 UTC 2023 - Ben Greiner + +- Update to 6.82.7 + * This patch updates our autoformatting tools, improving our code + style without any API changes. +- Release 6.82.6 + * This patch enables and fixes many more of ruff‘s lint rules. +- Release 6.82.5 + * Fixes the error message for missing [cli] extra. +- Use slow 'obs' profile for testing and disable healthcheck + tests because of it. + +------------------------------------------------------------------ +Mon Aug 14 07:03:21 UTC 2023 - Dirk Müller + +- update to 6.82.4: + * This patch ensures that we always close the download + connection in :class:`~hypothesis.database.GitHubArtifactDatabase`. + * We can now pretty-print combinations of *zero* + :class:`enum.Flag` values, like ``SomeFlag(0)``, + which has never worked before. + * This patch fixes pretty-printing of combinations of + :class:`enum.Flag` values, which was previously an error + (:issue:`3709`). + * Improve shrinking of floats in narrow regions that don't + cross an integer boundary. Closes :issue:`3357`. + * :func:`~hypothesis.strategies.from_regex` now supports the + atomic grouping (``(?>...)``) and possessive quantifier + (``*+``, ``++``, ``?+``, ``{m,n}+``) syntax `added in Python 3.11 + * If the :envvar:`HYPOTHESIS_NO_PLUGINS` environment variable + is set, we'll avoid :ref:`loading plugins ` + such as `the old Pydantic integration + * Fixes some lingering issues with inference of recursive types + * in `~hypothesis.strategies.from_type`. Closes :issue:`3525`. + * This release drops support for Python 3.7, `which reached end + of life on 2023-06-27 + * Fixes occasional recursion-limit-exceeded errors when + validating deeply nested strategies. Closes: :issue:`3671` + * Improve the type rendered in + :func:`~hypothesis.strategies.from_type`, which improves the + coverage of Ghostwriter. + * This patch improves Ghostwriter's use of qualified names for + re-exported functions and classes, and avoids importing useless + :obj:`~typing.TypeVar`\ s. + * This patch updates our vendored `list of top-level domains + will raise an error rather than hanging indefinitely if + passed invalid ``max_leaves=`` arguments. + * Warn in :func:`~hypothesis.strategies.from_type` if the + inferred strategy has no variation (always returning default + instances). Also handles numpy data types by calling + :func:`~hypothesis.extra.numpy.from_dtype` on the + corresponding dtype, thus ensuring proper variation for these + types. + * :func:`~hypothesis.strategies.from_type` now works in cases + where we use :func:`~hypothesis.strategies.builds` to create + an instance and the constructor has an argument which would lead + to recursion. Previously, this would raise an error if the + argument had a default value. + * In preparation for supporting JAX in + :ref:`hypothesis.extra.array_api `, + this release supports immutable arrays being generated via + :func:`xps.arrays`. + * and adds automatic support for writing + ``@hypothesis.example()`` or ``@example()`` + depending on the current style in your test file - defaulting + to the latter. + * This patch updates our linter stack to use :pypi:`ruff`, and + fixes some previously-ignored lints. + * Hypothesis will now record an event for more cases where data + is marked invalid, including for exceeding the internal depth + limit. + +------------------------------------------------------------------- +Sun May 14 15:30:18 UTC 2023 - Dirk Müller + +- update to 6.75.3: + * This patch fixes ~hypothesis.strategies.complex_numbers accidentally + invalidating itself when passed magnitude arguments for 32 + and 64-bit widths, i.e. 16- and 32-bit floats, due to not + internally down-casting numbers + +------------------------------------------------------------------- +Wed May 10 16:11:33 UTC 2023 - Daniel Garcia + +- Update to 6.75.2: + * Improved the documentation regarding how to use + GitHubArtifactDatabase and fixed a bug that occurred in + repositories with no existing artifacts. +- 6.75.1 + * hypothesis.errors will now raise AttributeError when attempting to + access an undefined attribute, rather than returning None. +- 6.75.0 + * Sick of adding @example()s by hand? Our Pytest plugin now writes + .patch files to insert them for you, making this workflow easier + than ever before. + + * Note that you’ll need LibCST (via hypothesis[codemods]), and that + @example().via() requires PEP 614 (Python 3.9 or later). +- 6.74.1 + * This patch provides better error messages for datetime- and + timedelta-related invalid dtypes in our Pandas extra (issue + #3518). +- 6.74.0 + * This release adds support for nullable pandas dtypes in pandas() + (issue #3604). +- 6.73.1 + * This patch updates our minimum Numpy version to 1.16, and restores + compatibility with versions before 1.20, which were broken by a + mistake in Hypothesis 6.72.4 (issue #3625). +- 6.73.0 + * This release upgrades the explain phase (issue #3411). +- 6.72.4 + * This patch fixes type annotations for the arrays() strategy. +- 6.72.3 + * This patch fixes a bug with from_type() with dict[tuple[int, int], str] (issue #3527). +- 6.72.2 + * This patch refactors our internals to facilitate an upcoming feature. +- 6.72.1 + * This patch fixes some documentation and prepares for future features. +- 6.72.0 + * This release deprecates Healthcheck.all(), and adds a codemod to + automatically replace it with list(Healthcheck) (issue #3596). +- 6.71.0 + * This release adds GitHubArtifactDatabase, a new database backend + that allows developers to access the examples found by a Github + Actions CI job. This is particularly useful for workflows that + involve continuous fuzzing, like HypoFuzz. +- 6.70.2 + * This patch clarifies the reporting of time spent generating data. + A simple arithmetic mean of the percentage of time spent can be + misleading; reporting the actual time spent avoids + misunderstandings. +- 6.70.1 + * This patch updates our vendored list of top-level domains, which + is used by the provisional domains() strategy. +- 6.70.0 + * This release adds an optional domains= parameter to the emails() + strategy, and excludes the special-use .arpa domain from the + default strategy (issue #3567). +- 6.69.0 + * This release turns HealthCheck.return_value and + HealthCheck.not_a_test_method into unconditional errors. Passing + them to suppress_health_check= is therefore a deprecated no-op. + (issue #3568). + * Separately, GraalPy can now run and pass most of the hypothesis + test suite (issue #3587). +- 6.68.3 + * This patch updates our vendored list of top-level domains, which + is used by the provisional domains() strategy. +- 6.68.2 + * This patch fixes missing imports of the re module, when + ghostwriting tests which include compiled patterns or regex flags. + Thanks to Jens Heinrich for reporting and promptly fixing this + bug! +- 6.68.1 + * This patch adds some private hooks for use in research on + Schemathesis (see our preprint here). +- 6.68.0 + * This release adds support for the Array API’s 2022.12 release via + the api_version argument in make_strategies_namespace(). + Concretely this involves complex support in its existing + strategies, plus an introduced xps.complex_dtypes() strategy. + * Additionally this release now treats hypothesis.extra.array_api as + stable, meaning breaking changes should only happen with major + releases of Hypothesis. +- 6.67.1 + * This patch updates our autoformatting tools, improving our code + style without any API changes. +- 6.67.0 + * This release allows for more precise generation of complex numbers + using from_dtype(), by supporting the width, min_magnitude, and + min_magnitude arguments (issue #3468). +- 6.66.2 + * This patch fixes a rare RecursionError when pretty-printing a + multi-line object without type-specific printer, which was passed + to a function which returned the same object by .map() or + builds() and thus recursed due to the new pretty reprs in + Hypothesis 6.65.0 - 2023-01-24 (issue #3560). Apologies to all + those affected. +- 6.66.1 + * This makes from_dtype() pass through the parameter allow_subnormal + for complex dtypes. +- 6.66.0 + * This release adds a width parameter to complex_numbers(), + analogously to floats(). +- 6.65.2 + * This patch fixes invalid annotations detected for the tests + generated by Ghostwritter. It will now correctly generate Optional + types with just one type argument and handle union expressions + inside of type arguments correctly. Additionally, it now supports + code with the from __future__ import annotations marker for Python + 3.10 and newer. +- 6.65.1 + * This release improves the pretty-printing of enums in falsifying + examples, so that they print as their full identifier rather than + their repr. +- 6.65.0 + * Hypothesis now reports some failing inputs by showing the call + which constructed an object, rather than the repr of the object. + This can be helpful when the default repr does not include all + relevant details, and will unlock further improvements in a future + version. + * For now, we capture calls made via builds(), and via + SearchStrategy.map(). +- 6.64.0 + * The Ghostwritter will now include type annotations on tests for + type-annotated code. If you want to force this to happen (or not + happen), pass a boolean to the new annotate= argument to the + Python functions, or the --[no-]annotate CLI flag. +- 6.63.0 + * range_indexes() now accepts a name= argument, to generate named + pandas.RangeIndex objects. +- 6.62.1 + * This patch tweaks xps.arrays() internals to improve PyTorch + compatibility. Specifically, torch.full() does not accept integers + as the shape argument (n.b. technically “size” in torch), but such + behaviour is expected in internal code, so we copy the torch + module and patch in a working full() function. +- 6.62.0 + * A classic error when testing is to write a test function that can + never fail, even on inputs that aren’t allowed or manually + provided. +- 6.61.3 + * This patch teaches our enhanced get_type_hints() function to ‘see + through’ partial application, allowing inference from type hints + to work in a few more cases which aren’t (yet!) supported by the + standard-library version. + +------------------------------------------------------------------- +Fri Apr 21 12:26:35 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:41:58 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Fri Feb 17 16:07:03 UTC 2023 - Matej Cepl + +- Limit dependencies for tests on older distributions + (particularly do not depend on Django, Pandas, and fakeredis + and Redis). + +------------------------------------------------------------------- +Sat Jan 7 21:27:40 UTC 2023 - Ben Greiner + +- Update to 6.61.2 + * This patch improves our pretty-printing of failing examples, + including some refactoring to prepare for exciting future + features. +- Release 6.61.1 + * This patch brings our domains() and emails() strategies into + compliance with RFC 5890 §2.3.1: we no longer generate + parts-of-domains where the third and fourth characters are -- + (“R-LDH labels”), though future versions may deliberately + generate xn-- punycode labels. Thanks to python-email-validator + for the report! +- Update dependencies +- Move to PEP517 build + +------------------------------------------------------------------- +Thu Dec 15 06:35:15 UTC 2022 - Daniel Garcia + +- Update to 6.61.0 + + - This release improves our treatment of database keys, which based on (among + other things) the source code of your test function. We now post-process + this source to ignore decorators, comments, trailing whitespace, and blank + lines - so that you can add :obj:`@example() `\ s or + make some small no-op edits to your code without preventing replay of any + known failing or covering examples. + +- 6.60.1 - 2022-12-11 + + - This patch updates our vendored `list of top-level domains + `__, + which is used by the provisional :func:`~hypothesis.provisional.domains` + strategy. + +- 6.60.0 - 2022-12-04 + + - This release improves Hypothesis' ability to resolve forward references in + type annotations. It fixes a bug that prevented + :func:`~hypothesis.strategies.builds` from being used with `pydantic models + that possess updated forward references + `__. See + :issue:`3519`. + +- 6.59.0 - 2022-12-02 + + - The :obj:`@example(...) ` decorator now has a ``.via()`` + method, which future tools will use to track automatically-added covering + examples (:issue:`3506`). + +- 6.58.2 - 2022-11-30 + + - This patch updates our vendored `list of top-level domains + `__, which is used by the provisional + :func:`~hypothesis.provisional.domains` strategy. + +- 6.58.1 - 2022-11-26 + + - This patch shifts ``hypothesis[lark]`` from depending on the old + :pypi:`lark-parser` package to the new :pypi:`lark` package. There are no + code changes in Hypothesis, it's just that Lark got a new name on PyPI for + version 1.0 onwards. + +- 6.58.0 - 2022-11-19 + + - :func:`~hypothesis.register_random` has used :mod:`weakref` since + :ref:`v6.27.1`, allowing the :class:`~random.Random`-compatible objects to + be garbage-collected when there are no other references remaining in order + to avoid memory leaks. We now raise an error or emit a warning when this + seems likely to happen immediately. + + - The type annotation of :func:`~hypothesis.register_random` was also widened + so that structural subtypes of :class:`~random.Random` are accepted by + static typecheckers. + +- 6.57.1 - 2022-11-14 + + - This patch updates some internal type annotations and fixes a formatting + bug in the :obj:`~hypothesis.Phase.explain` phase reporting. + +- 6.57.0 - 2022-11-14 + + - Hypothesis now raises an error if you passed a strategy as the + ``alphabet=`` argument to :func:`~hypothesis.strategies.text`, and it + generated something which was not a length-one string. This has never been + supported, we're just adding explicit validation to catch cases like `this + StackOverflow question `__. + +- 6.56.4 - 2022-10-28 + + - This patch updates some docs, and depends on :pypi:`exceptiongroup` 1.0.0 + final to avoid a bug in the previous version. + +- 6.56.3 - 2022-10-17 + + - This patch teaches :func:`~hypothesis.strategies.text` to rewrite a few + more filter predicates (:issue:`3134`). You're unlikely to notice any + change. + +------------------------------------------------------------------- +Sun Oct 16 17:44:52 UTC 2022 - Dirk Müller + +- update to 6.56.2: + * This patch updates our vendored `list of top-level domains + `__, which is used by the provisional + :func:`~hypothesis.provisional.domains` strategy, and fixes some incorrect + examples in the docs for + :func:`~hypothesis.extra.numpy.mutually_broadcastable_shapes`. + +------------------------------------------------------------------- +Sun Oct 9 21:39:51 UTC 2022 - Ben Greiner + +- Update to 6.56.1 + * This patch improves the error message when Hypothesis detects + “flush to zero” mode for floating-point: we now report which + package(s) enabled this, which can make debugging much easier. + See issue #3458 for details. +- Release 6.56.0 + * This release defines __bool__() on SearchStrategy. It always + returns True, like before, but also emits a warning to help + with cases where you intended to draw a value (issue #3463). +- Release 6.55.0 + * In preparation for future versions of the Array API standard, + make_strategies_namespace() now accepts an optional api_version + argument, which determines the version conformed to by the + returned strategies namespace. If None, the version of the + passed array module xp is inferred. + * This release also introduces xps.real_dtypes(). This is + currently equivalent to the existing xps.numeric_dtypes() + strategy, but exists because the latter is expected to include + complex numbers in the next version of the standard. +- Release 6.54.6 + * If multiple explicit examples (from @example()) raise a Skip + exception, for consistency with generated examples we now + re-raise the first instead of collecting them into an + ExceptionGroup (issue #3453). +- Release 6.54.5 + * This patch updates our autoformatting tools, improving our code + style without any API changes. +- Release 6.54.4 + * This patch fixes some type annotations for Python 3.9 and + earlier (issue #3397), and teaches explain mode about certain + locations it should not bother reporting (issue #3439). +- Release 6.54.3 + * This patch teaches the Ghostwriter an additional check for + function and class locations that should make it use public + APIs more often. +- Release 6.54.2 + * This patch fixes our workaround for a pytest bug where the + inner exceptions in an ExceptionGroup are not displayed (issue + #3430). +- Release 6.54.1 + * This patch makes FailedHealthCheck and DeadlineExceeded + exceptions picklable, for compatibility with Django’s parallel + test runner (issue #3426). +- Release 6.54.0 + * Reporting of multiple failing examples now uses the PEP 654 + ExceptionGroup type, which is provided by the exceptiongroup + backport on Python 3.10 and earlier (issue #3175). + hypothesis.errors.MultipleFailures is therefore deprecated. + * Failing examples and other reports are now stored as PEP 678 + exception notes, which ensures that they will always appear + together with the traceback and other information about their + respective error. +- Release 6.53.0 + * from_field() now supports UsernameField from + django.contrib.auth.forms. + * Thanks to Afonso Silva for reporting and working on issue + #3417. +- Release 6.52.4 + * This patch improves the error message when you pass filenames + to the hypothesis write CLI, which takes the name of a module + or function (e.g. hypothesis write gzip or hypothesis write + package.some_function rather than hypothesis write script.py). + * Thanks to Ed Rogers for implementing this as part of the SciPy + 2022 sprints! +- Release 6.52.3 + * This patch ensures that the warning for non-interactive + .example() points to your code instead of Hypothesis internals + (issue #3403). + * Thanks to @jameslamb for this fix. +- Release 6.52.2 + * This patch makes integers() more likely to generate boundary + values for large two-sided intervals (issue #2942). +- Release 6.52.1 + * This patch adds filter rewriting for math.isfinite(), + math.isinf(), and math.isnan() on integers() or floats() (issue + #2701). + * Thanks to Sam Clamons at the SciPy Sprints! +- Release 6.52.0 + * This release adds the allow_subnormal argument to + complex_numbers() by applying it to each of the real and + imaginary parts separately. Closes issue #3390. + * Thanks to Evan Tey for this fix. +- Release 6.51.0 + * Issue a deprecation warning if a function decorated with + @composite does not draw any values (issue #3384). + * Thanks to Grzegorz Zieba, Rodrigo Girão, and Thomas Ball for + working on this at the EuroPython sprints! +- Release 6.50.1 + * This patch improves the error messages in @example() argument + validation following the recent release of 6.49.1. +- Release 6.50.0 + * This release allows from_dtype() to generate Unicode strings + which cannot be encoded in UTF-8, but are valid in Numpy arrays + (which use UTF-32). + * This logic will only be used with Numpy >= 1.19, because + earlier versions have an issue which led us to revert + Hypothesis 5.2 last time! +- Release 6.49.1 + * This patch fixes some inconsistency between argument handling + for @example and @given (2706). +- Release 6.49.0 + * This release uses PEP 612 typing.ParamSpec (or the + typing_extensions backport) to express the + first-argument-removing behaviour of @st.composite and + signature-preservation of functions() to IDEs, editor plugins, + and static type checkers such as mypy. +- Release 6.48.3 + * hypothesis.event() now works for hashable objects which do not + support weakrefs, such as integers and tuples. +- Release 6.48.2 + * This patch tidies up some internal introspection logic, which + will improve support for positional-only arguments in a future + release (issue #2706). +- Release 6.48.1 + * This release automatically rewrites some simple filters, such + as floats().filter(lambda x: x >= 10) to the more efficient + floats(min_value=10), based on the AST of the predicate. + * We continue to recommend using the efficient form directly + wherever possible, but this should be useful for e.g. pandera + “Checks” where you already have a simple predicate and + translating manually is really annoying. See issue #2701 for + details. +- Release 6.48.0 + * This release raises SkipTest for which never executed any + examples, for example because the phases setting excluded the + explicit, reuse, and generate phases. This helps to avoid cases + where broken tests appear to pass, because they didn’t actually + execute (issue #3328). +- Release 6.47.5 + * This patch fixes type annotations that had caused the signature + of @given to be partially-unknown to type-checkers for Python + versions before 3.10. +- Release 6.47.4 + * This patch fixes from_type() on Python 3.11, following + python/cpython#93754. +- Release 6.47.3 + * This patch makes the too_slow health check more consistent with + long deadline tests (issue #3367) and fixes an install issue + under pipenv which was introduced in Hypothesis 6.47.2 (issue + #3374). +- Release 6.47.2 + * We now use the PEP 654 ExceptionGroup type - provided by the + exceptiongroup backport on older Pythons - to ensure that if + multiple errors are raised in teardown, they will all + propagate. + +------------------------------------------------------------------- +Mon Jun 13 12:58:35 UTC 2022 - Ben Greiner + +- Update to 6.47.1 + * Our pretty-printer no longer sorts dictionary keys, since + iteration order is stable in Python 3.7+ and this can affect + reproducing examples (issue #3370). This PR was kindly + supported by Ordina Pythoneers. +- Release 6.47.0 + * The Ghostwritter can now write tests for @classmethod or + @staticmethod methods, in addition to the existing support for + functions and other callables (issue #3318). Thanks to Cheuk + Ting Ho for the patch. +- Release 6.46.11 + * Mention hypothesis.strategies.timezones() in the documentation + of hypothesis.strategies.datetimes() for completeness. + * Thanks to George Macon for this addition. +- Release 6.46.10 + * This release contains some small improvements to our + documentation. Thanks to Felix Divo for his contribution! +- Release 6.46.9 + * This patch by Adrian Garcia Badaracco adds type annotations to + some private internals (issue #3074). +- Release 6.46.8 + * This patch by Phillip Schanely makes changes to the floats() + strategy when min_value or max_value is present. Hypothesis + will now be capable of generating every representable value in + the bounds. You may notice that hypothesis is more likely to + test values near boundaries, and values that are very close to + zero. + * These changes also support future integrations with symbolic + execution tools and fuzzers (issue #3086). +- Release 6.46.7 + * This patch updates the type annotations for tuples() and + one_of() so that type-checkers require its arguments to be + positional-only, and so that it no longer fails under + pyright-strict mode (see issue #3348). Additional changes are + made to Hypothesis’ internals improve pyright scans. +- Release 6.46.6 + * This patch by Cheuk Ting Ho adds support for PEP 655 Required + and NotRequired as attributes of TypedDict in from_type() + (issue #3339). +- Release 6.46.5 + * This patch fixes from_dtype() with long-precision + floating-point datatypes (typecode g; see numpy.typename()). +- Release 6.46.4 + * This patch improves some error messages for custom signatures + containing invalid parameter names (issue #3317). +- Release 6.46.3 + * This patch by Cheuk Ting Ho makes it an explicit error to call + from_type() or register_type_strategy() with types that have no + runtime instances (issue #3280). +- Release 6.46.2 + * This patch fixes silently dropping examples when the @example + decorator is applied to itself (issue #3319). This was always a + weird pattern, but now it works. Thanks to Ray Sogata, Keeri + Tramm, and Kevin Khuong for working on this patch! +- Release 6.46.1 + * This patch fixes a rare bug where we could incorrectly treat + empty as a type annotation, if the callable had an explicitly + assigned __signature__. +- Release 6.46.0 + * This release adds an allow_nil argument to uuids(), which you + can use to… generate the nil UUID. Thanks to Shlok Gandhi for + the patch! +- Release 6.45.4 + * This patch fixes some missing imports for certain Ghostwritten + tests. Thanks to Mel Seto for fixing issue #3316. +- Release 6.45.3 + * This patch teaches the Ghostwriter to recognize many more + common argument names (issue #3311). +- Release 6.45.2 + * This patch fixes issue #3314, where Hypothesis would raise an + internal error from domains() or (only on Windows) from + timezones() in some rare circumstances where the installation + was subtly broken. + * Thanks to Munir Abdinur for this contribution. +- Release 6.45.1 + * This release fixes deprecation warnings about sre_compile and + sre_parse imports and importlib.resources usage when running + Hypothesis on Python 3.11. + + Thanks to Florian Bruhin for this contribution. +- Release 6.45.0 + * This release updates xps.indices() by introducing an + allow_newaxis argument, defaulting to False. If + allow_newaxis=True, indices can be generated that add + dimensions to arrays, which is achieved by the indexer + containing None. This change is to support a specification + change that expand dimensions via indexing + (data-apis/array-api#408). +- Release 6.44.0 + * This release adds a names argument to indexes() and series(), + so that you can create Pandas objects with specific or varied + names. + * Contributed by Sam Watts. +- Release 6.43.3 + * This patch updates the type annotations for @given so that + type-checkers will warn on mixed positional and keyword + arguments, as well as fixing issue #3296. +- Release 6.43.2 + * Fixed a type annotation for pyright --strict (issue #3287). +- Release 6.43.1 + * This patch makes it an explicit error to call + register_type_strategy() with a Pydantic GenericModel and a + callable, because GenericModel isn’t actually a generic type at + runtime and so you have to register each of the “parametrized + versions” (actually subclasses!) manually. See issue #2940 for + more details. +- Release 6.43.0 + * This release makes it an explicit error to apply + @pytest.fixture to a function which has already been decorated + with @given(). Previously, pytest would convert your test to a + fixture, and then never run it. +- Release 6.42.3 + * This patch fixes from_type() on a TypedDict with complex + annotations, defined in a file using from __future__ import + annotations. Thanks to Katelyn Gigante for identifying and + fixing this bug! +- Release 6.42.2 + * The Hypothesis pytest plugin was not outputting valid xunit2 + nodes when --junit-xml was specified. This has been broken + since Pytest 5.4, which changed the internal API for adding + nodes to the junit report. + * This also fixes the issue when using hypothesis with + --junit-xml and pytest-xdist where the junit xml report would + not be xunit2 compatible. Now, when using with pytest-xdist, + the junit report will just omit the node. + * For more details, see this pytest issue, this pytest issue, and + issue #1935 + * Thanks to Brandon Chinn for this bug fix! +- Release 6.42.1 + * This patch fixes pretty-printing of regular expressions in + Python 3.11.0a7, and updates our vendored list of top-level + domains,. +- Release 6.42.0 + * This release makes st.functions(pure=True) less noisy (issue + #3253), and generally improves pretty-printing of functions. +- Release 6.41.0 + * This release changes the implementation of infer to be an alias + for Ellipsis. E.g. @given(a=infer) is now equivalent to + @given(a=...). Furthermore, @given(...) can now be specified so + that @given will infer the strategies for all arguments of the + decorated function based on its annotations. +- Release 6.40.3 + * This patch simplifies the repr of the strategies namespace + returned in make_strategies_namespace(), e.g. + >>> from hypothesis.extra.array_api import make_strategies_namespace + >>> from numpy import array_api as xp + >>> xps = make_strategies_namespace(xp) + >>> xps + make_strategies_namespace(numpy.array_api) +- Release 6.40.2 + * Fixed from_type() support for PEP 604 union types, like int | + None (issue #3255). +- Release 6.40.1 + * Fixed an internal error when given() was passed a lambda. +- Release 6.40.0 + * The Ghostwriter can now write tests which check that two or + more functions are equivalent on valid inputs, or raise the + same type of exception for invalid inputs (issue #3267). +- Release 6.39.6 + * This patch makes some quality-of-life improvements to the + Ghostwriter: we guess the text() strategy for arguments named + text (…obvious in hindsight, eh?); and improved the error + message if you accidentally left in a nothing() or broke your + rich install. +- Release 6.39.5 + * This patch improves our error detection and message when + Hypothesis is run on a Python implementation without support + for -0.0, which is required for the floats() strategy but can + be disabled by unsafe compiler options (issue #3265). + +------------------------------------------------------------------- +Sat Mar 19 16:19:54 UTC 2022 - Ben Greiner + +- Update to 6.39.4 + * This patch tweaks some internal formatting. There is no + user-visible change. +- Release 6.39.3 + * If the shrink phase is disabled, we now stop the generate phase + as soon as an error is found regardless of the value of the + report_multiple_examples setting, since that’s probably what + you wanted (issue #3244). +- Release 6.39.2 + * This patch clarifies rare error messages in builds() (issue + #3225) and floats() (issue #3207). +- Release 6.39.1 + * This patch fixes a regression where the bound inner function + (your_test.hypothesis.inner_test) would be invoked with + positional arguments rather than passing them by name, which + broke pytest-asyncio (issue #3245). +- 6.39.0 + * This release improves Hypothesis’ handling of positional-only + arguments, which are now allowed @st.composite strategies. + * On Python 3.8 and later, the first arguments to builds() and + from_model() are now natively positional-only. In cases which + were already errors, the TypeError from incorrect usage will + therefore be raises immediately when the function is called, + rather than when the strategy object is used. +- Release 6.38.0 + * This release makes floats() error consistently when your + floating-point hardware has been configured to violate IEEE-754 + for subnormal numbers, instead of only when an internal + assertion was tripped (issue #3092). + * If this happens to you, passing allow_subnormal=False will + suppress the explicit error. However, we strongly recommend + fixing the root cause by disabling global-effect unsafe-math + compiler options instead, or at least consulting e.g. Simon + Byrne’s Beware of fast-math explainer first. +- Release 6.37.2 + * This patch fixes a bug in stateful testing, where returning a + single value wrapped in multiple() would be printed such that + the assigned variable was a tuple rather than the single + element (issue #3236). +- Release 6.37.1 + * This patch fixes a warning under pytest 7 relating to our rich + traceback display logic (issue #3223). +- Release 6.37.0 + * When distinguishing multiple errors, Hypothesis now looks at + the inner exceptions of PEP 654 ExceptionGroups. +- Release 6.36.2 + * This patch updates our vendored list of top-level domains, + which is used by the provisional domains() strategy. +- Release 6.36.1 + * This patch fixes some deprecation warnings from pytest 7.0, + along with some code formatting and docs updates. +- Release 6.36.0 + * This release disallows using typing.Final with from_type() and + register_type_strategy(). + * Why? Because Final can only be used during class definition. We + don’t generate class attributes. + * It also does not make sense as a runtime type on its own. +- Release 6.35.1 + * This patch fixes hypothesis write output highlighting with rich + version 12.0 and later. +- Drop importorskip-numpy-pandas.patch + +------------------------------------------------------------------- +Thu Jan 20 16:04:34 UTC 2022 - Matej Cepl + +- Correct exclusion of test_recursion_error_is_not_flaky for 3.10. + +------------------------------------------------------------------- +Mon Jan 10 16:47:37 UTC 2022 - Matej Cepl + +- Upgrade to 6.35.0: + - This release disallows using "typing.ClassVar" with + "from_type()" and "register_type_strategy()". Why? Because + "ClassVar" can only be used during "class" definition. We + don't generate class attributes. It also does not make sense + as a runtime type on its own. + - Updates our vendored list of top-level domains, which is used + by the provisional "domains()" strategy. + - Fixes issue #3169, an extremely rare bug which would trigger + if an internal least-recently-reused cache dropped a newly + added entry immediately after it was added. + - Fixes issue #3133 and issue #3144, where attempting to + generate Pandas series of lists or sets would fail with + confusing errors if you did not specify "dtype=object". + - Disallows using "typing.TypeAlias" with "from_type()" and + "register_type_strategy()". Why? Because "TypeAlias" is not + really a type, it is a tag for type checkers that some + expression is a type alias, not something else. It does not + make sense for Hypothesis to resolve it as a strategy. + - Updates our autoformatting tools, improving our code style + without any API changes. + - Drops support for Python 3.6, which reached end of life + upstream on 2021-12-23. + - Adds a temporary hook for a downstream tool, which is not + part of the public API. + - Updates our copyright headers to use a general authorship + statement and omit the year. +- Skip also test_recursion_error_is_not_flaky + (gh#HypothesisWorks/hypothesis#3035) + +------------------------------------------------------------------- +Sun Dec 12 11:40:54 UTC 2021 - Ben Greiner + +- Update to 6.31.4 + * This patch makes the .example() method more representative of + test-time data generation, albeit often at a substantial cost + to readability (issue #3182). +- Release 6.31.3 + * This patch improves annotations on some of Hypothesis’ internal + functions, in order to deobfuscate the signatures of some + strategies. In particular, strategies shared between + hypothesis.extra.numpy and the hypothesis.extra.array_api extra + will benefit from this patch. +- Release 6.31.2 + * This patch fix invariants display in stateful falsifying + examples (issue #3185). +- Release 6.31.1 + * This patch updates xps.indices() so no flat indices are + generated, i.e. generated indices will now always explicitly + cover each axes of an array if no ellipsis is present. This is + to be consistent with a specification change that dropped + support for flat indexing (#272). +- Release 6.31.0 + * This release makes us compatible with Django 4.0, in particular + by adding support for use of zoneinfo timezones (though we + respect the new USE_DEPRECATED_PYTZ setting if you need it). +- Revert last mandatory requires update. Optional dependencies need + to be declared by consuming packages (see hypothesis packaging + doc) + +------------------------------------------------------------------- +Mon Dec 6 18:10:30 UTC 2021 - Dirk Müller + +- fix requires + +------------------------------------------------------------------- +Mon Dec 6 09:35:44 UTC 2021 - Matej Cepl + +- Fix filelist + +------------------------------------------------------------------- +Sun Dec 5 18:29:41 UTC 2021 - Axel Braun + +- version 6.30.1 + some tests skipped for python 3.6 + +------------------------------------------------------------------- +Sat Dec 4 18:31:49 UTC 2021 - Axel Braun + +- update 6.30.0 + tests/test_api disabled as recommended + https://github.com/HypothesisWorks/hypothesis/issues/3178 + +------------------------------------------------------------------- +Sat Oct 23 15:32:25 UTC 2021 - Axel Braun + +- update to 6.24.0 + +------------------------------------------------------------------- +Mon Jul 5 09:56:29 UTC 2021 - Antonio Larrosa + +- Update to 6.14.1 + * Full changelog since 6.8.1: + https://hypothesis.readthedocs.io/en/latest/changes.html + +------------------------------------------------------------------- +Sat Mar 20 22:28:47 UTC 2021 - Ben Greiner + +- Update to 6.8.1 + * Full changelog since 5.41.2: + https://hypothesis.readthedocs.io/en/latest/changes.html +- Changes in major version 6: + * Many functions now use PEP 3102 keyword-only arguments where + passing positional arguments was deprecated since 5.5. + * hypothesis.extra.django.from_model() no longer accepts model + as a keyword argument, where it could conflict with fields + named “model”. + * randoms() now defaults to use_true_random=False. + * complex_numbers() no longer accepts min_magnitude=None; either + use min_magnitude=0 or just omit the argument. + * hypothesis.provisional.ip4_addr_strings and ip6_addr_strings + are removed in favor of ip_addresses(v=...).map(str). + * register_type_strategy() no longer accepts generic types with + type arguments, which were always pretty badly broken. + * Using function-scoped pytest fixtures is now a health-check + error, instead of a warning. +- Don't test numpy and pandas for python36 (NEP29) + * add distro specific importorskip-numpy-pandas.patch + +------------------------------------------------------------------- +Tue Nov 17 18:22:29 UTC 2020 - Teemu Mannermaa + +- Fix failing tests: + * Also skip %python_clone during build of tests flavor. + * Recommend python-redis and BR python-fakeredis that are needed + for new redis based ExampleDatabase implemention. + +------------------------------------------------------------------- +Wed Nov 11 12:15:41 UTC 2020 - Dirk Mueller + +- update to 5.41.2: + * long list of changes and improvements, see + https://hypothesis.readthedocs.io/en/latest/changes.html#v5-41-2 + +------------------------------------------------------------------- +Wed Aug 12 20:51:26 UTC 2020 - Benjamin Greiner + +- Update to version 5.24.2 + * This release improves shrink quality by allowing Hypothesis to + automatically learn new shrink passes for difficult to shrink + tests. + * The automatic learning is not currently accessible in user code + (it still needs significant work on robustness and performance + before it is ready for that), but this release includes learned + passes that should improve shrinking quality for tests which + use any of the text(), hypothesis.strategies.floats, + hypothesis.strategies.datetimes, hypothesis.strategies.emails, + and complex_numbers() strategies. +- Update to version 5.24.1 + * This patch updates some docstrings, without changing runtime + behaviour. +- add comment about source archive + +------------------------------------------------------------------- +Tue Aug 11 12:28:11 UTC 2020 - Benjamin Greiner + +- Update to version 5.24.0 + * The functions() strategy has a new argument pure=True, + which ensures that the same return value is generated + for identical calls to the generated function (issue + #2538). + * Thanks to Zac Hatfield-Dodds and Nikita Sobolev for this + feature! +- Update to version 5.23.12 + * This release removes a number of Hypothesis's internal + "shrink passes" - transformations it makes to a + generated test case during shrinking - which appeared to + be redundant with other transformations. + * It is unlikely that you will see much impact from this. + If you do, it will likely show up as a change in + shrinking performance (probably slower, maybe faster), + or possibly in worse shrunk results. If you encounter + the latter, please let us know. +- remove rpmlintrc again +- use only github source repository (python subdir) in obscpio + +------------------------------------------------------------------- +Sat Aug 8 08:41:01 UTC 2020 - Benjamin Greiner + +- Use PyPI source for package and test it with tests from the + Github repository -- source hypothesis-python-tests-5.23.11 + as direct CPIO archive hypothesis-python-tests-5.23.11.obscpio + created by (locally run) obs_scm service +- Reenable django and pandas tests +- With ringdisabled, do not run test flavor at all +- Require and use pytest-xdist in tests + * Reenables the one skipped test + * Trims total build time by a large factor despite now running + pandas and django tests too! +- Drop failing-test_array_values_are_unique_high_collision.patch + * Fix the test instead gh#HypothesisWorks/hypothesis#2447 +- python-hypothesis-rpmlintrc -- filter empty types file +- Sync requirements versions to setup.py + * newer versions probably came from wrong interpretation of + upstream's version pinning +- Update to version 5.23.11 + * This release fixes a bug in some internal Hypothesis support + code. It has no user visible impact. +- Update to version 5.23.10 + * This release improves the quality of shrunk test cases in some + special cases. Specifically, it should get shrinking unstuck in + some scenarios which require simultaneously changing two parts + of the generated test case. +- Update to version 5.23.9 + * This release improves the performance of some internal support + code. It has no user visible impact, as that code is not + currently run during normal Hypothesis operation. +- Update to version 5.23.8 + * This release adds a heuristic to detect when shrinking has + finished despite the fact that there are many more possible + transformations to try. This will be particularly useful for + tests where the minimum failing test case is very large despite + there being many smaller test cases possible, where it is + likely to speed up shrinking dramatically. + * In some cases it is likely that this will result in worse + shrunk test cases. In those cases rerunning the test will + result in further shrinking. +- Update to version 5.23.7 + * This release makes some performance improvements to shrinking. + They should only be noticeable for tests that are currently + particularly slow to shrink. +- Update to version 5.23.6 + * This patch adds some more internal functions to support a new + feature we're working on, like version 5.18.3. There is still + no user-visible changes yet. +- Update to version 5.23.5 + * This release makes some changes to internal support code that + is not currently used in production Hypothesis. It has no user + visible effect at present. +- Update to version 5.23.4 + * This release improves shrinking quality in some special cases. +- Update to version 5.23.3 + * This release fixes issue #2507, where lazy evaluation meant + that the values drawn from a sampled_from() strategy could + depend on mutations of the sampled sequence that happened after + the strategy was constructed. +- Update to version 5.23.2 + * This patch fixes issue #2462, a bug in our handling of + unittest.TestCase.subTest(). Thanks to Israel Fruchter for + fixing this at the EuroPython sprints! +- Update to version 5.23.1 + * This release improves the behaviour of the characters() + strategy when shrinking, by changing which characters are + considered smallest to prefer more "normal" ascii + characters where available. +- Update to version 5.23.0 + * The default print_blob setting is now smarter. It defaults to + True in CI and False for local development. + * Thanks to Hugo van Kemenade for implementing this feature at + the EuroPython sprints! +- Update to version 5.22.0 + * The slices() strategy can now generate slices for empty + sequences, slices with negative start and stop indices (from + the end of the sequence), and step=None in place of step=1. + * Thanks to Sangarshanan for implementing this feature at the + EuroPython sprints! +- Update to version 5.21.0 + * This release ensures that tests which raise RecursionError are + not reported as flaky simply because we run them from different + initial stack depths (issue #2494). +- Update to version 5.20.4 + * This release improves the performance of the sample method on + objects obtained from randoms() when use_true_random=False. + This should mostly only be noticeable when the sample size is a + large fraction of the population size, but may also help avoid + health check failures in some other cases. +- Update to version 5.20.3 + * This release makes some internal changes for testing purposes + and should have no user visible effect. +- Update to version 5.20.2 + * This release fixes a small caching bug in Hypothesis internals + that may under some circumstances have resulted in a less + diverse set of test cases being generated than was intended. + * Fixing this problem revealed some performance problems that + could occur during targeted property based testing, so this + release also fixes those. Targeted property-based testing + should now be significantly faster in some cases, but this may + be at the cost of reduced effectiveness. +- Update to version 5.20.1 + * This patch updates our formatting to use isort 5. There is no + user-visible change. +- Update to version 5.20.0 + * The basic_indices() strategy can now generate bare indexers in + place of length-one tuples. Thanks to Andrea for this patch! +- Update to version 5.19.3 + * This patch removes an internal use of distutils in order to + avoid this setuptools warning for some users. +- Update to version 5.19.2 + * This patch contains a small internal refactoring with no + user-visible impact. + Thanks to Andrea for writing this at the SciPy 2020 Sprints! +- Update to version 5.19.1 + * This release slightly improves shrinking behaviour. This should + mainly only impact stateful tests, but may have some minor + positive impact on shrinking collections (lists, sets, etc). + +------------------------------------------------------------------- +Thu Jul 2 16:44:48 UTC 2020 - Antonio Larrosa + +- Update to version 5.19.0: + * This release improves the randoms() strategy by adding support + for Random instances where Hypothesis generates the random + values rather than having them be “truly” random. + +- Update to version 5.18.3: + * This patch adds some internal functions to support a new feature + we’re working on. There is no user-visible change… yet. + +- Update to version 5.18.2: + * This patch improves our docs for the derandomize setting. + +- Update to version 5.18.1: + * This release consists of some internal refactoring to the shrinker + in preparation for future work. It has no user visible impact. + +- Update to version 5.18.0: + * This release teaches Hypothesis to shorten tracebacks for explicit + examples, as we already do for generated examples, so that you can + focus on your code rather than ours. + + * If you have multiple failing explicit examples, they will now all + be reported. To report only the first failure, you can use the + report_multiple_bugs=False setting as for generated examples. + +- Update to version 5.17.0: + * This patch adds strategy inference for the Literal, NewType, Type, + DefaultDict, and TypedDict types from the typing_extensions + backport on PyPI. + +- Update to version 5.16.3: + * This patch precomputes some of the setup logic for our + experimental external fuzzer integration and sets deadline=None + in fuzzing mode, saving around 150us on each iteration. + + * This is around two-thirds the runtime to fuzz an empty test with + @given(st.none()), and nice to have even as a much smaller + fraction of the runtime for non-trivial tests. + +- Update to version 5.16.2: + * This patch fixes an internal error when warning about the use of + function-scoped fixtures for parametrised tests where the + parametrised value contained a % character. + +- Update to version 5.16.1: + * If you pass a list or tuple where a strategy was expected, the + error message now mentions sampled_from() as an example strategy. + +- Update to version 5.16.0: + * functions() can now infer the appropriate returns strategy if you + pass a like function with a return-type annotation. Before, + omitting the returns argument would generate functions that + always returned None. + +- Update to version 5.15.1: + * Fix from_type() with generic types under Python 3.9. + +- Update to version 5.15.0: + * This patch fixes an error that happens when multiple threads + create new strategies. + +- Update to version 5.14.0: + * Passing min_magnitude=None to complex_numbers() is now deprecated. + You can explicitly pass min_magnitude=0, or omit the argument entirely. + +- Update to version 5.13.1: + * This patch fixes an internal error in from_type() for + typing.NamedTuple in Python 3.9. + +- Update to version 5.13.0: + * This release upgrades the test statistics available via + the –hypothesis-show-statistics option to include separate + information on each of the phases (issue #1555). + +- Update to version 5.12.2: + * This patch teaches the from_type() internals to return slightly + more efficient strategies for some generic sets and mappings. + +- Update to version 5.12.1: + * This patch adds a # noqa comment for flake8 3.8.0, which + disagrees with mypy about how to write the type of .... + +- Update to version 5.12.0: + * This release limits the maximum duration of the shrinking phase + to five minutes, so that Hypothesis does not appear to hang when + making very slow progress shrinking a failing example + (issue #2340). + + * If one of your tests triggers this logic, we would really + appreciate a bug report to help us improve the shrinker for + difficult but realistic workloads. + +------------------------------------------------------------------- +Thu May 21 14:56:04 UTC 2020 - Matej Cepl + +- Add failing-test_array_values_are_unique_high_collision.patch + to avoid failing test on i586 (gh#HypothesisWorks/hypothesis#2447) + +------------------------------------------------------------------- +Sat May 9 16:08:23 UTC 2020 - Arun Persaud + +- update to version 5.11.0: + * This release improves the interaction between assume() and the + @example() decorator, so that the following test no longer fails + with UnsatisfiedAssumption (issue #2125): + @given(value=floats(0, 1)) + @example(value=0.56789) # used to make the test fail! + @pytest.mark.parametrize("threshold", [0.5, 1]) + def test_foo(threshold, value): + assume(value < threshold) + ... + +- changes from version 5.10.5 : + * If you have django installed but don’t use it, this patch will + make import hypothesis a few hundred milliseconds faster + (e.g. 0.704s -> 0.271s). + Thanks to importtime-waterfall for highlighting this problem and + Jake Vanderplas for the solution - it’s impossible to misuse code + from a module you haven’t imported! + +------------------------------------------------------------------- +Fri Apr 24 15:18:51 UTC 2020 - Arun Persaud + +- specfile: + * updated Django version number in requirements + +- update to version 5.10.4: + * This patch improves the internals of builds() type inference, to + handle recursive forward references in certain dataclasses. This + is useful for e.g. hypothesmith’s forthcoming LibCST mode. + +- changes from version 5.10.3: + * This release reverses the order in which some operations are tried + during shrinking. This should generally be a slight performance + improvement, but most tests are unlikely to notice much + difference. + +- changes from version 5.10.2: + * This patch fixes issue #2406, where use of pandas.Timestamp + objects as bounds for the datetimes() strategy caused an internal + error. This bug was introduced in version 5.8.1. + +- changes from version 5.10.1: + * This release is a small internal refactoring to how shrinking + interacts with targeted property-based testing that should have no + user user visible impact. + +- changes from version 5.10.0: + * This release improves our support for datetimes and times around + DST transitions. + * times() and datetimes() are now sometimes generated with fold=1, + indicating that they represent the second occurrence of a given + wall-time when clocks are set backwards. This may be set even when + there is no transition, in which case the fold value should be + ignored. + For consistency, timezones provided by the pytz package can now + generate imaginary times (such as the hour skipped over when + clocks ‘spring forward’ to daylight saving time, or during some + historical timezone transitions). All other timezones have always + supported generation of imaginary times. + If you prefer the previous behaviour, datetimes() now takes an + argument allow_imaginary which defaults to True but can be set to + False for any timezones strategy. + +- changes from version 5.9.1 : + * This patch fixes the rendering of binary() docstring by using the + proper backticks syntax. + +- changes from version 5.9.0 : + * Failing tests which use target() now report the highest score + observed for each target alongside the failing example(s), even + without explicitly showing test statistics. + * This improves the debugging workflow for tests of accuracy, which + assert that the total imprecision is within some error budget - + for example, abs(a - b) < 0.5. Previously, shrinking to a minimal + failing example could often make errors seem smaller or more + subtle than they really are (see the threshold problem, and issue + #2180). + +- changes from version 5.8.6 : + * This patch improves the docstring of binary(), the repr() of + sampled_from() on an enum.Enum subclass, and a warning in our + pytest plugin. There is no change in runtime behaviour. + +- changes from version 5.8.5 : + * This release (potentially very significantly) improves the + performance of failing tests in some rare cases, mostly only + relevant when using targeted property-based testing, by stopping + further optimisation of unrelated test cases once a failing + example is found. + +- changes from version 5.8.4 : + * This release fixes issue #2395, where under some circumstances + targeted property-based testing could cause Hypothesis to get + caught in an infinite loop. + +- changes from version 5.8.3 : + * This patch teaches builds() and from_type() to use the + __signature__ attribute of classes where it has been set, + improving our support for Pydantic models (in pydantic >= 1.5). + +- changes from version 5.8.2 : + * This release improves the performance of the part of the core + engine that deliberately generates duplicate values. + +- changes from version 5.8.1 : + * This patch improves dates() shrinking, to simplify year, month, + and day like datetimes() rather than minimizing the number of days + since 2000-01-01. + +------------------------------------------------------------------- +Thu Apr 9 12:28:15 UTC 2020 - Marketa Calabkova + +- update to version 5.8.0 + * Python2 finally dropped! + * Many code fixups, removals, refactorings and so on. + * No need for python-pytz + * Drop support for Python 3.5 + * Just see hypothesis-python/docs/changes.rst + +------------------------------------------------------------------- +Fri Dec 13 00:20:18 UTC 2019 - Arun Persaud + +- update to version 4.53.2: + * 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. + +- changes from version 4.53.1: + * 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 permitted. + +- changes from version 4.53.0: + * Test 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). + +- changes from version 4.52.0: + * 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 error. + +- changes from version 4.51.1: + * This release makes a small internal change to the distribution of + test cases. It is unlikely to have much user visible impact. + +- changes from version 4.51.0: + * This release deprecates use of @example, @seed, or + @reproduce_failure without @given. + +------------------------------------------------------------------- +Sat Dec 7 17:43:19 UTC 2019 - Arun Persaud + +- update to version 4.50.8: + * This patch makes certain uses of Bundles more efficient in + stateful testing (issue #2078). + +- changes from version 4.50.7: + * This release refactors some of Hypothesis’s internal interfaces + for representing data generation. It should have no user visible + effect. + +- changes from version 4.50.6: + * This patch removes some old debugging helpers in our Numpy extra + which have not been needed since issue #1963 and issue #2245. + +- changes from version 4.50.5: + * 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. + +- changes from version 4.50.4: + * 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 hypothesis-jsonschema. + +- changes from version 4.50.3: + * This release improves the error message when @settings tries to + inherit settings from a parent argument that isn’t a settings + instance. + +- changes from version 4.50.2: + * 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. + +- changes from version 4.50.1: + * This patch adds 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. + +- changes from version 4.50.0: + * 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. + +- changes from version 4.49.0: + * This release significantly improves the data distribution in rule + based stateful testing , 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. + +- changes from version 4.48.1: + * 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 Hypothesis 4.42.0 which would cause + occasional too_slow failures on some tests. + +- changes from version 4.48.0: + * 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 it. + +- changes from version 4.47.5: + * This release rebuilds find() on top of @given in order to have + more code in common. It should have minimal user visible effect. + +- changes from version 4.47.4: + * This patch removes an internal compatibility shim that we no + longer need. + +- changes from version 4.47.3: + * This patch fixes several typos in our docstrings and comments, + with no change in behaviour. Thanks to Dmitry Dygalo for + identifying and fixing them! + +- changes from version 4.47.2: + * 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 targeted property-based testing 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. + +- changes from version 4.47.1: + * This release removes some unused code from the core engine. There + is no user-visible change. + +- changes from version 4.47.0: + * 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. + +------------------------------------------------------------------- +Sat Nov 23 23:59:44 UTC 2019 - Arun Persaud + +- update to version 4.46.1: + * 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. Thanks to Anne Archibald + for identifying and fixing the problem. + +- changes from version 4.46.0: + * This release changes the behaviour of 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 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 just() or + sampled_from() instead of floats(). + +- changes from version 4.45.1: + * This patch improves the error message when invalid arguments are + passed to rule() or invariant() (issue #2149). + Thanks to Benjamin Palmer for this bugfix! + +- changes from version 4.45.0: + * This release supports typing.Final and typing.TypedDict in + from_type(). + +- changes from version 4.44.5: + * This patch disables our pytest plugin when running on versions of + 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 @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 versions. + +- changes from version 4.44.4: + * This patch adds some internal comments and clarifications to the + Hypothesis implementation. There is no user-visible change. + +- changes from version 4.44.3: + * 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 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). + +- changes from version 4.44.2: + * This release fixes @given to only complain about missing + keyword-only arguments if the associated test function is actually + called. + * This matches the behaviour of other InvalidArgument errors + produced by @given. + +- changes from version 4.44.1: + * This patch allows Hypothesis to run in environments that do not + specify a __file__, such as a zipapp (issue #2196). + +- changes from version 4.44.0: + * This release adds a gufunc argument to + mutually_broadcastable_shapes() (issue #2174), which allows us to + generate shapes which are valid for functions like numpy.matmul + that require shapes which are not simply broadcastable. + * Thanks to everyone who has contributed to this feature over the + last year, and a particular shout-out to Zac Hatfield-Dodds and + Ryan Soklaski for mutually_broadcastable_shapes() and to Ryan + Turner for the downstream hypothesis-gufunc project. + +- changes from version 4.43.9: + * This patch fixes issue #2108, where the first test using data() to + draw from characters() or 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. + +- changes from version 4.43.8: + * This release ensures that the strategies passed to @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 invalid. + +- changes from version 4.43.7: + * 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). + +- changes from version 4.43.6 : + * This patch refactors width handling in floats(); you may notice + small performance improvements but the main purpose is to enable + work on issue #1704 (improving shrinking of bounded floats). + +- changes from version 4.43.5 : + * This patch removes an unused internal flag. There is no + user-visible change. + +- changes from version 4.43.4: + * This patch corrects the exception type and error message you get + if you attempt to use data() to draw from something which is not a + strategy. This never worked, but the error is more helpful now. + +- changes from version 4.43.3: + * We’ve adopted 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. + +- changes from version 4.43.2: + * This patch fixes the formatting of some documentation, but there + is no change to any executed code. + +- changes from version 4.43.1 : + * Python 3.8’s new typing.Literal type - see PEP 586 for details - + is now supported in from_type(). + +- changes from version 4.43.0: + * This release adds the strategy 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 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). + * Thanks to Ryan Soklaski, Zac Hatfield-Dodds, and @rdturnermtl who + contributed to this new feature. + +- changes from version 4.42.10: + * This release fixes from_type() when used with bounded or + constrained 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. + +- changes from version 4.42.9: + * This patch ensures that the default value broadcastable_shapes() + chooses for max_dims is always valid (at most 32), even if you + pass min_dims=32. + +- changes from version 4.42.8: + * 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). + +- changes from version 4.42.7: + * This patch makes stateful step printing expand the result of a + step into multiple variables when you return multiple() (issue + #2139). Thanks to Joseph Weston for reporting and fixing this bug! + +- changes from version 4.42.6: + * 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. + * Thanks to Robert Knight for this bugfix! + +- changes from version 4.42.5: + * This patch corrects some internal documentation. There is no + user-visible change. + +- changes from version 4.42.4: + * This release fixes a bug (issue #2160) where decorators applied + after @settings and before @given were ignored. + * Thanks to Tom Milligan for this bugfix! + +- changes from version 4.42.3: + * This release updates Hypothesis’s formatting to the new version of + black, and has absolutely no user visible effect. + +- changes from version 4.42.2: + * This release fixes a bug in 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. + +- changes from version 4.42.1: + * Python 3.8’s new typing.SupportsIndex type - see PEP 357 for + details - is now supported in from_type(). + * Thanks to Grigorios Giannakopoulos for the patch! + +- changes from version 4.42.0: + * This release significantly simplifies Hypothesis’s internal logic + for data generation, by removing a number of heuristics of + questionable or unproven value. + * 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 targeted property-based testing 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. + +- changes from version 4.41.3: + * This patch is to ensure that our internals remain comprehensible + to mypy 0.740 - there is no user-visible change. + +- changes from version 4.41.2: + * This patch changes some internal hashes to SHA384, to better + support users subject to FIPS-140. There is no user-visible API + change. + * Thanks to Paul Kehrer for this contribution! + +- changes from version 4.41.1: + * This release makes --hypothesis-show-statistics much more useful + for tests using a RuleBasedStateMachine, by simplifying the reprs + so that events are aggregated correctly. + +- changes from version 4.41.0: + * This release upgrades the fixed_dictionaries() strategy to support + optional keys (issue #1913). + +------------------------------------------------------------------- +Wed Oct 16 13:13:59 UTC 2019 - Marketa Calabkova + +- update to version 4.40.2 + * Type hints improved + * Performance improved + * Array indexing improved + * **experimental** support for targeted property-based testing + +------------------------------------------------------------------- +Sun Aug 25 17:57:25 UTC 2019 - Arun Persaud + +- update to version 4.34.0: + * The from_type() strategy now knows to look up the subclasses of + abstract types, which cannot be instantiated directly. This is + very useful for hypothesmith to support libCST. + +- changes from version 4.33.1: + * This patch works around a crash when an incompatible version of + Numpy is installed under PyPy 5.10 (Python 2.7). + +- changes from version 4.33.0: + * This release improves the domains() strategy, as well as the + urls() and the 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.Thanks to TechDragon for this improvement. + +- changes from version 4.32.3 : + * 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 from_lark() with lark 0.7.2 and later. + +------------------------------------------------------------------- +Sun Aug 4 15:07:54 UTC 2019 - Arun Persaud + +- update to version 4.32.2: + * This patch updates some internal comments for mypy 0.720. There is + no user-visible impact. + +- changes from version 4.32.1: + * 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. + +- changes from version 4.32.0: + * 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). + +------------------------------------------------------------------- +Sun Jul 28 16:16:49 UTC 2019 - Arun Persaud + +- update to version 4.31.1: + * 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. + +- changes from version 4.31.0 : + * 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. + +------------------------------------------------------------------- +Mon Jul 22 13:00:16 UTC 2019 - Tomáš Chvátal + +- Update to 4.28.2: + * Various bugfixes and deprecations all around + +------------------------------------------------------------------- +Sat Jun 8 23:18:22 UTC 2019 - Arun Persaud + +- update to version 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. Thanks to Daniel Hahler for the patch, and Victor Stinner for + his work on bpo-37032 that made it possible. + +------------------------------------------------------------------- +Thu Jun 6 09:01:21 UTC 2019 - Ondřej Súkup + +- update to 4.24.2 + * Deprecation messages for functions in hypothesis.extra.django.models + now explicitly name the deprecated function to make it easier to track down usages. + * a spurious bug raised when a @st.composite function was passed a keyword-only argument. + * deprecates GenericStateMachine, in favor of RuleBasedStateMachine. + * This patch clarifies some error messages when the test function signature + is incompatible with the arguments to @given, especially when the @settings() + decorator is also used + * ixes a minor formatting issue the docstring of from_type() + +------------------------------------------------------------------- +Tue May 14 11:05:16 UTC 2019 - Ondřej Súkup + +- update to 4.23.4 + * Adds a recipe to the docstring of :func:`~hypothesis.strategies.from_type` + * implements the :func:`~hypothesis.strategies.slices` strategy, + to generate slices of a length-size sequence. + +------------------------------------------------------------------- +Tue May 7 08:58:44 UTC 2019 - Tomáš Chvátal + +- Remove pandas dependency to make ring1 more happy +- Update to 4.22.0: + * Various small tweaks only + +------------------------------------------------------------------- +Mon May 6 09:40:28 UTC 2019 - Tomáš Chvátal + +- More love for the tests to make sure we execute and run them + + skip/remove the obvious failures that are irelevant + +------------------------------------------------------------------- +Tue Apr 30 13:01:05 UTC 2019 - Tomáš Chvátal + +- Update to 4.18.2: + * This patch makes Hypothesis compatible with the Python 3.8 alpha + * This release adds the functions() strategy + * This release refactors stateful rule selection + * This patch allows Hypothesis to try a few more examples after finding the first bug + * This release adds the strategy broadcastable_shapes() +- Make sure the tests are executed (and fail at the moment, needs + bit more love) + +------------------------------------------------------------------- +Sat Apr 13 03:07:02 UTC 2019 - Arun Persaud + +- update to version 4.16.0: + * This release allows register_type_strategy() to be used with + typing.NewType instances. This may be useful to e.g. provide only + positive integers for from_type(UserId) with a UserId = + NewType('UserId', int) type. + +- changes from version 4.15.0: + * This release supports passing a timedelta as the deadline setting, + so you no longer have to remember that the number is in + milliseconds (issue #1900). + +- changes from version 4.14.7: + * This patch makes the type annotations on hypothesis.extra.dateutil + compatible with mypy 0.700. + +- changes from version 4.14.6: + * This release fixes a bug introduced in Hypothesis 4.14.3 that + would sometimes cause sampled_from(...).filter(...) to encounter + an internal assertion failure when there are three or fewer + elements, and every element is rejected by the filter. + +- changes from version 4.14.5: + * This patch takes the previous efficiency improvements to + sampled_from(...).filter(...) strategies that reject most + elements, and generalises them to also apply to + sampled_from(...).filter(...).filter(...) and longer chains of + filters. + +- changes from version 4.14.4: + * This release fixes a bug that prevented 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. + +- changes from version 4.14.3: + * This patch adds an internal special case to make + sampled_from(...).filter(...) much more efficient when the filter + rejects most elements (issue #1885). + +- changes from version 4.14.2: + * This patch improves the error message if the function f in + s.flatmap(f) does not return a strategy. + +- changes from version 4.14.1: + * This release modifies how Hypothesis selects operations to run + during shrinking, by causing it to deprioritise previously useless + classes of shrink until others have reached a fixed point. + * This avoids certain pathological cases where the shrinker gets + very close to finishing and then takes a very long time to finish + the last small changes because it tries many useless shrinks for + each useful one towards the end. It also should cause a more + modest improvement (probably no more than about 30%) in shrinking + performance for most tests. + +- changes from version 4.14.0: + * This release blocks installation of Hypothesis on Python 3.4, + which reached its end of life date on 2019-03-18. + This should not be of interest to anyone but downstream + maintainers - if you are affected, migrate to a secure version of + Python as soon as possible or at least seek commercial support. + +------------------------------------------------------------------- +Mon Mar 25 06:25:48 UTC 2019 - John Vandenberg + +- Add changes.rst to %doc +- Update to v4.13.0 + * for changes please see doc/changes.rst or + https://github.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/docs/changes.rst + + +------------------------------------------------------------------- +Mon Mar 18 08:11:15 UTC 2019 - Ondřej Súkup + +- update to 4.11.7 + * for changes please see doc/changes.rst or + - https://github.com/HypothesisWorks/hypothesis/blob/master/hypothesis-python/docs/changes.rst + +------------------------------------------------------------------- +Fri Dec 28 12:23:28 UTC 2018 - Martin Pluskal + +- Move name ahead of version in spec file to resolve build issues + on older distributions + +------------------------------------------------------------------- +Sat Dec 8 19:35:13 UTC 2018 - Arun Persaud + +- update to version 3.82.5: + * This patch fixes issue #1667, where passing bounds of Numpy dtype + int64 to integers() could cause errors on Python 3 due to internal + rounding. + +- changes from version 3.82.4: + * Hypothesis now seeds and resets the global state of np.random for + each test case, to ensure that tests are reproducible. + * This matches and complements the existing handling of the random + module - Numpy simply maintains an independent PRNG for + performance reasons. + +- changes from version 3.82.3 : + * This is a no-op release to add the new Framework :: Hypothesis + trove classifier to hypothesis on PyPI. + * You can use it as a filter to find Hypothesis-related packages + such as extensions as they add the tag over the coming weeks, or + simply visit our curated list. + +- changes from version 3.82.2 : + * The Hypothesis for Pandas extension is now listed in setup.py, so + you can pip install hypothesis[pandas]. + +------------------------------------------------------------------- +Thu Nov 1 22:43:45 UTC 2018 - Arun Persaud + +- update to version 3.82.1: + * This patch fixes from_type() on Python 2 for classes where + cls.__init__ is object.__init__. Thanks to ccxcz for reporting + issue #1656. + +- changes from version 3.82.0: + * The alphabet argument for text() now uses its default value of + characters(blacklist_categories=('Cs',)) directly, instead of + hiding that behind alphabet=None and replacing it within the + function. Passing None is therefore deprecated. + +- changes from version 3.81.0: + * GenericStateMachine and RuleBasedStateMachine now raise an + explicit error when instances of settings are assigned to the + classes’ settings attribute, which is a no-op (issue + #1643). Instead assign to SomeStateMachine.TestCase.settings, or + use @settings(...) as a class decorator to handle this + automatically. + +- changes from version 3.80.0: + * Since version 3.68.0, arrays() checks that values drawn from the + elements and fill strategies can be safely cast to the dtype of + the array, and emits a warning otherwise. + This release expands the checks to cover overflow for finite + complex64 elements and string truncation caused by too-long + elements or trailing null characters (issue #1591). + +- changes from version 3.79.4: + * Tests using @given now shrink errors raised from pytest helper + functions, instead of reporting the first example found. + This was previously fixed in version 3.56.0, but only for stateful + testing. + +- changes from version 3.79.3: + * Traceback elision is now disabled on Python 2, to avoid an + import-time SyntaxError under Python < 2.7.9 (Python: bpo-21591, + Hypothesis 3.79.2: issue #1648). + * We encourage all users to upgrade to Python 3 before the end of + 2019. + +- changes from version 3.79.2: + * This patch shortens tracebacks from Hypothesis, so you can see + exactly happened in your code without having to skip over + irrelevant details about our internals (issue #848). + In the example test (see pull request #1582), this reduces + tracebacks from nine frames to just three - and for a test with + multiple errors, from seven frames per error to just one! + If you do want to see the internal details, you can disable frame + elision by setting verbosity to debug. + +- changes from version 3.79.1: + * The abstract number classes Number, Complex, Real, Rational, and + Integral are now supported by the from_type() + strategy. Previously, you would have to use + register_type_strategy() before they could be resolved (issue + #1636) + +------------------------------------------------------------------- +Sat Oct 20 15:34:34 UTC 2018 - Arun Persaud + +- update to version 3.79.0: + * This release adds a CLI flag for verbosity --hypothesis-verbosity + to the Hypothesis pytest plugin, applied after loading the profile + specified by --hypothesis-profile. Valid options are the names of + verbosity settings, quiet, normal, verbose or debug.Thanks to Bex + Dunn for writing this patch at the PyCon Australia sprints! + * The pytest header now correctly reports the current profile if + --hypothesis-profile has been used. Thanks to Mathieu Paturel for t + he contribution at the Canberra Python Hacktoberfest. + +- changes from version 3.78.0: + * This release has deprecated the generation of integers, floats and + fractions when the conversion of the upper and/ or lower bound is + not 100% exact, e.g. when an integer gets passed a bound that is + not a whole number. (issue #1625) + +- changes from version 3.77.0: + * This minor release adds functionality to settings allowing it to + be used as a decorator on RuleBasedStateMachine and + GenericStateMachine. + +- changes from version 3.76.1: + * This patch fixes some warnings added by recent releases of + pydocstyle and mypy. + +------------------------------------------------------------------- +Sun Oct 14 15:26:36 UTC 2018 - Arun Persaud + +- update to version 3.76.0: + * This release deprecates using floats for min_size and max_size. + * The type hint for average_size arguments has been changed from + Optional[int] to None, because non-None values are always ignored + and deprecated. + +- changes from version 3.75.4: + * This patch adds more internal comments to the core engine’s + sequence-length shrinker. There should be no user-visible change. + +- changes from version 3.75.3: + * This patch adds additional comments to some of the core engine’s + internal data structures. There is no user-visible change. + +- changes from version 3.75.2: + * This patch avoids caching a trivial case, fixing issue #493. + +- changes from version 3.75.1: + * This patch fixes a broken link in a docstring. Thanks to Benjamin + Lee for this contribution! + +- changes from version 3.75.0: + * This release deprecates the use of min_size=None, setting the + default min_size to 0 (:issue: 1618). + +- changes from version 3.74.3: + * This patch makes some small internal changes to comply with a new + lint setting in the build. There should be no user-visible change. + +- changes from version 3.74.2: + * This patch fixes issue #1153, where time spent reifying a strategy + was also counted in the time spent generating the first + example. Strategies are now fully constructed and validated before + the timer is started. + +- changes from version 3.74.1: + * This patch fixes some broken formatting and links in the + documentation. + +- changes from version 3.74.0: + * This release checks that the value of the print_blob setting is a + PrintSettings instance. + * Being able to specify a boolean value was not intended, and is now + deprecated. In addition, specifying True will now cause the blob + to always be printed, instead of causing it to be suppressed. + * Specifying any value that is not a PrintSettings or a boolean is + now an error. + +- changes from version 3.73.5: + * Changes the documentation for hypothesis.strategies.datetimes, + hypothesis.strategies.dates, hypothesis.strategies.times to use + the new parameter names min_value and max_value instead of the + deprecated names + +- changes from version 3.73.4: + * This patch ensures that Hypothesis deprecation warnings display + the code that emitted them when you’re not running in -Werror mode + (issue #652). + +- changes from version 3.73.3: + * Tracebacks involving @composite are now slightly shorter due to + some internal refactoring. + +- changes from version 3.73.2: + * This patch fixes errors in the internal comments for one of the + shrinker passes. There is no user-visible change. + +- changes from version 3.73.1: + * This patch substantially improves the distribution of data + generated with recursive(), and fixes a rare internal error (issue + #1502). + +- changes from version 3.73.0 : + * This release adds the fulfill() function, which is designed for + testing code that uses dpcontracts 0.4 or later for input + validation. This provides some syntactic sugar around use of + assume(), to automatically filter out and retry calls that cause a + precondition check to fail (issue #1474). + +- changes from version 3.72.0 : + * This release makes setting attributes of the hypothesis.settings + class an explicit error. This has never had any effect, but could + mislead users who confused it with the current settings instance + hypothesis.settings.default (which is also immutable). You can + change the global settings with settings profiles. + +- changes from version 3.71.11: + * This patch factors out some common code in the shrinker for + iterating over pairs of data blocks. There should be no + user-visible change. + +- changes from version 3.71.10 : + * This patch allows from_type() to handle the empty tuple type, + typing.Tuple[()]. + +- changes from version 3.71.9 : + * This patch updates some internal comments for mypy. There is no + user-visible effect, even for Mypy users. + +- changes from version 3.71.8: + * This patch fixes a rare bug that would cause a particular shrinker + pass to raise an IndexError, if a shrink improvement changed the + underlying data in an unexpected way. + +- changes from version 3.71.7: + * This release fixes the broken cross-references in our docs, and + adds a CI check so we don’t add new ones. + +------------------------------------------------------------------- +Sun Sep 16 15:37:43 UTC 2018 - Arun Persaud + +- update to version 3.71.6: + * This patch fixes two bugs (issue #944 and issue #1521), where + messages about @seed + +- Add multibuild to allow running tests. + +------------------------------------------------------------------- +Sat Sep 8 19:08:09 UTC 2018 - Arun Persaud + +- specfile: + * updated pytest version, specified pytz version (from setup.py) + +- update to version 3.71.0: + * many changes, see https://hypothesis.readthedocs.io/en/latest/changes.html + +------------------------------------------------------------------- +Wed Sep 5 10:02:37 UTC 2018 - Matěj Cepl + +- Precompile Python files to avoid troubles with mtime and magic values. + +------------------------------------------------------------------- +Tue Sep 4 16:01:22 UTC 2018 - Matěj Cepl + +- Clean up SPEC +- Add %check section, but make it disabled per default (circular + dependency on pytest) + +------------------------------------------------------------------- +Fri Aug 31 11:55:29 UTC 2018 - Tomáš Chvátal + +- Drop the pytest-xdist dependency to build on Leap 42.3, as it + does not run tests it was quite pointless + +------------------------------------------------------------------- +Mon Jul 23 05:25:06 UTC 2018 - arun@gmx.de + +- update to version 3.66.6: + * This patch ensures that Hypothesis fully supports Python 3.7, by + upgrading from_type() (issue #1264) and fixing some minor issues + in our test suite (issue #1148). + +------------------------------------------------------------------- +Sun Jul 22 18:47:08 UTC 2018 - arun@gmx.de + +- update to version 3.66.5: + * This patch fixes the online docs for various extras, by ensuring + that their dependencies are installed on readthedocs.io (issue + #1326). + +------------------------------------------------------------------- +Fri Jul 20 15:28:09 UTC 2018 - arun@gmx.de + +- update to version 3.66.4: + * This release improves the shrinker’s ability to reorder examples. + +------------------------------------------------------------------- +Thu Jul 12 15:59:06 UTC 2018 - arun@gmx.de + +- update to version 3.66.1: + * This patch fixes a rare bug where an incorrect percentage drawtime + could be displayed for a test, when the system clock was changed + during a test running under Python 2 (we use time.monotonic() + where it is available to avoid such problems). It also fixes a + possible zero-division error that can occur when the underlying C + library double-rounds an intermediate value in math.fsum() and + gets the least significant bit wrong. + +------------------------------------------------------------------- +Sat Jul 7 17:11:59 UTC 2018 - arun@gmx.de + +- update to version 3.66.0: + * This release improves validation of the alphabet argument to the + text() strategy. The following misuses are now deprecated, and + will be an error in a future version: + + passing an unordered collection (such as set('abc')), which + violates invariants about shrinking and reproducibility + + passing an alphabet sequence with elements that are not strings + + passing an alphabet sequence with elements that are not of + length one, which violates any size constraints that may apply + +------------------------------------------------------------------- +Fri Jul 6 11:58:50 UTC 2018 - dmueller@suse.com + +- remove redundant pythons buildrequire + +------------------------------------------------------------------- +Sun Jul 1 17:47:50 UTC 2018 - arun@gmx.de + +- specfile: + * be more specific for %{python_sitelib} in %files + +- update to version 3.65.0: + * This release deprecates the max_shrinks setting in favor of an + internal heuristic. If you need to avoid shrinking examples, use + the phases setting instead. (issue #1235) + +- changes from version 3.64.2: + * This release fixes a bug where an internal assertion error could + sometimes be triggered while shrinking a failing test. + +- changes from version 3.64.1: + * This patch fixes type-checking errors in our vendored + prety-printer, which were ignored by our mypy config but visible + for anyone else (whoops). Thanks to Pi Delport for reporting issue + #1359 so promptly. + +- changes from version 3.64.0: + * This release adds an interface which can be used to insert a + wrapper between the original test function and @given (issue + #1257). This will be particularly useful for test runner + extensions such as pytest-trio, but is not recommended for direct + use by other users of Hypothesis. + +- changes from version 3.63.0: + * This release adds a new mechanism to infer strategies for classes + defined using attrs, based on the the type, converter, or + validator of each attribute. This inference is now built in to + builds() and from_type(). + * On Python 2, from_type() no longer generates instances of int when + passed long, or vice-versa. + +- changes from version 3.62.0: + * This release adds PEP 484 type hints to Hypothesis on a + provisional basis, using the comment-based syntax for Python 2 + compatibility. You can read more about our type hints here. + * It also adds the py.typed marker specified in PEP 561. After you + pip install hypothesis, mypy 0.590 or later will therefore + type-check your use of our public interface! + +------------------------------------------------------------------- +Sun Jun 24 15:40:53 UTC 2018 - arun@gmx.de + +- specfile: + * use %{version} in source + +- update to version 3.61.0: + * This release deprecates the use of settings as a context manager, + the use of which is somewhat ambiguous.Users should define + settings with global state or with the @settings(...) decorator. + +- changes from version 3.60.1: + * Fixed a bug in generating an instance of a Django model from a + strategy where the primary key is generated as part of the + strategy. See details here. + +- changes from version 3.60.0: + * This release add initialize decorator for stateful testing + (originally discussed in issue #1216). initialize act as a special + rule that is only called once, and all initialize rules are + guaranteed to be called before any normal rule is called. + +- changes from version 3.59.3: + * This is a no-op release to take into account some changes to the + release process. It should have no user visible effect. + +- changes from version 3.59.2: + * This adds support for partially sorting examples which cannot be + fully sorted. For example, [5, 4, 3, 2, 1, 0] with a constraint + that the first element needs to be larger than the last becomes + [1, 2, 3, 4, 5, 0]. + +- changes from version 3.59.1: + * This patch uses random.getstate() and random.setstate() to restore + the PRNG state after @given runs deterministic tests. Without + restoring state, you might have noticed problems such as issue + #1266. The fix also applies to stateful testing (issue #702). + +- changes from version 3.59.0: + * This release adds the emails() strategy, which generates unicode + strings representing an email address. + +- changes from version 3.58.1: + * This improves the shrinker. It can now reorder examples: 3 1 2 + becomes 1 2 3. + +- changes from version 3.58.0: + * This adds a new extra timezones() strategy that generates dateutil + timezones. Depends on python-dateutil. + +------------------------------------------------------------------- +Mon Jun 4 19:27:19 UTC 2018 - toddrme2178@gmail.com + +- Use github source archive as recommended by upstream. +- Remove unneeded python-hypothesis-build.patch + +------------------------------------------------------------------- +Thu May 31 02:56:55 UTC 2018 - toddrme2178@gmail.com + +- Update to 3.57.0 + * Using an unordered collection with the :func:`~hypothesis.strategies.permutations` + strategy has been deprecated because the order in which e.g. a set shrinks is + arbitrary. This may cause different results between runs. +- Update to 3.56.10 - 2018-05-16 + * This release makes :obj:`~hypothesis.settings.define_setting` + aprivate method, which has the effect of hiding it from the + documentation. +- Update to 3.56.9 + * This is another release with no functionality changes as part of changes to + Hypothesis's new release tagging scheme. +- Update to 3.56.8 + * This is a release with no functionality changes that moves Hypothesis over to + anew release tagging scheme. +- Update to 3.56.7 + * This release provides a performance improvement for most tests, but in + particular users of ``sampled_from`` who don't have numpy installed should see + asignificant performance improvement. +- Update to 3.56.6 + * This patch contains further internal work to support Mypy. + There are no user-visible changes... yet. +- Update to 3.56.5 + * This patch contains some internal refactoring to run :pypi:`mypy` in CI. + There are no user-visible changes. +- Update to 3.56.4 + * This release involves some very minor internal clean up and should have no + user visible effect at all. +- Update to 3.56.3 + * This release fixes a problem introduced in :ref:`3.56.0 ` where + setting the hypothesis home directory (through currently undocumented + means) would no longer result in the default database location living + in the new home directory. +- Update to 3.56.2 + * This release fixes a problem introduced in :ref:`3.56.0 ` where + setting :obj:`~hypothesis.settings.max_examples` to ``1`` would result in tests + failing with ``Unsatisfiable``. This problem could also occur in other harder + to trigger circumstances (e.g. by setting it to a low value, having a hard to + satisfy assumption, and disabling health checks). +- Update to 3.56.1 + * This release fixes a problem that was introduced in :ref:`3.56.0 `: + Use of the :envvar:`HYPOTHESIS_VERBOSITY_LEVEL` environment variable was, rather + than deprecated, actually broken due to being read before various setup + the deprecation path needed was done. It now works correctly (and emits a + deprecation warning). +- Update to 3.56.0 + * This release deprecates several redundant or internally oriented + :class:`~hypothesis.settings`, working towards an orthogonal set of + configuration options that are widely useful *without* requiring any + knowledge of our internals (:issue:`535`). + + Deprecated settings that no longer have any effect are no longer + shown in the ``__repr__`` unless set to a non-default value. + + :obj:`~hypothesis.settings.perform_health_check` is deprecated, as it + duplicates :obj:`~hypothesis.settings.suppress_health_check`. + + :obj:`~hypothesis.settings.max_iterations` is deprecated and disabled, + because we can usually get better behaviour from an internal heuristic + than a user-controlled setting. + + :obj:`~hypothesis.settings.min_satisfying_examples` is deprecated and + disabled, due to overlap with the + :obj:`~hypothesis.settings.HealthCheck.filter_too_much` healthcheck + and poor interaction with :obj:`~hypothesis.settings.max_examples`. + + :envvar:`HYPOTHESIS_VERBOSITY_LEVEL` is now deprecated. Set + :obj:`~hypothesis.settings.verbosity` through the profile system instead. + + Examples tried by :func:`~hypothesis.find` are now reported at ``debug`` + verbosity level (as well as ``verbose`` level). +- Update to 3.55.6 + * This release fixes a somewhat obscure condition (:issue:`1230`) under which you + could occasionally see a failing test trigger an assertion error inside + Hypothesis instead of failing normally. +- Update to 3.55.5 + * This patch fixes one possible cause of :issue:`966`. When running + Python 2 with hash randomisation, passing a :obj:`python:bytes` object + to :func:`python:random.seed` would use ``version=1``, which broke + :obj:`~hypothesis.settings.derandomize` (because the seed depended on + arandomised hash). If :obj:`~hypothesis.settings.derandomize` is + *still* nondeterministic for you, please open an issue. +- Update to 3.55.4 + * This patch makes a variety of minor improvements to the documentation, + and improves a few validation messages for invalid inputs. +- Update to 3.55.3 + * This release updates the URL metadata associated with the PyPI package (again). + It has no other user visible effects. +- Update to 3.55.2 + * This release updates the URL metadata associated with the PyPI package. + It has no other user visible effects. +- Update to 3.55.1 + * This patch relaxes constraints on the expected values returned + by the standard library function :func:`hypot` and the internal + helper function :func:`~hypotheses.internal.cathetus`, this to + fix near-exact test-failures on some 32-bit systems. +- Update to 3.55.0 + * This release includes several improvements to the handling of the + :obj:`~hypothesis.settings.database` setting. + + The :obj:`~hypothesis.settings.database_file` setting was a historical + artefact, and you should just use :obj:`~hypothesis.settings.database` + directly. + + The :envvar:`HYPOTHESIS_DATABASE_FILE` environment variable is + deprecated, in favor of :meth:`~hypothesis.settings.load_profile` and + the :obj:`~hypothesis.settings.database` setting. + + If you have not configured the example database at all and the default + location is not usable (due to e.g. permissions issues), Hypothesis + will fall back to an in-memory database. This is not persisted between + sessions, but means that the defaults work on read-only filesystems. +- Update to 3.54.0 + * This release improves the :func:`~hypotheses.strategies.complex_numbers` + strategy, which now supports ``min_magnitude`` and ``max_magnitude`` + arguments, along with ``allow_nan`` and ``allow_infinity`` like for + :func:`~hypotheses.strategies.floats`. + Thanks to J.J. Green for this feature. +- Update to 3.53.0 + * This release removes support for Django 1.8, which reached end of life on + 2018-04-01. You can see Django's release and support schedule + `on the Django Project website `_. +- Update to 3.52.3 + * This patch fixes the :obj:`~hypothesis.settings.min_satisfying_examples` settings + documentation, by explaining that example shrinking is tracked at the level + of the underlying bytestream rather than the output value. + * The output from :func:`~hypothesis.find` in verbose mode has also been + adjusted - see :ref:`the example session ` - to avoid + duplicating lines when the example repr is constant, even if the underlying + representation has been shrunken. +- Update to 3.52.2 + * This release improves the output of failures with + :ref:`rule based stateful testing ` in two ways: + The output from it is now usually valid Python code. + When the same value has two different names because it belongs to two different + bundles, it will now display with the name associated with the correct bundle + for a rule argument where it is used. +- Update to 3.52.1 + * This release improves the behaviour of :doc:`stateful testing ` + in two ways: + Previously some runs would run no steps (:issue:`376`). This should no longer + happen. + RuleBasedStateMachine tests which used bundles extensively would often shrink + terribly. This should now be significantly improved, though there is likely + a lot more room for improvement. + * This release also involves a low level change to how ranges of integers are + handles which may result in other improvements to shrink quality in some cases. +- Update to 3.52.0 + * This release deprecates use of :func:`@settings(...) ` + as a decorator, on functions or methods that are not also decorated with + :func:`@given `. You can still apply these decorators + in any order, though you should only do so once each. + * Applying :func:`@given ` twice was already deprecated, and + applying :func:`@settings(...) ` twice is deprecated in + this release and will become an error in a future version. Neither could ever + be used twice to good effect. + * Using :func:`@settings(...) ` as the sole decorator on + atest is completely pointless, so this common usage error will become an + error in a future version of Hypothesis. +- Update to 3.51.0 + * This release deprecates the ``average_size`` argument to + :func:`~hypothesis.strategies.lists` and other collection strategies. + You should simply delete it wherever it was used in your tests, as it + no longer has any effect. + In early versions of Hypothesis, the ``average_size`` argument was treated + as a hint about the distribution of examples from a strategy. Subsequent + improvements to the conceptual model and the engine for generating and + shrinking examples mean it is more effective to simply describe what + constitutes a valid example, and let our internals handle the distribution. +- Update to 3.50.3 + * This patch contains some internal refactoring so that we can run + with warnings as errors in CI. +- Update to 3.50.2 + * This has no user-visible changes except one slight formatting change to one docstring, to avoid a deprecation warning. +- Update to 3.50.1 + * This patch fixes an internal error introduced in :ref:`3.48.0 `, where a check + for the Django test runner would expose import-time errors in Django + configuration (:issue:`1167`). +- Update to 3.50.0 + * This release improves validation of numeric bounds for some strategies. + + :func:`~hypothesis.strategies.integers` and :func:`~hypothesis.strategies.floats` + now raise ``InvalidArgument`` if passed a ``min_value`` or ``max_value`` + which is not an instance of :class:`~python:numbers.Real`, instead of + various internal errors. + + :func:`~hypothesis.strategies.floats` now converts its bounding values to + the nearest float above or below the min or max bound respectively, instead + of just casting to float. The old behaviour was incorrect in that you could + generate ``float(min_value)``, even when this was less than ``min_value`` + itself (possible with eg. fractions). + + When both bounds are provided to :func:`~hypothesis.strategies.floats` but + there are no floats in the interval, such as ``[(2**54)+1 .. (2**55)-1]``, + InvalidArgument is raised. + + :func:`~hypothesis.strategies.decimals` gives a more useful error message + if passed a string that cannot be converted to :class:`~python:decimal.Decimal` + in a context where this error is not trapped. + Code that previously **seemed** to work may be explicitly broken if there + were no floats between ``min_value`` and ``max_value`` (only possible with + non-float bounds), or if a bound was not a :class:`~python:numbers.Real` + number but still allowed in :obj:`python:math.isnan` (some custom classes + with a ``__float__`` method). +- Update to 3.49.1 + * This patch fixes our tests for Numpy dtype strategies on big-endian platforms, + where the strategy behaved correctly but the test assumed that the native byte + order was little-endian. + There is no user impact unless you are running our test suite on big-endian + platforms. Thanks to Graham Inggs for reporting :issue:`1164`. +- Update to 3.49.0 + * This release deprecates passing ``elements=None`` to collection strategies, + such as :func:`~hypothesis.strategies.lists`. + Requiring ``lists(nothing())`` or ``builds(list)`` instead of ``lists()`` + means slightly more typing, but also improves the consistency and + discoverability of our API - as well as showing how to compose or + construct strategies in ways that still work in more complex situations. + Passing a nonzero max_size to a collection strategy where the elements + strategy contains no values is now deprecated, and will be an error in a + future version. The equivalent with ``elements=None`` is already an error. +- Update to 3.48.1 + * This patch will minimize examples that would come out non-minimal in previous versions. Thanks to Kyle Reeve for this patch. +- Update to 3.48.0 + * This release improves some "unhappy paths" when using Hypothesis + with the standard library :mod:`python:unittest` module: + + Applying :func:`@given ` to a non-test method which is + overridden from :class:`python:unittest.TestCase`, such as ``setUp``, + raises :attr:`a new health check `. + (:issue:`991`) + + Using :meth:`~python:unittest.TestCase.subTest` within a test decorated + with :func:`@given ` would leak intermediate results + when tests were run under the :mod:`python:unittest` test runner. + Individual reporting of failing subtests is now disabled during a test + using :func:`@given `. (:issue:`1071`) + + :func:`@given ` is still not a class decorator, but the + error message if you try using it on a class has been improved. + As a related improvement, using :class:`django:django.test.TestCase` with + :func:`@given ` instead of + :class:`hypothesis.extra.django.TestCase` raises an explicit error instead + of running all examples in a single database transaction. +- Update to 3.47.0 + * :obj:`~hypothesis.settings.register_profile` now accepts keyword arguments + for specific settings, and the parent settings object is now optional. + Using a ``name`` for a registered profile which is not a string was never + suggested, but it is now also deprecated and will eventually be an error. +- Update to 3.46.2 + * This release removes an unnecessary branch from the code, and has no user-visible impact. +- Update to 3.46.1 + * This changes only the formatting of our docstrings and should have no user-visible effects. +- Update to 3.46.0 + * :func:`~hypothesis.strategies.characters` has improved docs about + what arguments are valid, and additional validation logic to raise a + clear error early (instead of e.g. silently ignoring a bad argument). + Categories may be specified as the Unicode 'general category' + (eg ``u'Nd'``), or as the 'major category' (eg ``[u'N', u'Lu']`` + is equivalent to ``[u'Nd', u'Nl', u'No', u'Lu']``). + * In previous versions, general categories were supported and all other + input was silently ignored. Now, major categories are supported in + addition to general categories (which may change the behaviour of some + existing code), and all other input is deprecated. +- Update to 3.45.5 + * This patch improves strategy inference in :mod:`hypothesis.extra.django` + to account for some validators in addition to field type - see + :issue:`1116` for ongoing work in this space. + Specifically, if a :class:`~django:django.db.models.CharField` or + :class:`~django:django.db.models.TextField` has an attached + :class:`~django:django.core.validators.RegexValidator`, we now use + :func:`~hypothesis.strategies.from_regex` instead of + :func:`~hypothesis.strategies.text` as the underlying strategy. + This allows us to generate examples of the default + :class:`~django:django.contrib.auth.models.User` model, closing :issue:`1112`. +- Update to 3.45.4 + * This patch improves some internal debugging information, fixes + atypo in a validation error message, and expands the documentation + for new contributors. +- Add license file + +------------------------------------------------------------------- +Tue Mar 6 15:45:20 UTC 2018 - aplanas@suse.com + +- Allows Recommends and Suggest in Fedora + +------------------------------------------------------------------- +Fri Mar 2 09:58:08 UTC 2018 - chris@computersalat.de + +- fix deps for setuptools + +------------------------------------------------------------------- +Tue Feb 27 17:36:35 UTC 2018 - aplanas@suse.com + +- Recommends only for SUSE + +------------------------------------------------------------------- +Fri Feb 23 20:19:52 UTC 2018 - tbechtold@suse.com + +update to version 3.45.3 + * Bump version to 3.44.26 and update changelog + * That doesn't need to be conditional in the shrinker + * Add release notes + * Wrong backticks + * Response to review + * Switch over to an adaptive greedy algorithm + * Clarify dependencies on enum34, Django + * don't try to assign to *args + * Don't split expression over multiple lines needlessly + * define labels in top-level constants since they're expensive-ish to compute + * Change how we track whether a block is shrinking + * Add tests for zig zagging behaviour + * Update isort from 4.2.15 to 4.3.2 + * Add a section about deferring errors + * specify target and args for build() together as *target_and_args + * Fix typo + * Bump version to 3.44.17 and update changelog + * Add flaky annotation to test_can_generate_interval_endpoints + * Add notion of labels to strategies + * Bump version to 3.44.25 and update changelog + * Update pytest from 3.3.2 to 3.4.0 + * address more code review comments + * Bump version to 3.44.19 and update changelog + * Remove just and of course + * Bump version to 3.45.2 and update changelog + * don't refer to hypothesis_internal_target from bad implementation + * Add a release note for the source changes + * Add quality tests on Python 2 + * Update safety from 1.6.1 to 1.7.0 + * Fix typo in docstring + * Bump the required version of attrs + * Fix unbalanced quotes + * Pass access to blocks and intervals through a level of indirection + * Run 'make format' with the new version of isort + * dont use 'target' in naming arg to builds() + * Improve section on testing + * Fix tests expecting specific example counts + * add docstrings in base_defines_strategy + * fix test_{nested_}discarded_intervals_are_not_in_labels to not assert exact equality + * Clean up argument handling logic so we have full coverage again + * Deal with another old-typing-module problem + * write release note + * Update isort from 4.3.2 to 4.3.3 + * Run 'make requirements' + * Add tests for labelling behaviour + * Expand on what we track + * Whoops new style class + * Update pytz from 2017.3 to 2018.3 + * Move interval calculation to shrinker + * Convert types from strings to hbytes + * Only replace examples, not joined intervals. Make more things examples + * Switch hyphens to em-dashes + * Update autoflake from 1.0 to 1.1 + * Bump version to 3.44.21 and update changelog + * Update python-gitlab from 1.2.0 to 1.3.0 + * Use more descriptive names + * Move instructions on running tests to testing guide + * Lets not have slow tests like that in tests/cover + * Track changed blocks and remove a common offset from them + * give every Example a label + * Bump version to 3.44.18 and update changelog + * Update isort from 4.3.3 to 4.3.4 + * Add tests for new behaviour + * Bump version to 3.44.22 and update changelog + * test_saves_negated_examples_in_covering docstring wording tweak + * remove old implementation + * Fix style issues in src + * fix based on Zac's code review + * Update imagesize from 0.7.1 to 1.0.0 + * Update coverage from 4.5 to 4.5.1 + * Update tests to account for new covering examples + * Update certifi from 2017.11.5 to 2018.1.18 + * Update typing from 3.6.2 to 3.6.4 + * Track examples by draw index + * rename target arg so we can use targets requiring an argument 'target' + * Update babel from 2.5.2 to 2.5.3 + * Update pytest-xdist from 1.21.0 to 1.22.0 + * Add a release note + * Monospace engine.py + * Move flake8 config to tox.ini + * Add flake8-docstrings + * improve test_saves_negated_examples_in_covering to check what we actually care about + * tweaks from code review + * There was no good reason for that test to be that complicated + * Correct env naming + * Clean up unfinished examples at the end + * Add a guide for working on internals + * ideally -> usually + * Update autopep8 from 1.3.3 to 1.3.4 + * Bump version to 3.45.3 and update changelog + * Bump version to 3.45.0 and update changelog + * Make test_minimize_sets_of_sets non-flaky + * Remove seed + * Remove reference to intervals + * Update coverage from 4.4.2 to 4.5 + * Bump version to 3.45.1 and update changelog + * Slight rewording + * Bump version to 3.44.24 and update changelog + * Update doctest + * Bump version to 3.44.20 and update changelog + * add myself to contributors + * Bump version to 3.44.23 and update changelog + * Update babel from 2.5.1 to 2.5.2 + * don't use backticks in exception messages + * remove duplicate + * Change the way we calculate average_size's default + * fix formatting of release file + * Remove a bunch of dead code and comments + * Revert "Switch hyphens to em-dashes" + * Track labels on examples + * Fix style issues in tests + * Clarify specificity there + * Update sphinx from 1.6.6 to 1.6.7 + * Update sphinx from 1.6.7 to 1.7.0 + * Those spaces aren't needed + * Run tests on 2.7.14 + * Just exit with the return code + * fix indentation of docstrings produced by renamed_arguments + * fix formatting + * Update pygithub from 1.35 to 1.36 +- Use pythonhosted.org sdist for Source +- Comment BuildRequires for tests. Tests in %check section are + currently disabled + +------------------------------------------------------------------- +Wed Jan 17 15:46:40 UTC 2018 - tchvatal@suse.com + +- Condition py2 only dependencies so we do not pull them on py3 + only scenario + +------------------------------------------------------------------- +Wed Jan 17 03:55:40 UTC 2018 - arun@gmx.de + +- update to version 3.44.16: + * This release improves test case reduction for recursive data + structures. Hypothesis now guarantees that whenever a strategy + calls itself recursively (usually this will happen because you are + using deferred()), any recursive call may replace the top level + value. e.g. given a tree structure, Hypothesis will always try + replacing it with a subtree. + * Additionally this introduces a new heuristic that may in some + circumstances significantly speed up test case reduction - + Hypothesis should be better at immediately replacing elements + drawn inside another strategy with their minimal possible value. + +- changes from version 3.44.15: + * from_type() can now resolve recursive types such as binary trees + (issue #1004). Detection of non-type arguments has also improved, + leading to better error messages in many cases involving forward + references. + +- changes from version 3.44.14 : + * This release fixes a bug in the shrinker that prevented the + optimisations in 3.44.6 from working in some cases. It would not + have worked correctly when filtered examples were nested + (e.g. with a set of integers in some range). + * This would not have resulted in any correctness problems, but + shrinking may have been slower than it otherwise could be. + +- changes from version 3.44.13: + * This release changes the average bit length of values drawn from + integers() to be much smaller. Additionally it changes the + shrinking order so that now size is considered before sign - + e.g. -1 will be preferred to +10. + * The new internal format for integers required some changes to the + minimizer to make work well, so you may also see some improvements + to example quality in unrelated areas. + +- changes from version 3.44.12: + * This changes Hypothesis’s internal implementation of weighted + sampling. This will affect example distribution and quality, but + you shouldn’t see any other effects. + +- changes from version 3.44.11 : + * This is a change to some internals around how Hypothesis handles + avoiding generating duplicate examples and seeking out novel + regions of the search space. + * You are unlikely to see much difference as a result of it, but it + fixes a bug where an internal assertion could theoretically be + triggered and has some minor effects on the distribution of + examples so could potentially find bugs that have previously been + missed. + +- changes from version 3.44.10: + * This patch avoids creating debug statements when debugging is + disabled. Profiling suggests this is a 5-10% performance + improvement (issue #1040). + +------------------------------------------------------------------- +Sat Jan 6 17:11:29 UTC 2018 - arun@gmx.de + +- update to version 3.44.9: + * This patch blacklists null characters ('\x00') in automatically + created strategies for Django CharField and TextField, due to a + database issue which was recently fixed upstream (Hypothesis issue + #1045). + +------------------------------------------------------------------- +Sat Jan 6 07:24:23 UTC 2018 - arun@gmx.de + +- update to version 3.44.8: + * This release makes the Hypothesis shrinker slightly less greedy in + order to avoid local minima - when it gets stuck, it makes a small + attempt to search around the final example it would previously + have returned to find a new starting point to shrink from. This + should improve example quality in some cases, especially ones + where the test data has dependencies among parts of it that make + it difficult for Hypothesis to proceed. + +------------------------------------------------------------------- +Thu Jan 4 17:06:43 UTC 2018 - arun@gmx.de + +- update to version 3.44.7: + * This release adds support for Django 2 in the hypothesis-django + extra. + * This release drops support for Django 1.10, as it is no longer + supported by the Django team. + +------------------------------------------------------------------- +Wed Jan 3 22:43:51 UTC 2018 - arun@gmx.de + +- update to version 3.44.6: + * This release speeds up test case reduction in many examples by + being better at detecting large shrinks it can use to discard + redundant parts of its input. This will be particularly noticeable + in examples that make use of filtering and for some integer + ranges. + +- changes from version 3.44.5: + * This is a no-op release that updates the year range on all of the + copyright headers in our source to include 2018. + +------------------------------------------------------------------- +Wed Jan 3 10:03:42 UTC 2018 - tchvatal@suse.com + +- Disable the tests as it is too flaky to be reliable + +------------------------------------------------------------------- +Sun Dec 31 05:55:59 UTC 2017 - arun@gmx.de + +- update to version 3.44.4: + * This release fixes issue #1044, which slowed tests by up to 6% due + to broken caching. + +------------------------------------------------------------------- +Thu Dec 21 18:22:00 UTC 2017 - arun@gmx.de + +- update to version 3.44.3: + * This release improves the shrinker in cases where examples drawn + earlier can affect how much data is drawn later (e.g. when you + draw a length parameter in a composite and then draw that many + elements). Examples found in cases like this should now be much + closer to minimal. + +- changes from version 3.44.2: + * This is a pure refactoring release which changes how Hypothesis + manages its set of examples internally. It should have no + externally visible effects. + +- changes from version 3.44.1: + * This release fixes issue #997, in which under some circumstances + the body of tests run under Hypothesis would not show up when run + under coverage even though the tests were run and the code they + called outside of the test file would show up normally. + +- changes from version 3.44.0: + * This release adds a new feature: The @reproduce_failure, designed + to make it easy to use Hypothesis’s binary format for examples to + reproduce a problem locally without having to share your example + database between machines. + This also changes when seeds are printed: + + They will no longer be printed for normal falsifying examples, + as there are now adequate ways of reproducing those for all + cases, so it just contributes noise. + + They will once again be printed when reusing examples from the + database, as health check failures should now be more reliable + in this scenario so it will almost always work in this case. + +- changes from version 3.43.1: + * This release fixes a bug with Hypothesis’s database management - + examples that were found in the course of shrinking were saved in + a way that indicated that they had distinct causes, and so they + would all be retried on the start of the next test. The intended + behaviour, which is now what is implemented, is that only a + bounded subset of these examples would be retried. + +------------------------------------------------------------------- +Sun Dec 17 01:26:12 UTC 2017 - arun@gmx.de + +- update to version 3.43.0: + * HypothesisDeprecationWarning now inherits from FutureWarning + instead of DeprecationWarning, as recommended by PEP 565 for + user-facing warnings (issue #618). If you have not changed the + default warnings settings, you will now see each distinct + HypothesisDeprecationWarning instead of only the first. + +------------------------------------------------------------------- +Fri Dec 15 08:55:52 UTC 2017 - ecsos@opensuse.org + +- Add patch python-hypothesis-build.patch + to fix Factory build error + +------------------------------------------------------------------- +Thu Dec 14 15:00:24 UTC 2017 - tchvatal@suse.com + +- Update to 3.42.2: + * Few tiny fixes +- Switch to github tarball to contain tests +- Make sure to state all buildtime dependencies + +------------------------------------------------------------------- +Tue Dec 12 00:54:26 UTC 2017 - arun@gmx.de + +- update to version 3.42.1: + * This release has some internal cleanup, which makes reading the + code more pleasant and may shrink large examples slightly faster. + +------------------------------------------------------------------- +Sat Dec 9 17:39:47 UTC 2017 - arun@gmx.de + +- specfile: + * removed conditional for test as requested in SR 555280 + * added coverage as a requirement + +- update to version 3.42.0: + * This release deprecates hypothesis[fakefactory], which was + designed as a transition strategy but does not support example + shrinking or coverage-guided discovery. + +------------------------------------------------------------------- +Thu Dec 7 16:46:53 UTC 2017 - arun@gmx.de + +- update to version 3.41.0: + * sampled_from() can now sample from one-dimensional numpy + ndarrays. Sampling from multi-dimensional ndarrays still results + in a deprecation warning. Thanks to Charlie Tanksley for this + patch. + +------------------------------------------------------------------- +Wed Dec 6 02:52:35 UTC 2017 - arun@gmx.de + +- update to version 3.40.1: + +3.40.1 - 2017-12-04 + * This release makes two changes: + + It makes the calculation of some of the metadata that Hypothesis + uses for shrinking occur lazily. This should speed up + performance of test case generation a bit because it no longer + calculates information it doesn’t need. + + It improves the shrinker for certain classes of nested + examples. e.g. when shrinking lists of lists, the shrinker is + now able to concatenate two adjacent lists together into a + single list. As a result of this change, shrinking may get + somewhat slower when the minimal example found is large. + +- changes from version 3.40.0: + * This release improves how various ways of seeding Hypothesis + interact with the example database: + + Using the example database with seed() is now deprecated. You + should set database=None if you are doing that. This will only + warn if you actually load examples from the database while using + @seed. + + The derandomize will behave the same way as @seed. + + Using --hypothesis-seed will disable use of the database. + + If a test used examples from the database, it will not suggest + using a seed to reproduce it, because that won’t work. + +- changes from version 3.39.0: + * This release adds a new health check that checks if the smallest + “natural” possible example of your test case is very large - this + will tend to cause Hypothesis to generate bad examples and be + quite slow. + +- changes from version 3.38.9: + * This is a documentation release to improve the documentation of + shrinking behaviour for Hypothesis’s strategies. + +- changes from version 3.38.8: + * This release improves the performance of characters() when using + blacklist_characters and from_regex() when using negative + character classes. + +- changes from version 3.38.7: + * This is a patch release for from_regex(), which had a bug in + handling of the re.VERBOSE flag (issue #992). Flags are now + handled correctly when parsing regex. + +------------------------------------------------------------------- +Tue Nov 28 19:04:24 UTC 2017 - arun@gmx.de + +- update to version 3.38.6: + * This patch changes a few byte-string literals from double to + single quotes, thanks to an update in unify. There are no + user-visible changes. + +------------------------------------------------------------------- +Sun Nov 26 21:26:33 UTC 2017 - arun@gmx.de + +- update to version 3.38.5: + * This fixes the repr of strategies using lambda that are defined + inside decorators to include the lambda source. + This would mostly have been visible when using the statistics + functionality - lambdas used for e.g. filtering would have shown + up with a as their body. This can still happen, but it + should happen less often now. + +------------------------------------------------------------------- +Wed Nov 22 19:42:32 UTC 2017 - arun@gmx.de + +- update to version 3.38.4: + * This release updates the reported statistics so that they show + approximately what fraction of your test run time is spent in data + generation (as opposed to test execution). + +- changes from version 3.38.3: + * This is a documentation release, which ensures code examples are + up to date by running them as doctests in CI (issue #711). + +- changes from version 3.38.2: + * This release changes the behaviour of the deadline setting when + used with data(): Time spent inside calls to data.draw will no + longer be counted towards the deadline time. + * As a side effect of some refactoring required for this work, the + way flaky tests are handled has changed slightly. You are unlikely + to see much difference from this, but some error messages will + have changed. + +- changes from version 3.38.1: + * This patch has a variety of non-user-visible refactorings, + removing various minor warts ranging from indirect imports to + typos in comments. + +------------------------------------------------------------------- +Sun Nov 19 05:19:56 UTC 2017 - arun@gmx.de + +- update to version 3.38.0: + * This release overhauls the health check system in a variety of + small ways. It adds no new features, but is nevertheless a minor + release because it changes which tests are likely to fail health + checks. + * The most noticeable effect is that some tests that used to fail + health checks will now pass, and some that used to pass will + fail. These should all be improvements in accuracy. In particular: + + New failures will usually be because they are now taking into + account things like use of data() and assume() inside the test + body. + + New failures may also be because for some classes of example the + way data generation performance was measured was artificially + faster than real data generation (for most examples that are + hitting performance health checks the opposite should be the + case). + + Tests that used to fail health checks and now pass do so because + the health check system used to run in a way that was subtly + different than the main Hypothesis data generation and lacked + some of its support for e.g. large examples. + * If your data generation is especially slow, you may also see your + tests get somewhat faster, as there is no longer a separate health + check phase. This will be particularly noticeable when rerunning + test failures. + +------------------------------------------------------------------- +Tue Nov 14 01:32:07 UTC 2017 - arun@gmx.de + +- update to version 3.37.0: + * This is a deprecation release for some health check related + features. + * The following are now deprecated: + + Passing exception_in_generation to suppress_health_check. This + no longer does anything even when passed - All errors that occur + during data generation will now be immediately reraised rather + than going through the health check mechanism. + + Passing random_module to suppress_health_check. This hasn’t done + anything for a long time, but was never explicitly + deprecated. Hypothesis always seeds the random module when + running @given tests, so this is no longer an error and + suppressing it doesn’t do anything. + + Passing non-HealthCheck values in suppress_health_check. This + was previously allowed but never did anything useful. + +------------------------------------------------------------------- +Sat Nov 11 17:16:21 UTC 2017 - arun@gmx.de + +- update to version 3.36.1: + * This is a yak shaving release, mostly concerned with our own + tests. + While getfullargspec() was documented as deprecated in Python 3.5, + it never actually emitted a warning. Our code to silence this + (nonexistent) warning has therefore been removed. + We now run our tests with DeprecationWarning as an error, and made + some minor changes to our own tests as a result. This required + similar upstream updates to coverage and execnet (a test-time + dependency via pytest-xdist). + There is no user-visible change in Hypothesis itself, but we + encourage you to consider enabling deprecations as errors in your + own tests. + +------------------------------------------------------------------- +Tue Nov 7 23:22:24 UTC 2017 - arun@gmx.de + +- update to version 3.36.0: + * This release adds a setting to the public API, and does some + internal cleanup: + + The derandomize setting is now documented (issue #890) + + Removed - and disallowed - all ‘bare excepts’ in Hypothesis + (issue #953) + + Documented the strict setting as deprecated, and updated the + build so our docs always match deprecations in the code. + +- changes from version 3.35.0: + * This minor release supports constraining uuids() to generate + uuid.UUID`s of a particular version. (:issue:`721) + +------------------------------------------------------------------- +Sat Nov 4 02:01:40 UTC 2017 - arun@gmx.de + +- update to version 3.34.1: + * This patch updates the documentation to suggest builds(callable) + instead of just(callable()). + +------------------------------------------------------------------- +Fri Nov 3 05:13:56 UTC 2017 - arun@gmx.de + +- update to version 3.34.0: + * Hypothesis now emits deprecation warnings if you apply @given more + than once to a target. + Applying @given repeatedly wraps the target multiple times. Each + wrapper will search the space of of possible parameters + separately. This is equivalent but will be much more inefficient + than doing it with a single call to @given. + For example, instead of @given(booleans()) @given(integers()), you + could write @given(booleans(), integers()) + +- changes from version 3.33.1 : + * builds() would try to infer a strategy for required positional + arguments of the target from type hints, even if they had been + given to builds() as positional arguments (issue #946). Now it + only infers missing required arguments. + * An internal introspection function wrongly reported self as a + required argument for bound methods, which might also have + affected builds(). Now it knows better. + +------------------------------------------------------------------- +Tue Oct 17 01:47:00 UTC 2017 - arun@gmx.de + +- update to version 3.33.0: + * This release supports strategy inference for more field types in + Django models() - you can now omit an argument for Date, Time, + Duration, Slug, IP Address, and UUID fields. (issue #642) + * Strategy generation for fields with grouped choices now selects + choices from each group, instead of selecting from the group + names. + +------------------------------------------------------------------- +Sun Oct 15 22:19:10 UTC 2017 - arun@gmx.de + +- specfile: + * removed sed for src/hypothesis/tools/mergedbs.py, not in tar-ball anymore + +- update to version 3.32.2: + * This patch removes the mergedb tool, introduced in Hypothesis + 1.7.1 on an experimental basis. It has never actually worked, and + the new Hypothesis example database is designed to make such a + tool unnecessary. + +- changes from version 3.32.1: + * This patch has two improvements for strategies based on + enumerations. + * from_type() now handles enumerations correctly, delegating to + sampled_from(). Previously it noted that Enum.__init__ has no + required arguments and therefore delegated to builds(), which + would subsequently fail. + * When sampling from an enum.Flag, we also generate combinations of + members. Eg for Flag('Permissions', 'READ, WRITE, EXECUTE') we can + now generate, Permissions.READ, Permissions.READ|WRITE, and so on. + +------------------------------------------------------------------- +Mon Oct 9 04:06:23 UTC 2017 - arun@gmx.de + +- update to version 3.32.0: + * This changes the default value of use_coverage=True to True when + running on pypy (it was already True on CPython). + + It was previously set to False because we expected it to be too + slow, but recent benchmarking shows that actually performance of + the feature on pypy is fairly acceptable - sometimes it’s slower + than on CPython, sometimes it’s faster, but it’s generally within + a factor of two either way. + +- changes from version 3.31.6: + * This patch improves the quality of strategies inferred from Numpy + dtypes: + + Integer dtypes generated examples with the upper half of their + (non-sign) bits set to zero. The inferred strategies can now + produce any representable integer. + + Fixed-width unicode- and byte-string dtypes now cap the internal + example length, which should improve example and shrink quality. + + Numpy arrays can only store fixed-size strings internally, and + allow shorter strings by right-padding them with null + bytes. Inferred string strategies no longer generate such + values, as they can never be retrieved from an array. This + improves shrinking performance by skipping useless values. + + This has already been useful in Hypothesis - we found an + overflow bug in our Pandas support, and as a result indexes() + and range_indexes() now check that min_size and max_size are at + least zero. + +- changes from version 3.31.5: + * This release fixes a performance problem in tests where + + use_coverage is set to True. + + Tests experience a slow-down proportionate to the amount of code + they cover. This is still the case, but the factor is now low + enough that it should be unnoticeable. Previously it was large + and became much larger in 3.28.4. + +- changes from version 3.31.4: + * from_type() failed with a very confusing error if passed a + NewType() (issue #901). These psudeo-types are now unwrapped + correctly, and strategy inference works as expected. + +------------------------------------------------------------------- +Fri Oct 6 19:43:51 UTC 2017 - arun@gmx.de + +- update to version 3.31.3: + * This release makes some small optimisations to our use of coverage + that should reduce constant per-example overhead. This is probably + only noticeable on examples where the test itself is quite + fast. On no-op tests that don’t test anything you may see up to a + fourfold speed increase (which is still significantly slower than + without coverage). On more realistic tests the speed up is likely + to be less than that. + +------------------------------------------------------------------- +Thu Oct 5 12:11:08 UTC 2017 - dimstar@opensuse.org + +- Add python-attrs and python-coverage requires, matching the info + of setup.py. + +------------------------------------------------------------------- +Tue Oct 3 01:14:16 UTC 2017 - arun@gmx.de + +- update to version 3.31.2: + * long list of updates, see + https://hypothesis.readthedocs.io/en/latest/changes.html + +------------------------------------------------------------------- +Mon Jul 10 11:52:42 UTC 2017 - jengelh@inai.de + +- Ensure neutrality of description. + +------------------------------------------------------------------- +Thu Jun 29 17:51:17 UTC 2017 - aloisio@gmx.com + +- Update to version 3.11.6 + (see https://github.com/HypothesisWorks/hypothesis-python/blob/3.11.6/docs/changes.rst) +- Added fdupes +- Updated homepage URL + +------------------------------------------------------------------- +Tue Feb 21 14:06:42 UTC 2017 - jmatejek@suse.com + +- update for singlespec +- test requirements are now conditional --with=test, to shorten build loop + for new submission + (this will be reverted soon) +- update to 3.6.1 + * better thread safety + * support for --hypothesis-show-statistics in pytest + * better python 3.4 support + * renamed fake-factory dependency to Faker + +------------------------------------------------------------------- +Thu May 12 16:35:11 UTC 2016 - toddrme2178@gmail.com + +- Fix download URL. + +------------------------------------------------------------------- +Mon May 9 17:57:36 UTC 2016 - toddrme2178@gmail.com + +- Update to 3.1.3 + + Single bug fix release + * Another charmap problem. In 3.1.2 text/characters would break on systems + which had /tmp/ mounted on a different partition than the Hypothesis + storage directory (usually in home). This fixes that. +- Update to 3.1.2 + + Single bug fix release: + * Anything which used a text() or characters() strategy was broken on + Windows and I hadn’t updated appveyor to use the new repository location + so I didn’t notice. This is now fixed and windows support should work + correctly. +- Update to 3.1.1 + + Minor bug fix release. + * Fix concurrency issue when running tests that use text() from multiple + processes at once (Bug #302, thanks to Alex Chan). + * Improve performance of code using lists with max_size (thanks to Cristi + Cobzarenco). + * Fix install on Python 2 with ancient versions of pip so that it installs + the enum34 backport (thanks to Donald Stufft for telling me how to do + this). + * Remove duplicated __all__ exports from hypothesis.strategies (thanks to + Piët Delport). + * Update headers to point to new repository location. + * Allow use of strategies that can’t be used in find() (e.g. choices) in + stateful testing. +- Update to 3.1.0 + * Add a ‘nothing’ strategy that never successfully generates values. + * sampled_from() and one_of() can both now be called with an empty argument + list, in which case they also never generate any values. + * one_of may now be called with a single argument that is a collection of + strategies as well as as varargs. + * Add a ‘runner’ strategy which returns the instance of the current test + object if there is one. + * ‘Bundle’ for RuleBasedStateMachine is now a normal(ish) strategy and can be + used as such. + * Tests using RuleBasedStateMachine should now shrink significantly better. + * Hypothesis now uses a pretty-printing library internally, compatible with + IPython’s pretty printing protocol (actually using the same code). This may + improve the quality of output in some cases. + * As a ‘phases’ setting that allows more fine grained control over which + parts of the process Hypothesis runs + * Add a suppress_health_check setting which allows you to turn off specific + health checks in a fine grained manner. + * Fix a bug where lists of non fixed size would always draw one more element + than they included. This mostly didn’t matter, but if would cause problems with + empty strategies or ones with side effects. + * Add a mechanism to the Django model generator to allow you to explicitly + request the default value (thanks to Jeremy Thurgood for this one). +- Update to 3.0.5 + * Fix a bug where Hypothesis would now error on py.test development versions. +- Update to 3.0.4 + * Fix a bug where Hypothesis would error when running on Python 2.7.3 or + earlier because it was trying to pass a bytearray object to struct.unpack + (which is only supported since 2.7.4). +- Update to 3.0.3 + * Fix version parsing of py.test to work with py.test release candidates + * More general handling of the health check problem where things could fail + because of a cache miss - now one “free” example is generated before the + start of the health check run. +- Update to 3.0.2 + * Under certain circumstances, strategies involving text() buried inside some + other strategy (e.g. text().filter(...) or recursive(text(), ...)) would + cause a test to fail its health checks the first time it ran. This was + caused by having to compute some related data and cache it to disk. On + travis or anywhere else where the .hypothesis directory was recreated this + would have caused the tests to fail their health check on every run. This + is now fixed for all the known cases, although there could be others + lurking. +- Update to 3.0.1 + * Fix a case where it was possible to trigger an “Unreachable” assertion when + running certain flaky stateful tests. + * Improve shrinking of large stateful tests by eliminating a case where it + was hard to delete early steps. + * Improve efficiency of drawing binary(min_size=n, max_size=n) significantly + by provide a custom implementation for fixed size blocks that can bypass a + lot of machinery. + * Set default home directory based on the current working directory at the + point Hypothesis is imported, not whenever the function first happens to be + called. +- Update to 3.0.0 + + Externally this looks like a very small release. It has one small breaking + change that probably doesn’t affect anyone at all (some behaviour that + never really worked correctly is now outright forbidden) but necessitated a + major version bump and one visible new feature. + Internally this is a complete rewrite. Almost nothing other than the + public API is the same. + + New features: + * Addition of data() strategy which allows you to draw arbitrary data + interactively within the test. + * New “exploded” database format which allows you to more easily check the + example database into a source repository while supporting merging. + * Better management of how examples are saved in the database. + * Health checks will now raise as errors when they fail. It was too easy to + have the warnings be swallowed entirely. + + New limitations: + * choices and streaming strategies may no longer be used with find(). + Neither may data() (this is the change that necessitated a major version + bump). + + Feature removal: + * The ForkingTestCase executor has gone away. It may return in some more + working form at a later date. + + Performance improvements: + * A new model which allows flatmap, composite strategies and stateful + testing to perform much better. They should also be more reliable. + * Filtering may in some circumstances have improved significantly. This + will help especially in cases where you have lots of values with + individual filters on them, such as lists(x.filter(...)). + * Modest performance improvements to the general test runner by avoiding + expensive operations + * In general your tests should have got faster. If they’ve instead got + significantly slower, I’m interested in hearing about it. + + Data distribution: + * The data distribution should have changed significantly. This may uncover + bugs the previous version missed. It may also miss bugs the previous + version could have uncovered. Hypothesis is now producing less strongly + correlated data than it used to, but the correlations are extended over + more of the structure. + + Shrinking: + * Shrinking quality should have improved. In particular Hypothesis can now + perform simultaneous shrinking of separate examples within a single test + (previously it was only able to do this for elements of a single + collection). + In some cases performance will have improved, in some cases it will have + got worse but generally shouldn’t have by much. +- Update to 2.0.0 + + This release cleans up all of the legacy that accrued in the course of + Hypothesis 1.0. These are mostly things that were emitting deprecation + warnings in 1.19.0, but there were a few additional changes. + In particular: + * non-strategy values will no longer be converted to strategies when used + in given or find. + * FailedHealthCheck is now an error and not a warning. + * Handling of non-ascii reprs in user types have been simplified by using + raw strings in more places in Python 2. + * given no longer allows mixing positional and keyword arguments. + * given no longer works with functions with defaults. + * given no longer turns provided arguments into defaults - they will not + appear in the argspec at all. + * the basic() strategy no longer exists. + * the n_ary_tree strategy no longer exists. + * the average_list_length setting no longer exists. Note: If you’re using + using recursive() this will cause you a significant slow down. You should + pass explicit average_size parameters to collections in recursive calls. + * @rule can no longer be applied to the same method twice. + * Python 2.6 and 3.3 are no longer officially supported, although in + practice they still work fine. + + This also includes two non-deprecation changes: + * given’s keyword arguments no longer have to be the rightmost arguments + and can appear anywhere in the method signature. + * The max_shrinks setting would sometimes not have been respected. +- Update to 1.19.0 + + This release heralds the beginning of a new and terrible age of Hypothesis + 2.0. + It’s primary purpose is some final deprecations prior to said release. The + goal is that if your code emits no warnings under this release then it + will probably run unchanged under Hypothesis 2.0 (there are some caveats + to this: 2.0 will drop support for some Python versions, and if you’re + using internal APIs then as usual that may break without warning). + + It does have two new features: + * New @seed() decorator which allows you to manually seed a test. This may + be harmlessly combined with and overrides the derandomize setting. + * settings objects may now be used as a decorator to fix those settings to + a particular @given test. + + API changes (old usage still works but is deprecated): + * Settings has been renamed to settings (lower casing) in order to make the + decorator usage more natural. + * Functions for the storage directory that were in hypothesis.settings are + now in a new hypothesis.configuration module. + + Additional deprecations: + * the average_list_length setting has been deprecated in favour of being + explicit. + * the basic() strategy has been deprecated as it is impossible to support + it under a Conjecture based model, which will hopefully be implemented at + some point in the 2.x series. + * the n_ary_tree strategy (which was never actually part of the public API) + has been deprecated. + * Passing settings or random as keyword arguments to given is deprecated + (use the new functionality instead) + + Bug fixes: + * No longer emit PendingDeprecationWarning for __iter__ and StopIteration + in streaming() values. + * When running in health check mode with non strict, don’t print quite so + many errors for an exception in reify. + * When an assumption made in a test or a filter is flaky, tests will now + raise Flaky instead of UnsatisfiedAssumption. +- Update to 1.18.1 + + Two behind the scenes changes: + * Hypothesis will no longer write generated code to the file system. This + will improve performance on some systems (e.g. if you’re using + PythonAnywhere which is running your code from NFS) and prevent some + annoying interactions with auto-restarting systems. + * Hypothesis will cache the creation of some strategies. This can + significantly improve performance for code that uses flatmap or composite + and thus has to instantiate strategies a lot. +- Update to 1.18.0 + + Features: + * Tests and find are now explicitly seeded off the global random module. + This means that if you nest one inside the other you will now get a + health check error. It also means that you can control global + randomization by seeding random. + * There is a new random_module() strategy which seeds the global random + module for you and handles things so that you don’t get a health check + warning if you use it inside your tests. + * floats() now accepts two new arguments: allow_nan and allow_infinity. + These default to the old behaviour, but when set to False will do what + the names suggest. + + Bug fixes: + * Fix a bug where tests that used text() on Python 3.4+ would not actually + be deterministic even when explicitly seeded or using the derandomize + mode, because generation depended on dictionary iteration order which was + affected by hash randomization. + * Fix a bug where with complicated strategies the timing of the initial + health check could affect the seeding of the subsequent test, which would + also render supposedly deterministic tests non-deterministic in some + scenarios. + * In some circumstances flatmap() could get confused by two structurally + similar things it could generate and would produce a flaky test where the + first time it produced an error but the second time it produced the other + value, which was not an error. The same bug was presumably also possible + in composite(). + * flatmap() and composite() initial generation should now be moderately + faster. This will be particularly noticeable when you have many values + drawn from the same strategy in a single run, e.g. constructs like + lists(s.flatmap(f)). Shrinking performance may have suffered, but this + didn’t actually produce an interestingly worse result in any of the + standard scenarios tested. +- Update to 1.17.1 + * A small bug fix release, which fixes the fact that the ‘note’ function + could not be used on tests which used the @example decorator to provide + explicit examples. +- Update to 1.17.0 + + This is actually the same release as 1.16.1, but 1.16.1 has been pulled + because it contains the following additional change that was not intended + to be in a patch release (it’s perfectly stable, but is a larger change + that should have required a minor version bump): + * Hypothesis will now perform a series of “health checks” as part of + running your tests. These detect and warn about some common error + conditions that people often run into which wouldn’t necessarily have + caued the test to fail but would cause e.g. degraded performance or + confusing results. +- Update to 1.16.1 + * A small bugfix release that allows bdists for Hypothesis to be built under + 2.7 - the compat3.py file which had Python 3 syntax wasn’t intended to be + loaded under Python 2, but when building a bdist it was. In particular + this would break running setup.py test. + +------------------------------------------------------------------- +Wed Dec 9 10:06:43 UTC 2015 - dmueller@suse.com + +- update to 1.16.0: + * Functions from hypothesis.strategies will no longer raise InvalidArgument on bad arguments + * Errors caused by accidentally invoking the legacy API are now much less confusing + * hypothesis.extra.django is 1.9 compatible. + * When tests are run with max_shrinks=0 this will now still rerun the test on failure + +------------------------------------------------------------------- +Tue Nov 24 12:48:51 UTC 2015 - toddrme2178@gmail.com + +- Fix license naming. + +------------------------------------------------------------------- +Tue Nov 10 07:38:36 UTC 2015 - tbechtold@suse.com + +- Initial packaging (version 1.14.0) + diff --git a/python-hypothesis.spec b/python-hypothesis.spec new file mode 100644 index 0000000..c281970 --- /dev/null +++ b/python-hypothesis.spec @@ -0,0 +1,216 @@ +# +# spec file +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_with ringdisabled +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +# Magic for OBS Staging. Only build the flavors required by +# other packages in the ring. +%if %{with ringdisabled} +ExclusiveArch: do_not_build +%endif +%else +%define psuffix %{nil} +%bcond_with test +%endif +%if 0%{?suse_version} <= 1550 +%bcond_with complete_tests +%else +%bcond_without complete_tests +%endif +%{?sle15_python_module_pythons} +Name: python-hypothesis%{psuffix} +Version: 6.82.7 +Release: 0 +Summary: A library for property based testing +License: MPL-2.0 +URL: https://github.com/HypothesisWorks/hypothesis +# Source is the `hypothesis-python` subdir of the Github repository. +# Edit the `_service` file and run `osc service runall` for updates. +# See also https://hypothesis.readthedocs.io/en/latest/packaging.html +Source: hypothesis-python-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module pytz} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-attrs >= 19.2.0 +Requires: (python-exceptiongroup >= 1.0.0 if python-base < 3.11) +Requires: (python-sortedcontainers >= 2.1.0 with python-sortedcontainers < 3.0) +Requires(post): update-alternatives +Requires(preun):update-alternatives +# SECTION requires_extra +# consuming packages need to declare these optional dependencies explicitly +Recommends: python-Django >= 3.2 +Recommends: python-black >= 19.10 +Recommends: python-click >= 7.0 +Recommends: python-dpcontracts >= 0.4 +Recommends: python-lark >= 0.10.1 +Recommends: python-libcst >= 0.3.16 +Recommends: python-numpy >= 1.16.0 +Recommends: python-pandas >= 1.1 +Recommends: python-pytest >= 4.6 +Recommends: python-python-dateutil >= 1.4 +Recommends: python-pytz >= 2014.1 +Recommends: python-redis >= 3.0.0 +Recommends: python-rich >= 9.0 +Recommends: (python-importlib_metadata >= 3.6 if python-base < 3.8) +# /SECTION +BuildArch: noarch +%if %{with test} +BuildRequires: %{python_module hypothesis = %{version}} +# SECTION test requirements +%if %{with complete_tests} +BuildRequires: %{python_module Django >= 3.2} +BuildRequires: %{python_module fakeredis} +BuildRequires: %{python_module pandas >= 1.1} +%endif +BuildRequires: %{python_module backports.zoneinfo >= 0.2.1 if %python-base < 3.9} +BuildRequires: %{python_module black >= 19.10} +BuildRequires: %{python_module click} +BuildRequires: %{python_module dpcontracts >= 0.4} +BuildRequires: %{python_module flaky} +BuildRequires: %{python_module lark >= 0.10.1} +BuildRequires: %{python_module libcst >= 0.3.16} +BuildRequires: %{python_module numpy >= 1.16.0} +BuildRequires: %{python_module pexpect} +BuildRequires: %{python_module pytest >= 4.6} +BuildRequires: %{python_module pytest-xdist} +BuildRequires: %{python_module python-dateutil >= 1.4} +BuildRequires: %{python_module typing_extensions} +# /SECTION +%endif +%python_subpackages + +%description +Hypothesis is a family of testing libraries which let you write tests parametrized +by a source of examples. A Hypothesis implementation then generates simple and +comprehensible examples that make your tests fail. This simplifies writing your +tests and makes them more powerful at the same time, by letting software automate +the boring bits and do them to a higher standard than a human would, freeing you +to focus on the higher level test logic. + +This sort of testing is often called "property-based testing", and the most widely +known implementation of the concept is the Haskell library QuickCheck, but +Hypothesis differs significantly from QuickCheck and is designed to fit idiomatically +and easily into existing styles of testing that you are used to, with absolutely no +familiarity with Haskell or functional programming needed. + +%prep +%setup -q -n hypothesis-python-%{version} +%autopatch -p1 + +# gh#HypothesisWorks/hypothesis#2447: make sure arr==0.0 is an array on 32-bit +sed -i 's/assert (arr == 0.0)/assert np.asarray(arr == 0.0)/' tests/numpy/test_gen_data.py + +%build +%if !%{with test} +%pyproject_wheel +%endif + +%install +%if !%{with test} +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%python_clone -a %{buildroot}%{_bindir}/hypothesis +%endif + +%post +%python_install_alternative hypothesis + +%postun +%python_uninstall_alternative hypothesis + +%check +%if %{with test} +# theses tests try to write into global python_sitelib +# https://github.com/HypothesisWorks/hypothesis/issues/2546 +donttest="test_updating_the_file_include_new_shrinkers" +donttest+=" or test_can_learn_to_normalize_the_unnormalized" +# Fail because typing comparison +donttest+=" or test_ghostwriter_on_hypothesis" +if [ $(getconf LONG_BIT) -eq 32 ]; then +donttest+=" or test_gets_right_dtype_for_empty_indices" +donttest+=" or test_has_string_of_max_length" +fi +# https://github.com/HypothesisWorks/hypothesis/issues/3704 +donttest+=" or (test_make_full_patch and covering)" +donttest+=" or test_overflowing_integers_are_deprecated" +# we're disabling the healthcheck below, obs is too flaky with it +donttest+=" or fails_health_check or slow_tests or on_healthcheck or a_health_check" +donttest+=" or test_statistics_with_events_and_target" +donttest+=" or test_self_ref_regression" +# adapted from pytest.ini in github repo toplevel dir (above hypothesis-python) +echo '[pytest] +addopts= + -rfE + --strict-markers + --tb=native + -p pytester + --runpytest=subprocess + --hypothesis-profile=obs + -v + -n auto +xfail_strict = False +filterwarnings = + # error <-- disabled for obs packaging + ignore::hypothesis.errors.NonInteractiveExampleWarning + # https://github.com/pandas-dev/pandas/issues/41199 + default:Creating a LegacyVersion has been deprecated and will be removed in the next major release:DeprecationWarning + default:distutils Version classes are deprecated\. Use packaging\.version instead:DeprecationWarning + # https://github.com/pandas-dev/pandas/issues/32056 (?) + default:numpy\.ufunc size changed, may indicate binary incompatibility\. Expected 216 from C header, got 232 from PyObject:RuntimeWarning + # https://github.com/pandas-dev/pandas/issues/34848 + default:`np\.bool` is a deprecated alias for the builtin `bool`:DeprecationWarning + default:`np\.complex` is a deprecated alias for the builtin `complex`:DeprecationWarning + default:`np\.object` is a deprecated alias for the builtin `object`:DeprecationWarning +' > pytest.ini +# increase test deadline for slow obs executions +echo " +import hypothesis + +hypothesis.settings.register_profile( + 'obs', + deadline=5000, + suppress_health_check=[ + hypothesis.HealthCheck.too_slow, + ] +) +" >> tests/conftest.py +%if %{without complete_tests} +export PYTEST_ADDOPTS="--ignore=tests/pandas/ --ignore=tests/redis/test_redis_exampledatabase.py" +%endif +%pytest -c pytest.ini -k "not ($donttest)" tests; rm -rf .pytest_cache +%endif + +%if !%{with test} +%files %{python_files} +%license LICENSE.txt +%doc README.rst +%python_alternative %{_bindir}/hypothesis +%{python_sitelib}/*hypothesis* +%{python_sitelib}/hypothesis-%{version}.dist-info +%pycache_only %{python_sitelib}/__pycache__/*hypothesis* +%endif + +%changelog