Compare commits

1 Commits
main ... 1.1

5 changed files with 12 additions and 440 deletions

View File

@@ -2,11 +2,11 @@
<service name="tar_scm" mode="manual"> <service name="tar_scm" mode="manual">
<param name="url">https://github.com/HypothesisWorks/hypothesis.git</param> <param name="url">https://github.com/HypothesisWorks/hypothesis.git</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="revision">hypothesis-python-6.127.8</param> <param name="revision">hypothesis-python-6.98.9</param>
<param name="versionformat">@PARENT_TAG@</param> <param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">hypothesis-python-(.*)</param> <param name="versionrewrite-pattern">hypothesis-python-(.*)</param>
<param name="subdir">hypothesis-python</param> <param name="subdir">hypothesis-python</param>
<param name="filename">hypothesis-python</param> <param name="filename">hypothesis-python</param>
</service> </service>
<service name="recompress" mode="manual"> <service name="recompress" mode="manual">
<param name="file">*.tar</param> <param name="file">*.tar</param>

BIN
hypothesis-python-6.127.8.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
hypothesis-python-6.98.9.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,418 +1,3 @@
-------------------------------------------------------------------
Thu Mar 6 10:05:55 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Update to 6.127.8
* Fix a type-hinting regression from version 6.125.1, where we would
no longer guarantee the type of the argument to .filter predicates
* Improve shrinking behavior for values from text() and binary()
which contain duplicate elements, like "zzzabc".
-------------------------------------------------------------------
Wed Mar 5 14:22:04 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
- Update to 6.127.6
* This patch tweaks the performance of the target phase, avoiding
aborting some test cases when it would be better to finish
generating them.
-------------------------------------------------------------------
Mon Mar 3 11:32:39 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Update to 6.127.5
* Improve shrinking of non-standard NaN float values
* Update our vendored list of top-level domains, which is used by
the provisional domains() strategy.
* Fix a bug where from_type() would error on certain types
involving Protocol
-------------------------------------------------------------------
Wed Feb 26 07:00:42 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Update to 6.127.2:
- Adjust type hints for the pub-sub database implementation in
version 6.126.0, and remove a remnant debug print in its
implementation.
- 6.127.1:
- Improve the clarity of printing counterexamples in stateful
testing, by avoiding confusing Bundle references with equivalent
values drawn from a regular strategy.
- 6.127.0:
- This releases adds support for type aliases created with the type
statement (new in python 3.12) to from_type() and
register_type_strategy().
- 6.126.0:
- The Hypothesis database now supports a pub-sub interface to
efficiently listen for changes in the database, via .add_listener
and .remove_listener. While all databases that ship with
Hypothesis support this interface, implementing it is not required
for custom database subclasses. Hypothesis will warn when trying
to listen on a database without support.
- This feature is currently only used downstream in hypofuzz.
- 6.125.3:
- Improves sharing of some internal cache behavior.
- 6.125.2:
- Optimize performance (improves speed by ~5%) and clarify the
wording in an error message.
- 6.125.1:
- Fixes a bug since around version 6.124.4 where we might have
generated -0.0 for st.floats(min_value=0.0), which is unsound.
- 6.125.0:
- Add 2024.12 to the list of recognized Array API versions in
hypothesis.extra.array_api.
- 6.124.9:
- Registration of experimental Alternative backends for Hypothesis
is now done via
hypothesis.internal.conjecture.providers.AVAILABLE_PROVIDERS
instead of
hypothesis.internal.conjecture.data.AVAILABLE_PROVIDERS.
- 6.124.8:
- Refactor some internals for better type hinting.
- 6.124.7:
- Internal renamings.
- 6.124.6:
- More work on internal type hints.
- 6.124.5:
- Internal refactoring to make some stateful internals easier to access.
- 6.124.4:
- Refactoring of our internal input generation. This shouldnt lead
to any changes in the distribution of test inputs. If you notice
any, please open an issue!
- 6.124.3:
- Some Hypothesis internals now use the number of choices as a
yardstick of input size, rather than the entropy consumed by those
choices. We dont expect this to cause significant behavioral
changes.
- 6.124.2:
- Improves our internal caching logic for test cases.
- 6.124.1:
- fuzz_one_input is now implemented using an alternative backend.
This brings the interpretation of the fuzzer-provided bytestring
closer to the fuzzer mutations, allowing the mutations to work
more reliably. We hope to use this backend functionality to
improve fuzzing integration (see e.g.
https://github.com/google/atheris/issues/20) in the future!
- 6.124.0:
- The Hypothesis example database now uses a new internal format to
store examples. This new format is not compatible with the
previous format, so stored entries will not carry over.
- The database is best thought of as a cache that may be invalidated
at times. Instead of relying on it for correctness, we recommend
using @example to specify explicit examples. When using databases
across environments (such as connecting a GitHubArtifactDatabase
database in CI to your local environment), we recommend using the
same version of Hypothesis for each where possible, for maximum
reproducibility.
- 6.123.17:
- This patch improves certain corner cases for reporting of flaky
errors (issue #4183 and issue #4228).
- 6.123.16:
- Improves an edge case in one of our integer and float shrinking passes.
- 6.123.15:
- Improves one of our shrinking passes for integers which require a
constant relative difference to trigger the bug.
- 6.123.14:
- Avoid realizing symbolic values from Alternative backends for
Hypothesis when verbosity is verbose or higher.
- 6.123.13:
- More internal code refactoring.
- 6.123.12:
- DirectoryBasedExampleDatabase now creates files representing
database entries atomically, avoiding a very brief intermediary
state where a file could be created but not yet written to.
- 6.123.11:
- Internal code refactoring.
- 6.123.10:
- Fixes a bug caused by alternative backends raising
hypothesis.errors.BackendCannotProceed in certain cases.
- 6.123.9:
- Add internal type hints to our pretty printer.
- 6.123.8:
- The shrinker contains a pass aimed at integers which are required
to sum to a value. This patch extends that pass to floats as well.
- 6.123.7:
- Internal type hint additions and refactorings.
- 6.123.6:
- @reproduce_failure() now uses a newer internal interface to
represent failures. As a reminder, this representation is not
intended to be stable across versions or with respect to changes
in the test.
- 6.123.5:
- Internal code refactoring for the typed choice sequence (issue
#3921). May have some neutral effect on shrinking.
- 6.123.4:
- This patch improves shrinking involving long strings or byte
sequences whose value is not relevant to the failure.
- 6.123.3:
- This release further improves shrinking of strategies using
one_of(), allowing the shrinker to more reliably move between
branches of the strategy.
- 6.123.2:
- The shrinker now uses the typed choice sequence (issue #3921) when
ordering failing examples. As a result, Hypothesis may now report
a different minimal failing example for some tests. We expect most
cases to remain unchanged.
- 6.123.1:
- Our pytest plugin now emits a warning if you set Pytests
norecursedirs config option in such a way that the .hypothesis
directory would be searched for tests. This reliably indicates
that youve made a mistake which slows down test collection,
usually assuming that your configuration extends the set of
ignored patterns when it actually replaces them. (issue #4200)
- 6.123.0:
- from_type() can now handle constructors with required
positional-only arguments if they have type annotations.
Previously, we only passed arguments by keyword.
- 6.122.7:
- This patch lays some groundwork for migrating our internal
representation to the typed choice sequence (issue #3921)
- 6.122.6:
- This patch cleans up some internal code around clamping floats.
- 6.122.5:
- This release improves shrinking in some cases, especially for
strategies using one_of(). This will typically improve shrinking
speed and may in some cases improve the end result.
- 6.122.4:
- This patch improves generation performance for the provisional
domains() strategy, including its derivative strategies urls() and
emails().
- 6.122.3:
- This patch improves our error and warning messages.
- 6.122.2:
- This patch updates some outdated external links in our documentation.
- 6.122.1:
- Fix from_type() on collections.abc.Callable returning None.
- 6.122.0:
- This release adds .span_start() and .span_end() methods to our
internal PrimitiveProvider interface, for use by Alternative
backends for Hypothesis.
- 6.121.2:
- This patch updates our autoformatting tools, improving our code
style without any API changes.
- 6.121.1:
- This release brings back the old representation of
hypothesis.stateful.Bundle, reverting most changes of PR #4124.
- 6.121.0:
- This release adds BackgroundWriteDatabase, a new database backend
which defers writes on the wrapped database to a background
thread. This allows for low-overhead writes in
performance-critical environments like fuzz_one_input.
- 6.120.0:
- This release changes our input distribution for low max_examples.
Previously, we capped the size of inputs when generating at least
the first 10 inputs, with the reasoning that early inputs to a
property should be small. However, this meant properties with
max_examples=10 would consistent entirely of small inputs. This
patch removes the hard lower bound so that inputs to these
properties are more representative of the input space.
- When a user requests an interactive input via strategy.example, we
generate and cache a batch of 100 inputs, returning the first one.
This can be expensive for large strategies or when only a few
examples are needed. This release improves the speed of
strategy.example by lowering the batch size to 10.
- 6.119.4:
- This patch fixes a bug since 6.99.13 - 2024-03-24 where only
interactively-generated values (via data.draw) would be reported
in the arguments field of our observability output. Now, all
values are reported.
- 6.119.3:
- Hypothesis collects coverage information during the shrink and
explain phases in order to show a more informative error message.
On 3.12+, this uses sys.monitoring. This patch improves the
performance of coverage collection on 3.12+ by disabling events we
dont need.
- 6.119.2:
- This patch refactors some internals to prepare for future work
using our IR (issue #3921).
-------------------------------------------------------------------
Mon Nov 25 20:20:07 UTC 2024 - Matej Cepl <mcepl@suse.com>
- Skip tests matching `test_adds_note_showing_which_strategy`
(gh#HypothesisWorks/hypothesis#4185).
- Add missing BR: rich.
-------------------------------------------------------------------
Sat Nov 16 16:45:50 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
- Update to 6.119.1
- This patch migrates some more internals (around generating
novel inputs) to the IR layer (issue #3921).
- Update to 6.119.0
- This release improves Hypothesis handling of ExceptionGroup
- its now able to detect marker detections if theyre inside
a group and attempts to resolve them. Note that this handling
is still a work in progress and might not handle edge cases
optimally. Please open issues if you encounter any problems
or unexpected behavior with it.
- Update to 6.118.9
- Internal refactorings in preparation for upcoming changes.
- Update to 6.118.8
- Internal renamings.
- Update to 6.118.7
- This patch removes some # type: ignore comments following a
mypy update.
- Update to 6.118.6
- When Hypothesis replays examples from its test database that
it knows were previously fully shrunk it will no longer try
to shrink them again.
- This should significantly speed up development workflows for
slow tests, as the shrinking could contribute a significant
delay when rerunning the tests.
- In some rare cases this may cause minor reductions in example
quality. This was considered an acceptable tradeoff for the
improved test runtime.
- Update to 6.118.5
- This patch avoids computing some string representations we
wont need, giving a small speedup (part of issue #4139).
- Update to 6.118.4
- This patch migrates the optimisation algorithm for
targeted property-based testing to our IR layer (issue
#3921). This should result in moderately different (and
hopefully improved) exploration behavior in tests which use
hypothesis.target().
- Update to 6.118.3
- This patch adds more type hints to internal Hypothesis code.
- Update to 6.118.2
- This patch migrates the explain phase to our IR layer (issue
#3921). This should improve both its speed and precision.
- Update to 6.118.1
- This patch updates some internals around how we determine an
input is too large to finish generating.
- Update to 6.118.0
- The urls() strategy no longer generates URLs where the port
number is 0.
- This change is motivated by the idea that the generated URLs
should, at least in theory, be possible to fetch. The port
number 0 is special; if a server binds to port 0, the kernel
will allocate an unused, and non-zero, port instead. That
means that its not possible for a server to actually be
listening on port 0. This motivation is briefly described in
the documentation for urls().
- Fixes issue #4157.
- Thanks to @gmacon for this contribution!
- Update to 6.117.0
- This changes the behaviour of settings profiles so that
if you reregister the currently loaded profile it will
automatically reload it. Previously you would have had to
load it again.
- In particular this means that if you register a “ci” profile,
it will automatically be used when Hypothesis detects you are
running on CI.
- Update to 6.116.0
- Hypothesis now detects if it is running on a CI server and
provides better default settings for running on CI in this
case.
- Update to 6.115.6
- This patch changes the priority order of pretty printing
logic so that a user provided pretty printing method will
always be used in preference to e.g. printing it like a
dataclass.
- Update to 6.115.5
- This patch restores diversity to the outputs of
from_type(type) (issue #4144).
- Update to 6.115.4
- This release improves pretty printing of nested classes to
include the outer class name in their printed representation.
- Update to 6.115.3
- This patch fixes a regression from version 6.115.2 where
generating values from integers() with certain values for
min_value and max_value would error.
- Require numpy >= 2.
-------------------------------------------------------------------
Wed Oct 23 11:11:01 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 6.115.3
* This patch fixes a regression from :ref:`version 6.115.2 <v6.115.2>` where
generating values from :func:`~hypothesis.strategies.integers` with certain
values for ``min_value`` and ``max_value`` would error.
- from version 6.115.2
* This release improves integer shrinking by folding the endpoint upweighting
for :func:`~hypothesis.strategies.integers` into the ``weights`` parameter
of our IR.
If you maintain an alternative backend as part of our (for now explicitly
unstable) :ref:`alternative-backends`, this release changes the type of the
``weights`` parameter to ``draw_integer`` and may be a breaking change for you.
- from version 6.115.1
* This patch improves the performance of :func:`~hypothesis.strategies.from_type`
with `pydantic.types.condate
- from version 6.115.0
* This improves the formatting of dataclasses and attrs classes when printing
falsifying examples.
- from version 6.114.1
* This patch upgrades remaining type annotations to Python 3.9 syntax.
- from version 6.114.0
* This release drops support for Python 3.8, which reached end of life on
2024-10-07.
- from version 6.113.0
* This release adds ``hypothesis.errors.BackendCannotProceed``, an unstable API
for use by :ref:`alternative-backends`.
- from version 6.112.5
* This release fixes a regression where :class:`hypothesis.stateful.Bundle` did
not work properly with :ref:`flatmap <flatmap>` functionality.
- from version 6.112.4
* This patch tweaks the paths in ``@example(...)`` patches, so that
both ``git apply`` and ``patch`` will work by default.
- from version 6.112.3
* This release refactors internals of :class:`hypothesis.stateful.Bundle`
to have a more consistent representation internally.
- Remove trailing spaces before newlines in _service file
- Update BuildRequires and Requires from setup.py
-------------------------------------------------------------------
Tue Oct 8 16:02:15 UTC 2024 - Markéta Machová <mmachova@suse.com>
- Update to 6.112.2
* removes a now-incorrect internal assertion about numpys typing
after recent numpy changes
* fixes an internal error when the __context__ attribute of a raised
exception leads to a cycle
-------------------------------------------------------------------
Fri Sep 6 05:56:55 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Update to 6.112.0
* This release adds support for variable-width bytes in our IR
layer (issue #3921), which should mean improved performance
anywhere you use binary(). If you maintain an alternative
backend as part of our (for now explicitly unstable)
Alternative backends for Hypothesis, this release changes the
draw_* interface and may be a breaking change for you.
-------------------------------------------------------------------
Wed Aug 21 14:23:01 UTC 2024 - Nico Krapp <nico.krapp@suse.com>
- Update to 6.111.1
* This patch improves shrinking in cases involving 'slips' from one
strategy to another. Highly composite strategies are the most likely
to benefit from this change.
* This patch also reduces the range of :class:`python:datetime.datetime`
generated by :func:`~hypothesis.extra.django.from_model` in order to
avoid https://code.djangoproject.com/ticket/35683.
- Drop 0001-Revert-Use-tmp_path-in-ghostwriter-test.patch
* included upstream
-------------------------------------------------------------------
Wed Jul 31 13:22:46 UTC 2024 - Markéta Machová <mmachova@suse.com>
- Update to 6.108.5
* The alphabet= argument to from_regex() now accepts unions of characters()
and sampled_from() strategies, in addition to accepting each individually.
* Improves support for unions of numpy dtypes such as np.float64 | np.complex128
in from_type() and arrays()
* Support for Django 5.0, drop support for end-of-life Django versions (< 4.2).
* Migrate the shrinker to our new internal representation, called the IR layer.
This improves the shrinkers performance in the majority of cases. For example,
on the Hypothesis test suite, shrinking is a median of 1.38x faster.
* The from_dtype() function no longer generates NaT (“not-a-time”) values for the
datetime64 or timedelta64 dtypes if passed allow_nan=False
* Add the experimental and unstable backend setting. See documentation for details.
* Many more minor changes, see the upstream changelog.
- Add 0001-Revert-Use-tmp_path-in-ghostwriter-tests.patch to fix tests
* https://github.com/HypothesisWorks/hypothesis/issues/4062
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Jul 29 11:16:28 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com> Mon Jul 29 11:16:28 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>

View File

@@ -1,7 +1,7 @@
# #
# spec file for package python-hypothesis # spec file for package python-hypothesis
# #
# Copyright (c) 2025 SUSE LLC # Copyright (c) 2024 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -38,7 +38,7 @@ ExclusiveArch: do_not_build
%endif %endif
%{?sle15_python_module_pythons} %{?sle15_python_module_pythons}
Name: python-hypothesis%{psuffix} Name: python-hypothesis%{psuffix}
Version: 6.127.8 Version: 6.98.9
Release: 0 Release: 0
Summary: A library for property based testing Summary: A library for property based testing
License: MPL-2.0 License: MPL-2.0
@@ -63,13 +63,13 @@ BuildArch: noarch
# SECTION requires_extra # SECTION requires_extra
Recommends: (python-importlib_metadata >= 3.6 if python-base < 3.8) Recommends: (python-importlib_metadata >= 3.6 if python-base < 3.8)
# consuming packages need to declare these optional dependencies explicitly # consuming packages need to declare these optional dependencies explicitly
Recommends: python-Django >= 4.2 Recommends: python-Django >= 3.2
Recommends: python-black >= 19.10 Recommends: python-black >= 19.10
Recommends: python-click >= 7.0 Recommends: python-click >= 7.0
Recommends: python-dpcontracts >= 0.4 Recommends: python-dpcontracts >= 0.4
Recommends: python-lark >= 0.10.1 Recommends: python-lark >= 0.10.1
Recommends: python-libcst >= 0.3.16 Recommends: python-libcst >= 0.3.16
Recommends: python-numpy >= 2 Recommends: python-numpy >= 1.16.0
Recommends: python-pandas >= 1.1 Recommends: python-pandas >= 1.1
Recommends: python-pytest >= 4.6 Recommends: python-pytest >= 4.6
Recommends: python-python-dateutil >= 1.4 Recommends: python-python-dateutil >= 1.4
@@ -87,14 +87,12 @@ BuildRequires: %{python_module dpcontracts >= 0.4}
BuildRequires: %{python_module flaky} BuildRequires: %{python_module flaky}
BuildRequires: %{python_module lark >= 0.10.1} BuildRequires: %{python_module lark >= 0.10.1}
BuildRequires: %{python_module libcst >= 0.3.16} BuildRequires: %{python_module libcst >= 0.3.16}
BuildRequires: %{python_module numpy >= 2} BuildRequires: %{python_module numpy >= 1.16.0}
BuildRequires: %{python_module pexpect} BuildRequires: %{python_module pexpect}
BuildRequires: %{python_module pytest >= 4.6} BuildRequires: %{python_module pytest >= 4.6}
BuildRequires: %{python_module pytest-xdist} BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module python-dateutil >= 1.4} BuildRequires: %{python_module python-dateutil >= 1.4}
BuildRequires: %{python_module rich >= 9.0.0}
BuildRequires: %{python_module typing_extensions} BuildRequires: %{python_module typing_extensions}
BuildRequires: %{python_module watchdog}
%if %{with complete_tests} %if %{with complete_tests}
BuildRequires: %{python_module Django >= 3.2} BuildRequires: %{python_module Django >= 3.2}
BuildRequires: %{python_module fakeredis} BuildRequires: %{python_module fakeredis}
@@ -160,20 +158,12 @@ fi
# https://github.com/HypothesisWorks/hypothesis/issues/3704 # https://github.com/HypothesisWorks/hypothesis/issues/3704
donttest+=" or (test_make_full_patch and covering)" donttest+=" or (test_make_full_patch and covering)"
donttest+=" or test_overflowing_integers_are_deprecated" donttest+=" or test_overflowing_integers_are_deprecated"
# suddenly does not raise InvalidArgument with Numpy 2
donttest+=" or test_unrepresentable_elements_are_deprecated"
# we're disabling the healthcheck below, obs is too flaky with it # 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 fails_health_check or slow_tests or on_healthcheck or a_health_check"
donttest+=" or test_statistics_with_events_and_target" donttest+=" or test_statistics_with_events_and_target"
donttest+=" or test_self_ref_regression" donttest+=" or test_self_ref_regression"
# flaky test # flaky test
donttest+=" or test_has_string_of_max_length" donttest+=" or test_has_string_of_max_length"
# Test not working with 3.13.2
# gh#HypothesisWorks/hypothesis#4276
# https://github.com/python/cpython/issues/125553
donttest+=" or test_clean_source[case-5]"
# Requires latest black
donttest+=" or test_ghostwriter_example_outputs[union_sequence_parameter]"
# adapted from pytest.ini in github repo toplevel dir (above hypothesis-python) # adapted from pytest.ini in github repo toplevel dir (above hypothesis-python)
echo '[pytest] echo '[pytest]
addopts= addopts=
@@ -214,9 +204,6 @@ hypothesis.settings.register_profile(
" >> tests/conftest.py " >> tests/conftest.py
%if %{without complete_tests} %if %{without complete_tests}
export PYTEST_ADDOPTS="--ignore=tests/pandas/ --ignore=tests/redis/test_redis_exampledatabase.py" export PYTEST_ADDOPTS="--ignore=tests/pandas/ --ignore=tests/redis/test_redis_exampledatabase.py"
# gh#HypothesisWorks/hypothesis#4185
# pytest < 8.0 doesn't support __notes__ in pytest.raises()
donttest+=" or test_adds_note_showing_which_strategy"
%endif %endif
%pytest -c pytest.ini -k "not ($donttest)" tests; rm -rf .pytest_cache %pytest -c pytest.ini -k "not ($donttest)" tests; rm -rf .pytest_cache
%endif %endif
@@ -224,7 +211,7 @@ donttest+=" or test_adds_note_showing_which_strategy"
%if !%{with test} %if !%{with test}
%files %{python_files} %files %{python_files}
%license LICENSE.txt %license LICENSE.txt
%doc README.md %doc README.rst
%python_alternative %{_bindir}/hypothesis %python_alternative %{_bindir}/hypothesis
%{python_sitelib}/hypothesis %{python_sitelib}/hypothesis
%{python_sitelib}/_hypothesis*.py %{python_sitelib}/_hypothesis*.py