diff options
| author | root <root@alpha.trunkmasters.com> | 2026-07-31 03:04:46 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-07-31 03:04:46 -0500 |
| commit | 3f283d6a71e35a9c6d89dc73d76f01aec1c1a6b3 (patch) | |
| tree | be269d99a452403d508fed631b1bdd5ebdc98d9f /dev-python | |
| parent | 0fb86e044f244e00302b1878b3e15e0db0e4b7e5 (diff) | |
| download | baldeagleos-repo-3f283d6a71e35a9c6d89dc73d76f01aec1c1a6b3.tar.gz baldeagleos-repo-3f283d6a71e35a9c6d89dc73d76f01aec1c1a6b3.tar.xz baldeagleos-repo-3f283d6a71e35a9c6d89dc73d76f01aec1c1a6b3.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
47 files changed, 1202 insertions, 142 deletions
diff --git a/dev-python/baseline/baseline-1.2.1.ebuild b/dev-python/baseline/baseline-1.2.1.ebuild index e8d25cdff9d7..c2990ee58b6f 100644 --- a/dev-python/baseline/baseline-1.2.1.ebuild +++ b/dev-python/baseline/baseline-1.2.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2025 Gentoo Authors +# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index 920db816cecb..f577ea24fee7 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -15,3 +15,4 @@ DIST boto3-1.43.56.gh.tar.gz 1191375 BLAKE2B 3e98c6b40c4386ba8f4653af18162537650 DIST boto3-1.43.57.gh.tar.gz 1192652 BLAKE2B 1fe7c1bb69e4d234f69554518f07151a9f6ea1a24dac5fb91ca49a867fb4bff1064e96d9bcf0f653e91be8707ff651f5b397500a104ee175702b583d06412bdf SHA512 838301792c71c52de1b293b28771aa5d7a3baa10d56c11da423dd8971ca2d76f64cb3b4f45a9cec6d1ab1de2ef90d0c68800880c7357749da2608aa6c388f602 DIST boto3-1.43.58.gh.tar.gz 1193531 BLAKE2B ac792780b99f2fad11db5a04b5b1784269ca08ee0dcf977990b91ca9a781f5b3d9c0753d092ec4eaead5c6bd44a53431cff35dfbcca3080809e3c351d30b174f SHA512 f19614bf5b8a07d245c2dfb44b66faf5944ba8c5ea0515e12d4d9d5e9e96b5e662c8d93d40211ce14856421037894cd58b12c348d4e3e1bd389abf1b03aa20fd DIST boto3-1.43.59.gh.tar.gz 1194595 BLAKE2B 170ddbac49d627ed6032bd71914c53392461aa48be8507ea1517bf3af9ecb345b0d89e93c4fede1c73654f9603061858ad036afcabf9697366e3667898b73caa SHA512 33a9d4b7ebfaa0c42a3e08c12c574c950c184827a3687085f510815152e6c51e9232bdc2a2a6a81a5b3851adbc91f155d274c3e19665e02147bd8e980fe0363f +DIST boto3-1.43.60.gh.tar.gz 1195559 BLAKE2B ea1b56bcda79258020d63cfdbff37c4ac90e7f1d1f85eaf258afba1f46ded202bb6dd7a13aebd5d6df3020a339d49665ca1427d870f6397df5ef60cd4dbc2365 SHA512 0f8c4261e40cee4cc2484493213c94acb7181c5f2bda6306c349348e4be9b4c1bdbf0dba4aa2355b2f9426bf9cd5aacb01a633d77347f9b04c598f0f6deb983c diff --git a/dev-python/boto3/boto3-1.43.60.ebuild b/dev-python/boto3/boto3-1.43.60.ebuild new file mode 100644 index 000000000000..93fbbe6dd59b --- /dev/null +++ b/dev-python/boto3/boto3-1.43.60.ebuild @@ -0,0 +1,53 @@ +# 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_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index 93c6a1114b62..4dc9eba6b0ab 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -15,3 +15,4 @@ DIST botocore-1.43.56.gh.tar.gz 16732272 BLAKE2B 4a399f5febf5ff58a49b09f1e1a0646 DIST botocore-1.43.57.gh.tar.gz 16738874 BLAKE2B cdb542e910966ad785337eadbfad829a179256d56b1b803b96838ce60ff01ddc0a787ba77d1ce2a56d354008b360e333e14bcd8ff61bab156e1ac37101d5b6e9 SHA512 0ecd214c1d33ec33aa66bf8eb082d379c47481efc59bf96d052e6bfa34183f000fd20c05cb0765490c6ce9cafba8d994ac7bc68c952da02ff3b8ed31d43a0658 DIST botocore-1.43.58.gh.tar.gz 16740851 BLAKE2B 19be86a3b7d0f3a9d62862c0a6bfa53d275fe149b879333cc49be9af4f43e9d1af919c966087d7de2da01f6b9f48c524457209dd7ab1ffe4e8291a185a89fa04 SHA512 3acdd10cbba121f9c32cc3931847c5778e2e273409869dd79e9150d9c5d787da010b9df4df642ce16a97d2b0d351eaa5d8a22e37c9d042f54341e65389fd162d DIST botocore-1.43.59.gh.tar.gz 16787137 BLAKE2B 6f2f018b252e7b1ddbb0cd77d0b5b5fa9ce2b9c0e3387ecff69ba8942301697f7fb037df232c8759fccb57fdab2a47293f7d7c86b3252d7a2025afe285884321 SHA512 8162143bcbde8e4552d2ea3b3e5c2819e12e09477e4b5e68b48e48abb3cc8c596fa382843a08af3c1967c2c9a0234647c1733f8b503ed4cfacf61d5306ade698 +DIST botocore-1.43.60.gh.tar.gz 16803466 BLAKE2B 0153288f3787913baaf2905d74d4f42399e2a19ba741bf669b231f02d468f95b0ad810b4d5397dc3f5c3e3b6d01e5fb1e2fd2895eeb008ab3546eb50bc9efdde SHA512 84e6e6447bae7436ddd666e1df89c99a98c468ab7a243b5f7b8338854f0e0da3c701afa261997b8301668d36140845a5b7497f711912f2c8e4117e4169022c2e diff --git a/dev-python/botocore/botocore-1.43.60.ebuild b/dev-python/botocore/botocore-1.43.60.ebuild new file mode 100644 index 000000000000..a3a161f78545 --- /dev/null +++ b/dev-python/botocore/botocore-1.43.60.ebuild @@ -0,0 +1,67 @@ +# 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_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + <dev-python/jmespath-2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + epytest tests/{functional,unit} +} diff --git a/dev-python/cachelib/Manifest b/dev-python/cachelib/Manifest index aa848d2a6e5c..87f1969b7f7c 100644 --- a/dev-python/cachelib/Manifest +++ b/dev-python/cachelib/Manifest @@ -1,2 +1,4 @@ DIST cachelib-0.14.0.tar.gz 170320 BLAKE2B eef18a1840468057ddd79a1b647de81d20d49abdc4b51c6b13ae1ed18cc5a635447c6e8ebe2112a3853c4809982f45ad5f2ac09afe66c36442c327fb584f0f02 SHA512 ed14f9e944454067b30c748b558670fc50343f332ec4bf91e7df97bbc2ad9647e97d221b62287b139df70faafcccbbf1c455710c71cb969e096e61997e98d13e DIST cachelib-0.14.0.tar.gz.provenance 9394 BLAKE2B cbb5092520d5510df628b504cc67b24d970ec202beead31831792f10da048c8bac02b86a2077778fe71e51884a5c50120fdab77248e438b9f81c196e9d662ddf SHA512 830d3d3b2a693e668aaed43cfbad7ada69b1670033c36d1354ab069cf7ba19ed4197b1c2cb7da77f8a5fa4817b8140982777cc2ba9d84362d963cf3c6684848f +DIST cachelib-0.15.0.tar.gz 113028 BLAKE2B 7e56e5d1df3d4a6f709d3377b3258c5ffc939fe4b3c70846cec2e0731bed4974df5b56db45ba6a976a3e3c4e7b7767f18b1c07b567330cd592cf7f5c336e97b2 SHA512 6fdba94598e674131e7689c7b2e8e8e33e9e145673bbb9230c191c0abbe071401b08c40cf93508d64624bc38c82f062d087b202375d62f7be272f132b253b71a +DIST cachelib-0.15.0.tar.gz.provenance 9677 BLAKE2B e4b197c2e40f467e3696bf2dce3a4d00cbf41bfe7d74d8847924fe9cfe3fff8c5edb86430b02ff009b7969384c4ad6799fee723965929db8c1b871b77596026b SHA512 1d1f41306bce40fdc9f56486fce723a7edd511f715deba00529da0324441343bde811d4e8ff9013ee4da21ee0bb4a8f9cf63fc9bfaf095049208037cd2ac1e05 diff --git a/dev-python/cachelib/cachelib-0.15.0.ebuild b/dev-python/cachelib/cachelib-0.15.0.ebuild new file mode 100644 index 000000000000..0761d3e7cb36 --- /dev/null +++ b/dev-python/cachelib/cachelib-0.15.0.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +PYPI_VERIFY_REPO=https://github.com/pallets-eco/cachelib +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Collection of cache libraries in the same API interface. Extracted from werkzeug" +HOMEPAGE=" + https://pypi.org/project/cachelib/ + https://github.com/pallets-eco/cachelib/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" + +BDEPEND=" + test? ( + dev-db/redis + dev-python/redis[${PYTHON_USEDEP}] + net-misc/memcached + www-servers/uwsgi[python,${PYTHON_USEDEP}] + !sparc? ( + dev-python/pylibmc[${PYTHON_USEDEP}] + ) + ) +" + +EPYTEST_PLUGINS=( pytest-xprocess ) +distutils_enable_tests pytest + +EPYTEST_IGNORE=( + # bug #818523 + tests/test_redis_cache.py + # requires some test server running + # (these tests require dev-python/boto3) + tests/test_dynamodb_cache.py + # requires mongo test server + tests/test_mongodb_cache.py +) diff --git a/dev-python/exif/exif-1.6.0.ebuild b/dev-python/exif/exif-1.6.0.ebuild index 98faaf405fa8..e2869ff06f05 100644 --- a/dev-python/exif/exif-1.6.0.ebuild +++ b/dev-python/exif/exif-1.6.0.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 @@ -6,7 +6,7 @@ PYTHON_COMPAT=( python3_{13..14} ) DISTUTILS_USE_PEP517=setuptools inherit distutils-r1 -DESCRIPTION="Read and modify image EXIF metadata using Python." +DESCRIPTION="Read and modify image EXIF metadata using Python" HOMEPAGE="https://gitlab.com/TNThieding/exif" SRC_URI="https://gitlab.com/TNThieding/${PN}/-/archive/v${PV}/${PN}-v${PV}.tar.bz2" S="${WORKDIR}/${PN}-v${PV}" diff --git a/dev-python/feedparser-sgmllib/Manifest b/dev-python/feedparser-sgmllib/Manifest new file mode 100644 index 000000000000..5c7dab7ea43d --- /dev/null +++ b/dev-python/feedparser-sgmllib/Manifest @@ -0,0 +1,2 @@ +DIST feedparser_sgmllib-2.0.1.tar.gz 22962 BLAKE2B 721e2c000ae6d398430d30e02498fc164471f5aa2274c90e016bb0d5f431e8b9538d2176f514858ea5de7c9b7233f732929d285cd449e81ca13ec8f5241a2bf0 SHA512 876d0d6f164b2044bcb0cb7aa77476090dca3d99b444806c747329ac03109753de77174459b8fdc6aa77cb0696ca3f3f3eb72b70232b71d7ee8c33bd13f9dc7c +DIST feedparser_sgmllib-2.0.1.tar.gz.provenance 10323 BLAKE2B a1c520121aacf34bf3be63d6f79cd0cae8a8059f1be29e5d0193ee576e248940fcfdd8342d3177b06cdf26b390c5e02234263d54544ae368a7e1f44e531fb13c SHA512 8d9f0f3b1a6b249e50d3cc535823ce8e23a132949c594692dcd216a0dca95f3c9aa46392e20b07813c747d9ff54420d17bf9a00217a007f1e6343ff8cfa13c74 diff --git a/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild b/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild new file mode 100644 index 000000000000..b622b8b03349 --- /dev/null +++ b/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.0.1.ebuild @@ -0,0 +1,23 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry-core +PYPI_VERIFY_REPO=https://github.com/python-syndication/feedparser-sgmllib +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="sgmllib from Python 2.7 for feedparser use" +HOMEPAGE=" + https://github.com/python-syndication/feedparser-sgmllib/ + https://pypi.org/project/feedparser-sgmllib/ +" + +LICENSE="PSF-2" +SLOT="0" +KEYWORDS="~amd64" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/feedparser-sgmllib/metadata.xml b/dev-python/feedparser-sgmllib/metadata.xml new file mode 100644 index 000000000000..d34971a915e9 --- /dev/null +++ b/dev-python/feedparser-sgmllib/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + </maintainer> + <stabilize-allarches /> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-python/feedparser/Manifest b/dev-python/feedparser/Manifest index fd0551631740..4dc2f5a6250b 100644 --- a/dev-python/feedparser/Manifest +++ b/dev-python/feedparser/Manifest @@ -1 +1,2 @@ DIST feedparser-6.0.12.gh.tar.gz 253342 BLAKE2B b3147c07c3319d644930face3818d93eb8ba786e0500d7e101c2b54b332488811c76340f033d13cfff39fbdd8126482f31baa27ff4f2b8f0ed1cab7dca9414ac SHA512 147b92f3be728726efb6c0f981c8b8fc0715ffb5e8f07f22ce40c3f9f7b1022f4a02452e2211ca472a27dad3ce5e1460412c7a341518a46becc7d5a3bf13c37f +DIST feedparser-6.0.14.gh.tar.gz 252830 BLAKE2B 831421d9e9c012cbeb25a8e34e1f1ae6cc6e69dc2ce3b866a731d3aedd4bb8c3360374fe83158a1ff6440e7a2aeedfee869839fbf5ae8f4b2899c4b5aa16f2fc SHA512 1480317e09835e1aba82b83b11f6622568950852754fb830c7b3d7be1192bc8ca6c1a6dad23e8340c2cff3add4c8baa8e479b9aa4f162bcd9c05330bc0a49caf diff --git a/dev-python/feedparser/feedparser-6.0.14.ebuild b/dev-python/feedparser/feedparser-6.0.14.ebuild new file mode 100644 index 000000000000..28cbb5b145b6 --- /dev/null +++ b/dev-python/feedparser/feedparser-6.0.14.ebuild @@ -0,0 +1,42 @@ +# 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_{13..14} ) + +inherit distutils-r1 + +MY_PV=${PV/_beta/b} +MY_P=${PN}-${MY_PV} +DESCRIPTION="Parse RSS and Atom feeds in Python" +HOMEPAGE=" + https://github.com/kurtmckee/feedparser/ + https://pypi.org/project/feedparser/ +" +SRC_URI=" + https://github.com/kurtmckee/feedparser/archive/v${MY_PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + =dev-python/feedparser-sgmllib-2*[${PYTHON_USEDEP}] +" + +src_prepare() { + # broken + rm \ + tests/illformed/chardet/{euckr,gb2312,tis620,windows1255}.xml \ + tests/illformed/undeclared_namespace.xml || die + distutils-r1_src_prepare +} + +python_test() { + "${EPYTHON}" tests/runtests.py -v || die "Tests failed with ${EPYTHON}" +} diff --git a/dev-python/guessit/Manifest b/dev-python/guessit/Manifest index 25fa4a8d01d3..c7305630c24b 100644 --- a/dev-python/guessit/Manifest +++ b/dev-python/guessit/Manifest @@ -1,3 +1,3 @@ -DIST guessit-3.8.0.tar.gz 271285 BLAKE2B 67ff29739839c79b95ad6022ad0329698af62abcbbbed7e9f52ba1c2e60f5c69defda5e87d97607d3eaeeb7668a9f4b82de05140f23555c800731c2236b0f7e6 SHA512 968e8f27dd41dcaece27444cd5117990726ef73467cedbc008dcf0fe2d1f2010209253e2fa6d645e30d9eaffe613080f1c2d77bda772227c1e6e04910d58f7ad DIST guessit-4.0.2.tar.gz 394394 BLAKE2B a5f9b85e2a9323db982c484aa19e6e56e8e3b138abce226dcefcef0bc9e8a105ad3fb9ab57aac4d1b65d6cc663781949934d96e3f2d9e5984fd6b1bfec34e223 SHA512 1687ace42d4c95d401949bef905a4962be3b04f7c8151da83a8803ef8e0e5b407d35159ad744a9b478607a50f4c15456f508852e638156896d1d92720cc987ac DIST guessit-4.1.0.tar.gz 464269 BLAKE2B 79cb2018233b1c1e603e6e50faff267769fbc91aaf7a5c011c1dd7c5ba162bcbf0beb507162ffecc8290cff63e8c441d2ed1ba150960d89a39f2d70d69a0344c SHA512 1a770f67a2950cfd62a1e26cd439dd770631efb992512dfce5b0f1efee219c15bec75ad9e5b81d15a69ff21e8e9780708af1bf58e4306e9fead5c9e694155e32 +DIST guessit-4.3.0.tar.gz 478988 BLAKE2B b9373976f3a5f9c0b633334167bb04ca68406af4d32478d2eb7f4a4055824498b0a9cee61bcc49df3b239fd13e3ff2f2ee829b2592c8932a44d1b31523b0e09a SHA512 ea512c73e3e60e6b318393dd7844f921d22878db1aed69418686db82fa11dbd395e04248c615ae5c8619b9aa864fdab9fa4c065471eb34108e53f4f3c1381dd8 diff --git a/dev-python/guessit/guessit-3.8.0.ebuild b/dev-python/guessit/guessit-4.3.0.ebuild index f3edb1b7d795..7291194841ef 100644 --- a/dev-python/guessit/guessit-3.8.0.ebuild +++ b/dev-python/guessit/guessit-4.3.0.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -DISTUTILS_USE_PEP517=setuptools +DISTUTILS_USE_PEP517=hatchling PYTHON_COMPAT=( python3_{13..14} ) inherit distutils-r1 pypi @@ -16,20 +16,20 @@ HOMEPAGE=" LICENSE="LGPL-3" SLOT="0" -KEYWORDS="amd64 ~arm arm64 x86" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" RDEPEND=" - >=dev-python/babelfish-0.5.5[${PYTHON_USEDEP}] - >=dev-python/rebulk-3.2.0[${PYTHON_USEDEP}] - dev-python/python-dateutil[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/babelfish-0.6.1[${PYTHON_USEDEP}] + <dev-python/rebulk-7[${PYTHON_USEDEP}] + >=dev-python/rebulk-6.0.1[${PYTHON_USEDEP}] + >=dev-python/python-dateutil-2.8.0[${PYTHON_USEDEP}] " -BDEPEND=" - test? ( - dev-python/pytest-mock[${PYTHON_USEDEP}] - ) +# pyyaml is optional, keep it because we historically had it by default +RDEPEND+=" + dev-python/pyyaml[${PYTHON_USEDEP}] " +EPYTEST_PLUGINS=( pytest-mock ) distutils_enable_tests pytest EPYTEST_IGNORE=( diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest index 466545fd96d2..d80327adaa39 100644 --- a/dev-python/hypothesis/Manifest +++ b/dev-python/hypothesis/Manifest @@ -17,6 +17,7 @@ DIST hypothesis-6.161.1.gh.tar.gz 9643537 BLAKE2B 82d8fc72747c3d724a2194d278f68e DIST hypothesis-6.161.5.gh.tar.gz 9645193 BLAKE2B d504a70bfa7e6cc18befcb86ce5be627847d3f040829bee45a4a19d942c9ab1e217314b3f48d0d3478583d95a28b45423715f486d01fcc0dcc6e9398023f6421 SHA512 cdd8169993fb1fb23631412794054b047d093862b005afa37858e79b5e4e599c55a2c514adc21e78d1cecd099ed7470e4b52e07e0da202b137244d5d7e3833f4 DIST hypothesis-6.161.8.gh.tar.gz 9649785 BLAKE2B 7058bec35557b223b4539401c830a806b20f8fae23577782d1917a14aacf64b62c4af3c59df2554b98aff9f21fe93b324150112ccceb1f8dbe21c04b1ed4630f SHA512 d1ee1f48e9589854ed1df59d6be7a385edcde03f325d43573867d8abd44cfa817406c31102c969bcfd8e9c4455c30397379742e1aaa8eaff057f02a77567043c DIST hypothesis-6.163.0.gh.tar.gz 9654307 BLAKE2B 8a1d1d67b3eee42ce2ab4623de53b27333473371abb12936fb4a706fb9de8c289c3600940603590e497ca4c4d5b8b8609137358d60c4b31ab26a01cf1d75dc18 SHA512 5322e735a4bd08eed4c13b22872101e4b7bd5681aeeb164a1cfa456e18b2cc48f6da2c49543873fe24aa0642c10c1fdfb5b9b7628e824abc7584f23600dd7f3f +DIST hypothesis-6.164.0.gh.tar.gz 9665401 BLAKE2B 9d5c5fc98191166cb0da35ac03ae5a377dd5c6d77144974d1b76e8e83368bbf0ad24d3c9ab6cf9758b77db59a5c5863b6ede859f91749ca5ded863fef554d9c8 SHA512 081e8643a6046eebfa4eec792ec001420e07be1acccbe6fc738a7baf476fa705991b34072d5b04dcf1a88ab77b90d6c26f99ee9edb2c1439cef54f16120e0def DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690 DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155 DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3 diff --git a/dev-python/hypothesis/hypothesis-6.164.0.ebuild b/dev-python/hypothesis/hypothesis-6.164.0.ebuild new file mode 100644 index 000000000000..8903f56543dd --- /dev/null +++ b/dev-python/hypothesis/hypothesis-6.164.0.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=maturin +CLI_COMPAT=( python3_{12..15} ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+),sqlite" + +RUST_MIN_VER="1.91.0" +CRATES=" + cfg-if@1.0.4 + crunchy@0.2.4 + getrandom@0.3.4 + half@2.7.1 + heck@0.5.0 + libc@0.2.186 + once_cell@1.21.4 + portable-atomic@1.13.1 + ppv-lite86@0.2.21 + proc-macro2@1.0.106 + pyo3-build-config@0.29.0 + pyo3-ffi@0.29.0 + pyo3-macros-backend@0.29.0 + pyo3-macros@0.29.0 + pyo3@0.29.0 + quote@1.0.46 + r-efi@5.3.0 + rand@0.9.4 + rand_chacha@0.9.0 + rand_core@0.9.5 + syn@2.0.118 + target-lexicon@0.13.5 + unicode-ident@1.0.24 + wasip2@1.0.4+wasi-0.2.12 + wit-bindgen@0.57.1 + zerocopy-derive@0.8.53 + zerocopy@0.8.53 +" + +inherit cargo distutils-r1 optfeature + +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/v${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" +S="${WORKDIR}/${P}/hypothesis" + +LICENSE="MPL-2.0" +# Dependent crate licenses +LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.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 + +QA_PREBUILT="usr/lib/python.*/site-packages/hypothesis/_native.*" + +python_test() { + # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/ + local EPYTEST_DESELECT=( + # broken somehow (xdist?) + 'hypothesis/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]' + ) + local EPYTEST_IGNORE=( + # require syrupy + tests/cover/test_custom_reprs.py + ) + + case ${EPYTHON} in + python3.15*) + EPYTEST_DESELECT+=( + 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]' + 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]' + 'hypothesis/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]' + ) + ;; + 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/jupyter-builder/Manifest b/dev-python/jupyter-builder/Manifest index 68ac7b85360a..26f466b45998 100644 --- a/dev-python/jupyter-builder/Manifest +++ b/dev-python/jupyter-builder/Manifest @@ -1 +1,2 @@ DIST jupyter_builder-1.1.1.tar.gz 971667 BLAKE2B 188d02c6aa1b414ff5a7b183bc67c762c9b7f02fa9ab633feb303e41f9c14247b2bc26a0c215461d8612f07776ca191f970218a3d00c05691b96340a8804482a SHA512 1a68ab521a748a1cf88da0bab8a68a3b07993b0b58bc828b5bdc82c558815179101d80797e14e27b72a15fbe4fc0e5f58e2d59e018a6f4c01b851bf96e14d8f6 +DIST jupyter_builder-1.2.0.tar.gz 976342 BLAKE2B 858f02b0eb14b3ffd8c170840130474442391f09196305732c40693b8711ade7f92cb31a6950b98b2743c7732c2426337b7c8ac11ab4c87f9f79a4c8a129747f SHA512 dff7817798a8a54c79cb791426679fbe7c40cc9924ca00441140f75cfd56e1eb79ddaea75af36b09e20486e1831047cb58b1b7ea0a997d9145dfb59f6d1f9bb1 diff --git a/dev-python/jupyter-builder/jupyter-builder-1.2.0.ebuild b/dev-python/jupyter-builder/jupyter-builder-1.2.0.ebuild new file mode 100644 index 000000000000..02718c0e34a9 --- /dev/null +++ b/dev-python/jupyter-builder/jupyter-builder-1.2.0.ebuild @@ -0,0 +1,40 @@ +# 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_{13..14} ) + +inherit distutils-r1 pypi xdg + +DESCRIPTION="JupyterLab build tools" +HOMEPAGE=" + https://jupyter.org/ + https://github.com/jupyterlab/jupyter-builder + https://pypi.org/project/jupyter-builder/ +" + +LICENSE="BSD MIT ISC" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64" + +RDEPEND=" + !<dev-python/jupyterlab-4.6.0 + dev-python/jupyter-core[${PYTHON_USEDEP}] + dev-python/traitlets[${PYTHON_USEDEP}] +" + +BDEPEND=" + test? ( + dev-python/jinja2-time[${PYTHON_USEDEP}] + ) +" + +EPYTEST_IGNORE=( + # TODO: package copier + tests/test_tpl.py +) + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/lesscpy/Manifest b/dev-python/lesscpy/Manifest index 97a0ae499107..922fce26cc1f 100644 --- a/dev-python/lesscpy/Manifest +++ b/dev-python/lesscpy/Manifest @@ -1 +1,3 @@ DIST lesscpy-0.15.1.tar.gz 177240 BLAKE2B 3199c3daecb3703039d13be6a23619e2a0e590c2b8f5450cd526e3bdedb22f8f782291ba820a8e1dcd06bca6542fb91eacd9d20b7f1f05cff701038d45e8e3cb SHA512 3a88c14d1e47a28d5e427e9cd0e1c2553dd3fc937085c54975c3e2612d623673e0a2fe05d7bb60dcdeda0f352b1be0354595ba9fac38483e7ab0a21529036e65 +DIST lesscpy-0.15.2.tar.gz 153361 BLAKE2B 0ede278d29dc15b2f5aabc7b4a392e23005b7220434036aaaf908024cef0c6b1623fddb0e8b1b868233dbe4755e987c51df4b213513b64e0282f404fee84d727 SHA512 1e78151917878b73c5c847b3aa246f14dbe0ac753e51252e209a9776e2e7f22359656f7ceed3eb669ea386ef98864b1b7b41804c79e850315b6c43dd0d15fd11 +DIST lesscpy-0.15.2.tar.gz.provenance 9312 BLAKE2B 65d90b1346d9bb2711e4b7d0c7426f08c2953d957ffa16a8e01049a0df37ddb6ac636e81f5accb5fcf57c642fa981a275b5529f7625f63e07c5b3520788f6f3f SHA512 7f15fc431ece18ce6329d181028967e12d7a14fb9ddce6e24b084aa27052c1fd31144fd6753f16a704867be207e7033b7cd48ed1395b7308cbf0958a10e6f57e diff --git a/dev-python/lesscpy/lesscpy-0.15.2.ebuild b/dev-python/lesscpy/lesscpy-0.15.2.ebuild new file mode 100644 index 000000000000..83598dbf8054 --- /dev/null +++ b/dev-python/lesscpy/lesscpy-0.15.2.ebuild @@ -0,0 +1,31 @@ +# 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/lesscpy/lesscpy +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A compiler written in Python for the LESS language" +HOMEPAGE=" + https://github.com/lesscpy/lesscpy/ + https://pypi.org/project/lesscpy/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + dev-python/ply[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/pkg-resources[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/lsprotocol/Manifest b/dev-python/lsprotocol/Manifest index 14f03a15ea4b..11612a64b213 100644 --- a/dev-python/lsprotocol/Manifest +++ b/dev-python/lsprotocol/Manifest @@ -1 +1,2 @@ +DIST lsprotocol-2025.0.0.gh.tar.gz 280633 BLAKE2B 56071055d8c23f942ef74bb7e4138546d5d6723bbb4448cc8b91ad435a66c2a328beaa65026b604daf313aa45009b75bb0df4d87a1b11cd6183b270607fd6c97 SHA512 d8b003516aac34e9a78d42235879b38a218133bfd71a06ef5aa829ecbda756ebad1675e8581da7f1d5730a7ff4593e8ea14fa58cf837278f4b6ee9e10b7ad4ce DIST lsprotocol-2025.0.0.tar.gz 74896 BLAKE2B 7e998352ed256455dc02ba1312ca9cb63ee6ad9cc77ca27f764037d249ce40a80e0860831b18930d399168840a21d86fefb8d443495e5909d76e7958304f889a SHA512 82d99f4176c85e8fcae0bb34d4fb6648d7212467b7b9d4edc108fab46e0b5e63c0e41c70a7d5d5888807115429d28cb59c17ce60abb16def09ec93605e95a6e1 diff --git a/dev-python/lsprotocol/files/lsprotocol-2025.0.0-fix-against-cattrs-25.0.0.patch b/dev-python/lsprotocol/files/lsprotocol-2025.0.0-fix-against-cattrs-25.0.0.patch new file mode 100644 index 000000000000..1069f979dccc --- /dev/null +++ b/dev-python/lsprotocol/files/lsprotocol-2025.0.0-fix-against-cattrs-25.0.0.patch @@ -0,0 +1,36 @@ +https://github.com/microsoft/lsprotocol/pull/443 + +From 7b5d4f7422bfe4c597b8124f99861e751d47f153 Mon Sep 17 00:00:00 2001 +From: Aleksandr Dovydenkov <asd@altlinux.org> +Date: Fri, 26 Sep 2025 10:29:26 +0300 +Subject: [PATCH] Add support cattrs>=25.0.0. + +Breaking on update to cattrs version 25.1.0. See: https://catt.rs/en/latest/migrations.html#the-default-structure-hook-fallback-factory +--- a/packages/python/lsprotocol/converters.py ++++ b/packages/python/lsprotocol/converters.py +@@ -1,6 +1,7 @@ + # Copyright (c) Microsoft Corporation. All rights reserved. + # Licensed under the MIT License. + ++from importlib.metadata import version + from typing import Optional + + import cattrs +@@ -8,10 +9,16 @@ + from . import _hooks + + ++def _get_default_converter(): ++ if version("cattrs") >= "25.0.0": ++ return cattrs.Converter(structure_fallback_factory=lambda _: cattrs.fns.raise_error) ++ return cattrs.Converter() ++ ++ + def get_converter( + converter: Optional[cattrs.Converter] = None, + ) -> cattrs.Converter: + """Adds cattrs hooks for LSP lsp_types to the given converter.""" + if converter is None: +- converter = cattrs.Converter() ++ converter = _get_default_converter() + return _hooks.register_hooks(converter) diff --git a/dev-python/lsprotocol/lsprotocol-2025.0.0-r1.ebuild b/dev-python/lsprotocol/lsprotocol-2025.0.0-r1.ebuild new file mode 100644 index 000000000000..db1e4f96fe49 --- /dev/null +++ b/dev-python/lsprotocol/lsprotocol-2025.0.0-r1.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{13..14} ) + +inherit edo distutils-r1 + +DESCRIPTION="Language Server Protocol types code generator packages" +HOMEPAGE=" + https://github.com/microsoft/lsprotocol + https://pypi.org/project/lsprotocol/ +" +# no tests in sdist +SRC_URI=" + https://github.com/microsoft/lsprotocol/archive/refs/tags/${PV}.tar.gz + -> ${P}.gh.tar.gz +" +S="${S}/packages/python" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +RDEPEND=" + dev-python/attrs[${PYTHON_USEDEP}] + dev-python/cattrs[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/pyhamcrest[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +PATCHES=( + "${FILESDIR}"/lsprotocol-2025.0.0-fix-against-cattrs-25.0.0.patch +) + +src_prepare() { + pushd "${WORKDIR}/${P}" >/dev/null || die + default + popd >/dev/null || die +} + +python_test() { + epytest ../../tests/python +} diff --git a/dev-python/markdown/Manifest b/dev-python/markdown/Manifest index 37d1c77e5416..c2c3b4d9c5d5 100644 --- a/dev-python/markdown/Manifest +++ b/dev-python/markdown/Manifest @@ -1 +1,2 @@ DIST markdown-3.10.2.tar.gz 368805 BLAKE2B cc5bbbfe702e81937b849f3b9b48089ca07a314ae8603ca5203b11f3eaed0591a042ac855abb1231378848073b9c0d071e22550952659e6b7711e5607ecf0d77 SHA512 cd84d5715002ed58cb1ec64f1b33d048892162cfc9675f570e146bc611ea92cf0dbb3a99018e091131188f29efde8c25da2e9218b5d0d96890c406cbde300074 +DIST markdown-3.10.3.tar.gz 372596 BLAKE2B 3f5ad04979c29234964928e436d4523ac0abbbbd9e4f1816652ca889d82993bc324f3d8d855f47b1be9291c3a4f97b9fbef1df0772af24af7aa3b920089cc26a SHA512 64e5e5f27a2aa0297e316c20796969e802acc3ffcf5e8c266fcf0eda2d188f30458adf1f0420508b104dfdb2a8b153d58b10a5b20f48d8327df5318b784307f9 diff --git a/dev-python/markdown/markdown-3.10.3.ebuild b/dev-python/markdown/markdown-3.10.3.ebuild new file mode 100644 index 000000000000..5a1dd7ba2712 --- /dev/null +++ b/dev-python/markdown/markdown-3.10.3.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_PN=${PN^} +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python implementation of the markdown markup language" +HOMEPAGE=" + https://python-markdown.github.io/ + https://pypi.org/project/Markdown/ + https://github.com/Python-Markdown/markdown/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +IUSE="doc test" +RESTRICT="!test? ( test )" + +BDEPEND=" + test? ( + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/pytidylib[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests unittest + +python_install_all() { + use doc && dodoc -r docs/ + + distutils-r1_python_install_all +} diff --git a/dev-python/mdformat-gfm/Manifest b/dev-python/mdformat-gfm/Manifest new file mode 100644 index 000000000000..1abda9d37f70 --- /dev/null +++ b/dev-python/mdformat-gfm/Manifest @@ -0,0 +1 @@ +DIST mdformat-gfm-1.0.0.gh.tar.gz 36267 BLAKE2B 26afb9022cfa529d81acd7aad5245bb161f6b0da04ce11335dba17d5dd3db6f9f2bea85ad137f21da1c17400e36595d3e82266bbf32dfd6fca368ab5608f66c9 SHA512 b3dd249883085a2aa0eaca5b8ec30f00f2ca17322a3e2d30ccb47f559b7f3b15641024d509369f4bc0dfb0947bd95b565ad6f9ee8c263028abcd726c46de0b77 diff --git a/dev-python/mdformat-gfm/mdformat-gfm-1.0.0.ebuild b/dev-python/mdformat-gfm/mdformat-gfm-1.0.0.ebuild new file mode 100644 index 000000000000..e420ee5ee712 --- /dev/null +++ b/dev-python/mdformat-gfm/mdformat-gfm-1.0.0.ebuild @@ -0,0 +1,32 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +DISTUTILS_USE_PEP517=flit +inherit distutils-r1 + +DESCRIPTION="Mdformat plugin for GitHub Flavored Markdown compatibility" +HOMEPAGE=" + https://github.com/hukkin/mdformat-gfm + https://pypi.org/project/mdformat-gfm/ +" +SRC_URI=" + https://github.com/hukkin/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + >=dev-python/mdformat-0.7.5[${PYTHON_USEDEP}] + dev-python/markdown-it-py[${PYTHON_USEDEP}] + >=dev-python/mdit-py-plugins-0.2.0[${PYTHON_USEDEP}] + >=dev-python/wcwidth-0.2.13[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/mdformat-gfm/metadata.xml b/dev-python/mdformat-gfm/metadata.xml new file mode 100644 index 000000000000..b746277b65d6 --- /dev/null +++ b/dev-python/mdformat-gfm/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>vowstar@gmail.com</email> + <name>Huang Rui</name> + </maintainer> + <longdescription lang="en"> + An mdformat plugin that adds GitHub Flavored Markdown support, covering + tables, task list items, strikethroughs and autolinks. It registers two + plugins, gfm for the full GFM syntax and tables for table rendering + alone, and supersedes the mdformat-tables plugin. + </longdescription> + <longdescription lang="zh"> + 为 mdformat 添加 GitHub Flavored Markdown 支持的插件,涵盖表格、任务 + 列表项、删除线和自动链接。它注册两个插件,gfm 提供完整的 GFM 语法, + tables 仅提供表格渲染,并取代了原先的 mdformat-tables 插件。 + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-python/mdformat/Manifest b/dev-python/mdformat/Manifest new file mode 100644 index 000000000000..6473ee78f91d --- /dev/null +++ b/dev-python/mdformat/Manifest @@ -0,0 +1 @@ +DIST mdformat-1.0.0.gh.tar.gz 118368 BLAKE2B f98c96e8b37f0079b44b3861ef517c8e0c66523a23130157e2f383542b652561306ac7d4e988750583a2ee96f9fd76581a9b5e9cbe5eacec2093ad0f596224bc SHA512 5aa75c71520016046be93745146cb8cc031d3658208616d160f11ad9bfbc64ac0edc9451148e94df7ba3b92c195d331d8ed3a915062d0c1d134c609e2d2f6a24 diff --git a/dev-python/mdformat/mdformat-1.0.0.ebuild b/dev-python/mdformat/mdformat-1.0.0.ebuild new file mode 100644 index 000000000000..f5daafc58f37 --- /dev/null +++ b/dev-python/mdformat/mdformat-1.0.0.ebuild @@ -0,0 +1,35 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 + +DESCRIPTION="CommonMark compliant Markdown formatter" +HOMEPAGE=" + https://github.com/hukkin/mdformat + https://pypi.org/project/mdformat/ +" +SRC_URI=" + https://github.com/hukkin/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + >=dev-python/markdown-it-py-1[${PYTHON_USEDEP}] + <dev-python/markdown-it-py-5[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_test() { + # read_toml_opts() caches per directory, recycled tmp dirs poison the cache + epytest -o tmp_path_retention_count=3 -o tmp_path_retention_policy=all +} diff --git a/dev-python/mdformat/metadata.xml b/dev-python/mdformat/metadata.xml new file mode 100644 index 000000000000..05fc7f9d4a08 --- /dev/null +++ b/dev-python/mdformat/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>vowstar@gmail.com</email> + <name>Huang Rui</name> + </maintainer> + <longdescription lang="en"> + Mdformat is an opinionated Markdown formatter that can be used to + enforce a consistent style in Markdown files. It is a CommonMark + compliant formatter, and its plugin system extends the syntax it + understands, for example to GitHub Flavored Markdown tables. + </longdescription> + <longdescription lang="zh"> + Mdformat 是一个风格固定的 Markdown 格式化工具,用于在 Markdown 文件中 + 强制统一的排版风格。它完全符合 CommonMark 规范,并通过插件系统扩展所 + 支持的语法,例如 GitHub Flavored Markdown 表格。 + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-python/parver/Manifest b/dev-python/parver/Manifest index 85ed613d5feb..6275c9fc257c 100644 --- a/dev-python/parver/Manifest +++ b/dev-python/parver/Manifest @@ -1 +1,3 @@ +DIST parver-1.0.1.post0.tar.gz 105980 BLAKE2B 318eb4d6d2d7b09d650995111dc099834948291e8e6f99d675a0a3d1b6a7e241fa5e731b092eaa64d69a78e135fc85733c69e926a201a63cfee6a99df66c6821 SHA512 be62768239893cbce5d510d9e3f830490cdc697afd44fe896ba2f22336845b49b6562423fb1e1fecd15554038292af7ece9a57392d6a9128d81979e4f622d6f6 +DIST parver-1.0.1.post0.tar.gz.provenance 9880 BLAKE2B 13db08e3facaae3cd07bc4fe4084619d2846ef26ff3f356f75481f6e272c946114a59a612ce1ec2e147ea71a9bf2df5ccd6ee720f2e77ea43f5abe34c586f882 SHA512 c2d13b8e4d4da60d834cae5eda3598267577106c5f4e24887d5fa10e8a99c1d830f1bfff496cebdeb0c3d8af2c360c78f4f1b2f08a7a2884ff1199a4fd31eab2 DIST parver-1.0.gh.tar.gz 105724 BLAKE2B 8fd53a7dbd0e2c906226cb96429b0642a2418cca0589fcd0ccd03491d7dbdfee5b82b64aa51b692a35037742932882d3dccd884308fe5599edb968f3633e86da SHA512 6d25f54f9c55c96d6bece378fa1d0e16abdbf6a1819512331469ad6339e34c8bd00a2cca9a39df2e3d496fd5727de69da9977d64172663efb3dccce79e186648 diff --git a/dev-python/parver/parver-1.0.1_p0.ebuild b/dev-python/parver/parver-1.0.1_p0.ebuild new file mode 100644 index 000000000000..aca16f9d7538 --- /dev/null +++ b/dev-python/parver/parver-1.0.1_p0.ebuild @@ -0,0 +1,33 @@ +# Copyright 2019-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/RazerM/parver +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Parse and manipulate version numbers" +HOMEPAGE=" + https://github.com/RazerM/parver/ + https://pypi.org/project/parver/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + +BDEPEND=" + test? ( + dev-python/pretend[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( hypothesis ) +distutils_enable_tests pytest + +python_test() { + epytest -o addopts= +} diff --git a/dev-python/plum/plum-0.8.7.ebuild b/dev-python/plum/plum-0.8.7.ebuild index 70041224a9e2..d58c72d05b50 100644 --- a/dev-python/plum/plum-0.8.7.ebuild +++ b/dev-python/plum/plum-0.8.7.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/rectangle-packer/rectangle-packer-2.0.2.ebuild b/dev-python/rectangle-packer/rectangle-packer-2.0.2.ebuild index 3a6136a92c32..ff8fee6735c0 100644 --- a/dev-python/rectangle-packer/rectangle-packer-2.0.2.ebuild +++ b/dev-python/rectangle-packer/rectangle-packer-2.0.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 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/redis/Manifest b/dev-python/redis/Manifest index a76ee40c1013..5ca32455cf27 100644 --- a/dev-python/redis/Manifest +++ b/dev-python/redis/Manifest @@ -1,2 +1,3 @@ DIST redis-py-7.4.1.gh.tar.gz 5201318 BLAKE2B 77fe9d5680cf0a9a70822d018c8af19c7b0222b4efd32fa0b5d5bc9a95eb9a0239cecb269940dacf41cc3bc86af1b1eec7fec4f338d9a6b0fdf87e1473f8c39b SHA512 ddce69580ee42c2622794f7bf94fb9170d2f3ac03041ac3ff0c5cc56b87d6f1876335e7304d7c22dac402bf7318f088e4a990bc2be818b54568959afcabc73bf DIST redis-py-8.0.1.gh.tar.gz 5407455 BLAKE2B 13345dae770f997c334df82930f0e78e2448798e2564b4a921e36e0c10999eb23244e12ffaf4bc74783ee3514c4bba01534053b06eb62d73063ac6a606667ec4 SHA512 76dde110fe52a8bf7fb24f3619ee12ae0818bb045918f5d68cecfc5b19b9f9abc2b206428161b895abebf6a52fa81788d3802f8367b4b6b800e1f24c52009165 +DIST redis-py-8.1.0.gh.tar.gz 5577112 BLAKE2B 65ccd47cbae320bb13272e19b9d355f122137341188896633377c462127659771d520a4d83eb4f905584cbe16e549c58dbc0a3ac1610249f961eb6f837f7d136 SHA512 d95349362e4ddfa18b2ea9c25c7a7614750dce20d27eb449a7048bd7f9fa7189d465d2bda32bcbe0143cd47be4a92aa11cfa68c3d8b73f0bbd7bbfbd3383a7e5 diff --git a/dev-python/redis/redis-8.1.0.ebuild b/dev-python/redis/redis-8.1.0.ebuild new file mode 100644 index 000000000000..bb3b3e921d62 --- /dev/null +++ b/dev-python/redis/redis-8.1.0.ebuild @@ -0,0 +1,126 @@ +# 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_{13..14} ) + +inherit distutils-r1 + +MY_P=redis-py-${PV/_beta/b} +DESCRIPTION="Python client for Redis key-value store" +HOMEPAGE=" + https://github.com/redis/redis-py/ + https://pypi.org/project/redis/ +" +SRC_URI=" + https://github.com/redis/redis-py/archive/v${PV/_beta/b}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86" + +BDEPEND=" + test? ( + dev-db/redis + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/xxhash[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{asyncio,forked,timeout} ) +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # Flaky test + tests/test_pubsub.py::TestPubSubDeadlock::test_pubsub_deadlock + tests/test_background.py::TestBackgroundScheduler::test_run_recurring + # require extra redis modules that apparently aren't packaged + # on Gentoo + tests/{,test_asyncio/}test_bloom.py + tests/{,test_asyncio/}test_graph.py + tests/{,test_asyncio/}test_json.py + tests/{,test_asyncio/}test_timeseries.py + # apparently available only in "Redis Stack 7.2 RC3 or later" + tests/test_commands.py::TestRedisCommands::test_tfunction_load_delete + tests/test_commands.py::TestRedisCommands::test_tfunction_list + tests/test_commands.py::TestRedisCommands::test_tfcall + # TODO + tests/test_commands.py::TestRedisCommands::test_lolwut + tests/test_commands.py::TestRedisCommands::test_module + tests/test_commands.py::TestRedisCommands::test_module_loadex + tests/test_commands.py::TestRedisCommands::test_zrank_withscore + tests/test_commands.py::TestRedisCommands::test_zrevrank_withscore + tests/test_commands.py::TestRedisCommands::test_xinfo_consumers + tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrank_withscore + tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrevrank_withscore + tests/test_asyncio/test_commands.py::TestRedisCommands::test_xinfo_consumers + tests/test_asyncio/test_pubsub.py::TestPubSubAutoReconnect::test_reconnect_socket_error[pool-hiredis-listen] + # requires sentinel? + tests/{,test_asyncio/}test_sentinel.py + # require REDIS_ENDPOINTS_CONFIG_PATH, except there's zero documentation + # or examples of what this is + tests/test_scenario/test_hitless_upgrade.py::TestPushNotifications + tests/test_scenario/test_maint_notifications.py::TestPushNotifications + # requires opentelemetry (with some unpackaged stuff) + tests/test_observability/test_provider.py::TestOTelProviderManagerGetMeterProvider + tests/test_asyncio/test_observability/test_recorder.py::TestObservableGaugeIntegration + # not marked properly + tests/test_cache.py::TestSSLCache + tests/test_cache.py::TestSentinelCache + ) + local EPYTEST_IGNORE=( + # fails over missing certs, we don't do cluster anyway + tests/test_asyncio/test_cluster.py + # require redis_entraid + tests/test_asyncio/test_credentials.py + tests/test_credentials.py + # pybreaker + tests/test_asyncio/test_multidb + tests/test_asyncio/test_scenario + tests/test_multidb + tests/test_scenario + # cluster, not marked properly + tests/maint_notifications/test_cluster_maint_notifications_handling.py + tests/maint_notifications/test_async_cluster_maint_notifications_handling.py + # opentelemetry + tests/test_observability/test_recorder.py + ) + + # TODO: try to run more servers? + epytest -m "not redismod and not onlycluster and not replica and not ssl and not multidb_integration" +} + +src_test() { + local redis_pid="${T}"/redis.pid + local redis_port=6379 + + if has_version ">=dev-db/redis-7"; then + local extra_conf=" + enable-debug-command yes + enable-module-command yes + " + fi + + # Spawn Redis itself for testing purposes + einfo "Spawning Redis" + einfo "NOTE: Port ${redis_port} must be free" + "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server" + daemonize yes + pidfile ${redis_pid} + port ${redis_port} + bind 127.0.0.1 ::1 + ${extra_conf} + EOF + + # Run the tests + distutils-r1_src_test + + # Clean up afterwards + kill "$(<"${redis_pid}")" || die +} diff --git a/dev-python/shtab/Manifest b/dev-python/shtab/Manifest index 5f783f485311..383e6a4c3e34 100644 --- a/dev-python/shtab/Manifest +++ b/dev-python/shtab/Manifest @@ -2,3 +2,5 @@ DIST shtab-1.8.0.tar.gz 46062 BLAKE2B 513c1b12a7fe511c1515d146180bfe8f26bf724f76 DIST shtab-1.8.0.tar.gz.provenance 9212 BLAKE2B 6f2c759c9e4b0583d786043598c7c9f7678c5533dfa1e54d6286a076eaccd8112dfb0aaa4cd7620aef70bb603ae23005d49c2db3aaa8eff9911afc4159e78628 SHA512 f30c2838b11f548e8e11be363b0563c7475f48dcb47e846a5697872013efcae20112b46c8f9505248ca91823815baea42dd8100e30b955921743433329bbfcca DIST shtab-1.8.1.tar.gz 46449 BLAKE2B eb71eff85121ccb37bcd4ac00e33aed89ed770c69386ec3c8fd6d17b8895a3b24b755880b58eb7ea6d02dc77b19e740ca44870919c384c2b630f39062f529a47 SHA512 d8a1dc61a12272c72c06c719806400f182fddc7b8e75e62a77c85e1f773e6e37a5138e3e166187fdab06a94e2f9676a1da6d3f66f86e6c778bf4055d222461ab DIST shtab-1.8.1.tar.gz.provenance 9531 BLAKE2B 1a422235d4a1387c139e01d50079b9456939242628e097f291053a939d18bdb2aeb6a33358630ebe212b8d6873e73417f0fa3ab093244825807eeb3ae5a9f0d9 SHA512 e85a719310143fec6df4f87aaa312009f39c24b98185f812b66ec2a5a3776943f00ac49501709bd742ba95b524edcc05c3fbad44f7f25092038cf4e0a2571635 +DIST shtab-1.8.2.tar.gz 46701 BLAKE2B 6b943b26f29984d3d736ab43ece3e8fff4ba513edbaab282b8485db219451d77cfab5d08172cde7949dd5229289c3424f356011741265ff0616a9b3eb3a8e906 SHA512 9b4e88e648daa6c5709ad83b9781d787752d8eeb71dfe6bc6392fd530211f36d710ffb96aaa67730a4f29ff48d2b7c8e7195e9fb8169a20fccad1fc1ec608081 +DIST shtab-1.8.2.tar.gz.provenance 9249 BLAKE2B e4d849b6172ccd282c744263b58063ee87298f096d6612eb0e2a0cd0c716e01493d38a540316103bffd221ec29852b3df5afdaab46bfa64bcd1d3c86efdfea82 SHA512 c7bc34b4feba05ee44300a463bf6dca53bb5ca1f887cdc21bd2517476285d0129e3295be0603f3104d01034cd47a9a14d6e7b66c13dba8aff1893ae074749670 diff --git a/dev-python/shtab/shtab-1.8.2.ebuild b/dev-python/shtab/shtab-1.8.2.ebuild new file mode 100644 index 000000000000..cbff23aac821 --- /dev/null +++ b/dev-python/shtab/shtab-1.8.2.ebuild @@ -0,0 +1,27 @@ +# Copyright 2024-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/tqdm/shtab +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Automagic shell tab completion for Python CLI applications" +HOMEPAGE=" + https://github.com/tqdm/shtab/ + https://pypi.org/project/shtab/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" + +BDEPEND=" + dev-python/setuptools-scm[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest index 449aa1209ede..100f3c518316 100644 --- a/dev-python/translate-toolkit/Manifest +++ b/dev-python/translate-toolkit/Manifest @@ -1,5 +1,4 @@ -DIST translate-3.19.11.gh.tar.gz 1355618 BLAKE2B 65424bb83f67c04566611ebd426ad6dd233cebab252b09768cc5253c44d9291a543fe91a91e23ecbc8fdc5586fdb340fcb40f26028dcbf9973a8a20d7dd91f2c SHA512 776392694ff9802b74e90c5ac01d2f74da9069840c73b24ad6b7f6ffa4c912acd14a4ef8f390fd74acd48e01b0364ac69faf47027725c41775685b03032732a6 -DIST translate-3.19.12.gh.tar.gz 1363988 BLAKE2B 2a9b9ffc74de96d31fafef18c3576b56834844bfcd459bff0eb7eff01938bbf48ec9051ac97de4e5862bf5c6438d599c0055a50d0a8e661d816fc2d4f95729d4 SHA512 8ee6753d20d4a5bb460a23c7538c2d90be98023d61661b6e036d88d6003f18d4b51ec4673f3ce562b5ecba903a63e0dfa16205548477366c796f9714a541a2b7 DIST translate-3.19.13.gh.tar.gz 1365289 BLAKE2B 533cbe8be6e5585157bf63518b9f53f359626c04e1c495d8dc713c3ed00ac43fc5591a2db8c6686776ad440c8711d8e5544003abf11fe9bb457df5ea5a3364d0 SHA512 814ad39c2d49f3c96079039173949a09649ef671516f0c77ce749b0c3b7b8978d4217458e7e39f9c10f497f5bd013f80796fa098794cd59ee33c52466beed867 DIST translate-3.19.14.gh.tar.gz 1375782 BLAKE2B 37f1dfb46592e1f70b5f437ff016e529f4f4432747e7c592cfe065ecd286a6dd0ef30e4babca7007fd3eb536b86d2832d81b744aee4a009f6ca23ea88ddf4715 SHA512 27f71881a498054e367e77f1a19df46e2a58c37325f55e764b2022754b0ac11fc2b574874da473f30e0ffb586ee5f16d4b625e49dd843cae1a920b89a185a6a4 DIST translate-3.19.15.gh.tar.gz 1406521 BLAKE2B a47cd9202ef318b518a7c268fd3eb8b9f3aca526c4735d1c71d4dccf150da7793b6fd468cf473c25006a4f32fe3a8677b8544f7407a90a9c4f5e3a95a32efcaa SHA512 cdc353b7730eb18a177fdc32a0c0018d636be37cba4392eb6f28d74fcc33c8abf34caa8f54cb0e7351a9fcfddf0bb78ced065a2309995b82a24338766b9c917a +DIST translate-3.19.16.gh.tar.gz 1414743 BLAKE2B 8bd639d9c47841a242a2f6c5b0b24d224d6aee2e5489b71a74cdf4eda29e85860cb865975604f39ef42d9362d39ee1c991e98350cb86b31a963af11751e6e6bf SHA512 2fe361987416cd454f8e2c68d8420396c3f9f673ef0c9322adeadadabcaa70463126f429d2852dd43f3895a25c9c6e99a521631c4c543547a77434fabdc18144 diff --git a/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild deleted file mode 100644 index e3e3737485ca..000000000000 --- a/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# 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_{13..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}] ) -" -BDEPEND=" - test? ( - dev-python/phply[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( syrupy ) -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' - ) - 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/translate-toolkit/translate-toolkit-3.19.12.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.16.ebuild index 87c171eea069..87c171eea069 100644 --- a/dev-python/translate-toolkit/translate-toolkit-3.19.12.ebuild +++ b/dev-python/translate-toolkit/translate-toolkit-3.19.16.ebuild diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest index 54eddf39cddd..aef398702125 100644 --- a/dev-python/virtualenv/Manifest +++ b/dev-python/virtualenv/Manifest @@ -6,3 +6,5 @@ DIST virtualenv-21.6.1.tar.gz 5526620 BLAKE2B a970f52b9a8ef5948ac0f2827ce9d2b724 DIST virtualenv-21.6.1.tar.gz.provenance 9508 BLAKE2B fa5122071df6df6435ad11f102bed2f85d5ebbaf8ab6056c2f2c66c1d3e8366692dadda375f2c39151abc413ec540169197730101ba3061dccec0cf2f7bd2668 SHA512 f5180591d1f4cca9bb5632ea2918437daf30c1deb91fac7676a783e5ee19ea424a6bac7fd3a8c6eddff7996ef6c1a4358746d92788cbd283a8abb579d745935e DIST virtualenv-21.7.0.tar.gz 5527510 BLAKE2B 915d3d3fb3c221fa5a245f7856ec3fa398a70ffb37af246992648d2ed1e6cefcd0aeea4ac64fab2273220cc692020b39512f41d3fc348524dca500f9788a006b SHA512 f6ccbf966e5296129ac82ec52f56900d417bd96ca5cd222493a2c67d6bd33459a8cf7e445c82d04da7e7239e6e46b670643e180153445315fd8ef7e062a9eb1b DIST virtualenv-21.7.0.tar.gz.provenance 9669 BLAKE2B 12e8b7ad4728e5a1c0563a41829b28d9baacac63b4258ff0a2b54f465b38bad1c3ff1e8605634261a286a15b78b937e91a8d344c09b5daf304972fdbdd0e0013 SHA512 65d295d5c9207d439a12f39aa458572e9b6388a2685ec309d2350922a9dba67cc288b8f3bfb7b91da4e3dff9e628884f1a1d32c1b666965de23871a0456b0346 +DIST virtualenv-21.7.1.tar.gz 5525237 BLAKE2B f3c8c19804d37ed22a5e114b5cede8bb9c7232310d3cfc12d15437e5bce8495043938a0eaf1fdacee4d3030dde71aa78a5e82ce4fb8b6bab78436b823eb85de2 SHA512 6faa5e3441dcbdd4f540107e84a903d392863b7ad050e5d6f3042d039cf597029be5541be062d7b6c421b1ea6d8a907b866bb6745e05ff5a2f9142f1c0c3f333 +DIST virtualenv-21.7.1.tar.gz.provenance 9508 BLAKE2B 97e69664764c1151a7d4b2d9d3e6b4ad5d053ac297dcea5d5c1238c0a3692867dc4e36bb394dd5ddfe513fbbf11b7218c2e5956513a3ecef43cf1f74b2dbdfb8 SHA512 26de17a71d01421028d38c0074b7564c8c01a20226a3e43eb1e6e990e0d2af0311e789428567ad939544967a61f49cd9ec05490b99c130b14968fdcfa2b34a55 diff --git a/dev-python/virtualenv/virtualenv-21.7.1.ebuild b/dev-python/virtualenv/virtualenv-21.7.1.ebuild new file mode 100644 index 000000000000..0abb2e161fb7 --- /dev/null +++ b/dev-python/virtualenv/virtualenv-21.7.1.ebuild @@ -0,0 +1,117 @@ +# 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_{13..14} ) +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Virtual Python Environment builder" +HOMEPAGE=" + https://virtualenv.pypa.io/en/stable/ + https://pypi.org/project/virtualenv/ + https://github.com/pypa/virtualenv/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +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.4.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/time-machine[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + >=dev-python/packaging-20.0[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + ) +" + +src_prepare() { + local PATCHES=( + # use wheels from ensurepip bundle + "${FILESDIR}/${PN}-21.5.1-ensurepip.patch" + ) + + distutils-r1_src_prepare + + # workaround test failures due to warnings from setuptools-scm, sigh + echo '[tool.setuptools_scm]' >> pyproject.toml || die + + # remove useless pins + sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die + + # remove bundled wheels + rm src/virtualenv/seed/wheels/embed/*.whl || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping testing on ${EPYTHON}" + return + fi + + local EPYTEST_DESELECT=( + tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data + # tests for old wheels with py3.7 support + tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke + tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support + # broken by different wheel versions in ensurepip + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none + tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output + tests/unit/seed/wheels/test_wheels_util.py::test_embed_wheel_below_oldest_supported_is_missing + # 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 + ) + + local -x TZ=UTC + local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} time-machine ) + 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 +} diff --git a/dev-python/xmlsec/files/xmlsec-1.3.17-fix-against-xmlsec-1.3.11.patch b/dev-python/xmlsec/files/xmlsec-1.3.17-fix-against-xmlsec-1.3.11.patch new file mode 100644 index 000000000000..5ecb22b6ace8 --- /dev/null +++ b/dev-python/xmlsec/files/xmlsec-1.3.17-fix-against-xmlsec-1.3.11.patch @@ -0,0 +1,108 @@ +https://github.com/lsh123/xmlsec/issues/1148 +https://github.com/xmlsec/python-xmlsec/pull/422 +https://github.com/xmlsec/python-xmlsec/commit/5e8b4e6aa133c358b8aaf8e17ceb5b3b7fea78e8 + +From 5e8b4e6aa133c358b8aaf8e17ceb5b3b7fea78e8 Mon Sep 17 00:00:00 2001 +From: Amin Solhizadeh <amin.solhizadeh@gmail.com> +Date: Tue, 28 Apr 2026 09:19:53 +0200 +Subject: [PATCH] Bump xmlsec1 unix lib to 1.3.11 (#422) + +xmlsec1 1.3.11 may call OPENSSL_cleanup() from the OpenSSL +backend during shutdown. OpenSSL cannot be reinitialized in the +same process after that cleanup runs. + +Update the lifecycle test to call init() before shutdown(), run it +last, and stop testing shutdown/init reinitialization. Document the +new lifecycle constraint in the module docs and runtime docstrings. + +See https://github.com/lsh123/xmlsec/issues/1148 for details. +--- a/doc/source/modules/xmlsec.rst ++++ b/doc/source/modules/xmlsec.rst +@@ -1,6 +1,17 @@ + ``xmlsec`` + ---------- + ++Lifecycle ++~~~~~~~~~ ++ ++The module initializes the underlying xmlsec library on import. Applications ++that call :func:`xmlsec.shutdown` should treat it as process-final and should ++not call :func:`xmlsec.init` afterwards. ++ ++This is required because upstream xmlsec1 versions starting with 1.3.11 may ++call ``OPENSSL_cleanup()`` during shutdown when using the OpenSSL backend. ++OpenSSL cannot be reinitialized in the same process after that cleanup has run. ++ + .. automodule:: xmlsec + :members: + :undoc-members: +--- a/src/main.c ++++ b/src/main.c +@@ -101,8 +101,11 @@ static int PyXmlSec_Init(void) { + static char PyXmlSec_PyInit__doc__[] = \ + "init() -> None\n" + "Initializes the library for general operation.\n\n" +- "This is called upon library import and does not need to be called\n" +- "again :func:`~.shutdown` is called explicitly).\n"; ++ "This is called upon library import and normally does not need to be\n" ++ "called explicitly. It is only valid before shutdown() has been called.\n\n" ++ "Calling init() after shutdown() is unsupported because upstream\n" ++ "xmlsec1 1.3.11+ may call OPENSSL_cleanup() during shutdown, and OpenSSL\n" ++ "cannot be reinitialized in the same process after that cleanup.\n"; + static PyObject* PyXmlSec_PyInit(PyObject *self) { + if (PyXmlSec_Init() < 0) { + return NULL; +@@ -114,7 +117,11 @@ static char PyXmlSec_PyShutdown__doc__[] = \ + "shutdown() -> None\n" + "Shutdowns the library and cleanup any leftover resources.\n\n" + "This is called automatically upon interpreter termination and\n" +- "should not need to be called explicitly."; ++ "should not need to be called explicitly.\n\n" ++ "Shutdown is process-final. Do not call init() after shutdown(),\n" ++ "because upstream xmlsec1 1.3.11+ may call OPENSSL_cleanup() during shutdown,\n" ++ "and OpenSSL cannot be reinitialized in the same process after that\n" ++ "cleanup."; + static PyObject* PyXmlSec_PyShutdown(PyObject* self) { + PyXmlSec_Free(free_mode); + Py_RETURN_NONE; +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -1,10 +1,11 @@ + def pytest_collection_modifyitems(items): +- """Put the module init test first. ++ """Put the module shutdown test last. + +- This way, we implicitly check whether any subsequent test fails because of module reinitialization. ++ xmlsec shutdown is process-final with OpenSSL cleanup introduced in ++ xmlsec1 1.3.11, so no tests should use xmlsec after it runs. + """ + +- def module_init_tests_first(item): +- return int('test_xmlsec.py::TestModule::test_reinitialize_module' not in item.nodeid) ++ def module_init_shutdown_tests_last(item): ++ return int('test_xmlsec.py::TestModule::test_init_shutdown_module' in item.nodeid) + +- items.sort(key=module_init_tests_first) ++ items.sort(key=module_init_shutdown_tests_last) +--- a/tests/test_xmlsec.py ++++ b/tests/test_xmlsec.py +@@ -3,11 +3,14 @@ + + + class TestModule(base.TestMemoryLeaks): +- def test_reinitialize_module(self): +- """This test doesn't explicitly verify anything, but will be invoked first in the suite. ++ iterations = 0 + +- So if the subsequent tests don't fail, we know that the ``init()``/``shutdown()`` +- function pair doesn't break anything. ++ def test_init_shutdown_module(self): ++ """Check explicit initialization before final module shutdown. ++ ++ This test is invoked last because shutdown is process-final: since ++ xmlsec1 1.3.11, its OpenSSL backend may call OPENSSL_cleanup(), after ++ which OpenSSL cannot be reinitialized in the same process. + """ +- xmlsec.shutdown() + xmlsec.init() ++ xmlsec.shutdown() diff --git a/dev-python/xmlsec/xmlsec-1.3.17-r1.ebuild b/dev-python/xmlsec/xmlsec-1.3.17-r1.ebuild new file mode 100644 index 000000000000..c1b12cec07ac --- /dev/null +++ b/dev-python/xmlsec/xmlsec-1.3.17-r1.ebuild @@ -0,0 +1,64 @@ +# Copyright 2021-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_{13..14} ) + +inherit distutils-r1 + +MY_P=python-xmlsec-${PV} +DESCRIPTION="Python bindings for the XML Security Library" +HOMEPAGE=" + https://github.com/xmlsec/python-xmlsec/ + https://pypi.org/project/xmlsec/ +" +SRC_URI=" + https://github.com/xmlsec/python-xmlsec/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +DEPEND=" + dev-libs/libxml2:= + dev-libs/xmlsec:=[openssl] +" +RDEPEND=" + ${DEPEND} + dev-python/lxml[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/pkgconfig[${PYTHON_USEDEP}] + dev-python/setuptools-scm[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] +" + +EPYTEST_DESELECT=( + # Fragile based on black version? + tests/test_type_stubs.py::test_xmlsec_constants_stub +) + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +PATCHES=( + "${FILESDIR}"/xmlsec-1.3.17-fix-against-xmlsec-1.3.11.patch +) + +src_configure() { + export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} + + export PYXMLSEC_OPTIMIZE_SIZE= + if use debug; then + # we don't want to use PYXMLSEC_ENABLE_DEBUG envvar, + # as it forces -O0 + export CPPFLAGS="${CPPFLAGS} -DPYXMLSEC_ENABLE_DEBUG=1" + fi +} |
