summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/audioop-lts/Manifest1
-rw-r--r--dev-python/audioop-lts/audioop-lts-0.2.2.ebuild28
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.38.2.ebuild61
-rw-r--r--dev-python/electrum-aionostr/Manifest1
-rw-r--r--dev-python/electrum-aionostr/electrum-aionostr-0.0.11.ebuild36
-rw-r--r--dev-python/electrum-aionostr/metadata.xml10
-rw-r--r--dev-python/electrum-ecc/Manifest1
-rw-r--r--dev-python/electrum-ecc/electrum-ecc-0.0.5.ebuild39
-rw-r--r--dev-python/electrum-ecc/metadata.xml9
-rw-r--r--dev-python/fastbencode/Manifest2
-rw-r--r--dev-python/fastbencode/fastbencode-0.3.2.ebuild46
-rw-r--r--dev-python/fastbencode/fastbencode-0.3.5.ebuild85
-rw-r--r--dev-python/inline-snapshot/Manifest1
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.27.0.ebuild61
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild6
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/notebook/Manifest1
-rw-r--r--dev-python/notebook/notebook-7.4.5.ebuild63
-rw-r--r--dev-python/pyghmi/Manifest2
-rw-r--r--dev-python/pyghmi/pyghmi-1.6.3.ebuild (renamed from dev-python/pyghmi/pyghmi-1.6.1.ebuild)0
-rw-r--r--dev-python/redis/Manifest1
-rw-r--r--dev-python/redis/redis-6.3.0.ebuild104
-rw-r--r--dev-python/time-machine/Manifest1
-rw-r--r--dev-python/time-machine/time-machine-2.17.0.ebuild42
-rw-r--r--dev-python/tokenize-rt/tokenize-rt-6.2.0.ebuild2
-rw-r--r--dev-python/virtualenv/Manifest1
-rw-r--r--dev-python/virtualenv/virtualenv-20.33.1.ebuild129
30 files changed, 700 insertions, 59 deletions
diff --git a/dev-python/audioop-lts/Manifest b/dev-python/audioop-lts/Manifest
index 591d0a973f3c..5f9bd657129a 100644
--- a/dev-python/audioop-lts/Manifest
+++ b/dev-python/audioop-lts/Manifest
@@ -1 +1,2 @@
DIST audioop_lts-0.2.1.tar.gz 30204 BLAKE2B 924d05bbfc0cd42fd9ca2cff175db5cc4024641e4cf5ac72200e8178a1806a7a4e4230b931a9a2b096fe5ccc3594ebc3fbdabc716b2e2db06e9fb7d737c639de SHA512 e0fb4c7fcec4dacaa38a2fb2cf69bff3eab8c78150429f3af54192bff7b98c574f3e65960c65d554104c1290e86806f295e7ada434c33b47abb383c644eb2c4b
+DIST audioop_lts-0.2.2.tar.gz 30686 BLAKE2B dee6fbe3b99f5a0cab1a4f1abc89aece2cd39bbe0cb3ee23b74199a7d0832b73f284e14d89d5dce45ca61bac4870cd3edefea99d0066067a52c9501a9c40d60e SHA512 e7ed20da985c0aff20fe60ef8f3a36b7306c86677b969509840efce0667d65880c922edff61453aa25fde036aa1d46b1890e78ddfaa6be8468d4203ef074df16
diff --git a/dev-python/audioop-lts/audioop-lts-0.2.2.ebuild b/dev-python/audioop-lts/audioop-lts-0.2.2.ebuild
new file mode 100644
index 000000000000..ba2bd20aea90
--- /dev/null
+++ b/dev-python/audioop-lts/audioop-lts-0.2.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="An LTS port of Python's audioop module"
+HOMEPAGE="
+ https://github.com/AbstractUmbra/audioop
+ https://pypi.org/project/audioop-lts/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ rm -rf audioop || die
+ epytest
+}
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 00003cd972bc..94bedf447720 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,3 +1,4 @@
DIST cfn_lint-1.37.2.tar.gz 3105967 BLAKE2B afa47f8c3669b32a6471e6bd438b68407f87f76c1473d848b8bc70474616418505ffcb69f7a35124fc2c5c1b2a5135d2d9ed51f2227b36e753d7a481fbc5b362 SHA512 e5a24a4cc506c287af3229ca86bee6ece335b8b80c7083f9b8c52a79d09c441043b176464e84051d05e135d2e47b11b307531a9ab0b24de98545e9e276697f64
DIST cfn_lint-1.38.0.tar.gz 3131464 BLAKE2B d843617918f16882927c31a92d24cb67b7701787f0398dae7fb0432df7db811946a78144641e60e3b09b049ec04493860841fce415d2ce2be977ae4a6760e2a7 SHA512 a38773533b6d2e8c9df39e2195b6d91a621c2b9e6da1dec5c221ef6d4f52d5f3f52232699395c4d54f00152b23daa22ac2dd44515cb888d1b86b88686f0f9c34
DIST cfn_lint-1.38.1.tar.gz 3448936 BLAKE2B 40def52bc1b65793a181c0b233f96592959afa8c70b12ca6039f98237db84cabad3e36a1bbd27504d2264859bb1ed4a70f70ae33f0ac43048885555149889275 SHA512 150a142af8ae5c2feb6e7b44c2c9176a5b53035daa5563f76b2de0cf85a249eb7171be261a7f3d64fb7c63d2e632a62863e0d99d88d242ec0e2ba529c8829a63
+DIST cfn_lint-1.38.2.tar.gz 3534485 BLAKE2B 490b22ab540944a2feb4ad8b9e4ff02d8f4e3520b1c077eed83e925118f6d4de29858e470d703b7aee2788b9ab07c8c4e11ac5af54446be3b67ae8ac61145954 SHA512 670e52e26eaae0cc70b7f3573f03bde3632c8932fc5525942f981c592e37bf622d785b2f1f6d490cb96cb9b148a348c7e2f4ee8573fa146a10d0b888693d3be7
diff --git a/dev-python/cfn-lint/cfn-lint-1.38.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.38.2.ebuild
new file mode 100644
index 000000000000..6a1d53b2d46a
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.38.2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.97.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # different line wrapping somehow
+ test/unit/module/template/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # TODO: suddenly started failing in older versions too
+ # https://github.com/aws-cloudformation/cfn-lint/issues/4207
+ test/integration/test_good_templates.py
+ test/unit/module/override/test_exclude.py::TestExclude::test_success_run
+ test/unit/module/test_api.py::TestLintFile::test_good_template
+ test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ epytest
+}
diff --git a/dev-python/electrum-aionostr/Manifest b/dev-python/electrum-aionostr/Manifest
new file mode 100644
index 000000000000..f3231cd42ef1
--- /dev/null
+++ b/dev-python/electrum-aionostr/Manifest
@@ -0,0 +1 @@
+DIST electrum_aionostr-0.0.11.tar.gz 22126 BLAKE2B 1b120fd01c526e7854ad944702d70aae9026c2f15bfac1a72034ee1212c706d58c86be29787a5998153a0fada47adeac1a1a0fb1cb7b8781adf908fbec262186 SHA512 8d1888c237ded63f8512f29d35f6da05eb3e7c2eaf6a16a1a503a09e6e224b15232e732da82775070e2fb4098982945deaa6eb6332ff0c9bd0d9e3828dfa962a
diff --git a/dev-python/electrum-aionostr/electrum-aionostr-0.0.11.ebuild b/dev-python/electrum-aionostr/electrum-aionostr-0.0.11.ebuild
new file mode 100644
index 000000000000..8a933c72e7e9
--- /dev/null
+++ b/dev-python/electrum-aionostr/electrum-aionostr-0.0.11.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="asyncio nostr client"
+HOMEPAGE="
+ https://pypi.org/project/electrum-aionostr/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/click-8.2[${PYTHON_USEDEP}]
+ dev-python/electrum-ecc[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-3.11.0[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-socks-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/aiorpcx-0.22.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # remove pins
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+}
diff --git a/dev-python/electrum-aionostr/metadata.xml b/dev-python/electrum-aionostr/metadata.xml
new file mode 100644
index 000000000000..a0d4c5913ba0
--- /dev/null
+++ b/dev-python/electrum-aionostr/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/electrum-ecc/Manifest b/dev-python/electrum-ecc/Manifest
new file mode 100644
index 000000000000..4aae35fb0dba
--- /dev/null
+++ b/dev-python/electrum-ecc/Manifest
@@ -0,0 +1 @@
+DIST electrum_ecc-0.0.5.tar.gz 2009297 BLAKE2B e67858bb7e30f5e12a37f7adf82242b8fbee4c55724154748b8ab59f12413cc1a6c82a2655765326684cd5c2f1f57de971c5c320c810b27328704bd4a7f8d1b2 SHA512 982afb1a36f25d460413e678ebb4981d5ecca69a148c5d4d7d5f878d534c69b8966e9ac50499742eb5a89a67d2f2855a8887e2f28dd8aa18bc6ded6e1518c5e7
diff --git a/dev-python/electrum-ecc/electrum-ecc-0.0.5.ebuild b/dev-python/electrum-ecc/electrum-ecc-0.0.5.ebuild
new file mode 100644
index 000000000000..0bffcca55f83
--- /dev/null
+++ b/dev-python/electrum-ecc/electrum-ecc-0.0.5.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"
+
+# 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/electrum-ecc/metadata.xml b/dev-python/electrum-ecc/metadata.xml
new file mode 100644
index 000000000000..7ad11570cc7d
--- /dev/null
+++ b/dev-python/electrum-ecc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/fastbencode/Manifest b/dev-python/fastbencode/Manifest
index 820a312c3a91..3730a2648a0f 100644
--- a/dev-python/fastbencode/Manifest
+++ b/dev-python/fastbencode/Manifest
@@ -1,6 +1,6 @@
DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
-DIST fastbencode-0.3.2.tar.gz 24878 BLAKE2B a516be3b5d0eb6fc09afc3d4f3c40454893f1cc252592f032fbb8d2d906bc59b8be6b50a13d4ef4e0ab608b68dcc56a24e0b96fae2b12f1f8666f43ff76435c5 SHA512 0750aec47720dbf1e85b7acbf4f9df85e672d0cf53dee522a035340d7eb1e90eca5eeeafe8e0c7fa3b769216bda84d348f7d78133a1540142143db54799ff97f
DIST fastbencode-0.3.4.gh.tar.gz 21576 BLAKE2B 8647f98f672cc24a5eea517afdc1232543374a5ed283bff6f51e4f53ce576fd7355963406ecfa5aaf9a075f71b6608586e26f879c1da00cc406d2fa9b4916dc5 SHA512 456311c40ec6ab6750e74244ad4bdf731c39c7fd294ebabba867a05221d0af054838ef0e75620982ad274061732e55716053505dfcafbc2d1b6e12c324406369
+DIST fastbencode-0.3.5.tar.gz 16953 BLAKE2B 703549bffc69d6b85b80cb4f8081c15cbbed94261fc03337bb927204de2ad75eda838559decf70bc76bb40bbe219c2ffdb53132263dbdf6c6998b79c1118430b SHA512 fd4d167fea1e8075b78ea748408d05badc1bbb3fbb09d6393c045ad990f83f07a926748d4b2b686cba2e23a839a57f18687af021c690eb402bd3b3e191bc324c
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9
DIST libc-0.2.174.crate 779933 BLAKE2B 20ffcbbcad6961e732521940f0595039dc0576d85b2d3b2ad3f1decd37571132a4cd7505b2e108078a4379fc4cec46290b5633bcbcc6e7009c3b474c1a852628 SHA512 243f2ffd5741ef859e4dc5b7ee0396071943b1d10429efcaecb322957e256c4be88a7a649029dfd47e6456acc73ee257893fb6c4e8b4d0fe66a12bc5d1c13c73
diff --git a/dev-python/fastbencode/fastbencode-0.3.2.ebuild b/dev-python/fastbencode/fastbencode-0.3.2.ebuild
deleted file mode 100644
index 10dffe678ada..000000000000
--- a/dev-python/fastbencode/fastbencode-0.3.2.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 2023-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Implementation of bencode with optional fast C extensions"
-HOMEPAGE="
- https://github.com/breezy-team/fastbencode/
- https://pypi.org/project/fastbencode/
-"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="+native-extensions"
-
-BDEPEND="
- native-extensions? (
- dev-python/cython[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # makes the extension non-optional (when built)
- export CIBUILDWHEEL=1
- if ! use native-extensions; then
- sed -i -e '/^add_cython_extension(/d' setup.py || die
- fi
-}
-
-src_test() {
- mv fastbencode/tests tests || die
- rm -r fastbencode || die
-
- distutils-r1_src_test
-}
diff --git a/dev-python/fastbencode/fastbencode-0.3.5.ebuild b/dev-python/fastbencode/fastbencode-0.3.5.ebuild
new file mode 100644
index 000000000000..82be09d201d5
--- /dev/null
+++ b/dev-python/fastbencode/fastbencode-0.3.5.ebuild
@@ -0,0 +1,85 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ autocfg@1.5.0
+ heck@0.5.0
+ indoc@2.0.6
+ libc@0.2.174
+ memoffset@0.9.1
+ once_cell@1.21.3
+ portable-atomic@1.11.1
+ proc-macro2@1.0.95
+ pyo3-build-config@0.25.1
+ pyo3-ffi@0.25.1
+ pyo3-macros-backend@0.25.1
+ pyo3-macros@0.25.1
+ pyo3@0.25.1
+ quote@1.0.40
+ syn@2.0.104
+ target-lexicon@0.13.2
+ unicode-ident@1.0.18
+ unindent@0.2.4
+"
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Implementation of bencode with Rust implementation"
+HOMEPAGE="
+ https://github.com/breezy-team/fastbencode/
+ https://pypi.org/project/fastbencode/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="Apache-2.0"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/fastbencode/_bencode_rs.*.so"
+
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ if ! use native-extensions; then
+ # setup.py is only used for setuptools-rust
+ rm setup.py || die
+ fi
+}
+
+src_test() {
+ rm -r fastbencode || die
+ distutils-r1_src_test
+}
diff --git a/dev-python/inline-snapshot/Manifest b/dev-python/inline-snapshot/Manifest
index 7dd19d2c4547..6aecb2705f9e 100644
--- a/dev-python/inline-snapshot/Manifest
+++ b/dev-python/inline-snapshot/Manifest
@@ -1,3 +1,4 @@
DIST inline_snapshot-0.24.0.tar.gz 263374 BLAKE2B 4d20f973ceae3f138b5f709cf636c8e82ba7d7e3fa2cb8288729f369ef243e9e8155b30b7b9d52758bc1e76ef91badb264f1b5b5dfcb3d91cbf6d170419d5d2e SHA512 d523f29af2ff6026e21fd3c24a6c222784d0db0983fd4a906b852c3d0ec38016eb1df373b4873ae99cb16e7a5e94d582ed6df6803a83d7da244a895a70f37ba9
DIST inline_snapshot-0.25.3.tar.gz 343645 BLAKE2B 9605768671431b1dd3b50d85d6a71c5274916c08fa168cef6415a2b8d408d627d39d634abab015e75e8bf6fae7c23124bd108ef65ae9c5ea61f2135d224c9821 SHA512 a9786278f055256fe5f74b8c63e0a696eaef8da6a10d5ef4431285deb138d184de602f0153f429e9ba4270f30a407e0f62295e5610f120df181369acc94eb5f3
DIST inline_snapshot-0.26.0.tar.gz 344185 BLAKE2B 49921529fe335226ae6dc66d33fc89aa84d6026100af2edee2ea6e2a532717788814b8746c92a462b1bb794cc255eb37f4bef16f99ad6d6d0c422045ec95e335 SHA512 2410f0b6e9b04279ce20459a3d41db42efb97a68d85f72971d700cec7d0f3074961291ab423605ebfcfc515cc6f49912efc593f86e2b4df5500073f1c9fe3944
+DIST inline_snapshot-0.27.0.tar.gz 345721 BLAKE2B c73f566fdbe8c454ffd047f3d5afe32c50db8c8195594243f5758fa17e0f6f705bb0e7aae88f8d32bad8d09b8e987cda1af61e67eec8b2fdfaf473e03a08f350 SHA512 1a48fad492a1da4d1555967a6c99edfaada35a64951c7021ba751f4aaabf7154e5dac30e0cb0cff5dad18c2256da257f7cbfcf90b0e0909890b7308b1384373d
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.27.0.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.27.0.ebuild
new file mode 100644
index 000000000000..dd22ca843ec0
--- /dev/null
+++ b/dev-python/inline-snapshot/inline-snapshot-0.27.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Create and update inline snapshots in your Python tests"
+HOMEPAGE="
+ https://15r10nk.github.io/inline-snapshot/
+ https://github.com/15r10nk/inline-snapshot/
+ https://pypi.org/project/inline-snapshot/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
+ >=dev-python/executing-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8.3.4[${PYTHON_USEDEP}]
+ >=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/attrs[${PYTHON_USEDEP}]
+ >=dev-python/black-23.3.0[${PYTHON_USEDEP}]
+ >=dev-python/dirty-equals-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.75.5[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/mypy[${PYTHON_USEDEP}]
+ ' 'python*')
+ >=dev-python/pydantic-2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-freezer-0.4.8[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.14.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-subtests-0.11.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-{freezer,mock,subtests,xdist} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires pyright
+ 'tests/test_typing.py::test_typing_args[pyright]'
+ 'tests/test_typing.py::test_typing_call[pyright]'
+ # TODO
+ tests/test_formating.py::test_format_command_fail
+ )
+
+ local -x COLUMNS=80
+ local -x PYTHONPATH=${S}/src
+ epytest
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index d12ab8aeaca8..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 56733bbffc48..99577c43fc3e 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 pypi
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/notebook/Manifest b/dev-python/notebook/Manifest
index 2dd473420a70..41595e565c78 100644
--- a/dev-python/notebook/Manifest
+++ b/dev-python/notebook/Manifest
@@ -1,2 +1,3 @@
DIST notebook-7.3.3.tar.gz 12758099 BLAKE2B e5e988a166b5124f95cc050a4d9402778108c084325024c8ed3829780665d7149a06cccd4ab80d33e572b0b98d9088751d2a9313f10a940e8d82b5eb14db25f3 SHA512 e0f476c5a91edba48dc43b25417946983c46d5b4beaac6531ebf7af02bc4a9f2bae09b7d7524d7ad6e33c262769c1dc40c36f4593cfc70b8c98f41f40a75f8a2
DIST notebook-7.4.4.tar.gz 13883628 BLAKE2B a5673563176a14c4272b60662be6ca7c909bf18645a2e19c45cc6f5816da4f0b262365f8370219f6fc92456ed4ec01299b88d705b08630eee741955c3c274cc8 SHA512 56a58c0126c52f311dca0118abe8c40624bf0a19fa3c7c0ef210b506a69cf1fb6711b0f752766902e3eb0cb840d273307e0930a0b48047826facb806294a5aeb
+DIST notebook-7.4.5.tar.gz 13888993 BLAKE2B 0b757a44e704b486360f564bbadb733723af9803e71611537fe70f2bc42c5636769b5f4656f82dbea1b711e7e1dc1479fd4dcc0e28a5dec657984e912c6d9862 SHA512 37e8c840bee87a8983601a38764f1ffb68f21fbed693363af886739baa1bfc522835c957811a066ea7c80b6b55df23d90bce079faf3e2869ba2ba57c528a9489
diff --git a/dev-python/notebook/notebook-7.4.5.ebuild b/dev-python/notebook/notebook-7.4.5.ebuild
new file mode 100644
index 000000000000..8b121b5f081b
--- /dev/null
+++ b/dev-python/notebook/notebook-7.4.5.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi xdg-utils
+
+DESCRIPTION="Jupyter Interactive Notebook"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/notebook/
+ https://pypi.org/project/notebook/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-4.4.5[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-4.5[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ <dev-python/notebook-shim-0.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-4.4[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-4.5[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/nbval[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-unixsocket[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,timeout,tornasync} )
+distutils_enable_tests pytest
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/dev-python/pyghmi/Manifest b/dev-python/pyghmi/Manifest
index 064050024508..3944e82550bf 100644
--- a/dev-python/pyghmi/Manifest
+++ b/dev-python/pyghmi/Manifest
@@ -1,2 +1,2 @@
-DIST pyghmi-1.6.1.tar.gz 270230 BLAKE2B d6d8626c8a1cfda250f8cce996c50e647ac0416e64d1e7e2e806f0c7e08adde300264b30774e7d0128e25fcbb61c1c51f629601c3ac9694d08d8f9a350b8ddea SHA512 3935a451edac4f54da1dd7b8da370aa667827e10de2d3ead31f9dee56ca72af8e9566915f18767f9f286eda6349086106115f29a754a8a9ae2c704a3b19faaa6
DIST pyghmi-1.6.2.tar.gz 277107 BLAKE2B 41d6f5301675407b96bd3c6f612b1baab9066cf945053ff47f930161794c5bd7848a279a349ec7494cd2f85731e077a4414c8b6507c0b8c418a0554e467a8376 SHA512 b37d92fdb83e44b5ca14119134cf57345fcd8eea9fb667099339d248fb197f09e0ee1404cf68d87583813b1e1ef049f8ee5d896bd00723a991c006839fd76607
+DIST pyghmi-1.6.3.tar.gz 277404 BLAKE2B 1b3572e0be87de18a3ed066defbea9475c621fbb8d3cd2e96dd255ec3b79c1498a226c3e0a5454cec5b8b3469ccf00af34c0a2c9111f67709d0619b8f4d12326 SHA512 9acb9e06d2acada93550065db877311cc361da8bdb11b3f3048b88e59c37abe8a93b666e057e53c705df1df45f3f928561f6789175d85c83943c2150e337b8db
diff --git a/dev-python/pyghmi/pyghmi-1.6.1.ebuild b/dev-python/pyghmi/pyghmi-1.6.3.ebuild
index 405adffe103b..405adffe103b 100644
--- a/dev-python/pyghmi/pyghmi-1.6.1.ebuild
+++ b/dev-python/pyghmi/pyghmi-1.6.3.ebuild
diff --git a/dev-python/redis/Manifest b/dev-python/redis/Manifest
index 5a0061844162..7f99323700e3 100644
--- a/dev-python/redis/Manifest
+++ b/dev-python/redis/Manifest
@@ -1 +1,2 @@
DIST redis-py-6.2.0.gh.tar.gz 4865662 BLAKE2B c341983e7eaa2cff959170bd970a596f4585a169158cc526de2117791a0bec78e1eef633fce02fe5d130e6a73fe76c1396b3e8e2e5f9037013ed526614144406 SHA512 d7f170021026bc7377b46cb9dce4ef3d9307ed9bddeed554ab64a08b2d1f1dd66f7ae7a31e51704176dab1b52367e94ac1596c1c1d125c9bab60675ed2f4d9f8
+DIST redis-py-6.3.0.gh.tar.gz 4878636 BLAKE2B e6eb22f563c197bb30538636aa0aff3cb5b1921805f9d7312214cbf06673e9eca6bef2d6dad805ed9382ac72922f78a47aa3fe476aa468d259b1abf0278bb9e0 SHA512 066d68e04477885d078ff825d33ca2f6a9d87ea5e7b80d76153edc47908b8216abab18f905b1e10bff9efd3f4f4d3c3905c372e411328da069a36712ab5b4215
diff --git a/dev-python/redis/redis-6.3.0.ebuild b/dev-python/redis/redis-6.3.0.ebuild
new file mode 100644
index 000000000000..a3d89451285b
--- /dev/null
+++ b/dev-python/redis/redis-6.3.0.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+MY_P=redis-py-${PV}
+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}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Flaky test
+ tests/test_pubsub.py::TestPubSubDeadlock::test_pubsub_deadlock
+ # 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
+ )
+ 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
+ )
+
+ # TODO: try to run more servers?
+ epytest -m "not redismod and not onlycluster and not replica and not ssl"
+}
+
+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/time-machine/Manifest b/dev-python/time-machine/Manifest
index 4029cd618dd3..5b85f573390e 100644
--- a/dev-python/time-machine/Manifest
+++ b/dev-python/time-machine/Manifest
@@ -1 +1,2 @@
DIST time-machine-2.16.0.gh.tar.gz 30522 BLAKE2B 71b1d2848bd0a72d193b262299976da4aeac3deb52776ebcc855dfc9e6eabc8d9459c123980d7b0b9e29bc2df66193f287a4817ec351ae43994b969731da7bc9 SHA512 19b764cccdff07056a7d42841da576d90037661a9f124e3fbab408bfa61dccf4b51b88a7e0741c87b03e7a8cc3306bb0ed32bd66588e45c9ab7e9d9cb5ba44ae
+DIST time-machine-2.17.0.gh.tar.gz 72389 BLAKE2B b1c926c691086bddfefec77b101a0f99404c4d48907ae07e380a4dea2dee42b04543efc357759c10758bd8b2ee1f8989af21fb024d9e4534f4d76d7394a4b582 SHA512 adf7236588daf3362abce6034c1ee3ed60c0533b4340010ad62d83d2480c9082a17653ae1efd2db6bd04b233e33a9fd7e6fc2e8d2fea6fca05c31543e9447c35
diff --git a/dev-python/time-machine/time-machine-2.17.0.ebuild b/dev-python/time-machine/time-machine-2.17.0.ebuild
new file mode 100644
index 000000000000..91c5d443bc86
--- /dev/null
+++ b/dev-python/time-machine/time-machine-2.17.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Travel through time in your tests"
+HOMEPAGE="
+ https://github.com/adamchainz/time-machine/
+ https://pypi.org/project/time-machine/
+"
+SRC_URI="
+ https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/tokenize-rt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # https://github.com/adamchainz/time-machine/pull/529
+ tests/test_cli.py::TestMain::test_main_help_subprocess
+ tests/test_cli.py::TestMain::test_no_subcommand
+)
diff --git a/dev-python/tokenize-rt/tokenize-rt-6.2.0.ebuild b/dev-python/tokenize-rt/tokenize-rt-6.2.0.ebuild
index 5b6bf3143f36..f03ec09ea09d 100644
--- a/dev-python/tokenize-rt/tokenize-rt-6.2.0.ebuild
+++ b/dev-python/tokenize-rt/tokenize-rt-6.2.0.ebuild
@@ -20,6 +20,6 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~alpha amd64 ~arm arm64 x86"
distutils_enable_tests pytest
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index 6ad1b39b2b4a..6a4ed54d554f 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,3 +1,4 @@
DIST virtualenv-20.31.2.tar.gz 6076316 BLAKE2B 23584e0b5f556d95dcc1c24da4c140749fe8edd9abee9213cb47c89a43c7b8aa26d0f539523d93600c2d023db4153bd1ae2e2c33996677dfc3eef3ec4d9d7201 SHA512 b253fdd81412cbde1358a885ab25db62d7ee05309fd37c6d81cccde570f70acdd4ae13204dcf0a97cea67b6d6524d8d083ff6ca43a0ee22c513b39f1e37ee6f3
DIST virtualenv-20.32.0.tar.gz 6076970 BLAKE2B 09c7aab4c056cc89c2f50101cf68924d55bf26dbf3853ca3f537bfa2b8bf3ca178f0209f63597560c307458d8f3c8f19084d1cbd0a37e1cb3c71df49ff3b313d SHA512 fe2fbedb22eb30e52c401de827107e94f66c6f5f0425f42e4d5be59bf26da670a4daa705be23799b25fef0a2031c1f84e35a5376f7de06d4fe0275434645b7c1
DIST virtualenv-20.33.0.tar.gz 6082069 BLAKE2B 4a5308a0887c2de7ac96afa93bc08a868cd803d622d864626cbd5d6b4b32011f5e4603d6a59130ceb25f0dede0843c239a4d19cb76d1c49c20084ddde8a3dd38 SHA512 f490027e4c58cb7515b466f61d9455cd674f0d51806544b85419dde5cab02e9ed6fa16f9a57d5e3e735ae5a369442ca3a69233089ea244160cda0747b30e43f1
+DIST virtualenv-20.33.1.tar.gz 6082160 BLAKE2B 9473c2d96442e3c2f98c41ef3762be279f0559f4b7982783426f974a5f64ad4eb7bb70b0fcf92baf344f53ffe2ba0c20346970a10106fca0c90edc3fad6caaba SHA512 e9324e0a6985447f2f630571e58408507458d28ef98facabbcaa65c4acc1f4e91ab909126d9b5694a20f1edc00bcfc1148c5bf404b8dfd341c3253c2dd42953b
diff --git a/dev-python/virtualenv/virtualenv-20.33.1.ebuild b/dev-python/virtualenv/virtualenv-20.33.1.ebuild
new file mode 100644
index 000000000000..55d44ca4c224
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-20.33.1.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.12.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ dev-python/ensurepip-setuptools
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' python3_{11..14})
+ $(python_gen_cond_dep '
+ >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
+ ' 'pypy3*')
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-20.31.1-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping testing on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ # TODO
+ tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
+ # random resource leaks or xdist
+ tests/unit/test_file_limit.py::test_too_many_open_files
+ )
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # these don't like the executable called pypy3.11?
+ tests/unit/activation/test_bash.py::test_bash
+ tests/unit/activation/test_fish.py::test_fish
+ tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
+ )
+ ;;
+ esac
+
+ local -x TZ=UTC
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
+ if [[ ${EPYTHON} == pypy3* ]]; then
+ EPYTEST_PLUGINS+=( pytest-freezer )
+ else
+ EPYTEST_PLUGINS+=( time-machine )
+ fi
+ local EPYTEST_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
+}