summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-09-21 19:03:47 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-09-21 19:03:47 +0000
commit4ffd2a8f0efdfe2ed46b9e2a8f863b4bf1923885 (patch)
treecefdab33c8f91f56129e4820b7f328366a1a8fd6 /dev-python
parente33326e45701bbfe59ab87151b6353c25ce1eecb (diff)
downloadbaldeagleos-repo-4ffd2a8f0efdfe2ed46b9e2a8f863b4bf1923885.tar.gz
baldeagleos-repo-4ffd2a8f0efdfe2ed46b9e2a8f863b4bf1923885.tar.xz
baldeagleos-repo-4ffd2a8f0efdfe2ed46b9e2a8f863b4bf1923885.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/cheroot/Manifest1
-rw-r--r--dev-python/cheroot/cheroot-11.0.0.ebuild97
-rw-r--r--dev-python/electrum-ecc/Manifest1
-rw-r--r--dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild39
-rw-r--r--dev-python/emoji/Manifest1
-rw-r--r--dev-python/emoji/emoji-2.15.0.ebuild26
-rw-r--r--dev-python/moto/Manifest2
-rw-r--r--dev-python/moto/moto-5.1.13.ebuild114
-rw-r--r--dev-python/poetry-core/Manifest1
-rw-r--r--dev-python/poetry-core/poetry-core-2.2.1.ebuild66
-rw-r--r--dev-python/poetry/Manifest1
-rw-r--r--dev-python/poetry/poetry-2.2.1.ebuild86
-rw-r--r--dev-python/pyglet/Manifest2
-rw-r--r--dev-python/pyglet/pyglet-2.1.9.ebuild (renamed from dev-python/pyglet/pyglet-2.1.6.ebuild)4
-rw-r--r--dev-python/pyparsing/Manifest1
-rw-r--r--dev-python/pyparsing/pyparsing-3.2.5.ebuild59
-rw-r--r--dev-python/pypdf/Manifest1
-rw-r--r--dev-python/pypdf/pypdf-6.1.0.ebuild51
-rw-r--r--dev-python/pyzotero/Manifest2
-rw-r--r--dev-python/pyzotero/pyzotero-1.6.15.ebuild49
-rw-r--r--dev-python/rich-click/Manifest1
-rw-r--r--dev-python/rich-click/rich-click-1.9.1.ebuild41
-rw-r--r--dev-python/whenever/Manifest1
-rw-r--r--dev-python/whenever/whenever-0.8.9.ebuild149
24 files changed, 793 insertions, 3 deletions
diff --git a/dev-python/cheroot/Manifest b/dev-python/cheroot/Manifest
index fe5c14a2e8b1..0566680233f2 100644
--- a/dev-python/cheroot/Manifest
+++ b/dev-python/cheroot/Manifest
@@ -1 +1,2 @@
DIST cheroot-10.0.1.tar.gz 167586 BLAKE2B d8c882c3d16d29a2f97f35542321fd0aba4d0f9b310bc1359f9b832362e2d75424077d02d9a810a33a1bd10cf2ba9922a8baf8519dbd04c5e6f9b48edd3c3db1 SHA512 c878647a7bcf564509ee07481b3e371a2e09019d78240e79293bc4e0bfa872e8e2f947925c54eda56cc1790a3ff4d656c70066278c74073b44fc070627f5c71d
+DIST cheroot-11.0.0.tar.gz 182140 BLAKE2B a33f192373ce9f223b7dc0ee51babfb09da921ec079cac323ca567af5e06aae68487b1977019df805931c868c4986b04c5a6084843602c2424fc58398a2df61d SHA512 143e0f7f5b9dd9a2ad668e7e935a44b41f9b586f0549476cad22a5b8b099b882d3dee0e008f2a53a6305901659e921f3dc788bdecd87a6e487a3539d61b15e20
diff --git a/dev-python/cheroot/cheroot-11.0.0.ebuild b/dev-python/cheroot/cheroot-11.0.0.ebuild
new file mode 100644
index 000000000000..23e4ebcc97c7
--- /dev/null
+++ b/dev-python/cheroot/cheroot-11.0.0.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="High-performance, pure-Python HTTP server used by CherryPy"
+HOMEPAGE="
+ https://cherrypy.dev/
+ https://pypi.org/project/cheroot/
+ https://github.com/cherrypy/cheroot/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/more-itertools-2.6[${PYTHON_USEDEP}]
+ dev-python/jaraco-functools[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-7.0.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/jaraco-context[${PYTHON_USEDEP}]
+ dev-python/jaraco-text[${PYTHON_USEDEP}]
+ dev-python/portend[${PYTHON_USEDEP}]
+ dev-python/requests-toolbelt[${PYTHON_USEDEP}]
+ dev-python/requests-unixsocket[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+PATCHES=(
+ # https://github.com/cherrypy/cheroot/pull/703
+ "${FILESDIR}/${PN}-10.0.1-no-pytest-forked.patch"
+)
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ sed -e '/--cov/d' \
+ -e '/--testmon/d' \
+ -e '/--numproc/d' \
+ -i pytest.ini || die
+
+ # broken
+ sed -i -e '/False.*localhost/d' cheroot/test/test_ssl.py || die
+ # pypytools is py2 stuff
+ sed -i -e '/pypytools/d' cheroot/test/test_server.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires pypytools, see above
+ cheroot/test/test_server.py::test_high_number_of_file_descriptors
+ # known test failures with OpenSSL 3.2.0
+ cheroot/test/test_ssl.py::test_https_over_http_error
+ # hardcoded errno codes (sigh)
+ # https://github.com/cherrypy/cheroot/issues/736
+ cheroot/test/test_errors.py::test_plat_specific_errors
+ cheroot/test/test_ssl.py::test_http_over_https_error
+ )
+
+ case ${EPYTHON} in
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ # https://github.com/cherrypy/cheroot/issues/695
+ cheroot/test/test_conn.py::test_remains_alive_post_unhandled_exception
+ )
+ ;;
+ esac
+
+ local EPYTEST_IGNORE=()
+ if ! has_version "dev-python/pyopenssl[${PYTHON_USEDEP}]" ||
+ ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"
+ then
+ EPYTEST_IGNORE+=(
+ cheroot/test/test_ssl.py
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/electrum-ecc/Manifest b/dev-python/electrum-ecc/Manifest
index 4aae35fb0dba..a18367a8071e 100644
--- a/dev-python/electrum-ecc/Manifest
+++ b/dev-python/electrum-ecc/Manifest
@@ -1 +1,2 @@
DIST electrum_ecc-0.0.5.tar.gz 2009297 BLAKE2B e67858bb7e30f5e12a37f7adf82242b8fbee4c55724154748b8ab59f12413cc1a6c82a2655765326684cd5c2f1f57de971c5c320c810b27328704bd4a7f8d1b2 SHA512 982afb1a36f25d460413e678ebb4981d5ecca69a148c5d4d7d5f878d534c69b8966e9ac50499742eb5a89a67d2f2855a8887e2f28dd8aa18bc6ded6e1518c5e7
+DIST electrum_ecc-0.0.6.tar.gz 2156345 BLAKE2B c252fc1b2446dfcfb52a2ca28f959c439cdf214cbeebb62d20a0da74ee49f7e8b7e324e70f73cb61326fba5c1e68a93593485696d0289bee70080a15dd1aacbf SHA512 f20fecbb361badc920e2919df9e1cbb4d76fc13880c032c2909084177b57ae7a379e926f92fcc1ca8a10d096b12dbf7fd13c955541e642ea782b0c0cb245c738
diff --git a/dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild b/dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild
new file mode 100644
index 000000000000..c1eb12f70294
--- /dev/null
+++ b/dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure python ctypes wrapper for libsecp256k1"
+HOMEPAGE="
+ https://github.com/spesmilo/electrum-ecc/
+ https://pypi.org/project/electrum-ecc/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# check ecc_fast.py for supported SOVERSIONS
+RDEPEND="
+ || (
+ dev-libs/libsecp256k1:0/5
+ dev-libs/libsecp256k1:0/2
+ )
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+
+export ELECTRUM_ECC_DONT_COMPILE=1
+
+python_test() {
+ cd tests || die
+ eunittest
+}
diff --git a/dev-python/emoji/Manifest b/dev-python/emoji/Manifest
index f153ab7bb51a..3da5a2910880 100644
--- a/dev-python/emoji/Manifest
+++ b/dev-python/emoji/Manifest
@@ -1 +1,2 @@
DIST emoji-2.14.1.gh.tar.gz 668132 BLAKE2B 99e1d0dbf7694ff44a2dab4d3c3095c866dd48603f3b394fcad05d156014186673dd9117a7f6d885da859c34d869ee72b34c14ded1e7ccccf64f85f231cb098f SHA512 05151df1ddda61efad85c42f4f2c0e049883bd9a2c1a2ffdda59aa9e90c1105662f8529071aa507a8ee7fa264893db45450ae65f6727bec785c7c485e93f6ef2
+DIST emoji-2.15.0.gh.tar.gz 685216 BLAKE2B 44e7754cc98d0ed55052e1340e86ddb0e826c6f75623a257afd376e277d0cc3f0e25eb00beb735812314db73dd972a236e369d390d62738c4bf2313b4dfa84a7 SHA512 6cb37f7914366d36200db8436e620ab26fcf8964c590c629ef0e47a8da875c02cff014c276edb68a62f73596eac37a12356acb3353638a19891dbd0de01a7645
diff --git a/dev-python/emoji/emoji-2.15.0.ebuild b/dev-python/emoji/emoji-2.15.0.ebuild
new file mode 100644
index 000000000000..79726f96b982
--- /dev/null
+++ b/dev-python/emoji/emoji-2.15.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Emoji for Python"
+HOMEPAGE="
+ https://github.com/carpedm20/emoji/
+ https://pypi.org/project/emoji/
+"
+SRC_URI="
+ https://github.com/carpedm20/emoji/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index 8a14c3423b18..0a28191b77eb 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -3,5 +3,7 @@ DIST moto-5.1.10.tar.gz 7087004 BLAKE2B f00161e7df7540c9ff569d8833a4d97d6b702b22
DIST moto-5.1.11.tar.gz 7111584 BLAKE2B 1a44247a2611bdf26f08b48ca4f804a405148be78750394c79af6b984ced5a659da5f63da1a1d0a5cb200e15e895e2e2a63829a6c908d0ceb9b9e4b0db8a4286 SHA512 5d790c43ec55e0d3b55a69b8763f3c23154cbf7d1fa7bbb870ecbce4fe2062c69221881852303688a9a30d8decc619f5de8f5cd8aef780e258597e5ba3edd622
DIST moto-5.1.12.tar.gz 7185928 BLAKE2B 1215c369631eb4a43aa499de70b17b8eda78743d54d68561b4db18a55a0be5bb71927df31ac18a54aa898faafc6a380fe45765461663cdc65b49d11ca94bf86c SHA512 e0992ca2af9c298f3b31917eda58b83b2a7ba8141ac9c2b440a506525ffd53431fb69290897d358f2d70a57d6cdf82a88966d1872fdc555f0cd6e62ffd683b74
DIST moto-5.1.12.tar.gz.provenance 9568 BLAKE2B 39d6211c37523ee438679ac0f2ad94fabda5afbd54a4667d234acd95fdce76c0de8198b5993ff451b84d35ebed63281751a9d3dbd704251fc4828d1381f171a0 SHA512 ddfcdebe272d6b74108aabfc80c78375cbbe565258a8d8583bd2a554d27261bf3718919d01592a5566c45fad12a001e5cff8c90f4f169fc2a7c049e3bef4c9ec
+DIST moto-5.1.13.tar.gz 7194360 BLAKE2B 464a4997defae7386611c29eb46a3fff48e2d27ae2e22dd65f5d5788c746b193df804ee16b4628536691539b3e020de8a9d736d77c92eb9de2e1bd7907a56234 SHA512 b2befd6e407432551c99083f43d19bf4ae633d5dfa2198a98c9d093b2bd50fee4182903362f79943774058f63e43d75337219b2b6ff33152a125d8fb11aa5363
+DIST moto-5.1.13.tar.gz.provenance 9380 BLAKE2B 79e4254b116e18d5f568027edf26a0f716d7b3f4dc5294f9cc8d379600eff518c204fa4d402191b9a99dc6f94a97a0afa14a7e2741a8790b1e7b78aa575c18a8 SHA512 8776bd8698f27e823b84fbd77be42eb4f43cf7beec96847c26066bcf4a362306568cf7688d3d680df17e5e5c4a4550d8b64994dacca8a70e1a7c2f84c3c81b62
DIST moto-5.1.8.tar.gz 7039961 BLAKE2B be2231a13036e2a5c925c7435ebce3adeea6ac03d9806d010d1c067b4e2d008f642a234fb80e082e5053332c6580d130f232ebe0b83d59c55977ea3a38364914 SHA512 fb8ad9ba2ac94a86261e2862d87d9ea632d2275c6cccf7d248ac95db96f615109add8803bf118625c828c7a2615fc6f20bcf682de1e4398f69add5eeb9fe8114
DIST moto-5.1.9.tar.gz 7041662 BLAKE2B 8121c2022e5af70e71b6d4855ca7f964234ef06f14f8b08e80bd3676c26f6e9a06e8f469e610bcf2882b5468d613a17c3108aff3c344c12dc8331a9f9582b87b SHA512 986d41cc9fa875b5ee51723fdd7669b528dacb6136b6ebb3fa72d4efb3bb89f1fbc44aaa06aa154b80d44c87bca2d93cce30ee32c1ab7c3e8d622b53e011167d
diff --git a/dev-python/moto/moto-5.1.13.ebuild b/dev-python/moto/moto-5.1.13.ebuild
new file mode 100644
index 000000000000..bbd0cd5878c5
--- /dev/null
+++ b/dev-python/moto/moto-5.1.13.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2025 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/getmoto/moto
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi toolchain-funcs
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="
+ https://github.com/getmoto/moto/
+ https://pypi.org/project/moto/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
+ dev-python/cookies[${PYTHON_USEDEP}]
+ >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-cors[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
+ dev-python/jsonpath-ng[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
+ dev-python/pyaml[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-jose[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+ dev-python/sshpubkeys[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+: "${EPYTEST_TIMEOUT:=180}"
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_dynamodb/test_dynamodb_import_table.py
+ # require joserfc
+ tests/test_apigateway/test_apigateway.py::test_create_authorizer
+ tests/test_apigateway/test_apigateway.py::test_delete_authorizer
+ tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
+ tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
+ tests/test_cognitoidp/test_server.py::test_associate_software_token
+ tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
+ # require py_partiql_parser
+ tests/test_dynamodb/test_dynamodb_statements.py
+ tests/test_s3/test_s3_select.py
+ # require graphql
+ tests/test_appsync/test_appsync_schema.py
+ # Internet
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
+ tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
+ tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
+ )
+ local EPYTEST_IGNORE=(
+ # require joserfc
+ tests/test_cognitoidp/test_cognitoidp.py
+ )
+
+ if ! tc-has-64bit-time_t; then
+ einfo "time_t is smaller than 64 bits, will skip broken tests"
+ EPYTEST_DESELECT+=(
+ tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
+ tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
+ tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
+ )
+ EPYTEST_IGNORE+=(
+ tests/test_route53domains/test_route53domains_domain.py
+ )
+ fi
+
+ local -x TZ=UTC
+ local -x AWS_DEFAULT_REGION=us-east-1
+
+ epytest -m 'not network and not requires_docker'
+}
diff --git a/dev-python/poetry-core/Manifest b/dev-python/poetry-core/Manifest
index 698bd47a0436..29848b8f58da 100644
--- a/dev-python/poetry-core/Manifest
+++ b/dev-python/poetry-core/Manifest
@@ -1,2 +1,3 @@
DIST poetry_core-2.1.3.tar.gz 365027 BLAKE2B d3cd1536a8466f784b2cd6a835997c480cdc11d24afe4e0b757879b2acc4795e33485fc9bf6adccf5afbf475d4b1748959fb146a6c01cf8508d6c27a7abe52e0 SHA512 eb82164aef3ce00fc14d55db8065b95feca15a78e1c69ca58c8c0b1018404b173a80c61d448513f938535a03e73df99978b51b3494065bd1c99bc8a14e224ba8
DIST poetry_core-2.2.0.tar.gz 378727 BLAKE2B b3b122ed167d4160054e76842df49ad836f2f1139e5d39de461d38fd76110e1718fb912552c5d48aba2fc88eca01fa5c0c66a7aa4973d7968b000bbb61d4cfe9 SHA512 83a05d2e024e0a92a32ac8ea9a8a8b1313a6910f11e27b0a501703b0aac5c9f833a2b642403e28bb3ddffa7300c6f5e4533b604af40421033c2416e175a340c5
+DIST poetry_core-2.2.1.tar.gz 378867 BLAKE2B 973ffc150b9d7942d56378756d9297b4c190322f01048421f4de34dd432ca7af880950c1adc0fcde8fbf4a7e8143e4e0027ab7faebd5789476a7431ba4d09fdc SHA512 786ccaad8cfdd5991d755f811661ce2493b335e6ad927c1a15c62b1055571180759eef63ed14b243677e0bfcedcf08e471bab9e0b261f65096984d2b7370f972
diff --git a/dev-python/poetry-core/poetry-core-2.2.1.ebuild b/dev-python/poetry-core/poetry-core-2.2.1.ebuild
new file mode 100644
index 000000000000..f9a0a53c8140
--- /dev/null
+++ b/dev-python/poetry-core/poetry-core-2.2.1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Poetry PEP 517 Build Backend"
+HOMEPAGE="
+ https://github.com/python-poetry/poetry-core/
+ https://pypi.org/project/poetry-core/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# check inside vendors/pyproject.toml
+# (note that some are indirect deps)
+RDEPEND="
+ >=dev-python/fastjsonschema-2.21.2[${PYTHON_USEDEP}]
+ >=dev-python/lark-1.2.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-25.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}]
+ dev-vcs/git
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ # remove vendoring of dependencies
+ rm -r src/poetry/core/_vendor || die
+ sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON} (unported deps)"
+ return
+ fi
+
+ # Poetry expects test to be run inside a git repository, otherwise
+ # VCS-related logic doesn't get triggered. An empty repository
+ # suffices, though.
+ git init || die
+
+ local EPYTEST_PLUGINS=( pytest-mock )
+ epytest
+}
diff --git a/dev-python/poetry/Manifest b/dev-python/poetry/Manifest
index c920afdef349..1bceca603052 100644
--- a/dev-python/poetry/Manifest
+++ b/dev-python/poetry/Manifest
@@ -1,2 +1,3 @@
DIST poetry-2.1.3.tar.gz 3435640 BLAKE2B cb4f9cd8613d5ef77b51a6431efdc9b2e32b296cd62353dcbe12d1fa4b98d3cdf04fc15eeecaddc41ae9074b131e4148193c11136c7e8956a5d26f5573800a0f SHA512 15c0bec8bf7922f277ec3e6f5f4aeca50488af6eb632d292a6140b351a28dad522d218f9abc70b3da80bf6db42f63947c9967edfb4dd29f0cf85d005171e6ee3
DIST poetry-2.2.0.tar.gz 3441561 BLAKE2B d201cc5643dced3a89e6505ee1ec09524e5277cfc9f2697deeabff90484c563d9c43e0ef199cfaca081630419ab94ea5229b1127fb715867e6970b315e8c15ff SHA512 8677519a673534bebcea1f7d8894e4422e8f27d7cc29aa1361be2c15e8730c3b149c6086a475fefc11eb02e5268e3c2476a8acda92f090eac30737d9eac8e672
+DIST poetry-2.2.1.tar.gz 3441978 BLAKE2B 01276f5ee71fd2e8bf1be5f4f503590e7966b32ba22f95fe181ec3514004879d1b00c3184d523a78a0ecf3121291d2c02a4171c1a1525c945879da8a2c8e9f9e SHA512 38ef42297c66a52953ed58dcc705201fa67e3c81f2504e320e01e0b76504b6439b8b224e86c9d886dcbe1adba9a2ec5e5c5f0e2308082e7931bc5fce218e5480
diff --git a/dev-python/poetry/poetry-2.2.1.ebuild b/dev-python/poetry/poetry-2.2.1.ebuild
new file mode 100644
index 000000000000..feeb958c955b
--- /dev/null
+++ b/dev-python/poetry/poetry-2.2.1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A frontend for poetry - a python dependency management and packaging tool"
+HOMEPAGE="
+ https://python-poetry.org/
+ https://github.com/python-poetry/poetry
+ https://pypi.org/project/poetry/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/poetry-core-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/poetry-plugin-export-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/build-1.2.1[${PYTHON_USEDEP}]
+ >=dev-python/cachecontrol-0.14.0[${PYTHON_USEDEP}]
+ >=dev-python/cleo-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/dulwich-0.24.0[${PYTHON_USEDEP}]
+ >=dev-python/fastjsonschema-2.18.0[${PYTHON_USEDEP}]
+ >=dev-python/findpython-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/installer-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/keyring-25.1.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/pbs-installer-2025.01.06[${PYTHON_USEDEP}]
+ >=dev-python/pkginfo-1.12[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.26[${PYTHON_USEDEP}]
+ >=dev-python/requests-toolbelt-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/shellingham-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.11.6[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.26.6[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/deepdiff-6.3.1[${PYTHON_USEDEP}]
+ >=dev-python/httpretty-1.1[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-classes-3.3.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.9[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Internal test for lockfile being up-to-date
+ # Meaningless, also sdist does not include lockfile
+ tests/installation/test_installer.py::test_not_fresh_lock
+
+ # broken if poetry-plugin-export is installed
+ 'tests/console/test_application_command_not_found.py::test_application_command_not_found_messages[x-None]'
+
+ # TODO
+ tests/console/commands/env/test_activate.py::test_no_additional_output_in_verbose_mode
+ tests/installation/test_executor.py::test_executor_known_hashes
+ tests/puzzle/test_provider.py::test_search_for_directory_setup_read_setup_with_no_dependencies
+ tests/utils/env/test_env_manager.py::test_create_venv_finds_no_python_executable
+ tests/utils/test_python_manager.py::test_python_get_preferred_default
+ 'tests/inspection/test_info.py::test_info_setup_missing_mandatory_should_trigger_pep517[name]'
+)
+
+src_prepare() {
+ # unpin
+ sed -e 's:,<[0-9.]*::' -e 's:==\([0-9]\):>=\1:' -i pyproject.toml || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ epytest -m "not network"
+}
diff --git a/dev-python/pyglet/Manifest b/dev-python/pyglet/Manifest
index 7362c29aaa1e..8be526d4b50c 100644
--- a/dev-python/pyglet/Manifest
+++ b/dev-python/pyglet/Manifest
@@ -1,2 +1,2 @@
-DIST pyglet-2.1.6.tar.gz 6546705 BLAKE2B ea32e864e5b8168d18fd99c464759d98189301aca821b2eec0770e180a1ed3c8a2d9543bce8d5331d0f9c4f75b055b42d4c67fac5a5f08b84d7ec7ff82481b13 SHA512 118b4c14aad735f7da1d168e7e5e68094af387d616379223260150a3140fa9069b30a8bbf12ee0e2921c199aedbfecbbb55034c7bf8e160ccca5aa4d8b348d18
DIST pyglet-2.1.8.tar.gz 6591905 BLAKE2B 03142754f461402f625225622f6ca53a066b8c3d924762e740b2cbd46dc1851ec661b9263fc90c33949ade25c07d7b63ad92cd243bc12869f50c0b8e77b6b660 SHA512 cd38d7e4d39f26f5188898c822a8f7c53a34429f9098c0f0695df3befadb1d287b92533d264988654def7ceae6f70debc096d546da5d42848ca69644933a4a9b
+DIST pyglet-2.1.9.tar.gz 6593094 BLAKE2B 0af2ec4b4f7414a644555268b04f71b99fb157c65c8f2d961490676c9182aec524be82397589cb113972197f8bc94a0b00f234732d9559ba4ff85c6ed3b23bf3 SHA512 1d865ee8145245e2afb41aa40c7b4d938ca4b092b02b57480b3d375991428de222016bafaa7111b765e2dd20f4155d962582fb6978a1c7f5e1532c23431dbfcb
diff --git a/dev-python/pyglet/pyglet-2.1.6.ebuild b/dev-python/pyglet/pyglet-2.1.9.ebuild
index 8aa5936fdac0..b63467fc3ea6 100644
--- a/dev-python/pyglet/pyglet-2.1.6.ebuild
+++ b/dev-python/pyglet/pyglet-2.1.9.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
IUSE="examples image +sound"
RDEPEND="
@@ -46,6 +46,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
src_test() {
@@ -66,7 +67,6 @@ python_test() {
# Specify path to avoid running interactive tests
# We could add in integration tests, but they're slow
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
nonfatal epytest tests/unit || die "Tests failed with ${EPYTHON}"
}
diff --git a/dev-python/pyparsing/Manifest b/dev-python/pyparsing/Manifest
index 5c5cceeed3f0..ce8f412c8cfd 100644
--- a/dev-python/pyparsing/Manifest
+++ b/dev-python/pyparsing/Manifest
@@ -1,2 +1,3 @@
DIST pyparsing-3.2.3.tar.gz 1088608 BLAKE2B e16ac59455011e22a86303f578501a141dd65403b30168c0106e7152c58ebd96a3ee479a08c2a084da218a8db1a72dffdecfda896f7210794b871f75c374b60d SHA512 ef01403a158f15215b3be7f7c4aad2ceb6020d578dac68351b732df3447c685aa478d23ab645d554070ad2aec14ee565a0407f428b91f398e4429c0e53eb4a6d
DIST pyparsing-3.2.4.tar.gz 1098809 BLAKE2B 3dbf56f633b6a1503f794aa8b1ce2a36f06232228a970037908971dd4d2224952cfff9feebe77c37c7a11410521f5c77463efb7d9982a7622ac2c627a9f5d754 SHA512 a7cd44fb37aba3b0fb92bf8f64ba192136c892c6bf41f9a5ebda694c2263a121b0123406e4e3e8ea203b01b0185e05a12f8937fc7a4f494d9be7ddaea43faf65
+DIST pyparsing-3.2.5.tar.gz 1099274 BLAKE2B 0f5ee8a4801154ff7d8fdeb4da2a47123b8cfabae292f55b549426c5a7b71994da40d4626156559b9980800e8856fa23f8ac06832c782efaeb4538fd08f9f24e SHA512 e9c4e4c7a7e324331ced2214b5a406c538209fedd8b56ffa2a28b44b497be0d4a03b705e9ce9a449e8f126a8fa555e8c1572894b09dda0eda4e3da156ba7e3ff
diff --git a/dev-python/pyparsing/pyparsing-3.2.5.ebuild b/dev-python/pyparsing/pyparsing-3.2.5.ebuild
new file mode 100644
index 000000000000..5e0c85d79a0f
--- /dev/null
+++ b/dev-python/pyparsing/pyparsing-3.2.5.ebuild
@@ -0,0 +1,59 @@
+# Copyright 2004-2025 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
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Easy-to-use Python module for text parsing"
+HOMEPAGE="
+ https://github.com/pyparsing/pyparsing/
+ https://pypi.org/project/pyparsing/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="examples"
+
+EPYTEST_PLUGINS=()
+# tests unstable with xdist
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # railroad-diagrams not packaged (and not suitable for packaging yet)
+ tests/test_diagram.py
+ )
+ local EPYTEST_DESELECT=(
+ # also railroad-diagrams
+ tests/test_examples.py::TestExamples::test_range_check
+ tests/test_examples.py::TestExamples::test_rosettacode
+ tests/test_unit.py::Test02_WithoutPackrat::testEmptyExpressionsAreHandledProperly
+ tests/test_unit.py::Test04_WithPackrat::testEmptyExpressionsAreHandledProperly
+ tests/test_unit.py::Test06_WithBoundedPackrat::testEmptyExpressionsAreHandledProperly
+ tests/test_unit.py::Test08_WithUnboundedPackrat::testEmptyExpressionsAreHandledProperly
+ tests/test_unit.py::Test09_WithLeftRecursionParsing::testEmptyExpressionsAreHandledProperly
+ tests/test_unit.py::Test10_WithLeftRecursionParsingBoundedMemo::testEmptyExpressionsAreHandledProperly
+ )
+
+ if ! has_version "dev-python/matplotlib[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/test_matplotlib_cases.py
+ )
+ fi
+
+ epytest
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ dodoc -r examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index 4ed41a2958f1..17def12bf6e7 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -2,4 +2,5 @@ DIST pypdf-5.7.0.gh.tar.gz 8064655 BLAKE2B 07136de7c9b13a61b2b7e971d06424bcb990e
DIST pypdf-5.8.0.gh.tar.gz 8067499 BLAKE2B f751305906f3eb67fcea972437efd52cea4a8eeaf31ed789f30539f3f07fdcaf6ab6c4b5c61f9dc1371116019ebf58c07510ca4f9bb1c6fc255bf6c7264ac7da SHA512 f7a18f52b2c13d2471b777937834849843251c742bb25767094b2de77cf8de59ebe5ce93b9447d22d7d0d7f0bef7ad3e56dfc0b9d8ae736935229b5896e2b75f
DIST pypdf-5.9.0.gh.tar.gz 8074634 BLAKE2B a910a8158aa35876240d77b06c10fc3782b9819624b5c8f1e7892080a01d53b1fec5a2332ce06530416bb0a28602d64d7f9982d794ec8303a5be4eb809316f14 SHA512 6358367c09468808854f9f966a27511c23d938f1092bbb82eae4aecf2527521fde208b86e5b7924fef13cec9ffd27f9046a07a50a280a92eedffdcc670fb88a8
DIST pypdf-6.0.0.gh.tar.gz 8072420 BLAKE2B 62a455409a13ec0d3cf41543dd696eff7797367648da0b0e6638b1e1dde8bdd585acb7a4cc32c21ee1ac5092f84683b1ae856aa3dd1b71363a49ea048752a0e2 SHA512 2a7e82bec9ae45a67040b088842b1adc7caead64495815a4f78e1327fdb4cb91caf71ad535c0b735d93cc4df25b662774169249675ae6aff099a6321322ec3d3
+DIST pypdf-6.1.0.gh.tar.gz 8094466 BLAKE2B 166b36f3d34f3663617ad987afea343f0bbf66d003eb7b7732b41c2ed556f39e449f2f8c8678b0cb686e927d09bbf8e79c4471aed6b79c95b660a3f8d9f8584b SHA512 8003444d50bdf06861abb94f4272c210f8d873e4916ef1aa0804338fd88a400b309e2d99a5a6e0ed995d59c942fa62b97e5de3d1604b70a04cc59042156deba5
DIST pypdf-sample-files-8c405ece5eff12396a34a1fae3276132002e1753.gh.tar.gz 11748093 BLAKE2B c5989200893b28a3c2062bb024a5cfc6f3389dc259ec129857979fa43469e1274559612b4d555499e2c7e16cf34be07825229932bf4d147fa6d7324d043e97d5 SHA512 c9771129b7668a2fd1fa79bb859ae9213f3d60341cf1b9937ff0eaab0de9bf4c35adcb7b896e93329038dc0f3809a0c697c523f8fe41b43030b0b029a88058e3
diff --git a/dev-python/pypdf/pypdf-6.1.0.ebuild b/dev-python/pypdf/pypdf-6.1.0.ebuild
new file mode 100644
index 000000000000..5c36449acd55
--- /dev/null
+++ b/dev-python/pypdf/pypdf-6.1.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+SAMPLE_COMMIT=8c405ece5eff12396a34a1fae3276132002e1753
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI="
+ https://github.com/py-pdf/pypdf/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}"/* "${S}"/sample-files/ || die
+ fi
+}
+
+python_test() {
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/pyzotero/Manifest b/dev-python/pyzotero/Manifest
index 432562d48dc2..56b01bddeda3 100644
--- a/dev-python/pyzotero/Manifest
+++ b/dev-python/pyzotero/Manifest
@@ -1,2 +1,4 @@
DIST pyzotero-1.6.11.tar.gz 552337 BLAKE2B 64487fb2316e3e20ec962218972ea77de922df4421c85dd9f910e10aba77154c5dbba1cdb47acf9b8707b21b4bd682a3133e9f13fb052f5c9b0f33ec4c73f480 SHA512 b90b67467ea80a6825857fd5ce159e6de495b554b4fe83800c2c5814e91b85803e107647da36fcd70660e0b6b409c348e3958a45890d127b53d90146826b5755
DIST pyzotero-1.6.13.gh.tar.gz 580842 BLAKE2B b421759644e561b0ebaa07ad3ab7c532c446183953fec79e7d28e60a204d7e6e3827484b91752a460ae823e49db564dda1355576c87b690940ec86511a34729f SHA512 66bc50aab5528eb1b2ead3a307ee17c02d6fe481fe3b2acf3eaba3ca5ee5f915315941812ec8ec295077563e9815b8968b049f01093b20d135237e71b09e1004
+DIST pyzotero-1.6.15.tar.gz 526457 BLAKE2B eea2b037975a7e5e0c2f57f29509626575575b8bf21ae64c266b1b70f27ef1bbadb49c856ee4ee042951b90679a1b9f06e671cdd5b3b16caa6b40469cf0bca67 SHA512 7a83674ad21f462ef019e27e1d051667eaed2c56c02fc524cbaac415da5a5d79400c78f0e16d00aa2a38db1af795f993103a6792fdef3ace28e3eca77cfe0ae3
+DIST pyzotero-1.6.15.tar.gz.provenance 9000 BLAKE2B 3d0ecb436dbcdcc901acbb83aeabb33ebe488df7471c85f1b64f2a1e4628c01e3cdca87c67a5e23ae5e256ad1a2c09db258ca4ca309416bc0123d3a9b63b8f3d SHA512 b2b32e538f1736b67bf0e55c29a7ee86949c6c67b50616b51dac00d54618093e04fee7f4728cc3cd85bdf83efcf4547ca47fda34f1e33e95306d844d39e35f17
diff --git a/dev-python/pyzotero/pyzotero-1.6.15.ebuild b/dev-python/pyzotero/pyzotero-1.6.15.ebuild
new file mode 100644
index 000000000000..820dc35c88c9
--- /dev/null
+++ b/dev-python/pyzotero/pyzotero-1.6.15.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYPI_VERIFY_REPO=https://github.com/urschrei/pyzotero
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python client for the Zotero API"
+HOMEPAGE="
+ https://github.com/urschrei/pyzotero/
+ https://pypi.org/project/pyzotero/
+"
+
+LICENSE="BlueOak-1.0.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ app-text/zotero-bin
+ <dev-python/bibtexparser-2[${PYTHON_USEDEP}]
+ >=dev-python/bibtexparser-1.4.3[${PYTHON_USEDEP}]
+ >=dev-python/feedparser-6.0.12[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
+ >=dev-python/whenever-0.8.8[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/httpretty-1.1.4[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2025.2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/tzdata-2025.2[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx doc \
+ dev-python/sphinx-rtd-theme
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/rich-click/Manifest b/dev-python/rich-click/Manifest
index e6b41b81e376..262afc1e37a6 100644
--- a/dev-python/rich-click/Manifest
+++ b/dev-python/rich-click/Manifest
@@ -1 +1,2 @@
DIST rich-click-1.8.9.gh.tar.gz 8142387 BLAKE2B de7aa54989747d47c2d147cec8235c4619a90b5a536266dbf2f499f704c3671bb4697bbcb23b0d0827caaf52d65dd29157f01918d29abc9c469fdd6c84af0c84 SHA512 6655ee3ac54fdae5a1221ef2ceaae35aa2ed8381c29f9808bb852d0790426a90d1fcb1a82faa61a22112946b988f891fc76dc3976ae756702458c547d7014745
+DIST rich-click-1.9.1.gh.tar.gz 8522706 BLAKE2B 51568fb38662585569032b0e2b1cf2c0d7e20d21402cbd571fb51d61f69d96589e5a3fe983266dcd5245b020d83d50422c86ef1af1d10833f04677abc2afb359 SHA512 f1de1dadc261aa38b017752a77d8bd63fb2c74ef01d744d3557a6fae9372731e51b7c5805a34cb4f323fffaa7a990ed19ac035d1c5e3c4984c3a2e8b6c9e6e7c
diff --git a/dev-python/rich-click/rich-click-1.9.1.ebuild b/dev-python/rich-click/rich-click-1.9.1.ebuild
new file mode 100644
index 000000000000..b65d1c9ff137
--- /dev/null
+++ b/dev-python/rich-click/rich-click-1.9.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Format click help output nicely with rich"
+HOMEPAGE="
+ https://pypi.org/project/rich-click/
+ https://github.com/ewels/rich-click/
+"
+SRC_URI="
+ https://github.com/ewels/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/click-8[${PYTHON_USEDEP}]
+ >=dev-python/rich-12[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/packaging-25[${PYTHON_USEDEP}]
+ >=dev-python/typer-0.15[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( inline-snapshot )
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/whenever/Manifest b/dev-python/whenever/Manifest
index 875e362ef8a2..deb25e9631e2 100644
--- a/dev-python/whenever/Manifest
+++ b/dev-python/whenever/Manifest
@@ -66,6 +66,7 @@ DIST wasm-bindgen-macro-support-0.2.100.crate 26243 BLAKE2B c18e35978b62dd2822ba
DIST wasm-bindgen-shared-0.2.100.crate 8570 BLAKE2B 886fa72cae891d4c2311e12e28f0a7bde9bcaca893603afa3428a402726b3b2bcdb6cb7dca6fdf983bd8fac5f049f0543537f2161318769b43c7eebfc906df27 SHA512 3fca8ddd1c6b2f66f70f6608c9b341822603f1c0dd71d47d27c6be8fe3f2c88598619946627720734b48cf999cafd0c63a08af5db28ea78a1538d2165a5fba61
DIST web-sys-0.3.77.crate 638246 BLAKE2B 3f21ab03a18d82cffd96432e4f08bfae183b24f9a50dcfc51c927e9973dabfb8b6bb1f3ae044890832809ec91709242c1c37463931770d347fdf521587a72515 SHA512 cd149286105288f7c385a29eae7df2306d4066edfca4de1255efc7bd8a4e8eaafc313dab85091025c3b5d5e333fce8b7fcef1fb824fe4d799bcc9bb78b73c97a
DIST whenever-0.8.8.gh.tar.gz 350197 BLAKE2B 2994c59091c69619c4ee422c44b765338edf01572c1da3598a95bdad92bd852fa64bb1ff93a1f4a009c62884b23795e7d53e0c2e24f54fdde2aabe56fc5f2b41 SHA512 578a761aecbfdf0300275da409a0506b617d276ff83e915252c6da61773480c62f8f8947195b517b6d6f35c14d23953e060e3f0e3ade108898a32dd0b70372a7
+DIST whenever-0.8.9.tar.gz 240155 BLAKE2B 4ef044338fddee3df1f3bb112da3ad2260fb8a15751c775edc57d1408baf16cb45a607b4767be33adc37aac0504827a96b70a3e3d08a99f8c15c017c6c6f6713 SHA512 aab1af71b23ece034650959eef890f0d79138376f493932b1bc78e13f698c019243a591ac40a92086fbc757c96131e2b57d2cdd4d7258e92dc346b0b0976b8e3
DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
diff --git a/dev-python/whenever/whenever-0.8.9.ebuild b/dev-python/whenever/whenever-0.8.9.ebuild
new file mode 100644
index 000000000000..25844bed0177
--- /dev/null
+++ b/dev-python/whenever/whenever-0.8.9.ebuild
@@ -0,0 +1,149 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+CARGO_OPTIONAL=1
+RUST_MIN_VER="1.86"
+CRATES="
+ ahash@0.8.12
+ aho-corasick@1.1.3
+ anes@0.1.6
+ anstyle@1.0.11
+ autocfg@1.5.0
+ bitflags@2.9.1
+ bumpalo@3.19.0
+ cast@0.3.0
+ cfg-if@1.0.1
+ ciborium-io@0.2.2
+ ciborium-ll@0.2.2
+ ciborium@0.2.2
+ clap@4.5.41
+ clap_builder@4.5.41
+ clap_lex@0.7.5
+ criterion-plot@0.5.0
+ criterion@0.5.1
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crunchy@0.2.4
+ either@1.15.0
+ getrandom@0.3.3
+ half@2.6.0
+ hermit-abi@0.5.2
+ is-terminal@0.4.16
+ itertools@0.10.5
+ itoa@1.0.15
+ js-sys@0.3.77
+ libc@0.2.174
+ log@0.4.27
+ memchr@2.7.5
+ num-traits@0.2.19
+ once_cell@1.21.3
+ oorandom@11.1.5
+ plotters-backend@0.3.7
+ plotters-svg@0.3.7
+ plotters@0.3.7
+ proc-macro2@1.0.95
+ pyo3-build-config@0.25.1
+ pyo3-ffi@0.25.1
+ quote@1.0.40
+ r-efi@5.3.0
+ rayon-core@1.12.1
+ rayon@1.10.0
+ regex-automata@0.4.9
+ regex-syntax@0.8.5
+ regex@1.11.1
+ rustversion@1.0.21
+ ryu@1.0.20
+ same-file@1.0.6
+ serde@1.0.219
+ serde_derive@1.0.219
+ serde_json@1.0.141
+ syn@2.0.104
+ target-lexicon@0.13.2
+ tinytemplate@1.2.1
+ unicode-ident@1.0.18
+ version_check@0.9.5
+ walkdir@2.5.0
+ wasi@0.14.2+wasi-0.2.4
+ wasm-bindgen-backend@0.2.100
+ wasm-bindgen-macro-support@0.2.100
+ wasm-bindgen-macro@0.2.100
+ wasm-bindgen-shared@0.2.100
+ wasm-bindgen@0.2.100
+ web-sys@0.3.77
+ winapi-util@0.1.9
+ windows-sys@0.59.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+ wit-bindgen-rt@0.39.0
+ zerocopy-derive@0.8.26
+ zerocopy@0.8.26
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Modern datetime library for Python"
+HOMEPAGE="
+ https://github.com/ariebovenberg/whenever/
+ https://pypi.org/project/whenever/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+native-extensions"
+
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+ )
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-order )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=( benchmarks )
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/whenever/_whenever.*.so"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_configure() {
+ if ! use native-extensions; then
+ export WHENEVER_NO_BUILD_RUST_EXT=1
+ fi
+}
+
+python_test() {
+ rm -rf whenever || die
+ epytest
+}