summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-10-15 01:06:31 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-10-15 01:06:31 +0000
commite0e789e336487c91b82631a6ceb7fbaed37ea42c (patch)
tree488d3dd5238576d876799e10ec3293dc57049a63 /dev-python
parent61b6ef17e24c830bc291e361f9dd6abc03074f80 (diff)
downloadbaldeagleos-repo-e0e789e336487c91b82631a6ceb7fbaed37ea42c.tar.gz
baldeagleos-repo-e0e789e336487c91b82631a6ceb7fbaed37ea42c.tar.xz
baldeagleos-repo-e0e789e336487c91b82631a6ceb7fbaed37ea42c.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/apsw/apsw-3.39.4.0.ebuild2
-rw-r--r--dev-python/discogs-client/discogs-client-2.4.ebuild2
-rw-r--r--dev-python/docutils-glep/docutils-glep-1.5.ebuild2
-rw-r--r--dev-python/flask-sqlalchemy/Manifest1
-rw-r--r--dev-python/flask-sqlalchemy/flask-sqlalchemy-3.0.2.ebuild41
-rw-r--r--dev-python/nuitka/Manifest1
-rw-r--r--dev-python/nuitka/nuitka-1.1.5.ebuild55
-rw-r--r--dev-python/pandas/pandas-1.5.0-r1.ebuild204
-rw-r--r--dev-python/patsy/patsy-0.5.3-r1.ebuild24
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-8.12.57.ebuild39
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-2.9.4.ebuild56
-rw-r--r--dev-python/pygobject/Manifest1
-rw-r--r--dev-python/pygobject/pygobject-3.42.1.ebuild74
-rw-r--r--dev-python/pymysql/Manifest1
-rw-r--r--dev-python/pymysql/pymysql-1.0.2-r1.ebuild150
-rw-r--r--dev-python/setuptools/Manifest1
-rw-r--r--dev-python/setuptools/setuptools-65.5.0.ebuild127
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-1.4.41.ebuild2
-rw-r--r--dev-python/termcolor/termcolor-2.0.0.ebuild2
-rw-r--r--dev-python/xarray/xarray-2022.10.0-r1.ebuild40
22 files changed, 747 insertions, 80 deletions
diff --git a/dev-python/apsw/apsw-3.39.4.0.ebuild b/dev-python/apsw/apsw-3.39.4.0.ebuild
index 7e99fb630052..5e3f1c135c82 100644
--- a/dev-python/apsw/apsw-3.39.4.0.ebuild
+++ b/dev-python/apsw/apsw-3.39.4.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="ZLIB"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm ~ppc64 x86"
IUSE="doc"
DEPEND="
diff --git a/dev-python/discogs-client/discogs-client-2.4.ebuild b/dev-python/discogs-client/discogs-client-2.4.ebuild
index e534653e2d70..20fae979fbd2 100644
--- a/dev-python/discogs-client/discogs-client-2.4.ebuild
+++ b/dev-python/discogs-client/discogs-client-2.4.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then
inherit git-r3
else
SRC_URI="mirror://pypi/p/python3-${PN}/python3-${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="amd64 ~x86"
S="${WORKDIR}/python3-${P}"
fi
diff --git a/dev-python/docutils-glep/docutils-glep-1.5.ebuild b/dev-python/docutils-glep/docutils-glep-1.5.ebuild
index 8cf735e1e98f..0e32f0b21e27 100644
--- a/dev-python/docutils-glep/docutils-glep-1.5.ebuild
+++ b/dev-python/docutils-glep/docutils-glep-1.5.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="public-domain"
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"
+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"
RDEPEND="
>=dev-python/docutils-0.10[${PYTHON_USEDEP}]
diff --git a/dev-python/flask-sqlalchemy/Manifest b/dev-python/flask-sqlalchemy/Manifest
index 0434a76eb9a9..cf343fcf1f01 100644
--- a/dev-python/flask-sqlalchemy/Manifest
+++ b/dev-python/flask-sqlalchemy/Manifest
@@ -1,3 +1,4 @@
DIST Flask-SQLAlchemy-2.5.1.tar.gz 132750 BLAKE2B 6378766e9ae5e697f9a0fe23471f0264e5ac1f4c824657e5197f6c35f9f12eb756528641c1078b1bf470170c557c3201314a80b922b4ab84e4664a0ccaad2a6c SHA512 5d483418204030837e62769d45c16af88c5be6dbafc7c340cc4e67ef1736ea5102f506156119864cd7673cf382b0d3f27050bda64273b93ef4805fce9e1a0f6f
DIST Flask-SQLAlchemy-3.0.0.tar.gz 127234 BLAKE2B 97737e16e3929b4449b7c004463d5976263bebdeb4d06f93afc531ad10545f7648103ebdaf8792967d504ec4e404e5f0411397216944eff8deebb1a69d01efe7 SHA512 48461453555cc659b1f35ea0d255c080784222a51a90de1cb5761ed08f3fffa83b6647a7346b860f2354484496e6cdbf1420cb9f0405b128174e7e6f1e30cbbe
DIST Flask-SQLAlchemy-3.0.1.tar.gz 128448 BLAKE2B 69294c328df5a6bd8c40b5bc74b411ccd616a926db55c579aa00f777b7b0a3e7045c719487c2d2cffaee804fbe4690e45cee06f9ec860b5ad75de62b1e1811e7 SHA512 5b4a79f700b6e42d4796d0b4c9fc9ab489cdbf7d0598f5df3adfa8d9edef8c9203ab3d53805c24764f7e9f2668b907af9782b51310492b21d355cb2440b3453f
+DIST Flask-SQLAlchemy-3.0.2.tar.gz 128634 BLAKE2B 0203de67bd4c3a61562ad8bd69b6be2826ce7a49b763f101b5455a8452a1950728dee4a6a627c82f6ef741f57334de41511675b254a8da3c334021fcdbe8fd63 SHA512 89fa71796efe53e993ef8fc264b04f64c3174cadc960a9e51944e4fe70513a1c91e244e55f70690623f1d7d6d7c215729581a6989484bb0369b4bb0e412f499c
diff --git a/dev-python/flask-sqlalchemy/flask-sqlalchemy-3.0.2.ebuild b/dev-python/flask-sqlalchemy/flask-sqlalchemy-3.0.2.ebuild
new file mode 100644
index 000000000000..aa9ee419cecb
--- /dev/null
+++ b/dev-python/flask-sqlalchemy/flask-sqlalchemy-3.0.2.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=pdm
+PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+MY_PN="Flask-SQLAlchemy"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="SQLAlchemy support for Flask applications"
+HOMEPAGE="
+ https://github.com/pallets-eco/flask-sqlalchemy/
+ https://pypi.org/project/flask-sqlalchemy/
+"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/flask-2.2[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.4.18[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/blinker[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/pallets-sphinx-themes \
+ dev-python/sphinx-issues \
+ dev-python/sphinxcontrib-log_cabinet
diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest
index a17151a93f5f..a1cf434133f5 100644
--- a/dev-python/nuitka/Manifest
+++ b/dev-python/nuitka/Manifest
@@ -1,2 +1,3 @@
DIST Nuitka-1.1.3.tar.gz 3921812 BLAKE2B f3160facc010fb55510246d8c455665c9be1c893629a04ecfd204fcd6898ae6e4955684804cc83abff8e35084727c87b848abd9d5c25f8d0eb5b054b1c2f7d5a SHA512 fcc1374605ae8429a3f22c926783d8f96b335597b152320d2a33152ccabb7e3cb003f7870d51dcf36d1e4bbc391f517e56631c49905a4bd1cc146e5ada9c5aa6
DIST Nuitka-1.1.4.tar.gz 3923043 BLAKE2B 7c85aab9170f118f43c56a097ef4ea90e78e539d8a796fcf4435f1e2d27e1f8a7f87ab030736f231834ab044db512e6649f6f0f2b7726dcda989edad5cc9cbae SHA512 9bf9de077d71cdca629737f21ddac22fa8526d4e1d3ec3a41465f8764997141a3a5e6e2d545001b72f66dc972fe7a9fa23cdf36636a29552652d1a04a23fd2d6
+DIST Nuitka-1.1.5.tar.gz 3920916 BLAKE2B 7352009df91e39c63073e8230065af990c86d07cf51752ceaf234e4e8b5814d085ee7423440dc5bb8ca63341f7e1eccdbd41631711ebcfac481bcb3645c011f2 SHA512 ef88b98341cb930529d6e31bb487cf3bb8c217dd9b8a8b50c8e5b147f0b4879a17f2d6c7621a056ad3f1ffd15ac88781445bc0dc8dc164a38aea83b43a6bf3c7
diff --git a/dev-python/nuitka/nuitka-1.1.5.ebuild b/dev-python/nuitka/nuitka-1.1.5.ebuild
new file mode 100644
index 000000000000..d0ee11a36016
--- /dev/null
+++ b/dev-python/nuitka/nuitka-1.1.5.ebuild
@@ -0,0 +1,55 @@
+# 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 flag-o-matic optfeature
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="
+ https://www.nuitka.net/
+ https://github.com/Nuitka/Nuitka/
+ https://pypi.org/project/Nuitka/
+"
+SRC_URI="https://nuitka.net/releases/${P^}.tar.gz"
+S=${WORKDIR}/${P^}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-util/scons[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? ( dev-util/ccache )
+"
+
+DOCS=( Changelog.pdf Developer_Manual.pdf README.pdf )
+
+distutils-r1_src_prepare() {
+ # remove vendored version of SCons that is Python2 only
+ # this should be removed when upstream removes support for Python2
+ rm -vR "${PN}/build/inline_copy/lib/scons-2.3.2/SCons" || die
+ eapply_user
+}
+
+python_install() {
+ distutils-r1_python_install
+ doman doc/nuitka3.1 doc/nuitka3-run.1
+}
+
+python_test() {
+ append-ldflags -Wl,--no-warn-search-mismatch
+ ./tests/basics/run_all.py search || die
+}
+
+pkg_postinst() {
+ optfeature "support for stand-alone executables" app-admin/chrpath
+}
diff --git a/dev-python/pandas/pandas-1.5.0-r1.ebuild b/dev-python/pandas/pandas-1.5.0-r1.ebuild
new file mode 100644
index 000000000000..fd2fdb4eb220
--- /dev/null
+++ b/dev-python/pandas/pandas-1.5.0-r1.ebuild
@@ -0,0 +1,204 @@
+# 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="threads(+)"
+
+VIRTUALX_REQUIRED="manual"
+
+inherit distutils-r1 multiprocessing optfeature virtualx
+
+DESCRIPTION="Powerful data structures for data analysis and statistics"
+HOMEPAGE="https://pandas.pydata.org/
+ https://github.com/pandas-dev/pandas/"
+SRC_URI="
+ https://github.com/pandas-dev/pandas/releases/download/v${PV}/${P}.tar.gz
+"
+S="${WORKDIR}/${P/_/}"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="doc full-support minimal test X"
+RESTRICT="!test? ( test )"
+
+RECOMMENDED_DEPEND="
+ >=dev-python/bottleneck-1.2.1[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-2.7.0[${PYTHON_USEDEP}]
+"
+
+# TODO: add pandas-gbq to the tree
+# TODO: Re-add dev-python/statsmodel[python3_11] dep once it supports python3_11
+# https://github.com/statsmodels/statsmodels/issues/8287
+OPTIONAL_DEPEND="
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/blosc[${PYTHON_USEDEP}]
+ || (
+ dev-python/html5lib[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ || (
+ dev-python/openpyxl[${PYTHON_USEDEP}]
+ dev-python/xlsxwriter[${PYTHON_USEDEP}]
+ )
+ >=dev-python/pytables-3.2.1[${PYTHON_USEDEP}]
+ >=dev-python/xarray-0.12.3[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/xlrd-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/xlwt-1.3.0[${PYTHON_USEDEP}]
+ !hppa? (
+ $(python_gen_cond_dep \
+ 'dev-python/statsmodels[${PYTHON_USEDEP}]' python3_{8..10} )
+ >=dev-python/scipy-1.1[${PYTHON_USEDEP}]
+ )
+ X? (
+ || (
+ dev-python/PyQt5[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+ )
+"
+COMMON_DEPEND="
+ >=dev-python/numpy-1.21.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.1-r3[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2020.1[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-python/cython-0.29.32[${PYTHON_USEDEP}]
+ doc? (
+ ${VIRTUALX_DEPEND}
+ app-text/pandoc
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/html5lib[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/nbsphinx[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/pytables-3.0.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/rpy[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/xlrd[${PYTHON_USEDEP}]
+ dev-python/xlwt[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ )
+ test? (
+ ${VIRTUALX_DEPEND}
+ ${RECOMMENDED_DEPEND}
+ ${OPTIONAL_DEPEND}
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-5.5.3[${PYTHON_USEDEP}]
+ dev-python/openpyxl[${PYTHON_USEDEP}]
+ dev-python/pymysql[${PYTHON_USEDEP}]
+ >=dev-python/pytest-6[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-1.31[${PYTHON_USEDEP}]
+ dev-python/psycopg:2[${PYTHON_USEDEP}]
+ dev-python/xlsxwriter[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+"
+# dev-python/statsmodels invokes a circular dep
+# hence rm from doc? ( ), again
+RDEPEND="
+ ${COMMON_DEPEND}
+ !minimal? ( ${RECOMMENDED_DEPEND} )
+ full-support? ( ${OPTIONAL_DEPEND} )
+"
+
+python_prepare_all() {
+ # Prevent un-needed download during build
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" \
+ -i doc/source/conf.py || die
+
+ # requires package installed
+ sed -e '/extra_compile_args =/s:"-Werror"::' \
+ -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ distutils-r1_python_compile -j1
+}
+
+python_compile_all() {
+ # To build docs the need be located in $BUILD_DIR,
+ # else PYTHONPATH points to unusable modules.
+ if use doc; then
+ cd "${BUILD_DIR}"/lib || die
+ cp -ar "${S}"/doc . && cd doc || die
+ LANG=C PYTHONPATH=. virtx ${EPYTHON} make.py html
+ fi
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # test for rounding errors, fails if we have better precision
+ # e.g. on amd64 with FMA or on arm64
+ # https://github.com/pandas-dev/pandas/issues/38921
+ pandas/tests/window/test_rolling.py::test_rolling_var_numerical_issues
+
+ # TODO
+ pandas/tests/api/test_api.py::TestTesting::test_util_testing_deprecated
+ pandas/tests/api/test_api.py::TestTesting::test_util_testing_deprecated_direct
+ pandas/tests/io/test_clipboard.py::TestClipboard::test_raw_roundtrip
+
+ # TODO: xdist?
+ pandas/tests/test_expressions.py::TestExpressions::test_run_binary
+
+ # TODO: these require a running db server
+ pandas/tests/io/test_sql.py::TestMySQLAlchemy
+ pandas/tests/io/test_sql.py::TestMySQLAlchemyConn
+ pandas/tests/io/test_sql.py::TestPostgreSQLAlchemy
+ pandas/tests/io/test_sql.py::TestPostgreSQLAlchemyConn
+ )
+
+ local -x LC_ALL=C.UTF-8
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
+ epytest pandas --skip-slow --skip-network -m "not single" \
+ -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")" ||
+ die "Tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use doc; then
+ dodoc -r "${BUILD_DIR}"/lib/doc/build/html
+ einfo "An initial build of docs is absent of references to statsmodels"
+ einfo "due to circular dependency. To have them included, emerge"
+ einfo "statsmodels next and re-emerge pandas with USE doc"
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck
+ optfeature "accelerating certain numerical operations, using multiple cores as well as smart chunking and caching to achieve large speedups" ">=dev-python/numexpr-2.1"
+ optfeature "needed for pandas.io.html.read_html" dev-python/beautifulsoup4 dev-python/html5lib dev-python/lxml
+ optfeature "for msgpack compression using blosc" dev-python/blosc
+ optfeature "Template engine for conditional HTML formatting" dev-python/jinja
+ optfeature "Plotting support" dev-python/matplotlib
+ optfeature "Needed for Excel I/O" ">=dev-python/openpyxl-3.0.0" dev-python/xlsxwriter dev-python/xlrd dev-python/xlwt
+ optfeature "necessary for HDF5-based storage" ">=dev-python/pytables-3.2.1"
+ optfeature "R I/O support" dev-python/rpy
+ optfeature "Needed for parts of pandas.stats" dev-python/statsmodels
+ optfeature "SQL database support" ">=dev-python/sqlalchemy-1.3.0"
+ optfeature "miscellaneous statistical functions" dev-python/scipy
+ optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/PyQt5 dev-python/pygtk x11-misc/xclip x11-misc/xsel
+}
diff --git a/dev-python/patsy/patsy-0.5.3-r1.ebuild b/dev-python/patsy/patsy-0.5.3-r1.ebuild
new file mode 100644
index 000000000000..6738a14a9037
--- /dev/null
+++ b/dev-python/patsy/patsy-0.5.3-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+DESCRIPTION="Python module to describe statistical models and design matrices"
+HOMEPAGE="https://patsy.readthedocs.io/en/latest/index.html"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ !hppa? ( dev-python/scipy[${PYTHON_USEDEP}] )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index d5a6ba8ede69..0f05c82f3264 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1 +1,2 @@
DIST python-phonenumbers-8.12.56.gh.tar.gz 4906531 BLAKE2B d55d828a26bc3a86660b6341c9577de6f489d3511971c5a843f10c14c05f0c82340109f13cc86c261119d6598ade95c2c3c9afdea485b09f3f73be891ee2a16e SHA512 675cf8d15536efd156a230cff9e027cdba718a32ca2facb493b235f39dc1a0c86f6a376d3d501690b25a5e52d6d411309626b8ecce9a065456e42774da04ea49
+DIST python-phonenumbers-8.12.57.gh.tar.gz 4906700 BLAKE2B b755e6e27c3006ce2b72f8e8900937ac2b7d2bd464052cd9a788ba5cdbd08ead4628963ea794a5dee962531753f6674342a3eed092edfb421c1d8f203d90b2b3 SHA512 8da340dd88c4bd41fd18af264667211e7d9dea97dcb71306c901feb3f32ee7a7012dfa1a66b8ddac746ceaab972529c32d9fc19e331893296f9938c7249173ba
diff --git a/dev-python/phonenumbers/phonenumbers-8.12.57.ebuild b/dev-python/phonenumbers/phonenumbers-8.12.57.ebuild
new file mode 100644
index 000000000000..9767e4c2d82d
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-8.12.57.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
+
+MY_P=python-${P}
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="
+ https://github.com/daviddrysdale/python-phonenumbers/
+ https://pypi.org/project/phonenumbers/
+"
+SRC_URI="
+ https://github.com/daviddrysdale/python-phonenumbers/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/python
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/protobuf-python[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( ../README.md )
+
+python_test() {
+ "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index ba278b37f79f..ac812bcd116c 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -1,3 +1,4 @@
DIST psycopg-3.1.2.gh.tar.gz 467017 BLAKE2B 5e13156ff05a356bb59ebae77e8ad3d3e35ab669a43102fa7751927e0ecfbebd1b30db7d62bd0865f426c2e6362a98a6d9cad19c9001abf29b6d030b4dd0204b SHA512 3e412ec91a337012086b1260527b2179883f6b44a26c5e8437c92351ca39594c4430f251abdfbc52e4b2c69d5e91ba09883578b177e836691cd295b6e8464fdf
DIST psycopg-3.1.3.gh.tar.gz 468400 BLAKE2B 5df0414d1afef4a09a319453e2d9cebd6177af507c30e69aac64dc1d476cf7a0d182c72b81e46d95e3167ee503fa9756ba82ad1092419eea0d6fc3c6e9ba972c SHA512 83ca6dc81cff841c9e22ad8ae86500be0012ee0edbc50b8ab97dcdcbe9d17a8b32feb637275bbaef8333f252aeb961fc5f1f9d2c66dcb1e92b0a1b67223624fb
DIST psycopg2-2.9.3.tar.gz 380611 BLAKE2B 78099da7378dcfa8b7f28aae4d533a7e890cdb7ae4c0cc718a9411e630fd07b56f074760fc29de8fe08fe727328cca39414a5f297fb92ed2f7471a24e633d18d SHA512 048184d1d162a371fc0fba711448a6fa8a6aac193421f4484c7f7b91c39065d5b632fa34fc15a901eca055d597302b1f9e38330b248ed0e4653dcdc544b0d660
+DIST psycopg2-2.9.4.tar.gz 384017 BLAKE2B 4bc0afcc890c8a257c1ccd5c6e4e5301857a80f8b1428aa46c1473c9e18f5d2914a2e592c13336b06106217bb334d9b0321835bdd123f1627cbeb29dedf97bf7 SHA512 259088e42e0ab0d8a1a0ccf04f5e560f32c6179b4a0a0059e91bcf269baa8f4b0f1f949c332c640a2438c927a29b2c144078a861f8e18ba9c764da7c93c73b8d
diff --git a/dev-python/psycopg/psycopg-2.9.4.ebuild b/dev-python/psycopg/psycopg-2.9.4.ebuild
new file mode 100644
index 000000000000..c1ed96baddd0
--- /dev/null
+++ b/dev-python/psycopg/psycopg-2.9.4.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+MY_PN="${PN}2"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="https://www.psycopg.org https://pypi.org/project/psycopg2/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-3+"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=dev-db/postgresql-8.1:*"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ test? ( >=dev-db/postgresql-8.1[server] )
+"
+
+python_prepare_all() {
+ if use debug; then
+ sed -i 's/^\(define=\)/\1PSYCOPG_DEBUG,/' setup.cfg || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ initdb -D "${T}"/pgsql || die
+ # TODO: random port
+ pg_ctl -w -D "${T}"/pgsql start \
+ -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" psycopg2_test || die
+
+ local -x PSYCOPG2_TESTDB_HOST="${T}"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ "${EPYTHON}" -c "
+import tests
+tests.unittest.main(defaultTest='tests.test_suite')
+" --verbose || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pygobject/Manifest b/dev-python/pygobject/Manifest
index 4ce0bee6bd04..feaa06b9d9c3 100644
--- a/dev-python/pygobject/Manifest
+++ b/dev-python/pygobject/Manifest
@@ -1,2 +1 @@
-DIST pygobject-3.42.1.tar.xz 557904 BLAKE2B 5264c1b187210622548203e0df5089262ea0b3e93d9e46679030b4722e74f1993f200cfe9357c389357902bcdfdb13c8fd9cc9d6efa3b5fa0f730c3b54017fe5 SHA512 b044d395f8334057be632fd56f670ae8405d9fc375bcbd7a0a3b2dcfb8efb06bad45e62e92d2ee5432e503642dba11d6f9bf91f26bf135fa5f9a871657105a18
DIST pygobject-3.42.2.tar.xz 558724 BLAKE2B 3e98cf52e818eff42beb8b6120ee8eb4cbe3a6f49670d355e1081b71d411bc93fc701cc37108a321cfcc19698c39b8b61cce5a9369d871da58fd2a2c0455fb96 SHA512 eb604f839e0702e8aeff0f19665e44c05c56cae02ce892e9ab8a95ddb0d5d0216182d0c9a0059fc8e05990c0d5707f2f7456d8924bbfb95ce1d9a42908ac0119
diff --git a/dev-python/pygobject/pygobject-3.42.1.ebuild b/dev-python/pygobject/pygobject-3.42.1.ebuild
deleted file mode 100644
index 6ba492bd8f28..000000000000
--- a/dev-python/pygobject/pygobject-3.42.1.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-
-inherit gnome.org meson python-r1 virtualx xdg
-
-DESCRIPTION="Python bindings for GObject Introspection"
-HOMEPAGE="https://pygobject.readthedocs.io/"
-
-LICENSE="LGPL-2.1+"
-SLOT="3"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-IUSE="+cairo examples test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="${PYTHON_DEPS}
- >=dev-libs/glib-2.56:2
- >=dev-libs/gobject-introspection-1.56:=
- dev-libs/libffi:=
- cairo? (
- >=dev-python/pycairo-1.16.0[${PYTHON_USEDEP}]
- x11-libs/cairo[glib] )
-"
-DEPEND="${RDEPEND}
- test? (
- dev-libs/atk[introspection]
- dev-python/pytest[${PYTHON_USEDEP}]
- x11-libs/gdk-pixbuf:2[introspection,jpeg]
- x11-libs/gtk+:3[introspection]
- x11-libs/pango[introspection]
- )
-"
-BDEPEND="
- virtual/pkgconfig
-"
-
-src_configure() {
- configuring() {
- meson_src_configure \
- $(meson_feature cairo pycairo) \
- $(meson_use test tests) \
- -Dpython="${EPYTHON}"
- }
-
- python_foreach_impl configuring
-}
-
-src_compile() {
- python_foreach_impl meson_src_compile
-}
-
-src_test() {
- local -x GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
- local -x GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
-
- testing() {
- local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
- meson_src_test --timeout-multiplier 3 || die "test failed for ${EPYTHON}"
- }
- virtx python_foreach_impl testing
-}
-
-src_install() {
- installing() {
- meson_src_install
- python_optimize
- }
- python_foreach_impl installing
- use examples && dodoc -r examples
-}
diff --git a/dev-python/pymysql/Manifest b/dev-python/pymysql/Manifest
index ef0f0ed67ad1..fa3a304e1d73 100644
--- a/dev-python/pymysql/Manifest
+++ b/dev-python/pymysql/Manifest
@@ -1 +1,2 @@
+DIST pymysql-1.0.2.gh.tar.gz 84985 BLAKE2B f2b740827cfa9a4a9cdfe9d711e78d61c2cac2afbc2f15ecc3e317a7fff7771d3d79b8d963e085f011123029341edd469514d84be8cdc5e9aa143cd0fa2caae5 SHA512 c98633c465705154c0607f4508e4d19986fafb647eac01832f8e3fb0175565958289518f9632897ffba924406fce00881a351dbae05c7d68a55eec2b86a55638
DIST pymysql-1.0.2.tar.gz 84985 BLAKE2B f2b740827cfa9a4a9cdfe9d711e78d61c2cac2afbc2f15ecc3e317a7fff7771d3d79b8d963e085f011123029341edd469514d84be8cdc5e9aa143cd0fa2caae5 SHA512 c98633c465705154c0607f4508e4d19986fafb647eac01832f8e3fb0175565958289518f9632897ffba924406fce00881a351dbae05c7d68a55eec2b86a55638
diff --git a/dev-python/pymysql/pymysql-1.0.2-r1.ebuild b/dev-python/pymysql/pymysql-1.0.2-r1.ebuild
new file mode 100644
index 000000000000..bbe6e632f2a3
--- /dev/null
+++ b/dev-python/pymysql/pymysql-1.0.2-r1.ebuild
@@ -0,0 +1,150 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+MY_PN="PyMySQL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pure-Python MySQL Driver"
+HOMEPAGE="https://github.com/PyMySQL/PyMySQL"
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# TODO: support other mysql variants
+BDEPEND="
+ test? (
+ dev-db/mariadb[server]
+ )"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # Auth tests don't support socket auth
+ find tests/ -name '*_auth.py' -delete || die
+
+ distutils-r1_src_prepare
+}
+
+src_test() {
+ if [[ -z "${USER}" ]] ; then
+ # Tests require system user
+ local -x USER="$(whoami)"
+ einfo "USER set to '${USER}'"
+ fi
+
+ local mysql_install_db_cmd="${EPREFIX}/usr/share/mariadb/scripts/mysql_install_db"
+ [[ ! -x "${mysql_install_db_cmd}" ]] && mysql_install_db_cmd="${EPREFIX}/usr/bin/mysql_install_db"
+ [[ ! -x "${mysql_install_db_cmd}" ]] && die "mysql_install_db command not found!"
+
+ local mysqld_cmd="${EPREFIX}/usr/sbin/mysqld"
+ [[ ! -x "${mysqld_cmd}" ]] && die "mysqld command not found!"
+
+ local PIDFILE="${T}/mysqld.pid"
+ if pkill -0 -F "${PIDFILE}" &>/dev/null ; then
+ einfo "Killing already running mysqld process ..."
+ pkill -F "${PIDFILE}"
+ fi
+
+ if [[ -d "${T}/mysql" ]] ; then
+ einfo "Removing already existing mysqld data dir ..."
+ rm -rf "${T}/mysql" || die
+ fi
+
+ einfo "Creating mysql test instance ..."
+ mkdir -p "${T}"/mysql || die
+ "${mysql_install_db_cmd}" \
+ --no-defaults \
+ --auth-root-authentication-method=normal \
+ --basedir="${EPREFIX}/usr" \
+ --datadir="${T}"/mysql 1>"${T}"/mysqld_install.log \
+ || die
+
+ einfo "Starting mysql test instance ..."
+ # TODO: random port
+ "${mysqld_cmd}" \
+ --no-defaults \
+ --character-set-server=utf8 \
+ --bind-address=127.0.0.1 \
+ --port=43306 \
+ --pid-file="${T}"/mysqld.pid \
+ --socket="${T}"/mysqld.sock \
+ --datadir="${T}"/mysql 1>"${T}"/mysqld.log 2>&1 &
+
+ # wait for it to start
+ local i
+ for (( i = 0; i < 10; i++)); do
+ [[ -S ${T}/mysqld.sock ]] && break
+ sleep 1
+ done
+ [[ -S ${T}/mysqld.sock ]] || die "mysqld failed to start"
+
+ einfo "Configuring test mysql instance ..."
+
+ # create test user for auth tests
+ mysql -uroot --socket="${T}"/mysqld.sock -s -e '
+ INSTALL SONAME "auth_ed25519";
+ CREATE FUNCTION ed25519_password RETURNS STRING SONAME "auth_ed25519.so";
+ ' || die "Failed to set up auth_ed25519"
+
+ mysql -uroot --socket="${T}"/mysqld.sock -s -e "
+ SELECT CONCAT('CREATE USER nopass_ed25519 IDENTIFIED VIA ed25519 USING \"',ed25519_password(\"\"),'\";');
+ SELECT CONCAT('CREATE USER user_ed25519 IDENTIFIED VIA ed25519 USING \"',ed25519_password(\"pass_ed25519\"),'\";');
+ " || die "Failed to create ed25519 test users"
+
+ # create test databases
+ mysql -uroot --socket="${T}"/mysqld.sock -s -e '
+ create database test1 DEFAULT CHARACTER SET utf8mb4;
+ create database test2 DEFAULT CHARACTER SET utf8mb4;
+
+ create user test2 identified by "some password";
+ grant all on test2.* to test2;
+
+ create user test2@localhost identified by "some password";
+ grant all on test2.* to test2@localhost;
+ ' || die "Failed to create test databases"
+
+ cat > pymysql/tests/databases.json <<-EOF || die
+ [{
+ "host": "localhost",
+ "user": "root",
+ "password": "",
+ "database": "test1",
+ "use_unicode": true,
+ "local_infile": true,
+ "unix_socket": "${T}/mysqld.sock"
+ }, {
+ "host": "localhost",
+ "user": "root",
+ "password": "",
+ "database": "test2",
+ "unix_socket": "${T}/mysqld.sock"
+ }]
+ EOF
+
+ distutils-r1_src_test
+
+ if pkill -0 -F "${PIDFILE}" &>/dev/null ; then
+ einfo "Stopping mysql test instance ..."
+ pkill -F "${PIDFILE}"
+ fi
+}
+
+python_test() {
+ local excludes=(
+ # requires some dialog plugin
+ pymysql/tests/test_connection.py::TestAuthentication::testDialogAuthThreeAttemptsQuestionsInstallPlugin
+ pymysql/tests/test_connection.py::TestAuthentication::testDialogAuthTwoQuestionsInstallPlugin
+ )
+
+ PYTHONPATH=. pytest -vv ${excludes[@]/#/--deselect } ||
+ die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest
index f756e95a089a..f753a4ee3c2d 100644
--- a/dev-python/setuptools/Manifest
+++ b/dev-python/setuptools/Manifest
@@ -1,2 +1,3 @@
DIST setuptools-65.3.0.tar.gz 2615722 BLAKE2B 1344fe17c1c2a4ec60dbf37b3e1cbad56bb5299bed9f8e30a21015f2457e1e90d6782369dfc2d804973e7348d22a356ec0ef75d1aeabba7d77e20e5ddf36e576 SHA512 3c173b1e1a8dbbed0bf3bf600df1256aeabf1b9dec34d5f5d0b1429b0fe16f2aa61fa6c4f400a5b6da24b9d679954866b76e019130bcf2246b138fe017025de9
DIST setuptools-65.4.1.tar.gz 2615710 BLAKE2B 12e644412c7f910a8bf6fb470e0c7e78bcd11a9403d7d0821eecad156d0a4ed03751de6bd6c51ebc2ce1c0925386120971c0da129ebd7e1b8376feee1f8edc7e SHA512 d13253bb556380b1b45d4b51dc7922b0cffa390ba92d97ccbc43c314aceccdcf51ee8b5c751cf6f36c6c8955836bc248214d55fe7419ff0332719862772f0f95
+DIST setuptools-65.5.0.tar.gz 2616463 BLAKE2B b2f4ea3750a6ebd2d83a99e2c6beaccebf2c167dac23c901937fecb3fff9891c8c2cf4f150281c00656d2057c89ede80a7b47c73c783b268c91a3700426fd66d SHA512 5f65765a2971662ef4864473d7b54d7d5357fba2b6e9369f1b7923ef5466463852a714e6ee0b6581835c1524069cdfefd907cc65681c7f2b73c6ef278bff6228
diff --git a/dev-python/setuptools/setuptools-65.5.0.ebuild b/dev-python/setuptools/setuptools-65.5.0.ebuild
new file mode 100644
index 000000000000..7460575c4f20
--- /dev/null
+++ b/dev-python/setuptools/setuptools-65.5.0.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 7 -- sys-apps/portage dep
+EAPI=7
+
+# please bump dev-python/ensurepip-setuptools along with this package!
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{7,8,9,10} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="
+ https://github.com/pypa/setuptools/
+ https://pypi.org/project/setuptools/
+"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/appdirs-1.4.4-r2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/nspektr-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/ordered-set-4.0.2-r1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21.3-r2[${PYTHON_USEDEP}]
+ >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/importlib_metadata-4.11.1[${PYTHON_USEDEP}]
+ ' 3.8 3.9)
+ $(python_gen_cond_dep '
+ >=dev-python/importlib_resources-5.4.0-r3[${PYTHON_USEDEP}]
+ ' 3.8)
+"
+BDEPEND="
+ ${RDEPEND}
+ >=dev-python/wheel-0.37.1-r1[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/build[${PYTHON_USEDEP}]
+ >=dev-python/ini2toml-0.9[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pip-run[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-fixture-config[${PYTHON_USEDEP}]
+ dev-python/pytest-virtualenv[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+PDEPEND="
+ >=dev-python/certifi-2016.9.26[${PYTHON_USEDEP}]
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+"
+
+DOCS=( {CHANGES,README}.rst )
+
+src_prepare() {
+ local PATCHES=(
+ # TODO: remove this when we're 100% PEP517 mode
+ "${FILESDIR}"/setuptools-62.4.0-py-compile.patch
+ )
+
+ # remove bundled dependencies, setuptools will switch to system deps
+ # automatically
+ rm -r */_vendor || die
+
+ # remove the ugly */extern hack that breaks on unvendored deps
+ rm -r */extern || die
+ find -name '*.py' -exec sed \
+ -e 's:from \w*[.]\+extern ::' -e 's:\w*[.]\+extern[.]::' \
+ -i {} + || die
+
+ distutils-r1_src_prepare
+
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+}
+
+python_test() {
+ local -x SETUPTOOLS_USE_DISTUTILS=stdlib
+
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # network
+ # TODO: see if PRE_BUILT_SETUPTOOLS_* helps
+ setuptools/tests/config/test_apply_pyprojecttoml.py::test_apply_pyproject_equivalent_to_setupcfg
+ setuptools/tests/integration/test_pip_install_sdist.py::test_install_sdist
+ setuptools/tests/test_build_meta.py::test_legacy_editable_install
+ setuptools/tests/test_distutils_adoption.py
+ setuptools/tests/test_editable_install.py
+ setuptools/tests/test_setuptools.py::test_its_own_wheel_does_not_contain_tests
+ setuptools/tests/test_virtualenv.py::test_clean_env_install
+ setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
+ setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
+ # TODO
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
+ setuptools/tests/test_extern.py::test_distribution_picklable
+ # expects bundled deps in virtualenv
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
+ setuptools/tests/test_editable_install.py::test_editable_with_pyproject
+ )
+
+ epytest -n "$(makeopts_jobs)" setuptools
+}
diff --git a/dev-python/sqlalchemy/sqlalchemy-1.4.41.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.4.41.ebuild
index 2e4371ec5005..871cc214aec5 100644
--- a/dev-python/sqlalchemy/sqlalchemy-1.4.41.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-1.4.41.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="examples +sqlite test"
BDEPEND="
diff --git a/dev-python/termcolor/termcolor-2.0.0.ebuild b/dev-python/termcolor/termcolor-2.0.0.ebuild
index bec8b08bdf06..d5ef5a05c471 100644
--- a/dev-python/termcolor/termcolor-2.0.0.ebuild
+++ b/dev-python/termcolor/termcolor-2.0.0.ebuild
@@ -17,7 +17,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/xarray/xarray-2022.10.0-r1.ebuild b/dev-python/xarray/xarray-2022.10.0-r1.ebuild
new file mode 100644
index 000000000000..9e7be7eae6e0
--- /dev/null
+++ b/dev-python/xarray/xarray-2022.10.0-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} )
+
+inherit distutils-r1
+
+DESCRIPTION="N-D labeled arrays and datasets in Python"
+HOMEPAGE="https://xarray.pydata.org/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/numpy-1.22[${PYTHON_USEDEP}]
+ >=dev-python/pandas-1.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21.0[${PYTHON_USEDEP}]
+"
+# note: most of the test dependencies are optional
+BDEPEND="
+ test? (
+ dev-python/bottleneck[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/toolz[${PYTHON_USEDEP}]
+ !hppa? ( >=dev-python/scipy-1.4[${PYTHON_USEDEP}] )
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # warning-targeted tests are fragile and not important to end users
+ xarray/tests/test_backends.py::test_no_warning_from_dask_effective_get
+)