summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-05-23 12:44:44 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-05-23 12:44:44 +0000
commit844aa75a95286749e4b5e87ff4145c71bbc91b70 (patch)
treed8a2630001156e417c085128c4d19d47315bc3e2 /dev-python
parent7dca8a2be3fbfd4dc89ba51566ff47e4e73de078 (diff)
downloadbaldeagleos-repo-844aa75a95286749e4b5e87ff4145c71bbc91b70.tar.gz
baldeagleos-repo-844aa75a95286749e4b5e87ff4145c71bbc91b70.tar.xz
baldeagleos-repo-844aa75a95286749e4b5e87ff4145c71bbc91b70.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/PyPDF2/Manifest1
-rw-r--r--dev-python/PyPDF2/PyPDF2-1.28.1.ebuild51
-rw-r--r--dev-python/build/Manifest1
-rw-r--r--dev-python/build/build-0.8.0.ebuild65
-rw-r--r--dev-python/cherrypy/cherrypy-18.6.1-r1.ebuild12
-rw-r--r--dev-python/cherrypy/files/cherrypy-18.6.1-py311.patch32
-rw-r--r--dev-python/click-log/click-log-0.4.0.ebuild5
-rw-r--r--dev-python/click-threading/click-threading-0.5.0-r1.ebuild31
-rw-r--r--dev-python/colorclass/colorclass-2.2.2-r1.ebuild9
-rw-r--r--dev-python/coverage/Manifest1
-rw-r--r--dev-python/coverage/coverage-6.4.ebuild68
-rw-r--r--dev-python/docopt/docopt-0.6.2-r5.ebuild29
-rw-r--r--dev-python/flake8/Manifest1
-rw-r--r--dev-python/flake8/flake8-3.9.2-r1.ebuild36
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.3.0.ebuild74
-rw-r--r--dev-python/immutables/Manifest1
-rw-r--r--dev-python/immutables/immutables-0.18.ebuild39
-rw-r--r--dev-python/keyring/Manifest1
-rw-r--r--dev-python/keyring/keyring-23.5.1.ebuild59
-rw-r--r--dev-python/lz4/Manifest1
-rw-r--r--dev-python/lz4/lz4-4.0.1.ebuild39
-rw-r--r--dev-python/numpy/files/numpy-1.22.4-py311.patch31
-rw-r--r--dev-python/numpy/numpy-1.22.4.ebuild8
-rw-r--r--dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild15
-rw-r--r--dev-python/pydocstyle/pydocstyle-6.1.1-r1.ebuild40
-rw-r--r--dev-python/pyflakes/Manifest2
-rw-r--r--dev-python/pyflakes/files/pyflakes-2.2.0-fix-tests.patch97
-rw-r--r--dev-python/pyflakes/files/pyflakes-2.3.1-fix-py3.10-tests.patch91
-rw-r--r--dev-python/pyflakes/pyflakes-2.2.0.ebuild23
-rw-r--r--dev-python/pyflakes/pyflakes-2.3.1.ebuild21
-rw-r--r--dev-python/pyflakes/pyflakes-2.4.0-r1.ebuild22
-rw-r--r--dev-python/pypy/Manifest4
-rw-r--r--dev-python/pypy/files/cryptography.patch17
-rw-r--r--dev-python/pypy/files/openssl_ct.patch23
-rw-r--r--dev-python/pypy/files/openssl_dh.patch14
-rw-r--r--dev-python/pypy/files/openssl_evp.patch19
-rw-r--r--dev-python/pypy/files/openssl_hmac.patch23
-rw-r--r--dev-python/pypy/files/openssl_ocsp.patch23
-rw-r--r--dev-python/pypy/files/openssl_proto.patch12
-rw-r--r--dev-python/pypy/files/openssl_ssl.patch44
-rw-r--r--dev-python/pypy/files/openssl_x509.patch21
-rw-r--r--dev-python/pypy/files/openssl_x509name.patch12
-rw-r--r--dev-python/pypy/files/ssl_python.patch12
-rw-r--r--dev-python/pypy/pypy-7.3.9.ebuild (renamed from dev-python/pypy/pypy-7.3.5-r2.ebuild)44
-rw-r--r--dev-python/pytest-subtesthack/pytest-subtesthack-0.1.2-r2.ebuild34
-rw-r--r--dev-python/python-magic/Manifest1
-rw-r--r--dev-python/python-magic/python-magic-0.4.26.ebuild39
-rw-r--r--dev-python/tabulate/Manifest1
-rw-r--r--dev-python/tabulate/tabulate-0.8.9-r1.ebuild56
-rw-r--r--dev-python/tenacity/tenacity-8.0.1-r1.ebuild41
-rw-r--r--dev-python/typeguard/Manifest2
-rw-r--r--dev-python/typeguard/typeguard-2.13.0.ebuild39
-rw-r--r--dev-python/typeguard/typeguard-2.13.3-r1.ebuild (renamed from dev-python/typeguard/typeguard-2.13.2.ebuild)15
-rw-r--r--dev-python/vdirsyncer/vdirsyncer-0.18.0-r3.ebuild (renamed from dev-python/vdirsyncer/vdirsyncer-0.18.0-r2.ebuild)10
-rw-r--r--dev-python/vdirsyncer/vdirsyncer-0.18.0-r4.ebuild76
-rw-r--r--dev-python/whisper/Manifest1
-rw-r--r--dev-python/whisper/whisper-1.1.10.ebuild35
-rw-r--r--dev-python/xmlschema/Manifest1
-rw-r--r--dev-python/xmlschema/xmlschema-1.11.1.ebuild38
60 files changed, 1220 insertions, 344 deletions
diff --git a/dev-python/PyPDF2/Manifest b/dev-python/PyPDF2/Manifest
index 3b94bc368208..b0dce1533d24 100644
--- a/dev-python/PyPDF2/Manifest
+++ b/dev-python/PyPDF2/Manifest
@@ -1,2 +1,3 @@
DIST PyPDF2-1.27.12.gh.tar.gz 3430850 BLAKE2B a0cb344f616d628b7c39dc360234057ce68595ffa554a8588990ef0a1239ade2db6415caefb84bc058d89067ed04ba66ba149f6f106bbf9a55a13f523dd826fc SHA512 ee00c975881b7e6716656b1cecb83c3e1f7bffa4ed9fb0d8c8be45c7d951b2b79f0be4f9098569bad783703fbc00f0797e73b970b02adad1ed3a4cf3b6ab7b73
+DIST PyPDF2-1.28.1.gh.tar.gz 4260569 BLAKE2B 69b925a463c262ab207dd768160ea9083b14eed6a25a234d09e472ce812039aeb899674a0216b20ead3a4814cc3ec83ee320c99b84d109d8a320b925b7654ffa SHA512 22dec520e256420b618d5611f44f52752ad3c7ccee325991f4817e88ba69d01bf705708877a0df450297c3231725f72e03c4d8b33ced29fd7445c0ac2701dc2b
DIST PyPDF2-sample-files-41b5cd4f774f8fbd8ac42d93b9962f0376352a15.tar.gz 5406287 BLAKE2B 8ddad01235bdb55cee596d9114e5b6c3b153919bcff5203d229311243516f3595cb36dcca87cae27514a8231d72daa94782115795bff8c1c3d046236811c21e0 SHA512 6c38d5ee0e1c5c0ffdd78f7c2fe56dbf357a1e82d2af642a10264a6102ae8fb95cba6d2f76b26df6a33a5d84cfd5111885d39c1747cf95a5ce545f26bdb37263
diff --git a/dev-python/PyPDF2/PyPDF2-1.28.1.ebuild b/dev-python/PyPDF2/PyPDF2-1.28.1.ebuild
new file mode 100644
index 000000000000..1a552c572ff0
--- /dev/null
+++ b/dev-python/PyPDF2/PyPDF2-1.28.1.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_{7,8,9,10} )
+
+inherit distutils-r1
+
+SAMPLE_COMMIT=41b5cd4f774f8fbd8ac42d93b9962f0376352a15
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/PyPDF2/
+ https://github.com/py-pdf/PyPDF2/
+"
+SRC_URI="
+ https://github.com/py-pdf/PyPDF2/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.tar.gz
+ )
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="examples"
+
+BDEPEND="
+ dev-python/pillow[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}"/* "${P}"/sample-files/ || die
+ fi
+}
+
+src_install() {
+ if use examples; then
+ docinto examples
+ dodoc -r Sample_Code/.
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+ distutils-r1_src_install
+}
diff --git a/dev-python/build/Manifest b/dev-python/build/Manifest
index d31757b11156..4c7f19a605b3 100644
--- a/dev-python/build/Manifest
+++ b/dev-python/build/Manifest
@@ -1 +1,2 @@
DIST build-0.7.0.gh.tar.gz 37127 BLAKE2B b06ba16c154087046bd5efddb5fd6f60dad9ee79a204a0c1124fb4885d3692bcf4bd88b75c9665ade3f8457e12742d32e3cef40a0ffb5a894b049a6e942c09e3 SHA512 fd8410dc91333ba94c5141dd78f8052b66f947839752a5d0f401630f6bceed5be2e1f45eceaa2a98908c0e3ddb88a00e3ccca341a3890fa99202bc560ab6ff42
+DIST build-0.8.0.gh.tar.gz 40020 BLAKE2B 17422c8fe23d4103c78bd9d98702646f0863abfea4ff5df425942eb71aa905d8171567976228681afa90f453131ccce4701128b4f73b61acf4158ea2758c5c9e SHA512 62eaabef36fae592b06c41623f8f36750a029263a65c8fa21ad58b24ef30d4fa8eef7588237a68efb9a9784676f35605a8c9a6b2ed1bc6844c32924f9b5ec377
diff --git a/dev-python/build/build-0.8.0.ebuild b/dev-python/build/build-0.8.0.ebuild
new file mode 100644
index 000000000000..a4d5552f8912
--- /dev/null
+++ b/dev-python/build/build-0.8.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="A simple, correct PEP517 package builder"
+HOMEPAGE="
+ https://pypi.org/project/build/
+ https://github.com/pypa/build/
+"
+SRC_URI="
+ https://github.com/pypa/build/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-19.0[${PYTHON_USEDEP}]
+ >=dev-python/pep517-0.9.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.0.0[${PYTHON_USEDEP}]
+ ' 3.8 3.9 3.10)
+"
+BDEPEND="
+ test? (
+ >=dev-python/filelock-3[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-rerunfailures-9.1[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-56.0.0[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.36.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by the presence of flit_core
+ tests/test_util.py::test_wheel_metadata_isolation
+ # broken by the presence of virtualenv (it changes the error
+ # messages, sic!)
+ tests/test_env.py::test_isolated_env_log
+ tests/test_main.py::test_output_env_subprocess_error
+ 'tests/test_main.py::test_output[via-sdist-isolation]'
+ 'tests/test_main.py::test_output[wheel-direct-isolation]'
+ # Internet
+ tests/test_main.py::test_build_package
+ tests/test_main.py::test_build_package_via_sdist
+ tests/test_self_packaging.py::test_build_sdist
+ tests/test_self_packaging.py::test_build_wheel
+ 'tests/test_util.py::test_wheel_metadata[True]'
+ tests/test_util.py::test_with_get_requires
+ )
+
+ epytest -p no:flaky -n "$(makeopts_jobs)" \
+ -W"ignore:path is deprecated.:DeprecationWarning"
+}
diff --git a/dev-python/cherrypy/cherrypy-18.6.1-r1.ebuild b/dev-python/cherrypy/cherrypy-18.6.1-r1.ebuild
index 8269b7ee1079..69eff59266d1 100644
--- a/dev-python/cherrypy/cherrypy-18.6.1-r1.ebuild
+++ b/dev-python/cherrypy/cherrypy-18.6.1-r1.ebuild
@@ -52,6 +52,7 @@ python_prepare_all() {
local PATCHES=(
# https://github.com/cherrypy/cherrypy/pull/1946
"${FILESDIR}"/${P}-close-files.patch
+ "${FILESDIR}"/${P}-py311.patch
)
sed -r -e '/(pytest-sugar|pytest-cov)/ d' \
@@ -64,3 +65,14 @@ python_prepare_all() {
distutils-r1_python_prepare_all
}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ [[ ${EPYTHON} == python3.11 ]] && EPYTEST_DESELECT+=(
+ # broken by changes in traceback output
+ cherrypy/test/test_request_obj.py::RequestObjectTests::testErrorHandling
+ cherrypy/test/test_tools.py::ToolTests::testHookErrors
+ )
+
+ epytest
+}
diff --git a/dev-python/cherrypy/files/cherrypy-18.6.1-py311.patch b/dev-python/cherrypy/files/cherrypy-18.6.1-py311.patch
new file mode 100644
index 000000000000..5d629dd8c333
--- /dev/null
+++ b/dev-python/cherrypy/files/cherrypy-18.6.1-py311.patch
@@ -0,0 +1,32 @@
+From 8245a74aa4e090c40445535a9ce3997ed9904798 Mon Sep 17 00:00:00 2001
+From: Dominic Davis-Foster <dominic@davis-foster.co.uk>
+Date: Fri, 28 Jan 2022 23:11:52 +0000
+Subject: [PATCH] Switch from inspect.getargspec to inspect.getfullargspec
+
+inspect.getargspec has been deprecated since 3.0
+---
+ cherrypy/_cpdispatch.py | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/cherrypy/_cpdispatch.py b/cherrypy/_cpdispatch.py
+index 83eb79cb..5c506e99 100644
+--- a/cherrypy/_cpdispatch.py
++++ b/cherrypy/_cpdispatch.py
+@@ -206,12 +206,8 @@ except ImportError:
+ def test_callable_spec(callable, args, kwargs): # noqa: F811
+ return None
+ else:
+- getargspec = inspect.getargspec
+- # Python 3 requires using getfullargspec if
+- # keyword-only arguments are present
+- if hasattr(inspect, 'getfullargspec'):
+- def getargspec(callable):
+- return inspect.getfullargspec(callable)[:4]
++ def getargspec(callable):
++ return inspect.getfullargspec(callable)[:4]
+
+
+ class LateParamPageHandler(PageHandler):
+--
+2.35.1
+
diff --git a/dev-python/click-log/click-log-0.4.0.ebuild b/dev-python/click-log/click-log-0.4.0.ebuild
index 7e547bed6f5d..db0125ae41bc 100644
--- a/dev-python/click-log/click-log-0.4.0.ebuild
+++ b/dev-python/click-log/click-log-0.4.0.ebuild
@@ -19,8 +19,9 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
-RDEPEND="dev-python/click[${PYTHON_USEDEP}]"
-BDEPEND="${RDEPEND}"
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+"
DOCS=( README.rst )
diff --git a/dev-python/click-threading/click-threading-0.5.0-r1.ebuild b/dev-python/click-threading/click-threading-0.5.0-r1.ebuild
new file mode 100644
index 000000000000..a06d2b8eab57
--- /dev/null
+++ b/dev-python/click-threading/click-threading-0.5.0-r1.ebuild
@@ -0,0 +1,31 @@
+# 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_{7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="Multithreaded Click apps made easy"
+HOMEPAGE="
+ https://github.com/click-contrib/click-threading/
+ https://pypi.org/project/click-threading/
+"
+SRC_URI="
+ https://github.com/click-contrib/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/click-5.0[${PYTHON_USEDEP}]
+"
+
+DOCS=( README.rst )
+
+distutils_enable_tests pytest
diff --git a/dev-python/colorclass/colorclass-2.2.2-r1.ebuild b/dev-python/colorclass/colorclass-2.2.2-r1.ebuild
index a3b3c16d51e0..c5cee049b35e 100644
--- a/dev-python/colorclass/colorclass-2.2.2-r1.ebuild
+++ b/dev-python/colorclass/colorclass-2.2.2-r1.ebuild
@@ -11,10 +11,12 @@ inherit distutils-r1
DESCRIPTION="Colorful worry-free console applications for multiple platforms"
HOMEPAGE="
https://pypi.org/project/colorclass/
- https://github.com/matthewdeanmartin/colorclass"
+ https://github.com/matthewdeanmartin/colorclass/
+"
SRC_URI="
https://github.com/matthewdeanmartin/colorclass/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz"
+ -> ${P}.gh.tar.gz
+"
LICENSE="MIT"
SLOT="0"
@@ -23,7 +25,8 @@ KEYWORDS="amd64 ~arm64 x86"
BDEPEND="
test? (
dev-python/docopt[${PYTHON_USEDEP}]
- )"
+ )
+"
distutils_enable_tests pytest
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index f7989c8cd0a4..9c9afc730d18 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1,2 +1,3 @@
DIST coverage-6.3.2.tar.gz 709294 BLAKE2B 2da96731ee0065fb6139af7db073284a83efa135e7379d2a6d6e571cdf58c888cf72719fbddadb1bd8f62b0b155b8420a84377068c40e4c813533b3ad6b190a8 SHA512 d9ea3a93eefe2dbb723ed1eadb09dc1165c4f46e7186889ce3615411283baac1d80f04a3831208a164f99accea5d246d4613a7c2e909d2e63d3c714620432a16
DIST coverage-6.3.3.tar.gz 710958 BLAKE2B 8bc1e9504e8f59bc2afea40c63958e463d2f6bfc5fa09c890c1c1f8e2ab502e6ad657edda5616f6a866f460b9f73cdda5ab081f8de281d23314f205d61c7621b SHA512 4b3f42602c50bf00a627ff40f3a04b1e8e457ad57759fb93dddb55eedd5ffe775fa81983f5f53502576b89c793c69a52a269148e7b028d5c87f0d4bf3a4d11b1
+DIST coverage-6.4.tar.gz 715897 BLAKE2B 69fd1979da2c652d5cf8b83adcde4755824faf832867c0181e610ef1369bae217c487b230aa649f03692440efc78628474d72303635568f8e7e5b41f83afc1ed SHA512 e834ff2329eb930ea40a28e8be7f665322558a1f00b5297a2daaaefc986ae451f333ea76bf6e345cad1560d721ebd990cdd5b79b30bddd9e17223acc85508089
diff --git a/dev-python/coverage/coverage-6.4.ebuild b/dev-python/coverage/coverage-6.4.ebuild
new file mode 100644
index 000000000000..ea3f387d318b
--- /dev/null
+++ b/dev-python/coverage/coverage-6.4.ebuild
@@ -0,0 +1,68 @@
+# 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_{7,8,9,10} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="
+ https://coverage.readthedocs.io/en/latest/
+ https://github.com/nedbat/coveragepy/
+ https://pypi.org/project/coverage/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+BDEPEND="
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/^addopts/s:-q -n auto::' setup.cfg || die
+ distutils-r1_src_prepare
+}
+
+test_tracer() {
+ local -x COVERAGE_TEST_TRACER=${1}
+ einfo " Testing with the ${COVERAGE_TEST_TRACER} tracer ..."
+ epytest tests
+}
+
+python_test() {
+ "${EPYTHON}" igor.py zip_mods || die
+
+ local -x COVERAGE_TESTING=True
+ # TODO: figure out why they can't be imported inside test env
+ local -x COVERAGE_NO_CONTRACTS=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=_hypothesis_pytestplugin,flaky.flaky_pytest_plugin,xdist.plugin
+
+ local prev_opt=$(shopt -p nullglob)
+ shopt -s nullglob
+ local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
+ ${prev_opt}
+
+ if [[ -n ${c_ext} ]]; then
+ cp "${c_ext}" \
+ coverage/ || die
+ test_tracer c
+ rm coverage/*.so || die
+ else
+ test_tracer py
+ fi
+}
diff --git a/dev-python/docopt/docopt-0.6.2-r5.ebuild b/dev-python/docopt/docopt-0.6.2-r5.ebuild
new file mode 100644
index 000000000000..a2a6f4116780
--- /dev/null
+++ b/dev-python/docopt/docopt-0.6.2-r5.ebuild
@@ -0,0 +1,29 @@
+# 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_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Pythonic argument parser, that will make you smile"
+HOMEPAGE="
+ https://github.com/docopt/docopt/
+ https://pypi.org/project/docopt/
+"
+SRC_URI="
+ https://github.com/docopt/docopt/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.6.2-pytest_node_from_parent.patch
+)
+
+distutils_enable_tests pytest
diff --git a/dev-python/flake8/Manifest b/dev-python/flake8/Manifest
index 5b453f7bdf33..084843824ab3 100644
--- a/dev-python/flake8/Manifest
+++ b/dev-python/flake8/Manifest
@@ -1,2 +1 @@
-DIST flake8-3.9.2.tar.gz 164777 BLAKE2B 1c991296a3e47e4c41f1196fcaf1e7ea059226dfb41657a52fc4f5a9023b54dba21dd99635398e12f37f52f6e498a0a1fb7d87aba0fe7098ebbdfb54dc5598b0 SHA512 618fe1b35070b24395e5d4da9fa1b1f6308abf6f85d8de71b8b553f84d70d9cd7d2a6f616fa1418db9a8b5ad3efab038f4e2d7c6020c0c1bdeb8157e666911fd
DIST flake8-4.0.1.tar.gz 154905 BLAKE2B b93fea36236881da595ae924b056686e0cd35d2466c1858e3ee83262922df8bc38cf5cd40a910980d287d048572dc94eb8d7c8ee4b11ebd1b4a474dfca02490c SHA512 0bdbf0218ce893df1c3e61f51cd3f371a5c72bb49ef78fec39548b1684e49b024e91cf4e3dcea60ba1efc08727985ef485814c372461e062ff4f810da99a1796
diff --git a/dev-python/flake8/flake8-3.9.2-r1.ebuild b/dev-python/flake8/flake8-3.9.2-r1.ebuild
deleted file mode 100644
index 343ed468e9a8..000000000000
--- a/dev-python/flake8/flake8-3.9.2-r1.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
-inherit distutils-r1
-
-DESCRIPTION="A wrapper around PyFlakes, pep8 & mccabe"
-HOMEPAGE="https://gitlab.com/pycqa/flake8 https://pypi.org/project/flake8/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
-
-# requires.txt inc. mccabe however that creates a circular dep
-RDEPEND="
- >=dev-python/pyflakes-2.3.0[${PYTHON_USEDEP}]
- <dev-python/pyflakes-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/pycodestyle-2.7.0[${PYTHON_USEDEP}]
- <dev-python/pycodestyle-2.8.0[${PYTHON_USEDEP}]
-"
-PDEPEND="
- >=dev-python/mccabe-0.6.0[${PYTHON_USEDEP}]
- <dev-python/mccabe-0.7.0[${PYTHON_USEDEP}]
-"
-BDEPEND="${RDEPEND}
- test? (
- ${PDEPEND}
- >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_sphinx docs/source dev-python/sphinx-prompt dev-python/sphinx_rtd_theme
-distutils_enable_tests --install pytest
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index 0e99c9cad0f1..657c2ff33ef5 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -3,3 +3,4 @@ DIST hatch-hatchling-v0.25.0.tar.gz 216944 BLAKE2B 298f284bc05bbba6c463d4c22ddbb
DIST hatch-hatchling-v1.0.0.tar.gz 216365 BLAKE2B cb6b648d103c7e9848b1a15cd62aaf3ab39c458f83f6c56cf039a136b39ae6c59ba487c36860582f98fb1ede6b3c2dab148b023499b5e4a30de9d063379118c3 SHA512 e16b0c53705fe090713f40d661e4ac9a4d0c2ae22f9193fcbaa1eb4ba146a36642b5e188574ad00b6ddd06c60537db0eba18fe9f2676cc988effc9d74e0dffc4
DIST hatch-hatchling-v1.1.0.tar.gz 216865 BLAKE2B 82d168d518b84c26033d81002b22eb347a2b0c2abb26b79ef4aacaa3804924348e090c4d87b728e80a30bfacf7d8634be6c6f35d3cfcb95fd9e1ff50d35d4595 SHA512 062773f8f1d472602ba589022ec56a7d3dc4068ae66ec5e773912a793524649f73effe7b61c76f5a1cf6b264d2499d8d8660efcc0189f9bbbf60b4b948740dc5
DIST hatch-hatchling-v1.2.0.tar.gz 216988 BLAKE2B b8f0fd0286075bb58e3ae875232c35cc5307582930ce03e8564c818d95f96be13f8bfbda950fe14257ab639b87a58fdd9f13fd5f024b70b5d16d12242a7ddeb4 SHA512 08bbaf8a9315d8e5a69ff09bf3121d9fdc7559e214c25203b61248e8c09b283076e3235261194cabc135f1eb0d6fa3ad1a9c1c9e02de45bcb7d9f3515b4246f6
+DIST hatch-hatchling-v1.3.0.tar.gz 219864 BLAKE2B 146c839cb41f32f2afadbb17816ec9171755b62bacaf59dd96e33d1105d8fe104a98baf7ff54f3bd296e4c0dcceb72dd42d54c7676946f41fd49bbfa6ba505de SHA512 03caa35a05332f55ac235a87d9549c201a564896cb409625efdfd25fee8a0c110a753bafcc93da1c602752bb965b599e81e8106d24a26503abb01a8f90457aed
diff --git a/dev-python/hatchling/hatchling-1.3.0.ebuild b/dev-python/hatchling/hatchling-1.3.0.ebuild
new file mode 100644
index 000000000000..e17f56cfc860
--- /dev/null
+++ b/dev-python/hatchling/hatchling-1.3.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{7,8,9,10} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1
+
+TAG=${P/-/-v}
+MY_P=hatch-${TAG}
+DESCRIPTION="Modern, extensible Python build backend"
+HOMEPAGE="
+ https://pypi.org/project/hatchling/
+ https://github.com/pypa/hatch/
+"
+SRC_URI="
+ https://github.com/pypa/hatch/archive/${TAG}.tar.gz
+ -> ${MY_P}.tar.gz
+"
+S=${WORKDIR}/${MY_P}/backend
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/editables-0.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21.3[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.9[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/tomli-1.2.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/atomicwrites[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x EPYTEST_DESELECT=(
+ # these run pip to install stuff
+ tests/backend/dep/test_core.py::test_dependency_found
+ tests/backend/dep/test_core.py::test_extra_met
+ tests/backend/dep/test_core.py::test_extra_no_dependencies
+ tests/backend/dep/test_core.py::test_extra_unmet
+ tests/backend/dep/test_core.py::test_unknown_extra
+ tests/backend/dep/test_core.py::test_version_unmet
+ )
+
+ # top-level "tests" directory contains tests both for hatch
+ # and hatchling
+ cd "${WORKDIR}/${MY_P}" || die
+ local -x PYTHONPATH="src:${PYTHONPATH}"
+ epytest tests/backend
+}
diff --git a/dev-python/immutables/Manifest b/dev-python/immutables/Manifest
index 5939dda7cf71..7c9999e5a0ec 100644
--- a/dev-python/immutables/Manifest
+++ b/dev-python/immutables/Manifest
@@ -1 +1,2 @@
DIST immutables-0.17.gh.tar.gz 84660 BLAKE2B 475042d6342e3ffe5b4aa68e2e8c27a438658214ec2aa6439e077d59d2e2257313f644f535ebfbdb171b0e7dac33cde590f8a84a8da9da717b249e5b2e11ca92 SHA512 d5853de6b7c6064c93b6dbf66819873c982dd2e155ddcbf6b5dd321475374e9f52eb683c853a6944c71ca15fb194ac9480ad2d444407c885ee574c244c4f081a
+DIST immutables-0.18.gh.tar.gz 84891 BLAKE2B 2e800e1b7b354781ef221315b80877e57ef446753c4a42e411196379e2bc921f71918c5ecd5cc693ca54cb7c401bef31161e9d249407b705626fe95d0e4e9fcc SHA512 1477ff6d9a6c02c3619b209352096abefb913cf53d392748e0940160067ecdcf2b89ad9ce807161ededaa5062105a2e5c5a3303bd02752a5f07b5f68f1c1044c
diff --git a/dev-python/immutables/immutables-0.18.ebuild b/dev-python/immutables/immutables-0.18.ebuild
new file mode 100644
index 000000000000..3078f975be14
--- /dev/null
+++ b/dev-python/immutables/immutables-0.18.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A high-performance immutable mapping type for Python"
+HOMEPAGE="
+ https://github.com/MagicStack/immutables/
+ https://pypi.org/project/immutables/
+"
+SRC_URI="
+ https://github.com/MagicStack/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/mypy/d' tests/conftest.py || die
+ distutils-r1_src_prepare
+}
+
+src_test() {
+ local EPYTEST_IGNORE=(
+ tests/test_mypy.py
+ )
+
+ rm -r immutables || die
+ distutils-r1_src_test
+}
diff --git a/dev-python/keyring/Manifest b/dev-python/keyring/Manifest
index 0f4c66af10c2..b53e88d0a9f1 100644
--- a/dev-python/keyring/Manifest
+++ b/dev-python/keyring/Manifest
@@ -1 +1,2 @@
DIST keyring-23.5.0.tar.gz 44586 BLAKE2B 70179f8353147679f03c888b1af00d2461264e7a7062eb7b1372615ae883f43352999ce57e24f3378ac66d5e74a81df66702bf380eb32d6d3554777e9ca63dfe SHA512 639d1cdece5dac854053818f3a4751b30fb9f13a2b3abb0090ba0cb519b50604858673678fe6205c2ec10be863e5f3d63cc7891424beabe2482d35b820a60da1
+DIST keyring-23.5.1.gh.tar.gz 44938 BLAKE2B 65c03e58ae8de844c1ed58486fd6348a1c7063025d92f9857c972cb3b2f29f4726dd03d25ff04329170719478ec5334f922556ef8598416d0ee07af6fb23c167 SHA512 521dd393221287840a5e9d22e94714d88ebb3ac26e87a72dae4958b7d63900cc445bdd087c2192353cdcd72b380d17838e93c4d9e1012f13e026ea27def11f38
diff --git a/dev-python/keyring/keyring-23.5.1.ebuild b/dev-python/keyring/keyring-23.5.1.ebuild
new file mode 100644
index 000000000000..089321da0f4c
--- /dev/null
+++ b/dev-python/keyring/keyring-23.5.1.ebuild
@@ -0,0 +1,59 @@
+# 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_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides access to the system keyring service"
+HOMEPAGE="
+ https://github.com/jaraco/keyring/
+ https://pypi.org/project/keyring/
+"
+SRC_URI="
+ https://github.com/jaraco/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+SLOT="0"
+LICENSE="PSF-2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/secretstorage-3.2[${PYTHON_USEDEP}]
+ >=dev-python/jeepney-0.4.2[${PYTHON_USEDEP}]
+ >=dev-python/importlib_metadata-3.6[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/jaraco-packaging \
+ dev-python/rst-linker
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+EPYTEST_DESELECT=(
+ # this test fails if importlib-metadata returns more than one
+ # entry, i.e. when keyring is installed already
+ tests/test_packaging.py::test_entry_point
+)
+
+EPYTEST_IGNORE=(
+ # apparently does not unlock the keyring properly
+ tests/backends/test_libsecret.py
+ # hangs
+ tests/backends/test_kwallet.py
+)
+
+src_prepare() {
+ # remove jaraco.tidelift dependency from docs, quite useless
+ sed -e '/tidelift/d' -i docs/conf.py docs/index.rst || die
+
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/lz4/Manifest b/dev-python/lz4/Manifest
index 43834ab0a337..f2cbe6f71ed6 100644
--- a/dev-python/lz4/Manifest
+++ b/dev-python/lz4/Manifest
@@ -1 +1,2 @@
DIST lz4-4.0.0.tar.gz 163729 BLAKE2B ce617f2aea3f45cf9fb0bf642599a1d872d9532ab465d32602b63987081a7e78ab4ac4373a41c6a97ec50eb6f2debc078288554966390651325ba166faa79c0d SHA512 885d215dd4caadc84d1e2a9575be9972a33a43af089f0788192c9f4f53382c0937f9d67aac412e2860c9ba393ee3bb15dfe273865acb6a3cf8aecdce8292ecc9
+DIST lz4-4.0.1.tar.gz 164309 BLAKE2B 6338c2d74dedf1dc92f455378ef87c691291fdd16faebff8992aa927bf95c707b346af6bb35c512d8095b60a1878615d1081ba64f99c083e580eeacfb5cf11a5 SHA512 caa08a8a531ca2887ce7e596b7a3d9d8f8f2b93c6ea48c3fb0f8bbe6e6f2a18fb6b3c055e57841f8ce74f70367738a28dbb5fb1f07cbf785434642e6034b558e
diff --git a/dev-python/lz4/lz4-4.0.1.ebuild b/dev-python/lz4/lz4-4.0.1.ebuild
new file mode 100644
index 000000000000..cf54eddd0f21
--- /dev/null
+++ b/dev-python/lz4/lz4-4.0.1.ebuild
@@ -0,0 +1,39 @@
+# 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_{7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="LZ4 Bindings for Python"
+HOMEPAGE="https://pypi.org/project/lz4/ https://github.com/python-lz4/python-lz4"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="
+ app-arch/lz4:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # lz4.stream is not officially supported and not installed by default
+ # (we do not support installing it at the moment)
+ tests/stream
+)
diff --git a/dev-python/numpy/files/numpy-1.22.4-py311.patch b/dev-python/numpy/files/numpy-1.22.4-py311.patch
new file mode 100644
index 000000000000..7af6431a5892
--- /dev/null
+++ b/dev-python/numpy/files/numpy-1.22.4-py311.patch
@@ -0,0 +1,31 @@
+From 42f3203a45231b338cf1a4c77fe81ca4b7fef4ef Mon Sep 17 00:00:00 2001
+From: Bas van Beek <43369155+BvB93@users.noreply.github.com>
+Date: Fri, 20 May 2022 02:42:37 +0200
+Subject: [PATCH] TST,TYP: Fix a python 3.11 failure for the `GenericAlias`
+ tests
+
+---
+ numpy/typing/tests/test_generic_alias.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/numpy/typing/tests/test_generic_alias.py b/numpy/typing/tests/test_generic_alias.py
+index 52d3deae4..267230a95 100644
+--- a/numpy/typing/tests/test_generic_alias.py
++++ b/numpy/typing/tests/test_generic_alias.py
+@@ -20,11 +20,11 @@
+ if sys.version_info >= (3, 9):
+ DType_ref = types.GenericAlias(np.dtype, (ScalarType,))
+ NDArray_ref = types.GenericAlias(np.ndarray, (Any, DType_ref))
+- FuncType = Callable[[Union[_GenericAlias, types.GenericAlias]], Any]
++ FuncType = Callable[["_GenericAlias | types.GenericAlias"], Any]
+ else:
+ DType_ref = Any
+ NDArray_ref = Any
+- FuncType = Callable[[_GenericAlias], Any]
++ FuncType = Callable[["_GenericAlias"], Any]
+
+ GETATTR_NAMES = sorted(set(dir(np.ndarray)) - _GenericAlias._ATTR_EXCEPTIONS)
+
+--
+2.35.1
+
diff --git a/dev-python/numpy/numpy-1.22.4.ebuild b/dev-python/numpy/numpy-1.22.4.ebuild
index 838712e1df34..dc3876838f9e 100644
--- a/dev-python/numpy/numpy-1.22.4.ebuild
+++ b/dev-python/numpy/numpy-1.22.4.ebuild
@@ -46,7 +46,8 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}"/${PN}-1.22.0-no-hardcode-blasv2.patch
+ "${FILESDIR}"/numpy-1.22.0-no-hardcode-blasv2.patch
+ "${FILESDIR}"/numpy-1.22.4-py311.patch
)
distutils_enable_tests pytest
@@ -152,6 +153,11 @@ python_test() {
)
fi
+ [[ ${EPYTHON} == python3.11 ]] && EPYTEST_DESELECT+=(
+ # known problem
+ 'numpy/typing/tests/test_generic_alias.py::TestGenericAlias::test_pass[__dir__-<lambda>]'
+ )
+
distutils_install_for_testing --single-version-externally-managed \
--record "${TMPDIR}/record.txt" ${NUMPY_FCONFIG}
diff --git a/dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild b/dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild
index 76a37f6598bd..1a5eb2ee6b22 100644
--- a/dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild
+++ b/dev-python/pkgconfig/pkgconfig-1.5.5-r1.ebuild
@@ -5,16 +5,25 @@ EAPI=8
DISTUTILS_USE_PEP517=poetry
PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
+
inherit distutils-r1
DESCRIPTION="Interface Python with pkg-config"
-HOMEPAGE="https://pypi.org/project/pkgconfig/ https://github.com/matze/pkgconfig"
-SRC_URI="https://github.com/matze/pkgconfig/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+HOMEPAGE="
+ https://github.com/matze/pkgconfig/
+ https://pypi.org/project/pkgconfig/
+"
+SRC_URI="
+ https://github.com/matze/pkgconfig/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz
+"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
-RDEPEND="virtual/pkgconfig"
+RDEPEND="
+ virtual/pkgconfig
+"
distutils_enable_tests pytest
diff --git a/dev-python/pydocstyle/pydocstyle-6.1.1-r1.ebuild b/dev-python/pydocstyle/pydocstyle-6.1.1-r1.ebuild
new file mode 100644
index 000000000000..171c80953515
--- /dev/null
+++ b/dev-python/pydocstyle/pydocstyle-6.1.1-r1.ebuild
@@ -0,0 +1,40 @@
+# 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_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python docstring style checker"
+HOMEPAGE="
+ https://github.com/PyCQA/pydocstyle/
+ https://pypi.org/project/pydocstyle/
+"
+SRC_URI="
+ https://github.com/PyCQA/pydocstyle/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ dev-python/snowballstemmer[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/toml[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+# Requires network to lookup github issues
+#distutils_enable_sphinx docs dev-python/sphinx_rtd_theme dev-python/sphinxcontrib-issuetracker
+
+PATCHES=(
+ "${FILESDIR}"/pydocstyle-6.1.1-disarm-pip-install.patch
+)
diff --git a/dev-python/pyflakes/Manifest b/dev-python/pyflakes/Manifest
index b6111d4ce98b..04c263596156 100644
--- a/dev-python/pyflakes/Manifest
+++ b/dev-python/pyflakes/Manifest
@@ -1,3 +1 @@
-DIST pyflakes-2.2.0.tar.gz 65307 BLAKE2B e48e0cb0497f90b6482c0fd08c182d766ab50755fe348352df510841f4ad43f7c1d6486753ce774603a3624f49c9b0165ad930bb1451ef30cf2e828d732e0652 SHA512 6a411efef261874c216b71bcb095412448a8cbeefdf7fa5577d4f4edd48a4a740a4433665e87e5dda2c08fd9ee3bfb7f134f56c7523e1303243edfa92b0ccb35
-DIST pyflakes-2.3.1.tar.gz 68567 BLAKE2B 0eee1eb87bf1dcae68afcdb250644aa8a1189ca3d8d22608e25727bf01b94465cceb6c65be669b18779434c8879594dd92cfb3a108b7aff584cfda788f6e2f4f SHA512 85d3a2737d31ed4b5f4c2e3621759a5951d1320f95d74313fec09fa551648105b3ab84db94f7bffe5b77623e4adbea1d8ad12b9ce2fee7e81c41581a3ea81cc6
DIST pyflakes-2.4.0.tar.gz 69101 BLAKE2B 852e50f3545138947761f9a8413fd6463bb9a28977c008feb1c3a81afb3854501b8fd3c05840d9d75bc6ebf505b545e62c047b87780b0bc764fd4225ea6a1e21 SHA512 f4c6512eb811511c897623f52c4f88e50275a3292582d7dd34462e90e39fecce939818cb92e750eebdd66eab25b91c23540104fc4530c42621d7cfeb1d33c577
diff --git a/dev-python/pyflakes/files/pyflakes-2.2.0-fix-tests.patch b/dev-python/pyflakes/files/pyflakes-2.2.0-fix-tests.patch
deleted file mode 100644
index 00b1130bf342..000000000000
--- a/dev-python/pyflakes/files/pyflakes-2.2.0-fix-tests.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-diff --git a/pyflakes/test/test_api.py b/pyflakes/test/test_api.py
-index b579ac8..d379b3b 100644
---- a/pyflakes/test/test_api.py
-+++ b/pyflakes/test/test_api.py
-@@ -515,8 +513,10 @@ def foo(bar=baz, bax):
- """
- with self.makeTempFile(source) as sourcePath:
- if ERROR_HAS_LAST_LINE:
-- if PYPY and sys.version_info >= (3,):
-+ if PYPY:
- column = 7
-+ elif sys.version_info >= (3, 9):
-+ column = 21
- elif sys.version_info >= (3, 8):
- column = 9
- else:
-@@ -543,8 +543,10 @@ foo(bar=baz, bax)
- """
- with self.makeTempFile(source) as sourcePath:
- if ERROR_HAS_LAST_LINE:
-- if PYPY and sys.version_info >= (3,):
-+ if PYPY:
- column = 12
-+ elif sys.version_info >= (3, 9):
-+ column = 17
- elif sys.version_info >= (3, 8):
- column = 14
- else:
-@@ -578,7 +580,9 @@ foo(bar=baz, bax)
- else:
- position_end = 1
- if PYPY:
-- column = 6
-+ column = 5
-+ elif ver >= (3, 9):
-+ column = 13
- else:
- column = 7
- # Column has been "fixed" since 3.2.4 and 3.3.1
-@@ -717,13 +721,6 @@ class IntegrationTests(TestCase):
- """
- Tests of the pyflakes script that actually spawn the script.
- """
--
-- # https://bitbucket.org/pypy/pypy/issues/3069/pypy36-on-windows-incorrect-line-separator
-- if PYPY and sys.version_info >= (3,) and WIN:
-- LINESEP = '\n'
-- else:
-- LINESEP = os.linesep
--
- def setUp(self):
- self.tempdir = tempfile.mkdtemp()
- self.tempfilepath = os.path.join(self.tempdir, 'temp')
-@@ -784,7 +781,7 @@ class IntegrationTests(TestCase):
- fd.write("import contraband\n".encode('ascii'))
- d = self.runPyflakes([self.tempfilepath])
- expected = UnusedImport(self.tempfilepath, Node(1), 'contraband')
-- self.assertEqual(d, ("%s%s" % (expected, self.LINESEP), '', 1))
-+ self.assertEqual(d, ("%s%s" % (expected, os.linesep), '', 1))
-
- def test_errors_io(self):
- """
-@@ -794,7 +791,7 @@ class IntegrationTests(TestCase):
- """
- d = self.runPyflakes([self.tempfilepath])
- error_msg = '%s: No such file or directory%s' % (self.tempfilepath,
-- self.LINESEP)
-+ os.linesep)
- self.assertEqual(d, ('', error_msg, 1))
-
- def test_errors_syntax(self):
-@@ -807,7 +804,7 @@ class IntegrationTests(TestCase):
- fd.write("import".encode('ascii'))
- d = self.runPyflakes([self.tempfilepath])
- error_msg = '{0}:1:{2}: invalid syntax{1}import{1} {3}^{1}'.format(
-- self.tempfilepath, self.LINESEP, 6 if PYPY else 7, '' if PYPY else ' ')
-+ self.tempfilepath, os.linesep, 6 if PYPY else 7, '' if PYPY else ' ')
- self.assertEqual(d, ('', error_msg, 1))
-
- def test_readFromStdin(self):
-@@ -816,15 +813,13 @@ class IntegrationTests(TestCase):
- """
- d = self.runPyflakes([], stdin='import contraband')
- expected = UnusedImport('<stdin>', Node(1), 'contraband')
-- self.assertEqual(d, ("%s%s" % (expected, self.LINESEP), '', 1))
-+ self.assertEqual(d, ("%s%s" % (expected, os.linesep), '', 1))
-
-
- class TestMain(IntegrationTests):
- """
- Tests of the pyflakes main function.
- """
-- LINESEP = os.linesep
--
- def runPyflakes(self, paths, stdin=None):
- try:
- with SysStreamCapturing(stdin) as capture:
diff --git a/dev-python/pyflakes/files/pyflakes-2.3.1-fix-py3.10-tests.patch b/dev-python/pyflakes/files/pyflakes-2.3.1-fix-py3.10-tests.patch
deleted file mode 100644
index c96585d20c73..000000000000
--- a/dev-python/pyflakes/files/pyflakes-2.3.1-fix-py3.10-tests.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From f3b1b44bf3d2d5927004fa1c2fcf1ab2def816b9 Mon Sep 17 00:00:00 2001
-From: Anthony Sottile <asottile@umich.edu>
-Date: Thu, 20 May 2021 07:23:19 -0700
-Subject: [PATCH] fix syntax error offsets for python 3.10 (#635)
-
----
- .github/workflows/test.yml | 2 +-
- pyflakes/test/test_api.py | 43 +++++++++++++++++++++++++-------------
- tox.ini | 2 +-
- 3 files changed, 30 insertions(+), 17 deletions(-)
-
-diff --git a/pyflakes/test/test_api.py b/pyflakes/test/test_api.py
-index d379b3b7..2c1cf19d 100644
---- a/pyflakes/test/test_api.py
-+++ b/pyflakes/test/test_api.py
-@@ -441,7 +441,7 @@ def evaluate(source):
- evaluate(source)
- except SyntaxError:
- e = sys.exc_info()[1]
-- if not PYPY:
-+ if not PYPY and sys.version_info < (3, 10):
- self.assertTrue(e.text.count('\n') > 1)
- else:
- self.fail()
-@@ -449,10 +449,17 @@ def evaluate(source):
- with self.makeTempFile(source) as sourcePath:
- if PYPY:
- message = 'end of file (EOF) while scanning triple-quoted string literal'
-+ elif sys.version_info >= (3, 10):
-+ message = 'unterminated triple-quoted string literal (detected at line 8)' # noqa: E501
- else:
- message = 'invalid syntax'
-
-- column = 8 if sys.version_info >= (3, 8) else 11
-+ if sys.version_info >= (3, 10):
-+ column = 12
-+ elif sys.version_info >= (3, 8):
-+ column = 8
-+ else:
-+ column = 11
- self.assertHasErrors(
- sourcePath,
- ["""\
-@@ -468,21 +475,25 @@ def test_eofSyntaxError(self):
- """
- with self.makeTempFile("def foo(") as sourcePath:
- if PYPY:
-- result = """\
--%s:1:7: parenthesis is never closed
--def foo(
-- ^
--""" % (sourcePath,)
-+ msg = 'parenthesis is never closed'
-+ elif sys.version_info >= (3, 10):
-+ msg = "'(' was never closed"
- else:
-- result = """\
--%s:1:9: unexpected EOF while parsing
--def foo(
-- ^
--""" % (sourcePath,)
-+ msg = 'unexpected EOF while parsing'
-
-- self.assertHasErrors(
-- sourcePath,
-- [result])
-+ if PYPY:
-+ column = 7
-+ elif sys.version_info >= (3, 10):
-+ column = 8
-+ else:
-+ column = 9
-+
-+ spaces = ' ' * (column - 1)
-+ expected = '{}:1:{}: {}\ndef foo(\n{}^\n'.format(
-+ sourcePath, column, msg, spaces
-+ )
-+
-+ self.assertHasErrors(sourcePath, [expected])
-
- def test_eofSyntaxErrorWithTab(self):
- """
-@@ -515,6 +526,8 @@ def foo(bar=baz, bax):
- if ERROR_HAS_LAST_LINE:
- if PYPY:
- column = 7
-+ elif sys.version_info >= (3, 10):
-+ column = 18
- elif sys.version_info >= (3, 9):
- column = 21
- elif sys.version_info >= (3, 8):
diff --git a/dev-python/pyflakes/pyflakes-2.2.0.ebuild b/dev-python/pyflakes/pyflakes-2.2.0.ebuild
deleted file mode 100644
index 5ab6efc734fe..000000000000
--- a/dev-python/pyflakes/pyflakes-2.2.0.ebuild
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
-# Uses pkg_resources
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit distutils-r1
-
-DESCRIPTION="Passive checker for Python programs"
-HOMEPAGE="https://github.com/PyCQA/pyflakes https://pypi.org/project/pyflakes/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-
-# Should be included in the next release
-PATCHES=( "${FILESDIR}/${P}-fix-tests.patch" )
-
-distutils_enable_tests unittest
diff --git a/dev-python/pyflakes/pyflakes-2.3.1.ebuild b/dev-python/pyflakes/pyflakes-2.3.1.ebuild
deleted file mode 100644
index 46a935d95f78..000000000000
--- a/dev-python/pyflakes/pyflakes-2.3.1.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
-inherit distutils-r1
-
-DESCRIPTION="Passive checker for Python programs"
-HOMEPAGE="https://github.com/PyCQA/pyflakes https://pypi.org/project/pyflakes/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-
-PATCHES=(
- "${FILESDIR}/${P}-fix-py3.10-tests.patch"
-)
-
-distutils_enable_tests unittest
diff --git a/dev-python/pyflakes/pyflakes-2.4.0-r1.ebuild b/dev-python/pyflakes/pyflakes-2.4.0-r1.ebuild
new file mode 100644
index 000000000000..dd095ee229f2
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-2.4.0-r1.ebuild
@@ -0,0 +1,22 @@
+# 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_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="
+ https://github.com/PyCQA/pyflakes/
+ https://pypi.org/project/pyflakes/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+distutils_enable_tests unittest
diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 15b4c1b49cb4..7383420e70e3 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,4 +1,4 @@
-DIST pypy2.7-gentoo-patches-7.3.5.tar.xz 6928 BLAKE2B 41aff14411882e60102866a41de6a2c13983d5489c9ed928e2823714883b5cca289c093426fdec35b6df8d17de7a96528d799e10412a0f2f02563e152acf24ea SHA512 f12c1a414cf40e86e9d2a7d1cdfaaacc1045f8043da479b5270ef983ffcf01418a70bbd21ae740abf544091cdc5026bffe467d631242d5e9e0863a64fa8d026b
DIST pypy2.7-gentoo-patches-7.3.6.tar.xz 7904 BLAKE2B 6a809f8f1fd59c18627abaf81b47fa5948d39d5ece86fa416944c1c6585ec5d43b56f4228479a6afdca9788a0ecfdc83fceb4eeea25f289c1dc0b2dbda79b882 SHA512 01fe42cdf94b559ed787e253325f7df0add62e30e77c6b6e4c0301c81ff624a31167d95b39d24d72f28441468d571112f424957de38e7f26ecdbfe0f33617296
-DIST pypy2.7-v7.3.5-src.tar.bz2 21572184 BLAKE2B 388b8623c2c5de839dea0e60acc5e11a6a774b4a6cdc051691053a97fe13ec12c6735a4be64015653ef420c0d8af2c79d8faa90a7dfc3042e29f35f4e1ded6c3 SHA512 a30c666c29eec7cca7e2e52f26480958b5885cd59c6b2e3d3c0d8c1cc55c298e878fc95f88e38a4297bb3d7d1cc1f77470de958e5acfd317e1fc8bdd5d013dcb
+DIST pypy2.7-gentoo-patches-7.3.9.tar.xz 7428 BLAKE2B 0a42e3c04ac0e560d56ce7218db81fa55f74ad45a4a033ccda8c5fba34e3a0b1f06587b5b18e947170cc635bd44e5a7799daeec9319c6a09165a73b32554a4b6 SHA512 3a52d40ccf8d77f3493a763b51e4bf86a808f6478191ed4eeaa4f2c2ce8b75769c3880d07cbc7614d8af5573f3e8edfe694be41626b947f3d06c321cf4f59abd
DIST pypy2.7-v7.3.6-src.tar.bz2 21621891 BLAKE2B a2d18ae9d455747484de491df228e7f26af46fc3bc1fd1c16ceba79eba5a3a3272d48312c9da112ae9310722b5af33098f28a7dc15d7ff4760886a8c974692a2 SHA512 df914f5e1a1f5ae5c1ea11cd8e29482309af4dce041cf2ae6d7b35a35717fec903be70f56e5f1ddbc9fd370cbe29f6896d25eb2cd10c493c352c80b279070ba3
+DIST pypy2.7-v7.3.9-src.tar.bz2 23328628 BLAKE2B 50d015439b6a6f15dd24eb4524726a2054f0d8e7ef209b54dc4eb9365b41b333f3dad525422316af3ff19e6ffb5866859db4455e05fc1529a81ce3b6e7c621db SHA512 8d7513d4efe924f2456dd65a45a82dd16171f7962c81ba90f2a168c332cdad78ceffa3ed1af379c09e61082b39d5c2a8385cd77c89b698c47cc75e9df1bb4d2a
diff --git a/dev-python/pypy/files/cryptography.patch b/dev-python/pypy/files/cryptography.patch
new file mode 100644
index 000000000000..cf045d4e2310
--- /dev/null
+++ b/dev-python/pypy/files/cryptography.patch
@@ -0,0 +1,17 @@
+diff -urN pypy3.9-v7.3.9-src.orig/lib_pypy/_cffi_ssl/_cffi_src/openssl/cryptography.py pypy3.9-v7.3.9-src/lib_pypy/_cffi_ssl/_cffi_src/openssl/cryptography.py
+--- pypy3.9-v7.3.9-src.orig/lib_pypy/_cffi_ssl/_cffi_src/openssl/cryptography.py 2022-05-06 15:55:16.721352072 +0200
++++ pypy3.9-v7.3.9-src/lib_pypy/_cffi_ssl/_cffi_src/openssl/cryptography.py 2022-05-06 15:56:09.489348551 +0200
+@@ -44,6 +44,13 @@
+ (LIBRESSL_VERSION_NUMBER < 0x3030200f)
+ #define CRYPTOGRAPHY_LIBRESSL_LESS_THAN_340 \
+ (LIBRESSL_VERSION_NUMBER < 0x3040000f)
++#define ERR_LIB_OSSL_STORE 44
++#define ERR_LIB_ASYNC 51
++#define ERR_LIB_KDF 52
++#define ERR_LIB_SM2 53
++#define SSL3_RT_HEADER 0x100
++#define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101
++#define SSL3_RT_INNER_CONTENT_TYPE 0x101
+ #else
+ #define CRYPTOGRAPHY_LIBRESSL_27_OR_GREATER (0)
+ #define CRYPTOGRAPHY_LIBRESSL_28_OR_GREATER (0)
diff --git a/dev-python/pypy/files/openssl_ct.patch b/dev-python/pypy/files/openssl_ct.patch
new file mode 100644
index 000000000000..647031353305
--- /dev/null
+++ b/dev-python/pypy/files/openssl_ct.patch
@@ -0,0 +1,23 @@
+Adapt for Certificate Transparency support in LibreSSL 3.5
+
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/ct.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/ct.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/ct.py
+@@ -5,7 +5,7 @@
+ from __future__ import absolute_import, division, print_function
+
+ INCLUDES = """
+-#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER
++#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER || CRYPTOGRAPHY_IS_LIBRESSL
+ #include <openssl/ct.h>
+
+ typedef STACK_OF(SCT) Cryptography_STACK_OF_SCT;
+@@ -65,7 +65,7 @@ int SCT_set_log_entry_type(SCT *, ct_log_entry_type_t)
+ """
+
+ CUSTOMIZATIONS = """
+-#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER
++#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER || CRYPTOGRAPHY_IS_LIBRESSL
+ static const long Cryptography_HAS_SCT = 1;
+ #else
+ static const long Cryptography_HAS_SCT = 0;
diff --git a/dev-python/pypy/files/openssl_dh.patch b/dev-python/pypy/files/openssl_dh.patch
new file mode 100644
index 000000000000..b653872eff5b
--- /dev/null
+++ b/dev-python/pypy/files/openssl_dh.patch
@@ -0,0 +1,14 @@
+Do not redefine a constant available in LibreSSL's headers.
+
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/dh.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/dh.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/dh.py
+@@ -110,7 +110,7 @@ int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_
+ }
+ #endif
+
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110 && !CRYPTOGRAPHY_LIBRESSL_27_OR_GREATER
+ #ifndef DH_CHECK_Q_NOT_PRIME
+ #define DH_CHECK_Q_NOT_PRIME 0x10
+ #endif
diff --git a/dev-python/pypy/files/openssl_evp.patch b/dev-python/pypy/files/openssl_evp.patch
new file mode 100644
index 000000000000..07092e740609
--- /dev/null
+++ b/dev-python/pypy/files/openssl_evp.patch
@@ -0,0 +1,19 @@
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/evp.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/evp.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/evp.py
+@@ -212,14 +212,10 @@ int (*EVP_PKEY_set1_tls_encodedpoint)(EVP_PKEY *, cons
+ #endif
+
+ #if CRYPTOGRAPHY_OPENSSL_LESS_THAN_111
+-static const long Cryptography_HAS_ONESHOT_EVP_DIGEST_SIGN_VERIFY = 0;
++static const long Cryptography_HAS_ONESHOT_EVP_DIGEST_SIGN_VERIFY = 1;
+ static const long Cryptography_HAS_RAW_KEY = 0;
+ static const long Cryptography_HAS_EVP_DIGESTFINAL_XOF = 0;
+ int (*EVP_DigestFinalXOF)(EVP_MD_CTX *, unsigned char *, size_t) = NULL;
+-int (*EVP_DigestSign)(EVP_MD_CTX *, unsigned char *, size_t *,
+- const unsigned char *tbs, size_t) = NULL;
+-int (*EVP_DigestVerify)(EVP_MD_CTX *, const unsigned char *, size_t,
+- const unsigned char *, size_t) = NULL;
+ EVP_PKEY *(*EVP_PKEY_new_raw_private_key)(int, ENGINE *, const unsigned char *,
+ size_t) = NULL;
+ EVP_PKEY *(*EVP_PKEY_new_raw_public_key)(int, ENGINE *, const unsigned char *,
diff --git a/dev-python/pypy/files/openssl_hmac.patch b/dev-python/pypy/files/openssl_hmac.patch
new file mode 100644
index 000000000000..51f1b2264ab1
--- /dev/null
+++ b/dev-python/pypy/files/openssl_hmac.patch
@@ -0,0 +1,23 @@
+Fix build with opaque HMAC_CTX in LibreSSL 3.5.
+
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/hmac.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/hmac.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/hmac.py
+@@ -24,7 +24,7 @@ void Cryptography_HMAC_CTX_free(HMAC_CTX *ctx);
+
+ CUSTOMIZATIONS = """
+ HMAC_CTX *Cryptography_HMAC_CTX_new(void) {
+-#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER
++#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER || defined(LIBRESSL_VERSION_NUMBER)
+ return HMAC_CTX_new();
+ #else
+ /* This uses OPENSSL_zalloc in 1.1.0, which is malloc + memset */
+@@ -36,7 +36,7 @@ HMAC_CTX *Cryptography_HMAC_CTX_new(void) {
+
+
+ void Cryptography_HMAC_CTX_free(HMAC_CTX *ctx) {
+-#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER
++#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER || defined(LIBRESSL_VERSION_NUMBER)
+ return HMAC_CTX_free(ctx);
+ #else
+ if (ctx != NULL) {
diff --git a/dev-python/pypy/files/openssl_ocsp.patch b/dev-python/pypy/files/openssl_ocsp.patch
new file mode 100644
index 000000000000..2dd70863b032
--- /dev/null
+++ b/dev-python/pypy/files/openssl_ocsp.patch
@@ -0,0 +1,23 @@
+Fix build with opaque OCSP in LibreSSL 3.5.
+
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/ocsp.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/ocsp.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/ocsp.py
+@@ -109,7 +109,7 @@ struct ocsp_basic_response_st {
+ };
+ #endif
+
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110 && LIBRESSL_VERSION_NUMBER < 0x3050000fL
+ /* These functions are all taken from ocsp_cl.c in OpenSSL 1.1.0 */
+ const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *single)
+ {
+@@ -148,7 +148,7 @@ const ASN1_OCTET_STRING *OCSP_resp_get0_signature(cons
+ }
+ #endif
+
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110J
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110J && LIBRESSL_VERSION_NUMBER < 0x3050000fL
+ const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs)
+ {
+ #if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110
diff --git a/dev-python/pypy/files/openssl_proto.patch b/dev-python/pypy/files/openssl_proto.patch
new file mode 100644
index 000000000000..22e2e7a3283d
--- /dev/null
+++ b/dev-python/pypy/files/openssl_proto.patch
@@ -0,0 +1,12 @@
+diff -urN pypy2.7-v7.3.8-src.orig/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py pypy2.7-v7.3.8-src/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py
+--- pypy2.7-v7.3.8-src.orig/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py 2022-03-27 20:40:31.151380366 +0200
++++ pypy2.7-v7.3.8-src/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py 2022-03-27 20:45:26.044401605 +0200
+@@ -739,7 +739,7 @@
+ int (*SSL_get_min_proto_version)(SSL *ssl) = NULL;
+ int (*SSL_get_max_proto_version)(SSL *ssl) = NULL;
+ #endif
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110 && !CRYPTOGRAPHY_IS_LIBRESSL
+ int (*SSL_CTX_set_min_proto_version)(SSL_CTX *ctx, int version) = NULL;
+ int (*SSL_CTX_set_max_proto_version)(SSL_CTX *ctx, int version) = NULL;
+ int (*SSL_set_min_proto_version)(SSL *ssl, int version) = NULL;
diff --git a/dev-python/pypy/files/openssl_ssl.patch b/dev-python/pypy/files/openssl_ssl.patch
new file mode 100644
index 000000000000..1c6f32460958
--- /dev/null
+++ b/dev-python/pypy/files/openssl_ssl.patch
@@ -0,0 +1,44 @@
+Fix build with opaque SSL_CTX and COMP_METHOD and do not redefine
+DTLSv1.2 and TLSv1.3 related defined vailable in recent LibreSSL versions.
+
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py
+@@ -552,7 +552,7 @@ int SSL_CTX_set_max_early_data(SSL_CTX *, uint32_t);
+ CUSTOMIZATIONS = """
+ /* Added in 1.0.2 but we need it in all versions now due to the great
+ opaquing. */
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102 && !CRYPTOGRAPHY_IS_LIBRESSL
+ /* from ssl/ssl_lib.c */
+ const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx) {
+ return ctx->method;
+@@ -681,8 +681,8 @@ static const long Cryptography_HAS_SET_CERT_CB = 1;
+
+ /* In OpenSSL 1.0.2i+ the handling of COMP_METHOD when OPENSSL_NO_COMP was
+ changed and we no longer need to typedef void */
+-#if (defined(OPENSSL_NO_COMP) && CRYPTOGRAPHY_OPENSSL_LESS_THAN_102I) || \
+- CRYPTOGRAPHY_IS_LIBRESSL
++#if (defined(OPENSSL_NO_COMP) && CRYPTOGRAPHY_OPENSSL_LESS_THAN_102I) && \
++ !CRYPTOGRAPHY_IS_LIBRESSL
+ static const long Cryptography_HAS_COMPRESSION = 0;
+ typedef void COMP_METHOD;
+ #else
+@@ -729,8 +729,6 @@ const SSL_METHOD *(*DTLS_client_method)(void) = NULL;
+ static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 1;
+ #endif
+ #if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
+-static const long SSL_OP_NO_DTLSv1 = 0;
+-static const long SSL_OP_NO_DTLSv1_2 = 0;
+ long (*DTLS_set_link_mtu)(SSL *, long) = NULL;
+ long (*DTLS_get_link_min_mtu)(SSL *) = NULL;
+ #endif
+@@ -836,7 +834,7 @@ static const long Cryptography_HAS_CIPHER_DETAILS = 0;
+ static const long Cryptography_HAS_CIPHER_DETAILS = 1;
+ #endif
+
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_111
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_111 && !CRYPTOGRAPHY_IS_LIBRESSL
+ static const long Cryptography_HAS_TLSv1_3 = 0;
+ static const long SSL_OP_NO_TLSv1_3 = 0;
+ static const long SSL_VERIFY_POST_HANDSHAKE = 0;
diff --git a/dev-python/pypy/files/openssl_x509.patch b/dev-python/pypy/files/openssl_x509.patch
new file mode 100644
index 000000000000..3714cf926a3a
--- /dev/null
+++ b/dev-python/pypy/files/openssl_x509.patch
@@ -0,0 +1,21 @@
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/x509.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/x509.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/x509.py
+@@ -282,7 +282,7 @@ int X509_get_signature_nid(const X509 *x)
+
+ /* Added in 1.0.2 but we need it in all versions now due to the great
+ opaquing. */
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102 && !defined(LIBRESSL_VERSION_NUMBER)
+ /* from x509/x_x509.c */
+ int i2d_re_X509_tbs(X509 *x, unsigned char **pp)
+ {
+@@ -308,7 +308,7 @@ X509_REVOKED *Cryptography_X509_REVOKED_dup(X509_REVOK
+
+ /* Added in 1.1.0 but we need it in all versions now due to the great
+ opaquing. */
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110 && !defined(LIBRESSL_VERSION_NUMBER)
+ int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp)
+ {
+ req->req_info->enc.modified = 1;
diff --git a/dev-python/pypy/files/openssl_x509name.patch b/dev-python/pypy/files/openssl_x509name.patch
new file mode 100644
index 000000000000..53721e4de136
--- /dev/null
+++ b/dev-python/pypy/files/openssl_x509name.patch
@@ -0,0 +1,12 @@
+Index: lib_pypy/_cffi_ssl/_cffi_src/openssl/x509name.py
+--- lib_pypy/_cffi_ssl/_cffi_src/openssl/x509name.py.orig
++++ lib_pypy/_cffi_ssl/_cffi_src/openssl/x509name.py
+@@ -75,7 +75,7 @@ Cryptography_STACK_OF_X509_NAME_ENTRY *sk_X509_NAME_EN
+ """
+
+ CUSTOMIZATIONS = """
+-#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER
++#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER || defined(LIBRESSL_VERSION_NUMBER)
+ int Cryptography_X509_NAME_ENTRY_set(X509_NAME_ENTRY *ne) {
+ return X509_NAME_ENTRY_set(ne);
+ }
diff --git a/dev-python/pypy/files/ssl_python.patch b/dev-python/pypy/files/ssl_python.patch
new file mode 100644
index 000000000000..03baf16e093f
--- /dev/null
+++ b/dev-python/pypy/files/ssl_python.patch
@@ -0,0 +1,12 @@
+diff -urN pypy2.7-v7.3.8-src.orig/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py pypy2.7-v7.3.8-src/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py
+--- pypy2.7-v7.3.8-src.orig/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py 2022-03-27 20:48:19.795414119 +0200
++++ pypy2.7-v7.3.8-src/lib_pypy/_cffi_ssl/_cffi_src/openssl/ssl.py 2022-03-27 20:51:43.997428826 +0200
+@@ -577,7 +577,7 @@
+ """
+
+ CUSTOMIZATIONS = """
+-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
++#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102 && !CRYPTOGRAPHY_LIBRESSL_27_OR_GREATER
+ #error Python 3.7 requires OpenSSL >= 1.0.2
+ #endif
+
diff --git a/dev-python/pypy/pypy-7.3.5-r2.ebuild b/dev-python/pypy/pypy-7.3.9.ebuild
index 467c4608394c..d5a349b2ed39 100644
--- a/dev-python/pypy/pypy-7.3.5-r2.ebuild
+++ b/dev-python/pypy/pypy-7.3.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021 Liguros Authors
+# Copyright 2021-2022 Liguros Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,7 +6,7 @@ inherit pax-utils python-utils-r1
PYPY_PV=${PV%_p*}
MY_P=pypy2.7-v${PYPY_PV/_}
-PATCHSET="pypy2.7-gentoo-patches-${PV/_}"
+PATCHSET="pypy2.7-gentoo-patches-${PV/_rc/rc}"
DESCRIPTION="A fast, compliant alternative implementation of the Python language"
HOMEPAGE="https://www.pypy.org/"
@@ -26,7 +26,7 @@ RDEPEND="
>=dev-python/pypy-exe-bin-${PYPY_PV}:${PYPY_PV}
)
!libressl? ( dev-libs/openssl:0= )
- libressl? ( <dev-libs/libressl-3.3.4 )
+ libressl? ( >=dev-libs/libressl-3.5.0:0= )
gdbm? ( sys-libs/gdbm:0= )
sqlite? ( dev-db/sqlite:3= )
tk? (
@@ -44,6 +44,17 @@ src_prepare() {
sed -e "s^@EPREFIX@^${EPREFIX}^" \
-i lib-python/2.7/distutils/command/install.py || die
+ eapply -p0 ${FILESDIR}/openssl_ct.patch
+ eapply -p0 ${FILESDIR}/openssl_dh.patch
+ eapply -p0 ${FILESDIR}/openssl_evp.patch
+ eapply -p0 ${FILESDIR}/openssl_hmac.patch
+ eapply -p0 ${FILESDIR}/openssl_ocsp.patch
+ eapply -p0 ${FILESDIR}/openssl_ssl.patch
+ eapply -p0 ${FILESDIR}/openssl_x509.patch
+ eapply -p0 ${FILESDIR}/openssl_x509name.patch
+ eapply -p1 ${FILESDIR}/openssl_proto.patch
+ eapply -p1 ${FILESDIR}/ssl_python.patch
+ eapply -p1 ${FILESDIR}/cryptography.patch
}
src_compile() {
@@ -56,6 +67,10 @@ src_compile() {
mv pypy/module/cpyext/parse/*.h include/ || die
pax-mark m pypy-c
+ # verify the subslot
+ local soabi=$(./pypy-c -c 'import sysconfig; print sysconfig.get_config_var("SOABI")')
+ [[ ${soabi#pypy-} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
+
einfo "Generating caches and CFFI modules ..."
# Generate Grammar and PatternGrammar pickles.
@@ -64,17 +79,7 @@ src_compile() {
# Generate cffi modules
# Please keep in sync with pypy/tool/build_cffi_imports.py!
-#cffi_build_scripts = {
-# "_ssl": "_ssl_build.py",
-# "sqlite3": "_sqlite3_build.py",
-# "audioop": "_audioop_build.py",
-# "tk": "_tkinter/tklib_build.py",
-# "curses": "_curses_build.py" if sys.platform != "win32" else None,
-# "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
-# "gdbm": "_gdbm_build.py" if sys.platform != "win32" else None,
-# "pwdgrp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
-# "resource": "_resource_build.py" if sys.platform != "win32" else None,
- cffi_targets=( ssl audioop syslog pwdgrp resource )
+ cffi_targets=( pypy_util ssl audioop syslog pwdgrp resource )
use gdbm && cffi_targets+=( gdbm )
use ncurses && cffi_targets+=( curses )
use sqlite && cffi_targets+=( sqlite3 )
@@ -89,6 +94,17 @@ src_compile() {
../pypy-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
done
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=2d3acf18
+ local local_cksum=$(../pypy-c -c '
+from pypy_tools.build_cffi_imports import cffi_build_scripts as x;
+import binascii, json;
+print("%08x" % (binascii.crc32(json.dumps(x)),))')
+
+ if [[ ${local_cksum} != ${expected_cksum} ]]; then
+ die "Please verify cffi_targets and update checksum to ${local_cksum}"
+ fi
+
# Cleanup temporary objects
find -name "_cffi_*.[co]" -delete || die
find -type d -empty -delete || die
diff --git a/dev-python/pytest-subtesthack/pytest-subtesthack-0.1.2-r2.ebuild b/dev-python/pytest-subtesthack/pytest-subtesthack-0.1.2-r2.ebuild
new file mode 100644
index 000000000000..2b14a16678cf
--- /dev/null
+++ b/dev-python/pytest-subtesthack/pytest-subtesthack-0.1.2-r2.ebuild
@@ -0,0 +1,34 @@
+# 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_{7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="A hack for test fixtures, needed for hypothesis inside py.test"
+HOMEPAGE="
+ https://github.com/untitaker/pytest-subtesthack/
+ https://pypi.org/project/pytest-subtesthack/
+"
+SRC_URI="
+ https://github.com/untitaker/pytest-subtesthack/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/python-magic/Manifest b/dev-python/python-magic/Manifest
index 6b7a177b6c3d..1acd33f3a408 100644
--- a/dev-python/python-magic/Manifest
+++ b/dev-python/python-magic/Manifest
@@ -1 +1,2 @@
DIST python-magic-0.4.25.gh.tar.gz 864121 BLAKE2B ec79112aba9f79a6dd6a3840a1286432806c0cd035d301668fd8177ce36b270ddf1c928f70d51cfacb88cca4d5fb31706cff946b16ed230e8850bca9ebda8c0b SHA512 eb138f7f2d1320f831516fdf21bf7dd404acf070be6093b7ed8697325f60998d886405c5ff348c7e4ad69ecd2ee0ab899afe455db90eda502acdf8b86337f79c
+DIST python-magic-0.4.26.gh.tar.gz 863618 BLAKE2B 62d85758402d77376e685eb0f8964fd5d9e2a62775c3566d7f2a76284b287b6b17f9f759dbc08404087fc8a524609cefa65ab8e74020c4bd4f49e8ae3a2d604f SHA512 a9f2f8ef9f1aef9e9455b656fabf8e6cf7b1a9df4af2012c7a9426e0740cd6e8952e6957e01710809ab018d008fd531a74e9f66640af1299b61c35ede590b749
diff --git a/dev-python/python-magic/python-magic-0.4.26.ebuild b/dev-python/python-magic/python-magic-0.4.26.ebuild
new file mode 100644
index 000000000000..ab8d3a6e4c16
--- /dev/null
+++ b/dev-python/python-magic/python-magic-0.4.26.ebuild
@@ -0,0 +1,39 @@
+# 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_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Access the libmagic file type identification library"
+HOMEPAGE="
+ https://github.com/ahupp/python-magic/
+ https://pypi.org/project/python-magic/
+"
+SRC_URI="
+ https://github.com/ahupp/python-magic/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux"
+
+RDEPEND="
+ sys-apps/file[-python]
+"
+BDEPEND="
+ test? (
+ sys-apps/file
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ local -x LC_ALL=en_US.UTF-8
+ eunittest -p "*_test.py"
+}
diff --git a/dev-python/tabulate/Manifest b/dev-python/tabulate/Manifest
index 5827c1aa41c3..20a87b21dcf0 100644
--- a/dev-python/tabulate/Manifest
+++ b/dev-python/tabulate/Manifest
@@ -1 +1,2 @@
+DIST python-tabulate-0.8.9.gh.tar.gz 42562 BLAKE2B 6e6e1017379d07d5ede0cdfb6a8e3142f60656fd5d5b409c1259239e62637824c3bab0bb0f6b03f8733a24e9e3ac074a80a56d44939a8c6eeab8e9a830ae8277 SHA512 68a4d194068f692b57b2cca0fa42a58ba571b46adaef7f8b1a8cea7e34c78ea0a1c523286c3f1df631897cc60ad39ef6b11bfee61d46c04e2de1fb9ec0b497dd
DIST tabulate-0.8.9.tar.gz 42562 BLAKE2B 6e6e1017379d07d5ede0cdfb6a8e3142f60656fd5d5b409c1259239e62637824c3bab0bb0f6b03f8733a24e9e3ac074a80a56d44939a8c6eeab8e9a830ae8277 SHA512 68a4d194068f692b57b2cca0fa42a58ba571b46adaef7f8b1a8cea7e34c78ea0a1c523286c3f1df631897cc60ad39ef6b11bfee61d46c04e2de1fb9ec0b497dd
diff --git a/dev-python/tabulate/tabulate-0.8.9-r1.ebuild b/dev-python/tabulate/tabulate-0.8.9-r1.ebuild
new file mode 100644
index 000000000000..5760aa1b2dfa
--- /dev/null
+++ b/dev-python/tabulate/tabulate-0.8.9-r1.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_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+MY_P=python-${P}
+DESCRIPTION="Pretty-print tabular data"
+HOMEPAGE="
+ https://github.com/astanin/python-tabulate/
+ https://pypi.org/project/tabulate/
+"
+SRC_URI="
+ https://github.com/astanin/python-${PN}/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep 'sqlite')
+ dev-python/colorclass[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ' 'python3*')
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ if ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ test/test_input.py::test_pandas
+ test/test_input.py::test_pandas_firstrow
+ test/test_input.py::test_pandas_keys
+ test/test_output.py::test_pandas_with_index
+ test/test_output.py::test_pandas_without_index
+ test/test_output.py::test_pandas_rst_with_index
+ test/test_output.py::test_pandas_rst_with_named_index
+ )
+ fi
+ epytest
+}
diff --git a/dev-python/tenacity/tenacity-8.0.1-r1.ebuild b/dev-python/tenacity/tenacity-8.0.1-r1.ebuild
new file mode 100644
index 000000000000..dc814951d4d5
--- /dev/null
+++ b/dev-python/tenacity/tenacity-8.0.1-r1.ebuild
@@ -0,0 +1,41 @@
+# 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_{7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="General-purpose retrying library"
+HOMEPAGE="
+ https://github.com/jd/tenacity/
+ https://pypi.org/project/tenacity/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ test? (
+ www-servers/tornado[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ if ! has_version "dev-python/typeguard[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/test_tenacity.py::TestRetryTyping::test_retry_type_annotations
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/typeguard/Manifest b/dev-python/typeguard/Manifest
index bd919f1a8b8f..1f9c43e6470b 100644
--- a/dev-python/typeguard/Manifest
+++ b/dev-python/typeguard/Manifest
@@ -1,3 +1 @@
-DIST typeguard-2.13.0.gh.tar.gz 36849 BLAKE2B ef9b724bdd5ef127b6ede4ff4cb1d4f4794b0e921512d2cbf474145bf64de0cae85b7f5283dfc7f0b750e79e1c44c03ce6b4c0f24a33ae961c428aa57f3b6ae5 SHA512 48df7a9d6ee2cc11b5118432afcda5e0939712ff66d67f3945e26047c0880a05c133b505869ebcef59ce438260b9f6d1806121d0d4828853bc3b9c3468769f39
-DIST typeguard-2.13.2.gh.tar.gz 37142 BLAKE2B 0aa3f53bc0d1aa485d071cd52d2458ab83c4d5eba88708240c100a3205a2714f39465cb48d82118eb6bcf1e30579e50bb5dffb31b3f2b673573481772d650a23 SHA512 a11c1b9ee417a99a8bd09f4b5b05c7cdf319748b8221a49d1ff76854e2f432768224437f82a41c0166e5b148a550b58afbabfa1935cdc2a049cda3010edd052a
DIST typeguard-2.13.3.gh.tar.gz 37436 BLAKE2B a3cb616692119c64a9dc0d0bae25cc661b7974a0b6cf6632fa403f7c5430873570b1aaa310bc03843deee6f77a831c303ea9d9091db596eb565fce43980bbb13 SHA512 26c31ee9670650d1969320187a924d29d986894a38f1026af58f705b132b64be3b6e2ac34729f966f5d302d486334b5a5d9e65fb206245b82b0ff0852020b609
diff --git a/dev-python/typeguard/typeguard-2.13.0.ebuild b/dev-python/typeguard/typeguard-2.13.0.ebuild
deleted file mode 100644
index 94547f17226a..000000000000
--- a/dev-python/typeguard/typeguard-2.13.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-inherit distutils-r1
-
-DESCRIPTION="Run-time type checker for Python"
-HOMEPAGE="
- https://pypi.org/project/typeguard/
- https://github.com/agronholm/typeguard/"
-SRC_URI="
- https://github.com/agronholm/typeguard/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-BDEPEND="
- dev-python/setuptools_scm[${PYTHON_USEDEP}]
- test? (
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- )"
-
-distutils_enable_tests pytest
-
-export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # mypy changes results from version to version
- tests/mypy
- )
-
- local -x PYTHONDONTWRITEBYTECODE=
- epytest
-}
diff --git a/dev-python/typeguard/typeguard-2.13.2.ebuild b/dev-python/typeguard/typeguard-2.13.3-r1.ebuild
index 94547f17226a..eb2a152af46a 100644
--- a/dev-python/typeguard/typeguard-2.13.2.ebuild
+++ b/dev-python/typeguard/typeguard-2.13.3-r1.ebuild
@@ -1,28 +1,33 @@
-# Copyright 2021 Gentoo Authors
+# Copyright 2021-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{7,8,9,10} )
+
inherit distutils-r1
DESCRIPTION="Run-time type checker for Python"
HOMEPAGE="
https://pypi.org/project/typeguard/
- https://github.com/agronholm/typeguard/"
+ https://github.com/agronholm/typeguard/
+"
SRC_URI="
https://github.com/agronholm/typeguard/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz"
+ -> ${P}.gh.tar.gz
+"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
dev-python/setuptools_scm[${PYTHON_USEDEP}]
test? (
dev-python/typing-extensions[${PYTHON_USEDEP}]
- )"
+ )
+"
distutils_enable_tests pytest
diff --git a/dev-python/vdirsyncer/vdirsyncer-0.18.0-r2.ebuild b/dev-python/vdirsyncer/vdirsyncer-0.18.0-r3.ebuild
index d763a21cec87..7a47622068c9 100644
--- a/dev-python/vdirsyncer/vdirsyncer-0.18.0-r2.ebuild
+++ b/dev-python/vdirsyncer/vdirsyncer-0.18.0-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -18,7 +18,6 @@ KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
RDEPEND="dev-python/click[${PYTHON_USEDEP}]
>=dev-python/click-log-0.3.0[${PYTHON_USEDEP}]
- <dev-python/click-log-0.4.0[${PYTHON_USEDEP}]
>=dev-python/click-threading-0.5[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/requests-toolbelt[${PYTHON_USEDEP}]
@@ -39,6 +38,13 @@ DOCS=( AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst README.rst config.example )
distutils_enable_tests pytest
+src_prepare() {
+ # unpin click-log
+ # https://github.com/pimutils/vdirsyncer/commit/ea640001d0ad6e56369102e02b949c865c48726f
+ sed -i -e '/click-log/s:, <0.4.0::' setup.py || die
+ distutils-r1_src_prepare
+}
+
python_test() {
# skip tests needing servers running
local -x DAV_SERVER=skip
diff --git a/dev-python/vdirsyncer/vdirsyncer-0.18.0-r4.ebuild b/dev-python/vdirsyncer/vdirsyncer-0.18.0-r4.ebuild
new file mode 100644
index 000000000000..752a9ad18181
--- /dev/null
+++ b/dev-python/vdirsyncer/vdirsyncer-0.18.0-r4.ebuild
@@ -0,0 +1,76 @@
+# 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_{7,8,9,10} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 systemd
+
+DESCRIPTION="Synchronize calendars and contacts"
+HOMEPAGE="
+ https://github.com/pimutils/vdirsyncer/
+ https://pypi.org/project/vdirsyncer/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+ >=dev-python/click-log-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/click-threading-0.5[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-toolbelt[${PYTHON_USEDEP}]
+ dev-python/atomicwrites[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ dev-python/pytest-subtesthack[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.18.0-no-cov.patch"
+)
+
+DOCS=( AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst README.rst config.example )
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin click-log
+ # https://github.com/pimutils/vdirsyncer/commit/ea640001d0ad6e56369102e02b949c865c48726f
+ sed -i -e '/click-log/s:, <0.4.0::' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # skip tests needing servers running
+ local -x DAV_SERVER=skip
+ local -x REMOTESTORAGE_SERVER=skip
+ # pytest dies hard if the envvars do not have any value...
+ local -x CI=false
+ local -x DETERMINISTIC_TESTS=false
+
+ local EPYTEST_DESELECT=(
+ # test CA is too weak for modern python
+ tests/system/utils/test_main.py::test_request_ssl
+ tests/system/utils/test_main.py::test_request_ssl_fingerprints
+ )
+
+ epytest
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ systemd_douserunit contrib/vdirsyncer.{service,timer}
+}
diff --git a/dev-python/whisper/Manifest b/dev-python/whisper/Manifest
index d32e1fd21e9d..ee7e0bccdfa2 100644
--- a/dev-python/whisper/Manifest
+++ b/dev-python/whisper/Manifest
@@ -1 +1,2 @@
+DIST whisper-1.1.10.gh.tar.gz 39459 BLAKE2B 998c4335236ace6b28f11b23fe74d3b618ba2f56939a3e9766e7010eb6b5d9bbdb46de83ba41dd926d3d38e738851133dc9805a4c79bd80dd67897e627147550 SHA512 291d441287ba090157fa01a7feb6985a6e1f057f4dae0f9133e2355e00f5fe219e10de339ecad3438a56b8dec97def14496d85c7a5fc5fc7611771bb3de08de8
DIST whisper-1.1.8.gh.tar.gz 39117 BLAKE2B 591a3529725f300c6d8bab40444bdd41bcfe3d832893e954295d5387e047e2a639db4235131cd90fdb686395d51afccf30f64a52e194e4cd8e00b86e38f841d6 SHA512 0452c684128a750e30e926aee0cfd6c94f129eeb561246f9e1c66d7cf1f27f139df84f91e935237f89d0b4fac98678108568cfb94c2ab4138480f4db31471ab4
diff --git a/dev-python/whisper/whisper-1.1.10.ebuild b/dev-python/whisper/whisper-1.1.10.ebuild
new file mode 100644
index 000000000000..c14f363bcd0b
--- /dev/null
+++ b/dev-python/whisper/whisper-1.1.10.ebuild
@@ -0,0 +1,35 @@
+# 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_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Fixed size round-robin style database"
+HOMEPAGE="
+ https://github.com/graphite-project/whisper/
+ https://pypi.org/project/whisper/
+"
+SRC_URI="
+ https://github.com/graphite-project/whisper/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # not a regression (fails the same with the previous version)
+ # https://github.com/graphite-project/whisper/issues/321
+ test_whisper.py::TestWhisper::test_resize_with_aggregate
+)
diff --git a/dev-python/xmlschema/Manifest b/dev-python/xmlschema/Manifest
index 095fa9767007..ead18ab309e0 100644
--- a/dev-python/xmlschema/Manifest
+++ b/dev-python/xmlschema/Manifest
@@ -1,2 +1,3 @@
DIST xmlschema-1.10.0.tar.gz 396057 BLAKE2B 44facdb16e79ddf16ca798b937c4cf35444f9d31278c26121f179e5055134b82d425cc5b69a8a2e4fdd44388cbd3e96534b55794a267a3b4c0b606752ede533e SHA512 c4358b210cc96e46617cc11b1b7e2a4d69c1bd6489cc73602552b184f209eb90b13eff353741aa7b1dbc3ff8514f90b7bb331ac18ffc466b3ce36f42f7497899
DIST xmlschema-1.11.0.tar.gz 453958 BLAKE2B d6879e0f0445dad7e86d7b11e14d3f249b3cde5242c7cde7c327005fb4268ae9f20b4bf0bc3c140284e82842e09cbcdc2d12a7f8df0bede85ffc8db39989ed49 SHA512 507b57b8d4f48eb9f2463898ad0bd245791a8c8086a544d45da1fb2d4f6edafa5e555d44bdba50974408f14251cb8acae2dfc2c1b5c4544088f336fdfee0793a
+DIST xmlschema-1.11.1.tar.gz 454932 BLAKE2B b80885b7bde87115caece3cdcd036c5ef7cc225acb01ca610c97b2759142a6deb1c29e9fbaf08f60ef4ec80ac4d7dd4b382dd5cd0b74f0f766101664a3cb7fca SHA512 58800377e4bdec70608286057093827fd72bce82117424753a37632c2dbccf2b4e354bfa6e62c3dec06ec98ff262eff258e18c0c6e6af2b5fd520ad11118531c
diff --git a/dev-python/xmlschema/xmlschema-1.11.1.ebuild b/dev-python/xmlschema/xmlschema-1.11.1.ebuild
new file mode 100644
index 000000000000..34fc66f8f9e5
--- /dev/null
+++ b/dev-python/xmlschema/xmlschema-1.11.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="An XML Schema validator and decoder"
+HOMEPAGE="
+ https://github.com/sissaschool/xmlschema/
+ https://pypi.org/project/xmlschema/
+"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/elementpath-2.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ "${EPYTHON}" tests/test_all.py -v ||
+ die "Tests fail with ${EPYTHON}"
+}