diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-05-09 11:57:53 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-05-09 11:57:53 +0000 |
| commit | 3dc27067f5e12af168623c205d85522b92d1e8d9 (patch) | |
| tree | 739295adc00c662e15d11512826a467c834e6366 /dev-python | |
| parent | 2a056f8dc807f0f3f71656f72053560b984c03e3 (diff) | |
| download | baldeagleos-repo-3dc27067f5e12af168623c205d85522b92d1e8d9.tar.gz baldeagleos-repo-3dc27067f5e12af168623c205d85522b92d1e8d9.tar.xz baldeagleos-repo-3dc27067f5e12af168623c205d85522b92d1e8d9.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
69 files changed, 2325 insertions, 621 deletions
diff --git a/dev-python/aiodns/Manifest b/dev-python/aiodns/Manifest index cb31844a9ea5..914c73befb93 100644 --- a/dev-python/aiodns/Manifest +++ b/dev-python/aiodns/Manifest @@ -1,2 +1,3 @@ DIST aiodns-3.2.0.tar.gz 7823 BLAKE2B 8bafeebbf6ef69001670dffe8df3bd89b817bca921e266e218eaf2a53653d5bb150cef0c99b2fd498d39befb57c6e2edb4d94fbf4b4548e1debce69bcd114ff3 SHA512 ca6ae2d53cc0a0e5b8cd5f47da56d7db43236eb6738509d5cc088e56db996c49eba8b024cfe368e5acf44ad4de4cb5d6f949c7f0d4cd16ff4d5cc42ae3b27cb1 DIST aiodns-3.3.0.tar.gz 8444 BLAKE2B 6e4fb907b40e70c4be9c9e397f0b4a51d158b5eac0ac772ff272b8f5b255ccd7da84217eefa25485a12fe297fd7f66212fca4d7856d828fc6f0323478d624c7b SHA512 6209246c85e7871dc45fa84613e963bd500f18da5b2ffc672cf40f0efd36e858a2203b9a47f3f59f8b1d1d3a862bace0fbafa4e52b628c7a36df5b0b0876f7f9 +DIST aiodns-3.4.0.tar.gz 11433 BLAKE2B b829639ebe3f09b75da8a94bdfd4f8ca90c21710625e8dfb029747ca2fa2ffc37a7c2f1c948b36568b26547daf06881f254d7536909556e42c5394ee13202514 SHA512 0e9d703f13676e5dc057335dc0aa41e694da28ac727e6c5662f9888f225329cc14e4e01e2dfa9e56c72a755393cbc7e70e578cfb1675f71526dfaa0e26f35d69 diff --git a/dev-python/aiodns/aiodns-3.4.0.ebuild b/dev-python/aiodns/aiodns-3.4.0.ebuild new file mode 100644 index 000000000000..d9af2e5f1366 --- /dev/null +++ b/dev-python/aiodns/aiodns-3.4.0.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Simple DNS resolver for asyncio" +HOMEPAGE=" + https://pypi.org/project/aiodns/ + https://github.com/aio-libs/aiodns/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +# Tests fail with network-sandbox, since they try to resolve google.com +PROPERTIES="test_network" +RESTRICT="test" + +RDEPEND=">=dev-python/pycares-3[${PYTHON_USEDEP}]" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-python/pytest-asyncio[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p asyncio --asyncio-mode=auto +} diff --git a/dev-python/authlib/authlib-1.5.2.ebuild b/dev-python/authlib/authlib-1.5.2.ebuild index 65f464fee82c..ca2b62b6fbb0 100644 --- a/dev-python/authlib/authlib-1.5.2.ebuild +++ b/dev-python/authlib/authlib-1.5.2.ebuild @@ -37,7 +37,6 @@ BDEPEND=" test? ( dev-python/pytest[${PYTHON_USEDEP}] dev-python/pytest-asyncio[${PYTHON_USEDEP}] - dev-python/coverage[${PYTHON_USEDEP}] dev-python/anyio[${PYTHON_USEDEP}] dev-python/cachelib[${PYTHON_USEDEP}] dev-python/httpx[${PYTHON_USEDEP}] diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index a0a05240ac16..6cf6138c849c 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -1,6 +1,7 @@ DIST boto3-1.37.37.gh.tar.gz 930327 BLAKE2B 93ed4e903189a9620f13e71fe64557ebcfa5c696688b4a21fc4de0f9d21f51fd3b9c9dafa4a5dc91fc88165c14207b17b3f121e9eebdf1c1ab7e55472573d2ec SHA512 e19700633ccf6be76ab1baa0811c24d36aba7e0b8f1933fc10d1dc67d73ec0cd66a4c45ace1f2bdf815c3b35ffafaff2ce7ce9a4678e7f57984039f96d0f9fa0 DIST boto3-1.38.10.gh.tar.gz 937983 BLAKE2B 3e82c1f7e1de9ff61a0db1124d265a03d48abe8ed251a7981e378a3108e500593fbc31ee18e5533f94254e386558ce93b0ddc706d74ce457cfa22c34e496d4cf SHA512 635fb20ecead040d9a81e4738a9464210c9c31018c6bebc66f6f5893b68e924c12eb48cdcce55ce49faaf1d3a3ac9f7c07cfc56aee9b26713893d1dc5e43dc06 DIST boto3-1.38.11.gh.tar.gz 938736 BLAKE2B b1a27cb729b67047d9df35e4c9892560eeed5aec16e197e57493680423817692bc8ca02ff08afd4b2e678fa82b11226d22c27798270c1e3cc334578dd8a6a041 SHA512 cf70dd6710fb19fbcd604c14b0a98a51dc8efc49e2d4afdb02bcc75654e5c07ceac2695635b1e0a579f5db48b885ad1dcf1efc277bf5695a93da0b097a861ecc +DIST boto3-1.38.12.gh.tar.gz 939412 BLAKE2B 096514640df4a98b76c30cd21816260fcb7a23c2a9cda9410094f35bf1c153995046a68497d1af8af7fdce47ece9efdede595a3d9a35ce9605058e5172bc8c60 SHA512 e430a248bf26fcf54fd3737502f0fb335275353381c23d7bfba793f0d092e0e37a1fe0bac550d1ad6386f92c1d62f868a939d9addfc48afc9331a082b9bae07e DIST boto3-1.38.3.gh.tar.gz 934010 BLAKE2B f5008a63aec620385e06c15e97ea37335bba190e5a29920c14389ae0dfc0e09a70ce70f8b50c0d25feda3defd9e855739305d19df7759688c156f53fc698b533 SHA512 8f300e38c7912f5df00431c1b70494521ac49500512b4aba7dc18f6bf0e570508d6a00fe8a98eb3c8607af39744a67e3b47d69507dbaf25d44dd02085f24bf95 DIST boto3-1.38.8.gh.tar.gz 937130 BLAKE2B 4158573a032957c33f62c6406937a45956f4ccf972be4a223e16a327b0b476402a1e7bf7d9b6a5b83005fc324f6c0062ed73008972cabed9247790225c4d4e5a SHA512 3c3854ed132ad4c81cd868848a370cdc73101ac3c578f8ae70bc53c9a98b1d85dcd364258027adef976b3c6d220aa45f865928c055c9320d3a268e0e29d5af63 DIST boto3-1.38.9.gh.tar.gz 937730 BLAKE2B 6b1a68095601d9b32be0679171a73b204897a7f632c1825ee203d27b46c625b196739b9c6ed8f19e84e0f0d2ba3a777539d9474cbaaa526fd499655e62ce9def SHA512 37960c90bb8de6328dc08cabb98a71e0dbb9303137410a1e44efdd650d6d0009398a4c4fb75ab53f8c8dfa7f566925c03de10012092967e661157f6bdc12e583 diff --git a/dev-python/boto3/boto3-1.38.12.ebuild b/dev-python/boto3/boto3-1.38.12.ebuild new file mode 100644 index 000000000000..b862f479d876 --- /dev/null +++ b/dev-python/boto3/boto3-1.38.12.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.12.0[${PYTHON_USEDEP}] +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index de1e3adb11e8..1469b199676a 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -1,6 +1,7 @@ DIST botocore-1.37.37.gh.tar.gz 14563135 BLAKE2B 290689f13333ab7ebdbac0bccf6568035776482dbab62c542a41ce6bf93b9d5e01400526c50534fb068798dc5626408c039f8746f091fe881cb70629c6ccd6e4 SHA512 3e020f6f264ef19a71f812733536812abe92e5998f3c19766782e01cdd235a17648b330bdb64289ea8b87a520625e0c7ece9436e014ade111d66bc4181f5bec9 DIST botocore-1.38.10.gh.tar.gz 14616622 BLAKE2B adf54a0e015d3a8b17ac986f8f05b49552ab3966694bf2fe90fbf9a0e4da134f4028469133d5c9b9717c2bd9bb874e0212373482341c1fee7a837d15614cd3ca SHA512 bc3ff2e73cd123017bf3be6793cbb902fafce244cd2469c33f093120317acff75f19c37c5f11427882bfc1be228f2f1a1334024e6c6683e46a57793f77a3bf0b DIST botocore-1.38.11.gh.tar.gz 14617163 BLAKE2B e521777baa74342bff16a59a0a1281e8c44abfa4e83c49aba3cf7ec21ef0fb9e4940a7aa82cd1e51ed628ce64260fbd953db8c0867139c2ed37d2a002e01ad9d SHA512 6b9cd410aa2cf4169450aa6607ae68408a179258d1de8f0c465bc8010cad0ad05946822924780c68259bcce95c1b99e61459c850f9a31a7df5ac8638ba1186cf +DIST botocore-1.38.12.gh.tar.gz 14619336 BLAKE2B 65e66c6ef2daccef4e21a8256e4633140c2cfd424b76bee71c76fb1f9609c27623fbf34fa5a73606a9b9e1877e5eae70453b6106f0f02a1148f0baef6b5cda2e SHA512 471918f08af44395297f25b663d972155dddd23d6e1904afb3c002d38e919b52785dbc7da84f8a5b56921198304a7a28320328fc00da2b786ecc8b726bd1f08f DIST botocore-1.38.3.gh.tar.gz 14578552 BLAKE2B 4766db1ba2651ebe65c79f8a37c91cf95875a20c0cc51c1886cd394b90d50109738daa79b398e0c4b80031cfab69e1338dfaafbc0ae796fffa3348f6b13fc1ce SHA512 ad69e119d5bbc98a0c14c1c927badeecc1f57d31305e6a07af41d4d4bf6755f5abc150e36321f71b9495221ad93052d84a1dc964fb9ef6fdd791d4c37e75a01a DIST botocore-1.38.8.gh.tar.gz 14606167 BLAKE2B cb92f6014349f5188d62ddeb043e7532c50c7edc984cabae918825cdace981694c37ba656afcbbb64e65e275da4980d5f256a945bbcc63f9609272b08690c3d5 SHA512 bc9096051fde740a908ef0912a0c205595e7df653a349c167f616a788423578ba6b3aed6fe6213f528faa32b1c946abf0ac66dd81afdc05d41d12a4af4f7e818 DIST botocore-1.38.9.gh.tar.gz 14612563 BLAKE2B 10a0e43846393c06c808e306cde1398ea9374712d07b71d16270cd3238d3063f66ff532fab465acb5a87065002b7ca7394d0c77a25c83b9f8b8ecad7823042a2 SHA512 748c373a1be84a123968444316de7ab6f34b548d7619183d23ae07d0b0aeeeebc8ba1d25bb5517f0491144f7578fa9a7e9fbca066f6aa0da7b2d7439138bb8fd diff --git a/dev-python/botocore/botocore-1.38.12.ebuild b/dev-python/botocore/botocore-1.38.12.ebuild new file mode 100644 index 000000000000..df85ee0d220c --- /dev/null +++ b/dev-python/botocore/botocore-1.38.12.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + <dev-python/jmespath-2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest index 50ecb10632f0..134133d0064b 100644 --- a/dev-python/cfn-lint/Manifest +++ b/dev-python/cfn-lint/Manifest @@ -1,3 +1,4 @@ DIST cfn_lint-1.33.2.tar.gz 3163304 BLAKE2B f61d6a55e1fe2edd3229d6e9281b6267b3231afea43376d0ef2046ed941ef1c910c56e1af05b9eec08c8f0bec87fcddc95757a2433e1c46b2c8863280bebae2a SHA512 d935009da692e5003461d9c9f806733d17de426e0598a33a53470d3ee6c8a194c735b542bd346e9b33d462a71a6043f6ae1f8e9ff55cff3b6b942d2f1f49913c DIST cfn_lint-1.34.2.tar.gz 3180262 BLAKE2B 0e92964da1d661e5a37f9f4c65c46b7eabdf9a23df1cbeeba96e072347b9be32b8067e72179e51ff83fbf8fa5cf810a409fe1819f3c124189a83e0bd9d147e0a SHA512 46d738319c3e0227fa0996e102e753929bf2bd6916136fe1879d757e64cc83554eca9fd1934dba89602301e42854af9f229bf4d41a118e2dea895553cf556b6e DIST cfn_lint-1.35.0.tar.gz 3070040 BLAKE2B f0f868188e8b9088ce3e15d6b83dfc75ff4fd69b6095e8f1d3f27eec0da6518df5231336416bfc14e50b290def2ed10c9d6e4b022686686f580fec1e4a88db6d SHA512 8f44c6f1639ddeed41f4b978b1b5f8503de6a3e2d96b85a82f86f23ea2a258dfa7cfb37019a5bc9ed0620ccba6d8993f12e33c06d81eb32f1201309dd2a23580 +DIST cfn_lint-1.35.1.tar.gz 3077415 BLAKE2B 8ef32c6a1b7e6d4db976e8b59b1933814647207a0d690ecadb82ac1dd660bc5ed55e66de2ef21e9936d0c97abcdaa1bdaf8e65a996622e949ddf07afa8588240 SHA512 90c6acec47e9d4fb7344dab7c3ce8170a0ee09875806fe1ea71da91a9ef9e852044a351227b279e9ae0ba42d8f2f1104c6f1460b0aba00aac63ce41d4e147b36 diff --git a/dev-python/cfn-lint/cfn-lint-1.35.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.35.1.ebuild new file mode 100644 index 000000000000..669286dc533a --- /dev/null +++ b/dev-python/cfn-lint/cfn-lint-1.35.1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="CloudFormation Linter" +HOMEPAGE=" + https://github.com/aws-cloudformation/cfn-lint/ + https://pypi.org/project/cfn-lint/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/aws-sam-translator-1.97.0[${PYTHON_USEDEP}] + dev-python/jsonpatch[${PYTHON_USEDEP}] + >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}] + <dev-python/jsonschema-5[${PYTHON_USEDEP}] + >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}] + dev-python/junit-xml[${PYTHON_USEDEP}] + <dev-python/networkx-4[${PYTHON_USEDEP}] + >dev-python/pyyaml-5.4[${PYTHON_USEDEP}] + >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}] + >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}] + >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}] + test? ( + dev-python/defusedxml[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + # unpin the deps + sed -e 's:~=[0-9.]*::' -i pyproject.toml || die + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # different line wrapping somehow + test/unit/module/template/test_template.py::TestTemplate::test_build_graph + # requires git repo + test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs + ) + + # from tox.ini + local -x AWS_DEFAULT_REGION=us-east-1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} diff --git a/dev-python/cython/Manifest b/dev-python/cython/Manifest index 17794fce5adf..b2ed93e391c6 100644 --- a/dev-python/cython/Manifest +++ b/dev-python/cython/Manifest @@ -1,3 +1,4 @@ DIST cython-3.0.12.tar.gz 2757617 BLAKE2B 064549e36e03424065eab081b60e2761d198490cfd4d7836ea236b833ada3962e6ed42ba1710b33418f8a31ac282cdc156ceb544ee21be80ee34b7a3d3f6c7fb SHA512 c4e85596eeea444fae983d32ce8731cc5d0d612d1f96b998db3aa7946e8be151a7ea62c6df163d875111e306c870656b82a8468dd873cacf84c7bd5671a39bc3 +DIST cython-3.1.0.tar.gz 3181017 BLAKE2B 8da25d43e4e24503dba8f0b22176eecf31d597c091734a7d3460d712137783c451f4589a99932ad3c0b028a825939980a92d9a653208eff2be71307680d353ff SHA512 94bbf2d020785a24828e9f5516515d11926bc3511074e5ea780db30d0b8dde332d52adb950dbdca4767ba86d5e7630549efc442e73269d2c4c91ac4844a69a14 DIST cython-3.1.0rc1.tar.gz 3158411 BLAKE2B 44540e95b8b060956654a0d92fc4b8417088816a1e3f8fc17c8575a1cbd4b71a76cc69209d58c731281a310a9f6a7e2e711f88dc6855bc487d08056203cb04d8 SHA512 b0cefe1d4e248e6044af373088902475839ae06b5855b5b3bffdce5159a0f6e54802c24715a6f6e3242a250841c2ff1e56435b7ed3e304964af01a162f8a851a DIST cython-3.1.0rc2.tar.gz 3170920 BLAKE2B 08dbce1c6d52295dfc09d14349af03d2d58c84d165b92b8c95c24b6446695e4064960280acb177ab4114b381ee03c99d230f4b70a6f71b9a4b9a8ccd85e7a2e6 SHA512 89f75cd32187db8072fc9596528f72b374f47a0bcfeeea24d401bc4ab52b48ec16049e68e2b8c36ba6b9b6e28bf6e8d5f8f3dde2f19452ee3d8baf21bdf0e747 diff --git a/dev-python/cython/cython-3.1.0.ebuild b/dev-python/cython/cython-3.1.0.ebuild new file mode 100644 index 000000000000..2f47286fe83a --- /dev/null +++ b/dev-python/cython/cython-3.1.0.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_TESTED=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing pypi toolchain-funcs + +DESCRIPTION="A Python to C compiler" +HOMEPAGE=" + https://cython.org/ + https://github.com/cython/cython/ + https://pypi.org/project/Cython/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + <dev-python/numpy-2[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.29.22-spawn-multiprocessing.patch" + "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" +) + +distutils_enable_sphinx docs \ + dev-python/jinja2 \ + dev-python/sphinx-issues \ + dev-python/sphinx-tabs + +python_prepare_all() { + # Needs dev-python/pip and doesn't like 'externally-managed' (bug #927995) + rm tests/run/coverage_cmd_src_pkg_layout.srctree || die + + distutils-r1_python_prepare_all +} + +python_compile() { + # Python gets confused when it is in sys.path before build. + local -x PYTHONPATH= + + distutils-r1_python_compile +} + +python_test() { + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON} (xfail)" + return + fi + + # Needed to avoid confusing cache tests + unset CYTHON_FORCE_REGEN + + tc-export CC + # https://github.com/cython/cython/issues/1911 + local -x CFLAGS="${CFLAGS} -fno-strict-overflow" + "${PYTHON}" runtests.py \ + -vv \ + -j "$(makeopts_jobs)" \ + --work-dir "${BUILD_DIR}"/tests \ + --no-examples \ + --no-code-style \ + || die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) + distutils-r1_python_install_all +} diff --git a/dev-python/django-guardian/Manifest b/dev-python/django-guardian/Manifest index 691a475b21b4..76cd1e8b1841 100644 --- a/dev-python/django-guardian/Manifest +++ b/dev-python/django-guardian/Manifest @@ -1 +1,2 @@ DIST django-guardian-2.4.0.gh.tar.gz 160663 BLAKE2B ce53b605f49e4671cd997a45f8fb8d605bed28693a7920e08a9269fe8ef9831864a5a234b927fee87db4d0c29a496c117f1f154d3e42b806eaafdf7bab444f51 SHA512 820dad68d0a7aa5b907803a3b7be2daf3f9d811dc51efcd1adc3c151f1468749943a0ce35514b83d7a64a4d2851ea2eca1581df928f516902a3cf38bca88c6be +DIST django-guardian-3.0.0.gh.tar.gz 259983 BLAKE2B 9504cdb7f228f8bf6c40ddccec2b7c76663d359946d5662885b5831944938f78e82db3efcf2ad3d70ea021a3afd5b55fece18fddaba6234454a000d6ec1d8438 SHA512 729edc1556a4312476216a32a8221f15664f666f465697250ac38a6dfb5de633e4b223decf3445c3b461127bc9d41fe794fdd61188017107b88bb5eb34c04587 diff --git a/dev-python/django-guardian/django-guardian-3.0.0.ebuild b/dev-python/django-guardian/django-guardian-3.0.0.ebuild new file mode 100644 index 000000000000..4a0982c3c413 --- /dev/null +++ b/dev-python/django-guardian/django-guardian-3.0.0.ebuild @@ -0,0 +1,29 @@ +# Copyright 2023-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="A Django application to retrieve user's IP address" +HOMEPAGE=" + https://github.com/django-guardian/django-guardian + https://pypi.org/project/django-guardian/ +" +SRC_URI="https://github.com/django-guardian/django-guardian/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-python/django-1.11[${PYTHON_USEDEP}] + dev-python/django-environ + dev-python/mock +" + +python_test() { + "${EPYTHON}" tests/manage.py test -v2 myapp || die "Tests failed with ${EPYTHON}" +} diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest new file mode 100644 index 000000000000..5ea7c4b7b0e8 --- /dev/null +++ b/dev-python/fastapi/Manifest @@ -0,0 +1 @@ +DIST fastapi-0.115.12.tar.gz 295236 BLAKE2B 224b74553668721dde3592a50a3d5b02a967a58f55d3beb6bec753755cddfbb803f0661ce6cc41af3ddfc28bb304d053f41aad8ab9d8965048ff80cad6c3207e SHA512 8eb8d998643ca748744b9c00e14cdd62f02e58145e2a64dcf090361d56fa52a12b643b8fc3dc98f41af74c06d46b787acf92ae2be828d99b6d4290c20ced7f6f diff --git a/dev-python/fastapi/fastapi-0.115.12.ebuild b/dev-python/fastapi/fastapi-0.115.12.ebuild new file mode 100644 index 000000000000..fe85c6f57fc3 --- /dev/null +++ b/dev-python/fastapi/fastapi-0.115.12.ebuild @@ -0,0 +1,96 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pdm-backend +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 optfeature pypi + +DESCRIPTION="FastAPI framework, high performance, easy to learn, ready for production" +HOMEPAGE=" + https://fastapi.tiangolo.com/ + https://pypi.org/project/fastapi/ + https://github.com/fastapi/fastapi +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + <dev-python/pydantic-3.0.0[${PYTHON_USEDEP}] + >=dev-python/pydantic-1.7.4[${PYTHON_USEDEP}] + <dev-python/starlette-0.47.0[${PYTHON_USEDEP}] + >=dev-python/starlette-0.40.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.8.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/aiosqlite[${PYTHON_USEDEP}] + >=dev-python/anyio-3.2.1[${PYTHON_USEDEP}] + dev-python/dirty-equals[${PYTHON_USEDEP}] + dev-python/email-validator[${PYTHON_USEDEP}] + >=dev-python/flask-1.1.2[${PYTHON_USEDEP}] + dev-python/inline-snapshot[${PYTHON_USEDEP}] + >=dev-python/jinja2-3.1.5[${PYTHON_USEDEP}] + dev-python/orjson[${PYTHON_USEDEP}] + <dev-python/passlib-2.0.0[${PYTHON_USEDEP}] + >=dev-python/passlib-1.7.2[${PYTHON_USEDEP}] + dev-python/pydantic-settings[${PYTHON_USEDEP}] + dev-python/pyjwt[${PYTHON_USEDEP}] + >=dev-python/python-multipart-0.0.18[${PYTHON_USEDEP}] + <dev-python/pyyaml-7.0.0[${PYTHON_USEDEP}] + >=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}] + dev-python/sqlmodel[${PYTHON_USEDEP}] + dev-python/trio[${PYTHON_USEDEP}] + dev-python/ujson[${PYTHON_USEDEP}] + ) +" +# brottli and zstd due to starlette based tests expecting it + +PATCHES=( + "${FILESDIR}"/fastaapi-0.115.6-httpx-0.28-test-fix.patch +) + +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # Depends on coverage + "tests/test_fastapi_cli.py::test_fastapi_cli" + # Test result affected by unrelated packages such as brottli and zstd + # https://github.com/fastapi/fastapi/blob/7c6f2f8fde68f488163376c9e92a59d46c491298/tests/test_tutorial/test_header_param_models/test_tutorial001.py#L77 + "tests/test_tutorial/test_header_param_models/test_tutorial001.py::test_header_param_model_invalid" + # https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6afa196ca0cb1604875847b1b84fa64896a06f6e + "tests/test_multipart_installation.py::test_incorrect_multipart_installed_form" + "tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_upload" + "tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_bytes" + "tests/test_multipart_installation.py::test_incorrect_multipart_installed_multi_form" + "tests/test_multipart_installation.py::test_incorrect_multipart_installed_form_file" + "tests/test_multipart_installation.py::test_no_multipart_installed" + "tests/test_multipart_installation.py::test_no_multipart_installed_file" + "tests/test_multipart_installation.py::test_no_multipart_installed_file_bytes" + "tests/test_multipart_installation.py::test_no_multipart_installed_multi_form" + "tests/test_multipart_installation.py::test_no_multipart_installed_form_file" + "tests/test_multipart_installation.py::test_old_multipart_installed" +) + +python_prepare_all() { + # Dont install fastapi executable as fastapi-cli is supposed to handle it + sed -i -e '/\[project.scripts\]/,/^$/d' pyproject.toml || die + + distutils-r1_python_prepare_all +} + +pkg_postinst() { + optfeature "commandline interface" dev-python/fastapi-cli + optfeature "test client" dev-python/httpx + optfeature "templates" dev-python/jinja2 + optfeature "forms and file uploads" dev-python/python-multipart + optfeature "validate emails" dev-python/email-validator + optfeature "uvicorn with uvloop" dev-python/uvicorn + optfeature_header "Alternative JSON responses" + optfeature "ORJSONResponse" dev-python/orjson + optfeature "UJSONResponse" dev-python/ujson +} diff --git a/dev-python/fastapi/files/fastaapi-0.115.6-httpx-0.28-test-fix.patch b/dev-python/fastapi/files/fastaapi-0.115.6-httpx-0.28-test-fix.patch new file mode 100644 index 000000000000..1ce4fe1d97d9 --- /dev/null +++ b/dev-python/fastapi/files/fastaapi-0.115.6-httpx-0.28-test-fix.patch @@ -0,0 +1,26 @@ +--- a/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py ++++ b/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py +@@ -14,6 +14,22 @@ def test_endpoint_works(): + def test_exception_handler_body_access(): + response = client.post("/", json={"numbers": [1, 2, 3]}) + assert response.json() == IsDict( ++ { ++ 'detail': { ++ 'body': '{"numbers":[1,2,3]}', ++ 'errors': [ ++ { ++ 'input': {'numbers': [1, 2, 3]}, ++ 'loc': ['body'], ++ 'msg': 'Input should be a valid list', ++ 'type': 'list_type' ++ } ++ ] ++ } ++ } ++ ) | IsDict( ++ # Pre httpx-0.28.0 json output ++ # https://github.com/encode/httpx/pull/3367 + { + "detail": { + "errors": [ + diff --git a/dev-python/safety/metadata.xml b/dev-python/fastapi/metadata.xml index 3fab47b124fa..0dec5a678a5f 100644 --- a/dev-python/safety/metadata.xml +++ b/dev-python/fastapi/metadata.xml @@ -2,13 +2,10 @@ <!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>oz.tiram@gmail.com</email> - <name>Oz Tiram</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> </maintainer> <origin>gentoo-guru-overlay</origin> + <stabilize-allarches/> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/flufl-lock/Manifest b/dev-python/flufl-lock/Manifest index 83e89481700c..b7041e2af46d 100644 --- a/dev-python/flufl-lock/Manifest +++ b/dev-python/flufl-lock/Manifest @@ -1 +1,2 @@ DIST flufl_lock-8.1.0.tar.gz 32884 BLAKE2B 9d5f557d4664cda5fb31b4f73d79e99acac342462a94b4c1405f1032c25fd60785986e6ae9e48629b2bae0977517ec888eacc6e52d4f75b41887d14521a85f54 SHA512 3238d4c89c3702584c19882caa903a8efd33ad49ad9286d7965694f2cfdf626adee887d6a524d293457b3cd176fc02fc71edfdc0b807c3aaaed0aa77f2188a3b +DIST flufl_lock-8.2.0.tar.gz 33514 BLAKE2B 99bb64435896d40c019403aefbe9171a25c28e1823b44f44c1940b3613f828e0cd69b4aa55b7cff9de774acb19137e3dd810768f76ff8736ba4d25f9fe31c99a SHA512 c02c0a2d1cff6c775d692c6dabb2c01ec07f62472c082be998430d71ee26a4c2d5f351d956ea349d74029f1669b72bf5340e82e1f6b319979b750951410c6b94 diff --git a/dev-python/flufl-lock/flufl-lock-8.2.0.ebuild b/dev-python/flufl-lock/flufl-lock-8.2.0.ebuild new file mode 100644 index 000000000000..62f836f4c55a --- /dev/null +++ b/dev-python/flufl-lock/flufl-lock-8.2.0.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="NFS-safe file locking with timeouts for POSIX systems" +HOMEPAGE=" + https://gitlab.com/warsaw/flufl.lock/ + https://pypi.org/project/flufl.lock/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + dev-python/atpublic[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/sybil[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + sed -e '/addopts/d' -i pyproject.toml || die + distutils-r1_src_prepare +} diff --git a/dev-python/freezegun/freezegun-1.5.1.ebuild b/dev-python/freezegun/freezegun-1.5.1.ebuild index e2e52a84da5f..6b00bca74517 100644 --- a/dev-python/freezegun/freezegun-1.5.1.ebuild +++ b/dev-python/freezegun/freezegun-1.5.1.ebuild @@ -32,7 +32,7 @@ distutils_enable_tests pytest python_test() { local EPYTEST_DESELECT=() case ${EPYTHON} in - python3.13*) + python3.1[34]*) EPYTEST_DESELECT+=( # https://github.com/spulec/freezegun/issues/547 tests/test_datetimes.py::TestUnitTestMethodDecorator::test_method_decorator_works_on_unittest_kwarg_frozen_time diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest index a11d7c268c91..d12ab8aeaca8 100644 --- a/dev-python/langdetect/Manifest +++ b/dev-python/langdetect/Manifest @@ -1 +1,3 @@ DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db +EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e +MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45 diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch deleted file mode 100644 index 637368d2f237..000000000000 --- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch +++ /dev/null @@ -1,13 +0,0 @@ -Fix "Package 'langdetect.profiles' is absent from the `packages` configuration." - ---- a/setup.py -+++ b/setup.py -@@ -18,7 +18,7 @@ setup( - author_email='michal.danilak@gmail.com', - url='https://github.com/Mimino666/langdetect', - keywords='language detection library', -- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'], -+ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'], - include_package_data=True, - install_requires=['six'], - license='MIT', diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild index 99577c43fc3e..56733bbffc48 100644 --- a/dev-python/langdetect/langdetect-1.0.9.ebuild +++ b/dev-python/langdetect/langdetect-1.0.9.ebuild @@ -1,9 +1,9 @@ -# Copyright 2022-2024 Gentoo Authors +# Copyright 2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) DISTUTILS_USE_PEP517=setuptools inherit distutils-r1 pypi @@ -19,6 +19,4 @@ KEYWORDS="~amd64" RDEPEND="dev-python/six[${PYTHON_USEDEP}]" -PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" ) - distutils_enable_tests unittest diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml index c0f74ac187e2..020e07f2a3dd 100644 --- a/dev-python/langdetect/metadata.xml +++ b/dev-python/langdetect/metadata.xml @@ -2,9 +2,11 @@ <!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>pastalian46@gmail.com</email> - <name>Takuya Wakazono</name> + <email>marcin.deranek@slonko.net</email> + <name>Marcin Deranek</name> </maintainer> - - <origin>gentoo-guru-overlay</origin> + <upstream> + <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to> + </upstream> + <origin>slonko-overlay</origin> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest index dfc093181031..d42913e0e134 100644 --- a/dev-python/narwhals/Manifest +++ b/dev-python/narwhals/Manifest @@ -1,2 +1,3 @@ DIST narwhals-1.37.1.gh.tar.gz 708868 BLAKE2B 0cda4e6febb2407b12db34068ba5419cfacc2003a6e4c9a62f713db8ab9994128ac6a739d09a8eb40ab543eb689c3867f3069841f761786a221eff5ef1b37b39 SHA512 3aeb15341f525397aff4ca389cafcdce3b433c0cdd7d0ad389592cfaf0c3837019660895b3a52923b84ce4f2b3f9d29670a962dcd5687dca1a4fe99977e49e20 DIST narwhals-1.38.0.gh.tar.gz 714872 BLAKE2B f60b828c20849866ac2b0a48a4d3cdd21c80c1f2d48beb1cfe1f519e09f9ea7e045ab3824de886a880e3e5385786e73208bc69a6bd8c1c06b94c3161f3be4d6c SHA512 668f57d7830d70992477f5ac7d917abaf95b36ade8c0b60c93d1ed6eb5f4aa892c83812aedd5056b32d6498d727804d835d880ddc41a2e6a0630fee05e30e581 +DIST narwhals-1.38.2.gh.tar.gz 715904 BLAKE2B b813fbf86e9210d3d232e06a5de390678742c81ccc6338d3f3c8e79bdd3c95046b947e8924ef736d55b40ed0808cf505e190e0cba14f33f6e46560396847ab99 SHA512 d0e01b754c77ff9764d42360cfcc38f35b1282ed1ce162f69dc1f28299484d1723de4ac13eadf8f7f8852c665c01f2ff9650f3103575e1781cfe5791d3f8748c diff --git a/dev-python/narwhals/narwhals-1.38.2.ebuild b/dev-python/narwhals/narwhals-1.38.2.ebuild new file mode 100644 index 000000000000..93ec9826f3d0 --- /dev/null +++ b/dev-python/narwhals/narwhals-1.38.2.ebuild @@ -0,0 +1,41 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="Extremely lightweight compatibility layer between dataframe libraries" +HOMEPAGE=" + https://github.com/narwhals-dev/narwhals/ + https://pypi.org/project/narwhals/ +" +# https://github.com/narwhals-dev/narwhals/issues/2284 +SRC_URI=" + https://github.com/narwhals-dev/narwhals/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +BDEPEND=" + test? ( + dev-python/hypothesis[${PYTHON_USEDEP}] + dev-python/pandas[${PYTHON_USEDEP}] + dev-python/pyarrow[${PYTHON_USEDEP}] + dev-python/pytest-env[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest --runslow --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow" +} diff --git a/dev-python/nltk/Manifest b/dev-python/nltk/Manifest index 4329ee5b7d5f..6a83b3ff24fa 100644 --- a/dev-python/nltk/Manifest +++ b/dev-python/nltk/Manifest @@ -1 +1,6 @@ -DIST nltk-3.9.1.tar.gz 2904691 BLAKE2B c4178eea863feb32642a7f1c290e465244655223c1b18437b832ebd315e01f797d393ab925e641ae9a53a785f0a7fe2bf1dca504a50fb8f66fbafe2a6a1b1c8b SHA512 dad570b3a6728f22b55438a159b56009676f4fbdfc293673eaae0b0ed55dd2db91c32f59b3f89ff6d38101b3c3af9ea81f3519b578c83c17c1a9f3f716bc3ff4 +AUX python-3.12.patch 8925 BLAKE2B a9ad62b0b8d37b8707c6fa880af98ce6ee8e3f02a1d6cf42456a6d1dc2398f7cbf8721eb9e580594531c963dc10232f2e259939ed4dd78b5f6b9d778e2c2c7f7 SHA512 b32631b7d0b805496188b30e4ea8bcb3bd6cccee98b2f3cf5ccffcd8467c6e333654d23ab71b78ca1030aff54ac2e2137efff076bf86bd991bfd0a3077a6543f +DIST nltk-3.8.1.gh.tar.gz 2867926 BLAKE2B 54de1d3ae7cfe0b71ac0f5a62ed3e81e489fa4d322cd32eb4aa4ef60617eb96767a0f3a92c7e5a16e71836cb0d3a1076ae3598b6bcf0af5925c95e1a0ccf70f8 SHA512 5b13eff5d8e628173f5321c293d896919d369bcd586861a7e09bf6fdca2b09f2580902da98ec647bcf9cdc2b33a87c830dda3793de20c31c8bc38c86df8f7930 +DIST nltk-3.9.1.gh.tar.gz 2874006 BLAKE2B 4ad375dafb32f16aa23128f1585f51f8f2c864edb40ea64e3fe291944a41de52fa5e37add1de86434de054bc2ff9ffa48c56a6d6793533f4c0ca6e798829be14 SHA512 7e384a23fa3839c29d38c083d6288d15ff04eb071c4bca3ec1bfb3b9cfcac8d2388041a950d6c71684ee29b791318312df99e29ae258eb5e602ccf2ad1407840 +EBUILD nltk-3.8.1.ebuild 1394 BLAKE2B bf5cdfbd9eb5c1b415de3039f5af1be36c34e8a3c0245efc908c941028b34119d59486dc0c8649771e386808d0c10ab1ab52d1bc651fd8157cd9b9fcc77bfb8e SHA512 3f4c996aab04efd784d948199a7b96bc58372e453216ae290a7c2f903f67f6518cd39162f55900fb1e047badab3d3d6a1fd53c330901f8ccb3acbd0a7023bd78 +EBUILD nltk-3.9.1.ebuild 1223 BLAKE2B f2f1ce13a1f015c4674bd41355c3c00e5f769e1521d8cbb36650bb81e0e799d9c2ee5c53465d101b332a81ad36eeb5061e7e9abd2103b3769978febfd9717445 SHA512 729bc346694c07deed10f6bea8755ec8a5ce255e4045b8ec2fe6140de65c77be2a0cf5a6535608975d853d12c2aa11b8272b9a2989f8961deb8640251fbf5bce +MISC metadata.xml 445 BLAKE2B 4bfcde721368b9c9354799863a7a78d2c04eb789672f52b5449bda3ef567448fa1b434dda9d150aa0ff360477c576ea2fd0bebce40bf80bb843393e245f85278 SHA512 89bb6d0ca2e268e3540cf36e91b57e834eb31f078a91bb7ed7218a17c1a9b63809ae77916822eabf6a3a86286d00ae4a311b33c52e40d9d2e61b6d242f4cef78 diff --git a/dev-python/nltk/files/python-3.12.patch b/dev-python/nltk/files/python-3.12.patch new file mode 100644 index 000000000000..c55d2852751c --- /dev/null +++ b/dev-python/nltk/files/python-3.12.patch @@ -0,0 +1,282 @@ +commit 544bf807bf506927872b7b837c6e1514e80419ab +Author: Konstantin Chernyshev <k4black@ya.ru> +Date: Thu Nov 16 19:40:54 2023 +0100 + + fix(bleu): add Fraction with 3.12 support + +diff --git a/nltk/test/unit/translate/test_bleu.py b/nltk/test/unit/translate/test_bleu.py +index 990b76406..b472d785f 100644 +--- a/nltk/test/unit/translate/test_bleu.py ++++ b/nltk/test/unit/translate/test_bleu.py +@@ -2,7 +2,6 @@ + Tests for BLEU translation evaluation metric + """ + +-import io + import unittest + + import numpy as np +diff --git a/nltk/translate/bleu_score.py b/nltk/translate/bleu_score.py +index da445bc3e..9647202e6 100644 +--- a/nltk/translate/bleu_score.py ++++ b/nltk/translate/bleu_score.py +@@ -7,16 +7,40 @@ + # For license information, see LICENSE.TXT + + """BLEU score implementation.""" ++from __future__ import annotations + + import math + import sys + import warnings + from collections import Counter +-from fractions import Fraction ++from dataclasses import dataclass + + from nltk.util import ngrams + + ++@dataclass ++class Fraction: ++ """ ++ This class is used to represent a fraction with both the numerator and denominator saved for later retrieval. ++ Python 3.12 removed _normalize=False from the standard lib Fraction constructor. ++ """ ++ ++ numerator: int | float ++ denominator: int = 1 ++ ++ def __float__(self): ++ return self.numerator / self.denominator ++ ++ def __lt__(self, other): ++ return float(self) < float(other) ++ ++ def __eq__(self, other): ++ return self.numerator == other.numerator and self.denominator == other.denominator ++ ++ def __gt__(self, other): ++ return float(self) > float(other) ++ ++ + def sentence_bleu( + references, + hypothesis, +@@ -222,7 +246,7 @@ def corpus_bleu( + + # Collects the various precision values for the different ngram orders. + p_n = [ +- Fraction(p_numerators[i], p_denominators[i], _normalize=False) ++ Fraction(p_numerators[i], p_denominators[i]) + for i in range(1, max_weight_length + 1) + ] + +@@ -365,7 +389,7 @@ def modified_precision(references, hypothesis, n): + # Usually this happens when the ngram order is > len(reference). + denominator = max(1, sum(counts.values())) + +- return Fraction(numerator, denominator, _normalize=False) ++ return Fraction(numerator, denominator) + + + def closest_ref_length(references, hyp_len): +@@ -577,7 +601,7 @@ class SmoothingFunction: + In COLING 2004. + """ + return [ +- Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1, _normalize=False) ++ Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1) + if i != 0 + else p_n[0] + for i in range(len(p_n)) + +commit eab59d7ceac5dc64e34ca04ee0143fa8998af204 +Author: Konstantin Chernyshev <k4black@ya.ru> +Date: Thu Nov 16 19:46:47 2023 +0100 + + style: fix pre-commit style checks + +diff --git a/nltk/translate/bleu_score.py b/nltk/translate/bleu_score.py +index 9647202e6..aab519521 100644 +--- a/nltk/translate/bleu_score.py ++++ b/nltk/translate/bleu_score.py +@@ -35,7 +35,9 @@ class Fraction: + return float(self) < float(other) + + def __eq__(self, other): +- return self.numerator == other.numerator and self.denominator == other.denominator ++ return ( ++ self.numerator == other.numerator and self.denominator == other.denominator ++ ) + + def __gt__(self, other): + return float(self) > float(other) +@@ -601,10 +603,7 @@ class SmoothingFunction: + In COLING 2004. + """ + return [ +- Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1) +- if i != 0 +- else p_n[0] +- for i in range(len(p_n)) ++ Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1) if i != 0 else p_n[0] for i in range(len(p_n)) + ] + + def method3(self, p_n, *args, **kwargs): + +commit 8f06fa4b1da4a390d53010e56bc6ab5d5cb32a3a +Author: Konstantin Chernyshev <k4black@ya.ru> +Date: Thu Nov 16 19:48:06 2023 +0100 + + style: fix pre-commit style checks + +diff --git a/nltk/translate/bleu_score.py b/nltk/translate/bleu_score.py +index aab519521..f32743ecc 100644 +--- a/nltk/translate/bleu_score.py ++++ b/nltk/translate/bleu_score.py +@@ -603,7 +603,8 @@ class SmoothingFunction: + In COLING 2004. + """ + return [ +- Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1) if i != 0 else p_n[0] for i in range(len(p_n)) ++ Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1) if i != 0 else p_n[0] ++ for i in range(len(p_n)) + ] + + def method3(self, p_n, *args, **kwargs): + +commit b72a4bdbaf99a2bdb6a99454a1eb8804051bf644 +Author: Konstantin Chernyshev <k4black@ya.ru> +Date: Thu Nov 16 21:49:32 2023 +0100 + + fix: Fraction + +diff --git a/nltk/translate/bleu_score.py b/nltk/translate/bleu_score.py +index f32743ecc..72f5b548d 100644 +--- a/nltk/translate/bleu_score.py ++++ b/nltk/translate/bleu_score.py +@@ -42,6 +42,14 @@ class Fraction: + def __gt__(self, other): + return float(self) > float(other) + ++ def __add__(self, other): ++ if isinstance(other, int): ++ other = Fraction(other, 1) ++ return Fraction( ++ self.numerator * other.denominator + other.numerator * self.denominator, ++ self.denominator * other.denominator, ++ ) ++ + + def sentence_bleu( + references, + +commit 86fa0832f0f4b366f96867f59ae05d744d68b513 +Author: Konstantin Chernyshev <k4black@ya.ru> +Date: Thu Nov 16 23:26:42 2023 +0100 + + fix: use Fraction override + +diff --git a/nltk/translate/bleu_score.py b/nltk/translate/bleu_score.py +index 72f5b548d..ddb54dba8 100644 +--- a/nltk/translate/bleu_score.py ++++ b/nltk/translate/bleu_score.py +@@ -7,48 +7,39 @@ + # For license information, see LICENSE.TXT + + """BLEU score implementation.""" +-from __future__ import annotations +- + import math + import sys + import warnings + from collections import Counter +-from dataclasses import dataclass ++from fractions import Fraction as _Fraction + + from nltk.util import ngrams + + +-@dataclass +-class Fraction: +- """ +- This class is used to represent a fraction with both the numerator and denominator saved for later retrieval. +- Python 3.12 removed _normalize=False from the standard lib Fraction constructor. +- """ +- +- numerator: int | float +- denominator: int = 1 +- +- def __float__(self): +- return self.numerator / self.denominator +- +- def __lt__(self, other): +- return float(self) < float(other) ++class Fraction(_Fraction): ++ """Fraction with _normalize=False support for 3.12""" + +- def __eq__(self, other): +- return ( +- self.numerator == other.numerator and self.denominator == other.denominator +- ) ++ def __new__(cls, numerator=0, denominator=None, _normalize=False): ++ if sys.version_info >= (3, 12): ++ self = super().__new__(cls, numerator, denominator) ++ else: ++ self = super().__new__(cls, numerator, denominator, _normalize=_normalize) ++ self._normalize = _normalize ++ self._original_numerator = numerator ++ self._original_denominator = denominator ++ return self + +- def __gt__(self, other): +- return float(self) > float(other) ++ @property ++ def numerator(self): ++ if self._normalize: ++ return self._numerator ++ return self._original_numerator + +- def __add__(self, other): +- if isinstance(other, int): +- other = Fraction(other, 1) +- return Fraction( +- self.numerator * other.denominator + other.numerator * self.denominator, +- self.denominator * other.denominator, +- ) ++ @property ++ def denominator(self): ++ if self._normalize: ++ return self._denominator ++ return self._original_denominator + + + def sentence_bleu( +@@ -256,7 +247,7 @@ def corpus_bleu( + + # Collects the various precision values for the different ngram orders. + p_n = [ +- Fraction(p_numerators[i], p_denominators[i]) ++ Fraction(p_numerators[i], p_denominators[i], _normalize=False) + for i in range(1, max_weight_length + 1) + ] + +@@ -399,7 +390,7 @@ def modified_precision(references, hypothesis, n): + # Usually this happens when the ngram order is > len(reference). + denominator = max(1, sum(counts.values())) + +- return Fraction(numerator, denominator) ++ return Fraction(numerator, denominator, _normalize=False) + + + def closest_ref_length(references, hyp_len): +@@ -611,7 +602,8 @@ class SmoothingFunction: + In COLING 2004. + """ + return [ +- Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1) if i != 0 else p_n[0] ++ Fraction(p_n[i].numerator + 1, p_n[i].denominator + 1, _normalize=False) ++ if i != 0 else p_n[0] + for i in range(len(p_n)) + ] + diff --git a/dev-python/nltk/metadata.xml b/dev-python/nltk/metadata.xml index 3fab47b124fa..0317a43d0f5a 100644 --- a/dev-python/nltk/metadata.xml +++ b/dev-python/nltk/metadata.xml @@ -2,13 +2,10 @@ <!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>oz.tiram@gmail.com</email> - <name>Oz Tiram</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> + <email>marcin.deranek@slonko.net</email> + <name>Marcin Deranek</name> </maintainer> - <origin>gentoo-guru-overlay</origin> + <origin>slonko-overlay</origin> + <stabilize-allarches/> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/nltk/nltk-3.8.1.ebuild b/dev-python/nltk/nltk-3.8.1.ebuild new file mode 100644 index 000000000000..064a8ccee2aa --- /dev/null +++ b/dev-python/nltk/nltk-3.8.1.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_REQ_USE="sqlite,tk?,xml(+)" + +inherit distutils-r1 + +DESCRIPTION="Natural Language Toolkit" +HOMEPAGE="https://www.nltk.org/ https://github.com/nltk/nltk/" +SRC_URI="https://github.com/nltk/nltk/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="tk" + +RDEPEND=" + dev-python/click[${PYTHON_USEDEP}] + dev-python/joblib[${PYTHON_USEDEP}] + dev-python/regex[${PYTHON_USEDEP}] + dev-python/tqdm[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/joblib[${PYTHON_USEDEP}] + >=dev-python/nltk-data-20211221 + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pyparsing[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/twython[${PYTHON_USEDEP}] + dev-python/scikit-learn[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + dev-python/matplotlib[${PYTHON_USEDEP}] + )" +PDEPEND="dev-python/nltk-data" + +PATCHES=( "${FILESDIR}/python-3.12.patch" ) + +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # Internet + nltk/test/unit/test_downloader.py::test_downloader_using_existing_parent_download_dir + nltk/test/unit/test_downloader.py::test_downloader_using_non_existing_parent_download_dir +) diff --git a/dev-python/nltk/nltk-3.9.1.ebuild b/dev-python/nltk/nltk-3.9.1.ebuild index 815d42344ed6..ed46f1794bd1 100644 --- a/dev-python/nltk/nltk-3.9.1.ebuild +++ b/dev-python/nltk/nltk-3.9.1.ebuild @@ -1,19 +1,22 @@ -# Copyright 2025 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_REQ_USE="sqlite,tk?,xml(+)" -inherit distutils-r1 pypi +inherit distutils-r1 -DESCRIPTION="Python package for natural language processing." -HOMEPAGE="https://pypi.org/project/nltk/" +DESCRIPTION="Natural Language Toolkit" +HOMEPAGE="https://www.nltk.org/ https://github.com/nltk/nltk/" +SRC_URI="https://github.com/nltk/nltk/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="amd64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="tk" RDEPEND=" dev-python/click[${PYTHON_USEDEP}] @@ -21,3 +24,23 @@ RDEPEND=" dev-python/regex[${PYTHON_USEDEP}] dev-python/tqdm[${PYTHON_USEDEP}] " +BDEPEND=" + test? ( + dev-python/joblib[${PYTHON_USEDEP}] + >=dev-python/nltk-data-20211221 + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pyparsing[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/twython[${PYTHON_USEDEP}] + dev-python/scikit-learn[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + dev-python/matplotlib[${PYTHON_USEDEP}] + )" +PDEPEND=">=dev-python/nltk-data-20250310" + +distutils_enable_tests pytest + +EPYTEST_IGNORE=( + # Network required + nltk/test/unit/test_downloader.py +) diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest index 4ee934d2900c..11913728f5c8 100644 --- a/dev-python/nuitka/Manifest +++ b/dev-python/nuitka/Manifest @@ -1 +1,2 @@ +DIST Nuitka-2.7.1.tar.gz 3882402 BLAKE2B 0772125d02af375ae6fc2ee03451dcd781cbe51b388f28cd02809394487edba8d50f18f72a71cfc169017dc141b1c4cdf31a159a93f114dd5d53ccbc6a69a32f SHA512 0ac4fa937120d82186fc233eb37b8707c553fab0c0e51cd2249961efe60d5b5eb0fbe2569ca608e89a15acdc2107102cc62b84719eb22aa63d23a90ce8c575c4 DIST Nuitka-2.7.tar.gz 3885354 BLAKE2B 71fb24778148b384193e63846f1c01c1725688be25ea700c1a7810dbc4248ea6417d7227ac38862ce68d848b3ce097cee220435958ae8688b21076f77eefb240 SHA512 cc2a1bc8c6a47e60f1e527316f522d34d5e89019660e44e84736d91cc80a00babf95cebfc682374e82adf1b7c1a0536c6505a74d9903ecbbc85442575841710c diff --git a/dev-python/nuitka/nuitka-2.7.1.ebuild b/dev-python/nuitka/nuitka-2.7.1.ebuild new file mode 100644 index 000000000000..c97d7f3c6ae8 --- /dev/null +++ b/dev-python/nuitka/nuitka-2.7.1.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_NO_NORMALIZE=1 +PYPI_PN=${PN^} +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 flag-o-matic optfeature pypi + +DESCRIPTION="Python to native compiler" +HOMEPAGE=" + https://nuitka.net/ + https://github.com/Nuitka/Nuitka/ + https://pypi.org/project/Nuitka/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~loong ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-build/scons[${PYTHON_USEDEP}] + >=dev-python/ordered-set-4.1.0[${PYTHON_USEDEP}] + >=dev-python/zstandard-0.15[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( dev-util/ccache ) +" + +distutils-r1_src_prepare() { + # remove vendored version of SCons that is Python2 only + # this should be removed when upstream removes support for Python2 + rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die + eapply_user +} + +python_install() { + distutils-r1_python_install + doman doc/nuitka.1 doc/nuitka-run.1 +} + +python_test() { + append-ldflags -Wl,--no-warn-search-mismatch + ./tests/basics/run_all.py search || die +} + +pkg_postinst() { + optfeature "support for stand-alone executables" dev-util/patchelf +} diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest index e38aa4e416cc..b1d1e875403d 100644 --- a/dev-python/phonenumbers/Manifest +++ b/dev-python/phonenumbers/Manifest @@ -1,3 +1,4 @@ DIST python-phonenumbers-9.0.2.gh.tar.gz 4915753 BLAKE2B 39b0f69b9f2728e7a1b1bdae7ba46972b31a876f63823be30b9fa533d6489c3fc936587e88c4580495d35bf2245793102ebbd37ab382d6ecc5157e6e1c9cc5f0 SHA512 26cceb6db96f39a5b4d440ab3b9526f4094c41c2c4787a7ab387ae6d0b4d908058d87bf40bbcf2ed8784eb835339332b5ee3b1ca52fe7eb595860b0d7e5d1c7c DIST python-phonenumbers-9.0.3.gh.tar.gz 4915936 BLAKE2B d7c1ee56a260c67f808e15738e7f315770df049bdb9ff831f5c57a39eae34e6d69846e58f2ae68003c5d47b2c0748abc5d9c5c20e07e5b253426de2666f3f780 SHA512 474de0a960bb3a2aa833b17a8457dbe6c59ad8451af24239cc23db721d5ce209cb4f5aec5b72472ae0815575774401392896b57bc91c1ff0a24284ec3217a582 DIST python-phonenumbers-9.0.4.gh.tar.gz 4916487 BLAKE2B 6fbfe614819d9e39b8e97f32002e57a173c79280756dbc0203af0dfb0ac127f1d7c1cd8d2f4056257637341873ad2d9aa011526c91b9e08e3485899cb2b793a3 SHA512 a37bf117f7148b7007ac641623540c628cfa0228f3cfa7654fcd4181d5d0fbbe9e33520c485be098c2b47b50293c8fab7c788c29f137ecb1db60257f464c4665 +DIST python-phonenumbers-9.0.5.gh.tar.gz 4916518 BLAKE2B 9a2ad1e1410207319df745e39a386170a259f723c1c8e93044ba90d68658ff541cda529300a95495cd91b0ea703e3afb1fee301d68e4c8794d401f0125dc4240 SHA512 a6c8f78bbaba9be47205b085af52d210aa8f300f1e6388fcd75e25a4a5e72c30348ca02f9ab5a48708157d2182d935dbd37be0e104eab8c5d4081488dc4c06cf diff --git a/dev-python/phonenumbers/phonenumbers-9.0.5.ebuild b/dev-python/phonenumbers/phonenumbers-9.0.5.ebuild new file mode 100644 index 000000000000..85e8daf426e4 --- /dev/null +++ b/dev-python/phonenumbers/phonenumbers-9.0.5.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +MY_P=python-${P} +DESCRIPTION="Python port of Google's libphonenumber" +HOMEPAGE=" + https://github.com/daviddrysdale/python-phonenumbers/ + https://pypi.org/project/phonenumbers/ +" +SRC_URI=" + https://github.com/daviddrysdale/python-phonenumbers/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P}/python + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + test? ( + dev-python/protobuf[${PYTHON_USEDEP}] + ) +" + +DOCS=( ../README.md ) + +python_test() { + "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}" +} diff --git a/dev-python/pytest-recording/Manifest b/dev-python/pytest-recording/Manifest index 73ae98c7d275..0cbd1e399774 100644 --- a/dev-python/pytest-recording/Manifest +++ b/dev-python/pytest-recording/Manifest @@ -1 +1,2 @@ DIST pytest_recording-0.13.3.tar.gz 26228 BLAKE2B 96ebdda1e6efb551f0d878c90f144359db3eb72c08a25b4d4ce5acaf4c664d06d787521935290731032be0076f9258af554a321ddab99b82d9747eee579a4db5 SHA512 32eda1e7066ed0e85344c36bc22856a0baeb74138c2bf026915a2dbe2e3e65f43b1154c097f1f183244e83f0aee5ee0bdd3ee563eb2014d41fb5ade3c10c9baf +DIST pytest_recording-0.13.4.tar.gz 26576 BLAKE2B edb64ed12dfe6d7d2709b43daf76626b7adc2d96b5980f81f38a358cc465bf7342e2b1ac78e6418b4bd4ee20d17f50b83f83568fb8c6c2225fb7337aeb3bd996 SHA512 b4bf67b60272945c64ad11d6fcfc0184cd4e8a336131e34cf9581e0a214532013c8882ebf88651d89cc91481456a7419549229d234e0e38e8025bba563dafffc diff --git a/dev-python/pytest-recording/pytest-recording-0.13.4.ebuild b/dev-python/pytest-recording/pytest-recording-0.13.4.ebuild new file mode 100644 index 000000000000..cb49d1b320c9 --- /dev/null +++ b/dev-python/pytest-recording/pytest-recording-0.13.4.ebuild @@ -0,0 +1,46 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A pytest plugin to record network interactions via VCR.py" +HOMEPAGE=" + https://pypi.org/project/pytest-recording/ + https://github.com/kiwicom/pytest-recording/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +RDEPEND=" + >=dev-python/pytest-3.5.0[${PYTHON_USEDEP}] + >=dev-python/vcrpy-2.0.1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/pytest-httpbin[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_test () { + local EPYTEST_DESELECT=( + # Internet + # https://github.com/kiwicom/pytest-recording/issues/131 + tests/test_blocking_network.py::test_block_network_with_allowed_hosts + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=pytest_recording.plugin + PYTEST_PLUGINS+=,pytest_httpbin.plugin,pytest_mock + epytest +} diff --git a/dev-python/pytest-rerunfailures/Manifest b/dev-python/pytest-rerunfailures/Manifest index a4a6723e944b..891061bcc5c2 100644 --- a/dev-python/pytest-rerunfailures/Manifest +++ b/dev-python/pytest-rerunfailures/Manifest @@ -1 +1,2 @@ DIST pytest-rerunfailures-15.0.tar.gz 21816 BLAKE2B 75c42cec3a9cc0208e045be82c1b6660d56fff898ac0e97e992a020229a095a619eb1e87eeca8af7fba4f455f044ddd9729943becd90d185356e7bddb9ab1c6b SHA512 c03f430f9e24e0b149391e08ae6f38450d731d1f6a28294173e75f8776dc596230422e2082bbbc74cf31ea7e4c3105f5d8d57825dc418c4ce1c5538d84c861c3 +DIST pytest_rerunfailures-15.1.tar.gz 26981 BLAKE2B 78413183180edccbd9be6ca85ef05be7a1cce96470cf086a056b21231f84a9c7af4a3923fcb18f2081f14e53f6aea7a97807f7c311323cd5b99ff740c9aefedd SHA512 6344d625829038978f9cf224d59d3de07b1afcc6dcea578b22cdff8faefdbcacfaa54d6fc142351f9f5af6bacf6c2bda0e3f62013439b0276e1d48d6c30e8fe0 diff --git a/dev-python/pytest-rerunfailures/pytest-rerunfailures-15.1.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-15.1.ebuild new file mode 100644 index 000000000000..e5bd176e7f57 --- /dev/null +++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-15.1.ebuild @@ -0,0 +1,31 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="pytest plugin to re-run tests to eliminate flaky failures" +HOMEPAGE=" + https://github.com/pytest-dev/pytest-rerunfailures/ + https://pypi.org/project/pytest-rerunfailures/ +" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/packaging-17.1[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=pytest_rerunfailures + epytest +} diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest index 2c63973a37f2..1b863ec0adee 100644 --- a/dev-python/python-tests/Manifest +++ b/dev-python/python-tests/Manifest @@ -4,6 +4,9 @@ DIST Python-3.12.10.tar.xz 20520960 BLAKE2B f05805da36958e3ebb68c69353e8119b20ee DIST Python-3.12.10.tar.xz.asc 963 BLAKE2B 45e1ec67311d1ac5679cb5a05b92e61f3e5e6e9d3ffa5462c09c2aa066fda7ea915df13f6e5ad33aa924f6ce1f18e2d78a31af15412a10c093fc8a5b536c5133 SHA512 7edfa6fd816cf2a052abdb775d464e2f389105ed3e782cacf90805613aaca54bf71308504a5336ee1204e872e7db28df32413fb10b057056b0d5cb3c7a20a9f1 DIST Python-3.13.3.tar.xz 22654240 BLAKE2B 24ac47c13cbfa4dc9ce6ae4d18d7b5310f83ac1f4f18722138ef07e01cb8ac37edf6f4301983cb468f533b9b475b5a9d761d3044e61c7ccaa99dceadb954fe34 SHA512 f7559b6dceae69f48742af0a6497fbec42cd1e5304f64b6eb9d89222a1171ccf12fa186cc0decabb4e98d05223184967a4a7537754c01083dacdc9073cb1a578 DIST Python-3.13.3.tar.xz.asc 963 BLAKE2B 4a98965305b80e985512f54d9ce8ab88a74fe0d3ee48e300fbc2b4e251c0f499f4eb935e0aeb6d5ad8262338643325126f094fff926da1e2b9a2b3a2247701dc SHA512 54f8da5f4a4dcadc9830cb07aecf695a26a2de48ab98e1f42b09fdde1c70989476d07ce7ea81337216f1e5fcbf6b688e0608c88a2545ced416b01640108e94db +DIST Python-3.14.0b1.tar.xz 23358200 BLAKE2B c18329ee73545a3c50fb4d4a56c0888d19e15c9fb53e1e3b6c0bc4b9eb22fc4912f1c934dc6f0f9b24c19b187ddbc76776d84898d5fc371d740c9a499c9294c4 SHA512 46c0792fe4d7beab13403938e51cc73e4cbc90a1d0367ba106f56353fae6e93697aa08d6389fd5a1fffa71d59376aee0196aba82b2c40d2f0cf642f14eefead8 +DIST Python-3.14.0b1.tar.xz.sigstore 5083 BLAKE2B 5192c84b0580af88cbac55f9bc4fb3aa4b018ae384524108bf82e69a986f21a1512bf88298549f23bf9036951bb12fd56fcdd6032f532cb9f7695dcd9baae6ea SHA512 b8f6e4b4f10b50e0d71a5eba9b9ba18660d994c8ae6aff7d46caa706738a4aca0d4f53e29c5ae668c963ec0c9531b91f77aed03c550ffafe69eb6a5a2e5f755e DIST python-gentoo-patches-3.11.12.tar.xz 15616 BLAKE2B 5d4a47058fc35c4ae966e3dff823f91129852bf81cd586d5b3a34a6daf672732918daf00199394f2f982411ec30a291f45bba55b3ffa3d96a179ecd600ea4647 SHA512 77973ef88403f94d55162e0138cd29b4d8959a8fcf4cec730daf7ddd8fb4a3acfcd0dd1fdaacbdd2b218bd15f6c6715ce339df4eba48227d17520243d96eeb39 DIST python-gentoo-patches-3.12.10.tar.xz 10744 BLAKE2B 2abf4874018156d6735cf8604c410dc4726ac9365bc7500abe6b82472aad100aac7268957256692f4275b02965773e58178519ed8038e121f1ffa3c53770d238 SHA512 62066405aa00f46f9645e9c747d53bb93bf510fc791d14d49e00edfd79981778e6c8e07bfa7bac88d76407a0ffd8f7321dea89f81d90b01dbf13f4d381b6a1a3 DIST python-gentoo-patches-3.13.3.tar.xz 8336 BLAKE2B 66393886fbd034eb14732e4f81f5798e77650ea3fe1c4f8176bd93808b711c8977a53c3f52be6c9b97a368299258b851d9bdb6d4c8e0c75695c6aea784d48b44 SHA512 c1ed31d6aaef81addf786c2ccc1013309b122b791c42fe10e467a677d0db8f149e8b1cc21928c146298918c7ceb851b4b19d1e59f491cb161004e1c9386db289 +DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7 diff --git a/dev-python/python-tests/python-tests-3.14.0_beta1-r100.ebuild b/dev-python/python-tests/python-tests-3.14.0_beta1-r100.ebuild new file mode 100644 index 000000000000..ea1967e1a093 --- /dev/null +++ b/dev-python/python-tests/python-tests-3.14.0_beta1-r100.ebuild @@ -0,0 +1,70 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +VERIFY_SIG_METHOD=sigstore + +inherit python-r1 verify-sig + +MY_PV=${PV/_beta/b} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2)t +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Test modules from dev-lang/python" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}/Lib" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} +" +BDEPEND=" + ${RDEPEND} +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + cd .. || die + default +} + +src_install() { + python_setup + # keep in sync with TESTSUBDIRS in Makefile.pre.in + python_moduleinto "/usr/lib/python${PYVER}" + python_domodule test + python_moduleinto "/usr/lib/python${PYVER}/idlelib" + python_domodule idlelib/idle_test +} diff --git a/dev-python/python-tests/python-tests-3.14.0_beta1.ebuild b/dev-python/python-tests/python-tests-3.14.0_beta1.ebuild new file mode 100644 index 000000000000..59fc52e69fde --- /dev/null +++ b/dev-python/python-tests/python-tests-3.14.0_beta1.ebuild @@ -0,0 +1,70 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +VERIFY_SIG_METHOD=sigstore + +inherit python-r1 verify-sig + +MY_PV=${PV/_beta/b} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Test modules from dev-lang/python" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}/Lib" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} +" +BDEPEND=" + ${RDEPEND} +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + cd .. || die + default +} + +src_install() { + python_setup + # keep in sync with TESTSUBDIRS in Makefile.pre.in + python_moduleinto "/usr/lib/python${PYVER}" + python_domodule test + python_moduleinto "/usr/lib/python${PYVER}/idlelib" + python_domodule idlelib/idle_test +} diff --git a/dev-python/safety/Manifest b/dev-python/safety/Manifest deleted file mode 100644 index f646d029d9ee..000000000000 --- a/dev-python/safety/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST safety-3.4.0.tar.gz 266285 BLAKE2B 4675c124a792464c4d7a1f848b81a8b038a671be27a62841109d7039ad3e13813ec4ba2597b0fdd85e48513fe40d8c2453def1434a47cd5d7cd9827254e54064 SHA512 c71ce6d0009dac450d3f0de6da338ca3f385e54327902083a4b5d8fb70d4a88cde01bee0fe378238e33326e259a4b09e0a61a8b7a8192068d786863d8374822a diff --git a/dev-python/safety/safety-3.4.0.ebuild b/dev-python/safety/safety-3.4.0.ebuild deleted file mode 100644 index 504f23980e7d..000000000000 --- a/dev-python/safety/safety-3.4.0.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 2025 -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) - -DISTUTILS_USE_PEP517="hatchling" - -inherit distutils-r1 pypi - -DESCRIPTION="Scan dependencies for known vulnerabilities and licenses." - -HOMEPAGE="https://safetycli.com" -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" - -DEPEND=" - >=dev-python/authlib-1.2.0[${PYTHON_USEDEP}] - >=dev-python/click-8.0.2[${PYTHON_USEDEP}] - >=dev-python/dparse-0.6.4[${PYTHON_USEDEP}] - >=dev-python/filelock-3.16.1[${PYTHON_USEDEP}] - >=dev-python/jinja2-3.1.0[${PYTHON_USEDEP}] - >=dev-python/marshmallow-3.15.0[${PYTHON_USEDEP}] - >=dev-python/packaging-21.0[${PYTHON_USEDEP}] - >=dev-python/psutil-6.1.0[${PYTHON_USEDEP}] - >=dev-python/pydantic-2.6.0[${PYTHON_USEDEP}] - <dev-python/pydantic-2.10.7[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/httpx[${PYTHON_USEDEP}] - dev-python/tenacity[${PYTHON_USEDEP}] - ~dev-python/safety-schemas-0.0.14[${PYTHON_USEDEP}] - >=dev-python/setuptools-65.5.1[${PYTHON_USEDEP}] - >=dev-python/typer-0.12.1[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}] - >=dev-python/nltk-3.9[${PYTHON_USEDEP}] - dev-python/tomlkit[${PYTHON_USEDEP}] -" - -RDEPEND="${DEPEND}" diff --git a/dev-python/scipy/Manifest b/dev-python/scipy/Manifest index b3006c00e5df..bf0cf960fc25 100644 --- a/dev-python/scipy/Manifest +++ b/dev-python/scipy/Manifest @@ -1,7 +1,2 @@ -DIST scipy-1.14.1.tar.gz 58620554 BLAKE2B 5cb383648a5f3b8d0d321efcd66992212c59ce3fc3dbf812a2fa97c09cb18831b280af6c7689553644f83c531a266e9152e2a139a12aed08307e1ed64deea78e SHA512 20e3cf13590f76dfdc40ca8f90e6d5a68502e74415f37fa24fdb8169098e1d7f0aa631ae742c8c3e9573fa7d63da61986d51f35f090a3785873ae0761f7fcfa6 -DIST scipy-1.15.0.tar.gz 59407226 BLAKE2B 30e2f1c797c46646b21578c9b22145773c27119674ec8d4bba1b6e4bac4fe6d56d7b6fa49964783f432008a027e1498edbdceec6d1345aaee4bbe8975648b9b7 SHA512 62c2616535790a65cfe5907abaaa655ca9268406765e9baab31097aece7a3887e2bc616a77abe9869b2ff4b07dc4a56fc1dbbaaf82ebfd7d9a89e05b8e87df86 -DIST scipy-1.15.1.tar.gz 59407493 BLAKE2B 959e1e311c5e53c2751794f629777a611ebd79c87d6cc2dec330ca335100b773528aa151e319cd9ae0520257d89597acdb3aca2319ab78c367c135499f54001f SHA512 92cb6a2cdb5a305eef0aa81baea4b90c14c0084c09ffbf62f2d6ee8dd5a08791a838838e2d4907356b5b07d0b4f74a81a8e861f81628bd9e5c7e0216e3f77b17 DIST scipy-1.15.2.tar.gz 59417316 BLAKE2B 7ae748a58b6a7fb2674dc6627c3d6f4f28694283bf19ca9973fcf5796ccb0e2e35bb7cd8fbfbefa21cb832b771e563f478bc09ded61d989ea47625e7ac35e1bd SHA512 e772aa040622ef457478e08eb41471af33784cafc2022f091a30563f6abed067cdbae424a5ae86f9dab8c1adc67276794b67cb7cb7c7963ca55a38529df63834 -DIST scipy-html-1.14.0.zip 65723829 BLAKE2B ba47dbf00a5d2a53a9addc5ea68ab18b42f211a018b89aa4b0b57ff0dee02e410a3effc59ddf8fbbc5aa33075d45d86880aed3a14068da5bd7b62ee526199967 SHA512 93be0bafcc64cea1ba130bbcc77c0741acc4f819c84a5030391a22657a1bc63abe8434a2723f66b7ad04c0809dc6d02e3a97ffb8d94bd3d4a4bb759ee796b475 -DIST scipy-html-1.15.1.zip 68514487 BLAKE2B 328550d3d5700c520b2a6404c326a54ffecacc95ad5d05c727d833803d698346fb0188b6bcb659838c1a0f26355b28d70df02cddff48b8bdf564292e6cab56bc SHA512 14311da185c9454fe7dd2a8253dc4fad434664df4c7261b22a3415de576a49d51ce9a00dfb3c3ea4df9ce2bf1c9d7547ceeeb5af72eeda823243d7a2541db676 DIST scipy-html-1.15.2.zip 68568078 BLAKE2B 270f1d89bbcb707616f7af0e1bd90909c1f33d647cf55e42dbf27128ecd90f619f0d579d8897eb04851b6327df1682236c5fd9c4c948b1fd99b083145681a202 SHA512 48e09d3678547775c6c86b82cdb4ef5e7eed7722c6ba8d53170384c3a9380b2bb29fc467b5ee66ae2ec1a621930c8bf20adfc8db3a75546a6ba8e9906df03426 diff --git a/dev-python/scipy/scipy-1.14.1.ebuild b/dev-python/scipy/scipy-1.14.1.ebuild deleted file mode 100644 index 0c88f9ce49d9..000000000000 --- a/dev-python/scipy/scipy-1.14.1.ebuild +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FORTRAN_NEEDED=fortran -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=meson-python -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) -PYTHON_REQ_USE="threads(+)" - -inherit flag-o-matic fortran-2 distutils-r1 - -DESCRIPTION="Scientific algorithms library for Python" -HOMEPAGE=" - https://scipy.org/ - https://github.com/scipy/scipy/ - https://pypi.org/project/scipy/ -" - -if [[ ${PV} == *9999* ]] ; then - inherit git-r3 - - # Need submodules, so git for now. - EGIT_REPO_URI="https://github.com/scipy/scipy" - EGIT_BRANCH="maintenance/$(ver_cut 1-2).x" - EGIT_SUBMODULES=( '*' ) -else - inherit pypi - - # Upstream is often behind with doc updates - DOC_PV=1.14.0 - - SRC_URI+=" - doc? ( - https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip - )" - - if [[ ${PV} != *rc* ]] ; then - KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86" - fi -fi - -LICENSE="BSD LGPL-2" -SLOT="0" -IUSE="doc +fortran test-rust" - -# pythran is needed in both BDEPEND (for /usr/bin/pythran) and in DEPEND -# to actually compile code generated by pythran (headers and such needed). -# -# umfpack is technically optional but it's preferred to have it available. -DEPEND=" - >=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}] - sci-libs/arpack:= - sci-libs/umfpack - virtual/cblas - >=virtual/lapack-3.8 -" -RDEPEND=" - ${DEPEND} - dev-python/pillow[${PYTHON_USEDEP}] -" -DEPEND+=" - fortran? ( - >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}] - ) -" -BDEPEND=" - dev-lang/swig - >=dev-python/cython-3.0.8[${PYTHON_USEDEP}] - >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}] - >=dev-python/pybind11-2.12.0[${PYTHON_USEDEP}] - >=dev-build/meson-1.1.0 - !kernel_Darwin? ( dev-util/patchelf ) - virtual/pkgconfig - doc? ( app-arch/unzip ) - fortran? ( - >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}] - ) - test? ( - >=dev-python/hypothesis-6.30[${PYTHON_USEDEP}] - ) - test-rust? ( - dev-python/pooch[${PYTHON_USEDEP}] - ) -" - -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -src_unpack() { - default - - if use doc; then - unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die - fi -} - -python_configure_all() { - DISTUTILS_ARGS=( - -Dblas=blas - -Dlapack=lapack - -Duse-pythran=$(usex fortran true false) - ) - - # https://bugs.gentoo.org/932721 - has_version '>=dev-python/numpy-2.0.0' && filter-lto -} - -python_test() { - cd "${BUILD_DIR}/install$(python_get_sitedir)" || die - - local EPYTEST_DESELECT=( - # Network - scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all - scipy/datasets/tests/test_data.py::TestDatasets::test_ascent - scipy/datasets/tests/test_data.py::TestDatasets::test_face - scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram - - # Precision issue with diff. blas? - scipy/optimize/tests/test__basinhopping.py::Test_Metropolis::test_gh7799 - - # Crashes with assertion, not a regression - # https://github.com/scipy/scipy/issues/19321 - scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object - - # timeouts - scipy/sparse/linalg/tests/test_propack.py::test_examples - # hang or incredibly slow - scipy/optimize/tests/test_lsq_linear.py::TestBVLS::test_large_rank_deficient - scipy/optimize/tests/test_lsq_linear.py::TestTRF::test_large_rank_deficient - - # TODO - scipy/optimize/tests/test_minimize_constrained.py::TestTrustRegionConstr::test_list_of_problems - ) - local EPYTEST_IGNORE=() - - if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then - EPYTEST_IGNORE+=( - scipy/datasets/tests/test_data.py - ) - fi - - case ${EPYTHON} in - pypy3) - EPYTEST_DESELECT+=( - # fd leaks in tests - # https://github.com/scipy/scipy/issues/19553 - scipy/fft/_pocketfft/tests/test_real_transforms.py - # TODO - 'scipy/special/tests/test_data.py::test_boost[<Data for expi: expinti_data_long_ipp-expinti_data_long>]' - # missing dict.__ror__ - # https://github.com/pypy/pypy/issues/4934 - 'scipy/sparse/tests/test_dok.py::test_dunder_ror[dok_matrix]' - # mismatched exception message - scipy/optimize/tests/test_hessian_update_strategy.py::TestHessianUpdateStrategy::test_initialize_catch_illegal - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest scipy -} - -python_install_all() { - use doc && local HTML_DOCS=( "${WORKDIR}"/html/. ) - - distutils-r1_python_install_all -} diff --git a/dev-python/scipy/scipy-1.15.0.ebuild b/dev-python/scipy/scipy-1.15.0.ebuild deleted file mode 100644 index 7efa1a801c55..000000000000 --- a/dev-python/scipy/scipy-1.15.0.ebuild +++ /dev/null @@ -1,171 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FORTRAN_NEEDED=fortran -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=meson-python -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) -PYTHON_REQ_USE="threads(+)" - -inherit flag-o-matic fortran-2 distutils-r1 - -DESCRIPTION="Scientific algorithms library for Python" -HOMEPAGE=" - https://scipy.org/ - https://github.com/scipy/scipy/ - https://pypi.org/project/scipy/ -" - -if [[ ${PV} == *9999* ]] ; then - inherit git-r3 - - # Need submodules, so git for now. - EGIT_REPO_URI="https://github.com/scipy/scipy" - EGIT_BRANCH="maintenance/$(ver_cut 1-2).x" - EGIT_SUBMODULES=( '*' ) -else - inherit pypi - - # Upstream is often behind with doc updates - DOC_PV=1.14.0 - - SRC_URI+=" - doc? ( - https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip - )" - - if [[ ${PV} != *rc* ]] ; then - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - fi -fi - -LICENSE="BSD LGPL-2" -SLOT="0" -IUSE="doc +fortran test-rust" - -# pythran is needed in both BDEPEND (for /usr/bin/pythran) and in DEPEND -# to actually compile code generated by pythran (headers and such needed). -# -# umfpack is technically optional but it's preferred to have it available. -DEPEND=" - >=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}] - sci-libs/arpack:= - sci-libs/umfpack - virtual/cblas - >=virtual/lapack-3.8 -" -RDEPEND=" - ${DEPEND} - dev-python/pillow[${PYTHON_USEDEP}] -" -DEPEND+=" - fortran? ( - >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}] - ) -" -BDEPEND=" - dev-lang/swig - >=dev-python/cython-3.0.8[${PYTHON_USEDEP}] - >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}] - >=dev-python/pybind11-2.13.2[${PYTHON_USEDEP}] - >=dev-build/meson-1.1.0 - !kernel_Darwin? ( dev-util/patchelf ) - virtual/pkgconfig - doc? ( app-arch/unzip ) - fortran? ( - >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}] - ) - test? ( - >=dev-python/hypothesis-6.30[${PYTHON_USEDEP}] - ) - test-rust? ( - dev-python/pooch[${PYTHON_USEDEP}] - ) -" - -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -src_unpack() { - default - - if use doc; then - unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die - fi -} - -python_configure_all() { - DISTUTILS_ARGS=( - -Dblas=blas - -Dlapack=lapack - -Duse-pythran=$(usex fortran true false) - ) - - # https://bugs.gentoo.org/932721 - has_version '>=dev-python/numpy-2.0.0' && filter-lto -} - -python_test() { - cd "${BUILD_DIR}/install$(python_get_sitedir)" || die - - local EPYTEST_DESELECT=( - # Network - scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all - scipy/datasets/tests/test_data.py::TestDatasets::test_ascent - scipy/datasets/tests/test_data.py::TestDatasets::test_face - scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram - - # Precision issue with diff. blas? - scipy/optimize/tests/test__basinhopping.py::Test_Metropolis::test_gh7799 - - # Crashes with assertion, not a regression - # https://github.com/scipy/scipy/issues/19321 - scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object - - # timeouts - scipy/sparse/linalg/tests/test_propack.py::test_examples - # hang or incredibly slow - scipy/optimize/tests/test_lsq_linear.py::TestBVLS::test_large_rank_deficient - scipy/optimize/tests/test_lsq_linear.py::TestTRF::test_large_rank_deficient - - # TODO - scipy/optimize/tests/test_minimize_constrained.py::TestTrustRegionConstr::test_list_of_problems - ) - local EPYTEST_IGNORE=() - - if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then - EPYTEST_IGNORE+=( - scipy/datasets/tests/test_data.py - ) - fi - - case ${EPYTHON} in - pypy3) - EPYTEST_DESELECT+=( - # fd leaks in tests - # https://github.com/scipy/scipy/issues/19553 - scipy/fft/_pocketfft/tests/test_real_transforms.py - # TODO - 'scipy/special/tests/test_data.py::test_boost[<Data for expi: expinti_data_long_ipp-expinti_data_long>]' - # missing dict.__ror__ - # https://github.com/pypy/pypy/issues/4934 - 'scipy/sparse/tests/test_dok.py::test_dunder_ror[dok_matrix]' - # mismatched exception message - scipy/optimize/tests/test_hessian_update_strategy.py::TestHessianUpdateStrategy::test_initialize_catch_illegal - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - # avoid other stuff being multithreaded when using xdist - local -x PYTHON_CPU_COUNT=1 - epytest scipy -} - -python_install_all() { - use doc && local HTML_DOCS=( "${WORKDIR}"/html/. ) - - distutils-r1_python_install_all -} diff --git a/dev-python/scipy/scipy-1.15.1.ebuild b/dev-python/scipy/scipy-1.15.1.ebuild deleted file mode 100644 index 1c9f77094875..000000000000 --- a/dev-python/scipy/scipy-1.15.1.ebuild +++ /dev/null @@ -1,171 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -FORTRAN_NEEDED=fortran -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=meson-python -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) -PYTHON_REQ_USE="threads(+)" - -inherit flag-o-matic fortran-2 distutils-r1 - -DESCRIPTION="Scientific algorithms library for Python" -HOMEPAGE=" - https://scipy.org/ - https://github.com/scipy/scipy/ - https://pypi.org/project/scipy/ -" - -if [[ ${PV} == *9999* ]] ; then - inherit git-r3 - - # Need submodules, so git for now. - EGIT_REPO_URI="https://github.com/scipy/scipy" - EGIT_BRANCH="maintenance/$(ver_cut 1-2).x" - EGIT_SUBMODULES=( '*' ) -else - inherit pypi - - # Upstream is often behind with doc updates - DOC_PV=${PV} - - SRC_URI+=" - doc? ( - https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip - )" - - if [[ ${PV} != *rc* ]] ; then - KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86" - fi -fi - -LICENSE="BSD LGPL-2" -SLOT="0" -IUSE="doc +fortran test-rust" - -# pythran is needed in both BDEPEND (for /usr/bin/pythran) and in DEPEND -# to actually compile code generated by pythran (headers and such needed). -# -# umfpack is technically optional but it's preferred to have it available. -DEPEND=" - >=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}] - sci-libs/arpack:= - sci-libs/umfpack - virtual/cblas - >=virtual/lapack-3.8 -" -RDEPEND=" - ${DEPEND} - dev-python/pillow[${PYTHON_USEDEP}] -" -DEPEND+=" - fortran? ( - >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}] - ) -" -BDEPEND=" - dev-lang/swig - >=dev-python/cython-3.0.8[${PYTHON_USEDEP}] - >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}] - >=dev-python/pybind11-2.13.2[${PYTHON_USEDEP}] - >=dev-build/meson-1.1.0 - !kernel_Darwin? ( dev-util/patchelf ) - virtual/pkgconfig - doc? ( app-arch/unzip ) - fortran? ( - >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}] - ) - test? ( - >=dev-python/hypothesis-6.30[${PYTHON_USEDEP}] - ) - test-rust? ( - dev-python/pooch[${PYTHON_USEDEP}] - ) -" - -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -src_unpack() { - default - - if use doc; then - unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die - fi -} - -python_configure_all() { - DISTUTILS_ARGS=( - -Dblas=blas - -Dlapack=lapack - -Duse-pythran=$(usex fortran true false) - ) - - # https://bugs.gentoo.org/932721 - has_version '>=dev-python/numpy-2.0.0' && filter-lto -} - -python_test() { - cd "${BUILD_DIR}/install$(python_get_sitedir)" || die - - local EPYTEST_DESELECT=( - # Network - scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all - scipy/datasets/tests/test_data.py::TestDatasets::test_ascent - scipy/datasets/tests/test_data.py::TestDatasets::test_face - scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram - - # Precision issue with diff. blas? - scipy/optimize/tests/test__basinhopping.py::Test_Metropolis::test_gh7799 - - # Crashes with assertion, not a regression - # https://github.com/scipy/scipy/issues/19321 - scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object - - # timeouts - scipy/sparse/linalg/tests/test_propack.py::test_examples - # hang or incredibly slow - scipy/optimize/tests/test_lsq_linear.py::TestBVLS::test_large_rank_deficient - scipy/optimize/tests/test_lsq_linear.py::TestTRF::test_large_rank_deficient - - # TODO - scipy/optimize/tests/test_minimize_constrained.py::TestTrustRegionConstr::test_list_of_problems - ) - local EPYTEST_IGNORE=() - - if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then - EPYTEST_IGNORE+=( - scipy/datasets/tests/test_data.py - ) - fi - - case ${EPYTHON} in - pypy3) - EPYTEST_DESELECT+=( - # fd leaks in tests - # https://github.com/scipy/scipy/issues/19553 - scipy/fft/_pocketfft/tests/test_real_transforms.py - # TODO - 'scipy/special/tests/test_data.py::test_boost[<Data for expi: expinti_data_long_ipp-expinti_data_long>]' - # missing dict.__ror__ - # https://github.com/pypy/pypy/issues/4934 - 'scipy/sparse/tests/test_dok.py::test_dunder_ror[dok_matrix]' - # mismatched exception message - scipy/optimize/tests/test_hessian_update_strategy.py::TestHessianUpdateStrategy::test_initialize_catch_illegal - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - # avoid other stuff being multithreaded when using xdist - local -x PYTHON_CPU_COUNT=1 - epytest scipy -} - -python_install_all() { - use doc && local HTML_DOCS=( "${WORKDIR}"/html/. ) - - distutils-r1_python_install_all -} diff --git a/dev-python/snowballstemmer/Manifest b/dev-python/snowballstemmer/Manifest index b77a4f87cd77..46a7095e42e8 100644 --- a/dev-python/snowballstemmer/Manifest +++ b/dev-python/snowballstemmer/Manifest @@ -1 +1,2 @@ DIST snowballstemmer-2.2.0.tar.gz 86699 BLAKE2B b106fac1587143c9e88f54cc982c573b227f9e2d0125d36391a95050b41e9c97e47c7c8dff890ebfcf4bdf7c97559908d3bd380c6659b0d1fef4bed111fbae4b SHA512 f1dee83e06fc79ffb250892fe62c75e3393b9af07fbf7cde413e6391870aa74934302771239dea5c9bc89806684f95059b00c9ffbcf7340375c9dd8f1216cd37 +DIST snowballstemmer-3.0.0.1.tar.gz 105321 BLAKE2B 3f6c71cce25c1a2afbec0f52008f8e44d9898af62ee75f75b4dca7d27736f360a37539ea1d65d42471bc0dcad33698defc47bb12c8b64a421385de6d47fc5b8c SHA512 6970ecc4188f714df19c6eb6415368774726e54c3c574ac34a866532385bb3e89eaff28bbac2c3820f8d393c7d4e852ada8689986f0aad7c18aa8cf9d5879772 diff --git a/dev-python/snowballstemmer/snowballstemmer-3.0.0.1.ebuild b/dev-python/snowballstemmer/snowballstemmer-3.0.0.1.ebuild new file mode 100644 index 000000000000..fe382b3fb048 --- /dev/null +++ b/dev-python/snowballstemmer/snowballstemmer-3.0.0.1.ebuild @@ -0,0 +1,19 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +inherit distutils-r1 pypi + +DESCRIPTION="Stemmer algorithms generated from Snowball algorithms" +HOMEPAGE=" + https://snowballstem.org/ + https://github.com/snowballstem/snowball + https://pypi.org/project/snowballstemmer/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" diff --git a/dev-python/sphinxcontrib-apidoc/Manifest b/dev-python/sphinxcontrib-apidoc/Manifest index 3a78f521f7b0..2501793ac78a 100644 --- a/dev-python/sphinxcontrib-apidoc/Manifest +++ b/dev-python/sphinxcontrib-apidoc/Manifest @@ -1 +1,2 @@ DIST sphinxcontrib-apidoc-0.5.0.tar.gz 16117 BLAKE2B f486cfdf2cbf74c2ac35e688671f64d7e8a8d5b30c5e932036d1dcb2c58bd32b4bfeb14680311cf3dd1345b0548b0b083a1d30a667f934c08a2c2e431bdc2cdc SHA512 36858dab0915f4aac48b2bab1aeea830e35e1e865ff5f4726df0c9f9c2917d450ed1e27b1db9d143fade09369201b1b6b72f0264e674130f62a67df494c8f646 +DIST sphinxcontrib_apidoc-0.6.0.tar.gz 16790 BLAKE2B 2b49c12eee51548ff9e700981cd9a33a922186784d03a8fda858f8f52acecfdac04c9dfbae0c1211a2d0560e6859107036f29468900c701fd8cc9dd34eb7cc7e SHA512 5bc7750d92d911e77daaa0023f8c4de00dcd68ce6fc82b0cd69fa902c3b9296605958cef0151f26537ada23aae49d76beb579a254ec0c604694f39f12f6100ae diff --git a/dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild b/dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild new file mode 100644 index 000000000000..a7f090b36858 --- /dev/null +++ b/dev-python/sphinxcontrib-apidoc/sphinxcontrib-apidoc-0.6.0.ebuild @@ -0,0 +1,40 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Sphinx extension for running sphinx-apidoc on each build" +HOMEPAGE=" + https://pypi.org/project/sphinxcontrib-apidoc/ + https://github.com/sphinx-contrib/apidoc/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + +BDEPEND=" + dev-python/pbr[${PYTHON_USEDEP}] +" +RDEPEND=" + ${BDEPEND} + >=dev-python/sphinx-5.0.0[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest + +python_compile() { + distutils-r1_python_compile + find "${BUILD_DIR}" -name '*.pth' -delete || die +} + +python_test() { + distutils_write_namespace sphinxcontrib + cd "${T}" || die + epytest "${S}"/tests +} diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest index 54e9ca00bee8..578942e41f65 100644 --- a/dev-python/sqlglot/Manifest +++ b/dev-python/sqlglot/Manifest @@ -1,2 +1,4 @@ DIST sqlglot-26.16.4-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e DIST sqlglot-26.16.4.tar.gz 5355134 BLAKE2B 3fd5e7687f7a65a9499773a53b7d694ba02caa1ad7aabaa744716329716b3e62d2c999aadc6a66f2524a3d41a8bc80d753b18e0c77997d7abbf3e67748be83ab SHA512 791ed728405759b6053f620bb3dd5c16eddf60566087e6290e22503816d7c52f52a1bed3b897f41d2ae9cd9b6c3e4730f3c154ae29ca64e0ac07e10d27deedf7 +DIST sqlglot-26.17.1-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e +DIST sqlglot-26.17.1.tar.gz 5356122 BLAKE2B 7c83c2569c767a424929b0d88aa451e29f83596e3b381db9e35175488492ef1e30bc7fbf2a33a7a261c2396259db12b1cc89f07420f3e1994c416b5d891be258 SHA512 5cef50050b412baa5ef72056b377d327e6d19990de07f9b6f5d915b7bc628ee3a343fc64003e1ea3fc2555759c79662d4081d7925d3dd6b77f6c08a6507e971e diff --git a/dev-python/sqlglot/sqlglot-26.17.1.ebuild b/dev-python/sqlglot/sqlglot-26.17.1.ebuild new file mode 100644 index 000000000000..745ae109fd13 --- /dev/null +++ b/dev-python/sqlglot/sqlglot-26.17.1.ebuild @@ -0,0 +1,96 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES="" +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +CARGO_OPTIONAL=1 + +inherit cargo distutils-r1 pypi optfeature + +DESCRIPTION="An easily customizable SQL parser and transpiler" +HOMEPAGE=" + https://sqlglot.com/ + https://github.com/tobymao/sqlglot/ + https://pypi.org/project/sqlglot/ +" +SRC_URI+=" + native-extensions? ( + https://github.com/gentoo-crate-dist/sqlglot/releases/download/v${PV}/${P}-crates.tar.xz + ) +" + +LICENSE="MIT" +LICENSE+=" native-extensions? (" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 +" +LICENSE+=" )" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="+native-extensions" + +BDEPEND=" + native-extensions? ( + ${RUST_DEPEND} + dev-util/maturin[${PYTHON_USEDEP}] + ) + test? ( + dev-python/pytz[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so" + +pkg_setup() { + use native-extensions && rust_pkg_setup +} + +src_unpack() { + cargo_src_unpack +} + +python_compile() { + distutils-r1_python_compile + + if use native-extensions; then + local DISTUTILS_USE_PEP517=maturin + local DISTUTILS_UPSTREAM_PEP517=maturin + cd sqlglotrs || die + distutils-r1_python_compile + cd - >/dev/null || die + fi +} + +python_test() { + local EPYTEST_DESELECT=( + # timing, sigh + # https://github.com/tobymao/sqlglot/issues/3961 + tests/test_generator.py::TestGenerator::test_generate_nested_binary + ) + local EPYTEST_IGNORE=( + # Tests require pyspark or duckdb which aren't in the tree. + # Pandas would be a requirement normally, but it gets ignored by proxy. + "tests/dataframe/integration/test_dataframe.py" + "tests/dataframe/integration/test_grouped_data.py" + "tests/dataframe/integration/test_session.py" + "tests/test_executor.py" + "tests/test_optimizer.py" + ) + + # make sure not to use an earlier installed version + local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0) + rm -rf sqlglotrs || die + epytest +} + +pkg_postinst() { + optfeature "simplifying timedelta expressions" dev-python/python-dateutil +} diff --git a/dev-python/sqlmodel/Manifest b/dev-python/sqlmodel/Manifest new file mode 100644 index 000000000000..607180c7c247 --- /dev/null +++ b/dev-python/sqlmodel/Manifest @@ -0,0 +1 @@ +DIST sqlmodel-0.0.24.tar.gz 116780 BLAKE2B 94e9fd37398af55fd0958d3303f4315a56305856ff798f2569206656a1f7441bb70633c8e0522ec86543b5ffb4b63aa0f769d7833a86e35651b55c6a2ee5e18b SHA512 3a7b04c35a71ec96f6c3ddf83d9286a8f6d57efef5f136412cddc5c742a30e3e80015f8a738f539a5b294b4613e2f5db41adbc2deddfa39028211944a7cc5207 diff --git a/dev-python/sqlmodel/metadata.xml b/dev-python/sqlmodel/metadata.xml new file mode 100644 index 000000000000..0dec5a678a5f --- /dev/null +++ b/dev-python/sqlmodel/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + + <origin>gentoo-guru-overlay</origin> + <stabilize-allarches/> +</pkgmetadata>
\ No newline at end of file diff --git a/dev-python/sqlmodel/sqlmodel-0.0.24.ebuild b/dev-python/sqlmodel/sqlmodel-0.0.24.ebuild new file mode 100644 index 000000000000..7c7c6280eadf --- /dev/null +++ b/dev-python/sqlmodel/sqlmodel-0.0.24.ebuild @@ -0,0 +1,58 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pdm-backend +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="SQL databases in Python, designed for simplicity, compatibility, and robustness." +HOMEPAGE=" + https://sqlmodel.tiangolo.com/ + https://github.com/fastapi/sqlmodel/ + https://pypi.org/project/sqlmodel/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + <dev-python/sqlalchemy-2.1.0[${PYTHON_USEDEP}] + >=dev-python/sqlalchemy-2.0.14[${PYTHON_USEDEP}] + <dev-python/pydantic-3.0.0[${PYTHON_USEDEP}] + >=dev-python/pydantic-1.10.13[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/black[${PYTHON_USEDEP}] + dev-python/fastapi[${PYTHON_USEDEP}] + dev-python/httpx[${PYTHON_USEDEP}] + dev-python/dirty-equals[${PYTHON_USEDEP}] + dev-python/jinja2[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # Uses coverage + # TIP: Search for subprocess.run([coverage]) + "tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_py310_tests_main.py::test_run_tests" + "tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_py39_tests_main.py::test_run_tests" + "tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests_main.py::test_run_tests" +) + +EPYTEST_IGNORE=( + # Uses coverage + # TIP: Search for imports of coverage_run + "tests/test_tutorial/test_create_db_and_table/test_tutorial001.py" + "tests/test_tutorial/test_create_db_and_table/test_tutorial001_py310.py" +) + +python_test() { + epytest tests +} diff --git a/dev-python/tempora/tempora-5.8.0.ebuild b/dev-python/tempora/tempora-5.8.0.ebuild index c04bcf5bb8cd..0b95bcd22174 100644 --- a/dev-python/tempora/tempora-5.8.0.ebuild +++ b/dev-python/tempora/tempora-5.8.0.ebuild @@ -4,8 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) inherit distutils-r1 pypi @@ -26,20 +25,13 @@ RDEPEND=" BDEPEND=" dev-python/setuptools-scm[${PYTHON_USEDEP}] test? ( - $(python_gen_cond_dep ' - dev-python/pytest-freezer[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") + dev-python/pytest-freezer[${PYTHON_USEDEP}] ) " distutils_enable_tests pytest python_test() { - if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then - einfo "Skipping tests on ${EPYTHON}" - return - fi - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 epytest -p freezer } diff --git a/dev-python/test/test-0.ebuild b/dev-python/test/test-0.ebuild index fa246954612a..01327d8cf95f 100644 --- a/dev-python/test/test-0.ebuild +++ b/dev-python/test/test-0.ebuild @@ -20,12 +20,6 @@ RDEPEND=" $(python_gen_impl_dep 'test-install(+)' 'pypy3*') $(python_gen_cond_dep ' || ( - dev-python/python-tests:3.10 - <dev-lang/python-3.10.14_p3-r1:3.10 - ) - ' python3_10) - $(python_gen_cond_dep ' - || ( dev-python/python-tests:3.11 <dev-lang/python-3.11.9_p2-r1:3.11 ) @@ -45,4 +39,10 @@ RDEPEND=" $(python_gen_cond_dep ' dev-python/python-tests:3.13t ' python3_13t) + $(python_gen_cond_dep ' + dev-python/python-tests:3.14 + ' python3_14) + $(python_gen_cond_dep ' + dev-python/python-tests:3.14t + ' python3_14t) " diff --git a/dev-python/textx/Manifest b/dev-python/textx/Manifest index 2f0ffaec2584..65af8be048ed 100644 --- a/dev-python/textx/Manifest +++ b/dev-python/textx/Manifest @@ -1 +1,2 @@ DIST textX-4.1.0.gh.tar.gz 2136599 BLAKE2B d6c7d4d741b4e526d0a71743387ee8455cc861bc4b356c605b6d174adb870bd178fd557a804f170f3d411b3ae70845771f7ffa7bbe9c4d1053c3d87e062deddb SHA512 313fea5b6d9e94e280a0614d4130872229536fe39d5af6e440a08babe6c4e5a5c23b53827713d577cc9af32a55a6beeaeddce59dbceb5f53a3f87cb910609599 +DIST textX-4.2.0.gh.tar.gz 2136704 BLAKE2B c851a74deb7f79719549181b1e49201e60422007d600ff058b8c513d3cfbcfaad6d42a719425d16a7810662fe190ddbd65a23e75c8f8fca59b109c6be9046306 SHA512 d2342e7408dd51b5960e868d278ee5f4f656b4befad7f67ecac15e1c587d65b1894ecfadb7219c8c1a33c0945ba37eff638458b69f3dfa01626ab363eee99540 diff --git a/dev-python/textx/textx-4.2.0.ebuild b/dev-python/textx/textx-4.2.0.ebuild new file mode 100644 index 000000000000..58d83cece042 --- /dev/null +++ b/dev-python/textx/textx-4.2.0.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +MY_P=textX-${PV} +DESCRIPTION="Meta-language for DSL implementation inspired by Xtext" +HOMEPAGE=" + https://pypi.org/project/textX/ + https://github.com/textX/textX/ +" +SRC_URI=" + https://github.com/textX/textX/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + >=dev-python/arpeggio-2.0.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/html5lib[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_test() { + cp -a "${BUILD_DIR}"/{install,test} || die + local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} + + # Update the shebang + sed -e "s:install/usr/bin/${EPYTHON}:test/usr/bin/${EPYTHON}:" \ + -i "${BUILD_DIR}"/test/usr/bin/textx || die + + # Install necessary plugins + local plugins=( + tests/functional/subcommands/example_project + tests/functional/registration/projects/* + ) + local p + for p in "${plugins[@]}"; do + pushd "${p}" >/dev/null || die + distutils_pep517_install "${BUILD_DIR}"/test + popd >/dev/null || die + done + + epytest tests/functional +} diff --git a/dev-python/trove-classifiers/Manifest b/dev-python/trove-classifiers/Manifest index 62c92f383655..757e93701a30 100644 --- a/dev-python/trove-classifiers/Manifest +++ b/dev-python/trove-classifiers/Manifest @@ -2,3 +2,4 @@ DIST trove_classifiers-2025.4.11.15.tar.gz 16321 BLAKE2B b011b524d267506aef4d91a DIST trove_classifiers-2025.4.28.22.tar.gz 16883 BLAKE2B 9598b19874f7deaeb15333a7f97cb91a7d82fe34d26d6d4e526bf857ed777539cad89949628196f2bbff187511fc5bca2327aeaacec4052611c5f2d82c4bb8a8 SHA512 4863ff031d9c83177099b5c1e04e2a22396055209b88e60dd44e22a8357889f27572444e0a1fbef65b7b37919cb9d7f8cb548b7007fd878d8fe92c9cd39b864e DIST trove_classifiers-2025.5.1.12.tar.gz 16876 BLAKE2B 27ae91479d2a811978b3f1447568f5849341a7fda5c825ebf0dd0502d85f206d63f4687463708031637da4313d0182abc05b6b710a6f32fd714167ac766a587d SHA512 af3c0ee51e7ce3e7ec0eb1fd901ac3d0c02f6c0ba1c77d3ba66e0770bf5300144f636dcbf608f046a21789cfc780f651be222b7d23f359a672fde0210af966b5 DIST trove_classifiers-2025.5.7.19.tar.gz 16891 BLAKE2B 42c1d72cb1f70137e4d2af4b2a4f85811b0aab0a325793865afb51511bf00d7d5f7f5cfeeb1c887a630fdbe8e437987396cb9a9eeefc4d2cd56e5ecbfab0aab3 SHA512 ab35ab9f627244ce68d9db45684018392bd91d9b3f001be7e41ec8bf061fb86aee904347813db90afd2b94325d74665fea85994f29b144753c409642e8d9fdda +DIST trove_classifiers-2025.5.8.15.tar.gz 16870 BLAKE2B d52e632a6a9e563c2ab7d9d5bf46baa8168d86677c98b3447e1b7c8c9f92c8a33707b4c2603dcbf546ffd87819a1362f23a60b2e299c5356480ce0f5660a3157 SHA512 81e96cd33997cb2574d05a553a0402f02d320d5fe2234a7c92d23d5bf460a5603bbdaa19ea37ecbbe81d6e2c8ef86bb936d74817514482ef551d85d103761858 diff --git a/dev-python/trove-classifiers/trove-classifiers-2025.5.8.15.ebuild b/dev-python/trove-classifiers/trove-classifiers-2025.5.8.15.ebuild new file mode 100644 index 000000000000..0b6867aee421 --- /dev/null +++ b/dev-python/trove-classifiers/trove-classifiers-2025.5.8.15.ebuild @@ -0,0 +1,45 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" +HOMEPAGE=" + https://github.com/pypa/trove-classifiers/ + https://pypi.org/project/trove-classifiers/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "setuptools' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease hatchling bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "trove-classifiers" + version = "${PV}" + description = "Canonical source for classifiers on PyPI (pypi.org)." + + [project.scripts] + trove-classifiers = "trove_classifiers.__main__:cli" + EOF +} + +python_test() { + epytest + "${EPYTHON}" -m tests.lib || die +} diff --git a/dev-python/typing-extensions/files/typing-extensions-4.13.2-py314.patch b/dev-python/typing-extensions/files/typing-extensions-4.13.2-py314.patch new file mode 100644 index 000000000000..d1086c2c3590 --- /dev/null +++ b/dev-python/typing-extensions/files/typing-extensions-4.13.2-py314.patch @@ -0,0 +1,422 @@ +From 2354c1a8d21cf8f6d6f6a9d54bb3a69b5908e035 Mon Sep 17 00:00:00 2001 +From: Jelle Zijlstra <jelle.zijlstra@gmail.com> +Date: Fri, 2 May 2025 19:45:27 -0700 +Subject: [PATCH 1/2] Fix test failures on Python 3.14 (#566) + +--- + src/test_typing_extensions.py | 40 ++++++++++++++++++++++++----------- + src/typing_extensions.py | 9 ++++++-- + 2 files changed, 35 insertions(+), 14 deletions(-) + +diff --git a/src/test_typing_extensions.py b/src/test_typing_extensions.py +index 584b0fa..7b08f72 100644 +--- a/src/test_typing_extensions.py ++++ b/src/test_typing_extensions.py +@@ -901,10 +901,12 @@ class Cls: + + class DeprecatedCoroTests(BaseTestCase): + def test_asyncio_iscoroutinefunction(self): +- self.assertFalse(asyncio.coroutines.iscoroutinefunction(func)) +- self.assertFalse(asyncio.coroutines.iscoroutinefunction(Cls.func)) +- self.assertTrue(asyncio.coroutines.iscoroutinefunction(coro)) +- self.assertTrue(asyncio.coroutines.iscoroutinefunction(Cls.coro)) ++ with warnings.catch_warnings(): ++ warnings.simplefilter("ignore", DeprecationWarning) ++ self.assertFalse(asyncio.coroutines.iscoroutinefunction(func)) ++ self.assertFalse(asyncio.coroutines.iscoroutinefunction(Cls.func)) ++ self.assertTrue(asyncio.coroutines.iscoroutinefunction(coro)) ++ self.assertTrue(asyncio.coroutines.iscoroutinefunction(Cls.coro)) + + @skipUnless(TYPING_3_12_ONLY or TYPING_3_13_0_RC, "inspect.iscoroutinefunction works differently on Python < 3.12") + def test_inspect_iscoroutinefunction(self): +@@ -7228,7 +7230,7 @@ class TypeVarTests(BaseTestCase): + + def test_bound_errors(self): + with self.assertRaises(TypeError): +- TypeVar('X', bound=Union) ++ TypeVar('X', bound=Optional) + with self.assertRaises(TypeError): + TypeVar('X', str, float, bound=Employee) + with self.assertRaisesRegex(TypeError, +@@ -8213,19 +8215,26 @@ class TestGetAnnotations(BaseTestCase): + get_annotations(f2, format=Format.FORWARDREF), + {"a": "undefined"}, + ) +- self.assertEqual(get_annotations(f2, format=2), {"a": "undefined"}) ++ # Test that the raw int also works ++ self.assertEqual( ++ get_annotations(f2, format=Format.FORWARDREF.value), ++ {"a": "undefined"}, ++ ) + + self.assertEqual( + get_annotations(f1, format=Format.STRING), + {"a": "int"}, + ) +- self.assertEqual(get_annotations(f1, format=3), {"a": "int"}) ++ self.assertEqual( ++ get_annotations(f1, format=Format.STRING.value), ++ {"a": "int"}, ++ ) + + with self.assertRaises(ValueError): + get_annotations(f1, format=0) + + with self.assertRaises(ValueError): +- get_annotations(f1, format=4) ++ get_annotations(f1, format=42) + + def test_custom_object_with_annotations(self): + class C: +@@ -8264,10 +8273,17 @@ class TestGetAnnotations(BaseTestCase): + foo.__annotations__ = {"a": "foo", "b": "str"} + for format in Format: + with self.subTest(format=format): +- self.assertEqual( +- get_annotations(foo, format=format), +- {"a": "foo", "b": "str"}, +- ) ++ if format is Format.VALUE_WITH_FAKE_GLOBALS: ++ with self.assertRaisesRegex( ++ ValueError, ++ "The VALUE_WITH_FAKE_GLOBALS format is for internal use only" ++ ): ++ get_annotations(foo, format=format) ++ else: ++ self.assertEqual( ++ get_annotations(foo, format=format), ++ {"a": "foo", "b": "str"}, ++ ) + + self.assertEqual( + get_annotations(foo, eval_str=True, locals=locals()), +diff --git a/src/typing_extensions.py b/src/typing_extensions.py +index fa89c83..d089d5e 100644 +--- a/src/typing_extensions.py ++++ b/src/typing_extensions.py +@@ -4153,8 +4153,9 @@ _PEP_649_OR_749_IMPLEMENTED = ( + + class Format(enum.IntEnum): + VALUE = 1 +- FORWARDREF = 2 +- STRING = 3 ++ VALUE_WITH_FAKE_GLOBALS = 2 ++ FORWARDREF = 3 ++ STRING = 4 + + + if _PEP_649_OR_749_IMPLEMENTED: +@@ -4198,6 +4199,10 @@ else: + + """ + format = Format(format) ++ if format is Format.VALUE_WITH_FAKE_GLOBALS: ++ raise ValueError( ++ "The VALUE_WITH_FAKE_GLOBALS format is for internal use only" ++ ) + + if eval_str and format is not Format.VALUE: + raise ValueError("eval_str=True is only supported with format=Format.VALUE") +From 62740a52eca38414efc9ce01b361ab45eae7c38e Mon Sep 17 00:00:00 2001 +From: Jelle Zijlstra <jelle.zijlstra@gmail.com> +Date: Mon, 5 May 2025 09:50:14 -0700 +Subject: [PATCH 2/2] Fix tests on Python 3.14 (#592) + +--- + src/test_typing_extensions.py | 117 ++++++++++++++++++++++++++++++---- + src/typing_extensions.py | 67 +++++++++++++++---- + 2 files changed, 161 insertions(+), 23 deletions(-) + +diff --git a/src/test_typing_extensions.py b/src/test_typing_extensions.py +index 7b08f72..9742b98 100644 +--- a/src/test_typing_extensions.py ++++ b/src/test_typing_extensions.py +@@ -440,6 +440,48 @@ class BaseTestCase(TestCase): + raise self.failureException(message) + + ++class EqualToForwardRef: ++ """Helper to ease use of annotationlib.ForwardRef in tests. ++ ++ This checks only attributes that can be set using the constructor. ++ ++ """ ++ ++ def __init__( ++ self, ++ arg, ++ *, ++ module=None, ++ owner=None, ++ is_class=False, ++ ): ++ self.__forward_arg__ = arg ++ self.__forward_is_class__ = is_class ++ self.__forward_module__ = module ++ self.__owner__ = owner ++ ++ def __eq__(self, other): ++ if not isinstance(other, (EqualToForwardRef, typing.ForwardRef)): ++ return NotImplemented ++ if sys.version_info >= (3, 14) and self.__owner__ != other.__owner__: ++ return False ++ return ( ++ self.__forward_arg__ == other.__forward_arg__ ++ and self.__forward_module__ == other.__forward_module__ ++ and self.__forward_is_class__ == other.__forward_is_class__ ++ ) ++ ++ def __repr__(self): ++ extra = [] ++ if self.__forward_module__ is not None: ++ extra.append(f", module={self.__forward_module__!r}") ++ if self.__forward_is_class__: ++ extra.append(", is_class=True") ++ if sys.version_info >= (3, 14) and self.__owner__ is not None: ++ extra.append(f", owner={self.__owner__!r}") ++ return f"EqualToForwardRef({self.__forward_arg__!r}{''.join(extra)})" ++ ++ + class Employee: + pass + +@@ -5075,6 +5117,64 @@ class TypedDictTests(BaseTestCase): + x: str + + ++ def test_annotations(self): ++ # _type_check is applied ++ with self.assertRaisesRegex(TypeError, "Plain typing.Optional is not valid as type argument"): ++ class X(TypedDict): ++ a: Optional ++ ++ # _type_convert is applied ++ class Y(TypedDict): ++ a: None ++ b: "int" ++ if sys.version_info >= (3, 14): ++ import annotationlib ++ ++ fwdref = EqualToForwardRef('int', module=__name__) ++ self.assertEqual(Y.__annotations__, {'a': type(None), 'b': fwdref}) ++ self.assertEqual(Y.__annotate__(annotationlib.Format.FORWARDREF), {'a': type(None), 'b': fwdref}) ++ else: ++ self.assertEqual(Y.__annotations__, {'a': type(None), 'b': typing.ForwardRef('int', module=__name__)}) ++ ++ @skipUnless(TYPING_3_14_0, "Only supported on 3.14") ++ def test_delayed_type_check(self): ++ # _type_check is also applied later ++ class Z(TypedDict): ++ a: undefined # noqa: F821 ++ ++ with self.assertRaises(NameError): ++ Z.__annotations__ ++ ++ undefined = Final ++ with self.assertRaisesRegex(TypeError, "Plain typing.Final is not valid as type argument"): ++ Z.__annotations__ ++ ++ undefined = None # noqa: F841 ++ self.assertEqual(Z.__annotations__, {'a': type(None)}) ++ ++ @skipUnless(TYPING_3_14_0, "Only supported on 3.14") ++ def test_deferred_evaluation(self): ++ class A(TypedDict): ++ x: NotRequired[undefined] # noqa: F821 ++ y: ReadOnly[undefined] # noqa: F821 ++ z: Required[undefined] # noqa: F821 ++ ++ self.assertEqual(A.__required_keys__, frozenset({'y', 'z'})) ++ self.assertEqual(A.__optional_keys__, frozenset({'x'})) ++ self.assertEqual(A.__readonly_keys__, frozenset({'y'})) ++ self.assertEqual(A.__mutable_keys__, frozenset({'x', 'z'})) ++ ++ with self.assertRaises(NameError): ++ A.__annotations__ ++ ++ import annotationlib ++ self.assertEqual( ++ A.__annotate__(annotationlib.Format.STRING), ++ {'x': 'NotRequired[undefined]', 'y': 'ReadOnly[undefined]', ++ 'z': 'Required[undefined]'}, ++ ) ++ ++ + class AnnotatedTests(BaseTestCase): + + def test_repr(self): +@@ -5887,7 +5987,7 @@ class ConcatenateTests(BaseTestCase): + U2 = Unpack[Ts] + self.assertEqual(C2[U1], (str, int, str)) + self.assertEqual(C2[U2], (str, Unpack[Ts])) +- self.assertEqual(C2["U2"], (str, typing.ForwardRef("U2"))) ++ self.assertEqual(C2["U2"], (str, EqualToForwardRef("U2"))) + + if (3, 12, 0) <= sys.version_info < (3, 12, 4): + with self.assertRaises(AssertionError): +@@ -7196,8 +7296,8 @@ class TypeVarTests(BaseTestCase): + self.assertEqual(X | "x", Union[X, "x"]) + self.assertEqual("x" | X, Union["x", X]) + # make sure the order is correct +- self.assertEqual(get_args(X | "x"), (X, typing.ForwardRef("x"))) +- self.assertEqual(get_args("x" | X), (typing.ForwardRef("x"), X)) ++ self.assertEqual(get_args(X | "x"), (X, EqualToForwardRef("x"))) ++ self.assertEqual(get_args("x" | X), (EqualToForwardRef("x"), X)) + + def test_union_constrained(self): + A = TypeVar('A', str, bytes) +@@ -8770,7 +8870,7 @@ class TestEvaluateForwardRefs(BaseTestCase): + type_params=None, + format=Format.FORWARDREF, + ) +- self.assertEqual(evaluated_ref, typing.ForwardRef("doesnotexist2")) ++ self.assertEqual(evaluated_ref, EqualToForwardRef("doesnotexist2")) + + def test_evaluate_with_type_params(self): + # Use a T name that is not in globals +@@ -8857,13 +8957,6 @@ class TestEvaluateForwardRefs(BaseTestCase): + obj = object() + self.assertIs(evaluate_forward_ref(typing.ForwardRef("int"), globals={"int": obj}), obj) + +- def test_fwdref_value_is_cached(self): +- fr = typing.ForwardRef("hello") +- with self.assertRaises(NameError): +- evaluate_forward_ref(fr) +- self.assertIs(evaluate_forward_ref(fr, globals={"hello": str}), str) +- self.assertIs(evaluate_forward_ref(fr), str) +- + @skipUnless(TYPING_3_9_0, "Needs PEP 585 support") + def test_fwdref_with_owner(self): + self.assertEqual( +@@ -8908,7 +9001,7 @@ class TestEvaluateForwardRefs(BaseTestCase): + self.assertEqual(get_args(evaluated_ref1b), (Y[Tx],)) + + with self.subTest("nested string of TypeVar"): +- evaluated_ref2 = evaluate_forward_ref(typing.ForwardRef("""Y["Y['Tx']"]"""), locals={"Y": Y}) ++ evaluated_ref2 = evaluate_forward_ref(typing.ForwardRef("""Y["Y['Tx']"]"""), locals={"Y": Y, "Tx": Tx}) + self.assertEqual(get_origin(evaluated_ref2), Y) + if not TYPING_3_9_0: + self.skipTest("Nested string 'Tx' stays ForwardRef in 3.8") +diff --git a/src/typing_extensions.py b/src/typing_extensions.py +index d089d5e..baa6c4f 100644 +--- a/src/typing_extensions.py ++++ b/src/typing_extensions.py +@@ -13,6 +13,9 @@ import types as _types + import typing + import warnings + ++if sys.version_info >= (3, 14): ++ import annotationlib ++ + __all__ = [ + # Super-special typing primitives. + 'Any', +@@ -1014,21 +1017,31 @@ else: + tp_dict.__orig_bases__ = bases + + annotations = {} ++ own_annotate = None + if "__annotations__" in ns: + own_annotations = ns["__annotations__"] +- elif "__annotate__" in ns: +- # TODO: Use inspect.VALUE here, and make the annotations lazily evaluated +- own_annotations = ns["__annotate__"](1) ++ elif sys.version_info >= (3, 14): ++ if hasattr(annotationlib, "get_annotate_from_class_namespace"): ++ own_annotate = annotationlib.get_annotate_from_class_namespace(ns) ++ else: ++ # 3.14.0a7 and earlier ++ own_annotate = ns.get("__annotate__") ++ if own_annotate is not None: ++ own_annotations = annotationlib.call_annotate_function( ++ own_annotate, Format.FORWARDREF, owner=tp_dict ++ ) ++ else: ++ own_annotations = {} + else: + own_annotations = {} + msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" + if _TAKES_MODULE: +- own_annotations = { ++ own_checked_annotations = { + n: typing._type_check(tp, msg, module=tp_dict.__module__) + for n, tp in own_annotations.items() + } + else: +- own_annotations = { ++ own_checked_annotations = { + n: typing._type_check(tp, msg) + for n, tp in own_annotations.items() + } +@@ -1041,7 +1054,8 @@ else: + for base in bases: + base_dict = base.__dict__ + +- annotations.update(base_dict.get('__annotations__', {})) ++ if sys.version_info <= (3, 14): ++ annotations.update(base_dict.get('__annotations__', {})) + required_keys.update(base_dict.get('__required_keys__', ())) + optional_keys.update(base_dict.get('__optional_keys__', ())) + readonly_keys.update(base_dict.get('__readonly_keys__', ())) +@@ -1051,8 +1065,8 @@ else: + # is retained for backwards compatibility, but only for Python + # 3.13 and lower. + if (closed and sys.version_info < (3, 14) +- and "__extra_items__" in own_annotations): +- annotation_type = own_annotations.pop("__extra_items__") ++ and "__extra_items__" in own_checked_annotations): ++ annotation_type = own_checked_annotations.pop("__extra_items__") + qualifiers = set(_get_typeddict_qualifiers(annotation_type)) + if Required in qualifiers: + raise TypeError( +@@ -1066,8 +1080,8 @@ else: + ) + extra_items_type = annotation_type + +- annotations.update(own_annotations) +- for annotation_key, annotation_type in own_annotations.items(): ++ annotations.update(own_checked_annotations) ++ for annotation_key, annotation_type in own_checked_annotations.items(): + qualifiers = set(_get_typeddict_qualifiers(annotation_type)) + + if Required in qualifiers: +@@ -1085,7 +1099,38 @@ else: + mutable_keys.add(annotation_key) + readonly_keys.discard(annotation_key) + +- tp_dict.__annotations__ = annotations ++ if sys.version_info >= (3, 14): ++ def __annotate__(format): ++ annos = {} ++ for base in bases: ++ if base is Generic: ++ continue ++ base_annotate = base.__annotate__ ++ if base_annotate is None: ++ continue ++ base_annos = annotationlib.call_annotate_function( ++ base.__annotate__, format, owner=base) ++ annos.update(base_annos) ++ if own_annotate is not None: ++ own = annotationlib.call_annotate_function( ++ own_annotate, format, owner=tp_dict) ++ if format != Format.STRING: ++ own = { ++ n: typing._type_check(tp, msg, module=tp_dict.__module__) ++ for n, tp in own.items() ++ } ++ elif format == Format.STRING: ++ own = annotationlib.annotations_to_string(own_annotations) ++ elif format in (Format.FORWARDREF, Format.VALUE): ++ own = own_checked_annotations ++ else: ++ raise NotImplementedError(format) ++ annos.update(own) ++ return annos ++ ++ tp_dict.__annotate__ = __annotate__ ++ else: ++ tp_dict.__annotations__ = annotations + tp_dict.__required_keys__ = frozenset(required_keys) + tp_dict.__optional_keys__ = frozenset(optional_keys) + tp_dict.__readonly_keys__ = frozenset(readonly_keys) diff --git a/dev-python/typing-extensions/typing-extensions-4.13.2-r2.ebuild b/dev-python/typing-extensions/typing-extensions-4.13.2-r2.ebuild new file mode 100644 index 000000000000..4b245e1081ba --- /dev/null +++ b/dev-python/typing-extensions/typing-extensions-4.13.2-r2.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Backported and Experimental Type Hints for Python 3.7+" +HOMEPAGE=" + https://pypi.org/project/typing-extensions/ + https://github.com/python/typing_extensions/ +" + +LICENSE="PSF-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + >=dev-python/flit-core-3.11[${PYTHON_USEDEP}] + test? ( + dev-python/test[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests unittest + +PATCHES=( + # https://github.com/python/typing_extensions/pull/566 + # https://github.com/python/typing_extensions/pull/592 + "${FILESDIR}/${P}-py314.patch" +) + +python_test() { + cd src || die + eunittest +} diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest index 15d713a43bda..6e00bee6117d 100644 --- a/dev-python/virtualenv/Manifest +++ b/dev-python/virtualenv/Manifest @@ -1,2 +1,3 @@ DIST virtualenv-20.30.0.tar.gz 4346945 BLAKE2B 67e78ae9e0b51799da4d3b1f981b70e4727d43f044cb699fcf93c00af181457f0bce8f5519e2b9b36b7713608a14da21bc1a8767d5c10a7791830f52580af70c SHA512 c7a43fe7ba1fa5224252d4d0982120b5ef353a20fd3b48c52f62a0ef46f63a795dcf2c5388449cdec3f24316dda77724f801358330baa71501e1dfd16dcda2ab DIST virtualenv-20.31.1.tar.gz 6076234 BLAKE2B d97adc477cf09d8944289d7e395428454e3867516bf3a84da08b598299b0a293eff5d6ea3a25dc906b1023d32eefcb0aa37f8515a68ab338de8d61c3c998df8f SHA512 1bac09af8a8db0104332e129f2a7a6623408547a1af63a2168a3e1519ff708c33d0665be489085548c0ae17962d787c5eec81d02920e32e256085ea4de5e7774 +DIST virtualenv-20.31.2.tar.gz 6076316 BLAKE2B 23584e0b5f556d95dcc1c24da4c140749fe8edd9abee9213cb47c89a43c7b8aa26d0f539523d93600c2d023db4153bd1ae2e2c33996677dfc3eef3ec4d9d7201 SHA512 b253fdd81412cbde1358a885ab25db62d7ee05309fd37c6d81cccde570f70acdd4ae13204dcf0a97cea67b6d6524d8d083ff6ca43a0ee22c513b39f1e37ee6f3 diff --git a/dev-python/virtualenv/virtualenv-20.31.2.ebuild b/dev-python/virtualenv/virtualenv-20.31.2.ebuild new file mode 100644 index 000000000000..48e79b25362d --- /dev/null +++ b/dev-python/virtualenv/virtualenv-20.31.2.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) + +inherit distutils-r1 pypi + +DESCRIPTION="Virtual Python Environment builder" +HOMEPAGE=" + https://virtualenv.pypa.io/en/stable/ + https://pypi.org/project/virtualenv/ + https://github.com/pypa/virtualenv/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}] + >=dev-python/filelock-3.12.2[${PYTHON_USEDEP}] + >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}] + + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel +" +# coverage is used somehow magically in virtualenv, maybe it actually +# tests something useful +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + $(python_gen_cond_dep ' + dev-python/coverage[${PYTHON_USEDEP}] + dev-python/flaky[${PYTHON_USEDEP}] + >=dev-python/pip-22.2.1[${PYTHON_USEDEP}] + >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + >=dev-python/setuptools-67.8[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + >=dev-python/packaging-20.0[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' python3_{11..13}) + $(python_gen_cond_dep ' + >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}] + ' 'pypy3*') + ) +" + +distutils_enable_tests pytest + +src_prepare() { + local PATCHES=( + # use wheels from ensurepip bundle + "${FILESDIR}/${PN}-20.31.1-ensurepip.patch" + ) + + distutils-r1_src_prepare + + # workaround test failures due to warnings from setuptools-scm, sigh + echo '[tool.setuptools_scm]' >> pyproject.toml || die + + # remove useless pins + sed -i -e 's:,<[0-9.]*::' pyproject.toml || die + + # remove bundled wheels + rm src/virtualenv/seed/wheels/embed/*.whl || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping testing on ${EPYTHON}" + return + fi + + local EPYTEST_DESELECT=( + tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data + # tests for old wheels with py3.7 support + tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke + tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support + # broken by different wheel versions in ensurepip + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none + tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output + # hangs on a busy system, sigh + tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe + # TODO + tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions + ) + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + # these don't like the executable called pypy3.11? + tests/unit/activation/test_bash.py::test_bash + tests/unit/activation/test_fish.py::test_fish + tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable + ) + ;; + python3.1[23]) + EPYTEST_DESELECT+=( + tests/unit/create/via_global_ref/test_build_c_ext.py + ) + ;& + python3.11) + EPYTEST_DESELECT+=( + # TODO + tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable + ) + ;; + esac + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x TZ=UTC + local plugins=( -p flaky -p pytest_mock ) + if [[ ${EPYTHON} == pypy3* ]]; then + plugins+=( -p freezer ) + else + plugins+=( -p time_machine ) + fi + local EPYTEST_TIMEOUT=180 + local EPYTEST_XDIST=1 + epytest "${plugins[@]}" +} + +src_install() { + distutils-r1_src_install + + # remove bundled wheels, we're using ensurepip bundle instead + find "${ED}" -name '*.whl' -delete || die +} diff --git a/dev-python/wheel/files/wheel-0.45.1-test.patch b/dev-python/wheel/files/wheel-0.45.1-test.patch new file mode 100644 index 000000000000..49dba4e2e579 --- /dev/null +++ b/dev-python/wheel/files/wheel-0.45.1-test.patch @@ -0,0 +1,125 @@ +From 36877e99122e8df90d4aa41d414999857d6d852d Mon Sep 17 00:00:00 2001 +From: shenxianpeng <xianpeng.shen@gmail.com> +Date: Sun, 16 Mar 2025 01:35:32 +0800 +Subject: [PATCH] Fixed test failures (#651) + +--- + tests/test_bdist_wheel.py | 4 ++-- + tests/test_tagopt.py | 18 +++++++++--------- + tests/testdata/unicode.dist/setup.py | 2 +- + 3 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/tests/test_bdist_wheel.py b/tests/test_bdist_wheel.py +index fcb2dfc..21eddd0 100644 +--- a/tests/test_bdist_wheel.py ++++ b/tests/test_bdist_wheel.py +@@ -79,9 +79,9 @@ def test_no_scripts(wheel_paths): + + + def test_unicode_record(wheel_paths): +- path = next(path for path in wheel_paths if "unicode.dist" in path) ++ path = next(path for path in wheel_paths if "unicode_dist" in path) + with ZipFile(path) as zf: +- record = zf.read("unicode.dist-0.1.dist-info/RECORD") ++ record = zf.read("unicode_dist-0.1.dist-info/RECORD") + + assert "åäö_日本語.py".encode() in record + +diff --git a/tests/test_tagopt.py b/tests/test_tagopt.py +index 5335af4..5733e1a 100644 +--- a/tests/test_tagopt.py ++++ b/tests/test_tagopt.py +@@ -14,7 +14,7 @@ SETUP_PY = """\ + from setuptools import setup, Extension + + setup( +- name="Test", ++ name="test", + version="1.0", + author_email="author@example.com", + py_modules=["test"], +@@ -63,7 +63,7 @@ def test_default_tag(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name == f"Test-1.0-py{sys.version_info[0]}-none-any.whl" ++ assert wheels[0].name == f"test-1.0-py{sys.version_info[0]}-none-any.whl" + assert wheels[0].suffix == ".whl" + + +@@ -76,7 +76,7 @@ def test_build_number(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name == f"Test-1.0-1-py{sys.version_info[0]}-none-any.whl" ++ assert wheels[0].name == f"test-1.0-1-py{sys.version_info[0]}-none-any.whl" + assert wheels[0].suffix == ".whl" + + +@@ -89,7 +89,7 @@ def test_explicit_tag(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name.startswith("Test-1.0-py32-") ++ assert wheels[0].name.startswith("test-1.0-py32-") + assert wheels[0].suffix == ".whl" + + +@@ -101,7 +101,7 @@ def test_universal_tag(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name.startswith("Test-1.0-py2.py3-") ++ assert wheels[0].name.startswith("test-1.0-py2.py3-") + assert wheels[0].suffix == ".whl" + + +@@ -114,7 +114,7 @@ def test_universal_beats_explicit_tag(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name.startswith("Test-1.0-py2.py3-") ++ assert wheels[0].name.startswith("test-1.0-py2.py3-") + assert wheels[0].suffix == ".whl" + + +@@ -129,7 +129,7 @@ def test_universal_in_setup_cfg(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name.startswith("Test-1.0-py2.py3-") ++ assert wheels[0].name.startswith("test-1.0-py2.py3-") + assert wheels[0].suffix == ".whl" + + +@@ -144,7 +144,7 @@ def test_pythontag_in_setup_cfg(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name.startswith("Test-1.0-py32-") ++ assert wheels[0].name.startswith("test-1.0-py32-") + assert wheels[0].suffix == ".whl" + + +@@ -157,7 +157,7 @@ def test_legacy_wheel_section_in_setup_cfg(temp_pkg): + assert dist_dir.is_dir() + wheels = list(dist_dir.iterdir()) + assert len(wheels) == 1 +- assert wheels[0].name.startswith("Test-1.0-py2.py3-") ++ assert wheels[0].name.startswith("test-1.0-py2.py3-") + assert wheels[0].suffix == ".whl" + + +diff --git a/tests/testdata/unicode.dist/setup.py b/tests/testdata/unicode.dist/setup.py +index ec66d1e..46ef0a1 100644 +--- a/tests/testdata/unicode.dist/setup.py ++++ b/tests/testdata/unicode.dist/setup.py +@@ -3,7 +3,7 @@ from __future__ import annotations + from setuptools import setup + + setup( +- name="unicode.dist", ++ name="unicode_dist", + version="0.1", + description="A testing distribution \N{SNOWMAN}", + packages=["unicodedist"], diff --git a/dev-python/wheel/wheel-0.45.1.ebuild b/dev-python/wheel/wheel-0.45.1.ebuild index 7060370c8e7d..0dd4b7fc4e63 100644 --- a/dev-python/wheel/wheel-0.45.1.ebuild +++ b/dev-python/wheel/wheel-0.45.1.ebuild @@ -28,14 +28,14 @@ BDEPEND=" ) " -EPYTEST_DESELECT=( - # fails if any setuptools plugin imported the module first - tests/test_bdist_wheel.py::test_deprecated_import -) - distutils_enable_tests pytest src_prepare() { + local PATCHES=( + # https://github.com/pypa/wheel/pull/651 + "${FILESDIR}/${P}-test.patch" + ) + distutils-r1_src_prepare # unbundle packaging @@ -46,6 +46,17 @@ src_prepare() { } python_test() { + local EPYTEST_DESELECT=( + # fails if any setuptools plugin imported the module first + tests/test_bdist_wheel.py::test_deprecated_import + + # broken by setuptools license changes + # upstream removed the tests already + tests/test_bdist_wheel.py::test_licenses_default + tests/test_bdist_wheel.py::test_licenses_deprecated + tests/test_bdist_wheel.py::test_licenses_override + ) + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 epytest } |
