diff options
Diffstat (limited to 'dev-python')
50 files changed, 1617 insertions, 179 deletions
diff --git a/dev-python/aiodns/aiodns-3.5.0.ebuild b/dev-python/aiodns/aiodns-3.5.0.ebuild index 21b800cd9988..689f1c885735 100644 --- a/dev-python/aiodns/aiodns-3.5.0.ebuild +++ b/dev-python/aiodns/aiodns-3.5.0.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" +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" diff --git a/dev-python/b2sdk/Manifest b/dev-python/b2sdk/Manifest index 5fa9af4893cc..e3328c58a8fe 100644 --- a/dev-python/b2sdk/Manifest +++ b/dev-python/b2sdk/Manifest @@ -1,2 +1 @@ -DIST b2sdk-2.3.0.tar.gz 390949 BLAKE2B e14c9fc56b7ed66350b8d73456dd50b0f6fdb40d7a6fe73cf7950afcb25bb5257a63bb361d8cbca99116b4999a2b0195967b4e08aff5ca9aaf5c16e4b4b532eb SHA512 29ba07581d0e587b413396f128d7fe14f8ac25ea0553eef69e1c428823690974d9373db727321f9838886a07946c36defdd5bae24d31266751d6b1a2f05968c6 -DIST b2sdk-2.8.1.tar.gz 404058 BLAKE2B 69a74d995a7ff91f252676edfbe274e6239ec70f95ccaf5f357fd13f482dea433074b471bd06fc1ee7f88bdc964d3dd5571441491dcfa333f8101eeb8b9b3ad8 SHA512 20cc8b4f28f010588965a5ca6300b41d914ecdba57f28ab0719c4ad52293d41e5c62648a178a5202614cdc65f22a9e48c5dd966a682daa98be07fdb04235f318 +DIST b2sdk-2.9.4.gh.tar.gz 412163 BLAKE2B 8bb3273ff9bc73de76466845e165f3d9b16f1cff19ea88758162cfa21320e8670bb816e7ad21190e54a450c6088d749388c3864f206a6ed31c07a7f1c2a599f1 SHA512 b14d373ea5d68406660a8c461bc5e9c31ee0ef672fc80d79d21b3a64b1ac1c56366c58f330d7b57e4b376b7b87bb1c84efed1e73b2e8a958ec725e8bdb9342f3 diff --git a/dev-python/b2sdk/b2sdk-2.3.0.ebuild b/dev-python/b2sdk/b2sdk-2.3.0.ebuild deleted file mode 100644 index bebdab0824ef..000000000000 --- a/dev-python/b2sdk/b2sdk-2.3.0.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 2021-2024 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 - -DESCRIPTION="The client library for BackBlaze's B2 product" -HOMEPAGE="https://github.com/Backblaze/b2-sdk-python" -SRC_URI="https://github.com/Backblaze/b2-sdk-python/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - -S="${WORKDIR}/b2-sdk-python-${PV}" -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -export PDM_BUILD_SCM_VERSION=${PV} - -RDEPEND=" - $(python_gen_cond_dep ' - >=dev-python/logfury-1.0.1[${PYTHON_USEDEP}] - >=dev-python/requests-2.9.1[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}] - ') -" - -distutils_enable_tests pytest - -# tqdm dependency is temporary, see -# https://github.com/Backblaze/b2-sdk-python/issues/489 -BDEPEND+=" test? ( - $(python_gen_cond_dep ' - >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}] - dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}] - >=dev-python/tqdm-4.66.2[${PYTHON_USEDEP}] - ') -)" - -PATCHES=( - # migrate from pytest-lazy-fixture to pytest-lazy-fixtures - "${FILESDIR}/${P}-lazy-fixtures.patch" -) - -# These tests seem to require some b2 authentication (they're integration tests -# so this is not unreasonable) -EPYTEST_DESELECT=( - # These integration tests require an actual connection to backblaze, which - # can't typically work in the sandbox - test/integration -) diff --git a/dev-python/b2sdk/b2sdk-2.8.1.ebuild b/dev-python/b2sdk/b2sdk-2.8.1.ebuild deleted file mode 100644 index 835666ba0870..000000000000 --- a/dev-python/b2sdk/b2sdk-2.8.1.ebuild +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2021-2024 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 - -DESCRIPTION="The client library for BackBlaze's B2 product" -HOMEPAGE="https://github.com/Backblaze/b2-sdk-python" -SRC_URI="https://github.com/Backblaze/b2-sdk-python/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - -S="${WORKDIR}/b2-sdk-python-${PV}" -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -export PDM_BUILD_SCM_VERSION=${PV} - -RDEPEND=" - $(python_gen_cond_dep ' - >=dev-python/annotated-types-0.7.0[${PYTHON_USEDEP}] - >=dev-python/logfury-1.0.1[${PYTHON_USEDEP}] - >=dev-python/requests-2.9.1[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}] - ') -" - -distutils_enable_tests pytest - -# tqdm dependency is temporary, see -# https://github.com/Backblaze/b2-sdk-python/issues/489 -BDEPEND+=" test? ( - $(python_gen_cond_dep ' - >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}] - dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}] - >=dev-python/tqdm-4.66.2[${PYTHON_USEDEP}] - ') -)" - -# These tests seem to require some b2 authentication (they're integration tests -# so this is not unreasonable) -EPYTEST_DESELECT=( - # These integration tests require an actual connection to backblaze, which - # can't typically work in the sandbox - test/integration -) diff --git a/dev-python/b2sdk/b2sdk-2.9.4.ebuild b/dev-python/b2sdk/b2sdk-2.9.4.ebuild new file mode 100644 index 000000000000..711acfe5370d --- /dev/null +++ b/dev-python/b2sdk/b2sdk-2.9.4.ebuild @@ -0,0 +1,46 @@ +# Copyright 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="Library to access Backblaze B2 cloud storage" +HOMEPAGE=" + https://github.com/Backblaze/b2-sdk-python + https://pypi.org/project/b2sdk/ +" +# No tests in sdist +SRC_URI="https://github.com/Backblaze/b2-sdk-python/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" +S="${WORKDIR}"/b2-sdk-python-${PV} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +# pydantic can be used but it has a fallback +RDEPEND=" + dev-python/logfury[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}] + dev-python/tqdm[${PYTHON_USEDEP}] + ) +" + +EPYTEST_IGNORE=( + # Requires network access and real API keys + test/integration/test_bucket.py + test/integration/test_download.py + test/integration/test_file_version_attributes.py + test/integration/test_sync.py + test/integration/test_upload.py + test/integration/test_raw_api.py +) + +distutils_enable_tests pytest diff --git a/dev-python/b2sdk/files/b2sdk-2.3.0-lazy-fixtures.patch b/dev-python/b2sdk/files/b2sdk-2.3.0-lazy-fixtures.patch deleted file mode 100644 index 0a942878433c..000000000000 --- a/dev-python/b2sdk/files/b2sdk-2.3.0-lazy-fixtures.patch +++ /dev/null @@ -1,56 +0,0 @@ -Migrate from pytest-lazy-fixture to pytest-lazy-fixtures. -https://github.com/Backblaze/b2-sdk-python/issues/484 ---- a/test/unit/account_info/fixtures.py -+++ b/test/unit/account_info/fixtures.py -@@ -11,6 +11,7 @@ from __future__ import annotations - - import pytest - from apiver_deps import InMemoryAccountInfo, SqliteAccountInfo -+from pytest_lazy_fixtures import lf - - - @pytest.fixture -@@ -84,8 +85,8 @@ def sqlite_account_info(sqlite_account_info_factory): - - @pytest.fixture( - params=[ -- pytest.lazy_fixture('in_memory_account_info_factory'), -- pytest.lazy_fixture('sqlite_account_info_factory'), -+ lf('in_memory_account_info_factory'), -+ lf('sqlite_account_info_factory'), - ] - ) - def account_info_factory(request): -@@ -94,8 +95,8 @@ def account_info_factory(request): - - @pytest.fixture( - params=[ -- pytest.lazy_fixture('in_memory_account_info'), -- pytest.lazy_fixture('sqlite_account_info'), -+ lf('in_memory_account_info'), -+ lf('sqlite_account_info'), - ] - ) - def account_info(request): ---- a/test/unit/test_cache.py -+++ b/test/unit/test_cache.py -@@ -13,7 +13,7 @@ from dataclasses import dataclass - - import pytest - from apiver_deps import AuthInfoCache, DummyCache, InMemoryAccountInfo, InMemoryCache --from pytest_lazyfixture import lazy_fixture -+from pytest_lazy_fixtures import lf - - - @pytest.fixture -@@ -32,8 +32,8 @@ def auth_info_cache(): - - - @pytest.fixture( -- scope="class", params=[lazy_fixture('in_memory_cache'), -- lazy_fixture('auth_info_cache')] -+ params=[lf('in_memory_cache'), -+ lf('auth_info_cache')] - ) - def cache(request): - return request.param diff --git a/dev-python/b2sdk/metadata.xml b/dev-python/b2sdk/metadata.xml index bebc16beab5f..8051c7f9a166 100644 --- a/dev-python/b2sdk/metadata.xml +++ b/dev-python/b2sdk/metadata.xml @@ -2,15 +2,14 @@ <!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>ezzieyguywuf@gmail.com</email> - <name>Wolfgang E. Sanyer</name> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> </maintainer> - <longdescription lang="en"> - The command-line tool that gives easy access to all of the capabilities - of B2 Cloud Storage. - - This program provides command-line access to the B2 service. - </longdescription> - <origin>gentoo-guru-overlay</origin> + <origin>gentoo-staging</origin> + <stabilize-allarches/> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest index 89aace7fcfb3..75f4f5e9e323 100644 --- a/dev-python/cfn-lint/Manifest +++ b/dev-python/cfn-lint/Manifest @@ -1,2 +1,3 @@ DIST cfn_lint-1.36.1.tar.gz 3108363 BLAKE2B 21d99e2ccd5edc69cc7c1995f5667e9997764c0d7be6a2662ef3b8f42bf72d633153a0cef5493d25b16eed2e87da1bdad1536b97b9193e4c26a1e44c15790827 SHA512 49adc1844768b9ae70599c02653cfc2b454edf08def22c3d6aa5728f0ebf7b4cc1729f729ab3022a1028f44b54df1e14a626dad684143306766930f398a744a2 DIST cfn_lint-1.37.0.tar.gz 3089485 BLAKE2B 38e855b82064738895e0f056867bbd7e81ffa20b955d5276de0a50f80befbc52a4337280b7ab39288d31497fa03f68485e484e966c775b750530f7116408cb55 SHA512 05346d7c72c5fae61b5f79b3fc1c0c83b04ce083e534c59ada65bc44258e0e5f72874e09009c52f940c908b7172da34c5bb93b62c366b0aa10ef6bb547aa1c04 +DIST cfn_lint-1.37.2.tar.gz 3105967 BLAKE2B afa47f8c3669b32a6471e6bd438b68407f87f76c1473d848b8bc70474616418505ffcb69f7a35124fc2c5c1b2a5135d2d9ed51f2227b36e753d7a481fbc5b362 SHA512 e5a24a4cc506c287af3229ca86bee6ece335b8b80c7083f9b8c52a79d09c441043b176464e84051d05e135d2e47b11b307531a9ab0b24de98545e9e276697f64 diff --git a/dev-python/cfn-lint/cfn-lint-1.37.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.37.2.ebuild new file mode 100644 index 000000000000..853b42442aa8 --- /dev/null +++ b/dev-python/cfn-lint/cfn-lint-1.37.2.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}] + ) +" + +EPYTEST_PLUGINS=() +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 + epytest +} diff --git a/dev-python/cloudflare/Manifest b/dev-python/cloudflare/Manifest index fa6de3c9f271..6db824699dac 100644 --- a/dev-python/cloudflare/Manifest +++ b/dev-python/cloudflare/Manifest @@ -1,5 +1,5 @@ DIST cloudflare-2.19.4.gh.tar.gz 151397 BLAKE2B c91c95f52314c5177d823ef8f827ea2f76f6cc703260449aea12d54c1b77d061feca15d4bb845f84cfb4fd80789e5064e54d7530daf546d54d17054b9e0b4fda SHA512 8ae11e73760c57b610abfe5e2c8fdc83c2e0b9e07340884925ec9ac3bf5b40b4edf39b2b8ce7330538369d7573146a2ddac195efb0efb4ff657f75fdacb31aed -DIST cloudflare-4.1.0.gh.tar.gz 1919098 BLAKE2B 00282a75357e1b6368b9c36f9abdf52547d42850f74c52d0cd2b1b02b26a717942167db59ba025eb1a6e874697299c79257c8e796874abcc742a9350374e2511 SHA512 bc61518791adc30b472b64407f336f5dd94ad5961c7c1fa474750b8d2579411db78592dd30ac731b05023c29105928bda0005185b07d54cf8b88f100eb1bf5ca DIST cloudflare-4.2.0.gh.tar.gz 1995070 BLAKE2B 0c5fc330a0aa5557c7ca39f49e2d94b93b7a6eac16752dcf7d4ff96f9464176831f989e13f54a988d8a2afdddf21fcec43944ab125291eb38b9ed0b0db62331a SHA512 0aa994d4109ab819a3e5d190863bde7ef657b0582350f530cea3dc9de4cb34a99f00e23413f35b4a484c75c8e88c184bde59c8e91354dffbdc558645270a21a1 -DIST cloudflare-python-4.1.0-prism.tar.gz 10768260 BLAKE2B baf23e1010417b770a7c26f7e806305a6431c917df527feb7277f72e35220e210b570cc67791fca911b450b0056c9d10824f6f90893abd6bd4b9bef933b4088d SHA512 05742179f53ce22bb9d3318069415bba9e94110ba14ea6a0eda991107c448fe35fb653d2863c4e3421e1062be2c8a963d2cc6bbe1187d9057378d144ce1fb3ac +DIST cloudflare-4.3.1.gh.tar.gz 2025113 BLAKE2B 05020324460b8857d21b2aac16e4c7fe316d5ad0bc0999a4c67e276d258cfd2cc4c85aa0fe82ed67931a2b02a3b90d39d9fd04eb3a6f8647a750bafdbe92e8a7 SHA512 36865ab8e88b2eaa3e0a5ad353db45bce55f166a96860f044bd88750de6a08a489e92492c721972be5582de551f31ba154ee6dccd386ca1b73c10864d185539a DIST cloudflare-python-4.2.0-prism.tar.gz 10827264 BLAKE2B e2231d8652fd0e33f1098687532520b7b24a7eec6e213470c8063f2fe306437f216c82cd62af23fec650224124fc161d85f4c098161dd4a9bc425c2a52da0e45 SHA512 68a5e15b7922752f600d5a02773dd6c683dcdcf12895dc80c3d16aeab52e302f9a90ab4fc4cc123374db74acaef5cd6618ac052dab8f8932206837f7f862556a +DIST cloudflare-python-4.3.1-prism.tar.gz 10857296 BLAKE2B b22423b4cc641243517de470c86597a13faab5aa3caa3bc6ffa2a1bcd53ae72ffdebc0eb7f693911ab4b36adf46afb8216bcb9e76085f85147b866c532147757 SHA512 5df269b007905518c5fa500d21ebabc3ec5ee06160a1454ba080c1dd0feb6c7e65a8f3684ec243e15eb28c7e4ac91c2861f83d5314576985501ae64645b70e94 diff --git a/dev-python/cloudflare/cloudflare-4.1.0.ebuild b/dev-python/cloudflare/cloudflare-4.3.1.ebuild index 059986187715..0a8574c0a5b1 100644 --- a/dev-python/cloudflare/cloudflare-4.1.0.ebuild +++ b/dev-python/cloudflare/cloudflare-4.3.1.ebuild @@ -44,6 +44,7 @@ BDEPEND="test? ( ${RDEPEND} )" +EPYTEST_XDIST=1 distutils_enable_tests pytest RESTRICT+=" !test? ( test )" @@ -75,6 +76,11 @@ python_test() { tests/test_client.py::TestCloudflare::test_copy_build_request tests/test_client.py::TestAsyncCloudflare::test_get_platform ) + # Doesn't have authentication setup correctly, broken upstream too + local EPYTEST_IGNORE=( + tests/api_resources/cloudforce_one/threat_events/datasets/test_health.py + tests/api_resources/radar/ +) epytest } diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest index 9f95b077f07e..e57cd7449b3c 100644 --- a/dev-python/dulwich/Manifest +++ b/dev-python/dulwich/Manifest @@ -4,6 +4,7 @@ DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b DIST dulwich-0.22.8.tar.gz 466542 BLAKE2B 2cec02b49e2ceb6a681e950454a2e84486a3ccc854c107fc0a051bbed99d77211760b3bf188bee065ac728b449e767f69148678412bcad49534d0d39b468c897 SHA512 bc38e79c9287357afc64324b0c52ff5b1db39138bf4f29062bb3a8b351f7000782c1c50f5284f6a6e4e2ff39cb3b811f7ee7ce4d2fd2302dd7d89c07faa19754 DIST dulwich-0.23.0.tar.gz 575116 BLAKE2B 35d5945f32a2e8b53fe350820082cbe1c55241df7393384a3388d73a8589607926eaac3ed27133113227ae2b480dbed55c99ec8df04dbfcea3692e53a62bc0ec SHA512 d24ea390ee6aba420aaa34e60bd53bca864c1e5ca5a44f9ccb1154e5fd2de3cd1e1a90cd50ee0331b726cb4f1c9267e849058a00de4ed16ade0f6a5054b7c081 DIST dulwich-0.23.1.tar.gz 649787 BLAKE2B ee2e6ca0b0338d34999a3c96528f944a487f418e09ec50e9712fed5beca1a0ad8efe475e6dcad23fb76065d3ec21948cb3f0f2d92a195a20054928025f98a471 SHA512 dfb5f7a101ee27476ac59d01ec8c269c70ce7141455e8b994b7d0c71edab881f088e7bdf2fcaea2f7e3b7516923d808acef75edde7bebcc7e112a0004ca2f2ea +DIST dulwich-0.23.2.tar.gz 704361 BLAKE2B 2ba377c86a96069efa93f0e227297ba679bf04b346fe799f7b36a54bb38b51b9178c407d373a5f3e4adc4188d268ac3705a16ef98e84758cc3b8c2eaff1f5ecd SHA512 b3da400f7b89b0afd1ad14623a2a8765f2c36131f2b401ed2267637d961a65e9be32c6bb56c555d7c649d8d828088a83b433a66669b48e2a295b782fffcf9c22 DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 DIST indoc-2.0.5.crate 14396 BLAKE2B fe838c6a855d6ff7396675a3fe9b2e0b06a93cfd4013b0b843d24d2fb81f6566528bfd1753c649646f06cb7e59262bd6ec3ed79d4e6f01d740cf0682355f2e5a SHA512 095fb56a3d87946c42a63065a8b276c2d4b9b835800014b400bb987593bf56701bad9f55d947f090740fdb7641a4f3c87fe8bfa5724709e95254d1e8e2e3616f DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9 diff --git a/dev-python/dulwich/dulwich-0.23.2.ebuild b/dev-python/dulwich/dulwich-0.23.2.ebuild new file mode 100644 index 000000000000..c4af87759e3e --- /dev/null +++ b/dev-python/dulwich/dulwich-0.23.2.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CARGO_OPTIONAL=1 +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +CRATES=" + autocfg@1.5.0 + heck@0.5.0 + indoc@2.0.6 + libc@0.2.174 + memchr@2.7.5 + memoffset@0.9.1 + once_cell@1.21.3 + portable-atomic@1.11.1 + proc-macro2@1.0.95 + pyo3-build-config@0.25.1 + pyo3-ffi@0.25.1 + pyo3-macros-backend@0.25.1 + pyo3-macros@0.25.1 + pyo3@0.25.1 + quote@1.0.40 + syn@2.0.104 + target-lexicon@0.13.2 + unicode-ident@1.0.18 + unindent@0.2.4 +" + +inherit cargo distutils-r1 pypi + +DESCRIPTION="Pure-Python implementation of the Git file formats and protocols" +HOMEPAGE=" + https://github.com/jelmer/dulwich/ + https://pypi.org/project/dulwich/ +" +SRC_URI+=" + native-extensions? ( + ${CARGO_CRATE_URIS} + ) +" + +LICENSE="GPL-2+ Apache-2.0" +LICENSE+=" native-extensions? (" +# Dependent crate licenses +LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0" +LICENSE+=" )" + +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="doc examples +native-extensions test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/urllib3-1.25[${PYTHON_USEDEP}] +" +BDEPEND=" + native-extensions? ( + ${RUST_DEPEND} + dev-python/setuptools-rust[${PYTHON_USEDEP}] + ) + test? ( + ${RDEPEND} + app-crypt/gpgme[python,${PYTHON_USEDEP}] + dev-python/fastimport[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx docs + +QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/dulwich/_.*.so" + +pkg_setup() { + # avoid rust_pkg_setup which will die when there's no Rust found + if use native-extensions ; then + rust_pkg_setup # implicitly inherited through cargo + fi +} + +src_unpack() { + cargo_src_unpack +} + +python_compile() { + unset PURE + # TODO: enable Rust extensions + if ! use native-extensions; then + local -x PURE=1 + fi + + distutils-r1_python_compile +} + +python_test() { + # remove interference from the tests that do stuff like user.name + unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE + unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE + unset EMAIL + # Do not use make check which rebuilds the extension and uses -Werror, + # causing unexpected failures. + "${EPYTHON}" -m unittest -v tests.test_suite || + die "tests failed with ${EPYTHON}" +} + +python_install_all() { + if use examples; then + docompress -x "/usr/share/doc/${PF}/examples" + dodoc -r examples + fi + distutils-r1_python_install_all +} diff --git a/dev-python/ensurepip-pip/Manifest b/dev-python/ensurepip-pip/Manifest index ae7c8833f652..1191f38db61b 100644 --- a/dev-python/ensurepip-pip/Manifest +++ b/dev-python/ensurepip-pip/Manifest @@ -1,3 +1,4 @@ DIST pip-25.0.1-py3-none-any.whl 1841526 BLAKE2B 928210cf0586b2e17cf96c341babbbf612eb08775af716588fad8840d04153d264b64098f97c8d2d7b219389d571cee8e4190195f8c5cc9f602749aad92df437 SHA512 48315489f2c0a76b49386228f9a2f675e71f20ff2f4aaaf65b2634ba5cac7c98facfbdebeb4651c65efdd2ade053a140d7a2a6b44587549d6663bc8bb5ef2220 DIST pip-25.1-py3-none-any.whl 1824948 BLAKE2B a237c46c680afca0b72da704db8f390f9723e1a9d262b31d3d1dc7c89adff2dd6908768cdbeff5dc621ade7d68ce056ec1c6373b1b500da3a098d9f9798ad925 SHA512 1f669dce82d5e9238dc4cb776097f96179be9dbacf18a825a0845437cc4c234ab5242009e8d7d5b0d383bc339d0759ea408668b8d7076861d35da275c0d0fbfe DIST pip-25.1.1-py3-none-any.whl 1825227 BLAKE2B 13170fa08dd26edced5e5fe8d89b38f5b3b63882489d2a951a7238f950a332ce0df11109482840595984bca187960d8fe2b7aeabfcbdaf94e5586631cc1de4e3 SHA512 e0c56f04a306cba9e13ed87f7460ad5a3bda7d6c37e05098082c58acb1f7493c8061e48df279f2c476e75d12df12d0f1a74d82e00e6fc2badffe484d281c56fc +DIST pip-25.1.1.gh.tar.gz 9219969 BLAKE2B eb443451deeb71888c2fc56ac5c8cb2d0515ec0efff975fab98cfa65d1fc5e66948243b3acebf1f4b0446e46082abb9fd350816579a4f5af1292c160490ce930 SHA512 ce61c9861265139b3c5ea9be9dc246097cd75c21687cf8301f80a377d02420c4524f0d6307d2ca0232ff8715b1105343bcfdb9cac6b69503780ab2c4645558dc diff --git a/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild new file mode 100644 index 000000000000..39972252a050 --- /dev/null +++ b/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +# PYTHON_COMPAT is used only for testing +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit distutils-r1 + +MY_P=${P#ensurepip-} +DESCRIPTION="Shared pip wheel for ensurepip Python module" +HOMEPAGE=" + https://pip.pypa.io/en/stable/ + https://pypi.org/project/pip/ + https://github.com/pypa/pip/ +" +SRC_URI=" + https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MIT MPL-2.0 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 test-rust" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + <dev-python/ensurepip-setuptools-80 + dev-python/ensurepip-wheel + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + test-rust? ( + dev-python/cryptography[${PYTHON_USEDEP}] + ) + dev-vcs/git + ) +" + +EPYTEST_PLUGINS=( pytest-rerunfailures ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + local PATCHES=( + "${FILESDIR}/pip-23.1-no-coverage.patch" + ) + + distutils-r1_python_prepare_all + + if use test; then + local wheels=( + "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl + ) + mkdir tests/data/common_wheels/ || die + cp "${wheels[@]}" tests/data/common_wheels/ || die + fi +} + +python_test() { + local EPYTEST_DESELECT=( + tests/functional/test_inspect.py::test_inspect_basic + # Internet + tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist + tests/functional/test_install.py::test_double_install_fail + tests/functional/test_install.py::test_install_sdist_links + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + tests/functional/test_lock.py::test_lock_archive + tests/functional/test_lock.py::test_lock_vcs + # broken by system site-packages use + tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip + tests/functional/test_uninstall.py::test_basic_uninstall_distutils + tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers + ) + local EPYTEST_IGNORE=( + # requires proxy.py + tests/functional/test_proxy.py + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # unexpected tempfiles? + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + ) + ;; + python3.14*) + EPYTEST_DESELECT+=( + # TODO: segfaults + tests/unit/test_collector.py::test_get_index_content_directory_append_index + # https://github.com/python/cpython/issues/125974 + tests/unit/test_collector.py::test_ensure_quoted_url + tests/unit/test_finder.py::test_finder_priority_file_over_page + tests/unit/test_urls.py::test_path_to_url_unix + tests/unit/test_collector.py::test_clean_url_path + tests/unit/test_collector.py::test_clean_url_path_with_local_path + tests/unit/test_req.py::TestRequirementSet::test_download_info_local_editable_dir + tests/unit/test_req.py::test_parse_editable_local + tests/unit/test_req.py::test_parse_editable_local_extras + tests/unit/test_req.py::test_get_url_from_path__archive_file + tests/unit/test_req.py::test_get_url_from_path__installable_dir + tests/functional/test_lock.py::test_lock_wheel_from_findlinks + tests/functional/test_lock.py::test_lock_sdist_from_findlinks + tests/functional/test_lock.py::test_lock_local_editable_with_dep + ) + ;; + esac + + if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/functional/test_install.py::test_install_sends_client_cert + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + ) + fi + + local -x PIP_DISABLE_PIP_VERSION_CHECK=1 + # rerunfailures because test suite breaks if packages are installed + # in parallel + epytest -m "not network" -o tmp_path_retention_policy=all \ + --reruns=5 --use-venv +} + +src_install() { + if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then + die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" + fi + # TODO: compress it? + insinto /usr/lib/python/ensurepip + doins "${DISTUTILS_WHEEL_PATH}" +} diff --git a/dev-python/ensurepip-pip/files/pip-23.1-no-coverage.patch b/dev-python/ensurepip-pip/files/pip-23.1-no-coverage.patch new file mode 100644 index 000000000000..2e12ee7cd07c --- /dev/null +++ b/dev-python/ensurepip-pip/files/pip-23.1-no-coverage.patch @@ -0,0 +1,42 @@ +From d915b0eec7b5844c06b5d8853544c8c5b538b0b9 Mon Sep 17 00:00:00 2001 +From: Arthur Zamarin <arthurzam@gentoo.org> +Date: Fri, 29 Jul 2022 14:06:03 +0300 +Subject: [PATCH] Disable coverage testing support inside test venvs + +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -408,13 +408,6 @@ def wheel_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) - + return _common_wheel_editable_install(tmpdir_factory, common_wheels, "wheel") + + +-@pytest.fixture(scope="session") +-def coverage_install( +- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path +-) -> Path: +- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage") +- +- + def install_pth_link( + venv: VirtualEnvironment, project_name: str, lib_dir: Path + ) -> None: +@@ -431,3 +424,2 @@ def virtualenv_template( + setuptools_install: Path, + wheel_install: Path, +- coverage_install: Path, +@@ -457,13 +449,6 @@ def virtualenv_template( + [os.fspath(venv.bin / "python"), "setup.py", "-q", "develop"], cwd=pip_editable + ) + +- # Install coverage and pth file for executing it in any spawned processes +- # in this virtual environment. +- install_pth_link(venv, "coverage", coverage_install) +- # zz prefix ensures the file is after easy-install.pth. +- with open(venv.site / "zz-coverage-helper.pth", "a") as f: +- f.write("import coverage; coverage.process_startup()") +- + # Drop (non-relocatable) launchers. + for exe in os.listdir(venv.bin): + if not ( +-- +2.40.0 + diff --git a/dev-python/ensurepip-pip/metadata.xml b/dev-python/ensurepip-pip/metadata.xml index a0d4c5913ba0..ea8988e8af6a 100644 --- a/dev-python/ensurepip-pip/metadata.xml +++ b/dev-python/ensurepip-pip/metadata.xml @@ -3,6 +3,7 @@ <pkgmetadata> <maintainer type="project"> <email>python@gentoo.org</email> + <name>Python</name> </maintainer> <origin>gentoo-staging</origin> diff --git a/dev-python/ensurepip-setuptools/Manifest b/dev-python/ensurepip-setuptools/Manifest index 52cfd61b5197..7db4debdcccd 100644 --- a/dev-python/ensurepip-setuptools/Manifest +++ b/dev-python/ensurepip-setuptools/Manifest @@ -1,2 +1,3 @@ DIST setuptools-79.0.1-py3-none-any.whl 1256281 BLAKE2B 8ae51bdd1c0ccada116757c2bd765225fcf4bedc7ada18567ae12f09b6978cdbcddd4f635a39a5568b6d3ed4388e4f73af5c33a7060f2ac0d0907fc82d8fd74f SHA512 fef6cfc6f95a5bb7320f1680e1c665cb8d9a4e4227cde4d8aab8a50bed4bcf04320085b9d7d5343359f887008db5c5a861e57f3d08b7b0b2311a28adaeee6b4a DIST setuptools-80.9.0-py3-none-any.whl 1201486 BLAKE2B 79895683ef4df387aee698984dfdf13adb14314f2d0267f41291c1c1ca68f4383a4273f004b6f3457463913eb19f8d386f32e2630ceaceaaf27ef32c4f61b7ed SHA512 2a0420f7faaa33d2132b82895a8282688030e939db0225ad8abb95a47bdb87b45318f10985fc3cee271a9121441c1526caa363d7f2e4a4b18b1a674068766e87 +DIST setuptools-80.9.0.tar.gz 1319958 BLAKE2B ab367912eec92b0d1251916d09c1dd2e311767eec87225beaff870dff923b47ba1732d2f7393b7d9e55d1ff1249c612e4403019e0021048951f9fc3b775c04c9 SHA512 36eb1f219d29c6b9e135936bde2001ad70a971c8069cd0175d3a5325b450e6843a903d3f70043c9f534768ebeab8ab0c544b8f44456555d333f1ed72daa5c18b diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild new file mode 100644 index 000000000000..4655ec34eb01 --- /dev/null +++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYPI_PN=${PN#ensurepip-} +# PYTHON_COMPAT used only for testing +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_REQ_USE="xml(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="Shared setuptools wheel for ensurepip Python module" +HOMEPAGE=" + https://github.com/pypa/setuptools/ + https://pypi.org/project/setuptools/ +" + +LICENSE="MIT" +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? ( + >=dev-python/build-1.0.3[${PYTHON_USEDEP}] + >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] + >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] + >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] + >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] + >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] + dev-python/pyproject-hooks[${PYTHON_USEDEP}] + >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] + >=dev-python/virtualenv-20[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_compile() { + # If we're testing, install for all implementations. + # If we're not, just get one wheel built. + if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then + distutils-r1_python_compile + fi +} + +python_test() { + local EPYTEST_DESELECT=( + # TODO + setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic + setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors + # TODO, probably some random package + setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass + # relies on -Werror + setuptools/_static.py::setuptools._static.Dict + setuptools/_static.py::setuptools._static.List + ) + + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + setuptools/tests/test_editable_install.py::TestCustomBuildWheel::test_access_plat_name + ) + ;; + esac + + local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} + epytest -o tmp_path_retention_policy=all \ + -m "not uses_network" setuptools +} + +src_install() { + if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then + die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" + fi + # TODO: compress it? + insinto /usr/lib/python/ensurepip + doins "${DISTUTILS_WHEEL_PATH}" +} diff --git a/dev-python/ensurepip-setuptools/metadata.xml b/dev-python/ensurepip-setuptools/metadata.xml index a0d4c5913ba0..12c531c47cfd 100644 --- a/dev-python/ensurepip-setuptools/metadata.xml +++ b/dev-python/ensurepip-setuptools/metadata.xml @@ -3,8 +3,11 @@ <pkgmetadata> <maintainer type="project"> <email>python@gentoo.org</email> + <name>Python</name> </maintainer> - + <upstream> + <remote-id type="cpe">cpe:/a:python:setuptools</remote-id> + </upstream> <origin>gentoo-staging</origin> <stabilize-allarches/> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/ensurepip-wheel/Manifest b/dev-python/ensurepip-wheel/Manifest index 667251597183..449c21e74d40 100644 --- a/dev-python/ensurepip-wheel/Manifest +++ b/dev-python/ensurepip-wheel/Manifest @@ -1 +1,2 @@ DIST wheel-0.45.1-py3-none-any.whl 72494 BLAKE2B f87dc394465368d06eb57c1697d45250ac3e04a15841ab018b1fc5ca5bb8eaa731108c61e6e2a018b6d2a6fa3ea66e5b182d6041c5143d03f7b2b92bdb2e71c6 SHA512 86c16248ec804ee0ac95d43b03d47351dceb534d0cdc4025ca1eb073e39e539de44c870b9261f0373144e1537f0e42675a759a318a8d5d346bbd9efcb704061d +DIST wheel-0.45.1.tar.gz 107545 BLAKE2B 13c8d60a2e39ded3d911c9e03915b01bda201f7e8cd6de456484ce6eeb2a990861a01f26e5d9f2ac4ca0ab2b6d0fea9db437d6f82cb39db9b1059c3c53202ec0 SHA512 df45f00e9eaeae2f27f813f31591590c961da2f6bff15bba6fb2a14d529c221f39b29894b8da408fe49cd4b760840a0e05c4baef377ccfacd9983c0bba83d6d8 diff --git a/dev-python/ensurepip-wheel/ensurepip-wheel-0.45.1-r1.ebuild b/dev-python/ensurepip-wheel/ensurepip-wheel-0.45.1-r1.ebuild new file mode 100644 index 000000000000..3b9c4c81cda1 --- /dev/null +++ b/dev-python/ensurepip-wheel/ensurepip-wheel-0.45.1-r1.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_PN=${PN#ensurepip-} +# PYTHON_COMPAT used only for testing +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Shared wheel wheel for use in pip tests" +HOMEPAGE=" + https://github.com/pypa/wheel/ + https://pypi.org/project/wheel/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND=" + test? ( + dev-python/setuptools[${PYTHON_USEDEP}] + ) +" + +# xdist is slightly flaky here +EPYTEST_PLUGINS=( pytest-rerunfailures ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +PATCHES=( + # https://github.com/pypa/wheel/pull/651 + "${FILESDIR}/wheel-0.45.1-test.patch" +) + +python_compile() { + # If we're testing, install for all implementations. + # If we're not, just get one wheel built. + if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then + distutils-r1_python_compile + fi +} + +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 + ) + + epytest --reruns=5 +} + +src_install() { + if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then + die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" + fi + # TODO: compress it? + insinto /usr/lib/python/ensurepip + doins "${DISTUTILS_WHEEL_PATH}" +} diff --git a/dev-python/ensurepip-wheel/files/wheel-0.45.1-test.patch b/dev-python/ensurepip-wheel/files/wheel-0.45.1-test.patch new file mode 100644 index 000000000000..bb99eccdd0fa --- /dev/null +++ b/dev-python/ensurepip-wheel/files/wheel-0.45.1-test.patch @@ -0,0 +1,113 @@ +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) + +--- 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 + +--- 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" + + +--- 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/ensurepip-wheel/metadata.xml b/dev-python/ensurepip-wheel/metadata.xml index a0d4c5913ba0..ea8988e8af6a 100644 --- a/dev-python/ensurepip-wheel/metadata.xml +++ b/dev-python/ensurepip-wheel/metadata.xml @@ -3,6 +3,7 @@ <pkgmetadata> <maintainer type="project"> <email>python@gentoo.org</email> + <name>Python</name> </maintainer> <origin>gentoo-staging</origin> diff --git a/dev-python/mapbox-vector-tile/Manifest b/dev-python/mapbox-vector-tile/Manifest index c73b228afbb9..97e4db0c85ac 100644 --- a/dev-python/mapbox-vector-tile/Manifest +++ b/dev-python/mapbox-vector-tile/Manifest @@ -1 +1,2 @@ DIST mapbox-vector-tile-2.1.0.gh.tar.gz 229585 BLAKE2B d4ed6034b8cea35b3bfe0db8ed3f9f094021654045dce560e36d9d21398c8cd41975848dd44de13c1e9f0a4c37d94835e349c9df7283b994fde60ff66eceda9d SHA512 d2ab9f0aba5150a4e9e0e7c9b29a3754f25ac9a1368e5c2909d773e1dc2197dcab59c047f68cdcf217727e0422bd8670ade797db74b26b95ce04f24564938c1d +DIST mapbox-vector-tile-2.2.0.gh.tar.gz 232332 BLAKE2B 1a9279405fc058608145143ae6c03ebe79ec99555f263ccd3809f276e12d65c6ecaae18c2d7d013ec69b0dab9b00904634ad792c0f3d11035a4454b9b39172dc SHA512 8a85ee583720667d3955969707188e2a99ec63d4592ae6a7c7d93b6eafc0e88b18dbd21a13374be364b5afa8cbb82c019d2f3179c7c1ff5fa9d479816fc16931 diff --git a/dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild b/dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild new file mode 100644 index 000000000000..ba35d5c432fd --- /dev/null +++ b/dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild @@ -0,0 +1,39 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="Mapbox Vector Tile encoding and decoding." +HOMEPAGE=" + https://github.com/tilezen/mapbox-vector-tile/ + https://pypi.org/project/mapbox-vector-tile/ +" +# sdist misses test files +SRC_URI=" + https://github.com/tilezen/mapbox-vector-tile/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + >=dev-python/protobuf-6.31.1[${PYTHON_USEDEP}] + >=dev-python/pyclipper-1.3.0[${PYTHON_USEDEP}] + >=dev-python/pyproj-3.4.1[${PYTHON_USEDEP}] + >=dev-python/shapely-2.0.0[${PYTHON_USEDEP}] +" + +distutils_enable_tests unittest + +src_prepare() { + # relax the dep + sed -i -e '/protobuf/s:\^[0-9.]*:*:' pyproject.toml || die + distutils-r1_src_prepare +} diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest index a95c7f7f3be0..62255d373272 100644 --- a/dev-python/narwhals/Manifest +++ b/dev-python/narwhals/Manifest @@ -1,2 +1,2 @@ -DIST narwhals-1.44.0.tar.gz 499250 BLAKE2B 24f45150f4d3f58778d4ccfc6bae8973de7352299e11ec12516e1ccd22079199b9bcfb51c5213223906e4afa2e58a09c59166a8fddaeb4f2bd526038b58d8b5b SHA512 6c9d6eefebdec18a18953caf2733c28cd2b5e4c93f5c391fe830787a0fdd309a5a534851cb000835b59ba84563842904cfb4f49fc67f30d2d8f21f3a6fb029c6 DIST narwhals-1.45.0.tar.gz 508812 BLAKE2B 97096eb26440f64e190fb707566a1641d060df1b5e4f46feff164b8c2db262e78e78756024bdad34018419bd359035bb1ae54b65822c2c27fb05a67b7bdcd186 SHA512 42e8dcb48865356fe63b80306ee3113bb311dfbf1340a075dd541f481735c541564f2d584b29bb89c394469b51a1f25fe5f7533068c0a3848c9321a3219778b8 +DIST narwhals-1.46.0.tar.gz 512060 BLAKE2B 7d1b5da00a9f8ea1da46d10d783a04eb11ecf83acfa819d7e91cbd142fa18d5cc833d5867f206c9dd726fb0dc5f342cd6723ae9e4ba68b4584ae92f54362a4f6 SHA512 2a3da2628389c805d78af2047340cf00d2cac44a0bff4616d4211ac28878bc2e88355936ecd69fd6d82694c3e4423953d294adbdfb7f77768489865d40f9d1a6 diff --git a/dev-python/narwhals/narwhals-1.44.0.ebuild b/dev-python/narwhals/narwhals-1.46.0.ebuild index 573156bed277..2ebfce13d84d 100644 --- a/dev-python/narwhals/narwhals-1.44.0.ebuild +++ b/dev-python/narwhals/narwhals-1.46.0.ebuild @@ -20,18 +20,16 @@ KEYWORDS="~amd64 ~arm64" BDEPEND=" test? ( - dev-python/hypothesis[${PYTHON_USEDEP}] >=dev-python/pandas-1.1.3[${PYTHON_USEDEP}] dev-python/pyarrow[${PYTHON_USEDEP}] - dev-python/pytest-env[${PYTHON_USEDEP}] ) " +EPYTEST_PLUGINS=( hypothesis pytest-env ) EPYTEST_XDIST=1 distutils_enable_tests pytest python_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 # make hypothesis more forgiving local -x CI=1 epytest --runslow --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow" diff --git a/dev-python/osc-lib/Manifest b/dev-python/osc-lib/Manifest index 884627bf40ef..a3cbfaa41c81 100644 --- a/dev-python/osc-lib/Manifest +++ b/dev-python/osc-lib/Manifest @@ -1 +1,2 @@ DIST osc_lib-4.0.2.tar.gz 101879 BLAKE2B e89d781089f1172e04739c5412baee727f5f680414cd2546aa37899b94f07eff338e9efc0872fee9dbcd773329ebfd8f0b5a780b2de1b4b65c77cb7efd85cd17 SHA512 a27c6553c51f28839147eee5f3e475cef726c529fc180f4e9055b48212a12b264dbe153d37fd2509dbdf60be697f9b47b2376dd88825d201ed15125160ad1f11 +DIST osc_lib-4.1.0.tar.gz 101884 BLAKE2B f1d7315825246b6f40f8e5c520934a95d659e7bdb78fccdc58ea557b7b4414ab89cbad27abf9e67dd3498efa873775b2c7c38c513ad38f6c9a607f0da7d359ba SHA512 ba086057f3e0128f9e0fcb1a5c622d2fad8ed165d12f60ceb82713900772d6466304fc0925cab7a07fd8031a9a4d5a179bfc57f7140b1ce9ee32ed52b3abf31c diff --git a/dev-python/osc-lib/osc-lib-4.1.0.ebuild b/dev-python/osc-lib/osc-lib-4.1.0.ebuild new file mode 100644 index 000000000000..a1e4da06173f --- /dev/null +++ b/dev-python/osc-lib/osc-lib-4.1.0.ebuild @@ -0,0 +1,50 @@ +# 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="A package of common support modules for writing OSC plugins" +HOMEPAGE=" + https://opendev.org/openstack/osc-lib/ + https://github.com/openstack/osc-lib/ + https://pypi.org/project/osc-lib/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/cliff-4.9.0[${PYTHON_USEDEP}] + >=dev-python/keystoneauth1-5.10.0[${PYTHON_USEDEP}] + >=dev-python/openstacksdk-0.15.0[${PYTHON_USEDEP}] + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.14.2[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >dev-python/pbr-2.1.0[${PYTHON_USEDEP}] + test? ( + >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}] + >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}] + >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}] + >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}] + >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}] + >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests unittest + +src_prepare() { + # need to skip all tests under TestTagHelps class + # checks exact help message, based on another unittest runner + sed -e '179,$s/test_add_tag_/_&/' -i osc_lib/tests/utils/test_tags.py || die + distutils-r1_src_prepare +} diff --git a/dev-python/pandas/Manifest b/dev-python/pandas/Manifest index 5e686561d359..314bb0824843 100644 --- a/dev-python/pandas/Manifest +++ b/dev-python/pandas/Manifest @@ -1,2 +1,3 @@ DIST pandas-2.2.3.tar.gz 4399213 BLAKE2B eca6d31b21f6385c606b3c6f8f4eedc5871719ad5e039e99c01cc16e335a493c2159d208c2d88b573b661adbeaf1172ea1296d13d51b60602966cbc344dc367b SHA512 9bbff5cf51d7fe5e53b207b3593ba92560dabb15294d6509c5be55e0c2a737fad156ca46e56a7e0bfba7d791edfbcbdf885d6f82e2e1a48b2d5e0fc0ef5e56f5 DIST pandas-2.3.0.tar.gz 4484490 BLAKE2B 4fa8ad780e47bb9cfd6dfe3ea89d7c217d2d9bfce66b7cbf81e061309b60fb938b70ea98088c97f37c364abec261e68ec4d40f826265a3d7cb964160eac120b1 SHA512 f7c61b7ab30a67343c11a174209c88f24e6aef4224a0649a31be294e102dbe02fe38be4c5b3050d6c175c780d33da8c582491d7b6832eb212daa2c651bf691a3 +DIST pandas-2.3.1.tar.gz 4487493 BLAKE2B d20f7f7b16e02d70f7cef228a20d0b1a1e7a8f4f2376f723b96ea38ca0df6e4bb9943b7ecf5d9f1f614e76f0b4bf84cf94c9a8768a8c5c045595bc052b7763bc SHA512 8d87295b7150708dfcd0d313933aa8ab056cd62eb404a540d3e96df16a5f78921fe1a56fbee15af2d159990465cc1bd939520fa640365b3ac892704dba991aea diff --git a/dev-python/pandas/files/pandas-2.3.1-xarray-test.patch b/dev-python/pandas/files/pandas-2.3.1-xarray-test.patch new file mode 100644 index 000000000000..666215fb8f80 --- /dev/null +++ b/dev-python/pandas/files/pandas-2.3.1-xarray-test.patch @@ -0,0 +1,23 @@ +From f71316724d8e3aeb3ea46b0cfe84c4c5aefff3dc Mon Sep 17 00:00:00 2001 +From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> +Date: Mon, 5 May 2025 10:55:36 -0700 +Subject: [PATCH] Fix xarray failures post xarray unpin + +--- + pandas/tests/generic/test_to_xarray.py | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/pandas/tests/generic/test_to_xarray.py b/pandas/tests/generic/test_to_xarray.py +index 9b589c9348..c43645e173 100644 +--- a/pandas/tests/generic/test_to_xarray.py ++++ b/pandas/tests/generic/test_to_xarray.py +@@ -53,9 +53,6 @@ class TestDataFrameToXArray: + # datetimes w/tz are preserved + # column names are lost + expected = df.copy() +- expected["f"] = expected["f"].astype( +- object if not using_infer_string else "str" +- ) + expected.columns.name = None + tm.assert_frame_equal(result.to_dataframe(), expected) + diff --git a/dev-python/pandas/pandas-2.3.1.ebuild b/dev-python/pandas/pandas-2.3.1.ebuild new file mode 100644 index 000000000000..f898d7362c10 --- /dev/null +++ b/dev-python/pandas/pandas-2.3.1.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=meson-python +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_REQ_USE="threads(+)" + +VIRTUALX_REQUIRED="manual" + +inherit distutils-r1 optfeature pypi toolchain-funcs virtualx + +DESCRIPTION="Powerful data structures for data analysis and statistics" +HOMEPAGE=" + https://pandas.pydata.org/ + https://github.com/pandas-dev/pandas/ + https://pypi.org/project/pandas/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" +IUSE="big-endian full-support minimal test X" +RESTRICT="!test? ( test )" + +RECOMMENDED_DEPEND=" + >=dev-python/bottleneck-1.3.4[${PYTHON_USEDEP}] + >=dev-python/numexpr-2.8.0[${PYTHON_USEDEP}] +" + +# TODO: add pandas-gbq to the tree +# TODO: Re-add dev-python/statsmodel[python3_11] dep once it supports python3_11 +# https://github.com/statsmodels/statsmodels/issues/8287 +OPTIONAL_DEPEND=" + >=dev-python/beautifulsoup4-4.11.1[${PYTHON_USEDEP}] + dev-python/blosc[${PYTHON_USEDEP}] + >=dev-python/html5lib-1.1[${PYTHON_USEDEP}] + >=dev-python/jinja2-3.1.2[${PYTHON_USEDEP}] + >=dev-python/lxml-4.8.0[${PYTHON_USEDEP}] + >=dev-python/matplotlib-3.6.1[${PYTHON_USEDEP}] + >=dev-python/openpyxl-3.0.7[${PYTHON_USEDEP}] + >=dev-python/sqlalchemy-1.4.36[${PYTHON_USEDEP}] + >=dev-python/tabulate-0.8.10[${PYTHON_USEDEP}] + >=dev-python/xarray-2022.3.0[${PYTHON_USEDEP}] + >=dev-python/xlrd-2.0.1[${PYTHON_USEDEP}] + >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}] + >=dev-python/xlwt-1.3.0[${PYTHON_USEDEP}] + !arm? ( !hppa? ( !ppc? ( !x86? ( + >=dev-python/scipy-1.8.1[${PYTHON_USEDEP}] + dev-python/statsmodels[${PYTHON_USEDEP}] + ) ) ) ) + !big-endian? ( + >=dev-python/tables-3.7.0[${PYTHON_USEDEP}] + ) + X? ( + || ( + >=dev-python/pyqt5-5.15.6[${PYTHON_USEDEP}] + >=dev-python/qtpy-2.2.0[${PYTHON_USEDEP}] + x11-misc/xclip + x11-misc/xsel + ) + ) +" +DEPEND=" + >=dev-python/numpy-1.23.2:=[${PYTHON_USEDEP}] +" +COMMON_DEPEND=" + ${DEPEND} + >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}] + >=dev-python/pytz-2020.1[${PYTHON_USEDEP}] +" +BDEPEND=" + ${COMMON_DEPEND} + >=dev-build/meson-1.2.1 + >=dev-python/cython-3.0.5[${PYTHON_USEDEP}] + >=dev-python/versioneer-0.28[${PYTHON_USEDEP}] + test? ( + ${VIRTUALX_DEPEND} + ${RECOMMENDED_DEPEND} + ${OPTIONAL_DEPEND} + dev-libs/apache-arrow[brotli,parquet,snappy] + >=dev-python/beautifulsoup4-4.11.1[${PYTHON_USEDEP}] + >=dev-python/hypothesis-6.46.1[${PYTHON_USEDEP}] + >=dev-python/openpyxl-3.0.10[${PYTHON_USEDEP}] + >=dev-python/pyarrow-10.0.1[parquet,${PYTHON_USEDEP}] + >=dev-python/pymysql-1.0.2[${PYTHON_USEDEP}] + >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}] + x11-misc/xclip + x11-misc/xsel + ) +" +RDEPEND=" + ${COMMON_DEPEND} + dev-python/tzdata[${PYTHON_USEDEP}] + !minimal? ( ${RECOMMENDED_DEPEND} ) + full-support? ( ${OPTIONAL_DEPEND} ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +PATCHES=( + # https://github.com/pandas-dev/pandas/pull/61331/commits/12b1d00622ffc8b99986da2f4478cc2df4da213a + # (partially applied to 2.3.1, sigh) + "${FILESDIR}/${P}-xarray-test.patch" +) + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + # Note; deselects relative to pandas/ + local EPYTEST_DESELECT=( + # test for rounding errors, fails if we have better precision + # e.g. on amd64 with FMA or on arm64 + # https://github.com/pandas-dev/pandas/issues/38921 + tests/window/test_rolling.py::test_rolling_var_numerical_issues + + # TODO: missing data not covered by --no-strict-data-files? + tests/io/xml/test_xml.py::test_empty_stylesheet + tests/io/xml/test_xml.py::test_wrong_file_path + + # deprecation warning + 'tests/computation/test_eval.py::TestEval::test_scalar_unary[numexpr-pandas]' + + # requires -Werror + tests/tslibs/test_to_offset.py::test_to_offset_lowercase_frequency_deprecated + tests/tslibs/test_to_offset.py::test_to_offset_uppercase_frequency_deprecated + tests/copy_view/test_array.py::test_dataframe_multiple_numpy_dtypes + + # probably pytz, doesn't happen on main (where zoneinfo is used) + 'tests/arrays/test_array.py::test_array_inference[data7-expected7]' + + # virtx? + pandas/tests/test_downstream.py::test_seaborn + ) + + if ! tc-has-64bit-time_t; then + EPYTEST_DESELECT+=( + # Needs 64-bit time_t (TODO: split into 32-bit arch only section) + tests/tseries/offsets/test_year.py::test_add_out_of_pydatetime_range + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessDay]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessHour]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthEnd]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthBegin]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterEnd]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterBegin]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessDay]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessHour]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthEnd]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthBegin]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthEnd]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthBegin]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthBegin]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthEnd]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-QuarterEnd]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-LastWeekOfMonth]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-WeekOfMonth]' + 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-Week]' + ) + fi + + if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/plotting/test_misc.py::test_savefig + ) + fi + + local -x LC_ALL=C.UTF-8 + cd "${BUILD_DIR}/install$(python_get_sitedir)" || die + "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die + # nonfatal from virtx + # --no-strict-data-files is necessary since upstream prevents data + # files from even being included in GitHub archives, sigh + # https://github.com/pandas-dev/pandas/issues/54907 + nonfatal epytest pandas/tests \ + --no-strict-data-files -o xfail_strict=false \ + -m "not single_cpu and not slow and not network and not db" || + die "Tests failed with ${EPYTHON}" + rm test_stata.dta || die +} + +pkg_postinst() { + optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck + optfeature "accelerating certain numerical operations, using multiple cores as well as smart chunking and caching to achieve large speedups" ">=dev-python/numexpr-2.1" + optfeature "needed for pandas.io.html.read_html" dev-python/beautifulsoup4 dev-python/html5lib dev-python/lxml + optfeature "for msgpack compression using blosc" dev-python/blosc + optfeature "Template engine for conditional HTML formatting" dev-python/jinja2 + optfeature "Plotting support" dev-python/matplotlib + optfeature "Needed for Excel I/O" ">=dev-python/openpyxl-3.0.10" dev-python/xlsxwriter dev-python/xlrd dev-python/xlwt + optfeature "necessary for HDF5-based storage" ">=dev-python/tables-3.7.0" + optfeature "R I/O support" dev-python/rpy2 + optfeature "Needed for parts of pandas.stats" dev-python/statsmodels + optfeature "SQL database support" ">=dev-python/sqlalchemy-1.4.36" + optfeature "miscellaneous statistical functions" dev-python/scipy + optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/pyqt5 dev-python/qtpy dev-python/pygtk x11-misc/xclip x11-misc/xsel +} diff --git a/dev-python/pecan/Manifest b/dev-python/pecan/Manifest index 9f215af008f4..0cf8a18f8065 100644 --- a/dev-python/pecan/Manifest +++ b/dev-python/pecan/Manifest @@ -1 +1,2 @@ DIST pecan-1.6.0.tar.gz 123756 BLAKE2B 779705fed5c0832feac98469f6e873996332ce2376929ed819dfc228a0b99aaaef09e9b531698f5fed07675d1f13f0cdd9cd8a742977acf83ee3d9c963b3436e SHA512 f10878fb219086cc34109e9c4b1ce201da28c648120affbb890579e2d8f4d18231c5784ede6c465738aa2066fc54fecade41d2d4681ed1b6f376d0912afc60b4 +DIST pecan-1.7.0.tar.gz 123025 BLAKE2B e9c5ce30e4a5c3d77a07bb1659dfd5975047ea7bdf3eb352f80ce3288a83303d62230ca4bf9a70b5206f89411ba193c441699c06219ea3acbbafa105495ddeea SHA512 801575ab41b880d4833349cdc15c23b48b79f91a3b8c7a4a0209d238dabca5301c6e858635610d6b099d757a7a434a729a38abd0105a31c171123e592d7226bb diff --git a/dev-python/pecan/pecan-1.7.0.ebuild b/dev-python/pecan/pecan-1.7.0.ebuild new file mode 100644 index 000000000000..2a712970eabc --- /dev/null +++ b/dev-python/pecan/pecan-1.7.0.ebuild @@ -0,0 +1,32 @@ +# 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_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A WSGI object-dispatching web framework, lean, fast, with few dependencies" +HOMEPAGE=" + https://github.com/pecan/pecan/ + https://pypi.org/project/pecan/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/webob-1.4[${PYTHON_USEDEP}] + >=dev-python/mako-0.4.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/webtest-1.3.1[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/python-ironicclient/Manifest b/dev-python/python-ironicclient/Manifest index 28771b7d0480..fe2e0af4e879 100644 --- a/dev-python/python-ironicclient/Manifest +++ b/dev-python/python-ironicclient/Manifest @@ -1 +1,2 @@ DIST python_ironicclient-5.11.0.tar.gz 223512 BLAKE2B c05bea59e1b08acd8fce2bc36e8c27194753105d5a7cff2bd9457e2e8e22c78809c74500180843acab210fd68e7bcf5a99d7fc36f8bcbc112e6a77254e94db4b SHA512 83f99d851b35dfeaf04973437b325e9e227eb7d7afdfd3a250d0e10eac929da7e07d99b5e2f3a0c27f714b10160ceb98f91cba93ba8765061064a14f3db6c7fe +DIST python_ironicclient-5.12.0.tar.gz 225775 BLAKE2B 6068b55887e1ede35a9a2ee0df0aa894ed5d64e49f65bbe2138bbac8ef17992461f42737fb6f296a8e90e14aa250e50b602731db34038eb3f2db698bdee11d53 SHA512 921cc1a925e8a4bf7b57be14054f7f4064574b259d4768da262adee94e0f997e845f576210bccbc48752b2273cf9cc7471d3cc9ea9391b3e47220f7754a12814 diff --git a/dev-python/python-ironicclient/python-ironicclient-5.12.0.ebuild b/dev-python/python-ironicclient/python-ironicclient-5.12.0.ebuild new file mode 100644 index 000000000000..e06777f8031d --- /dev/null +++ b/dev-python/python-ironicclient/python-ironicclient-5.12.0.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pbr +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python bindings for the Ironic API" +HOMEPAGE=" + https://opendev.org/openstack/python-ironicclient/ + https://github.com/openstack/python-ironicclient/ + https://pypi.org/project/python-ironicclient/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + >=dev-python/pbr-6.0.0[${PYTHON_USEDEP}] + >=dev-python/cliff-2.8.0[${PYTHON_USEDEP}] + >=dev-python/dogpile-cache-0.8.0[${PYTHON_USEDEP}] + >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}] + >=dev-python/keystoneauth1-3.11.0[${PYTHON_USEDEP}] + >=dev-python/openstacksdk-0.18.0[${PYTHON_USEDEP}] + >=dev-python/osc-lib-2.0.0[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}] + >=dev-python/platformdirs-3[${PYTHON_USEDEP}] + >=dev-python/pyyaml-3.13.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.14.2[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}] + >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}] + >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}] + >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}] + >=dev-python/tempest-17.1.0[${PYTHON_USEDEP}] + >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}] + >=dev-python/python-openstackclient-3.12.0[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests unittest diff --git a/dev-python/python-neutronclient/Manifest b/dev-python/python-neutronclient/Manifest index 72dba9b81f1b..01d85c11bc1a 100644 --- a/dev-python/python-neutronclient/Manifest +++ b/dev-python/python-neutronclient/Manifest @@ -1 +1,2 @@ DIST python_neutronclient-11.5.0.tar.gz 212174 BLAKE2B 321f15bd1fa6b9241096d94da521876a155a3155184d1366a868382161d9648430bf362107ab32dc268ed9f2f52c63fa95bb2633227c7d3536103e631337cf1f SHA512 80262b70694848f0c5597f27ffdd56ce72dd287aceac66821a2bdd7b7920fd23a40930671505546485a1833d8bee5f8d52ac537291ba97064eaec5cf5d4027f1 +DIST python_neutronclient-11.6.0.tar.gz 212450 BLAKE2B 609610d09a06e227aa2763b107c9e197e60561857f40cb0f3601e42476d11379dc20cd1ce9fd68bed40bdc175f63f50cdf16f56035267daf43cbb7afdb7453e6 SHA512 d8057c2e7983b6de7f254b9b4b0651d71fc2b0475d74de1e6474aba3846a992f338548eebd22fbe2607ae539f813a187bec61a16403836a9c05abdde20e7b627 diff --git a/dev-python/python-neutronclient/python-neutronclient-11.6.0.ebuild b/dev-python/python-neutronclient/python-neutronclient-11.6.0.ebuild new file mode 100644 index 000000000000..0b53da09d264 --- /dev/null +++ b/dev-python/python-neutronclient/python-neutronclient-11.6.0.ebuild @@ -0,0 +1,73 @@ +# 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="A client for the OpenStack Quantum API" +HOMEPAGE=" + https://opendev.org/openstack/python-neutronclient/ + https://github.com/openstack/python-neutronclient/ + https://pypi.org/project/python-neutronclient/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + +RDEPEND=" + >dev-python/pbr-2.1.0[${PYTHON_USEDEP}] + >=dev-python/cliff-3.4.0[${PYTHON_USEDEP}] + >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}] + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}] + >=dev-python/openstacksdk-1.5.0[${PYTHON_USEDEP}] + >=dev-python/osc-lib-1.8.0[${PYTHON_USEDEP}] + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}] + >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}] + >dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}] + >=dev-python/os-client-config-1.28.0[${PYTHON_USEDEP}] + >=dev-python/keystoneauth1-3.8.0[${PYTHON_USEDEP}] + >=dev-python/python-keystoneclient-3.8.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.14.2[${PYTHON_USEDEP}] +" +BDEPEND=" + >dev-python/pbr-2.1.0[${PYTHON_USEDEP}] + test? ( + dev-python/bandit[${PYTHON_USEDEP}] + dev-python/fixtures[${PYTHON_USEDEP}] + dev-python/oslotest[${PYTHON_USEDEP}] + dev-python/python-openstackclient[${PYTHON_USEDEP}] + dev-python/requests-mock[${PYTHON_USEDEP}] + dev-python/testtools[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests unittest + +src_prepare() { + # Needs osprofile + rm neutronclient/tests/unit/test_http.py || die + distutils-r1_src_prepare +} + +python_test() { + # functional tests require cloud instance access + eunittest -b neutronclient.tests.unit +} + +python_install() { + distutils-r1_python_install + # stupid stupid stupid + local SITEDIR="${D}$(python_get_sitedir)" || die + cd "${SITEDIR}" || die + local egg=( python_neutronclient*.dist-info ) + [[ -d ${egg[0]} ]] || die "python_quantumclient*.dist-info not found" + ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die + ln -s neutronclient quantumclient || die + ln -s neutron quantumclient/quantum || die +} diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest index 6e64276a9b30..3ddc90e3fd8f 100644 --- a/dev-python/python-tests/Manifest +++ b/dev-python/python-tests/Manifest @@ -8,6 +8,8 @@ DIST Python-3.13.5.tar.xz 22856016 BLAKE2B 9caacad8745dcd238b208022cb140a6655ae5 DIST Python-3.13.5.tar.xz.asc 963 BLAKE2B 2db0162d18129ec42b48393108a72c28e7f8f8c3fa40b2e231c87fe0bdc3c166fb6ca4a1c1dfb3fffe1aa0c2618c7ccb245513beb7a0919b4aaca5ec7eb23b36 SHA512 07c1a2ec2d6ba2805680b7f1dc262fdc5dc3eec4503780ecdc08cd570ccbb5f1efa736ee03c83d36bdb33ce87db06be5892cf5a6eaf4018d5fe78fff99e615ae DIST Python-3.14.0b3.tar.xz 23626928 BLAKE2B 354a07abfe838688ca2e02a989864bfd3dfc903b62968125bd0e74c76caa57b1488aace8cf96942f07a29decb89d72c7ca52cb21cdef5948ca79b8f2fdd710e6 SHA512 621bcaf2ae4b6f0ba6c95ef74b5ffb78d8a2a0bb10415fb4c5eab1cad26c63098237944713a7f0812ec3e014ff62cd0f9bd5663e87799fcf1856aa4b937be914 DIST Python-3.14.0b3.tar.xz.sigstore 5326 BLAKE2B 61bb9e80c2c2149aa43e7f97f472e14b71af1bbbef0641e891bc440e9ddae7b968d525b0d44e152c911a05e5f04ca0a710483dfbf4675d0894f619f0e7190595 SHA512 80feff3997ff99f053ad3d8b8e488e5b952c6e0cdb1fedfcb31a7a72ca67eff60b99d875767df068c8833ec7d40cec53fdc838ce5bb85d330a86283d3057c567 +DIST Python-3.14.0b4.tar.xz 23641472 BLAKE2B e894c115d50371e2ecfd5c0cf79f37d3bff230338524bbb2352af8e42d256cd8fe17a38c68769d3125ddcae33500fd151ed64b5641d7f35f4b8968fcae9e31b4 SHA512 faaea000a474430a4ee41bdc95f9a77aa6573354698bc987a7617a6d36eae4b8e7f02ac945eb5b97df8dc62a256725ccd59fec08d4af2bd7b6e8a31ef4f92e2a +DIST Python-3.14.0b4.tar.xz.sigstore 5038 BLAKE2B 95bd040d9be4d746b8d1a5a7486d309783248093b032b85ac5e7e7eaf35caa99b43bf3bf7c3ad69635a7b4f14bf6e42a9ba0b54d19986069b5dc075d17a8ddd5 SHA512 3e2a7a73d5cd98e4e8139ef89bf75c1213459db7634bb57ea2de126ff403e7f9244ec6fca525bcb55b9cd5342cbc80d659772709ebf405d330dcd4f14f93a7cc DIST python-gentoo-patches-3.11.11.tar.xz 10604 BLAKE2B 6be4c66b0458f7a7085aef976cff3dcb4d114ac0b64fb27327a5693e8d41a77f7eeed718b9c5a1b1961278235ee4cd43497aa3dc27e6e6bed65804b95f667a15 SHA512 ab8113a94949cead34d976179f80c3e0a6686bf2476079a74f97b4d08c24a237500dc7ee09dc3b0ec98d2fbcb138397c73d7e2252e617a957a13999e59115158 DIST python-gentoo-patches-3.11.13.tar.xz 16492 BLAKE2B 8b188742dd3f25974cead290e5793c31f02741a901dce65137c596045fa2fbd5baaef332204af90f95ddcd864ee542b252c00b190e15c25af60a7bda771b116f SHA512 b5abad341d2eede81df445b56a98720466ec23df40a8a2e99a04dba5a106205655c8e2b64df0ca2630f036c8fe457ba64524280d137bbc99f52e4fd8e6bbd5ae DIST python-gentoo-patches-3.12.10.tar.xz 10744 BLAKE2B 2abf4874018156d6735cf8604c410dc4726ac9365bc7500abe6b82472aad100aac7268957256692f4275b02965773e58178519ed8038e121f1ffa3c53770d238 SHA512 62066405aa00f46f9645e9c747d53bb93bf510fc791d14d49e00edfd79981778e6c8e07bfa7bac88d76407a0ffd8f7321dea89f81d90b01dbf13f4d381b6a1a3 @@ -17,3 +19,4 @@ DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c53017 DIST python-gentoo-patches-3.13.5.tar.xz 8916 BLAKE2B 9d985b12af62b8a917cac1dab9576aac099bc81ad954a5de254a14a3c7d2254edcdcfaadc46314b69a1bb76bd30ca8bed7c866c0de3fc3f89aac0f76af344f32 SHA512 5ac92aa3eef82eae5d707ffcb5085ac98bd9bf64f72fc7ac4aa1b12a0c3aa86c57d0f671ca07f46e2250779f4cf4885916e4d175357ad626eca6e41257a027e7 DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7 DIST python-gentoo-patches-3.14.0b3.tar.xz 5708 BLAKE2B 14706315eeed5b2e3d13d0479443e7b9153bc4be8510620e54453ac1b81d2baf0156d1ac67fd2927a2b389c7dfe18cc67ce14e7e7d6e01f2cb0ebe255baf462a SHA512 45d1d194efcc08f7e4b4b593604f52abb34b5f6a6b81370540d489d362a61894ddf86ab59c2d5aa67a5293613f081bc50586257060929702914851170f1b37a6 +DIST python-gentoo-patches-3.14.0b4.tar.xz 3780 BLAKE2B ad67e213b21bc039bf33c0a2e6d3a4ce5e06179ce167f89d56561834dfb5c5b5b5d7f43f6fe2597e94e4ea5d544bb0b60d38b847bb0c32277a0151f2084f3618 SHA512 e5e6fa02d2d24e46848fa5a79ba7fd8a6703473e3bee257fee7b5c55d5c82fedb29f0ba6de1117c6ca738df3841bae5bb00962ae0290d553020e3617dc557c6d diff --git a/dev-python/python-tests/python-tests-0.3.14.0_beta4.ebuild b/dev-python/python-tests/python-tests-0.3.14.0_beta4.ebuild new file mode 100644 index 000000000000..737704af00c0 --- /dev/null +++ b/dev-python/python-tests/python-tests-0.3.14.0_beta4.ebuild @@ -0,0 +1,73 @@ +# 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 + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_beta/b} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 2-3)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/${REAL_PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_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" +# enable by default to help CI handle it (we have no additional deps) +IUSE="+python_targets_${PYTHON_COMPAT[0]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} +" +BDEPEND=" + ${PYTHON_DEPS} +" + +# 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_beta4.ebuild b/dev-python/python-tests/python-tests-3.14.0_beta4.ebuild new file mode 100644 index 000000000000..3dbc65e132eb --- /dev/null +++ b/dev-python/python-tests/python-tests-3.14.0_beta4.ebuild @@ -0,0 +1,72 @@ +# 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" +# enable by default to help CI handle it (we have no additional deps) +IUSE="+python_targets_${PYTHON_COMPAT[0]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} +" +BDEPEND=" + ${PYTHON_DEPS} +" + +# 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/simsimd/Manifest b/dev-python/simsimd/Manifest index 5b828de3c9e7..9711914dbf51 100644 --- a/dev-python/simsimd/Manifest +++ b/dev-python/simsimd/Manifest @@ -1,2 +1,2 @@ DIST SimSIMD-6.4.10.gh.tar.gz 223524 BLAKE2B d0a9940883e618fdc6b7097996c755b6cfa9719ccf3cee52b2e2d96db839cdb6b5930f0a94b08b5a44c2bad8bf716229fddf99b43e045155d357ab26e4f6630f SHA512 039e62da33abd0a2b36548c3e64af528a7d2b75d34cbb45c32ba8408d79692f11e73600e7c9e5464b28b51d271a26a02a0e3e086583055b5c298db51b7421c07 -DIST SimSIMD-6.4.9.gh.tar.gz 221231 BLAKE2B 088ed41affc07c51818999688fe12c37f97de5bfe2401b25fe92f76c013fd88e1648d9a4e04db6c1e05a79cd21ea0b2d3ac36ac1626f1bd9236cb997448bbd4f SHA512 c08656215c4c909de2446f94e42ddb3b1d965656f58c6f4c17245c12d1b7134ab0d61318918c61ed9c3270d8108004ae0ac0502e3da6f6ba66ed0ab37aeaaa8a +DIST SimSIMD-6.5.0.gh.tar.gz 225878 BLAKE2B 8acc1d7ac540c0a5056a48bd1e1c7093737fdab6121e7bf5c09ec5c15af5d10b21581a18ca6cd4cc905a1dd5021d932234a0d8d7ba126d621d565a9c6148146d SHA512 d745782051250acd2e43bb6d35ee6c9e62b93d7f59ba58ac716715f638489d9c5f7f762381023a69f975eaa22ea239fb5b7bee2a73cdf91cf5d9112eee8d2c76 diff --git a/dev-python/simsimd/simsimd-6.4.9.ebuild b/dev-python/simsimd/simsimd-6.5.0.ebuild index da7be6bc1b94..55d9082076fd 100644 --- a/dev-python/simsimd/simsimd-6.4.9.ebuild +++ b/dev-python/simsimd/simsimd-6.5.0.ebuild @@ -30,11 +30,11 @@ IUSE="openmp" BDEPEND=" test? ( - dev-python/pytest-repeat[${PYTHON_USEDEP}] dev-python/tabulate[${PYTHON_USEDEP}] ) " +EPYTEST_PLUGINS=( pytest-repeat ) distutils_enable_tests pytest pkg_pretend() { @@ -58,7 +58,13 @@ src_prepare() { distutils-r1_src_prepare } +src_compile() { + einfo "Please disregard initial compiler errors -- the package is checking" + einfo "for target support." + + distutils-r1_src_compile +} + python_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -p repeat scripts/test.py + epytest scripts/test.py } diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest index 20b6fe7ed833..150d593ef288 100644 --- a/dev-python/sqlglot/Manifest +++ b/dev-python/sqlglot/Manifest @@ -1,2 +1,4 @@ DIST sqlglot-26.33.0-crates.tar.xz 8859792 BLAKE2B abb2051b392c53dc3caa705ddd8df7076819a26dcdaa89fa3760559a79578db01e86943c2d0ffb8006263c2dca3aa50d20023eae9d772f8ebd12a8a2d3266cdd SHA512 7cca439a06433a62bcd4a2af33d240f46e9b5240cc158edbc654efb37a464aa0f1ebbe9749b2fc6352127b4809b63af2341fac6240050c414e578ae99444ba5d DIST sqlglot-26.33.0.tar.gz 5353340 BLAKE2B 18ace866ec89ced24911803497e8cb5c55fc6c157bf62b893e90df914b8be3360403ffff67f196080cdef9b9b9078b86d471494ae9768e7947a8b4d5d39e49af SHA512 df38e899d59bdd07aca0e5370833133308f9c5be4d0c990bf8112a48776fae034b622938aba968769aa5dc5e2957d56da48c89045b91b2d33783e6e25acc4a7b +DIST sqlglot-27.0.0-crates.tar.xz 8859792 BLAKE2B abb2051b392c53dc3caa705ddd8df7076819a26dcdaa89fa3760559a79578db01e86943c2d0ffb8006263c2dca3aa50d20023eae9d772f8ebd12a8a2d3266cdd SHA512 7cca439a06433a62bcd4a2af33d240f46e9b5240cc158edbc654efb37a464aa0f1ebbe9749b2fc6352127b4809b63af2341fac6240050c414e578ae99444ba5d +DIST sqlglot-27.0.0.tar.gz 5356535 BLAKE2B 7f203f9c1fd1d26c88325f8228ea670a1b907ac997963099b77317dae7ef7a15d827dd69dd80d14be7e82cb2504d93efe80be6821c69fdd0ffdf12a9e8dd0be8 SHA512 6248ff08f140b7b761ebfa0ab77a31168904fc78411f3cda0fe2e7247f52de204774ccdf86de1c42f9197ce2eb099a716674ccf6464a162bc64bc1a4d3eb0ada diff --git a/dev-python/sqlglot/sqlglot-27.0.0.ebuild b/dev-python/sqlglot/sqlglot-27.0.0.ebuild new file mode 100644 index 000000000000..aa0c5230423e --- /dev/null +++ b/dev-python/sqlglot/sqlglot-27.0.0.ebuild @@ -0,0 +1,179 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + aho-corasick@1.1.3 + anes@0.1.6 + anstyle@1.0.10 + autocfg@1.1.0 + bumpalo@3.16.0 + cast@0.3.0 + cfg-if@1.0.0 + ciborium-io@0.2.2 + ciborium-ll@0.2.2 + ciborium@0.2.2 + clap@4.5.23 + clap_builder@4.5.23 + clap_lex@0.7.4 + criterion-plot@0.5.0 + criterion@0.5.1 + crossbeam-deque@0.8.6 + crossbeam-epoch@0.9.18 + crossbeam-utils@0.8.21 + crunchy@0.2.2 + either@1.13.0 + half@2.4.1 + heck@0.5.0 + hermit-abi@0.4.0 + indoc@2.0.4 + is-terminal@0.4.13 + itertools@0.10.5 + itoa@1.0.14 + js-sys@0.3.76 + libc@0.2.169 + log@0.4.22 + memchr@2.7.4 + memoffset@0.9.0 + num-traits@0.2.19 + once_cell@1.19.0 + oorandom@11.1.4 + plotters-backend@0.3.7 + plotters-svg@0.3.7 + plotters@0.3.7 + portable-atomic@1.9.0 + proc-macro2@1.0.89 + pyo3-build-config@0.25.0 + pyo3-ffi@0.25.0 + pyo3-macros-backend@0.25.0 + pyo3-macros@0.25.0 + pyo3@0.25.0 + quote@1.0.37 + rayon-core@1.12.1 + rayon@1.10.0 + regex-automata@0.4.9 + regex-syntax@0.8.5 + regex@1.11.1 + rustc-hash@2.1.0 + ryu@1.0.18 + same-file@1.0.6 + serde@1.0.216 + serde_derive@1.0.216 + serde_json@1.0.133 + syn@2.0.87 + target-lexicon@0.13.2 + tinytemplate@1.2.1 + unicode-ident@1.0.12 + unindent@0.2.3 + walkdir@2.5.0 + wasm-bindgen-backend@0.2.99 + wasm-bindgen-macro-support@0.2.99 + wasm-bindgen-macro@0.2.99 + wasm-bindgen-shared@0.2.99 + wasm-bindgen@0.2.99 + web-sys@0.3.76 + winapi-util@0.1.9 + windows-sys@0.52.0 + windows-sys@0.59.0 + windows-targets@0.52.6 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_msvc@0.52.6 + windows_i686_gnu@0.52.6 + windows_i686_gnullvm@0.52.6 + windows_i686_msvc@0.52.6 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_msvc@0.52.6 +" + +CARGO_OPTIONAL=1 +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +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}] + ) +" + +EPYTEST_PLUGINS=() +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/statsmodels/Manifest b/dev-python/statsmodels/Manifest index 32153a780a8c..5fb18b806050 100644 --- a/dev-python/statsmodels/Manifest +++ b/dev-python/statsmodels/Manifest @@ -1 +1,2 @@ DIST statsmodels-0.14.4.tar.gz 20354802 BLAKE2B c721c5b2e7b22ad1be10099627230f7344f966a335f37757dc6bb622fedcb1e84a7d708ee25bfdde64357394e059567e41dad19fc5b1daeb3d5ee29e52a3b2af SHA512 db3bd19b8b47af453ad6fbd24449a621895e4237bbc8b7813810306748c32a3fbf005387a0e1e8db550c9c4a59666bdd50aeb49e24f0ecb86619bc90f166f5f9 +DIST statsmodels-0.14.5.tar.gz 20525016 BLAKE2B ea0a76aaecfb75fe21bcd6c6df625a86745dc93d568f35fa9d8d230f216487ed311706810245ce16a86dc9cc8e465c4fd6d09f1406899838ff82b80d1d1ff310 SHA512 b36763d2ea3a1db2181838cc05834e96c9914789155b4723ee260f94a6f481fd8ea5c07294e375efd783b06d28cf9b71385c00b94ed0271189da551f562948f3 diff --git a/dev-python/statsmodels/statsmodels-0.14.5.ebuild b/dev-python/statsmodels/statsmodels-0.14.5.ebuild new file mode 100644 index 000000000000..807a7d929857 --- /dev/null +++ b/dev-python/statsmodels/statsmodels-0.14.5.ebuild @@ -0,0 +1,81 @@ +# 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_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 optfeature pypi + +DESCRIPTION="Statistical computations and models for use with SciPy" +HOMEPAGE=" + https://www.statsmodels.org/stable/index.html + https://github.com/statsmodels/statsmodels/ + https://pypi.org/project/statsmodels/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~amd64-linux" +IUSE="examples" + +# NB: upstream requires building with numpy-2 but supports 1.x +# at runtime +DEPEND=" + >=dev-python/numpy-2.0.0[${PYTHON_USEDEP}] + >=dev-python/scipy-1.8[${PYTHON_USEDEP}] +" +RDEPEND=" + >=dev-python/numpy-1.22.3[${PYTHON_USEDEP}] + >=dev-python/packaging-21.3[${PYTHON_USEDEP}] + >=dev-python/pandas-1.4[${PYTHON_USEDEP}] + >=dev-python/patsy-0.5.6[${PYTHON_USEDEP}] + >=dev-python/scipy-1.8[${PYTHON_USEDEP}] +" +BDEPEND=" + ${DEPEND} + >=dev-python/cython-3.0.10[${PYTHON_USEDEP}] + >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}] +" + +distutils_enable_sphinx docs \ + 'dev-python/ipykernel' \ + 'dev-python/jupyter-client' \ + 'dev-python/matplotlib' \ + 'dev-python/nbconvert' \ + 'dev-python/numpydoc' + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + export VARTEXFONTS="${T}"/fonts + export MPLCONFIGDIR="${T}" + printf -- 'backend : Agg\n' > "${MPLCONFIGDIR}"/matplotlibrc || die + + distutils-r1_python_prepare_all +} + +python_test() { + local -x MKL_NUM_THREADS=1 + local -x OMP_NUM_THREADS=1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + + cd "${BUILD_DIR}/install$(python_get_sitedir)" || die + epytest statsmodels +} + +python_install_all() { + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + dodoc -r examples + fi + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "Plotting functionality" "dev-python/matplotlib" +} diff --git a/dev-python/types-docutils/Manifest b/dev-python/types-docutils/Manifest index e38a43861c2a..efa45a78d250 100644 --- a/dev-python/types-docutils/Manifest +++ b/dev-python/types-docutils/Manifest @@ -1 +1,2 @@ DIST types_docutils-0.21.0.20250604.tar.gz 40953 BLAKE2B 35ca47bb71ece85f2786396d224835f74592ec2e7278f6c0459bea8451a4ee7c9299be1fcaa2a8d41a6c0d8a1abacbb72403611069ef24df9940330682c01103 SHA512 84ee5f87686bc75e0e41437b05a23932de4e92a179bc19763bb6cc823b31e8055f143e27d74fd77d1752b945d56db0979ab9a418f8edf63aeb195b621620c0ba +DIST types_docutils-0.21.0.20250708.tar.gz 42011 BLAKE2B bae246422aff90ff0ef9b3403c4cd57c87609d7ea68d21f7d3d55a8f2f088751ce52a88c1c73d82f9acc2bf96adb83a0cd93eb8dc20f14b434b8a5cec476439a SHA512 788e557828421997846573dbf5ca1c741105751f83f85c90373323923a2d57d15d2e7e12078f8f74804a1dac3e03a06989cda13c8e7d9a2896d937d2fff925dc diff --git a/dev-python/types-docutils/types-docutils-0.21.0.20250708.ebuild b/dev-python/types-docutils/types-docutils-0.21.0.20250708.ebuild new file mode 100644 index 000000000000..9fdbbf2b35dd --- /dev/null +++ b/dev-python/types-docutils/types-docutils-0.21.0.20250708.ebuild @@ -0,0 +1,16 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Typing stubs for docutils" +HOMEPAGE="https://pypi.org/project/types-docutils/" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" |
