diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest index b7aef6af8a0ef..1b2027bb99a62 100644 --- a/dev-python/hypothesis/Manifest +++ b/dev-python/hypothesis/Manifest @@ -2,3 +2,4 @@ DIST hypothesis-6.131.15.gh.tar.gz 9553236 BLAKE2B 29473ae79fce7183cbaec2f936824 DIST hypothesis-6.131.18.gh.tar.gz 9553394 BLAKE2B f4a880dd4681ca59b39614e70c70ae7b5e02599c84f5eb26638f9e62b176f0ff75bec0489b7ed36e1e07b97703cf1b29d956f2debc32158d803bf442c57ac377 SHA512 ca3185e82c4b4853473d0d87c3723381a49be8dc488d0ac5af223f394af77ed46368b272cb8d991b95cf4f61dc1713109b93cc193fdebf96353e0c0099b15ad3 DIST hypothesis-6.131.24.gh.tar.gz 9554685 BLAKE2B 9f1216facfffb33ac084b036166c595b181eb0fad7f184ac67d3d06069a08339857bb5ec7d1e99922ffab7cf0cf013110ada7207f0ab8ef85e1c0ac61fdf1adb SHA512 54b37c5a3b7559d4709ea498f12a043eeda4151904912329e71fd1e4e69ed3275738eeec1c8272ea9c1fc21bed4345eeffec3d7bfd538d1075c27383c06eba93 DIST hypothesis-6.131.27.gh.tar.gz 9555908 BLAKE2B 3a5d9c31a6ccd6bab640fcb63412100dfe996ca1f5f645d3cf5c15366dba510f997620ceb942a292f14b93ffa2915d6061f069d9daffe9550aad4b376dfd1e61 SHA512 447520bac874536a35d2107a4c382993a5293840c7adfcac6d177c31401cdaaf2a4159a193e8079726d71c285009649c17c4a3ce05aceea11303b8b8a490dcb2 +DIST hypothesis-6.131.28.gh.tar.gz 9560323 BLAKE2B f6c5b9b578e57689cffad89b283f21503e3c78025a11d28b3da30ca1d73ea2a3d3faa6401cbd3bb417c1c838f0720e9a9ce2119bcd5a17436731bbab112198f2 SHA512 ac64e3de3b8ebeeaefa46d7f288739c6534b6a4f3773d5ccc706ae6a0376dbe496905e7932374c89a7b39cb02b9539d74c5556e4744b025873df94842efff938 diff --git a/dev-python/hypothesis/hypothesis-6.131.28.ebuild b/dev-python/hypothesis/hypothesis-6.131.28.ebuild new file mode 100644 index 0000000000000..8821cfc28a187 --- /dev/null +++ b/dev-python/hypothesis/hypothesis-6.131.28.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +CLI_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( "${CLI_COMPAT[@]}" pypy3_11 python3_14 python3_{13,14}t ) +PYTHON_REQ_USE="threads(+),sqlite" + +inherit distutils-r1 optfeature + +TAG=hypothesis-python-${PV} +MY_P=hypothesis-${TAG} +DESCRIPTION="A library for property based testing" +HOMEPAGE=" + https://github.com/HypothesisWorks/hypothesis/ + https://pypi.org/project/hypothesis/ +" +SRC_URI=" + https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz + -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${MY_P}/hypothesis-python" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="cli" + +RDEPEND=" + >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}] + cli? ( + $(python_gen_cond_dep ' + dev-python/black[${PYTHON_USEDEP}] + dev-python/click[${PYTHON_USEDEP}] + ' "${CLI_COMPAT[@]}") + ) +" +BDEPEND=" + test? ( + dev-python/pexpect[${PYTHON_USEDEP}] + >=dev-python/pytest-8[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + # subtests are broken by warnings from random plugins + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin + local -x HYPOTHESIS_NO_PLUGINS=1 + + # NB: paths need to be relative to pytest.ini, + # i.e. start with hypothesis-python/ + local EPYTEST_DESELECT=( + # hangs + hypothesis-python/tests/cover/test_lookup.py::test_lookup_overrides_defaults + ) + + case ${EPYTHON} in + python3.13t) + EPYTEST_DESELECT+=( + # TODO: missing warning + 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns' + ) + ;& + python3.14*) + EPYTEST_DESELECT+=( + 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]' + 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]' + hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds + hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence + hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression + hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types + hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic + hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense + hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns + hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope + hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref + ) + ;; + esac + + epytest -o filterwarnings= -p rerunfailures --reruns=5 \ + tests/cover tests/pytest tests/quality +} + +src_install() { + local HAD_CLI= + + distutils-r1_src_install + + if [[ ! ${HAD_CLI} ]]; then + rm -r "${ED}/usr/bin" || die + fi +} + +python_install() { + distutils-r1_python_install + if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then + HAD_CLI=1 + else + rm -r "${D}$(python_get_scriptdir)" || die + fi +} + +pkg_postinst() { + optfeature "datetime support" dev-python/pytz + optfeature "dateutil support" dev-python/python-dateutil + optfeature "numpy support" dev-python/numpy + optfeature "django support" dev-python/django dev-python/pytz + optfeature "pandas support" dev-python/pandas + optfeature "pytest support" dev-python/pytest +}