summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-02-01 01:39:14 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-02-01 01:39:14 +0000
commit0eb8cc8b0a674771f5594ad40230662ff2095fdc (patch)
tree8d45526c0c2d242db987f577d51eda21abaacb45 /dev-python
parentf0f407150b4be5952bfb3501d1368b9e371b216e (diff)
downloadbaldeagleos-repo-0eb8cc8b0a674771f5594ad40230662ff2095fdc.tar.gz
baldeagleos-repo-0eb8cc8b0a674771f5594ad40230662ff2095fdc.tar.xz
baldeagleos-repo-0eb8cc8b0a674771f5594ad40230662ff2095fdc.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Faker/Faker-11.4.0.ebuild31
-rw-r--r--dev-python/Faker/Manifest1
-rw-r--r--dev-python/ansi/Manifest1
-rw-r--r--dev-python/ansi/ansi-0.3.5.ebuild20
-rw-r--r--dev-python/ansi2html/Manifest1
-rw-r--r--dev-python/ansi2html/ansi2html-1.7.0.ebuild45
-rw-r--r--dev-python/autocommand/Manifest1
-rw-r--r--dev-python/autocommand/autocommand-2.2.1_p20211118.ebuild25
-rw-r--r--dev-python/autocommand/metadata.xml13
-rw-r--r--dev-python/cachecontrol/cachecontrol-0.12.10.ebuild2
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-0.58.0.ebuild51
-rw-r--r--dev-python/cherrypy/cherrypy-18.6.1.ebuild9
-rw-r--r--dev-python/cherrypy/files/cherrypy-18.6.1-close-files.patch416
-rw-r--r--dev-python/commentjson/commentjson-0.9.0.ebuild4
-rw-r--r--dev-python/distro/distro-1.6.0.ebuild4
-rw-r--r--dev-python/google-auth/Manifest1
-rw-r--r--dev-python/google-auth/google-auth-2.6.0.ebuild56
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.36.1.ebuild65
-rw-r--r--dev-python/mongomock/Manifest1
-rw-r--r--dev-python/mongomock/mongomock-4.0.0.ebuild33
-rw-r--r--dev-python/pip-run/Manifest1
-rw-r--r--dev-python/pip-run/metadata.xml13
-rw-r--r--dev-python/pip-run/pip-run-8.8.0.ebuild40
-rw-r--r--dev-python/pip/Manifest1
-rw-r--r--dev-python/pip/pip-22.0.2.ebuild145
-rw-r--r--dev-python/pylast/Manifest1
-rw-r--r--dev-python/pylast/pylast-4.5.0.ebuild26
-rw-r--r--dev-python/resolvelib/resolvelib-0.8.1.ebuild4
-rw-r--r--dev-python/threadpoolctl/Manifest1
-rw-r--r--dev-python/threadpoolctl/threadpoolctl-3.1.0.ebuild21
-rw-r--r--dev-python/tikzplotlib/Manifest2
-rw-r--r--dev-python/tikzplotlib/metadata.xml4
-rw-r--r--dev-python/tikzplotlib/tikzplotlib-0.10.0.ebuild40
-rw-r--r--dev-python/tikzplotlib/tikzplotlib-0.10.1.ebuild40
36 files changed, 1108 insertions, 13 deletions
diff --git a/dev-python/Faker/Faker-11.4.0.ebuild b/dev-python/Faker/Faker-11.4.0.ebuild
new file mode 100644
index 000000000000..a1758e231aa7
--- /dev/null
+++ b/dev-python/Faker/Faker-11.4.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python package that generates fake data for you"
+HOMEPAGE="https://github.com/joke2k/faker"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
+ >=dev-python/text-unidecode-1.3[${PYTHON_USEDEP}]
+ !dev-ruby/faker"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP},tiff]
+ dev-python/random2[${PYTHON_USEDEP}]
+ dev-python/validators[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
diff --git a/dev-python/Faker/Manifest b/dev-python/Faker/Manifest
index 69d70e66f8be..70bc468e2437 100644
--- a/dev-python/Faker/Manifest
+++ b/dev-python/Faker/Manifest
@@ -2,3 +2,4 @@ DIST Faker-10.0.0.tar.gz 1198872 BLAKE2B 60e4f34a597ca11b0699c330f6cdb0f7f387bb6
DIST Faker-11.0.0.tar.gz 1199121 BLAKE2B e5c4e17daa969249dbf1ae69630a79c50e6e51d63db9997872bd22a7e91db1771fdef984ec5912d42815632598339062be20005e4921c846abf3013e6efc8c89 SHA512 687f47ba613bd2117c412da54e293281bf1943eccde8165cc749be5d176a025d250c831d55a509a6923b3542dba4fe5abce23bd80b980bdca742ecaa837d4334
DIST Faker-11.1.0.tar.gz 1214021 BLAKE2B c4b7b44d19566037135d47bce19895da7bb0eba17c64086ad5f0019bbd49a77aaf4231e6aef8f40aec4811bbe4df209b796773ac5cca6a859ff9b43ea57fe9bc SHA512 646d16bceb3fc5ca8a9004ab7369d7fc6012f0766b2f6b58922a1a415a4bf1ae1af0d5977d58f15792bd794fa2235fb44e626e28f5af168d4e4def8112bab0ca
DIST Faker-11.3.0.tar.gz 1215886 BLAKE2B 01a0e9cff30597536cc1d6f4ae3f67c43e0e1ec5268d5c544a0cf6ea905c4528f07567515e615b74f32ea4622c9090e63141b0b526d656cbb96a449c23e7b047 SHA512 cb95ecd4cd781c6a08621fe75a1d019349232f8be65d4c9b5825987cb98bb6d031569d6e3253cb36a68986707515540f6ebd7503085aea68d56642b08f86192f
+DIST Faker-11.4.0.tar.gz 1347314 BLAKE2B 0399302df718a9283ecb59ab044f438891f2874a2dd752d97bd88cf7e2de4536ad34ee818576c9c9926d90b5a18626759fb12dcd2cbf6ba54a3a9d2366caec66 SHA512 a12dbc6e3011839852fe978004520c546a42fab7b84ba03d890fe12a40299d36b7ce0ffbe1e678dfb74879fe17410589c459ff2ac904bdd15c9c03b816e8c7c0
diff --git a/dev-python/ansi/Manifest b/dev-python/ansi/Manifest
index dba5288bc241..b45fe7261f74 100644
--- a/dev-python/ansi/Manifest
+++ b/dev-python/ansi/Manifest
@@ -1 +1,2 @@
DIST ansi-0.2.0.tar.gz 5173 BLAKE2B 436caa8e1f36e96f1844e79e3a0ff0c4099e76b25ce9f56c9d8663aeeb650f32fba75a14fe8548f557fb020e2340707272fdda4cdd3c245c903a4f801ae48413 SHA512 22c69b5030f03eca9470e288c16e62042ccd02ef2e232600a4fab629354601d5da0f7c16b60dae7293c69255e5d4125298890d99dba8e5387960a5be60b92d61
+DIST ansi-0.3.5.tar.gz 6597 BLAKE2B 4e32bd7add4af1d9f11173aa79d6ed139814f3b3727a4599f104e8632a4e169fdaccf3e18ecf425f86c17c70c1d185f6a915bd9cbac2589d376fc23c338127e6 SHA512 a12b7e1231c2691edf6d807907fe6b8a8d6c6bc116fd9681b6bb7603e6e2ce7af17e3e7892d4046752844327eb8f02a248f93686640bec24dbe2be59202b01e3
diff --git a/dev-python/ansi/ansi-0.3.5.ebuild b/dev-python/ansi/ansi-0.3.5.ebuild
new file mode 100644
index 000000000000..89b484bbc1fb
--- /dev/null
+++ b/dev-python/ansi/ansi-0.3.5.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="ANSI cursor movement and graphics in Python"
+HOMEPAGE="https://github.com/tehmaze/ansi/"
+SRC_URI="https://github.com/tehmaze/${PN}/archive/${P}.tar.gz"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+distutils_enable_tests pytest
diff --git a/dev-python/ansi2html/Manifest b/dev-python/ansi2html/Manifest
index 0ebcc14deed0..2bfbcf42e9b5 100644
--- a/dev-python/ansi2html/Manifest
+++ b/dev-python/ansi2html/Manifest
@@ -1 +1,2 @@
DIST ansi2html-1.6.0.tar.gz 36053 BLAKE2B deb63c6c9f431ff225cfcbbd2995f0fce9535736dba7d8c92f1f2e51d525640e69bc4269ab073438239edb35815288fa17b2d69c89cca7627ba2b5096009611f SHA512 35e5fb6cee96fe41a658c005734a58b08bc05e8ad5903ad18684c316bdad351a70c534b4162416225bc2ca774d01b4ac1bb8a8dad3170d0738aa7b3daf46b3c0
+DIST ansi2html-1.7.0.tar.gz 42189 BLAKE2B 91c7409b4f8b7503e719489b18e9d7267d80c5259b7481f127cb8d1e6429649249b0832746285efc3e8a4f90ca8f21b872b002634d47a4a54ddfdcc74df0f576 SHA512 bcae0de9874899bd8440853b8279f3b2c4ed46e24bf807221ddc9d1bfa39647e2efd178aefc2fd39bad27b53890270b6ff7c150a0b8e74581b8323ef7a16c977
diff --git a/dev-python/ansi2html/ansi2html-1.7.0.ebuild b/dev-python/ansi2html/ansi2html-1.7.0.ebuild
new file mode 100644
index 000000000000..4f07280fe45f
--- /dev/null
+++ b/dev-python/ansi2html/ansi2html-1.7.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+DISTUTILS_USE_SETUPTOOLS=pyproject.toml
+
+inherit distutils-r1
+
+DESCRIPTION="Convert text with ANSI color codes to HTML"
+HOMEPAGE="https://pypi.org/project/ansi2html/ https://github.com/pycontribs/ansi2html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc"
+
+RDEPEND=">=dev-python/six-1.7.3[${PYTHON_USEDEP}]"
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ dev-python/setuptools_scm_git_archive[${PYTHON_USEDEP}]
+ dev-python/toml[${PYTHON_USEDEP}]
+ doc? (
+ app-text/asciidoc
+ )
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests --install pytest
+
+python_install_all() {
+ use doc && doman man/${PN}.1
+ distutils-r1_python_install_all
+}
+
+src_compile() {
+ # Upstream https://github.com/pycontribs/ansi2html/issues/124
+ use doc && emake man/ansi2html.1
+ distutils-r1_src_compile
+}
diff --git a/dev-python/autocommand/Manifest b/dev-python/autocommand/Manifest
new file mode 100644
index 000000000000..40298bf7338c
--- /dev/null
+++ b/dev-python/autocommand/Manifest
@@ -0,0 +1 @@
+DIST autocommand-2.2.1_p20211118.gh.tar.gz 22093 BLAKE2B 186062c0234fc0cc553c5d2a474a5fef46e0de25de8220228715265630fc95ed5f9b64321131322af71fadcc70ef79690652cd555a908b4e8628603a8ee494b2 SHA512 488228c7536f00ff9fbed99677440bfd7228aa64189bbcfb6aad7a92dc698d8283dfbd619ffeaeef883b0e600a90e2a0f56fa79958f144ce673dff53f8d59f89
diff --git a/dev-python/autocommand/autocommand-2.2.1_p20211118.ebuild b/dev-python/autocommand/autocommand-2.2.1_p20211118.ebuild
new file mode 100644
index 000000000000..449874b1ba60
--- /dev/null
+++ b/dev-python/autocommand/autocommand-2.2.1_p20211118.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+inherit distutils-r1
+
+COMMIT="031c9750c74e3313b954b09e3027aaa6595649bb"
+
+DESCRIPTION="Library to create a command-line program from a function"
+HOMEPAGE="https://pypi.org/project/autocommand/
+ https://github.com/Lucretiel/autocommand"
+SRC_URI="
+ https://github.com/Lucretiel/autocommand/archive/${COMMIT}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+distutils_enable_tests pytest
diff --git a/dev-python/autocommand/metadata.xml b/dev-python/autocommand/metadata.xml
new file mode 100644
index 000000000000..45c7b8dea5ad
--- /dev/null
+++ b/dev-python/autocommand/metadata.xml
@@ -0,0 +1,13 @@
+<?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>
+ <name>Python</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">autocommand</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/cachecontrol/cachecontrol-0.12.10.ebuild b/dev-python/cachecontrol/cachecontrol-0.12.10.ebuild
index 92ee7b252e1d..832a80fbe605 100644
--- a/dev-python/cachecontrol/cachecontrol-0.12.10.ebuild
+++ b/dev-python/cachecontrol/cachecontrol-0.12.10.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
inherit distutils-r1
DESCRIPTION="httplib2 caching for requests"
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index c0ee18d44e7f..0f1b4ebb3f60 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,3 +1,4 @@
DIST cfn-lint-0.56.3.tar.gz 8278034 BLAKE2B 894d30add7a193d256dc2195c0cd1d4b75f10f60abe9e37c5b0bdd84178d9559759326ad3e55d2321b99588094b436dc2dc8dff1cc561ae56dd4cee98d6b43bd SHA512 8aeaf44a626f9bfc05ebeefc8aec9211fcac1a65de681d5d700f3621631bff15e74ed644b9d0dc8af4d9b0b14802c2259dbc4ccf38594705040f5fd3af1cf482
DIST cfn-lint-0.56.4.tar.gz 8550039 BLAKE2B 99efd99b423e068717f3050e4da444436463c16b0a55dfc36ca7ca45b1136d08bbce84441c8c4170eff7c82cbd4ecf87b6f78504b1d09d850d803a7e957903c9 SHA512 b7c94d85d58f9e44ff8d5575bb33c8c7fafcb908afe144d585765f02d645436d6583ecc802f0fa376597b75c72ada9a23862141cf1170c1ac1f64f2467d346fb
DIST cfn-lint-0.57.0.tar.gz 8579636 BLAKE2B 5e9cadcbd695b1047c4cf51132fcdf5a254a89fcd89a86e3c5d86096e8cd376f7f02422757f7daaf98490ff82df88933a976faba1ea6504a463ed7c485c83631 SHA512 11ec66bc5a98c928e059778462766100fb47f4b45a4cc7023d3d2b70ae664a1b199ec4df0d95cb9ada5a09a1f7a609fcec7d76339b3d9d6430bbe85462e1c020
+DIST cfn-lint-0.58.0.tar.gz 8645209 BLAKE2B b198c8e6a56095782ab5fbd70f1f5872d951da133ee7056ef468e5d1cd0ba1a7831ebd4263248ec2cec04980211e01cf3525e18f8ad272d6b1aaeee07527028d SHA512 238929a79d25b6a5945fd43f29fa3c432c650923634495c2ace7e3f6ace0c7701bcc278ea151a9172691bd04164f8a7b409dd8387e82e5917a9f65e1a556a4d2
diff --git a/dev-python/cfn-lint/cfn-lint-0.58.0.ebuild b/dev-python/cfn-lint/cfn-lint-0.58.0.ebuild
new file mode 100644
index 000000000000..adba01b53c41
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-0.58.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="https://pypi.org/project/cfn-lint/ https://github.com/aws-cloudformation/cfn-lint/"
+SRC_URI="
+ https://github.com/aws-cloudformation/cfn-lint/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.42.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema_to_python-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.15.0[${PYTHON_USEDEP}]
+ >=dev-python/sarif_om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/six-1.11[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # TODO
+ test/unit/module/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # Internet
+ test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_2
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
+)
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i setup.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/cherrypy/cherrypy-18.6.1.ebuild b/dev-python/cherrypy/cherrypy-18.6.1.ebuild
index 52a42d72f6bc..919721733963 100644
--- a/dev-python/cherrypy/cherrypy-18.6.1.ebuild
+++ b/dev-python/cherrypy/cherrypy-18.6.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
inherit distutils-r1
MY_P="CherryPy-${PV}"
@@ -40,6 +40,11 @@ BDEPEND="
distutils_enable_tests pytest
python_prepare_all() {
+ local PATCHES=(
+ # https://github.com/cherrypy/cherrypy/pull/1946
+ "${FILESDIR}"/${P}-close-files.patch
+ )
+
sed -r -e '/(pytest-sugar|pytest-cov)/ d' \
-i setup.py || die
diff --git a/dev-python/cherrypy/files/cherrypy-18.6.1-close-files.patch b/dev-python/cherrypy/files/cherrypy-18.6.1-close-files.patch
new file mode 100644
index 000000000000..478d717dfb8c
--- /dev/null
+++ b/dev-python/cherrypy/files/cherrypy-18.6.1-close-files.patch
@@ -0,0 +1,416 @@
+From 94a2cc036203c6da55174ef3b105c0c875bbc79f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Mon, 31 Jan 2022 22:25:34 +0100
+Subject: [PATCH] Use context managers to close files properly and fix tests on
+ PyPy
+
+Use context managers (`with`) to ensure that all open files are closed
+correctly. This resolves resource leaks and test failures with PyPy3.7.
+
+The code prior to this change used four approaches for closing files:
+
+1. Using a context manager (`with` clause).
+
+2. Using a try/finally clause.
+
+3. Closing the file in the same scope (unreliable: file object can leak
+ on exception).
+
+4. Not closing open files at all.
+
+The last point is a real problem for PyPy since it does not GC
+unreachable objects as aggressively as CPython does. While leaving
+a function scope on CPython causes the file objects private to it to
+be destroyed (and therefore closed), in PyPy they can stay dangling
+for some time. When combines with buffered writes, this means that
+writes can still remain pending after returning from function.
+
+Using a context manager is a simple, consistent way to ensure that
+the file object is closed once it is no longer needed. In turn, this
+guarantees that all pending writes will be performed upon function
+return and the code won't be hiting race conditions between writing
+a file and reading it afterwards.
+---
+ cherrypy/_cperror.py | 3 ++-
+ cherrypy/_cpmodpy.py | 5 +----
+ cherrypy/lib/auth_digest.py | 13 ++++++------
+ cherrypy/lib/covercp.py | 40 ++++++++++++++++++------------------
+ cherrypy/lib/reprconf.py | 5 +----
+ cherrypy/lib/sessions.py | 10 ++-------
+ cherrypy/process/plugins.py | 3 ++-
+ cherrypy/test/helper.py | 3 ++-
+ cherrypy/test/logtest.py | 33 ++++++++++++++++-------------
+ cherrypy/test/modfastcgi.py | 5 +----
+ cherrypy/test/modfcgid.py | 5 +----
+ cherrypy/test/modpy.py | 5 +----
+ cherrypy/test/modwsgi.py | 5 +----
+ cherrypy/test/test_core.py | 5 ++---
+ cherrypy/test/test_states.py | 11 +++++-----
+ 15 files changed, 67 insertions(+), 84 deletions(-)
+
+diff --git a/cherrypy/_cperror.py b/cherrypy/_cperror.py
+index 4e727682..ebf1dcf6 100644
+--- a/cherrypy/_cperror.py
++++ b/cherrypy/_cperror.py
+@@ -532,7 +532,8 @@ def get_error_page(status, **kwargs):
+ return result
+ else:
+ # Load the template from this path.
+- template = io.open(error_page, newline='').read()
++ with io.open(error_page, newline='') as f:
++ template = f.read()
+ except Exception:
+ e = _format_exception(*_exc_info())[-1]
+ m = kwargs['message']
+diff --git a/cherrypy/_cpmodpy.py b/cherrypy/_cpmodpy.py
+index 0e608c48..a08f0ed9 100644
+--- a/cherrypy/_cpmodpy.py
++++ b/cherrypy/_cpmodpy.py
+@@ -339,11 +339,8 @@ LoadModule python_module modules/mod_python.so
+ }
+
+ mpconf = os.path.join(os.path.dirname(__file__), 'cpmodpy.conf')
+- f = open(mpconf, 'wb')
+- try:
++ with open(mpconf, 'wb') as f:
+ f.write(conf_data)
+- finally:
+- f.close()
+
+ response = read_process(self.apache_path, '-k start -f %s' % mpconf)
+ self.ready = True
+diff --git a/cherrypy/lib/auth_digest.py b/cherrypy/lib/auth_digest.py
+index fbb5df64..981e9a5d 100644
+--- a/cherrypy/lib/auth_digest.py
++++ b/cherrypy/lib/auth_digest.py
+@@ -101,13 +101,12 @@ def get_ha1_file_htdigest(filename):
+ """
+ def get_ha1(realm, username):
+ result = None
+- f = open(filename, 'r')
+- for line in f:
+- u, r, ha1 = line.rstrip().split(':')
+- if u == username and r == realm:
+- result = ha1
+- break
+- f.close()
++ with open(filename, 'r') as f:
++ for line in f:
++ u, r, ha1 = line.rstrip().split(':')
++ if u == username and r == realm:
++ result = ha1
++ break
+ return result
+
+ return get_ha1
+diff --git a/cherrypy/lib/covercp.py b/cherrypy/lib/covercp.py
+index 3e219713..005fafa5 100644
+--- a/cherrypy/lib/covercp.py
++++ b/cherrypy/lib/covercp.py
+@@ -334,26 +334,26 @@ class CoverStats(object):
+ yield '</body></html>'
+
+ def annotated_file(self, filename, statements, excluded, missing):
+- source = open(filename, 'r')
+- buffer = []
+- for lineno, line in enumerate(source.readlines()):
+- lineno += 1
+- line = line.strip('\n\r')
+- empty_the_buffer = True
+- if lineno in excluded:
+- template = TEMPLATE_LOC_EXCLUDED
+- elif lineno in missing:
+- template = TEMPLATE_LOC_NOT_COVERED
+- elif lineno in statements:
+- template = TEMPLATE_LOC_COVERED
+- else:
+- empty_the_buffer = False
+- buffer.append((lineno, line))
+- if empty_the_buffer:
+- for lno, pastline in buffer:
+- yield template % (lno, cgi.escape(pastline))
+- buffer = []
+- yield template % (lineno, cgi.escape(line))
++ with open(filename, 'r') as source:
++ buffer = []
++ for lineno, line in enumerate(source.readlines()):
++ lineno += 1
++ line = line.strip('\n\r')
++ empty_the_buffer = True
++ if lineno in excluded:
++ template = TEMPLATE_LOC_EXCLUDED
++ elif lineno in missing:
++ template = TEMPLATE_LOC_NOT_COVERED
++ elif lineno in statements:
++ template = TEMPLATE_LOC_COVERED
++ else:
++ empty_the_buffer = False
++ buffer.append((lineno, line))
++ if empty_the_buffer:
++ for lno, pastline in buffer:
++ yield template % (lno, cgi.escape(pastline))
++ buffer = []
++ yield template % (lineno, cgi.escape(line))
+
+ @cherrypy.expose
+ def report(self, name):
+diff --git a/cherrypy/lib/reprconf.py b/cherrypy/lib/reprconf.py
+index 3976652e..76381d7b 100644
+--- a/cherrypy/lib/reprconf.py
++++ b/cherrypy/lib/reprconf.py
+@@ -163,11 +163,8 @@ class Parser(configparser.ConfigParser):
+ # fp = open(filename)
+ # except IOError:
+ # continue
+- fp = open(filename)
+- try:
++ with open(filename) as fp:
+ self._read(fp, filename)
+- finally:
+- fp.close()
+
+ def as_dict(self, raw=False, vars=None):
+ """Convert an INI file to a dictionary"""
+diff --git a/cherrypy/lib/sessions.py b/cherrypy/lib/sessions.py
+index 5b3328f2..0f56a4fa 100644
+--- a/cherrypy/lib/sessions.py
++++ b/cherrypy/lib/sessions.py
+@@ -516,11 +516,8 @@ class FileSession(Session):
+ if path is None:
+ path = self._get_file_path()
+ try:
+- f = open(path, 'rb')
+- try:
++ with open(path, 'rb') as f:
+ return pickle.load(f)
+- finally:
+- f.close()
+ except (IOError, EOFError):
+ e = sys.exc_info()[1]
+ if self.debug:
+@@ -531,11 +528,8 @@ class FileSession(Session):
+ def _save(self, expiration_time):
+ assert self.locked, ('The session was saved without being locked. '
+ "Check your tools' priority levels.")
+- f = open(self._get_file_path(), 'wb')
+- try:
++ with open(self._get_file_path(), 'wb') as f:
+ pickle.dump((self._data, expiration_time), f, self.pickle_protocol)
+- finally:
+- f.close()
+
+ def _delete(self):
+ assert self.locked, ('The session deletion without being locked. '
+diff --git a/cherrypy/process/plugins.py b/cherrypy/process/plugins.py
+index 2a9952de..e96fb1ce 100644
+--- a/cherrypy/process/plugins.py
++++ b/cherrypy/process/plugins.py
+@@ -436,7 +436,8 @@ class PIDFile(SimplePlugin):
+ if self.finalized:
+ self.bus.log('PID %r already written to %r.' % (pid, self.pidfile))
+ else:
+- open(self.pidfile, 'wb').write(ntob('%s\n' % pid, 'utf8'))
++ with open(self.pidfile, 'wb') as f:
++ f.write(ntob('%s\n' % pid, 'utf8'))
+ self.bus.log('PID %r written to %r.' % (pid, self.pidfile))
+ self.finalized = True
+ start.priority = 70
+diff --git a/cherrypy/test/helper.py b/cherrypy/test/helper.py
+index c1ca4535..cae49533 100644
+--- a/cherrypy/test/helper.py
++++ b/cherrypy/test/helper.py
+@@ -505,7 +505,8 @@ server.ssl_private_key: r'%s'
+
+ def get_pid(self):
+ if self.daemonize:
+- return int(open(self.pid_file, 'rb').read())
++ with open(self.pid_file, 'rb') as f:
++ return int(f.read())
+ return self._proc.pid
+
+ def join(self):
+diff --git a/cherrypy/test/logtest.py b/cherrypy/test/logtest.py
+index 344be987..112bdc25 100644
+--- a/cherrypy/test/logtest.py
++++ b/cherrypy/test/logtest.py
+@@ -97,7 +97,8 @@ class LogCase(object):
+
+ def emptyLog(self):
+ """Overwrite self.logfile with 0 bytes."""
+- open(self.logfile, 'wb').write('')
++ with open(self.logfile, 'wb') as f:
++ f.write('')
+
+ def markLog(self, key=None):
+ """Insert a marker line into the log and set self.lastmarker."""
+@@ -105,10 +106,11 @@ class LogCase(object):
+ key = str(time.time())
+ self.lastmarker = key
+
+- open(self.logfile, 'ab+').write(
+- b'%s%s\n'
+- % (self.markerPrefix, key.encode('utf-8'))
+- )
++ with open(self.logfile, 'ab+') as f:
++ f.write(
++ b'%s%s\n'
++ % (self.markerPrefix, key.encode('utf-8'))
++ )
+
+ def _read_marked_region(self, marker=None):
+ """Return lines from self.logfile in the marked region.
+@@ -122,20 +124,23 @@ class LogCase(object):
+ logfile = self.logfile
+ marker = marker or self.lastmarker
+ if marker is None:
+- return open(logfile, 'rb').readlines()
++ with open(logfile, 'rb') as f:
++ return f.readlines()
+
+ if isinstance(marker, str):
+ marker = marker.encode('utf-8')
+ data = []
+ in_region = False
+- for line in open(logfile, 'rb'):
+- if in_region:
+- if line.startswith(self.markerPrefix) and marker not in line:
+- break
+- else:
+- data.append(line)
+- elif marker in line:
+- in_region = True
++ with open(logfile, 'rb') as f:
++ for line in f:
++ if in_region:
++ if (line.startswith(self.markerPrefix)
++ and marker not in line):
++ break
++ else:
++ data.append(line)
++ elif marker in line:
++ in_region = True
+ return data
+
+ def assertInLog(self, line, marker=None):
+diff --git a/cherrypy/test/modfastcgi.py b/cherrypy/test/modfastcgi.py
+index 79ec3d18..0c6d01e2 100644
+--- a/cherrypy/test/modfastcgi.py
++++ b/cherrypy/test/modfastcgi.py
+@@ -112,15 +112,12 @@ class ModFCGISupervisor(helper.LocalWSGISupervisor):
+ fcgiconf = os.path.join(curdir, fcgiconf)
+
+ # Write the Apache conf file.
+- f = open(fcgiconf, 'wb')
+- try:
++ with open(fcgiconf, 'wb') as f:
+ server = repr(os.path.join(curdir, 'fastcgi.pyc'))[1:-1]
+ output = self.template % {'port': self.port, 'root': curdir,
+ 'server': server}
+ output = output.replace('\r\n', '\n')
+ f.write(output)
+- finally:
+- f.close()
+
+ result = read_process(APACHE_PATH, '-k start -f %s' % fcgiconf)
+ if result:
+diff --git a/cherrypy/test/modfcgid.py b/cherrypy/test/modfcgid.py
+index d101bd67..ea373004 100644
+--- a/cherrypy/test/modfcgid.py
++++ b/cherrypy/test/modfcgid.py
+@@ -101,15 +101,12 @@ class ModFCGISupervisor(helper.LocalSupervisor):
+ fcgiconf = os.path.join(curdir, fcgiconf)
+
+ # Write the Apache conf file.
+- f = open(fcgiconf, 'wb')
+- try:
++ with open(fcgiconf, 'wb') as f:
+ server = repr(os.path.join(curdir, 'fastcgi.pyc'))[1:-1]
+ output = self.template % {'port': self.port, 'root': curdir,
+ 'server': server}
+ output = ntob(output.replace('\r\n', '\n'))
+ f.write(output)
+- finally:
+- f.close()
+
+ result = read_process(APACHE_PATH, '-k start -f %s' % fcgiconf)
+ if result:
+diff --git a/cherrypy/test/modpy.py b/cherrypy/test/modpy.py
+index 7c288d2c..024453e9 100644
+--- a/cherrypy/test/modpy.py
++++ b/cherrypy/test/modpy.py
+@@ -107,13 +107,10 @@ class ModPythonSupervisor(helper.Supervisor):
+ if not os.path.isabs(mpconf):
+ mpconf = os.path.join(curdir, mpconf)
+
+- f = open(mpconf, 'wb')
+- try:
++ with open(mpconf, 'wb') as f:
+ f.write(self.template %
+ {'port': self.port, 'modulename': modulename,
+ 'host': self.host})
+- finally:
+- f.close()
+
+ result = read_process(APACHE_PATH, '-k start -f %s' % mpconf)
+ if result:
+diff --git a/cherrypy/test/modwsgi.py b/cherrypy/test/modwsgi.py
+index da7d240b..24c72684 100644
+--- a/cherrypy/test/modwsgi.py
++++ b/cherrypy/test/modwsgi.py
+@@ -109,14 +109,11 @@ class ModWSGISupervisor(helper.Supervisor):
+ if not os.path.isabs(mpconf):
+ mpconf = os.path.join(curdir, mpconf)
+
+- f = open(mpconf, 'wb')
+- try:
++ with open(mpconf, 'wb') as f:
+ output = (self.template %
+ {'port': self.port, 'testmod': modulename,
+ 'curdir': curdir})
+ f.write(output)
+- finally:
+- f.close()
+
+ result = read_process(APACHE_PATH, '-k start -f %s' % mpconf)
+ if result:
+diff --git a/cherrypy/test/test_core.py b/cherrypy/test/test_core.py
+index 6fde3a97..42460b3f 100644
+--- a/cherrypy/test/test_core.py
++++ b/cherrypy/test/test_core.py
+@@ -586,9 +586,8 @@ class CoreRequestHandlingTest(helper.CPWebCase):
+ def testFavicon(self):
+ # favicon.ico is served by staticfile.
+ icofilename = os.path.join(localDir, '../favicon.ico')
+- icofile = open(icofilename, 'rb')
+- data = icofile.read()
+- icofile.close()
++ with open(icofilename, 'rb') as icofile:
++ data = icofile.read()
+
+ self.getPage('/favicon.ico')
+ self.assertBody(data)
+diff --git a/cherrypy/test/test_states.py b/cherrypy/test/test_states.py
+index 28dd6510..d59a4d87 100644
+--- a/cherrypy/test/test_states.py
++++ b/cherrypy/test/test_states.py
+@@ -424,11 +424,12 @@ test_case_name: "test_signal_handler_unsubscribe"
+ p.join()
+
+ # Assert the old handler ran.
+- log_lines = list(open(p.error_log, 'rb'))
+- assert any(
+- line.endswith(b'I am an old SIGTERM handler.\n')
+- for line in log_lines
+- )
++ with open(p.error_log, 'rb') as f:
++ log_lines = list(f)
++ assert any(
++ line.endswith(b'I am an old SIGTERM handler.\n')
++ for line in log_lines
++ )
+
+
+ def test_safe_wait_INADDR_ANY(): # pylint: disable=invalid-name
+--
+2.35.1
+
diff --git a/dev-python/commentjson/commentjson-0.9.0.ebuild b/dev-python/commentjson/commentjson-0.9.0.ebuild
index 57af01ab311c..12e77aeeb949 100644
--- a/dev-python/commentjson/commentjson-0.9.0.ebuild
+++ b/dev-python/commentjson/commentjson-0.9.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2021 Gentoo Authors
+# Copyright 2021-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
inherit distutils-r1
DESCRIPTION="Add Python and JavaScript style comments in your JSON files"
diff --git a/dev-python/distro/distro-1.6.0.ebuild b/dev-python/distro/distro-1.6.0.ebuild
index d268c39a860d..16fe8d865370 100644
--- a/dev-python/distro/distro-1.6.0.ebuild
+++ b/dev-python/distro/distro-1.6.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
inherit distutils-r1
DESCRIPTION="Reliable machine-readable Linux distribution information for Python"
diff --git a/dev-python/google-auth/Manifest b/dev-python/google-auth/Manifest
index 2099353297c8..5b159d372f29 100644
--- a/dev-python/google-auth/Manifest
+++ b/dev-python/google-auth/Manifest
@@ -1,3 +1,4 @@
DIST google-auth-2.3.3.tar.gz 186600 BLAKE2B 52b1269b88d27fafafcb053219c93c7f180cac11cdf32b140531553dda547d02087b0418d44edc6497eb37793859d86d4beaad1a7a128c86839202785584c9ab SHA512 3ab6d97e71988ef5e338e0a643545f8fa504f5ea04f4176afd9417ecf0e9a3fa45333f0c2c7ea5bf32423df32c48ec59ac9d16ef8bfc35a1aa4c0fcc114fef63
DIST google-auth-2.4.0.tar.gz 188032 BLAKE2B 27cd5a9fec2a0f98e26e4c5cfada446f9561834d8471a91bcab54b2965231ecf9d40d8d6d4240355adf0da5ffc9533ce745940a9d9eaca3fd97ed8c759e55939 SHA512 bb107b4dcf556e98f2a994d9baf10492d249b679d92c26bd96c79764d886bfb001940ac168ff0932456af15e4f2de38edc62d7c9beecadafad5e6350b13e0d95
DIST google-auth-2.5.0.tar.gz 189396 BLAKE2B 85b6cccf46acaa15ebc58b0cc4ea906c405e8f5e1f9d5c67c1790105689bba47e9f57355751a31a051ec6f20f828e2e2d0d9e792afc5d877791deab8a3e18503 SHA512 7323f253789364d14c1c1adf148cbfff2abceec06c539e93c8f5ae4a5ee978838480f9923e3d62988d903a239434257f980ec1095a8cedc678e263d0adff6cce
+DIST google-auth-2.6.0.tar.gz 188477 BLAKE2B 19baf9ec41e2b8667b8800687f4920d0e53df6cbfd17830e352f808b1438b21d952a4480f3b0fbc8e83dd215c0cd49b393f4798952eea1eb808b5417d578af85 SHA512 160fae0afcebd62dc0d46bf5e1102be34c6084cf188941105facd00b4a9b2bf6b36b58623e84595111849af0cb16b4f4a09b1e13ce095be025831fa4e7241b4c
diff --git a/dev-python/google-auth/google-auth-2.6.0.ebuild b/dev-python/google-auth/google-auth-2.6.0.ebuild
new file mode 100644
index 000000000000..9537544677b8
--- /dev/null
+++ b/dev-python/google-auth/google-auth-2.6.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="Google Authentication Library"
+HOMEPAGE="
+ https://github.com/googleapis/google-auth-library-python/
+ https://pypi.org/project/google-auth/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/cachetools-6.0.0[${PYTHON_USEDEP}]
+ dev-python/namespace-google[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ "
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/grpcio[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ dev-python/pyu2f[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # these are compatibility tests with oauth2client
+ # disable them to unblock removal of that package
+ tests/test__oauth2client.py
+)
+
+python_install_all() {
+ distutils-r1_python_install_all
+ find "${ED}" -name '*.pth' -delete || die
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 873732102686..3cce33a5a1f0 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -3,3 +3,4 @@ DIST hypothesis-python-6.33.0.tar.gz 9177426 BLAKE2B ad1b1a358345f9b92bf41cee196
DIST hypothesis-python-6.34.2.tar.gz 9178843 BLAKE2B 24bbc19ea5c207880d577a3c451f6e90c4b124a934aa1cd103c11ec77cbb5076d75e3860abd2b9bd2fc75640ba562b81d3fa038cc7752109625990e0ac0e1039 SHA512 a03233a2b84b1e009ad246663b0c7f6b56f2c04d08d69297ff50b02b8af292fdee37f877ca2f709e6ef64192d31e3d9bf18f78a6f5c92b8f03bf04ba398d063c
DIST hypothesis-python-6.35.1.tar.gz 9179056 BLAKE2B 3667ed7fe2a5402a3055941c44afe8e3e909381a0cbc1bec61cdcec18cb102796d283c737d5642ff6242fee4f0a2dc88774befe880a58f64bb4e183789b21e09 SHA512 839c9b2cf607f44fccf20c814a774889484f61a40a93e976f7bcb457dceac272bf6b775231fb36009e115181cf2089907bcad898f795e266d98ca218c5c4af28
DIST hypothesis-python-6.36.0.tar.gz 9179303 BLAKE2B f7e1b7f4400f4e6acd15898a32630420b693dd41d432e0914b56469f7781e5ff4df2e2679be9af36bcfe65a618ddd5d8be9ff22b9df8b05af697960c6721a813 SHA512 afff635df30552aa8165a28e2dd02e01cd265e22793d788b8a7009f5d3f85fee6330423eed405f64a13d8749c852b81b3d21b4c48f3b3b3a3682e8cdd4cdf238
+DIST hypothesis-python-6.36.1.tar.gz 9179567 BLAKE2B 67c5e33667287107b80684011076448d3761f09759592eeb42c4763080a23c9bdcffd21d0566282b856f55cc3b527e365f5b91f12abf0de77aee842ef2da719d SHA512 53a2054cfad778e59d56b483075a2de0cb3b15c80be3d2101607c593eb4e997516c350a44e542ec4ecf6b265058733d0362d557b908d58a934e57369b08334be
diff --git a/dev-python/hypothesis/hypothesis-6.36.1.ebuild b/dev-python/hypothesis/hypothesis-6.36.1.ebuild
new file mode 100644
index 000000000000..6d0ac831451c
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.36.1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 multiprocessing 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/${PN}/archive/${PN}-python-${PV}.tar.gz"
+S="${WORKDIR}/${PN}-${PN}-python-${PV}/${PN}-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' python3_{8..10})
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ !!<dev-python/typing-3.7.4.1
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare() {
+ if ! use cli || ! has "${EPYTHON}" python3.{8..10}; then
+ sed -i -e '/console_scripts/d' setup.py || die
+ fi
+}
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,pytest_forked,_hypothesis_pytestplugin
+
+ epytest tests/cover tests/pytest tests/quality \
+ -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")"
+}
+
+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/mongomock/Manifest b/dev-python/mongomock/Manifest
index 9099adf3508e..7bd93c46a015 100644
--- a/dev-python/mongomock/Manifest
+++ b/dev-python/mongomock/Manifest
@@ -1 +1,2 @@
DIST mongomock-3.23.0.tar.gz 123705 BLAKE2B d58f867628c8c80e1289c1a86fa910585431b5eca41818201dccd54d5adccb55c35aea41566ab2d483c7040cfcaa4c2afdbaad39fdd901497a0e1db4effd1c11 SHA512 35442f29907bb58693059a33f5941ca557965fe2b0b9b68ab3e4b31f5e2326bb41db8716a089dd18a1a1fdd5523a729b48a85e0caa0daca1bad2790c2ac017a9
+DIST mongomock-4.0.0.tar.gz 145478 BLAKE2B fad07cd15f250f81dd483814d6a3c15e69a86f4ee9a27308a3a08961f11a38c1abfc3bfa0a36dd81e14c902946c9aefd6ac29a9dde95dbf3e5b0781e7f9c8aca SHA512 e489dd9f312762f0322dfcc34b85912b5e47fa838bd48561aab9c195f19002c8e5f3617a1cc45929e9476aede7733286b5f6246f54be7396c422da5920bd89d5
diff --git a/dev-python/mongomock/mongomock-4.0.0.ebuild b/dev-python/mongomock/mongomock-4.0.0.ebuild
new file mode 100644
index 000000000000..b1e6c9433b49
--- /dev/null
+++ b/dev-python/mongomock/mongomock-4.0.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="Library to help testing Python code that interacts with MongoDB via Pymongo"
+HOMEPAGE="https://github.com/mongomock/mongomock https://pypi.org/project/mongomock/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+BDEPEND=">=dev-python/pbr-5.1.1[${PYTHON_USEDEP}]"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-3.10.1[${PYTHON_USEDEP}]
+ >=dev-python/sentinels-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.14.0[${PYTHON_USEDEP}]"
+
+src_test() {
+ # Use NO_LOCAL_MONGO to disable tests that need a MongoDB instance.
+ # TZ=UTC needed for date/time tests to pass
+ TZ=UTC NO_LOCAL_MONGO=1 distutils-r1_src_test
+}
+
+distutils_enable_tests pytest
diff --git a/dev-python/pip-run/Manifest b/dev-python/pip-run/Manifest
new file mode 100644
index 000000000000..919e3b249dd7
--- /dev/null
+++ b/dev-python/pip-run/Manifest
@@ -0,0 +1 @@
+DIST pip-run-8.8.0.gh.tar.gz 22145 BLAKE2B 18b915a29a1767022a609e356005e87f035c3d9bab6dd5ab44f9f42668f4d64c4ee5360cb92b217aa2b7b94e0fbfdb5f0e494e668d9bed8badc38ab36cced353 SHA512 301083a34dea08035819024f17d8108f9751a765cdfc8f2e273b948c7746111efedd80765a63c3ac145bdf7d2b41c9a0b2b20286181c4c94cbc5501fb81eb74d
diff --git a/dev-python/pip-run/metadata.xml b/dev-python/pip-run/metadata.xml
new file mode 100644
index 000000000000..585e2d2ee428
--- /dev/null
+++ b/dev-python/pip-run/metadata.xml
@@ -0,0 +1,13 @@
+<?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>
+ <name>Python</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">pip-run</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pip-run/pip-run-8.8.0.ebuild b/dev-python/pip-run/pip-run-8.8.0.ebuild
new file mode 100644
index 000000000000..9028aa26f8d6
--- /dev/null
+++ b/dev-python/pip-run/pip-run-8.8.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="Install packages and run Python with them"
+HOMEPAGE="https://pypi.org/project/pip-run/
+ https://github.com/jaraco/pip-run"
+SRC_URI="
+ https://github.com/jaraco/pip-run/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/autocommand[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/path-py[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pygments[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # Needs network access, and another test dep nbformat
+ pip_run/tests/test_scripts.py
+)
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest
index bc358516b9bd..58737ebc97c9 100644
--- a/dev-python/pip/Manifest
+++ b/dev-python/pip/Manifest
@@ -1,5 +1,6 @@
DIST pip-21.3.1.tar.gz 8961896 BLAKE2B f694956854cfd26f9b043fc28994448d2b2efff04080808f4e89ba15905887b432efb02d1c81370f75bd42e5c615a5a2360af63437967bc2fef63a85d59906a7 SHA512 2f50f95fe36cffc18821a70824f5b28d03598894f9ea5b02acc4921d16fc7739131814828a2159bcd577331cc780c7776a3669fa1ca2d4690c861add10a16f00
DIST pip-22.0.1.tar.gz 9288984 BLAKE2B 11936d6baffb8ccf3715f1183ac007f93930c6188c9b8b7c063b1c42513658cf8de31ce98a73d7d94a0a5b28407c985fe419419a689fae2a43bfc5c2fcb0439e SHA512 64ee12c8bfa12e8df4d5160c24064f28805d14c215d9db2663ca069d49e1e3c7050084bd9059bfdb31f0901440b4c2711d4544440a937a94ca1b9fa7f213924d
+DIST pip-22.0.2.tar.gz 9289498 BLAKE2B 4e23c9cf5410cbed77b631fc153c1a9a992a11e5f06c9e317a4e3018da19382f25208557d327447ee778d2a9ca585f08ffa2a3fd8bcdfcda7fd2ec195e99c135 SHA512 5cc649b1b64c731d3b47c2296d37c93d276393224e8183e6f8966e320b876122c3e89c163d3da5cba064f4279a5e1f2a92b349edaf834c33b69b77d593b7195f
DIST setuptools-57.4.0-py3-none-any.whl 819017 BLAKE2B afba86cf9aeea58ee869fdc11bbb192abbf2f89710e468b90dc291fec228ca16202483e36195a5ad4e2b8d210326bc83e2be6ec696ab413d94ffaeb05bb9c030 SHA512 9bf230f4e0e72acab07ab372a6ca05adb3d175a8079d2f73d327c632f3d27b8ee10442d3e60f4c94a6e61d5ba2212fc78187ca6e1717e15bb570bdce4263fd0b
DIST virtualenv-16.7.11.tar.gz 8134533 BLAKE2B ea81e11c210d911bf9576edf7b1754721b270adcc5d9633415d33b8f659149d64932fe2d366200121ec00c266c25dae380e248add438fc357477114eba4dfb4e SHA512 82d0d2a964508511e8e1686703581ff543f65791dc2449d9741d46ea57c4c89673947d2477ba374176f05fcea2a5ca572aa650c61c4f3271c4d73d1ff9d9ff42
DIST wheel-0.36.2-py2.py3-none-any.whl 35046 BLAKE2B bc4e8dab7c74eea34d3b4a813b7eaf6295a99a396a861b6cdd76f743043e89140bad132bdd13e385e8945ce02e0798e1d3ac73fc1b23bde5b2a83e4bb4dd5cdc SHA512 6bb5119b4d3704fe1e3c1eaaa3124edab13f61b46f8a0a8e75974fac4e5b25d8b53606071a03a8d8990ad1cfe2ab247ddea260098df2c0c35ae965be47080284
diff --git a/dev-python/pip/pip-22.0.2.ebuild b/dev-python/pip/pip-22.0.2.ebuild
new file mode 100644
index 000000000000..46e18afcf46c
--- /dev/null
+++ b/dev-python/pip/pip-22.0.2.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit bash-completion-r1 distutils-r1
+
+# setuptools & wheel .whl files are required for testing,
+# the exact version is not very important.
+SETUPTOOLS_WHL="setuptools-57.4.0-py3-none-any.whl"
+WHEEL_WHL="wheel-0.36.2-py2.py3-none-any.whl"
+# upstream still requires virtualenv-16 for testing, we are now fetching
+# it directly to avoid blockers with virtualenv-20
+VENV_PV=16.7.11
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="
+ https://pip.pypa.io/en/stable/
+ https://pypi.org/project/pip/
+ https://github.com/pypa/pip/"
+SRC_URI="
+ https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ test? (
+ https://files.pythonhosted.org/packages/py3/s/setuptools/${SETUPTOOLS_WHL}
+ https://files.pythonhosted.org/packages/py2.py3/w/wheel/${WHEEL_WHL}
+ https://github.com/pypa/virtualenv/archive/${VENV_PV}.tar.gz
+ -> virtualenv-${VENV_PV}.tar.gz
+ )
+"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+SLOT="0"
+IUSE="test vanilla"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ !alpha? ( !hppa? ( !ia64? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ ) ) )
+ )
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-21.3-no-coverage.patch"
+ )
+ if ! use vanilla; then
+ PATCHES+=( "${FILESDIR}/pip-20.0.2-disable-system-install.patch" )
+ fi
+
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ mkdir tests/data/common_wheels/ || die
+ cp "${DISTDIR}"/{${SETUPTOOLS_WHL},${WHEEL_WHL}} \
+ tests/data/common_wheels/ || die
+ fi
+}
+
+python_test() {
+ if [[ ${EPYTHON} == pypy* ]]; then
+ ewarn "Skipping tests on ${EPYTHON} since they are very broken"
+ return 0
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/functional/test_install.py::test_double_install_fail
+ tests/functional/test_list.py::test_multiple_exclude_and_normalization
+ 'tests/unit/test_commands.py::test_index_group_handle_pip_version_check[False-False-True-download]'
+ 'tests/unit/test_commands.py::test_index_group_handle_pip_version_check[False-False-True-install]'
+ 'tests/unit/test_commands.py::test_index_group_handle_pip_version_check[False-False-True-list]'
+ 'tests/unit/test_commands.py::test_index_group_handle_pip_version_check[False-False-True-wheel]'
+ tests/functional/test_install.py::test_install_pip_does_not_modify_pip_when_satisfied
+ # Internet
+ tests/functional/test_install.py::test_install_editable_with_prefix_setup_cfg
+ tests/functional/test_install.py::test_editable_install__local_dir_no_setup_py_with_pyproject
+ tests/functional/test_install.py::test_editable_install__local_dir_setup_requires_with_pyproject
+ )
+
+ [[ ${EPYTHON} == python3.10 ]] && EPYTEST_DESELECT+=(
+ tests/lib/test_lib.py::test_correct_pip_version
+ # uses vendored packaging that uses deprecated distutils
+ tests/functional/test_warning.py::test_pip_works_with_warnings_as_errors
+ )
+
+ if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/functional/test_install.py::test_install_sends_client_cert
+ tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ )
+ fi
+
+ distutils_install_for_testing
+ pushd "${WORKDIR}/virtualenv-${VENV_PV}" >/dev/null || die
+ distutils_install_for_testing
+ popd >/dev/null || die
+ # prevent it from being installed
+ rm -r "${BUILD_DIR}"/lib/virtualenv* || die
+
+ local -x GENTOO_PIP_TESTING=1 \
+ PATH="${TEST_DIR}/scripts:${PATH}" \
+ PYTHONPATH="${TEST_DIR}/lib:${BUILD_DIR}/lib"
+ epytest -m "not network"
+}
+
+python_install_all() {
+ # Prevent dbus auto-launch
+ # https://bugs.gentoo.org/692178
+ export DBUS_SESSION_BUS_ADDRESS="disabled:"
+
+ local DOCS=( AUTHORS.txt docs/html/**/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ # 'pip completion' command embeds full $0 into completion script, which confuses
+ # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
+ # This trick sets correct $0 while still calling just installed pip.
+ local pipcmd='import sys; sys.argv[0] = "pip"; __file__ = ""; from pip._internal.cli.main import main; sys.exit(main())'
+
+ "${EPYTHON}" -c "${pipcmd}" completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ "${EPYTHON}" -c "${pipcmd}" completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pylast/Manifest b/dev-python/pylast/Manifest
index 54435402bb07..9490bb09a2d2 100644
--- a/dev-python/pylast/Manifest
+++ b/dev-python/pylast/Manifest
@@ -1 +1,2 @@
DIST pylast-4.4.0.tar.gz 39793 BLAKE2B 13a2bd4652b0dee142442f8bc6bf922f544b093be207efe8661f5355e37ff59a5c0d9c844193d2d3e4f22ccafc10993b8cced6872d4f0fece42c37524bee8beb SHA512 341b3f8a6691699b9581769d1f06908df8ec694a22d8918e4ed37af1f47287577c5fc156f3807c744aa9774d69e23570036f06a8e9921f3c7c7d21b53b8eb041
+DIST pylast-4.5.0.tar.gz 40175 BLAKE2B 394a6329d0c7f03ae70cf7ee5e19e310d4fc4b70f86a6e8ed66ad93674465433ff7ab06cfbfa82fd33302a6d85b9fe582402c2166746e7853d1bada9de5f2449 SHA512 c885f0ea415c2a6b96454abdbcef0b61732a5253ddff45a03d85a2b7d733f6bff47d1806576e4acc6d07763e404985e5c35341e37b88d586d1cbec811d984551
diff --git a/dev-python/pylast/pylast-4.5.0.ebuild b/dev-python/pylast/pylast-4.5.0.ebuild
new file mode 100644
index 000000000000..e152e2f890f4
--- /dev/null
+++ b/dev-python/pylast/pylast-4.5.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to last.fm and other api-compatible websites"
+HOMEPAGE="https://github.com/pylast/pylast"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ test? ( dev-python/flaky[${PYTHON_USEDEP}] )
+"
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/resolvelib/resolvelib-0.8.1.ebuild b/dev-python/resolvelib/resolvelib-0.8.1.ebuild
index 9a1ee5520573..63f59bc03992 100644
--- a/dev-python/resolvelib/resolvelib-0.8.1.ebuild
+++ b/dev-python/resolvelib/resolvelib-0.8.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2021 Gentoo Authors
+# Copyright 2021-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
inherit distutils-r1
DESCRIPTION="provides a Resolver class that includes dependency resolution logic"
diff --git a/dev-python/threadpoolctl/Manifest b/dev-python/threadpoolctl/Manifest
index a8c27843f8f0..e7396707fda4 100644
--- a/dev-python/threadpoolctl/Manifest
+++ b/dev-python/threadpoolctl/Manifest
@@ -1 +1,2 @@
DIST threadpoolctl-3.0.0.tar.gz 28486 BLAKE2B e49bf43ea272e353e1a5f864cd7f38978793489b2dba60a1c075a61f6dbfe0a75a456e1143c0f33d3222ff2e27c1ce6025579b00e3feb2d789c7be068f6e07ad SHA512 df0829d5bed15d5cbcd502810aff91c9dd0d4dafc11173aa762426e96a7ed5acb0fd3132161e5b2d234136156f2a599c3592fc0a8e20828db83882b840a939cc
+DIST threadpoolctl-3.1.0.tar.gz 29899 BLAKE2B 41bddace1231107a108fd57e281541a4e9f04c9bee957d16cfbff49361f9dcb0b879bf376617480b1ca2929c09d07fd1f8f704afa4ad85e34e38c4a82fb48a3c SHA512 551dad4c93a62382583a96187f795aaeb6954700647c984ad618d3d1bede50d6859e75f676c557fa875db37c798c0347131f6b136148f71b8208783c7f8f717e
diff --git a/dev-python/threadpoolctl/threadpoolctl-3.1.0.ebuild b/dev-python/threadpoolctl/threadpoolctl-3.1.0.ebuild
new file mode 100644
index 000000000000..962fc1c25472
--- /dev/null
+++ b/dev-python/threadpoolctl/threadpoolctl-3.1.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 2020-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="Limit the number of threads used in native libs that have their own threadpool"
+HOMEPAGE="https://github.com/joblib/threadpoolctl"
+SRC_URI="https://github.com/joblib/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+BDEPEND="dev-python/cython[${PYTHON_USEDEP}]"
+
+distutils_enable_tests pytest
diff --git a/dev-python/tikzplotlib/Manifest b/dev-python/tikzplotlib/Manifest
index ed97defb17f0..9cff890ae0f1 100644
--- a/dev-python/tikzplotlib/Manifest
+++ b/dev-python/tikzplotlib/Manifest
@@ -1,2 +1,4 @@
+DIST tikzplotlib-0.10.0.tar.gz 98266 BLAKE2B 28c49f937af5f70830218dcd3215ab5b7e56077cdd87e0e3887b48a63903314765adc872dc5c7f55e1bd5770541c8f1f3950033cf54acdf8a38be3b14bb6ac4b SHA512 661291a975132ac18066dc8af310da91847f0fed289256944bba1f374c61cdb95c72a942527a92906c935b5af1131069212109eb25f531bac7ac72f6a1d9d773
+DIST tikzplotlib-0.10.1.tar.gz 98265 BLAKE2B 7664e702afb38580af78f2b0887000215a5a0c2ef57e4f9ca5d1100bcba257365b89aee805e800e3a9b5a992487c1ee9733088dadc53941405c0055336478130 SHA512 13a750d9929db1d4ce4608a296523be55878c702846b0b339c6c002cbdf4e8f7b1ffea84db612d8932a379fafce9b4fe6ab6ce4325bf780f211cc0b885a15818
DIST tikzplotlib-0.9.16.tar.gz 98162 BLAKE2B de32064cd8cb6f3fbd8e067c8126a86da6d9836dc42d91d42fd8ad6ba9f8fc2a1001904d370cb756e76112a0d746247f6235fe40af277a7142bdc6264b1ee531 SHA512 7633b7e8ee23aed8da3df249a7dbc4e36667950d2c5caef5845b5468a61f5cb0191cad3253cc7940d19be56a7981d33c70c9d45ce0d9329286266af6f36c2d94
DIST tikzplotlib-0.9.17.tar.gz 98194 BLAKE2B 746bd940805fa7bcef56398f974ad13c54814c7192ed8c85bdcfdf2fbeb93a0016d810a0b532120a404053e0666352c07f5f0db97b3241574fbcda3ad464664f SHA512 3708eba0d77890a919c7e974569fcf4cf1c798199927bd2771e8952f6ea49a10a6b85d605c3d6c4969e16bf47eb1683557f8bbefdf986f043049aa6b0c37a8ff
diff --git a/dev-python/tikzplotlib/metadata.xml b/dev-python/tikzplotlib/metadata.xml
index b0a1543a7717..d92fcb12c3ae 100644
--- a/dev-python/tikzplotlib/metadata.xml
+++ b/dev-python/tikzplotlib/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>andrewammerlaan@gentoo.org</email>
- <name>Andrew Ammerlaan</name>
- </maintainer>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
diff --git a/dev-python/tikzplotlib/tikzplotlib-0.10.0.ebuild b/dev-python/tikzplotlib/tikzplotlib-0.10.0.ebuild
new file mode 100644
index 000000000000..e0ea48473ddf
--- /dev/null
+++ b/dev-python/tikzplotlib/tikzplotlib-0.10.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Convert matplotlib figures into TikZ/PGFPlots"
+HOMEPAGE="https://github.com/nschloe/tikzplotlib"
+SRC_URI="https://github.com/nschloe/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ app-text/texlive[extra]
+ >=dev-python/matplotlib-3.5[latex,${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/webcolors[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pytest-codeblocks[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx doc dev-python/mock dev-python/alabaster
+
+src_test() {
+ local -x MPLBACKEND=Agg
+ virtx distutils-r1_src_test
+}
diff --git a/dev-python/tikzplotlib/tikzplotlib-0.10.1.ebuild b/dev-python/tikzplotlib/tikzplotlib-0.10.1.ebuild
new file mode 100644
index 000000000000..8badae919d09
--- /dev/null
+++ b/dev-python/tikzplotlib/tikzplotlib-0.10.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Convert matplotlib figures into TikZ/PGFPlots"
+HOMEPAGE="https://github.com/nschloe/tikzplotlib"
+SRC_URI="https://github.com/nschloe/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ app-text/texlive[extra]
+ dev-python/matplotlib[latex,${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/webcolors[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pytest-codeblocks[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx doc dev-python/mock
+
+src_test() {
+ local -x MPLBACKEND=Agg
+ virtx distutils-r1_src_test
+}