Compare commits

..

No commits in common. "factory" and "devel" have entirely different histories.

6 changed files with 15 additions and 386 deletions

View File

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

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a5cb533357dd4d9e0f16071f5b8fca2f9a6966872cc9ca0e1377f071b08da7b2
size 933779

BIN
hypothesis-python-6.127.6.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,366 +1,3 @@
-------------------------------------------------------------------
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>

View File

@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@ -38,7 +38,7 @@ ExclusiveArch: do_not_build
%endif
%{?sle15_python_module_pythons}
Name: python-hypothesis%{psuffix}
Version: 6.127.6
Version: 6.112.0
Release: 0
Summary: A library for property based testing
License: MPL-2.0
@ -63,13 +63,13 @@ BuildArch: noarch
# SECTION requires_extra
Recommends: (python-importlib_metadata >= 3.6 if python-base < 3.8)
# 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-click >= 7.0
Recommends: python-dpcontracts >= 0.4
Recommends: python-lark >= 0.10.1
Recommends: python-libcst >= 0.3.16
Recommends: python-numpy >= 2
Recommends: python-numpy >= 1.16.0
Recommends: python-pandas >= 1.1
Recommends: python-pytest >= 4.6
Recommends: python-python-dateutil >= 1.4
@ -87,14 +87,12 @@ 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 >= 2}
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 rich >= 9.0.0}
BuildRequires: %{python_module typing_extensions}
BuildRequires: %{python_module watchdog}
%if %{with complete_tests}
BuildRequires: %{python_module Django >= 3.2}
BuildRequires: %{python_module fakeredis}
@ -168,12 +166,6 @@ donttest+=" or test_statistics_with_events_and_target"
donttest+=" or test_self_ref_regression"
# flaky test
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)
echo '[pytest]
addopts=
@ -214,9 +206,6 @@ hypothesis.settings.register_profile(
" >> tests/conftest.py
%if %{without complete_tests}
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
%pytest -c pytest.ini -k "not ($donttest)" tests; rm -rf .pytest_cache
%endif
@ -224,7 +213,7 @@ donttest+=" or test_adds_note_showing_which_strategy"
%if !%{with test}
%files %{python_files}
%license LICENSE.txt
%doc README.md
%doc README.rst
%python_alternative %{_bindir}/hypothesis
%{python_sitelib}/hypothesis
%{python_sitelib}/_hypothesis*.py