diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2026-05-13 17:57:46 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2026-05-13 17:57:46 +0000 |
| commit | 33b1502bb3d163709fff312aca31b2b997e203a4 (patch) | |
| tree | 044c568c750d3623ebbd9b42d04dfe603b8255d3 /dev-python | |
| parent | c9247bc74da2fdefe6844e838ed60c995ce500bd (diff) | |
| download | baldeagleos-repo-33b1502bb3d163709fff312aca31b2b997e203a4.tar.gz baldeagleos-repo-33b1502bb3d163709fff312aca31b2b997e203a4.tar.xz baldeagleos-repo-33b1502bb3d163709fff312aca31b2b997e203a4.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
65 files changed, 2974 insertions, 16 deletions
diff --git a/dev-python/backports-zstd/Manifest b/dev-python/backports-zstd/Manifest index f5d757a1c546..d8380eab2246 100644 --- a/dev-python/backports-zstd/Manifest +++ b/dev-python/backports-zstd/Manifest @@ -2,3 +2,5 @@ DIST backports_zstd-1.3.0.tar.gz 997138 BLAKE2B 17fc2627b1cd498e6e808ac62fa56aa7 DIST backports_zstd-1.3.0.tar.gz.provenance 9389 BLAKE2B e6f8bcf6bc755e5e4f9d7e85adbb930018a761e37f2b0cde08905cc3cc0a5bd25ea75283f3012df84fd15a7be81d0708c9a5b202c72d2a8ce7ebbff0fed8958b SHA512 2c846b90a4049a1eef2cc5b4c89c0311f92513558cffae4bc918dd778f9648d13c854592ab7416b1b15f1942ff106b4d714905b9ffcd15746cad4fa60282fe8c DIST backports_zstd-1.4.0.tar.gz 997918 BLAKE2B 86943a7639da562f67aeae1f59bc240b2bcf8092f2a662d56e42ee34687668d4b953b95afca491dd611c6b2c2647a724f76d5e0ef9b2829f9edc29e510aa85b9 SHA512 ab0627af0aea8839674eadbdad4fb6aa33149c832f37b5bb15a0db4141325eb881c8cace24b35d0de057641d698fef9850f8c39aee4c00aa745ca37cdb7fda9d DIST backports_zstd-1.4.0.tar.gz.provenance 9726 BLAKE2B 4ad960deadb81d27d40d757b8c688f39fe4200f34adea1343a4d25f26d39b5ac756b9fdb1f98a17fddc707f0ea309edfc0e0b275a529ae0ccd4e5a02bf5252a2 SHA512 d310a4bfc3cbbfad93c0eb7397d4a4da1b7b1134d03bd7b515609b511617773160fb0ad17cdd5f57cd3ef75d3e0274b6a527840b92c30301e6f1946aaf815ef8 +DIST backports_zstd-1.5.0.tar.gz 998556 BLAKE2B 0fbcf631730d01afece73a68d80c1df93d7af0205b105c93a901e4688c5414575fa37a177c7fec0b673edb49bdda7c7c06da1179cd7d84641bf11aee8d68f596 SHA512 47298459a77eb5dcbb47d362414e7f9b1347bba0c9a724a465a55e137d1c4aaffc8e79897aa5d0e30c7855b0cf6e537e8439a18edef452a45407a66be3447276 +DIST backports_zstd-1.5.0.tar.gz.provenance 9628 BLAKE2B b476f6b73845195092ffc97b94199650df9e8f27d4e4ae7b9676d83b0a0c48b8b3c215e63b361b38857241e9ce123f94c18e35976b1095f5c49812b9eb1e4502 SHA512 77101ebd8e3409a67da8ca31d30305cb4753b9e20d73dbb148c77c970addc4035f96777f64f343109d28287ba42c3e347bd8bd027c63cd7a667740114fe03aaa diff --git a/dev-python/backports-zstd/backports-zstd-1.5.0.ebuild b/dev-python/backports-zstd/backports-zstd-1.5.0.ebuild new file mode 100644 index 000000000000..2e41a8bb21f5 --- /dev/null +++ b/dev-python/backports-zstd/backports-zstd-1.5.0.ebuild @@ -0,0 +1,47 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYPI_PN=${PN/-/.} +PYPI_VERIFY_REPO=https://github.com/Rogdham/backports.zstd +# this is a backport from py3.14, so don't add it +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Backport of PEP-784: adding Zstandard to the standard library" +HOMEPAGE=" + https://github.com/Rogdham/backports.zstd/ + https://pypi.org/project/backports.zstd/ +" + +LICENSE="PSF-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +DEPEND=" + app-arch/zstd:= +" +RDEPEND=" + ${DEPEND} +" + +distutils_enable_tests unittest + +src_prepare() { + distutils-r1_src_prepare + + # remove -flto and other forced cflags + sed -i -e 's:kwargs\["extra.*:pass:' setup.py || die + + DISTUTILS_ARGS=( + --system-zstd + ) +} + +python_test() { + eunittest tests +} diff --git a/dev-python/cbor2/Manifest b/dev-python/cbor2/Manifest index 109ecdb5eeb4..9cc43b3fb0ca 100644 --- a/dev-python/cbor2/Manifest +++ b/dev-python/cbor2/Manifest @@ -4,6 +4,8 @@ DIST cbor2-5.9.0.tar.gz 111231 BLAKE2B 2ab6315866e4c252ccc51a12358e1f6420ae9f284 DIST cbor2-5.9.0.tar.gz.provenance 9582 BLAKE2B 22f32c67af2ab3d9c1df9713aa0be0106542b13eaaf70b8ed0e09ccefd414619b721b87c8f74bf02ab583a744d02348cd3a0e45c6813686f18536d6c50d7d579 SHA512 0b44b4fa821d9df85b3891b98ad3cc724f906b3f9850f3251f14eb1450a9c3c60da8d6891f2473b465a9c275cc077fe7c0f6e1233ff1ca7ce274d23596694848 DIST cbor2-6.0.1.tar.gz 84191 BLAKE2B 0f8522a2462d5362c8d19900d1973386060f08f3ff1d6780cb9639df1132706860fc6ecbef2be3bb3b24385168f1426e2c9ff652fafb924a0e9e7b44b75777ec SHA512 c753a24b61c8d07635ee8c5f78df53f135acd7415b75d758d9681c04586a117e6ecdf8f1cd11021c4b175cfce06236cbe9c6e6ab67c5a059d625de5aa921c8cd DIST cbor2-6.0.1.tar.gz.provenance 9155 BLAKE2B fab57134c5eed10943d62ba66db393e448a1ac36e1f6b71e1e4ca63f820ffd3ec188228503815faef8f636e6c1fdee8ca1abeb221d4902ee6102ce9182e303d7 SHA512 ac48dcb4e5e6dcbdf1044a669adc84f7833f75262266c20a1665d7a895221562080db61404eb7407c63dc57939a2bf97c34c31fb4264b6a5c720557f841e2957 +DIST cbor2-6.1.0.tar.gz 85870 BLAKE2B eb2d6b699d9294242acd1c626fb7e5c9f5dcb67d19ddd19fb58add69d0db56bac16162304bb00e26748a6171510a7ec99bb8d2c1d3ad159f19d405b6d28baa99 SHA512 e8ed4d21518b45f47e02233fe9d835c834aad6c4c6eb675f2d3fc66d90810e36f5673783b428fdabe79ced863a79698cbf50b088443a3315b411fd8e8d572a08 +DIST cbor2-6.1.0.tar.gz.provenance 9625 BLAKE2B 106dc7b9667c195bd6934ee6c824c46f8290608a1e212d533c4dccc5e25c531a47caf1cd3babb8d093588a5118e5c72c5141df8037a92020738053dde650ffd2 SHA512 62e3cf64344be19ff1192cc748c28f276c1b02c2bd4bbe92b10636c752b68b453ec0e018e8a940bd9c1b2d36278e8bee158373a495498ab8c75195d698a16878 DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d DIST crunchy-0.2.4.crate 3887 BLAKE2B f957597c82795eb10d43a6a98f7575e19b9484dcdf9fe35ac79ce406035d5d467021a0c563dcfe8f717e800b6bf532fcd72cc11be47e084405e16219b88e67b1 SHA512 72ecadb6c8558dcbf3cbc3a34bcefbf292e42999e7af6f59b9804e1233d87f6f65802b157f346a64cd7d2dc1a92564d5481211b081ba5ea170ecdb06dff9dd0b DIST half-2.7.1.crate 61040 BLAKE2B bd78abf71b1b0ae219d2293f8edd5084fa630150016c95786d0af38a898d2775ff73ce848c4b2bbf02c2ea2dc8a610b2e045df78892d2b1de28981e8033625a7 SHA512 f47cc8bfb4c754a8585d4e8eca1a35039dc0879e87e59acb72e91bf2d33eca8c4f8dd17b3a56e8953bcba62cb08122120866e9d4b3ab9f008847d86a5f81716d diff --git a/dev-python/cbor2/cbor2-6.1.0.ebuild b/dev-python/cbor2/cbor2-6.1.0.ebuild new file mode 100644 index 000000000000..41ecb8352e7f --- /dev/null +++ b/dev-python/cbor2/cbor2-6.1.0.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/agronholm/cbor2 +PYTHON_COMPAT=( python3_{10..14} ) + +RUST_MIN_VER="1.85.0" +CRATES=" + autocfg@1.5.0 + bigdecimal@0.4.10 + cfg-if@1.0.4 + crunchy@0.2.4 + half@2.7.1 + heck@0.5.0 + libc@0.2.182 + libm@0.2.16 + num-bigint@0.4.6 + num-integer@0.1.46 + num-traits@0.2.19 + once_cell@1.21.3 + portable-atomic@1.13.1 + proc-macro2@1.0.106 + pyo3-build-config@0.28.2 + pyo3-ffi@0.28.2 + pyo3-macros-backend@0.28.2 + pyo3-macros@0.28.2 + pyo3@0.28.2 + quote@1.0.44 + syn@2.0.117 + target-lexicon@0.13.5 + unicode-ident@1.0.24 + zerocopy-derive@0.8.40 + zerocopy@0.8.40 +" + +inherit cargo distutils-r1 pypi + +DESCRIPTION="CBOR (de)serializer with extensive tag support" +HOMEPAGE=" + https://github.com/agronholm/cbor2/ + https://pypi.org/project/cbor2/ +" +SRC_URI+=" + ${CARGO_CRATE_URIS} +" + +LICENSE="MIT" +# Dependent crate licenses +LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND=" + >=dev-python/setuptools-61[${PYTHON_USEDEP}] + dev-python/setuptools-rust[${PYTHON_USEDEP}] + >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=( hypothesis ) +distutils_enable_tests pytest + +# Files built without CFLAGS/LDFLAGS, acceptable for rust +QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cbor2/_cbor2.*.so" + +src_unpack() { + pypi_src_unpack + cargo_src_unpack +} diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest index de625e0cabea..e48d1910b67d 100644 --- a/dev-python/cfn-lint/Manifest +++ b/dev-python/cfn-lint/Manifest @@ -4,3 +4,5 @@ DIST cfn_lint-1.49.3.tar.gz 4037038 BLAKE2B 621ac3cb97d5924e1b29c75924f89a3942b7 DIST cfn_lint-1.49.3.tar.gz.provenance 9768 BLAKE2B fc1c6756840e9ae9862c80cd6854a788ffe4a7e35724121fb1c5aaab38bc1d9be23b66b35cbcb14490e55ee75a39459cd542545d9c543f5bdd53776d8d81c1ed SHA512 acd61ba2f218a51b4ad078465b02a684d8a2903d440450a8a6b9844e28daf64182f887d06734cf7fea433a4c17920ef3236b3e305625fc8a2666cda84e7bc403 DIST cfn_lint-1.50.1.tar.gz 4076509 BLAKE2B 438ce08ba7b37ca76b8a286f18deabd740969627c5177a40fc75fe76c36cb1adebf4c5e5a785b7422f287ee72d294c571d9e1bdfca6b9ef10473a28f4ae993da SHA512 9ac4224f4d5da149747abe00d6bffed88bc8fd3b36a868417bd8cf578b1cf7956812c7caaca4da178a1bed2b31a0a83f22be489176755e2146f8286e2dee12ce DIST cfn_lint-1.50.1.tar.gz.provenance 9678 BLAKE2B fde3c92469e6b11b53a3734c1266810052dadf96ea1cb2ab9d2f20ad36fa6d499ee260fdbf98f2a97b86543763f3af201d98ddc586a32649aa2bb716d0a206e2 SHA512 6c0af59dc5e2b61eb617f1690d671d85b2a9bc9d0ffec5d86cab9e49cabe4b3b551f16fc4cc720eddab122b69253ba3e31af4ac57cc4947cf23a3589a8e2678f +DIST cfn_lint-1.51.0.tar.gz 4088652 BLAKE2B 2c25674738e3820a0cfd040fff01402ff8319a07eed4032dc2559b0e32db79dba4b31eb7459f8f326a42df5f2ef147663d3cfe8fb3b10d6ee7ae04eb6be92948 SHA512 93ac059d6d3fa1feb6bd83a5893e9307e1d512b96d1c1cc371c160730e7738a0b01cff2fae69ad4e7a8332a40e0c9a1adba508502f0c42efe84fc521850c9663 +DIST cfn_lint-1.51.0.tar.gz.provenance 9674 BLAKE2B 13a5fe8f79b8650ff4843278f2293984b3416cca078f63d3ad5072cb752ff481f7214a6b9236ad1796d833b7d0be499a16b9dc4e573db94820330294bd207173 SHA512 7f7eff3a3e0f4c98f542f53984a749af3d1e01170ea01750deb827011d15813705f9df6a84b1f10cae6d50d304b1190011da6994a0addd2aa89e97c6f2912168 diff --git a/dev-python/cfn-lint/cfn-lint-1.51.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.51.0.ebuild new file mode 100644 index 000000000000..0dd1e9716233 --- /dev/null +++ b/dev-python/cfn-lint/cfn-lint-1.51.0.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/aws-cloudformation/cfn-lint +PYTHON_COMPAT=( python3_{10..14} ) + +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.109.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.14.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}] + test? ( + dev-python/defusedxml[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +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 + # TODO: suddenly started failing in older versions too + # https://github.com/aws-cloudformation/cfn-lint/issues/4207 + test/integration/test_good_templates.py + test/unit/module/override/test_exclude.py::TestExclude::test_success_run + test/unit/module/test_api.py::TestLintFile::test_good_template + test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run + # crashes on 3.12+, probably pygraphviz + test/unit/module/test_api.py::TestLintByConfig::test_graph + ) + + # from tox.ini + local -x AWS_DEFAULT_REGION=us-east-1 + epytest +} diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest index 789cad0c250d..9319e609e047 100644 --- a/dev-python/clang/Manifest +++ b/dev-python/clang/Manifest @@ -13,3 +13,4 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.5.src.tar.xz 167058820 BLAKE2B b0d4bc4db8d03a2201620dec0fcf5c946d86ac152c0feef4252e211eec4542e2fc849e2bafc8bcb57982959d005d70e9a7bd81296fed04f819b7de3f2fc15c43 SHA512 68de113906ec0c843a9346ecd06bff352146869f1f28b5600ff907125d77202692b6f68bd169bcd74ae5b82e0ad5548ea99c2405540abea36880d80e373744ff DIST llvm-project-22.1.5.src.tar.xz.sig 119 BLAKE2B c756bb5d4ebc9fc3b61115495c75574312ad287dc4bdfc8408da7dcfc781f26c5804d8a4a46af32ad809db80a154aff6cad308742e1e04ca4a93249d6f1a55b4 SHA512 36baf347f79c26705136a7d342e8ee0a8a42939bb1db2d9ce91666b1edbbb04194ff63bc41899e4498cd819e6c2bd6944ea68d972e074e113f48d08e6544c368 +DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/dev-python/clang/clang-23.0.0_pre20260512.ebuild b/dev-python/clang/clang-23.0.0_pre20260512.ebuild new file mode 100644 index 000000000000..0a3a20350207 --- /dev/null +++ b/dev-python/clang/clang-23.0.0_pre20260512.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{10..14} ) +inherit distutils-r1 llvm.org + +DESCRIPTION="Python bindings for llvm-core/clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# The module is opening libclang.so directly, and doing some blasphemy +# on top of it. +DEPEND=" + >=llvm-core/clang-${PV}:* + !llvm-core/llvm:0[clang(-),python(-)] + !llvm-core/clang:0[python(-)] +" +RDEPEND=" + ${DEPEND} + ${PYTHON_DEPS} +" +BDEPEND=" + ${PYTHON_DEPS} + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + llvm-core/clang:${LLVM_MAJOR} + ) +" + +LLVM_COMPONENTS=( clang/{bindings/python,include} ) +llvm.org_set_globals + +distutils_enable_tests unittest + +python_test() { + # tests rely on results from a specific clang version, so override + # the search path + local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir) + local -x CLANG_NO_DEFAULT_CONFIG=1 + eunittest +} diff --git a/dev-python/crispy-bootstrap3/crispy-bootstrap3-2024.1.ebuild b/dev-python/crispy-bootstrap3/crispy-bootstrap3-2024.1.ebuild index 8b831964569f..70d88fb87505 100644 --- a/dev-python/crispy-bootstrap3/crispy-bootstrap3-2024.1.ebuild +++ b/dev-python/crispy-bootstrap3/crispy-bootstrap3-2024.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2023-2025 Gentoo Authors +# Copyright 2023-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -23,12 +23,22 @@ SLOT="0" KEYWORDS="~amd64 ~arm64 ~x86" RDEPEND=" - dev-python/django-crispy-forms[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/pytest-django[${PYTHON_USEDEP}] - ) + >=dev-python/django-5.2[${PYTHON_USEDEP}] + >=dev-python/django-crispy-forms-2.0[${PYTHON_USEDEP}] " +PATCHES=( "${FILESDIR}"/${P}-django52Py.patch ) + +python_prepare_all() { + pushd tests/results/bootstrap3/test_form_helper 2>/dev/null + cp bootstrap_form_show_errors_bs3_true_gte5{0,2}.html || die + cp bootstrap_form_show_errors_bs3_false_gte5{0,2}.html || die + cp test_form_show_errors_non_field_errors_true_gte5{0,2}.html || die + cp test_form_show_errors_non_field_errors_false_gte5{0,2}.html || die + popd + eapply "${FILESDIR}"/${P}-django52.patch + distutils-r1_python_prepare_all +} + +EPYTEST_PLUGINS=( pytest-django ) distutils_enable_tests pytest diff --git a/dev-python/crispy-bootstrap3/files/crispy-bootstrap3-2024.1-django52.patch b/dev-python/crispy-bootstrap3/files/crispy-bootstrap3-2024.1-django52.patch new file mode 100644 index 000000000000..302f0707281d --- /dev/null +++ b/dev-python/crispy-bootstrap3/files/crispy-bootstrap3-2024.1-django52.patch @@ -0,0 +1,125 @@ +--- a/tests/results/bootstrap3/test_form_helper/bootstrap_form_show_errors_bs3_true_gte52.html 2026-05-12 08:54:40.844588615 +0200 ++++ b/tests/results/bootstrap3/test_form_helper/bootstrap_form_show_errors_bs3_true_gte52.html 2026-05-12 08:56:08.969609620 +0200 +@@ -3,7 +3,7 @@ + <label for="id_email" class=" control-label requiredField"> email<span class="asteriskField">*</span> </label> + <div class=" controls"> + <div class="input-group"><input type="text" name="email" value="invalidemail" maxlength="30" +- aria-describedby="id_email_helptext" aria-invalid="true" ++ aria-describedby="id_email_helptext id_email_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_email" /> + <span class="input-group-addon">whatever</span></div> + <span id="error_1_id_email" class="help-block"><strong>Enter a valid email address.</strong></span> +@@ -15,7 +15,7 @@ + <div class=" controls"> + <div class="input-group"> + <span class="input-group-addon">blabla</span> +- <input type="text" name="first_name" value="first_name_too_long" maxlength="5" aria-invalid="true" ++ <input type="text" name="first_name" value="first_name_too_long" maxlength="5" aria-describedby="id_first_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_first_name" /> + </div> + +@@ -27,7 +27,7 @@ + <div class=" controls"> + <div class="input-group"> + <span class="input-group-addon">foo</span> +- <input type="text" name="last_name" value="last_name_too_long" maxlength="5" aria-invalid="true" ++ <input type="text" name="last_name" value="last_name_too_long" maxlength="5" aria-describedby="id_last_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_last_name" /> + <span class="input-group-addon">bar</span> + </div> +--- a/tests/results/bootstrap3/test_form_helper/bootstrap_form_show_errors_bs3_false_gte52.html 2026-05-12 08:58:43.242895175 +0200 ++++ b/tests/results/bootstrap3/test_form_helper/bootstrap_form_show_errors_bs3_false_gte52.html 2026-05-12 08:59:34.010330008 +0200 +@@ -3,7 +3,7 @@ + <label for="id_email" class=" control-label requiredField"> email<span class="asteriskField">*</span> </label> + <div class=" controls"> + <div class="input-group"><input type="text" name="email" value="invalidemail" maxlength="30" +- aria-describedby="id_email_helptext" aria-invalid="true" ++ aria-describedby="id_email_helptext id_email_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_email" /> + <span class="input-group-addon">whatever</span></div> + <div id="hint_id_email" class="help-block">Insert your email</div> +@@ -14,7 +14,7 @@ + <div class=" controls"> + <div class="input-group"> + <span class="input-group-addon">blabla</span> +- <input type="text" name="first_name" value="first_name_too_long" maxlength="5" aria-invalid="true" ++ <input type="text" name="first_name" value="first_name_too_long" maxlength="5" aria-describedby="id_first_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_first_name" /> + </div> + </div> +@@ -24,7 +24,7 @@ + <div class=" controls"> + <div class="input-group"> + <span class="input-group-addon">foo</span> +- <input type="text" name="last_name" value="last_name_too_long" maxlength="5" aria-invalid="true" ++ <input type="text" name="last_name" value="last_name_too_long" maxlength="5" aria-describedby="id_last_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_last_name" /> + <span class="input-group-addon">bar</span> + </div> +--- a/tests/results/bootstrap3/test_form_helper/test_form_show_errors_non_field_errors_true_gte52.html 2026-05-12 09:05:52.812112989 +0200 ++++ b/tests/results/bootstrap3/test_form_helper/test_form_show_errors_non_field_errors_true_gte52.html 2026-05-12 09:08:58.292049212 +0200 +@@ -11,7 +11,7 @@ + <div id="div_id_email" class="form-group has-error"> <label for="id_email" class="control-label requiredField"> + email<span class="asteriskField">*</span> </label> + <div class="controls "> <input type="text" name="email" maxlength="30" +- aria-describedby="id_email_helptext" aria-invalid="true" ++ aria-describedby="id_email_helptext id_email_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_email"> <span id="error_1_id_email" + class="help-block"><strong>This field is required.</strong></span> + <div id="hint_id_email" class="help-block">Insert your email</div> +@@ -29,13 +29,13 @@ + </div> + <div id="div_id_first_name" class="form-group has-error"> <label for="id_first_name" + class="control-label requiredField"> first name<span class="asteriskField">*</span> </label> +- <div class="controls "> <input type="text" name="first_name" maxlength="5" aria-invalid="true" ++ <div class="controls "> <input type="text" name="first_name" maxlength="5" aria-describedby="id_first_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_first_name"> <span + id="error_1_id_first_name" class="help-block"><strong>This field is required.</strong></span> </div> + </div> + <div id="div_id_last_name" class="form-group has-error"> <label for="id_last_name" + class="control-label requiredField"> last name<span class="asteriskField">*</span> </label> +- <div class="controls "> <input type="text" name="last_name" maxlength="5" aria-invalid="true" ++ <div class="controls "> <input type="text" name="last_name" maxlength="5" aria-describedby="id_last_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_last_name"> <span + id="error_1_id_last_name" class="help-block"><strong>This field is required.</strong></span> </div> + </div> +@@ -46,4 +46,4 @@ + id="id_datetime_field_1"> <span id="error_1_id_datetime_field" class="help-block"><strong>This field is + required.</strong></span> </div> + </div> +-</form> +\ No newline at end of file ++</form> +--- a/tests/results/bootstrap3/test_form_helper/test_form_show_errors_non_field_errors_false_gte52.html 2026-05-12 09:07:54.198762179 +0200 ++++ b/tests/results/bootstrap3/test_form_helper/test_form_show_errors_non_field_errors_false_gte52.html 2026-05-12 09:10:38.733931881 +0200 +@@ -6,7 +6,7 @@ + <div id="div_id_email" class="form-group"> <label for="id_email" class="control-label requiredField"> email<span + class="asteriskField">*</span> </label> + <div class="controls "> <input type="text" name="email" maxlength="30" +- aria-describedby="id_email_helptext" aria-invalid="true" ++ aria-describedby="id_email_helptext id_email_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_email"> + <div id="hint_id_email" class="help-block">Insert your email</div> + </div> +@@ -23,12 +23,12 @@ + </div> + <div id="div_id_first_name" class="form-group"> <label for="id_first_name" class="control-label requiredField"> + first name<span class="asteriskField">*</span> </label> +- <div class="controls "> <input type="text" name="first_name" maxlength="5" aria-invalid="true" ++ <div class="controls "> <input type="text" name="first_name" maxlength="5" aria-describedby="id_first_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_first_name"> </div> + </div> + <div id="div_id_last_name" class="form-group"> <label for="id_last_name" class="control-label requiredField"> last + name<span class="asteriskField">*</span> </label> +- <div class="controls "> <input type="text" name="last_name" maxlength="5" aria-invalid="true" ++ <div class="controls "> <input type="text" name="last_name" maxlength="5" aria-describedby="id_last_name_error" aria-invalid="true" + class="textinput textInput inputtext form-control" required id="id_last_name"> </div> + </div> + <div id="div_id_datetime_field" class="form-group"> +@@ -37,4 +37,4 @@ + id="id_datetime_field_0"><input type="text" name="datetime_field_1" class="timeinput" required aria-invalid="true" + id="id_datetime_field_1"> </div> + </div> +-</form> +\ No newline at end of file ++</form> diff --git a/dev-python/crispy-bootstrap3/files/crispy-bootstrap3-2024.1-django52Py.patch b/dev-python/crispy-bootstrap3/files/crispy-bootstrap3-2024.1-django52Py.patch new file mode 100644 index 000000000000..26104c0d6b68 --- /dev/null +++ b/dev-python/crispy-bootstrap3/files/crispy-bootstrap3-2024.1-django52Py.patch @@ -0,0 +1,53 @@ +--- a/tests/test_form_helper.py 2026-05-12 09:33:29.599682337 +0200 ++++ b/tests/test_form_helper.py 2026-05-12 09:36:56.323382756 +0200 +@@ -139,6 +139,11 @@ + "bootstrap3/test_form_helper/" + "test_form_show_errors_non_field_errors_true_lte40.html" + ) ++ elif django.VERSION >= (5, 2): ++ expected = parse_expected( ++ "bootstrap3/test_form_helper/" ++ "test_form_show_errors_non_field_errors_true_gte52.html" ++ ) + elif django.VERSION >= (5, 0): + # Added 'aria-describedby' for fields with help_text + # https://docs.djangoproject.com/en/5.0/releases/5.0/#forms +@@ -162,6 +167,11 @@ + "bootstrap3/test_form_helper/" + "test_form_show_errors_non_field_errors_false_lte40.html" + ) ++ elif django.VERSION >= (5, 2): ++ expected = parse_expected( ++ "bootstrap3/test_form_helper/" ++ "test_form_show_errors_non_field_errors_false_gte52.html" ++ ) + elif django.VERSION >= (5, 0): + # Added 'aria-describedby' for fields with help_text + # https://docs.djangoproject.com/en/5.0/releases/5.0/#forms +@@ -542,7 +552,11 @@ + form.is_valid() + + form.helper.form_show_errors = True +- if django.VERSION >= (5, 0): ++ if django.VERSION >= (5, 2): ++ expected = parse_expected( ++ "bootstrap3/test_form_helper/bootstrap_form_show_errors_bs3_true_gte52.html" ++ ) ++ elif django.VERSION >= (5, 0): + # Added 'aria-describedby' for fields with help_text + # https://docs.djangoproject.com/en/5.0/releases/5.0/#forms + expected = parse_expected( +@@ -555,7 +569,12 @@ + assert parse_form(form) == expected + + form.helper.form_show_errors = False +- if django.VERSION >= (5, 0): ++ if django.VERSION >= (5, 2): ++ expected = parse_expected( ++ "bootstrap3/test_form_helper/" ++ "bootstrap_form_show_errors_bs3_false_gte52.html" ++ ) ++ elif django.VERSION >= (5, 0): + # Added 'aria-describedby' for fields with help_text + # https://docs.djangoproject.com/en/5.0/releases/5.0/#forms + expected = parse_expected( diff --git a/dev-python/cvxopt/Manifest b/dev-python/cvxopt/Manifest index 5f8d00a982e5..100b07b035dd 100644 --- a/dev-python/cvxopt/Manifest +++ b/dev-python/cvxopt/Manifest @@ -1 +1,2 @@ DIST cvxopt-1.3.2.gh.tar.gz 4095027 BLAKE2B ad4dfba1fe9c5be700ba61268e9d245355493c0334688b7a08bd4b5c4127da7a276cc660a1c1f4fe4df2359f9d2a8e3c4907d57d23c29d8caaf0329f6834cc30 SHA512 a6f9006b8b83445d781b1ba876e5ecefe724cf8666f47744b010e9c61fa1786dbd6233459a6e6a1a333ef9ac075d280076b2aeee3a2636d27541a615c5607b34 +DIST cvxopt-1.3.3.gh.tar.gz 8842113 BLAKE2B d6bbec5c9e1260b6eb3123b176187f6821ee7609b2e536375b9af076bec9b41fda588e5bdfa81111a126fa931378bd5585b531b0bf3ae8091f12997ef00a5540 SHA512 839183c41322dce6e63ead69e0cf4252cf2e434c9e9ce8a71033c493e18e395f48f5c402d1a7a6e53c4ae12da9ebfb47997909df84cfda3fd6c2845fd1e1c30b diff --git a/dev-python/cvxopt/cvxopt-1.3.3.ebuild b/dev-python/cvxopt/cvxopt-1.3.3.ebuild new file mode 100644 index 000000000000..29def1876270 --- /dev/null +++ b/dev-python/cvxopt/cvxopt-1.3.3.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2026 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_{10..14} ) + +inherit distutils-r1 toolchain-funcs + +DESCRIPTION="Python package for convex optimization" +HOMEPAGE=" + https://cvxopt.org/ + https://github.com/cvxopt/cvxopt/ + https://pypi.org/project/cvxopt/ +" +# no sdist, as of 1.3.1 +SRC_URI=" + https://github.com/${PN}/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~riscv ~x86" +IUSE="+dsdp examples fftw +glpk gsl" + +DEPEND=" + virtual/blas + virtual/lapack + sci-libs/amd:0= + sci-libs/cholmod:0= + sci-libs/colamd:0= + sci-libs/suitesparseconfig:0= + sci-libs/umfpack:0= + dsdp? ( sci-libs/dsdp:0= ) + fftw? ( sci-libs/fftw:3.0= ) + glpk? ( >=sci-mathematics/glpk-4.49:0= ) + gsl? ( sci-libs/gsl:0= ) +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + >=dev-python/setuptools-scm-6.2[${PYTHON_USEDEP}] + virtual/pkgconfig +" + +distutils_enable_sphinx doc/source \ + dev-python/sphinx-rtd-theme +distutils_enable_tests pytest + +# The BLAS_LIB and LAPACK_LIB variables (among others) in cvxopt's +# setup.py are passed in as colon-delimited strings. So, for example, +# if your blas "l" flags are "-lblas -lcblas", then cvxopt wants +# "blas;cblas" for BLAS_LIB. +# +# The following function takes a flag type ("l", "L", or "I") as its +# first argument and a list of packages as its remaining arguments. It +# outputs a list of libraries, library paths, or include paths, +# respectively, for the given packages, retrieved using pkg-config and +# deduplicated, in the appropriate format. +# +cvxopt_output() { + local FLAGNAME="${1}" + shift + local PACKAGES="${@}" + + local PKGCONFIG_MODE + case "${FLAGNAME}" in + l) PKGCONFIG_MODE="--libs-only-l";; + L) PKGCONFIG_MODE="--libs-only-L";; + I) PKGCONFIG_MODE="--cflags-only-I";; + *) echo "invalid flag name: ${FLAGNAME}"; exit 1;; + esac + + local CVXOPT_OUTPUT="" + local PKGCONFIG_ITEM + for PKGCONFIG_ITEM in $($(tc-getPKG_CONFIG) ${PKGCONFIG_MODE} ${PACKAGES}) + do + # First strip off the leading "-l", "-L", or "-I", and replace + # it with a semicolon... + PKGCONFIG_ITEM=";${PKGCONFIG_ITEM#-${FLAGNAME}}" + + # Now check to see if this element is already present in the + # list, and skip it if it is. This eliminates multiple entries + # from winding up in the list when multiple package arguments are + # passed to this function. + if [[ "${CVXOPT_OUTPUT}" != "${CVXOPT_OUTPUT%${PKGCONFIG_ITEM}}" ]] + then + # It was already the last entry in the list, so skip it. + continue + elif [[ "${CVXOPT_OUTPUT}" != "${CVXOPT_OUTPUT%${PKGCONFIG_ITEM};*}" ]] + then + # It was an earlier entry in the list. These two cases are + # separate to ensure that we can e.g. find ";m" at the end + # of the list, but that we don't find ";metis" in the process. + continue + fi + + # It isn't in the list yet, so append it. + CVXOPT_OUTPUT+="${PKGCONFIG_ITEM}" + done + + # Strip the leading ";" from ";foo;bar" before output. + echo "${CVXOPT_OUTPUT#;}" +} + +src_configure() { + # Mandatory dependencies. + export CVXOPT_BLAS_LIB="$(cvxopt_output l blas)" + export CVXOPT_BLAS_LIB_DIR="${EPREFIX}/usr/$(get_libdir);$(cvxopt_output L blas)" + export CVXOPT_LAPACK_LIB="$(cvxopt_output l lapack)" + export CVXOPT_SUITESPARSE_LIB_DIR="${EPREFIX}/usr/$(get_libdir)" + + # Most of these CVXOPT_* variables can be blank or have "empty" + # entries and the resulting command-line with e.g. "-L -L/some/path" + # won't hurt anything. The INC_DIR variables, however, cause + # problems, because at least gcc doesn't like a bare "-I". We + # pre-populate these variable with something safe so that setup.py + # doesn't look in the wrong place if pkg-config doesn't return any + # extra -I directories. This is + # + # https://github.com/cvxopt/cvxopt/issues/167 + # + CVXOPT_SUITESPARSE_INC_DIR="${EPREFIX}/usr/include" + export CVXOPT_SUITESPARSE_INC_DIR + + # optional dependencies + if use dsdp; then + # no pkg-config file at the moment + export CVXOPT_BUILD_DSDP=1 + export CVXOPT_DSDP_LIB_DIR="${EPREFIX}/usr/$(get_libdir)" + export CVXOPT_DSDP_INC_DIR="${EPREFIX}/usr/include" + fi + + if use fftw; then + export CVXOPT_BUILD_FFTW=1 + export CVXOPT_FFTW_LIB_DIR="${EPREFIX}/usr/$(get_libdir);$(cvxopt_output L fftw3)" + CVXOPT_FFTW_INC_DIR="${EPREFIX}/usr/include" + FFTW_LOCAL_INCS="$(cvxopt_output I fftw3)" + if [[ -n "${FFTW_LOCAL_INCS}" ]]; then + CVXOPT_FFTW_INC_DIR+=";${FFTW_LOCAL_INCS}" + fi + export CVXOPT_FFTW_INC_DIR + fi + + if use glpk; then + # no pkg-config file at the moment + export CVXOPT_BUILD_GLPK=1 + export CVXOPT_GLPK_LIB_DIR="${EPREFIX}/usr/$(get_libdir)" + export CVXOPT_GLPK_INC_DIR="${EPREFIX}/usr/include" + fi + + if use gsl; then + export CVXOPT_BUILD_GSL=1 + export CVXOPT_GSL_LIB_DIR="${EPREFIX}/usr/$(get_libdir);$(cvxopt_output L gsl)" + CVXOPT_GSL_INC_DIR="${EPREFIX}/usr/include" + GSL_LOCAL_INCS="$(cvxopt_output I gsl)" + if [[ -n "${GSL_LOCAL_INCS}" ]]; then + CVXOPT_GSL_INC_DIR+=";${GSL_LOCAL_INCS}" + fi + export CVXOPT_GSL_INC_DIR + fi + + export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} +} + +python_install_all() { + distutils-r1_python_install_all + if use examples; then + dodoc -r examples + docompress -x "/usr/share/doc/${PF}/examples" + fi +} diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest index e471e31662bd..7f6463ba55f6 100644 --- a/dev-python/hypothesis/Manifest +++ b/dev-python/hypothesis/Manifest @@ -2,3 +2,4 @@ DIST hypothesis-6.151.14.gh.tar.gz 9871044 BLAKE2B bed431dcd481f5af11043fd0beca9 DIST hypothesis-6.151.9.gh.tar.gz 9864451 BLAKE2B 9d9c2800cf1212e743a599c261c78c0a7d349e58075a443e0d10e6373b1582e059abde416cec4f3a8185ae424725f93da8ab4e43dd70bd0f86071d69aca94def SHA512 3e41bdd077a18fe72360547bc03f2c3d7218e8cd6cb563fffd6024427bfa5ce0764ca9c7ef0dafdded896625128fc14b9d3f8c4564aa8a509545abf0ad24adbf DIST hypothesis-6.152.4.gh.tar.gz 9602982 BLAKE2B 7eb3bf424f35707fa323affc9e5e00c35716c32ac69acfdbc7981634f30abf20dee20a8271c21e561b868e24f175a12f484d0e436132ac8194ad48dc361c1ebe SHA512 8f7490051c49f1a3d7b91b00a63527600ff8aba03456bcb2360a9c6a004eea67995354cadf40eabcdaec0d7cd53ecac013963e2c6e19be3e348e79f9e40d9e8e DIST hypothesis-6.152.5.gh.tar.gz 9603889 BLAKE2B cc892069eb1b9d28073974cd5f5d23b7c32f3679ebe127acae9783b71d5a2d9dbfb5b1390f102447f62a5c557e34717911d46de4020e9cef6f93a85a24080848 SHA512 ff36abf597a43bf527dafc85e3bce84d352419650cd6a3854bcaee5bb91443ad8651cce9b2e9a7cb2f69f076e98531e323a14fb65ae05a202142a1856dbd5756 +DIST hypothesis-6.152.6.gh.tar.gz 9606311 BLAKE2B 96664ceb08b3870f71ca0b93a9214ed6150d0556660e9e20b0756c2778295af6cacd5c5a1f3b600695013880a274bb4517110cbeaf8c2dcf818ab8166814e732 SHA512 535947d3e5eecd1a0a45805a3011a82e992fc76bfa6ece63e2b8af85f22e93229a28c1746a64201886160432b087c0bb58045a38e3867efd8285c8b62e5814aa diff --git a/dev-python/hypothesis/hypothesis-6.152.6.ebuild b/dev-python/hypothesis/hypothesis-6.152.6.ebuild new file mode 100644 index 000000000000..2c65b19aa496 --- /dev/null +++ b/dev-python/hypothesis/hypothesis-6.152.6.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +CLI_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( "${CLI_COMPAT[@]}" pypy3_11 python3_{14..15} python3_{13..15}t ) +PYTHON_REQ_USE="threads(+),sqlite" + +inherit distutils-r1 optfeature + +TAG=hypothesis-python-${PV} +MY_P=hypothesis-${TAG} +DESCRIPTION="A library for property based testing" +HOMEPAGE=" + https://github.com/HypothesisWorks/hypothesis/ + https://pypi.org/project/hypothesis/ +" +SRC_URI=" + https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz + -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${MY_P}/hypothesis-python" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="cli" + +RDEPEND=" + >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}] + cli? ( + $(python_gen_cond_dep ' + dev-python/black[${PYTHON_USEDEP}] + dev-python/click[${PYTHON_USEDEP}] + ' "${CLI_COMPAT[@]}") + ) +" +BDEPEND=" + test? ( + >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}] + dev-python/pexpect[${PYTHON_USEDEP}] + >=dev-python/pytest-8[${PYTHON_USEDEP}] + ) +" +PDEPEND=" + dev-python/hypothesis-gentoo[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGIN_LOAD_VIA_ENV=1 +EPYTEST_PLUGINS=( "${PN}" pytest-xdist ) +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + # NB: paths need to be relative to pytest.ini, + # i.e. start with hypothesis-python/ + local EPYTEST_DESELECT=( + # broken somehow (xdist?) + 'hypothesis-python/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]' + # used to fail for a few impls, now fails everywhere + 'hypothesis-python/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]' + ) + local EPYTEST_IGNORE=( + # require syrupy + tests/cover/test_custom_reprs.py + ) + + case ${EPYTHON} in + python3.15*) + EPYTEST_DESELECT+=( + 'hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]' + 'hypothesis-python/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]' + ) + ;; + esac + + local -x HYPOTHESIS_NO_PLUGINS=1 + epytest -o filterwarnings= tests/{cover,pytest,quality} +} + +src_install() { + local HAD_CLI= + + distutils-r1_src_install + + if [[ ! ${HAD_CLI} ]]; then + rm -r "${ED}/usr/bin" || die + fi +} + +python_install() { + distutils-r1_python_install + if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then + HAD_CLI=1 + else + rm -r "${D}$(python_get_scriptdir)" || die + fi +} + +pkg_postinst() { + optfeature "datetime support" dev-python/pytz + optfeature "dateutil support" dev-python/python-dateutil + optfeature "numpy support" dev-python/numpy + optfeature "django support" dev-python/django dev-python/pytz + optfeature "pandas support" dev-python/pandas + optfeature "pytest support" dev-python/pytest +} diff --git a/dev-python/idna/Manifest b/dev-python/idna/Manifest index 4be183e04d67..d45bf5d8eda7 100644 --- a/dev-python/idna/Manifest +++ b/dev-python/idna/Manifest @@ -1,2 +1,4 @@ DIST idna-3.14.tar.gz 198272 BLAKE2B e7c7084109b82c797a9d04074e77533eedd1b339e334a9f48beee4405c1f62b9bcad02ec726445c71b96354088cedc23ee3b9cd3772a77b004f06a2f66382e76 SHA512 be45700d70b8527445c00c9f760311a448d1a38116883e69549405ebc89b78dded0a939625564841c44c51efaad03e2054ba883f284b152552b9fe84ffdb229b DIST idna-3.14.tar.gz.provenance 8986 BLAKE2B a9cbeae466fc385c997838513fe35efc862741be2f6b80f0c1151272b0bb473d6ed7efaa8584be1d647d8ed76127a524c7aaa102b248d16c1f9d51baf71af0a6 SHA512 e982ee5071a6a3ba7760c9e622419e47fce5fd210583ba78e70c5ac07a78adb3b2d6479020a7f2c8988b4a45b50b3968412a86d054e57df176c8817d1b54338b +DIST idna-3.15.tar.gz 199245 BLAKE2B fa738fd388a5a7d5a67db32e117b4e226c525673981e63a950d8044b9df49a6af5ce7b6db146455233b294648a79b1ca20b14cbe13283ed11a02413120a54338 SHA512 8cd0efd9f82d1e5ec73b06202fed42c54e9aee4ebf5612fe29cb6c76f459d24027e545339dc3e79ad9abd0849b0e31bca42bf41f36c87391d9707f92b8326e26 +DIST idna-3.15.tar.gz.provenance 9268 BLAKE2B 83321fc9054407e98c6d1681481edbab71965b37ef88d85a37d50cb2611166d35adbd3571041e1e3b20a7344cd8b4f8840a322df8acc771d3d3d046703bf386f SHA512 413242a897960230b76e5c4f50cbd6e7560bd2694e9bb834ea758958cf359218587cde31c34f377d3abf3447cea9f39580bd89a88d52518b0b4aa97260454228 diff --git a/dev-python/idna/idna-3.15.ebuild b/dev-python/idna/idna-3.15.ebuild new file mode 100644 index 000000000000..aa84e127089d --- /dev/null +++ b/dev-python/idna/idna-3.15.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/kjd/idna +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Internationalized Domain Names in Applications (IDNA)" +HOMEPAGE=" + https://github.com/kjd/idna/ + https://pypi.org/project/idna/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +distutils_enable_tests unittest diff --git a/dev-python/imap-tools/Manifest b/dev-python/imap-tools/Manifest index 8f0c3bbabe7b..5cac0a90a37d 100644 --- a/dev-python/imap-tools/Manifest +++ b/dev-python/imap-tools/Manifest @@ -1,5 +1,5 @@ -DIST imap-tools-1.11.1.gh.tar.gz 257425 BLAKE2B e31c805ec30b035e51260957c44f5d98ef0a24f3b56267f4130468026cb05b5c7f91d89d30145060ede4faa390081faabd20176b1e28ab943deee063c45a97f5 SHA512 cb34ab59eb9d98ce11009b22975424b8c5fcaca1332af9308004178dd6b794c640de5d9b931502c2c643f398220d37a5d932f9d08f3abe7a0bde5ca7fc72093c DIST imap-tools-1.12.1.gh.tar.gz 258469 BLAKE2B 4d4d9a538e19a8eda16a737555bf2d8191bb1378b7c73e93abd5bd2c23228ed9e2ffeb2b3f9ce05cb30d5d7b7f0ea26d47b2e66c94c656fbf3a5e42239a8c687 SHA512 68c7dd9c41f491e6c66e526f154d0343e8f0fa37aa8238755831011d86896ebd2fad0e3aa108964296563fd8ca56b33a6f4d91870de67d20c5934ffa90a2c795 -EBUILD imap-tools-1.11.1.ebuild 730 BLAKE2B a6d101885c746149a060caea18b381069b5b10de522da69480f8890d172599df4665158b225df8f7a021b3beaf330995fd848d0396fa113eb7b54c228e88b856 SHA512 d0b30c01a91252e92ac05c595078d2bff779e25aa8890203fbab85a6c4ab396c71d12708a40361ebb04fafb5df7d5788c64d11f2806bc78f051138f0237b32a4 +DIST imap-tools-1.13.0.gh.tar.gz 258708 BLAKE2B 251b774e60a73034d0b5fd97bc36e7bb8f763524535b944651e34418301d836a808aa88757313c0615b87fa839c12de275aac97d07990d9ee4d542fc50e74ece SHA512 e4d1d974a61f77f9f1220206595d3f82c14296b36dae80a60007d51fb769acfe4a2c8eb69008b8d169d23d182bd1e5c9986ff033661d0138498aa3e319317ce0 EBUILD imap-tools-1.12.1.ebuild 730 BLAKE2B a6d101885c746149a060caea18b381069b5b10de522da69480f8890d172599df4665158b225df8f7a021b3beaf330995fd848d0396fa113eb7b54c228e88b856 SHA512 d0b30c01a91252e92ac05c595078d2bff779e25aa8890203fbab85a6c4ab396c71d12708a40361ebb04fafb5df7d5788c64d11f2806bc78f051138f0237b32a4 +EBUILD imap-tools-1.13.0.ebuild 730 BLAKE2B a6d101885c746149a060caea18b381069b5b10de522da69480f8890d172599df4665158b225df8f7a021b3beaf330995fd848d0396fa113eb7b54c228e88b856 SHA512 d0b30c01a91252e92ac05c595078d2bff779e25aa8890203fbab85a6c4ab396c71d12708a40361ebb04fafb5df7d5788c64d11f2806bc78f051138f0237b32a4 MISC metadata.xml 447 BLAKE2B 59e17459538187a7c9da7fbe7283f25c5131bf3188563709971176266ee42c8e27cdbf744cab7fe77c9b81b618c1246feb6450e969fb2bbe8ec996958315d158 SHA512 2d90e11910d114c0a84231c76b0103e3f4f7187294c68eb1542d396b0122baf3b066813fa95fd9386a6fbaeb778e43e8cc095747aeb7012d26d355c99e2e06ad diff --git a/dev-python/imap-tools/imap-tools-1.11.1.ebuild b/dev-python/imap-tools/imap-tools-1.13.0.ebuild index d03f0b657f76..d03f0b657f76 100644 --- a/dev-python/imap-tools/imap-tools-1.11.1.ebuild +++ b/dev-python/imap-tools/imap-tools-1.13.0.ebuild diff --git a/dev-python/inline-snapshot/Manifest b/dev-python/inline-snapshot/Manifest index a550e43a429a..b1a347b8536b 100644 --- a/dev-python/inline-snapshot/Manifest +++ b/dev-python/inline-snapshot/Manifest @@ -2,3 +2,5 @@ DIST inline_snapshot-0.32.6.tar.gz 2627401 BLAKE2B bc5e6d2df47ee092fa26ed9f22066 DIST inline_snapshot-0.32.6.tar.gz.provenance 9438 BLAKE2B 8756279a2d22a5945eed8e973699399df90b12c021ecf501bc23c36cd3ac4deb0ddf0bc26e176fcefe4242381952ffa67a0348aa8b981bfbecd6d17b5009fd9f SHA512 0cafbbe3455c5e8c3938fa823c0acf0ab283d01e26ecacf9e4ab7a96dc5859f13d493c16246eac81b7770110ce7607500e27216dcf2247d29861b9631a9f5c49 DIST inline_snapshot-0.32.7.tar.gz 2630267 BLAKE2B 5e063da1ab736d6506af9bb282e5ba5a3f36af7f8c69411ade923f8daf84c6abc32882bb7def4a8ff65c42c295f883116539eb7c529c93fafbfd22960121397a SHA512 2e417a21e9fa1d315981ab449c3682a3d925035cb6d5dc66cfb77f635e46c12fce9727aaa0c9ad37aeb6e1aa1a3f2fa3a9326e6c0f9e68777bc0f7a62dcd7228 DIST inline_snapshot-0.32.7.tar.gz.provenance 9387 BLAKE2B 7205386789ed7c4ceaa12a2212df10c490286c1b18f33eddef705bb9276a6515cc6ac4439e390a754fdf931361b4644ccbf140e6a669dfea21e780ba47cc5f6a SHA512 5c6ec866395cbdf1b2d08f9a7bcbe0d07a2d9ff1a714ec4fc0cb41115d74ec9eda861f6779c73bdbf6d5899c2b93f70119a32e0d4028c6b09e411588b7683876 +DIST inline_snapshot-0.33.0.tar.gz 2637158 BLAKE2B 1bc372dd7f4a546410570b7a2a02ed65722d3448f8f2bc6e4f7cae926370f3ba74fc33f1b1162e4f6563f1f94273c592da4a5f8f573557235d8a5064b8c22c88 SHA512 17af4c5992dfc04809df804ab7167063d01166073e8017eeb08e60cef8ada642955eb2090e0e86807aacd3a6feddceed0cf3c37667fed5b732d076e8449ced13 +DIST inline_snapshot-0.33.0.tar.gz.provenance 9520 BLAKE2B 812259517d0fb1a0ba26b25986a8335810fe9542b581f7ced793cf3f1e64d6e10fbf2934252adc4352b113535028cc8a158ffe8c99aef993acbd08bcae35adea SHA512 241f66837bd510f10b2897fe8de4815d6352e78d0a9153ffb4be5fbd0be80fca693e5cf3c30ae32a3042a3294b175b865999a628607ecec414c81f7768570d6d diff --git a/dev-python/inline-snapshot/inline-snapshot-0.33.0.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.33.0.ebuild new file mode 100644 index 000000000000..96d8727f953a --- /dev/null +++ b/dev-python/inline-snapshot/inline-snapshot-0.33.0.ebuild @@ -0,0 +1,62 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/15r10nk/inline-snapshot +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Create and update inline snapshots in your Python tests" +HOMEPAGE=" + https://15r10nk.github.io/inline-snapshot/ + https://github.com/15r10nk/inline-snapshot/ + https://pypi.org/project/inline-snapshot/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}] + >=dev-python/executing-2.2.0[${PYTHON_USEDEP}] + >=dev-python/pytest-8.3.4[${PYTHON_USEDEP}] + >=dev-python/rich-13.7.1[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/attrs[${PYTHON_USEDEP}] + >=dev-python/black-23.3.0[${PYTHON_USEDEP}] + >=dev-python/dirty-equals-0.7.0[${PYTHON_USEDEP}] + >=dev-python/hypothesis-6.75.5[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/mypy[${PYTHON_USEDEP}] + ' 'python*') + >=dev-python/pydantic-2[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGIN_LOAD_VIA_ENV=1 +EPYTEST_PLUGINS=( "${PN}" pytest-{freezer,mock,xdist} ) +# TODO: EPYTEST_XDIST=1 gotten flaky with 0.33.0 +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # requires pyright + 'tests/test_typing.py::test_typing_args[pyright]' + 'tests/test_typing.py::test_typing_call[pyright]' + # TODO + tests/test_formating.py::test_format_command_fail + 'tests/test_docs.py::test_docs[categories.md]' + 'tests/test_docs.py::test_docs[code_generation.md]' + 'tests/test_docs.py::test_docs[testing.md]' + ) + + local -x PYTHONPATH=${S}/src + epytest +} diff --git a/dev-python/installer/Manifest b/dev-python/installer/Manifest index 2dad2ff96f1e..057413dffd01 100644 --- a/dev-python/installer/Manifest +++ b/dev-python/installer/Manifest @@ -1,2 +1,6 @@ DIST installer-0.7.0-py3-none-any.whl.zip 453838 BLAKE2B 59bb698e7a4232a5254b6f6c4a042c68a22a26e15c1205707d3c9734513e92bf4518a09341619eab9ef0023ee65fcaa9837a4befb7a2452f1592411654374595 SHA512 8e10013521238ef8fb2f5ab4bd00f6154c05046011cad8824d96b7cdc4ed235b87e534d1e163a47a11dbfb5bb3cf19d9a2ea3edd1e9c9ce5fbc9a375010c36dc DIST installer-0.7.0.tar.gz 474349 BLAKE2B 76b86d14c0f4f0eba091ff08ef27e1b2f23c93318d197b3c41f5fef45eb11acc54bb1d35e3afc1e0dd98b30cc4cd3d9963ab1ba0bfe9d294ee3d0933ddaa24db SHA512 e89c2d28ca73d9c4291d645dda675fdcfcaba2e4f8765b9fa4a2f211e27711510f3d171b96a6b024c11808ba7f06b7b560a7cb31fafba815bd5c7396f26789f7 +DIST installer-1.0.1-py3-none-any.whl 464455 BLAKE2B 2856ed291d82acae94af2ea622554356f960175bb7961da11d2e434eb80fbc5346e24e01a0603c55a2bd8a22e44be1d8200a872d35d88d339e91461ac62e004c SHA512 655b26bea8a979a23f752346e54117b2513bfa8cc7932efa4ed8d6ccccc52f320d84904d989c235321cf69688eeec806e749632cfd57873dc91b59524823c85c +DIST installer-1.0.1-py3-none-any.whl.provenance 9282 BLAKE2B 1b2400ad2db330c2f0e1a72deae66779fe4261bbd7433b13b87cd9be8d0bc7a273f681ca77136cbaf7c7edc2c132b16d0e30a86b2a56bd194654cc07cca26041 SHA512 5831d2c3608ee8fa5477283b6dfddaedb6730da5da0568261b17e22117c6c4a5a2ae21ed0d6d5549cbcab88f9dd3823462a1fff487ec5335ac1dff867e715a63 +DIST installer-1.0.1.tar.gz 481132 BLAKE2B 95bf26cb5d14c934f8126b656aec519a51199ec9ea95bc903016a170cbc906a884f4571a060c175ca4bb47f27cabf265c91c5c769b62d51158ee66a128aae040 SHA512 cabc4efb8ce66ce85c2139e264f66c449f9e5cf1f8c860afa7f147daf0b983716fe02182ef1f6e4abbc4b6be34d75738a0281c77dda9d48a075c212301278a73 +DIST installer-1.0.1.tar.gz.provenance 9321 BLAKE2B 6df8598216f029c7e524e28ac045fb4f89c529c1e79c6ac15ebe1d68a74b787b3d83855079cc5148f5f14b96b3bca44fdc446643e296dc352c9aa7a3fd1af34e SHA512 593b2a63d4cca980faf0eb1c0125117afeb94c580bac5680e1fdc71e27bfb2cd232fe9c986e2eb5a5b4316e31613eeea428f6800ebcc7f7389321af37c718217 diff --git a/dev-python/installer/installer-1.0.1.ebuild b/dev-python/installer/installer-1.0.1.ebuild new file mode 100644 index 000000000000..10ef0f43e6e2 --- /dev/null +++ b/dev-python/installer/installer-1.0.1.ebuild @@ -0,0 +1,71 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=no +PYPI_VERIFY_REPO=https://github.com/pypa/installer +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +WHEEL_NAME=$(pypi_wheel_name) +DESCRIPTION="A library for installing Python wheels" +HOMEPAGE=" + https://pypi.org/project/installer/ + https://github.com/pypa/installer/ + https://installer.readthedocs.io/en/latest/ +" +SRC_URI+=" + $(pypi_wheel_url) + verify-provenance? ( + $(pypi_provenance_url "${WHEEL_NAME}") -> ${WHEEL_NAME}.provenance + ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +BDEPEND=" + app-arch/unzip +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_unpack() { + if use verify-provenance; then + pypi_verify_provenance "${DISTDIR}/${WHEEL_NAME}"{,.provenance} + fi + + pypi_src_unpack + + cp "${DISTDIR}/${WHEEL_NAME}" "${WHEEL_NAME}.zip" || die + unpack "./${WHEEL_NAME}.zip" +} + +python_compile() { + python_domodule src/installer "${WORKDIR}"/*.dist-info +} + +python_test() { + local EPYTEST_DESELECT=() + + case ${EPYTHON} in + python3.15*) + EPYTEST_DESELECT+=( + # extra warnings for os.path.commonprefix() + tests/test_core.py::TestInstall::test_skips_pycache_and_warns + ) + ;; + esac + + epytest +} + +python_install() { + distutils-r1_python_install + python_optimize +} diff --git a/dev-python/ipyparallel/Manifest b/dev-python/ipyparallel/Manifest index c100d966538e..b4aeca02e01a 100644 --- a/dev-python/ipyparallel/Manifest +++ b/dev-python/ipyparallel/Manifest @@ -1,2 +1,4 @@ DIST ipyparallel-9.1.0.tar.gz 4427086 BLAKE2B f219325a7ce0a4ac4f0d215cfa9fac2431074b663fbc3ac316b30031f145ae8291598f54a0bdc923f43d70d65482f65ebc3a51c52b49e627f7ea676a31cda556 SHA512 f62689a5991e7d923d796a1a2caf03c7f0ed4ffc41f70d77002aac9ae24be67b2268e386b3652819c3826beb94b245593874564b707251efdcf4ebe4a9293706 DIST ipyparallel-9.1.0.tar.gz.provenance 9517 BLAKE2B 09a65b092c7241a9812a4c0912e555f637b4b95a6f6fba9d4e958ba35aef7effa0845ec72b3a22d9bd1b07cddd1a93cf89eef2bb20a3c874100b297e2f997551 SHA512 05da5c203eaf715b37d0310a8ce52edd53ad7ceb891056387aebdd8cf1461e72e6b170ded87225370744dd2dceadf8389b512a87217fe2f72ac811c35939c03a +DIST ipyparallel-9.2.0.tar.gz 4427734 BLAKE2B 80fbe45cda795cff94850c06fad8adcbf455e2e9bcf62df2e0fa4e1d6001fee8ed846eb2de8b2ec53c10906046b87e463af7d561fe97d56e47f708c9b777cdde SHA512 786ee9ca6fef68f1704370732e861c31a3c32f50f0d1eff7862108f4520e528049d5e5f27e52a94bf3027e9a766f7c42e7e033faeaaf7c9bdf85aa71f05454cb +DIST ipyparallel-9.2.0.tar.gz.provenance 9520 BLAKE2B ad66522837f4a50c6090999b053540b6f0a4446d09287ffb77fa3575051a7f43e17b0780c638d5dd2a1f8a4da77d15915c262451b23c5f8dc7488aaf065d3ca6 SHA512 654549ee1bad4ace3c7b57d7bf044aa32478b030e2446542cb3ae20883e90cb0a71e34c096bcb9846bb64a9967e3ba1b0db74ea053d047a4dcd5ee51b46f3ea5 diff --git a/dev-python/ipyparallel/ipyparallel-9.2.0.ebuild b/dev-python/ipyparallel/ipyparallel-9.2.0.ebuild new file mode 100644 index 000000000000..81439857d795 --- /dev/null +++ b/dev-python/ipyparallel/ipyparallel-9.2.0.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/ipython/ipyparallel +PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 optfeature pypi + +DESCRIPTION="Interactive Parallel Computing with IPython" +HOMEPAGE=" + https://ipyparallel.readthedocs.io/ + https://github.com/ipython/ipyparallel/ + https://pypi.org/project/ipyparallel/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/decorator[${PYTHON_USEDEP}] + >=dev-python/pyzmq-25[${PYTHON_USEDEP}] + >=dev-python/traitlets-5[${PYTHON_USEDEP}] + >=dev-python/ipython-5[${PYTHON_USEDEP}] + >=dev-python/jupyter-client-7[${PYTHON_USEDEP}] + dev-python/jupyter-server[${PYTHON_USEDEP}] + >=dev-python/ipykernel-6.9.1[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}] + dev-python/tqdm[${PYTHON_USEDEP}] + >=dev-python/tornado-6.1[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/flit-core[${PYTHON_USEDEP}] + test? ( + dev-python/testpath[${PYTHON_USEDEP}] + ) +" + +# TODO: package myst_parser +# distutils_enable_sphinx docs/source +EPYTEST_PLUGINS=( pytest-asyncio ) +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # we don't run a mongo instance for tests + ipyparallel/tests/test_mongodb.py::TestMongoBackend + # TODO + ipyparallel/tests/test_util.py::test_disambiguate_ip + # Gets upset that a timeout _doesn't_ occur, presumably because + # we're cranking up too many test timeouts. Oh well. + # bug #823458#c3 + ipyparallel/tests/test_asyncresult.py::AsyncResultTest::test_wait_for_send + # We could patch the timeout for these too but they're going to be inherently + # fragile anyway based on what they do. + ipyparallel/tests/test_client.py::TestClient::test_activate + ipyparallel/tests/test_client.py::TestClient::test_lazy_all_targets + ipyparallel/tests/test_client.py::TestClient::test_wait_for_engines +) + +src_configure() { + export IPP_DISABLE_JS=1 +} + +python_install_all() { + distutils-r1_python_install_all + # move /usr/etc stuff to /etc + mv "${ED}/usr/etc" "${ED}/etc" || die +} + +pkg_postinst() { + optfeature "Jupyter Notebook integration" dev-python/notebook +} diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest index 789cad0c250d..9319e609e047 100644 --- a/dev-python/lit/Manifest +++ b/dev-python/lit/Manifest @@ -13,3 +13,4 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.5.src.tar.xz 167058820 BLAKE2B b0d4bc4db8d03a2201620dec0fcf5c946d86ac152c0feef4252e211eec4542e2fc849e2bafc8bcb57982959d005d70e9a7bd81296fed04f819b7de3f2fc15c43 SHA512 68de113906ec0c843a9346ecd06bff352146869f1f28b5600ff907125d77202692b6f68bd169bcd74ae5b82e0ad5548ea99c2405540abea36880d80e373744ff DIST llvm-project-22.1.5.src.tar.xz.sig 119 BLAKE2B c756bb5d4ebc9fc3b61115495c75574312ad287dc4bdfc8408da7dcfc781f26c5804d8a4a46af32ad809db80a154aff6cad308742e1e04ca4a93249d6f1a55b4 SHA512 36baf347f79c26705136a7d342e8ee0a8a42939bb1db2d9ce91666b1edbbb04194ff63bc41899e4498cd819e6c2bd6944ea68d972e074e113f48d08e6544c368 +DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/dev-python/lit/lit-23.0.0_pre20260512.ebuild b/dev-python/lit/lit-23.0.0_pre20260512.ebuild new file mode 100644 index 000000000000..d9be9ae795ab --- /dev/null +++ b/dev-python/lit/lit-23.0.0_pre20260512.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 llvm.org + +DESCRIPTION="A stand-alone install of the LLVM suite testing tool" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +# Tests require 'FileCheck' and 'not' utilities (from llvm) +BDEPEND=" + test? ( + dev-python/psutil[${PYTHON_USEDEP}] + llvm-core/llvm + ) +" + +LLVM_COMPONENTS=( llvm/utils/lit ) +llvm.org_set_globals + +# TODO: move the manpage generation here (from llvm-core/llvm) + +src_prepare() { + cd "${WORKDIR}" || die + distutils-r1_src_prepare +} + +python_test() { + local -x LIT_PRESERVES_TMP=1 + local litflags=$(get_lit_flags) + ./lit.py ${litflags//;/ } tests || die +} diff --git a/dev-python/mypy/Manifest b/dev-python/mypy/Manifest index ac25c936f120..a3cb4ebc240e 100644 --- a/dev-python/mypy/Manifest +++ b/dev-python/mypy/Manifest @@ -1,3 +1,4 @@ DIST mypy-1.18.2.gh.tar.gz 3468958 BLAKE2B 7c80d839829e2982604c8ed0ee82ca390b9372fb057baaf5ad4b4a8d2dc7ce538b7246342b4691e5c950666360a9788421f540febbc2b19412af80cd4d828907 SHA512 f3cbfdf338b5d994bc077e66721e26a635926d79985f8200af0bd6aa841b076703fa2c798c6d2ceadd7c8c69d4a86af11c5a8f551f13a7fd2b510721af466c54 DIST mypy-1.20.2.gh.tar.gz 3837137 BLAKE2B cc28ad8a145d27dd4f6f395496e44ed80859df634e89fe7d584975107534cf063db97817b5b94665e2b7629ca1fa67c75c0ed2978237f10d68606c33bc6e79d3 SHA512 55affb5d086b18ea16b5cc9fd4bb2fbc99987d444f2c0b6c64aaa9dd87a7790f99385b922eb6afbd5fe0c0ff0a5da9f69ab03bb3d8aac350aa5b2f85174fc130 DIST mypy-2.0.0.gh.tar.gz 3889137 BLAKE2B 8d136d7a07b835514130d258cfc8d70c41b42380e7d8a2deed0df5a7012a083baab7883ca84e4590a724ab9b8429addab7bec0eb4cbc26322d00511d0d818ebe SHA512 07f6009f214da6a014593a3e705b667cb8648fccc4dd84592d0946844826912161179bced0259fc728d3c1828fb59e93ac2945fb95662b09b83190a805465611 +DIST mypy-2.1.0.gh.tar.gz 3916741 BLAKE2B 37bf2f6d79377ebde68537119c0b58ae9cf6868421329b1d5b814e48788749e53cd34053bb5472385881b167cc8af7fdd85cef3c63792868668286516fe27462 SHA512 ae24addeaa7c7f51b43df718482be368e9078c16c42c2449cabed74b98d3a36a701235b092d044c3e452ec84ee26806090f2d38e173d752e8511a178e12cd761 diff --git a/dev-python/mypy/mypy-2.1.0.ebuild b/dev-python/mypy/mypy-2.1.0.ebuild new file mode 100644 index 000000000000..f2a92bfa1ffe --- /dev/null +++ b/dev-python/mypy/mypy-2.1.0.ebuild @@ -0,0 +1,146 @@ +# Copyright 1999-2026 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_{10..14} ) +PYTHON_REQ_USE="sqlite" + +inherit distutils-r1 optfeature + +DESCRIPTION="Optional static typing for Python" +HOMEPAGE=" + https://www.mypy-lang.org/ + https://github.com/python/mypy/ + https://pypi.org/project/mypy/ +" +SRC_URI=" + https://github.com/python/mypy/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~s390 ~sparc ~x86" +IUSE="native-extensions" + +# stubgen collides with this package: https://bugs.gentoo.org/585594 +RDEPEND=" + !dev-util/stubgen + <dev-python/ast-serialize-1[${PYTHON_USEDEP}] + >=dev-python/ast-serialize-0.3.0[${PYTHON_USEDEP}] + >=dev-python/librt-0.11.0[${PYTHON_USEDEP}] + >=dev-python/mypy-extensions-1.0.0[${PYTHON_USEDEP}] + >=dev-python/pathspec-1.0.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}] +" +BDEPEND=" + native-extensions? ( + ${RDEPEND} + dev-python/types-psutil[${PYTHON_USEDEP}] + dev-python/types-setuptools[${PYTHON_USEDEP}] + ) + test? ( + >=dev-python/attrs-18.0[${PYTHON_USEDEP}] + >=dev-python/filelock-3.3.0[${PYTHON_USEDEP}] + >=dev-python/lxml-4.9.1[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +# frustratingly, mypyc produces non-deterministic output. If ccache is enabled it will be a waste of time, +# but simultaneously it might trash your system and fill up the cache with a giant wave of non-reproducible +# test files (https://github.com/mypyc/mypyc/issues/1014) +export CCACHE_DISABLE=1 + +PATCHES=( + "${FILESDIR}"/${PN}-1.14.0-no-werror.patch +) + +src_prepare() { + distutils-r1_src_prepare + + # don't force pytest-xdist, in case user asked for EPYTEST_JOBS=1 + sed -i -e '/addopts/s:-nauto::' pyproject.toml || die +} + +python_compile() { + local -x MYPY_USE_MYPYC=$(usex native-extensions 1 0) + distutils-r1_python_compile +} + +python_test() { + local EPYTEST_DESELECT=( + # the majority of them require Internet (via pip) + mypy/test/testpep561.py + # known broken with assertions enabled + # https://github.com/python/mypy/issues/16043 + mypyc/test/test_external.py::TestExternal::test_c_unit_test + mypyc/test/test_run.py::TestRun::run-async.test::testRunAsyncMiscTypesInEnvironment + mypyc/test/test_run.py::TestRun::run-bools.test::testBoolOps + mypyc/test/test_run.py::TestRun::run-classes.test::testDelException + mypyc/test/test_run.py::TestRun::run-classes.test::testDelForDictSubclass + mypyc/test/test_run.py::TestRun::run-classes.test::testSubclassDict + mypyc/test/test_run.py::TestRun::run-dicts.test::testDictIterationMethodsRun + mypyc/test/test_run.py::TestRun::run-dicts.test::testDictMethods + mypyc/test/test_run.py::TestRun::run-dunders.test::testDundersContainer + mypyc/test/test_run.py::TestRun::run-floats.test::testFloatOps + mypyc/test/test_run.py::TestRun::run-i64.test::testI64BasicOps + mypyc/test/test_run.py::TestRun::run-i64.test::testI64DefaultArgValues + mypyc/test/test_run.py::TestRun::run-i64.test::testI64ErrorValuesAndUndefined + mypyc/test/test_run.py::TestRun::run-i64.test::testI64GlueMethodsAndInheritance + mypyc/test/test_run.py::TestRun::run-librt-strings.test::testLibrtStrings_librt + mypyc/test/test_run.py::TestRun::run-vecs-i64.test::testVecI64BasicOps_librt_experimental + mypyc/test/test_run.py::TestRun::run-vecs-misc.test::testVecMiscBasicOps_librt + mypyc/test/test_run.py::TestRun::run-vecs-nested.test::testVecNestedBasicOps_librt + mypyc/test/test_run.py::TestRun::run-vecs-t.test::testVecTBasicOps_librt_experimental + mypyc/test/test_run.py::TestRunStrictDunderTyping::run-dunders.test::testDundersContainer_dunder_typing + mypyc/test/test_run.py::TestRunStrictDunderTyping::run-floats.test::testFloatOps_dunder_typing + # these assume that types-docutils are not installed + mypy/test/testpythoneval.py::PythonEvaluationSuite::pythoneval.test::testIgnoreImportIfNoPython3StubAvailable + mypy/test/testpythoneval.py::PythonEvaluationSuite::pythoneval.test::testNoPython3StubAvailable + # TODO + mypy/test/meta/test_parse_data.py + mypy/test/meta/test_update_data.py + # Unknown SIGBUS, bug #967850 + mypyc/test/test_run.py::TestRun::run-classes.test::testBufferRoundTrip_native_libs + ) + + case ${EPYTHON} in + python3.14*) + EPYTEST_DESELECT+=( + mypyc/test/test_run.py::TestRun::run-async.test::testRunAsyncRefCounting + mypyc/test/test_run.py::TestRun::run-tuples.test::testNamedTupleClassSyntax + ) + ;; + esac + + # Some mypy/test/testcmdline.py::PythonCmdlineSuite tests + # fail with high COLUMNS values + local -x COLUMNS=80 + + # The tests depend on having in-source compiled extensions if you want to + # test those compiled extensions. Various crucial test dependencies aren't + # installed. Even pyproject.toml is needed because that's where pytest args + # are in. Hack them into the build directory and delete them afterwards. + # See: https://github.com/python/mypy/issues/16143 + local -x MYPY_TEST_PREFIX="${S}" + cd "${BUILD_DIR}/install$(python_get_sitedir)" || die + cp -r "${S}"/{conftest.py,pyproject.toml} . || die + + local failed= + nonfatal epytest || failed=1 + + rm -r conftest.py pyproject.toml .mypy_cache || die + + [[ ${failed} ]] && die "epytest failed with ${EPYTHON}" +} + +pkg_postinst() { + optfeature "dmypy status -v support for memory use" dev-python/psutil +} diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest index 32dea0db83ec..343c07533e6f 100644 --- a/dev-python/nuitka/Manifest +++ b/dev-python/nuitka/Manifest @@ -1,2 +1,2 @@ -DIST nuitka-4.0.7.tar.gz 4421537 BLAKE2B 038d091f2ee8628a1f79f20f2739ea7b9e9e6305e5eb83bbedcc709702eef85061fcf062416991e0ff8b499d1a14a20c2afc84118fdd33a3837c786ed81fe1d8 SHA512 e29c8e037b651310cd8c937ee542b5d1d52e2ebd4b7ee475de87dfbebc47c40c8576a44c00a7d2ce2bcfeee1f13eb942ce1c28a31ae5e779cc5e6f06ca9d6485 DIST nuitka-4.0.8.tar.gz 4422692 BLAKE2B c25756242cc778f63d008c76f23a145fa42187bc7a1c51eb95c36547ef819291618a906f33f676473cce9a0877564e8d7184a2f5c137931fd9f1e5ff8715f4c9 SHA512 570564d3ef298b8183b7966408a1d024c0f2218fc613936407a341b5b7771dde35382dedaf9c0976cc9b90db95dbddeba0fb824d421d10d29b2187f3034b9179 +DIST nuitka-4.1.tar.gz 4543258 BLAKE2B 37bb8d5b5a8cb89cf3f8deadb3f995995c2dfe5cac928a14fca857e61aa4e6aa0c3a842c2453346032965cbf2d600a20f1d245f256d41ee55a4abe94d3f7d898 SHA512 d5b5b56214e5ceeffe0fd0b0456e197f094ebec22573c53b998021538362ac6bceaeb8ef25a2e15c8362825b2ad8e3ba2ed6080199e09703ef5e29f53796411d diff --git a/dev-python/nuitka/nuitka-4.0.7.ebuild b/dev-python/nuitka/nuitka-4.1.ebuild index 716e2509a99e..716e2509a99e 100644 --- a/dev-python/nuitka/nuitka-4.0.7.ebuild +++ b/dev-python/nuitka/nuitka-4.1.ebuild diff --git a/dev-python/pandas/Manifest b/dev-python/pandas/Manifest index 7631b6c9eda4..fa21465ae279 100644 --- a/dev-python/pandas/Manifest +++ b/dev-python/pandas/Manifest @@ -1,3 +1,5 @@ DIST pandas-2.3.3.tar.gz 4495223 BLAKE2B c31604617900d439020dcdd66fcbca1cf3b720b6f4dd8ea51891946ad04774754cf7636a2ffb9fe746d15911a88153d36d4033b6a0207e9c7a1653a0f677570d SHA512 4179acb9fd9d1c5d543bb19b22483b4c2b17a36d5b10270a02ff4d8370b43c16a93673bf5509a5b1d1c960c0fde9238bbbf5b309c6745d2abf3d934535f3fd85 DIST pandas-3.0.2.tar.gz 4645855 BLAKE2B 9d8ccd481d42040a45b990c84acd1ef7ca842bc3e0f80827875aabdf8c4278a2b2f0cedacfd8b73dca4ef36037162fef63e1feffb46d4522c6cc794d9a2052d6 SHA512 71a50f40812f0a5ac80068cc79fb3ec8685f9e21b15ba6cda136465b1258aef5fd8ab4d9b677ef53c6b3f3e8d9939a058457594754c34f9aa6748fc641720ab3 DIST pandas-3.0.2.tar.gz.provenance 9326 BLAKE2B 11ae41e6c60a15415cbed7f43ecd90a23bd8a465588c73002d197706fc2d5680cfb1471a0f5061d27310f01101c99514ed7088649101d49515722093cd54d7a5 SHA512 402b810942056a62eba500802b1bdf5e8db28df3b47e0fb71340a360ee2c2348a0875b877f72e7c6de21f04980d72a8f547838e050a9bbcbd7bcfea0eb117b02 +DIST pandas-3.0.3.tar.gz 4651414 BLAKE2B 8e3da7b646d67025f7e00baff960658326e973a270a6432210e60a1044b33c317a00a8755c5633c64faa337cd66d8fbfb2cfe768916254a7b55f6fc7a49ebc8f SHA512 000b859c42aabf9364bf4e35fcd728a7a4ff4cfdbc7d2d40b4d3739087e1d03704438a2705e9e04a4025f6d98559bbe4c2f4f695c91b2ba4c4347b0444d48202 +DIST pandas-3.0.3.tar.gz.provenance 9318 BLAKE2B f414b7ef172a368dfd3671d637ab14856b62ae5eea6f630a0d638edcda83799e319674e2e03fd6a5d495baec81914d5cb8fce1335effdf8a295b83e812a3ad8a SHA512 f417d27fe7fc0894f93656196fc65f72bd9b7ed0f287267e2da4624e9c2c3e12070135a011aef379e415a98939cf459bf8e6cbb4a0bd93bcfde5683d79d0140e diff --git a/dev-python/pandas/pandas-3.0.3.ebuild b/dev-python/pandas/pandas-3.0.3.ebuild new file mode 100644 index 000000000000..feeb308f7289 --- /dev/null +++ b/dev-python/pandas/pandas-3.0.3.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=meson-python +PYPI_VERIFY_REPO=https://github.com/pandas-dev/pandas +PYTHON_COMPAT=( python3_{10..14} ) +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" +if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~amd64 ~arm64 ~riscv ~x86" +fi +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.14.2[${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/qtpy-2.2.0[${PYTHON_USEDEP}] + x11-misc/xclip + x11-misc/xsel + ) + ) +" +DEPEND=" + >=dev-python/numpy-2.3.3:=[${PYTHON_USEDEP}] +" +COMMON_DEPEND=" + ${DEPEND} + >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}] +" +BDEPEND=" + ${COMMON_DEPEND} + >=dev-build/meson-1.2.1 + >=dev-python/cython-3.1.0[${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.14.2[${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} + !minimal? ( ${RECOMMENDED_DEPEND} ) + full-support? ( ${OPTIONAL_DEPEND} ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local EPYTEST_IGNORE=( + # missing test data + pandas/tests/io/pytables/test_compat.py + ) + # Note; deselects relative to pandas/ + local EPYTEST_DESELECT=( + # require -Werror + # https://github.com/pandas-dev/pandas/pull/63436 + tests/config/test_config.py::TestConfig::test_case_insensitive + + # deprecation warning + 'tests/computation/test_eval.py::TestEval::test_scalar_unary[numexpr-pandas]' + ) + + 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 + + case ${EPYTHON} in + python3.14) + EPYTEST_DESELECT+=( + # crashing + tests/resample/test_resampler_grouper.py::test_tab_complete_ipython6_warning + ) + ;; + esac + + 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}" +} + +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/qtpy x11-misc/xclip x11-misc/xsel +} diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest index 249c1f3cd832..661749a52d97 100644 --- a/dev-python/pbs-installer/Manifest +++ b/dev-python/pbs-installer/Manifest @@ -1,2 +1,4 @@ +DIST pbs_installer-2026.5.10.tar.gz 72513 BLAKE2B c20f78d1e026c94b4f9a09036fde6eb5fb43a8575a44618a335e34da6e5f82f72317c0e5ce413d149846a696c687f365847daaf7a416491e0b008814db9cc9d4 SHA512 5cc33c12789a4e31ccbad598da5694e939de8e3614db0d55cd3e99d666543df2946351b10593379f88d3eae493ce7ea97bb24a666a206577b5c0731da30e9e86 +DIST pbs_installer-2026.5.10.tar.gz.provenance 9932 BLAKE2B 3d366fd8f3306ce1e66c338bec1cb776b925ef37081366a946182ce68b3781b0ebca32eba55d29e36f734d1554b34486963116b2360d77693313a53fe78c3640 SHA512 c5394edb6f18fd767af548242ba97738e4a1e062d3467abb30060b7950b305e78895311811abb8389d247727f3eb2478c0efeaa6d1e6970c292c6c4ae7f95506 DIST pbs_installer-2026.5.8.tar.gz 71877 BLAKE2B b85346c84c7e2b8859c44a13e844f015feb6f77938c853aa2f31f6572e23bddc8f4fcff2c0a21c814f20517953ed0f273bd5f6cb2ce1bcca0eb20bad8c78e674 SHA512 e3c3fad7358af454c08e31132a74d77afcbb3400e71c31d87440b194e21f00ebb7c663732329e3f5cad224c99d46a84c6958451379c2f0751afe1b372328be0d DIST pbs_installer-2026.5.8.tar.gz.provenance 9611 BLAKE2B e5191bb1aaf8f1d3cb427ebe6e27186eeac4392db5cdf4bfefdea45361ac490e198e3a30e8f66c42d2be6d317aba4ec477e5c6cebc4cd5d8889b9358cc37eb98 SHA512 d8e146b3939996443e87d1f9ee0814863c9d0274f5390868245bebdc7ac9f379d7fcbd69c6e6a9e65be68b3dc105b05263eae14745b5ad44fb9c23efd6d60fe8 diff --git a/dev-python/pbs-installer/pbs-installer-2026.5.10.ebuild b/dev-python/pbs-installer/pbs-installer-2026.5.10.ebuild new file mode 100644 index 000000000000..557165ae6a2a --- /dev/null +++ b/dev-python/pbs-installer/pbs-installer-2026.5.10.ebuild @@ -0,0 +1,33 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pdm-backend +PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Installer for Python Build Standalone" +HOMEPAGE=" + https://pypi.org/project/pbs-installer/ + https://github.com/frostming/pbs-installer/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +# httpx is needed to download builds +# zstandard is needed to install them +RDEPEND=" + $(python_gen_cond_dep ' + >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] + ' 3.11 3.12 3.13) + <dev-python/httpx-1[${PYTHON_USEDEP}] + >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests import-check diff --git a/dev-python/pillow/metadata.xml b/dev-python/pillow/metadata.xml index ecc6f5f5ac40..6e2cce603760 100644 --- a/dev-python/pillow/metadata.xml +++ b/dev-python/pillow/metadata.xml @@ -9,7 +9,13 @@ <remote-id type="cpe">cpe:/a:python:pillow</remote-id> </upstream> <use> - <flag name="imagequant">Build with Image Quantization Library support</flag> + <flag name="imagequant"> + Build with Image Quantization Library support + </flag> + <flag name="raqm"> + Support setting text direction, language or font features. + Requires <pkg>media-libs/raqm</pkg>. + </flag> </use> <origin>gentoo-staging</origin> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/pillow/pillow-12.2.0-r1.ebuild b/dev-python/pillow/pillow-12.2.0-r1.ebuild new file mode 100644 index 000000000000..9bc308a40218 --- /dev/null +++ b/dev-python/pillow/pillow-12.2.0-r1.ebuild @@ -0,0 +1,178 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +# setuptools wrapper +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_REQ_USE='tk?,threads(+)' + +inherit distutils-r1 multiprocessing toolchain-funcs virtualx + +MY_PN=Pillow +MY_P=${MY_PN}-${PV} + +# upstream always fetches from main +TEST_IMAGE_COMMIT="7077675d2cda485d63de4aefe0fefbf6f655c5a0" + +DESCRIPTION="Python Imaging Library (fork)" +HOMEPAGE=" + https://python-pillow.github.io/ + https://github.com/python-pillow/Pillow/ + https://pypi.org/project/pillow/ +" +SRC_URI=" + https://github.com/python-pillow/Pillow/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + test? ( + https://github.com/python-pillow/test-images/archive/${TEST_IMAGE_COMMIT}.tar.gz + -> pillow-test-images-${TEST_IMAGE_COMMIT}.gh.tar.gz + ) +" +S=${WORKDIR}/${MY_P} + +LICENSE="HPND" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="avif examples imagequant +jpeg jpeg2k lcms raqm test tiff tk truetype webp xcb zlib" +REQUIRED_USE=" + raqm? ( truetype ) + test? ( jpeg jpeg2k lcms tiff truetype ) +" +RESTRICT="!test? ( test )" + +DEPEND=" + avif? ( media-libs/libavif:= ) + imagequant? ( media-gfx/libimagequant:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + jpeg2k? ( media-libs/openjpeg:2= ) + lcms? ( media-libs/lcms:2= ) + tiff? ( media-libs/tiff:=[jpeg,zlib] ) + truetype? ( + media-libs/freetype:2 + media-libs/harfbuzz:= + raqm? ( media-libs/raqm:= ) + ) + webp? ( media-libs/libwebp:= ) + xcb? ( x11-libs/libxcb ) + zlib? ( virtual/zlib:= ) +" +RDEPEND=" + ${DEPEND} + dev-python/olefile[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/pybind11[${PYTHON_USEDEP}] + >=dev-python/setuptools-77[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + virtual/pkgconfig + test? ( + dev-python/defusedxml[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[png] + ) + ) +" + +EPYTEST_PLUGINS=( pytest-timeout ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + local PATCHES=( + # https://github.com/python-pillow/pillow/pull/7634 + "${FILESDIR}/${PN}-10.2.0-cross.patch" + ) + + distutils-r1_src_prepare + + if use test; then + mv "${WORKDIR}/test-images-${TEST_IMAGE_COMMIT}"/* \ + Tests/images || die + fi + + # just in case + rm -r src/thirdparty/{fribidi-shim,raqm} || die +} + +usepil() { + usex "${1}" enable disable +} + +python_configure_all() { + cat >> setup.cfg <<-EOF || die + [build_ext] + debug = True + disable_platform_guessing = True + $(usepil avif)_avif = True + $(usepil imagequant)_imagequant = True + $(usepil jpeg)_jpeg = True + $(usepil jpeg2k)_jpeg2000 = True + $(usepil lcms)_lcms = True + $(usepil raqm)_raqm = True + $(usepil tiff)_tiff = True + $(usepil truetype)_freetype = True + $(usepil webp)_webp = True + $(usepil xcb)_xcb = True + $(usepil zlib)_zlib = True + EOF + + tc-export PKG_CONFIG + export MAX_CONCURRENCY=$(makeopts_jobs) +} + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # TODO (is clipboard unreliable in Xvfb?) + Tests/test_imagegrab.py::TestImageGrab::test_grabclipboard + # requires xz-utils[extra-filters]? + Tests/test_file_libtiff.py::TestFileLibTiff::test_lzma + ) + + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + Tests/test_imagefile.py::TestImageFile::test_parser + Tests/test_file_pdf.py::test_pdf_append_to_bytesio + ) + ;; + esac + + case ${ARCH} in + ppc) + EPYTEST_DESELECT+=( + # https://github.com/python-pillow/Pillow/issues/7008 + # (we've reverted the upstream patch because it was worse + # than the original issue) + Tests/test_file_libtiff.py::TestFileLibTiff::test_exif_ifd + ) + ;; + esac + + "${EPYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}" + # leak tests are fragile and broken under xdist + # nonfatal implied by xvfb + nonfatal epytest -k "not leak" || die "Tests failed with ${EPYTHON}" +} + +python_install() { + python_doheader src/libImaging/*.h + distutils-r1_python_install +} + +python_install_all() { + if use examples ; then + docinto example + dodoc docs/example/* + docompress -x /usr/share/doc/${PF}/example + fi + distutils-r1_python_install_all +} diff --git a/dev-python/pygobject/Manifest b/dev-python/pygobject/Manifest index 5205a7601e5d..129669c075b5 100644 --- a/dev-python/pygobject/Manifest +++ b/dev-python/pygobject/Manifest @@ -2,6 +2,8 @@ DIST pygobject-3.50.1.tar.gz 1081846 BLAKE2B 7c6fd07e913f64d925838efc6fa0603fef2 DIST pygobject-3.50.2.tar.gz 1085854 BLAKE2B 03dc6dc4bd6533d23b8f88705ef371faedf592d98405f91969b910a44a253b29bda6367a9d4f7b7d2dbea7d695a0d1dae6cfc004553f16ab4bbc0e2017c8b591 SHA512 2daed81cfcdcefbd0fc9ffb7ce80c1daa223ecc8266a29a535e47dffd1656fb54dcead1a06c943e08ca92d28ac58ed7916b3f40105b17be7e1f272b9f893f15f DIST pygobject-3.52.3.tar.gz 1235825 BLAKE2B f9d95ff9e12b6d6fb5c36d1528ff4ef45e6799316ac21b0f79364dc438bf4e0e6670489f23e0ca4325fc21d16cc2d96fe6aff61f71b8bfe768df2c487717e6df SHA512 06085df458076120017ace7a029ac6c00757ae1882a2a50041aadd7f4c2a329a0fb4d18dde02a481c1f4d3acecbc9d8f473f4ae23fbbfc4f885f75bbc7847f24 DIST pygobject-3.52.3_0a8b2c56331a31d7f7096faaa1c1c26467b51c15_pythoncapi-compat.gh.tar.gz 50124 BLAKE2B 67bb1e60d10d72b146ae2f8ca0113939916fa67a3c71c3658343ff3742315768471e50c0254a3f9488031297d6697dbb0e8541bfe72e8b0754ede09fb9d65da8 SHA512 3fff69f471e28b47bbb537d31d182180631090c00aaf45931aad128f4cb700cdfd519ce560610b7e57132ad7d172b8f2bc4cd16cf748f218dafdadd15fc48718 +DIST pygobject-3.52.4.tar.gz 1247281 BLAKE2B eb35e3ba58d9bcfc84e724b7dded816ed3094f3b64f5b8785cc9ca656973c0f4e1518c2ad9d2008edd20da1ca6056daac0658464a4619c4b19724de6efb17618 SHA512 14779aa57ab57b62791fbe2c0e00649108e650a13ce4bb0631a5b7aece9e5094ba61c682e7ce462acecc01cd53e969ac84f783807ac5cad95e07673a1b92c1cf +DIST pygobject-3.52.4_0a8b2c56331a31d7f7096faaa1c1c26467b51c15_pythoncapi-compat.gh.tar.gz 50124 BLAKE2B 67bb1e60d10d72b146ae2f8ca0113939916fa67a3c71c3658343ff3742315768471e50c0254a3f9488031297d6697dbb0e8541bfe72e8b0754ede09fb9d65da8 SHA512 3fff69f471e28b47bbb537d31d182180631090c00aaf45931aad128f4cb700cdfd519ce560610b7e57132ad7d172b8f2bc4cd16cf748f218dafdadd15fc48718 DIST pygobject-3.54.5.tar.gz 1274658 BLAKE2B 7541502dd4d0f62680d12ebb00f1039c6b33e9c1996500a3d0e54c6c87d719e99e32469d68cfdb04e8e8eaed70e2461739ea176e7bf98100f2329c7084425b5e SHA512 0036068922de03dfa15335b29eb27a9cfd85310b66eae4eb6cb895c427a9fbf3c65462930e981f03b9394bede6fe97639e0bdbee640373188a9c51ad03b65041 DIST pygobject-3.56.2.tar.gz 1409059 BLAKE2B 9d0ea5b94edc966d8355169d85e79ea0446544f7560832e2be85314c30e739ed71efa877c9111a2a08a388edc9353b6ea5a8678acf681dcc1612ed62493bcaf3 SHA512 8be3ac43fad2aba79bfea05616f66511378fe9b316fe33d9c622af5c7b1ab260e4a513a5f6efe26e261eb6c05763391b327b58563cc551cbd2f25266e8a1826a DIST pygobject-3.56.3.tar.gz 1411853 BLAKE2B 032644b8a7b3e366e7c8ea9943f5a63ddca27a1c2c43a007c7e0e15dff7611b0f210e0ca43fd1e9ed63aa74f9d346becc489ec943bbb6fd9da6af2ed8a3b97fb SHA512 7267e04c02436fb88eddac463546275c7ebda7295f4d250c27a37114a589676d340c0876ad953523c20dd52cfd7d8883cefd5c1b3dd7115a96645f1a32ba0d99 diff --git a/dev-python/pygobject/pygobject-3.52.4.ebuild b/dev-python/pygobject/pygobject-3.52.4.ebuild new file mode 100644 index 000000000000..9dd3919099c2 --- /dev/null +++ b/dev-python/pygobject/pygobject-3.52.4.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=no +GNOME_TARBALL_SUFFIX="gz" +PYTHON_COMPAT=( python3_{10..14} ) + +inherit gnome.org meson virtualx xdg distutils-r1 + +DESCRIPTION="Python bindings for GObject Introspection" +HOMEPAGE=" + https://pygobject.gnome.org/ + https://gitlab.gnome.org/GNOME/pygobject/ +" +COMMIT=0a8b2c56331a31d7f7096faaa1c1c26467b51c15 +SRC_URI+=" + https://github.com/python/pythoncapi-compat/archive/${COMMIT}.tar.gz -> \ + ${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz +" +LICENSE="LGPL-2.1+" +SLOT="3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +IUSE="+cairo test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/glib-2.80:2 + >=dev-libs/gobject-introspection-1.84:= + dev-libs/libffi:= + cairo? ( + >=dev-python/pycairo-1.16.0[${PYTHON_USEDEP}] + x11-libs/cairo[glib] + ) +" +DEPEND=" + ${RDEPEND} + test? ( + >=app-accessibility/at-spi2-core-2.46.0[introspection] + dev-python/pytest[${PYTHON_USEDEP}] + x11-libs/gdk-pixbuf:2[introspection,jpeg] + x11-libs/gtk+:3[introspection] + x11-libs/pango[introspection] + ) +" +BDEPEND=" + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/Skip-test-using-dbus-in-sandbox.patch" + "${FILESDIR}/Skip-test-detecting-cycle-among-base-classes-typeerr.patch" +) + +src_unpack() { + default + unpack "${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz" +} + +src_prepare() { + default + find "${S}/subprojects/pythoncapi-compat" -mindepth 1 ! -name meson.build -exec rm -vrf {} + || die + mv -v "${WORKDIR}/pythoncapi-compat-${COMMIT}"/* "${S}/subprojects/pythoncapi-compat" || die +} + +python_configure() { + local emesonargs=( + $(meson_feature cairo pycairo) + $(meson_use test tests) + -Dpython="${EPYTHON}" + ) + meson_src_configure +} + +python_compile() { + meson_src_compile +} + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local -x GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs + local -x GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x XDG_CACHE_HOME="${T}/${EPYTHON}" + + if [[ ${EPYTHON} == python3.14* ]] ; then + # https://gitlab.gnome.org/GNOME/pygobject/-/issues/694 + local -x PYTEST_ADDOPTS="-k 'not (ref_count or has_two_refs)'" + fi + + meson_src_test --timeout-multiplier 3 || die "test for ${EPYTHON}" +} + +python_install() { + meson_src_install + python_optimize +} diff --git a/dev-python/pytest-jobserver/pytest-jobserver-1.1.0.ebuild b/dev-python/pytest-jobserver/pytest-jobserver-1.1.0.ebuild index 61e346c33dfd..1edcc7e5fc5e 100644 --- a/dev-python/pytest-jobserver/pytest-jobserver-1.1.0.ebuild +++ b/dev-python/pytest-jobserver/pytest-jobserver-1.1.0.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~s390 ~x86" RDEPEND=" dev-python/pytest[${PYTHON_USEDEP}] diff --git a/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild b/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild index d71946fd650b..70d347a6c379 100644 --- a/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild +++ b/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild @@ -1,10 +1,8 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -# mgorny: py3.14 fails on hypothesis tests for me (inside crash) -# I suppose we can skip them but let's test a revdep first PYTHON_COMPAT=( python3_{10..14} ) DISTUTILS_USE_PEP517=setuptools diff --git a/dev-python/python-discovery/Manifest b/dev-python/python-discovery/Manifest index 3bab0761b17c..f7ebe3477ba6 100644 --- a/dev-python/python-discovery/Manifest +++ b/dev-python/python-discovery/Manifest @@ -2,3 +2,5 @@ DIST python_discovery-1.2.2.tar.gz 58872 BLAKE2B 0177a23499cd59aef5c7489694a53c7 DIST python_discovery-1.2.2.tar.gz.provenance 9263 BLAKE2B e405c7db48810a177671144bffdc28c8903b74ed846f2f5bcab47134e8e795f061ad3394779551a045feb4debaf2704567547cafefafcbd0a9debecb6ec1425e SHA512 c70313361c0660297335fdce23a7af12eb2f67b7146126ab6bfe3cf783645155e368bc68126b853be91b968da9917e005ecc7f6025a62fa14d1ffc735c31bc85 DIST python_discovery-1.3.0.tar.gz 63925 BLAKE2B 58f80736df5a3187edea63949cc326be9e4c88e7df7be99aae04fade18666b679894db3318d0ec31a6724df9be43bfde503d0643f782bd73c153161105397077 SHA512 dc7567834d23b7879d144be79c35ec343058909ba81dade3921bdea64fdb921ec9b8a354da5aecad3013b9617f5a186f0d4aff5a59c5538a1f0fade9316fc18f DIST python_discovery-1.3.0.tar.gz.provenance 9310 BLAKE2B 1af3f9f500a8b186e2548bb47ab2bf18376e059712c2d3042138300038b5f254f4daf30bce4dfe6c14f0760fc46f3df71d4efcfda4b50cf02dce866a1ac2b745 SHA512 29626c050fe014cb2ef8e8fd4f738dda7edec6b3b412a22415ff05be81fe9a86f1727073e254e4ae860b47a8c8ea41832335e296f4d8701523b29ce8732efbb7 +DIST python_discovery-1.3.1.tar.gz 68011 BLAKE2B ba0e1e7320a8d5834c80f6218c48badd1668e189daa8d5b4d616dc24b275fa07b154381ff683fb48ac4400004cb1106d46c70b2b1b470eb6b948b0799c9b1e36 SHA512 af8a90cf411d6c914ce12e7f198e92bc166100eff1dbe814b1731abc8913abf7a8a0d44a269bd86985cc19e9235cc3995056014f7bdd02dba5e62af4117bdf47 +DIST python_discovery-1.3.1.tar.gz.provenance 9549 BLAKE2B 46c2c90661a8f0f59f6e33ef9bdcfebf99f194c7d27b5f76bdb9a6c4d2f92d8c1d1eb2fa922f37a8dee7b800eef0685ca49ac2221253c670c4fa3171ac9ec0bf SHA512 df2a72238637c04fa7d7ba316a82a18bf1c057bd21fea7a4278d26a7eec156614c56ea47209ce875de42d82a5dce84d176e223e2504edf1ef6ab89713f11af5a diff --git a/dev-python/python-discovery/python-discovery-1.3.1.ebuild b/dev-python/python-discovery/python-discovery-1.3.1.ebuild new file mode 100644 index 000000000000..7bf748143147 --- /dev/null +++ b/dev-python/python-discovery/python-discovery-1.3.1.ebuild @@ -0,0 +1,57 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/tox-dev/python-discovery +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python interpreter discovery" +HOMEPAGE=" + https://github.com/tox-dev/python-discovery/ + https://pypi.org/project/python-discovery/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~x86" + +RDEPEND=" + >=dev-python/filelock-3.15.4[${PYTHON_USEDEP}] + <dev-python/platformdirs-5[${PYTHON_USEDEP}] + >=dev-python/platformdirs-4.3.6[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + >=dev-python/setuptools-75.1[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-mock ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=() + + case ${EPYTHON} in + python3.*t) + EPYTEST_DESELECT+=( + # TODO + tests/test_py_info_extra.py::test_satisfies_path_not_abs_basename_match + ) + ;; + python3.15) + EPYTEST_DESELECT+=( + # TODO + tests/test_discovery.py::test_predicate_with_fallback_specs + ) + ;; + esac + + epytest +} diff --git a/dev-python/pyxattr/pyxattr-0.8.1.ebuild b/dev-python/pyxattr/pyxattr-0.8.1.ebuild index 0713ea5019b7..e47444574cb4 100644 --- a/dev-python/pyxattr/pyxattr-0.8.1.ebuild +++ b/dev-python/pyxattr/pyxattr-0.8.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/dev-python/reportlab/Manifest b/dev-python/reportlab/Manifest index f053889db5e5..37b9fb848aa0 100644 --- a/dev-python/reportlab/Manifest +++ b/dev-python/reportlab/Manifest @@ -1,3 +1,4 @@ DIST pfbfer-20070710.zip 677333 BLAKE2B 100214476a361a5e5d1f3da0999591345f6e3a3f8c6bc3f6a3e9eca734190c6259758a43302c6e41254d33491fe535eb7d5dd07aa9727c912424bebc31fc18df SHA512 6fd4a5d955464b10d13a7b748703450c1fe120d5ed09e8cfa1b4dfa9c183c59fe001df29433af551796b0df62544b7ddc364f9bb1bdcc2cd300434340ffcc4f2 DIST reportlab-4.4.10.tar.gz 3714962 BLAKE2B aecd293b9db9a303599b56ae906a0da17dde5fcd743baeee605f70d0e1e2e033a69163390b84bfe13b592b0e77ee86c3915dfb82d51a8e5ce446cb133fe7f1a9 SHA512 568d1725826b20d9a1286ef1477dac157b7e291aae7e17605633776693677dbbd4d49a6385f5ed456db31686651306e4b62e61840f11773b13dc6704119010a9 DIST reportlab-4.5.0.tar.gz 3914127 BLAKE2B b20824376e34aa4b3044521fcbfab799b2ec4cd72e3cae22335387daed43eb2dd0a5213de6cd8203dfa846fb976a16e048b59249e0492f2f6d8c10af7ffe1d91 SHA512 7f9ecf4d0b94b22c4d3c39cf61de8a8eadbea5f4783550bd8cefbe2368ec8e40ca69593710aeb62c9c0e26a8d35143c5ca9f6b8c360c71ebb0ab3bd8727a0171 +DIST reportlab-4.5.1.tar.gz 3939748 BLAKE2B 652a9b82d2a19376876a91f421a5d0f5f39cd90480bd806098c1c51fecbd47ff6fd55b97941988a029c4ed9f1ac859d0f0930d1953d313931aa06e46dfe38c7c SHA512 ff5f62cd01175491e54e81f8bd94e26010d5ae2b066de8e089d21f20d229a54b86b8364e9ffdd78fce75950f2137eb805fd5be7950b78a6bb2dde79009d1f49d diff --git a/dev-python/reportlab/reportlab-4.5.1.ebuild b/dev-python/reportlab/reportlab-4.5.1.ebuild new file mode 100644 index 000000000000..5a460e791a12 --- /dev/null +++ b/dev-python/reportlab/reportlab-4.5.1.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2026 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_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Tools for generating printable PDF documents from any data source" +HOMEPAGE=" + https://www.reportlab.com/ + https://pypi.org/project/reportlab/ +" +SRC_URI+=" + https://www.reportlab.com/ftp/fonts/pfbfer-20070710.zip +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/charset-normalizer[${PYTHON_USEDEP}] + dev-python/pillow[tiff,truetype,jpeg(+),${PYTHON_USEDEP}] +" +BDEPEND=" + app-arch/unzip +" + +distutils_enable_sphinx docs/source + +src_unpack() { + unpack ${P}.tar.gz + cd ${P}/src/reportlab/fonts || die + unpack pfbfer-20070710.zip +} + +src_configure() { + cat > local-setup.cfg <<-EOF || die + [OPTIONS] + no-download-t1-files = 1 + EOF +} + +python_test() { + pushd tests >/dev/null || die + "${EPYTHON}" runAll.py --post-install --verbosity=2 || + die "Testing failed with ${EPYTHON}" + popd >/dev/null || die +} diff --git a/dev-python/requests-cache/Manifest b/dev-python/requests-cache/Manifest index fa21db70952b..e97356b5ae9f 100644 --- a/dev-python/requests-cache/Manifest +++ b/dev-python/requests-cache/Manifest @@ -1 +1,2 @@ DIST requests-cache-1.3.1.gh.tar.gz 1812337 BLAKE2B 302d9c6f1287901b189c74392ba0af063bf0e0ed424b85575e1cd98405f0e51225cf43f4b745d1aa89fd892721e6d2722796d77ae52bec684cee546679afb15b SHA512 68561a4b004ad99d69062a0237272ea772694df971facb5ab28388e36695e2307d21bc0eb70ef094acefaeafc586fb19151e7e3cb16deeff724e21bb035139d6 +DIST requests-cache-1.3.2.gh.tar.gz 1827145 BLAKE2B 360ecabd8149071578ebb0f0dfef00040b64d2714e6f92c3c47027cfca7802627f0e7bd84a16b7dc04158424dc9037860d02c6b462047c63c0a4bf82ec5fa327 SHA512 4acbb40180bab12c684370dfcbca9049fc2ee4766624b9d85fc88cfdf03a6f24f577bb167e2ab78134e76ac73009605887d8d5fdb258f193f6066f86226817a4 diff --git a/dev-python/requests-cache/requests-cache-1.3.2.ebuild b/dev-python/requests-cache/requests-cache-1.3.2.ebuild new file mode 100644 index 000000000000..8d25f102f64f --- /dev/null +++ b/dev-python/requests-cache/requests-cache-1.3.2.ebuild @@ -0,0 +1,87 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +# TODO: see if we can remove pypy3.11, because of the segfaults +PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_REQ_USE="sqlite" + +inherit distutils-r1 optfeature + +DESCRIPTION="Persistent cache for requests library" +HOMEPAGE=" + https://pypi.org/project/requests-cache/ + https://github.com/requests-cache/requests-cache/ +" +SRC_URI=" + https://github.com/requests-cache/requests-cache/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/attrs-21.2[${PYTHON_USEDEP}] + >=dev-python/cattrs-22.2[${PYTHON_USEDEP}] + >=dev-python/platformdirs-2.5[${PYTHON_USEDEP}] + >=dev-python/requests-2.22[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.5[${PYTHON_USEDEP}] + >=dev-python/url-normalize-2.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/itsdangerous[${PYTHON_USEDEP}] + dev-python/responses[${PYTHON_USEDEP}] + >=dev-python/rich-10.0[${PYTHON_USEDEP}] + >=dev-python/ujson-5.4[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +EPYTEST_PLUGINS=( pytest-httpbin requests-mock ) +: ${EPYTEST_TIMEOUT:=60} +distutils_enable_tests pytest + +python_test() { + local EPYTEST_IGNORE=( + # These require extra servers running + tests/integration/test_dynamodb.py + tests/integration/test_gridfs.py + tests/integration/test_mongodb.py + tests/integration/test_redis.py + ) + local EPYTEST_DESELECT=( + # Requires Internet access + tests/integration/test_upgrade.py::test_version_upgrade + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # "database is locked", upstream probably relies on GC + # too much + tests/integration/test_sqlite.py + # random segfaults + tests/integration/test_filesystem.py + ) + ;; + esac + + local -x USE_PYTEST_HTTPBIN=true + epytest +} + +pkg_postinst() { + optfeature "redis backend" "dev-python/redis" + optfeature "MongoDB backend" "dev-python/pymongo" + + optfeature "JSON serialization" "dev-python/ujson" + optfeature "YAML serialization" "dev-python/pyyaml" + optfeature "signing serialized data" "dev-python/itsdangerous" +} diff --git a/dev-python/requests/Manifest b/dev-python/requests/Manifest index 12551c41d58d..cd00b980b2c7 100644 --- a/dev-python/requests/Manifest +++ b/dev-python/requests/Manifest @@ -1,2 +1,4 @@ DIST requests-2.33.1.tar.gz 134120 BLAKE2B 290c77a0f0d90d04638be623f9a32955902869f89fd6eb8c2e2c3b15cdeb28455ec331c84bdba16d6aa69cb02d8567514a245280a0adf64f653f29aacb944f44 SHA512 058dc417085f8be99c2ea79fffecce833068d9342c925a8d8bd1b10c171e52fda5d4bdd8ae1a93b05b111e275c29b705ec79ac0c365fb10f6f81c49e6d839483 DIST requests-2.33.1.tar.gz.provenance 9256 BLAKE2B 5257b1e8dac44c85b121e04d9591b73d8e2a95ba8ad7d5a45e954d0d676a44b877da0f800bcf934e843ceaf19522bb81eb616c646ad4ac56ee6c3b7ef74a5913 SHA512 5239edd498ff5c27a92a950b75985da8c59064f7abc04809ab71c54e7f3b8b82a268a291b0431560e5fe70266f0fe5a6151fb804c093a9f99c6a6138ba6b80fb +DIST requests-2.34.0.tar.gz 142436 BLAKE2B 3aa791f8ebc58f6cd0f51883653a6860ba6503071abdd267d3473e6fa9d325aeb3bef46890d4551f946d867482b2396a2328653b08ea4a8e1ef4a7a5a4c7fbbd SHA512 4e3b5c40489b682225667cf46e36058bc22dce6b580e3d01962ea7fa46517e15a775458ebeb970b53fb2f87048f3f09bf09ac599b66c36827622fea7c17e83b6 +DIST requests-2.34.0.tar.gz.provenance 9389 BLAKE2B b25418a2b8160ac911e40d74d6f5e5359752ed956c683acb06e6dc90b13eac198cce8f389f9e6a1ed68f5f7a0317e29bb3723fbfc4a71e6bcf08f604adc15d39 SHA512 8b6387f8c81e3b1d160498992af49991e50f9c85f064a9d4b88b2346f9524d5cc6e1f996b2b347a351b9681d51e1ba28cffb8d51c53d7143fdea99943d953ad1 diff --git a/dev-python/requests/requests-2.34.0.ebuild b/dev-python/requests/requests-2.34.0.ebuild new file mode 100644 index 000000000000..6914a45b50a2 --- /dev/null +++ b/dev-python/requests/requests-2.34.0.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/psf/requests +PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP library for human beings" +HOMEPAGE=" + https://requests.readthedocs.io/ + https://github.com/psf/requests/ + https://pypi.org/project/requests/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="socks5 test-rust" + +RDEPEND=" + >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] + <dev-python/charset-normalizer-4[${PYTHON_USEDEP}] + <dev-python/idna-4[${PYTHON_USEDEP}] + <dev-python/urllib3-3[${PYTHON_USEDEP}] + socks5? ( >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) +" + +BDEPEND=" + test? ( + dev-python/httpbin[${PYTHON_USEDEP}] + >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +EPYTEST_PLUGINS=( pytest-{httpbin,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # remove useless dependency check spam + sed -i -e '/urllib3_version_list =/i\ + return' src/requests/__init__.py || die +} + +python_test() { + local EPYTEST_DESELECT=( + # Internet (doctests) + requests/__init__.py::requests + requests/api.py::requests.api.request + requests/models.py::requests.models.PreparedRequest + requests/sessions.py::requests.sessions.Session + # require IPv4 interface in 10.* range + tests/test_requests.py::TestTimeout::test_connect_timeout + tests/test_requests.py::TestTimeout::test_total_timeout_connect + ) + + if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/test_requests.py::TestRequests::test_https_warnings + ) + fi + + epytest +} diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest index f007b010f72e..c765b87081f2 100644 --- a/dev-python/selenium/Manifest +++ b/dev-python/selenium/Manifest @@ -3,8 +3,10 @@ DIST selenium-4.35.0.tar.gz 907991 BLAKE2B e2d0baade499b41cdb23bdbae0059163fb581 DIST selenium-4.41.0.tar.gz 937872 BLAKE2B fd176e710970da5435b2d2daad90ad1f6a567dd77d9cfe0cb6980612155a5194c6c80ba7be444e8baade758a91dc2f9cdc6d3ce8fffcd8c31a03271e5f7dbc2c SHA512 517e38b38266e92b66bf072640777e037d1af4321a0399d665a0f2acdb76c574abf65f8e6412e7c606a4937010ffd6bff9c9f323b51c88e80d883b5c909c2de6 DIST selenium-4.42.0.tar.gz 956304 BLAKE2B f43bf9893135bc8b7bf739bccd4155db7200e1262abe0fdd311041066e1f37b7f090da64a17aa693e616bf27adc5e1897c2981356b6af4acb985b929e939be66 SHA512 36a17bd89f5ef03d5b72c981ba4b4e6b3c1173d3e211a9df8cd8fe77c48d99d6471f629dbaf9a2c476a446677b24574e1a37ce2370a4280ae0eb82003d0381ec DIST selenium-4.43.0.tar.gz 967747 BLAKE2B f0096d6a9a7d6836978f58e866b27f8b55a18ab5759ca2a90547578d36201613bb485f87dbf9f0a7a76f501d8548235d23446d0cb5cfc74a9d6f60300f297845 SHA512 48fd7223a685f9a200d52e81b56b5ccd36add26741ff67ba311e194d14e95061b3c55cf338ba8ea10cd0b2fd436092a382165631616664eb95de30e3d2394f47 +DIST selenium-4.44.0.tar.gz 993133 BLAKE2B 1c8f7f1fdfb21812569651c6086eba57455354b79ab1736d7fbfe6415affafed1f154bb21ead08a66fc5ffc638e05244a60f1ee1e85405b492ba3e84ac8b9f06 SHA512 72dabe202620ed29c9f66936827c257adf44d2f7c98a39724b1d2ef99fd7819875877f2d3cd2b1086f9e544a1f29bb3df6aa516ff8670f3701469b2ce75f5856 DIST selenium-selenium-4.34.2-python.gh.tar.gz 52515190 BLAKE2B 319a7083d5942c1962b4f48f907fea12943a403e4490f74f3cd38662f1c63f57270b27b6039a5a8f29a980540cd0dcf1d1c7560c7ac126f07e491983dc0e81ef SHA512 5ca0b6e970ded3dc93cd55a2c1af7c43063d87f57f119a011313eb7d08faa4057896a56d4eac2e13d39857c94b54f04840a053153cc39008c76cbdd33c8ddbba DIST selenium-selenium-4.35.0.gh.tar.gz 52550104 BLAKE2B b7ed0fb513cfb2ed24aa8393497b349f930739c3d24a330e5942fbaa5505f31d7086396a430776a3a28a5f65927b92bf27c0a32e8c36d893b5d62ef73151d5ef SHA512 dc73829e3b0fcb7fb7ee1cc04574b95b63d23f67974575dbd66338e14a5cb2b06f983145ce874be0d7124e8828b0a41b99c75d3befb19e04cbf8d027d0bb983a DIST selenium-selenium-4.41.0.gh.tar.gz 43597635 BLAKE2B fb24f27bf3b64d4da4a117bbb62566b6c1dd6fa85357b9db4a81f17fb5167ca1f2265a0ad8b54efeb14568477390521f5b5774e3278091fd1a0110e5e0d9ce30 SHA512 68cf0ead725d09dcaa8bfe9f239e0f8c0ca7b9dde9d11b8c22dbe53c51611534136f910bc91c9ab237e2b9c106ae06efbe0e0fa9277ef668c4a4935f74613a6c DIST selenium-selenium-4.42.0.gh.tar.gz 43696997 BLAKE2B 9836b8935586e21d487660f2031c316f9afd6d382a2c2e5f090fe40792215334da90c5d59b7debd612c8bb2146a3595624a5c9e949f84a4d551ec540c59b10e4 SHA512 89309fcadcbc7fdc110aa2a4c58e0f92f3872ff1addacc65813731aaca6ef48869346f69344731926dab84ecdd5a4a53a6968f7c2e953faa3cc4833ff9e511ff DIST selenium-selenium-4.43.0.gh.tar.gz 43705758 BLAKE2B d10a4167481924becfdc115175b7681ecda287e009288acda448cb81f081d7dc6b1789ae7cca3a8ef93dbcfb15f27bbc3f201b1b10fb9339dc2f5595221221aa SHA512 596c9a7631a25166391d92af931a660fd2bfe0994c720357e47552ca7101f6af2b578f05f160c24765ec81471b6a02af91ee7baf758c9b853d68ca7fbfa0820a +DIST selenium-selenium-4.44.0.gh.tar.gz 43755091 BLAKE2B 05a58f6cde1bf1a9cdd4aa7dc61a93bedbeed814f6b16c9876cb85879d5aa4f470db569c21b6582673a281af01637237c0e099c79d9dc6e602ceedfc57e1a04d SHA512 6b93db69b9c1196e72b0a762b64b0677d70262428fc5a8dfe8d93847588fa5b78e481e9fa195fac41279ebbe4f1dd354b1217635cabcf7fac1c964a3a8b18e7a diff --git a/dev-python/selenium/selenium-4.44.0.ebuild b/dev-python/selenium/selenium-4.44.0.ebuild new file mode 100644 index 000000000000..d44762270fc1 --- /dev/null +++ b/dev-python/selenium/selenium-4.44.0.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_TESTED=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) + +inherit distutils-r1 pypi + +# base releases are usually ${P}, followups ${P}-python +TEST_TAG=${P} +[[ ${PV} != *.0 ]] && TEST_TAG+=-python +TEST_P=selenium-${TEST_TAG} + +DESCRIPTION="Python language binding for Selenium Remote Control" +HOMEPAGE=" + https://seleniumhq.org/ + https://github.com/SeleniumHQ/selenium/tree/trunk/py/ + https://pypi.org/project/selenium/ +" +SRC_URI+=" + test? ( + https://github.com/SeleniumHQ/selenium/archive/${TEST_TAG}.tar.gz + -> ${TEST_P}.gh.tar.gz + ) +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/certifi-2026.1.4[${PYTHON_USEDEP}] + >=dev-python/trio-0.31.0[${PYTHON_USEDEP}] + >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}] + >=dev-python/urllib3-2.6.0[${PYTHON_USEDEP}] + >=dev-python/websocket-client-1.8.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + ${RDEPEND} + $(python_gen_cond_dep " + dev-python/filetype[\${PYTHON_USEDEP}] + dev-python/pytest-mock[\${PYTHON_USEDEP}] + dev-python/rich[\${PYTHON_USEDEP}] + test-rust? ( + dev-python/pytest[\${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}] + >=dev-util/selenium-manager-${PV} + net-misc/geckodriver + || ( + www-client/firefox + www-client/firefox-bin + ) + ) + " "${PYTHON_TESTED[@]}") + ) +" + +src_prepare() { + distutils-r1_src_prepare + + # do not build selenium-manager implicitly + sed -e 's:\[tool\.setuptools-rust:[tool.ignore-me:' \ + -i pyproject.toml || die + # unpin deps + sed -i -e 's:,<[0-9.]*::' pyproject.toml || die + # remove nonsense typing deps + sed -i -e '/types/d' -e '/typing/d' pyproject.toml || die +} + +python_test() { + # NB: xdist is causing random pytest crashes with high job numbers + + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON}" + return + fi + + local EPYTEST_PLUGINS=( pytest-mock ) + local EPYTEST_IGNORE=() + local EPYTEST_DESELECT=( + # expects vanilla certifi + test/unit/selenium/webdriver/remote/remote_connection_tests.py::test_get_connection_manager_for_certs_and_timeout + ) + local pytest_args=( + # https://github.com/SeleniumHQ/selenium/blob/selenium-4.8.2-python/py/test/runner/run_pytest.py#L20-L24 + # seriously? + -o "python_files=*_tests.py test_*.py" + ) + if use test-rust; then + local -x PATH=${T}/bin:${PATH} + local -x SE_MANAGER_PATH="$(type -P selenium-manager)" + + local EPYTEST_RERUNS=5 + pytest_args+=( + --driver=firefox + --browser-binary="$(type -P firefox || type -P firefox-bin)" + --driver-binary="$(type -P geckodriver)" + --headless + ) + + local EPYTEST_IGNORE+=( + # requires some "python.runfiles", also bidi tests generally fail + test/selenium/webdriver/common/bidi_webextension_tests.py + # throws some error that pytest doesn't even show + test/selenium/webdriver/firefox/ff_installs_addons_tests.py + ) + EPYTEST_DESELECT+=( + # expects prebuilt executables for various systems + test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_windows + test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_linux + test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_mac + test/selenium/webdriver/common/selenium_manager_tests.py::test_errors_if_invalid_os + + # TODO: these don't respect --*-binary and try to fetch versions + test/selenium/webdriver/firefox + test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns + test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns + test/selenium/webdriver/marionette/mn_options_tests.py::TestIntegration::test_we_can_pass_options + test/selenium/webdriver/marionette/mn_set_context_tests.py::test_we_can_switch_context_to_chrome + + # TODO + 'test/selenium/webdriver/common/devtools_tests.py::test_check_console_messages[firefox]' + + # TODO + test/selenium/webdriver/common/bidi_browser_tests.py + test/selenium/webdriver/common/bidi_browsing_context_tests.py + test/selenium/webdriver/common/bidi_emulation_tests.py + test/selenium/webdriver/common/bidi_errors_tests.py + test/selenium/webdriver/common/bidi_input_tests.py + test/selenium/webdriver/common/bidi_integration_tests.py + test/selenium/webdriver/common/bidi_log_tests.py + test/selenium/webdriver/common/bidi_network_tests.py + test/selenium/webdriver/common/bidi_permissions_tests.py + test/selenium/webdriver/common/bidi_script_tests.py + test/selenium/webdriver/common/bidi_session_tests.py + test/selenium/webdriver/common/bidi_storage_tests.py + test/selenium/webdriver/common/bidi_tests.py + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_binary + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_ctor + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_prefs + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_to_capabilities + test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_element_with_custom_locator + test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_elements_with_custom_locator + + # Internet + test/selenium/webdriver/remote/remote_server_tests.py::test_download_latest_server + test/selenium/webdriver/remote/remote_hub_connection_tests.py::test_command_executor_ssl_certificate_is_verified + ) + else + EPYTEST_IGNORE+=( + test/selenium + ) + fi + + cd "${WORKDIR}/${TEST_P}/py" || die + rm -rf selenium || die + epytest "${pytest_args[@]}" +} diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest index 5a15b32309fd..ad08e08d631c 100644 --- a/dev-python/tox/Manifest +++ b/dev-python/tox/Manifest @@ -2,3 +2,5 @@ DIST tox-4.50.3.tar.gz 266455 BLAKE2B 77a18cb2beeb4df6e80b8cdb718e5c51ea77b54ad0 DIST tox-4.50.3.tar.gz.provenance 9287 BLAKE2B 44e6d623b0de01dc586e4a29fdc70ab11e8a12ae9f6267851502e986e0ca5bcbc29f1f00bd5054752870155e058e660b78454af216eb439e421be94c74e72b8e SHA512 809624f5faa01e2b9141269a3988b51cf427a0b8b9bb3618b13234c3fa07e660d6b9fb65f5339d8a8a97a9a1b87da21facfe700dee278af974e69852bd5df695 DIST tox-4.53.1.tar.gz 276809 BLAKE2B 18e99c00cf24d12705050f59a2843d26ce0201982512921d365d8c196a43563f296da973a98a1eb1cac86797a344fa82f3e94e8f5eef5e91339dfb86f7c6d6b5 SHA512 b11df73e47c5c63124b9e7e11c44a8c3c39b40d177b411bcbd4218a9875fd658a32712083102ef2a1cae6e75939cd32f7caa00551de753f30f58f7f52ab4e5dd DIST tox-4.53.1.tar.gz.provenance 9432 BLAKE2B 33d7b56f0658c9fd009862674eb1b7c7d140af1a19a6c424765c4731376565d4d71b4c99b712782369fff1b7ad2a37c25d7bb5e0c3e64c0de86f3c867cbee63e SHA512 c626b2095aa0d1c94552a56b05cdf66fefd7a5eda1c6db33c3ebfa52bd4e96b118754412d6da872675b0fc76224c9c2e53abbd507b3b10aeac24d752e839df34 +DIST tox-4.54.0.tar.gz 279256 BLAKE2B f1a1265879ce21f9f4005268dd5800dd7d84d6c914f453d75c86fca6176aaab7c8e2c7a8091bc9103320469ab7c8b82f6faecb9473521f9442f818ca1a94d741 SHA512 923f622c8c0706a7d667e74b1ff42ec9c8ef578bc59e335cbb03ec3b654025263350241ee72c775499519f9d0b504fa859fe365b9435f25698c84449a3e217ed +DIST tox-4.54.0.tar.gz.provenance 9424 BLAKE2B b9f9dee2859d4e640edd8e9ca8274a2715c25a11fe4639ec0b210f9565a12a50523c7f3e051f370259a70772b29abd617b28fa177da7bdc69179b8bd8ff35cf7 SHA512 efdf4aabc3d64219f842c06b9b8ae07b1532076269bd4753bf11e93ff59498337e35eb436f5c5a43028ba4027cd63b5d216febdeb6e0ec9208a435305c8a785f diff --git a/dev-python/tox/tox-4.54.0.ebuild b/dev-python/tox/tox-4.54.0.ebuild new file mode 100644 index 000000000000..1ea7932f5f65 --- /dev/null +++ b/dev-python/tox/tox-4.54.0.ebuild @@ -0,0 +1,97 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/tox-dev/tox +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="virtualenv-based automation of test activities" +HOMEPAGE=" + https://tox.readthedocs.io/ + https://github.com/tox-dev/tox/ + https://pypi.org/project/tox/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~x86" + +RDEPEND=" + dev-python/cachetools[${PYTHON_USEDEP}] + dev-python/colorama[${PYTHON_USEDEP}] + dev-python/filelock[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/platformdirs[${PYTHON_USEDEP}] + dev-python/pluggy[${PYTHON_USEDEP}] + dev-python/pyproject-api[${PYTHON_USEDEP}] + dev-python/python-discovery[${PYTHON_USEDEP}] + dev-python/tomli-w[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + dev-python/argcomplete[${PYTHON_USEDEP}] + dev-python/build[${PYTHON_USEDEP}] + dev-python/distlib[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + dev-python/re-assert[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} ) +# xdist seems to mess up state between successive implementation runs +distutils_enable_tests pytest + +src_prepare() { + # upstream lower bounds are meaningless + sed -i -e 's:>=[0-9.]*::' pyproject.toml || die + distutils-r1_src_prepare +} + +python_test() { + # devpi_process is not packaged, and has lots of dependencies + cat > "${T}"/devpi_process.py <<-EOF || die + def IndexServer(*args, **kwargs): raise NotImplementedError() + EOF + + local -x PYTHONPATH=${T}:${PYTHONPATH} + local EPYTEST_DESELECT=( + # Internet + tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external + tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz + tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs + # require tombi + tests/session/cmd/test_schema.py::test_schema_tombi_lint + ) + local EPYTEST_IGNORE=( + # requires devpi* + tests/test_provision.py + ) + + case ${EPYTHON} in + python*) + local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" time-machine ) + ;; + pypy3*) + EPYTEST_DESELECT+=( + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]' + ) + ;; + esac + + epytest -o addopts= +} diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest index 1533c1c1bf06..45adfedb32f4 100644 --- a/dev-python/translate-toolkit/Manifest +++ b/dev-python/translate-toolkit/Manifest @@ -3,3 +3,4 @@ DIST translate-3.19.5.gh.tar.gz 1320567 BLAKE2B ea27702656b25423fa71f0624d68a82d DIST translate-3.19.6.gh.tar.gz 1327150 BLAKE2B a1337276a2a15a7d522e86def20df4137fec8f566df8ca1ec945b12e627a4ebf78aaace4266ef1ef00dca5ac30b3767dea0a1dcd79d3fe8bb8b5cf74dcff1117 SHA512 c21c563e530fe3550c1e5d97f30cb861f47bcde867547a07aaa992fe8721ad20fa18a2a2227fccd2b458cf14a2788137176a1eff5b11f4cfbc4f5cbdfdfc7729 DIST translate-3.19.7.gh.tar.gz 1328643 BLAKE2B e0806de1ecfcc7b3d362663d28b1093b5ab34e097a01d5a70c94174df32e3b469cc536e494afc68e59def8fe67b1e35330a63f5946c9ccaafec89ceb8b472fbe SHA512 f280f832e49e403f25e6a2a9236c5f4ed66cc129b2bf6be6a521b477ec0dce27d2315ecb9383a695932121bec39ff5c10b60e97911de5e6ba810bcc249e7f875 DIST translate-3.19.8.gh.tar.gz 1350675 BLAKE2B f73cca746d3486e5e1ad4b4d42dc9b5fe6fd72f8ce54bba02b6e8c5a92c48d5d7ce954ac0a30466ec6274f6f29ccd73340344c664eaeb1d19770253dc6264c99 SHA512 c10231dcad6ba81651fd1a3d53ad40cd18a2b38425c643967bff66118fe6ee01e4b6feed68200afca14bc27e1b22db0c68ef9768429621431b67cbd172469dfb +DIST translate-3.19.9.gh.tar.gz 1349891 BLAKE2B 208c516d9c69faaa6fd19a4c04264ba3fc64c33c0cd6000b639ca13201dc52250d1203531260f952efd1fef87eae3600e5adc9826ef10319c3c3683f70486914 SHA512 10389b6ec7664a7d27cf87cef2b5857d79234ad2a3df51ce7853eb70f8872f9fac6ac54799ed5058d935b805bf5d3f82cdf86ae7b9f07419e5cca35b956b1673 diff --git a/dev-python/translate-toolkit/translate-toolkit-3.19.9.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.9.ebuild new file mode 100644 index 000000000000..223963d5c476 --- /dev/null +++ b/dev-python/translate-toolkit/translate-toolkit-3.19.9.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_REQ_USE="sqlite" + +inherit distutils-r1 + +MY_P=translate-${PV} +DESCRIPTION="Toolkit to convert between many translation formats" +HOMEPAGE=" + https://github.com/translate/translate/ + https://pypi.org/project/translate-toolkit/ +" +SRC_URI=" + https://github.com/translate/translate/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="+html +ical +ini +subtitles +yaml" + +RDEPEND=" + app-text/iso-codes + >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}] + dev-python/cheroot[${PYTHON_USEDEP}] + >=dev-python/levenshtein-0.12.0[${PYTHON_USEDEP}] + >=dev-python/lxml-5.2.0[${PYTHON_USEDEP}] + >=dev-python/mistletoe-1.1.0[${PYTHON_USEDEP}] + >=dev-python/pyparsing-3[${PYTHON_USEDEP}] + dev-python/ruamel-yaml[${PYTHON_USEDEP}] + dev-python/tomlkit[${PYTHON_USEDEP}] + >=dev-python/unicode-segmentation-rs-0.2.0[${PYTHON_USEDEP}] + >=dev-python/wcwidth-0.2.14[${PYTHON_USEDEP}] + sys-devel/gettext + html? ( dev-python/utidylib[${PYTHON_USEDEP}] ) + ical? ( dev-python/vobject[${PYTHON_USEDEP}] ) + ini? ( >=dev-python/iniparse-0.5[${PYTHON_USEDEP}] ) + subtitles? ( media-video/gaupol[${PYTHON_USEDEP}] ) + yaml? ( dev-python/pyyaml[${PYTHON_USEDEP}] ) +" +# Technically, the test suite also has undeclared dependency +# on dev-python/snapshottest but all the tests using it are broken +# anyway, so we skip them. +BDEPEND=" + test? ( + dev-python/phply[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # strip unnecessary pins + sed -i -e 's:,<[0-9.]*::' pyproject.toml || die +} + +src_test() { + # unfortunately, this bad quality package doesn't support XDG_DATA_DIRS + # correctly, so we need to reassemble all data files in a single directory + local -x XDG_DATA_HOME=${T}/share + cp -r translate/share "${T}/" || die + cp -r "${ESYSROOT}"/usr/share/gaupol "${XDG_DATA_HOME}"/ || die + + distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # Fails with network-sandbox (and even with it off but w/ softer fail) + 'tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff' + 'tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff' + # all tests based on snapshottest are broken and I'm too tired + # to figure this out + tests/translate/tools/test_pocount.py::test_{cases,output} + tests/translate/tools/test_junitmsgfmt.py::test_output + tests/cli/test_cli_snapshots.py + ) + local EPYTEST_IGNORE=( + # unpackaged fluent.* + tests/translate/storage/test_fluent.py + tests/translate/convert/test_fluent2po.py + # changes directory and does not change it back, sigh + tests/odf_xliff/test_odf_xliff.py + ) + + if ! has_version "dev-python/iniparse[${PYTHON_USEDEP}]"; then + EPYTEST_IGNORE+=( + translate/convert/test_ini2po.py + translate/convert/test_po2ini.py + ) + fi + + if ! has_version "media-video/gaupol[${PYTHON_USEDEP}]"; then + EPYTEST_IGNORE+=( + translate/storage/test_subtitles.py + ) + fi + + epytest +} + +python_install_all() { + distutils-r1_python_install_all + + insinto /usr + doins -r translate/share + + if ! use html; then + rm "${ED}"/usr/bin/{html2po,po2html} || die + fi + if ! use ical; then + rm "${ED}"/usr/bin/{ical2po,po2ical} || die + fi + if ! use ini; then + rm "${ED}"/usr/bin/{ini2po,po2ini} || die + fi + if ! use subtitles; then + rm "${ED}"/usr/bin/{sub2po,po2sub} || die + fi +} diff --git a/dev-python/twisted/Manifest b/dev-python/twisted/Manifest index b48bcc2d0688..4cc597ff9174 100644 --- a/dev-python/twisted/Manifest +++ b/dev-python/twisted/Manifest @@ -1,5 +1,7 @@ DIST twisted-25.5.0.tar.gz 3545725 BLAKE2B 01f24c3c90c3db349efe779a8262abab3004782aedd8534a8c53e5336d77862a3615c83093137074b19af415cdb5572e07c39a74846a128544e8405d9c69864b SHA512 3d023777854fdf54e06f4bbaf3159359767aac9ba33e90d2b2e8abe29815d088e00eebd06944c12610a28c517d9cb397a5104ff153160edabfb91dd16a15f597 DIST twisted-25.5.0.tar.gz.provenance 9203 BLAKE2B 76180b9aa470977a28eb3a2104bf6cf6355cf0585df5cf8e07420e3878df32e92ae23eef7bb64bd3fb8d863c4b3727daf44074d2a1d5735236f1d24f89711797 SHA512 9f5d3d92194abbbd5ed0bd524a11858f8d75ae8e9cf89bb4689a82053bc107f4eea6adbe2862fc9bba74bd3623eac3183a3bd3163cce4a7eec20e4ee4988afa0 +DIST twisted-26.4.0.tar.gz 3575095 BLAKE2B 63e4e543cbff788e5a6346c00bfa8e85ffcf2ae2606e064b4f58fe97109b6e783681dfc9bbaefbf56f181eeebbb31b2942b6280993307f94d3885499008875e6 SHA512 03b9f8ead925c0cf42c2f74cfb1045fd119e4cb3e197606946b075ce8caf75eb2edad208b610f0ba8628da6b4dda5b29da7f2bd04f76a61a112d45f3e4b8ad22 +DIST twisted-26.4.0.tar.gz.provenance 9440 BLAKE2B b57532a8bf2df72638104c6c06d7fdcb8ee04304db83545056b934e8ec29c8d2b65b97e1faa1f3d19c73b1bae594b5e564f1caad4459c930ddba84800e950ef0 SHA512 3c33b4e511a0e786ae2d5a2e08f4b1af17a15082584b98cbfd109f29e5856a88f4798164b9b30a98ffbdb860c180450832134291d6784eabc756f215c0b717b5 DIST twisted-26.4.0rc2.tar.gz 3575417 BLAKE2B 58f22a8fd475460b2d1db864b622bc2b0825bb24cbcface1a2cf299bb8e8206cd3c418ea8cb7baa0e19fdbeb4a8ef2ae41e66258329e9b232a4730069ff78d0e SHA512 f27629f801103eed16605809149588d2de9c3f8e837acc97f5481f68082024b971e13694c05bd35c90e875d9d0d362b5b824d0c967f4e333e7ae8268dfd77d7b DIST twisted-26.4.0rc2.tar.gz.provenance 9402 BLAKE2B 28a09a6d6458f0448b00b674a8437b41fe0a27fc9380675986dcb56972c1f440f4a228b59eb87ddbfc8a6d0ac7e1e0e2e0dbcc973edb92f0ed87f5a629be79f6 SHA512 f5adfbb14641ae94ee78ce622c6ea86dc225640106297f70dbeb85ef703f9bfe38a8c6ac1da9ccdf6fdab84d1a43a943b772a04e8e5863a98ca8359f6a0fa6d1 DIST twisted-regen-cache.gz 911 BLAKE2B ffd3fcda6c67ffe6fd3ef581c8d507548396b66ed0708e9a5c790095e579c0d5f0f71596acf05712989da2ddef2b8d437eca973bc4d80ef8a9fa852915f38305 SHA512 95a9b931c73017d16d1b5e6b41345dddffe62b6af1a8e93b5e40d06d3d15be17b0dd0181c767ffeeb791534d463764ef9e066fa6c2ee2ac4b53c86d1da8fce03 diff --git a/dev-python/twisted/files/twisted-26.4.0-py314.patch b/dev-python/twisted/files/twisted-26.4.0-py314.patch new file mode 100644 index 000000000000..e9c806e8a930 --- /dev/null +++ b/dev-python/twisted/files/twisted-26.4.0-py314.patch @@ -0,0 +1,43 @@ +diff --git a/src/twisted/internet/test/test_asyncioreactor.py b/src/twisted/internet/test/test_asyncioreactor.py +index 2f7bad930d6..bbbb8c834ca 100644 +--- a/src/twisted/internet/test/test_asyncioreactor.py ++++ b/src/twisted/internet/test/test_asyncioreactor.py +@@ -12,8 +12,8 @@ + DefaultEventLoopPolicy, + Future, + SelectorEventLoop, +- get_event_loop, + get_event_loop_policy, ++ get_running_loop, + set_event_loop, + set_event_loop_policy, + ) +@@ -74,14 +74,26 @@ def newLoop(self, policy: AbstractEventLoopPolicy) -> AbstractEventLoop: + Make a new asyncio loop from a policy for use with a reactor, and add + appropriate cleanup to restore any global state. + """ +- existingLoop = get_event_loop() ++ try: ++ existingLoop = get_running_loop() ++ except RuntimeError: # pragma: no branch ++ # For most runs, we should not have any existing loop, ++ # since the tests should leave a clean reactor. ++ # For some cases, like GTK tests, ++ # there might be a running reactor. ++ # To revert the state found at the start of the test ++ # we keep a reference and restore it later. ++ existingLoop = None + existingPolicy = get_event_loop_policy() + result = policy.new_event_loop() + + @self.addCleanup + def cleanUp(): + result.close() +- set_event_loop(existingLoop) ++ if existingLoop is not None: # pragma: no cover ++ # Revert the loop found at the start of the test. ++ # See https://github.com/twisted/twisted/pull/11706 ++ set_event_loop(existingLoop) + set_event_loop_policy(existingPolicy) + + return result diff --git a/dev-python/twisted/twisted-26.4.0.ebuild b/dev-python/twisted/twisted-26.4.0.ebuild new file mode 100644 index 000000000000..4d9f6bf1e84b --- /dev/null +++ b/dev-python/twisted/twisted-26.4.0.ebuild @@ -0,0 +1,172 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/twisted/twisted +PYTHON_TESTED=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing pypi virtualx + +DESCRIPTION="An asynchronous networking framework written in Python" +HOMEPAGE=" + https://twisted.org/ + https://github.com/twisted/twisted/ + https://pypi.org/project/Twisted/ +" +SRC_URI+=" + https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz +" + +LICENSE="MIT" +SLOT="0" +if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +fi +IUSE="conch http2 serial ssl test websockets" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}] + >=dev-python/automat-24.8.0[${PYTHON_USEDEP}] + >=dev-python/constantly-15.1[${PYTHON_USEDEP}] + >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}] + >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}] + >=dev-python/zope-interface-5[${PYTHON_USEDEP}] + conch? ( + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + >=dev-python/bcrypt-3.2.1[${PYTHON_USEDEP}] + >=dev-python/cryptography-38[${PYTHON_USEDEP}] + dev-python/pyasn1[${PYTHON_USEDEP}] + ) + http2? ( + >=dev-python/h2-3.2[${PYTHON_USEDEP}] + >=dev-python/priority-1.1.0[${PYTHON_USEDEP}] + ) + serial? ( + >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] + ) + ssl? ( + >=dev-python/pyopenssl-25.2.0[${PYTHON_USEDEP}] + >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}] + >=dev-python/idna-2.4[${PYTHON_USEDEP}] + ) + websockets? ( + dev-python/wsproto[${PYTHON_USEDEP}] + ) +" +IDEPEND=" + >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}] + >=dev-python/constantly-15.1[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}] + >=dev-python/zope-interface-5[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}] + >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}] + test? ( + ${RDEPEND} + $(python_gen_cond_dep ' + !!dev-python/py + >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}] + >=dev-python/bcrypt-3.2.1[${PYTHON_USEDEP}] + >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}] + >=dev-python/cython-test-exception-raiser-1.0.2[${PYTHON_USEDEP}] + >=dev-python/idna-2.4[${PYTHON_USEDEP}] + >=dev-python/httpx-0.27[${PYTHON_USEDEP}] + >=dev-python/hypothesis-6.56[${PYTHON_USEDEP}] + dev-python/pyasn1[${PYTHON_USEDEP}] + >=dev-python/pyhamcrest-2[${PYTHON_USEDEP}] + >=dev-python/pyserial-3.0[${PYTHON_USEDEP}] + dev-python/wsproto[${PYTHON_USEDEP}] + virtual/openssh + ssl? ( + >=dev-python/pyopenssl-25.2.0[${PYTHON_USEDEP}] + >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}] + ) + ' "${PYTHON_TESTED[@]}") + ) +" + +python_prepare_all() { + local PATCHES=( + # https://github.com/twisted/twisted/pull/12637 + "${FILESDIR}/${P}-py314.patch" + ) + + distutils-r1_python_prepare_all + + # upstream test for making releases; not very useful and requires + # sphinx (including on py2) + rm src/twisted/python/test/test_release.py || die + + # multicast tests fail within network-sandbox + sed -e 's:test_joinLeave:_&:' \ + -e 's:test_loopback:_&:' \ + -e 's:test_multiListen:_&:' \ + -e 's:test_multicast:_&:' \ + -i src/twisted/test/test_udp.py || die +} + +src_test() { + # the test suite handles missing file & failing ioctl()s gracefully + # but not permission errors from sandbox + addwrite /dev/net/tun + virtx distutils-r1_src_test +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON} (xfail)" + return + fi + + # breaks some tests by overriding empty environment + local -x SANDBOX_ON=0 + # for py3.13, see + # https://github.com/twisted/twisted/pull/12092#issuecomment-2194326096 + local -x LINES=25 COLUMNS=80 + "${EPYTHON}" -m twisted.trial -j "$(makeopts_jobs)" twisted || + die "Tests failed with ${EPYTHON}" +} + +python_install() { + distutils-r1_python_install + + # own the dropin.cache so we don't leave orphans + > "${D}$(python_get_sitedir)"/twisted/plugins/dropin.cache || die + + python_doscript "${WORKDIR}"/twisted-regen-cache +} + +python_install_all() { + distutils-r1_python_install_all + + newconfd "${FILESDIR}/twistd.conf" twistd + newinitd "${FILESDIR}/twistd.init" twistd +} + +python_postinst() { + twisted-regen-cache || die +} + +pkg_postinst() { + if [[ -z ${ROOT} ]]; then + python_foreach_impl python_postinst + fi +} + +python_postrm() { + rm -f "${ROOT}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die +} + +pkg_postrm() { + # if we're removing the last version, remove the cache file + if [[ ! ${REPLACING_VERSIONS} ]]; then + python_foreach_impl python_postrm + fi +} diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest index bcf5ef967cd5..88c19707623d 100644 --- a/dev-python/uv-build/Manifest +++ b/dev-python/uv-build/Manifest @@ -2,6 +2,7 @@ DIST uv_build-0.11.10.tar.gz 376745 BLAKE2B 8447c14db66981f9188336dc1d8b7918784f DIST uv_build-0.11.11.tar.gz 376722 BLAKE2B 58e62e3366961b489f1f6e1e8c83d0b770879660d9d3b0c6266dce46c5da8e9887408b09f0f59fd3fecda30adf887012df6390f386fb22843c0bb66e3c813a97 SHA512 ed612caee074c756c8ab242e3e0bf64e76dfddfefa383c3587b675b07e61621504ccaea653733c27ef2dd9b8bef1aa6d21ba1b9b39102d49c9ec3e9d7d13e758 DIST uv_build-0.11.12.tar.gz 377487 BLAKE2B f9d4c1b53f9c4ff2209f2b96a581f01f0a363fa02c6724e3d4f1d10ac3dd8447eb15d2aaac2a2fafe3d8a3fe20bf37a0b65c2e24f771d7f163a09f34a0151d51 SHA512 99747e605f984fb8b9b8d9b68a987cf20f49cec24cb57f795ef393268246366befb390398ca8d447f1178b8ad307376a2dbb62d083b8e987c0d2d5ab8116a6b3 DIST uv_build-0.11.13.tar.gz 377955 BLAKE2B 01f93cb472a2841dd2c516b9a02137fafcf081a3102a45a2ff03b92d4dde9c7a3fc0bc012ca1871a51ac9832f2ba9c9d7f51f0705eec2d239d50cd3c8948dca1 SHA512 d6e2986b16d0dc78a9e03261d70a847186672fbc737be54d6263c2b7992d39561817c2e97e2cd82d64349ed402bbc8b907bd9782ff104988fba9f32504dc9d51 +DIST uv_build-0.11.14.tar.gz 379337 BLAKE2B 26644ced88c39d7022e8c2cc37b8010319cb920b34d86ebfa502cb51f7fdff04a4856b955e451f13494e69834824a8242606c6bcb3b61bdb4a5dc5d459509c71 SHA512 c0d94041389aece658969170de6655ef09bfbce3496aed8e9b044b5af4a1db1288dce34d6ee7d12604d98feed6a3ee9ca95d7868f0a0f130a60d1f0136e6d6be DIST uv_build-0.11.6.tar.gz 361928 BLAKE2B 800f59a32bab5b850fb30627b6e47c4a2e7bd8d1a292584e2c3b33e2c3aee81907b8e6ebe95298bac607df161e29437cc8a84bb8a44e32435028ab5fd3bf22af SHA512 8a9fc7cca9e42f42db888b6a9f3888393feae79d0ce8ca56568c83cbee977675d8a39a38b820606d1ac685ef99b92a182795c2521f4796865acd774fd73c6bac DIST uv_build-0.11.7.tar.gz 365752 BLAKE2B 2de7a3656ea9960d2959a6bde66b85979b56e1cedce5ccc38759dae6a165d1d79998bcab3f43e472d91281fe320aadbb00f765776da3f06902b6a81b37d8b0aa SHA512 5ef23796480d36b20d1ca1b5c22eeb86c6634acbe9eb62642044d6c34a8dc45ca59727a77793fa324dbc3656a3659521544387d8afa346879675ff09fef1ca62 DIST uv_build-0.11.8.tar.gz 367238 BLAKE2B 04dfc0cec62b53554b5041f77f0c34794ed2b9890449406af7011182acc23aab77bc087cdfcaf3d360a85169a51c998b4e7c0ddbdda1bdad4f487078226c6890 SHA512 67a5931ba6557c12e1fc668b061c5cfaefea7275fbeac4e658b6e37a748fb67b452b694960cec9bea97bcc4da43e24566a6adfec001057be478d8056894f54a5 diff --git a/dev-python/uv-build/uv-build-0.11.14.ebuild b/dev-python/uv-build/uv-build-0.11.14.ebuild new file mode 100644 index 000000000000..2ab229426f84 --- /dev/null +++ b/dev-python/uv-build/uv-build-0.11.14.ebuild @@ -0,0 +1,99 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maturin compiles uv-build executable for every impl, we do not want +# that, so we use another backend. And since we use another backend, +# why not dogfood it in the first place? +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="PEP517 uv build backend" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv-build/ +" + +LICENSE="|| ( Apache-2.0 MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/uv-${PV} +" +BDEPEND=" + test? ( + app-arch/unzip + dev-python/build[${PYTHON_USEDEP}] + ) +" + +src_prepare() { + distutils-r1_src_prepare + + # use the executable from dev-python/uv instead of building + # a largely overlapping uv-build executable (at least for now) + sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die + + # replace the build-system section + sed -i -e '/\[build-system\]/,$d' pyproject.toml || die + cat >> pyproject.toml <<-EOF || die + [build-system] + requires = ["uv_build<9999"] + build-backend = "uv_build" + backend-path = ["src"] + EOF + + # rename to make uv-build find it + mv python src || die +} + +python_test() { + "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}" + + local zip_result=$( + unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die + ) + local zip_expected="\ +Archive: dist/uv_build-${PV}-py3-none-any.whl + testing: uv_build/ OK + testing: uv_build/__init__.py OK + testing: uv_build/__main__.py OK + testing: uv_build/py.typed OK + testing: uv_build-${PV}.dist-info/ OK + testing: uv_build-${PV}.dist-info/WHEEL OK + testing: uv_build-${PV}.dist-info/METADATA OK + testing: uv_build-${PV}.dist-info/RECORD OK +No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\ +" + if [[ ${zip_result} != ${zip_expected} ]]; then + eerror ".zip result:\n${zip_result}" + eerror ".zip expected:\n${zip_expected}" + die ".whl result mismatch" + fi + + local tar_result=$( + tar -tf "dist/uv_build-${PV}.tar.gz" || die + ) + local tar_expected="\ +uv_build-${PV}/PKG-INFO +uv_build-${PV}/ +uv_build-${PV}/README.md +uv_build-${PV}/pyproject.toml +uv_build-${PV}/src +uv_build-${PV}/src/uv_build +uv_build-${PV}/src/uv_build/__init__.py +uv_build-${PV}/src/uv_build/__main__.py +uv_build-${PV}/src/uv_build/py.typed\ +" + if [[ ${tar_result} != ${tar_expected} ]]; then + eerror ".tar.gz result:\n${tar_result}" + eerror ".tar.gz expected:\n${tar_expected}" + die ".tar.gz result mismatch" + fi +} diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest index bbb47d9048f7..fb8b3f37a268 100644 --- a/dev-python/uv/Manifest +++ b/dev-python/uv/Manifest @@ -6,6 +6,8 @@ DIST uv-0.11.12-crates.tar.xz 46797580 BLAKE2B 69c193a4d0d8b81b7ee504ad4439c3647 DIST uv-0.11.12.gh.tar.gz 5259600 BLAKE2B bf43a4b38e37a45d73820e3d445ac38a56314cefcdc0a734cad5b93200ce9e4b689c8aa3125eb34d8aa150ff4b2b94b786dd518a49aacf6d6ce655f66e9506f9 SHA512 a23c95152f0515645174b85ed8887fe29e3e56d457aaad7992cfe5a59b95e527348ebd7e0ce9d23cf589f20849326a876ae61ed9b10324a48b8021077cd264fe DIST uv-0.11.13-crates.tar.xz 46795796 BLAKE2B d087b947c1c673bffb4095ba3ccdd24251a91e382d702511665af5b4d8a38acc3ebd386405a2f98c256524f71d71ad859aead336d3db73d46ae6ca59dc182d81 SHA512 879dc13c29323b7cc7b84331cab40f6ac0519e564024c2ce9e07df2be5d79be0d3ba6615a98bfba976bd108aedae5953997cc86c94c9907ecb16f8b97e7b891f DIST uv-0.11.13.gh.tar.gz 5260441 BLAKE2B 36ac78b2857d39b5dc6e24617ed44a0526039723bb5c078713536156524709bca4a8b82f6a9fefa1d66b3e08d6f5c7d2a16ab17c5266d18518e68e3583bd48d0 SHA512 04c6451c1250bf997cd412906d09195234513a160694e31f1dce5dbd04184dfed3307a27948fc32656050cc0d089f05d3f80e31b2ce942e1e93a6de032f90e42 +DIST uv-0.11.14-crates.tar.xz 46820736 BLAKE2B 198e55be6417a2144cfba292ab943eb881bb2d3d99db259cb2cad2199d16f2eef4cc372d4b15bb5a78c6faf90b23163b2fc6366b6a88c0c089ff7113d62d80c7 SHA512 108f22ce909df5caac55e4952e1483222da0a65d64b9969a8c3224923cdf3528ce89f51a9c0a89542e4d536dd72c896a94764b9daac3376799445100705c4db1 +DIST uv-0.11.14.gh.tar.gz 5268861 BLAKE2B 7cea3f62c4756cd961efdf1d949d0dee469fb8ab0475f8f1149756c8ab1a4f767e5c88aa29011f8f6f862d48733ce7d8bb64d7b742d792dad2fd04c1c7d365c1 SHA512 375efa7d4afb3128e5d833f91d9fe91439d0c45c607996dae0cf25bf9b8d1a164858dccd00875020b88377fffecabb6afab8353ef0b7e393c83d64ed2320d3c2 DIST uv-0.11.6-crates.tar.xz 46830584 BLAKE2B 6fbf2c9aa231588833e5cce30da2a9238af8bd22fd849cf45c3ffab52b405bcd6c5b488a9cc6975e09781ce379405c6323d7cb3c330243ae5a7b53efb775d06e SHA512 243e69e5512d09a48d47c76f100dae390e2ea9de51eb4671a9bc84a8fcbbdafe96832b6afc7222185f09f1c11c5aa6a32be9185f723b7dc67e13a94205f759d2 DIST uv-0.11.6.gh.tar.gz 5211342 BLAKE2B 43b6cf60e3a97e70c847878e36d5ae854e7458922121b4b85a9d61d48a1e740c47c408600c92458e4a89d69308fef4833da41b2dd0ad5dbb6ac94b5d2e48c549 SHA512 3f370f98b253dd84706f1724155ba4ed5cafb41b612fa75151aef26dd4f18c85f59d93c5bbddae1c59ea594fdc88857d005b6e8728cdd24f5b37b99ba4ef32cd DIST uv-0.11.7-crates.tar.xz 46854096 BLAKE2B b4fc06608d3c68910a48af598803b934017787bbf14599f66fa43096aa3ef2cdeca8ee35230ea3b8446da044a29f0b476f58f224732959e8017720e79a0d7cd8 SHA512 9cdcc1f565a3bf4d3490296710a7821e3760164d723057d591bf923e093aac50f51ad209ceed6f8c4e8fd2104ee90363750017bb56de2c76fca5dda7fcee815b diff --git a/dev-python/uv/uv-0.11.14.ebuild b/dev-python/uv/uv-0.11.14.ebuild new file mode 100644 index 000000000000..030c2e92591f --- /dev/null +++ b/dev-python/uv/uv-0.11.14.ebuild @@ -0,0 +1,164 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" +" +RUST_MIN_VER="1.93.0" + +inherit cargo check-reqs + +CRATE_PV=${PV} +DESCRIPTION="A Python package installer and resolver, written in Rust" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv/ +" +# pypi sdist misses scripts/, needed for tests +SRC_URI=" + https://github.com/astral-sh/uv/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" +if [[ ${PKGBUMPING} != ${PVR} ]]; then + SRC_URI+=" + https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz + " +fi + +# most of the code +LICENSE="|| ( Apache-2.0 MIT )" +# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below +# Dependent crate licenses +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 + CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016 + ZLIB BZIP2 +" +# ring crate +LICENSE+=" openssl" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="test" +RESTRICT="test" +PROPERTIES="test_network" + +DEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + virtual/pkgconfig + test? ( + dev-lang/python:3.9 + dev-lang/python:3.10 + dev-lang/python:3.11 + dev-lang/python:3.12 + dev-lang/python:3.13 + !!~dev-python/uv-0.5.0 + ) +" + +QA_FLAGS_IGNORED="usr/bin/.*" + +check_space() { + local CHECKREQS_DISK_BUILD=3G + use debug && CHECKREQS_DISK_BUILD=9G + check-reqs_pkg_setup +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + rust_pkg_setup +} + +src_prepare() { + default + + # force thin lto, makes build much faster and less memory hungry + # (i.e. makes it possible to actually build uv on 32-bit PPC) + sed -i -e '/lto/s:fat:thin:' Cargo.toml || die + + # enable system libraries where supported + export ZSTD_SYS_USE_PKG_CONFIG=1 + # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys? + + # remove unbundled sources, just in case + find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die + + # bzip2-sys requires a pkg-config file + # https://github.com/alexcrichton/bzip2-rs/issues/104 + mkdir "${T}/pkg-config" || die + export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} + cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die + Name: bzip2 + Version: 9999 + Description: + Libs: -lbz2 + EOF + + # uv is now forcing bundled liblzma, sigh + sed -i -e '/xz/s:"static"::' Cargo.toml || die +} + +src_configure() { + local myfeatures=( + test-git + test-pypi + test-python + ) + + cargo_src_configure --no-default-features +} + +src_compile() { + cd crates/uv || die + cargo_src_compile +} + +src_test() { + cd crates/uv || die + cargo_src_test --no-fail-fast +} + +src_install() { + cd crates/uv || die + cargo_src_install + + insinto /etc/xdg/uv + newins - uv.toml <<-EOF || die + # These defaults match Fedora, see: + # https://src.fedoraproject.org/rpms/uv/pull-request/18 + + # By default ("automatic"), uv downloads missing Python versions + # automatically and keeps them in the user's home directory. + # Disable that to make downloading opt-in, and especially + # to avoid unnecessarily fetching custom Python when the distro + # package would be preferable. Python builds can still be + # downloaded manually via "uv python install". + # + # https://docs.astral.sh/uv/reference/settings/#python-downloads + python-downloads = "manual" + + # By default ("managed"), uv always prefers self-installed + # Python versions over the system Python, independently + # of versions. Since we generally expect users to use that + # to install old Python versions not in ::gentoo anymore, + # this effectively means that uv would end up preferring very + # old Python versions over the newer ones that are provided + # by the system. Default to using the system versions to avoid + # this counter-intuitive behavior. + # + # https://docs.astral.sh/uv/reference/settings/#python-preference + python-preference = "system" + EOF +} diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest index 4e9ac3c084ed..8802a30a797b 100644 --- a/dev-python/virtualenv/Manifest +++ b/dev-python/virtualenv/Manifest @@ -4,3 +4,5 @@ DIST virtualenv-21.3.0.tar.gz 7614069 BLAKE2B fb7a290013284aced812db3101d767876b DIST virtualenv-21.3.0.tar.gz.provenance 9425 BLAKE2B 00eeaae90e82280ae4aae553f7ca9839f3b3040970e6e2c4891ee5e8831c0fef3965e57af13ee5c27926cbb80fbfee0efc2dc5d9ffa6ad173f1ddc78645dac59 SHA512 c0ae0f1c862596be9c669ba1d97b5f7d0f713efdb1e48d0cecb1ca968205f71754c5a86cfa2c0ba39be8d5ae6b9b11677fa3990d3027067b687eb7e377c9e92f DIST virtualenv-21.3.1.tar.gz 7613791 BLAKE2B a62d25304dfb3feff7932b7135ff5c6c9f536a9548c171387201d88d931d5ea33d39c3da92efe0a9a62ca3d77cd9905126030f8e58ad919effd47fb291cd1b52 SHA512 2e445492b2c02e47c57db39bdf7d3506dcf09958a73a814c4629e1e32281d9ca337c381cc61b3da46b583f08a77d7729eb3a655471b0f70196cff90daf4f24a0 DIST virtualenv-21.3.1.tar.gz.provenance 9480 BLAKE2B 5322a3f210b2dbf92684bf0d2e99a9326b375e46135c1c7f3281b94a71d417cff696ea919b1602e61ae16d92642e3dc629c3948c609b115a0a45502fa8f2135e SHA512 665acafd07adb9594a8be6696987eceaa3702bc850c29c27f7e203cb56666fc3715a5419bb49e2b219756b1c880412afc314f7528c9ae2230501fa40fa99d4e8 +DIST virtualenv-21.3.2.tar.gz 7613810 BLAKE2B 3e218849f44b3d9801b610a480712af7da589ea67921cf99b65b08bcbba556b2325823039ec238f60868345b81676386286a70cde963ab3bc48bd29742d21dd6 SHA512 506668a1f6a62712f62a712ce65515c619dd60b19899e6555ebbc15453ef294a81048f7728e22e1275d374a132d980a5b3e8590025539cb7615b11228cef9c5e +DIST virtualenv-21.3.2.tar.gz.provenance 9249 BLAKE2B 08c7750b78743dcbde4371f3c7fa15aed1f9d3e5f38d7c83ce098909f296908c82dbcb2a0501bfd00fd2b027ff3df1680145e64ab07fc6e1d9d95aa3f102ac36 SHA512 8dee68c63faab7e8fa78dd300e690b5ccba1b2589f1af5c1d2e846bea21802028c16e001af14a75e14d94d026f61b552fe7448525c0110ac67b5f45baa3d85c0 diff --git a/dev-python/virtualenv/virtualenv-21.3.2.ebuild b/dev-python/virtualenv/virtualenv-21.3.2.ebuild new file mode 100644 index 000000000000..ffe84dada404 --- /dev/null +++ b/dev-python/virtualenv/virtualenv-21.3.2.ebuild @@ -0,0 +1,136 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/pypa/virtualenv +PYTHON_TESTED=( python3_{11..14} pypy3_11 ) +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 ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}] + >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}] + >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}] + >=dev-python/python-discovery-1.2.2[${PYTHON_USEDEP}] + + dev-python/ensurepip-pip + >=dev-python/ensurepip-setuptools-70.1 + 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? ( + ${RDEPEND} + $(python_gen_cond_dep ' + dev-python/coverage[${PYTHON_USEDEP}] + >=dev-python/pip-22.2.1[${PYTHON_USEDEP}] + >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${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..14}) + $(python_gen_cond_dep ' + >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}] + ' 'pypy3*') + ) +" + +src_prepare() { + local PATCHES=( + # use wheels from ensurepip bundle + "${FILESDIR}/${PN}-21.2.4-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 + # random resource leaks or xdist + tests/unit/test_file_limit.py::test_too_many_open_files + # Internet + tests/unit/create/test_creator.py::test_create_distutils_cfg + # we do not use bundled wheels + tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256 + ) + 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 + ) + ;; + esac + + local -x TZ=UTC + local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} ) + if [[ ${EPYTHON} == pypy3* ]]; then + EPYTEST_PLUGINS+=( pytest-freezer ) + else + EPYTEST_PLUGINS+=( time-machine ) + fi + local EPYTEST_RERUNS=5 + local EPYTEST_TIMEOUT=180 + local EPYTEST_XDIST=1 + epytest -o addopts= +} + +src_install() { + distutils-r1_src_install + + # remove bundled wheels, we're using ensurepip bundle instead + find "${ED}" -name '*.whl' -delete || die +} |
