summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-05-30 01:35:11 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-05-30 01:35:11 +0000
commit025c782a4bdec0ec856ba222ee5bfadc7df0ce6b (patch)
treec480c0f12369766e118db89081d5e7e85b230363 /dev-python
parentbf3a5cadeb3170a4a07abd84c9f838133d5b889d (diff)
downloadbaldeagleos-repo-025c782a4bdec0ec856ba222ee5bfadc7df0ce6b.tar.gz
baldeagleos-repo-025c782a4bdec0ec856ba222ee5bfadc7df0ce6b.tar.xz
baldeagleos-repo-025c782a4bdec0ec856ba222ee5bfadc7df0ce6b.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/PyQt5-sip/Manifest1
-rw-r--r--dev-python/PyQt5-sip/PyQt5-sip-4.19.24.ebuild90
-rw-r--r--dev-python/beautifulsoup/beautifulsoup-4.9.3.ebuild2
-rw-r--r--dev-python/distlib/Manifest1
-rw-r--r--dev-python/distlib/distlib-0.3.2.ebuild56
-rw-r--r--dev-python/distlib/files/distlib-0.3.2-py310.patch29
-rw-r--r--dev-python/distlib/files/distlib-0.3.2-system-pypiserver.py24
-rw-r--r--dev-python/docopt/docopt-0.6.2-r3.ebuild2
-rw-r--r--dev-python/flufl-i18n/Manifest1
-rw-r--r--dev-python/flufl-i18n/flufl-i18n-3.2.ebuild37
-rw-r--r--dev-python/flufl-lock/Manifest1
-rw-r--r--dev-python/flufl-lock/flufl-lock-5.1.ebuild38
-rw-r--r--dev-python/humanize/Manifest1
-rw-r--r--dev-python/humanize/humanize-3.6.0.ebuild24
-rw-r--r--dev-python/idna/Manifest1
-rw-r--r--dev-python/idna/idna-3.2.ebuild18
-rw-r--r--dev-python/nltk/files/nltk-3.6.2-metadata.patch38
-rw-r--r--dev-python/nltk/nltk-3.6.2-r1.ebuild (renamed from dev-python/nltk/nltk-3.6.2.ebuild)4
-rw-r--r--dev-python/openpyxl/files/openpyxl-3.0.7-metadata.patch12
-rw-r--r--dev-python/openpyxl/openpyxl-3.0.7-r1.ebuild (renamed from dev-python/openpyxl/openpyxl-3.0.7.ebuild)4
-rw-r--r--dev-python/pyatspi/pyatspi-2.38.1.ebuild2
-rw-r--r--dev-python/pygobject/pygobject-3.40.1.ebuild2
-rw-r--r--dev-python/pytest-subtests/Manifest1
-rw-r--r--dev-python/pytest-subtests/pytest-subtests-0.5.0.ebuild36
-rw-r--r--dev-python/sip/Manifest1
-rw-r--r--dev-python/sip/sip-4.19.24.ebuild94
-rw-r--r--dev-python/soupsieve/soupsieve-2.2.1.ebuild2
-rw-r--r--dev-python/sqlalchemy/Manifest1
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-1.4.17.ebuild66
-rw-r--r--dev-python/symengine/files/symengine-0.7.2-metadata.patch68
-rw-r--r--dev-python/symengine/symengine-0.7.2-r2.ebuild (renamed from dev-python/symengine/symengine-0.7.2-r1.ebuild)4
31 files changed, 470 insertions, 191 deletions
diff --git a/dev-python/PyQt5-sip/Manifest b/dev-python/PyQt5-sip/Manifest
index b115206796da..f8e60d534622 100644
--- a/dev-python/PyQt5-sip/Manifest
+++ b/dev-python/PyQt5-sip/Manifest
@@ -1,2 +1 @@
-DIST sip-4.19.24.tar.gz 1055461 BLAKE2B 6990b127a83fa57bc084eb9a1097f73c384b4fcf3d181479557fe2ffc66cde254bfbb5aef26f5ddd84dca346f54184952e7a111adf3b665f68571853e63b6575 SHA512 c9acf8c66da6ff24ffaeed254c11deabbc587cea0eb50164f2016199af30b85980f96a2d754ae5e7fe080f9076673b1abc82e2a6a41ff2ac442fb2b326fca1c0
DIST sip-4.19.25.tar.gz 1056384 BLAKE2B f92e105e6b30e871aea2883dc9cd459e4032fb139a9eaff153a3412a66b39df4d7ac985711a2693aee83195ff3850ae648bee4102f7fc3cc30d09885799f2b98 SHA512 60fb4133c68869bf0993144978b4847d94a0f9c7b477f64a346ea133cfe35bc11820204ab327dcf9a929b6f65a26d16cc7efbce65e49967c3347b39376e57001
diff --git a/dev-python/PyQt5-sip/PyQt5-sip-4.19.24.ebuild b/dev-python/PyQt5-sip/PyQt5-sip-4.19.24.ebuild
deleted file mode 100644
index ded79f1c20f2..000000000000
--- a/dev-python/PyQt5-sip/PyQt5-sip-4.19.24.ebuild
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-inherit python-r1 toolchain-funcs
-
-DESCRIPTION="Private sip module for PyQt5"
-HOMEPAGE="https://www.riverbankcomputing.com/software/sip/intro"
-
-MY_PN=sip
-MY_P=${MY_PN}-${PV/_pre/.dev}
-if [[ ${PV} == *_pre* ]]; then
- SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.gz"
-else
- SRC_URI="https://www.riverbankcomputing.com/static/Downloads/${MY_PN}/${PV}/${MY_P}.tar.gz"
-fi
-
-# Sub-slot based on SIP_API_MAJOR_NR from siplib/sip.h
-SLOT="0/12"
-LICENSE="|| ( GPL-2 GPL-3 SIP )"
-KEYWORDS="amd64 arm arm64 ~ppc ~ppc64 x86"
-IUSE=""
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-DEPEND="${PYTHON_DEPS}"
-RDEPEND="${DEPEND}
- !<dev-python/PyQt5-5.12.2
-"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- # Sub-slot sanity check
- local sub_slot=${SLOT#*/}
- local sip_api_major_nr=$(sed -nre 's:^#define SIP_API_MAJOR_NR\s+([0-9]+):\1:p' siplib/sip.h || die)
- if [[ ${sub_slot} != ${sip_api_major_nr} ]]; then
- eerror
- eerror "Ebuild sub-slot (${sub_slot}) does not match SIP_API_MAJOR_NR (${sip_api_major_nr})"
- eerror "Please update SLOT variable as follows:"
- eerror " SLOT=\"${SLOT%%/*}/${sip_api_major_nr}\""
- eerror
- die "sub-slot sanity check failed"
- fi
-
- default
-}
-
-src_configure() {
- configuration() {
- local myconf=(
- "${PYTHON}"
- "${S}"/configure.py
- --sip-module PyQt5.sip
- --sysroot="${ESYSROOT}/usr"
- --no-tools
- AR="$(tc-getAR) cqs"
- CC="$(tc-getCC)"
- CFLAGS="${CFLAGS}"
- CFLAGS_RELEASE=
- CXX="$(tc-getCXX)"
- CXXFLAGS="${CXXFLAGS}"
- CXXFLAGS_RELEASE=
- LINK="$(tc-getCXX)"
- LINK_SHLIB="$(tc-getCXX)"
- LFLAGS="${LDFLAGS}"
- LFLAGS_RELEASE=
- RANLIB=
- STRIP=
- )
- echo "${myconf[@]}"
- "${myconf[@]}" || die
- }
- python_foreach_impl run_in_build_dir configuration
-}
-
-src_compile() {
- python_foreach_impl run_in_build_dir default
-}
-
-src_install() {
- installation() {
- emake DESTDIR="${D}" install
- }
- python_foreach_impl run_in_build_dir installation
-
- einstalldocs
-}
diff --git a/dev-python/beautifulsoup/beautifulsoup-4.9.3.ebuild b/dev-python/beautifulsoup/beautifulsoup-4.9.3.ebuild
index 462be9137124..4682a1d2a2f9 100644
--- a/dev-python/beautifulsoup/beautifulsoup-4.9.3.ebuild
+++ b/dev-python/beautifulsoup/beautifulsoup-4.9.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
diff --git a/dev-python/distlib/Manifest b/dev-python/distlib/Manifest
index 72f3a583cc10..04e1bb52bd12 100644
--- a/dev-python/distlib/Manifest
+++ b/dev-python/distlib/Manifest
@@ -1 +1,2 @@
DIST distlib-0.3.1.tar.bz2 1068500 BLAKE2B 52135869242f71cc6d6887da6d9e20ffc6b46c84d8146393961062d92d8c0bd68e1309277f64fdec0319ff3c503b1caaba3d5378f5c081dca79573c8d9c2e6f2 SHA512 f259299176c45be7024b80759015a2fad120ffdde55b6abea0f7fb0335cee90809b5daedcb88abdfb68fd496284b2e478df622004b3750327bfc86807581116c
+DIST distlib-0.3.2.tar.bz2 1075843 BLAKE2B 3595dc6af53beb7ff7dc49013e6c3db3453b501b56790a953c2cfea5a73aaca71fc69de68c8121ae92ffafd32a70ffa69d768cfd42844135fd5bd6647611e090 SHA512 e033ff2ff6b760f698a20103e01d63fa87bc1839bbf44fce252284c793e10a057dac645d818a4e0a2aa8be97bb85fcf9c8706b2399c505f12a093024d11be578
diff --git a/dev-python/distlib/distlib-0.3.2.ebuild b/dev-python/distlib/distlib-0.3.2.ebuild
new file mode 100644
index 000000000000..d2854381d45c
--- /dev/null
+++ b/dev-python/distlib/distlib-0.3.2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_SETUPTOOLS=no
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Low-level components of distutils2/packaging"
+HOMEPAGE="https://pypi.org/project/distlib/
+ https://bitbucket.org/pypa/distlib/"
+# pypi has zip only :-(
+SRC_URI="
+ https://bitbucket.org/pypa/distlib/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="test"
+# This package's tests are extremely fragile and tend to break or hang
+# when it doesn't like metadata of packages installed on the system.
+RESTRICT="test"
+
+# pypiserver is called as external executable
+# openpyxl installs invalid metadata that breaks distlib
+BDEPEND="
+ test? (
+ dev-python/pypiserver
+ !!<dev-python/openpyxl-3.0.3[${PYTHON_USEDEP}]
+ )"
+
+src_prepare() {
+ # make sure they're not used
+ rm -r tests/unittest2 || die
+ rm tests/pypi-server-standalone.py || die
+
+ # use system pypiserver instead of broken bundled one
+ eapply "${FILESDIR}"/distlib-0.3.2-system-pypiserver.py || die
+ # fix tests for py310
+ eapply "${FILESDIR}"/${P}-py310.patch
+
+ # doesn't work with our patched pip
+ sed -e '/PIP_AVAIL/s:True:False:' \
+ -i tests/test_wheel.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x SKIP_ONLINE=1
+ local -x PYTHONHASHSEED=0
+ "${EPYTHON}" tests/test_all.py -v -x ||
+ die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/distlib/files/distlib-0.3.2-py310.patch b/dev-python/distlib/files/distlib-0.3.2-py310.patch
new file mode 100644
index 000000000000..23c3dbbe0274
--- /dev/null
+++ b/dev-python/distlib/files/distlib-0.3.2-py310.patch
@@ -0,0 +1,29 @@
+From 5a9540cf58fc020b0c6a1d5c23b9b93d1abd2eb0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 29 May 2021 22:08:57 +0200
+Subject: [PATCH] Fix test_is_compatible to fix Python 3.10 support
+
+On Python 3.10, PYVER is py310 which wrongly matches the original
+'py27' <= PYVER < 'py32' condition. Replace it with explicit match
+against known Python versions in this range. This is probably
+the simplest and the most future-proof solution to the problem at hand.
+---
+ tests/test_wheel.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_wheel.py b/tests/test_wheel.py
+index 849e7c1..7c8f5ee 100644
+--- a/tests/test_wheel.py
++++ b/tests/test_wheel.py
+@@ -206,7 +206,7 @@ class WheelTestCase(DistlibTestCase):
+
+ def test_is_compatible(self):
+ fn = os.path.join(HERE, 'dummy-0.1-py27-none-any.whl')
+- if 'py27' <= PYVER < 'py32':
++ if PYVER in ('py27', 'py30', 'py31'):
+ self.assertTrue(is_compatible(fn))
+ self.assertTrue(Wheel(fn).is_compatible())
+ # use actual wheel names from PyPI.
+--
+2.31.1
+
diff --git a/dev-python/distlib/files/distlib-0.3.2-system-pypiserver.py b/dev-python/distlib/files/distlib-0.3.2-system-pypiserver.py
new file mode 100644
index 000000000000..386ad05da578
--- /dev/null
+++ b/dev-python/distlib/files/distlib-0.3.2-system-pypiserver.py
@@ -0,0 +1,24 @@
+diff -dupr a/tests/test_index.py b/tests/test_index.py
+--- a/tests/test_index.py 2021-05-29 17:42:08.015558305 +0200
++++ b/tests/test_index.py 2021-05-29 17:42:56.949966576 +0200
+@@ -57,11 +57,6 @@ class PackageIndexTestCase(DistlibTestCa
+ def setUpClass(cls):
+ if cls.run_test_server:
+ cls.server = None
+- server_script = os.path.join(HERE, 'pypi-server-standalone.py')
+- if not os.path.exists(server_script):
+- logger.debug('test server not available - some tests '
+- 'will be skipped.')
+- return
+ pwdfn = os.path.join(HERE, 'passwords')
+ if not os.path.exists(pwdfn): # pragma: no cover
+ with open(pwdfn, 'w') as f:
+@@ -72,7 +67,7 @@ class PackageIndexTestCase(DistlibTestCa
+ fd, cls.sinkfile = tempfile.mkstemp(suffix='.log', prefix='distlib-pypi-')
+ os.close(fd)
+ cls.sink = sink = open(cls.sinkfile, 'w')
+- cmd = [sys.executable, 'pypi-server-standalone.py',
++ cmd = ['pypi-server',
+ '--interface', '127.0.0.1', '--port', TEST_SERVER_PORT,
+ '-P', 'passwords', 'packages']
+ cls.server = subprocess.Popen(cmd, stdout=sink, stderr=sink,
diff --git a/dev-python/docopt/docopt-0.6.2-r3.ebuild b/dev-python/docopt/docopt-0.6.2-r3.ebuild
index 9a2d6df58a68..2e9225dcb80f 100644
--- a/dev-python/docopt/docopt-0.6.2-r3.ebuild
+++ b/dev-python/docopt/docopt-0.6.2-r3.ebuild
@@ -11,8 +11,8 @@ DESCRIPTION="Pythonic argument parser, that will make you smile"
HOMEPAGE="https://pypi.org/project/docopt/ https://github.com/docopt/docopt"
SRC_URI="https://github.com/docopt/docopt/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
-SLOT="0"
LICENSE="MIT"
+SLOT="0"
KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/flufl-i18n/Manifest b/dev-python/flufl-i18n/Manifest
index 8a694121f5d7..02925043d443 100644
--- a/dev-python/flufl-i18n/Manifest
+++ b/dev-python/flufl-i18n/Manifest
@@ -1,3 +1,4 @@
DIST flufl-i18n-2.0.2.tar.gz 19106 BLAKE2B 407f69708234e4c24403733c752ed79dfc0ff7d269a325c2d599ac00a0de077dfe63078fd050556f683008296885f397a59ea42b6d0692549856535166e63805 SHA512 05d9283bed456ee8d48704dc595f514e13b0c74096df177ed49bf178987baeee014ddc4331cc7d36edffbee1dcb58fcae152c2cb317b7ce73d9630864b98f1cd
DIST flufl.i18n-3.1.4.tar.gz 24058 BLAKE2B 1652ea9d0ff7b853298b3647da0fa4c692b9f227f42873194dcff00b119316f425012c534bbd5df87125517bf12cdd7a6d5eaa807f1bacf7c6c82967e8880adb SHA512 02de410e1ca911e2c452b5dd48868c8c409817b867c58dbebdda6aff6dfe4d09b2f7ac4c293cbc1306eb5caa17c1f5a63e9d8c0ee59e8e41058ce0a4517257ea
DIST flufl.i18n-3.1.5.tar.gz 24116 BLAKE2B 6fef2f6d1cca30ccd21d71fa4f6209fb01f14e576951ba7137326ca18184983adb4825b721f046dd85a39803630c3090d5a29cbda68cf4687aee620cf3afbc63 SHA512 16222e243bdc7527f040bff8e7492fafa15a7c49ef20218d4563a70b885fb497d3b4b7a8a008079b7ca6185fa640105062c0d5e26dfbd11922d7fcccd5c3b786
+DIST flufl.i18n-3.2.tar.gz 24209 BLAKE2B dc827eb4099670c6e5c39ebc8702fcda146b20a3978fa56108ab98a05d2c8911e705b71dacd6b9fc7fae9923d009487f6f047baa0dcd06a5de2e4f4d5fafc465 SHA512 07f329d026f24db623045f3c9857bcaacc1f0982066d4409fc060c4f712716044f96321a4e4909cbc85932f36fc76f71b9d118662ba837fd85b22754ce2d25c7
diff --git a/dev-python/flufl-i18n/flufl-i18n-3.2.ebuild b/dev-python/flufl-i18n/flufl-i18n-3.2.ebuild
new file mode 100644
index 000000000000..0f4e5677a2ca
--- /dev/null
+++ b/dev-python/flufl-i18n/flufl-i18n-3.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+inherit distutils-r1
+
+MY_P=${P/-/.}
+DESCRIPTION="A high level API for Python internationalization"
+HOMEPAGE="https://gitlab.com/warsaw/flufl.i18n"
+SRC_URI="mirror://pypi/${PN::1}/${PN/-/.}/${MY_P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/atpublic[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' python3_7)"
+BDEPEND="
+ test? ( dev-python/sybil[${PYTHON_USEDEP}] )"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e 's:--cov=flufl::' setup.cfg || die
+ distutils-r1_src_prepare
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ find "${D}" -name '*.pth' -delete || die
+}
diff --git a/dev-python/flufl-lock/Manifest b/dev-python/flufl-lock/Manifest
index a29d69437740..b8bf470792a5 100644
--- a/dev-python/flufl-lock/Manifest
+++ b/dev-python/flufl-lock/Manifest
@@ -1,3 +1,4 @@
DIST flufl-lock-5.0.1.tar.gz 27788 BLAKE2B 2651898e881719f24bc61e14f697877ca39f2747fadf52de1a5fc917b26e23001df5f0a4ea2e48271da69198e1a1336e69cc0167a4f46fddd21f464b355fa4ca SHA512 f937fb6c7f7bef2b85674225f83f3162f34db3fe2df3d9a896f772c4489c3e0611361e3d1d9efda7727112d780f31022d3045d3a3b8e78e9412aca2f2418ca24
DIST flufl.lock-5.0.4.tar.gz 29486 BLAKE2B 3fc6c3bfdac3c877c82f9f56e739342604be9f855a42a99bd06e5fb89fe8b3bc4cabd2e357e8e0992f7aa3f5ec7ea4a18e1f59a05beeeed7074a72440d3f6b9b SHA512 c08d8115c836f7523887d86539e9f11a2007913936fd8a4a116a610b648adf289fb086e8904b2163a6af7449e92a6edf9fad09fb770a34473768ffc4d8eb146e
DIST flufl.lock-5.0.5.tar.gz 29537 BLAKE2B 978581adb55ce468ed2dd0f84978234a54293ee7cda4517dcdda2a2fc3507c965c419424f6a6bdc8cccbc15b14ebb739ff02e0c00d427f4f92afc31f913d0201 SHA512 11d0dde6addd34fd3812b346d851692addee49e7a65620acae87da791051f89638036a652645cb7fe34edd786afe3112bf5efb3fe4aa36760e2054622b0c1c8e
+DIST flufl.lock-5.1.tar.gz 29652 BLAKE2B c5b5bbfb284945d2232e8183084e4f9b24518962e2b8bf229bfd10d2e0629f0d248daf8cae544cbf50ec24c57ff2744c3cae4a4de756bdbd11fe51e810ac2eb6 SHA512 fbfc28e4e34e47b92a5b4e6d1771bf2b53ee052947d2f05d3392c3db156c5d14632ad63e0ac5b2934b8dc00176f6ff5b5fe1ff87358056ab9d71c2bb7f2c0498
diff --git a/dev-python/flufl-lock/flufl-lock-5.1.ebuild b/dev-python/flufl-lock/flufl-lock-5.1.ebuild
new file mode 100644
index 000000000000..e2948e57ec3d
--- /dev/null
+++ b/dev-python/flufl-lock/flufl-lock-5.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+inherit distutils-r1
+
+MY_P=${P/-/.}
+DESCRIPTION="NFS-safe file locking with timeouts for POSIX systems"
+HOMEPAGE="https://gitlab.com/warsaw/flufl.lock"
+SRC_URI="mirror://pypi/${PN::1}/${PN/-/.}/${MY_P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/atpublic[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' python3_7)"
+BDEPEND="
+ test? ( dev-python/sybil[${PYTHON_USEDEP}] )"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e 's:--cov=flufl::' setup.cfg || die
+ distutils-r1_src_prepare
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ find "${D}" -name '*.pth' -delete || die
+}
diff --git a/dev-python/humanize/Manifest b/dev-python/humanize/Manifest
index 108137c04027..26d9f6fb7607 100644
--- a/dev-python/humanize/Manifest
+++ b/dev-python/humanize/Manifest
@@ -1,2 +1,3 @@
DIST humanize-3.4.1.tar.gz 56119 BLAKE2B 79f91e03b0c3ab1c645552ee3a0bf321e0ee620f5c0af827e44ba9995c9128638d1dc5cd80e4210de143ab55b39fb25e03abb4afaf5fa9a98973ef6c37d99b2d SHA512 d7e201717ee6b1065920faed3fa70f48c7b6acaf246a707126246d84f516fe7a14713bf4c488b18815907a0926b6cf505f106e15f17051f69756a50f50cea51b
DIST humanize-3.5.0.tar.gz 56651 BLAKE2B 05095fbdf7c55258bf3d01c73f47bf913e1fda3e6d8a2fcf666f4d70cfd6e437071140716b9f5b6a31c02c06da1d2df6f80d5d021c279d4f97f756f41f3c3bb3 SHA512 ca04d79533b08f1549cd530fec35352696b314d6d667476bf5506a482a4ff379fe6ae021a1f338aa6837877a90e57ce032cdc671b68be34dd52e0e41aad10170
+DIST humanize-3.6.0.tar.gz 62280 BLAKE2B 6472e332bbd4c8bd539b084889f280e56cb0b8fd3083c88b5f9fe313de734aa8876f6d9fb9b1ba3f9d6b110b5ee0d9af6881140c30fcf64c33364488f3c22033 SHA512 502ad941d9ff97677f9a6da7194ff2cddff6c4e852b84339a17eb13d71d34701b4c39c05607314a0d06c6634b5e5e12444bc97f0ae35d715611f8dac3eafe623
diff --git a/dev-python/humanize/humanize-3.6.0.ebuild b/dev-python/humanize/humanize-3.6.0.ebuild
new file mode 100644
index 000000000000..b799aae188ae
--- /dev/null
+++ b/dev-python/humanize/humanize-3.6.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Common humanization utilities"
+HOMEPAGE="https://github.com/jmoiron/humanize/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ test? ( dev-python/freezegun[${PYTHON_USEDEP}] )
+"
+
+distutils_enable_tests --install pytest
diff --git a/dev-python/idna/Manifest b/dev-python/idna/Manifest
index f17c09e45ce1..378dcfb56209 100644
--- a/dev-python/idna/Manifest
+++ b/dev-python/idna/Manifest
@@ -1,3 +1,4 @@
DIST idna-2.10.tar.gz 175616 BLAKE2B 2b109491a5751811e6e85244133a1c66b04b577441c250e600a9cb58511f4a0350f9dc386c64ce40464bf644c7434187c61e747c8e9a422443a740ebb766fe22 SHA512 83b412de2f79a4bc86fb4bdac7252521b9d84f0be54f4fb1bde1ee13a210bbfa4b1a98247affbc7921046fb117a591316c12694c1be72865767646554c5207ac
DIST idna-3.0.tar.gz 180786 BLAKE2B f802465ccad978600af0f6b2aeacf4fa56957ccb73625ba374663bebc5a507986589c54b7a81c7303fcb97f8fac11695fa6e159236d61e6e29c110b8a8a66143 SHA512 2ed384e75fb3d873a19c6ee49915a48a757b3617227015f92f5e21b130cf30816ce3abf25d9ffd8931e080e645416fb0551b1be18a2d0233e02bce2e4b6556f3
DIST idna-3.1.tar.gz 181601 BLAKE2B 1cacc2ad93de4e7f3e4faff72496dd17162a042558c6771d4ed39c68c33087633d6bdd141df3d4f867befde16acdfa82aeb0d70c36b1b1c62bbd0b3b446aed63 SHA512 23c02520d00a99855d552a9b9def529f0baeec7d27e8036c544dd654ade15243fd5c9e5ad02e73b83a9ca3bb335ab2584233d17345a6a5e6d5ac089e8ac81e8a
+DIST idna-3.2.tar.gz 243962 BLAKE2B c1c53533fd70a705822abf7debcb98d1cdc474df63eea22f0502585f9f2d143c4a35e575081951a8b98325e45ae5af46bba6632b04d40cb7181306e293377884 SHA512 2bc8e37abdc0570e5e13c9064f51630605806c3246a8d292511dad6f971610288212a2d881f9356ecb383f871e1477ccd60c4a5d6d7fd05254ff740d36543f35
diff --git a/dev-python/idna/idna-3.2.ebuild b/dev-python/idna/idna-3.2.ebuild
new file mode 100644
index 000000000000..aabee37a3a2b
--- /dev/null
+++ b/dev-python/idna/idna-3.2.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Internationalized Domain Names in Applications (IDNA)"
+HOMEPAGE="https://github.com/kjd/idna https://pypi.org/project/idna/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+distutils_enable_tests setup.py
diff --git a/dev-python/nltk/files/nltk-3.6.2-metadata.patch b/dev-python/nltk/files/nltk-3.6.2-metadata.patch
new file mode 100644
index 000000000000..32d4c183000b
--- /dev/null
+++ b/dev-python/nltk/files/nltk-3.6.2-metadata.patch
@@ -0,0 +1,38 @@
+From f8d834d9ac1e5b26f04cebd8ca6f07ed15935e70 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 29 May 2021 18:32:53 +0200
+Subject: [PATCH] setup.py: fix python_requires
+
+Fix python_requires to specify a valid version. Apparently, combining
+>= and .* is disallowed, and I'm pretty sure 'just' >=3.5 means
+the same.
+
+To reproduce the problem, you can:
+
+ $ pip install nltk distlib
+ $ python -c "import distlib.database; \
+ distlib.database.DistributionPath().get_distribution('nltk')"
+
+which yields a (not very readable) error of:
+
+ ValueError: '.*' not allowed for '>=' constraints
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 49dc08098..7be160494 100644
+--- a/setup.py
++++ b/setup.py
+@@ -108,7 +108,7 @@ natural language processing. NLTK requires Python 3.5, 3.6, 3.7, 3.8, or 3.9.""
+ "Topic :: Text Processing :: Linguistic",
+ ],
+ package_data={"nltk": ["test/*.doctest", "VERSION"]},
+- python_requires='>=3.5.*',
++ python_requires='>=3.5',
+ install_requires=[
+ "click",
+ "joblib",
+--
+2.31.1
+
diff --git a/dev-python/nltk/nltk-3.6.2.ebuild b/dev-python/nltk/nltk-3.6.2-r1.ebuild
index 84fcd25fe7c2..b621674b2f7e 100644
--- a/dev-python/nltk/nltk-3.6.2.ebuild
+++ b/dev-python/nltk/nltk-3.6.2-r1.ebuild
@@ -39,6 +39,10 @@ PDEPEND="dev-python/nltk-data"
distutils_enable_tests pytest
+PATCHES=(
+ "${FILESDIR}"/${P}-metadata.patch
+)
+
src_prepare() {
# requires unpackaged pycrfsuite
sed -i -e '/>>>/s@$@ # doctest: +SKIP@' nltk/tag/crf.py || die
diff --git a/dev-python/openpyxl/files/openpyxl-3.0.7-metadata.patch b/dev-python/openpyxl/files/openpyxl-3.0.7-metadata.patch
new file mode 100644
index 000000000000..08349787e6fc
--- /dev/null
+++ b/dev-python/openpyxl/files/openpyxl-3.0.7-metadata.patch
@@ -0,0 +1,12 @@
+diff -dupr a/setup.py b/setup.py
+--- a/setup.py 2021-05-29 19:21:13.876463476 +0200
++++ b/setup.py 2021-05-29 19:21:21.986626313 +0200
+@@ -74,7 +74,7 @@ setup(
+ author_email=__author_email__,
+ url=__url__,
+ license=__license__,
+- python_requires=">=3.6, ",
++ python_requires=">=3.6",
+ install_requires=[
+ 'et_xmlfile',
+ ],
diff --git a/dev-python/openpyxl/openpyxl-3.0.7.ebuild b/dev-python/openpyxl/openpyxl-3.0.7-r1.ebuild
index d974e3c95a8b..bd5b24b8d78e 100644
--- a/dev-python/openpyxl/openpyxl-3.0.7.ebuild
+++ b/dev-python/openpyxl/openpyxl-3.0.7-r1.ebuild
@@ -27,3 +27,7 @@ BDEPEND="
distutils_enable_sphinx doc
distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/openpyxl-3.0.7-metadata.patch
+)
diff --git a/dev-python/pyatspi/pyatspi-2.38.1.ebuild b/dev-python/pyatspi/pyatspi-2.38.1.ebuild
index bf924b0b07d6..496401847d09 100644
--- a/dev-python/pyatspi/pyatspi-2.38.1.ebuild
+++ b/dev-python/pyatspi/pyatspi-2.38.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://wiki.gnome.org/Accessibility"
# Note: only some of the tests are GPL-licensed, everything else is LGPL
LICENSE="LGPL-2 GPL-2+"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~ppc ~ppc64 sparc x86"
IUSE="test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/pygobject/pygobject-3.40.1.ebuild b/dev-python/pygobject/pygobject-3.40.1.ebuild
index a9801425aaa1..5a21e1be4650 100644
--- a/dev-python/pygobject/pygobject-3.40.1.ebuild
+++ b/dev-python/pygobject/pygobject-3.40.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://pygobject.readthedocs.io/"
LICENSE="LGPL-2.1+"
SLOT="3"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~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"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/pytest-subtests/Manifest b/dev-python/pytest-subtests/Manifest
index b75f934bdec9..474eb1eb9d56 100644
--- a/dev-python/pytest-subtests/Manifest
+++ b/dev-python/pytest-subtests/Manifest
@@ -1 +1,2 @@
DIST pytest-subtests-0.4.0.tar.gz 9673 BLAKE2B 780fbbdc6d4ac88c87002ee14323a0dd1036ab3dadc14b79ef11982459c60635add77e97575521ba0bda61317582e090353b427d945eca7198e294eb3d895240 SHA512 00302f47d1699e053314b6b4eee7c84a04fe0f51f287e338374bbd518c7d245d839ea0f1ccf50d4f35c86138cf6ea36da26e67bf41295205fb38323f2ad89f89
+DIST pytest-subtests-0.5.0.tar.gz 9793 BLAKE2B c671eb14189c0fd34180a636592b20c9e2b4225c5faf3b702103164e60bdbac4c9644e464f1e0c783da3da1263f7b841ea7a4149bcbf1de23325a8ef3ce5c030 SHA512 e3d7e90c3ab66950eb80d25049bc6f6f75b08b3da5ce0de5f3fc55d6a176a8d1fdcb19a19f7d9d137aeadcc82b214550474f76d5611bc5592ca649ddd8257a2a
diff --git a/dev-python/pytest-subtests/pytest-subtests-0.5.0.ebuild b/dev-python/pytest-subtests/pytest-subtests-0.5.0.ebuild
new file mode 100644
index 000000000000..e08c7e4a4de9
--- /dev/null
+++ b/dev-python/pytest-subtests/pytest-subtests-0.5.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="unittest subTest() support and subtests fixture"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-subtests/
+ https://pypi.org/project/pytest-subtests/"
+SRC_URI="
+ https://github.com/pytest-dev/pytest-subtests/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/pytest-5.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions
+ ' python3_7 pypy3)
+"
+# pytest-xdist is used to test compatibility
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests --install pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/sip/Manifest b/dev-python/sip/Manifest
index b115206796da..f8e60d534622 100644
--- a/dev-python/sip/Manifest
+++ b/dev-python/sip/Manifest
@@ -1,2 +1 @@
-DIST sip-4.19.24.tar.gz 1055461 BLAKE2B 6990b127a83fa57bc084eb9a1097f73c384b4fcf3d181479557fe2ffc66cde254bfbb5aef26f5ddd84dca346f54184952e7a111adf3b665f68571853e63b6575 SHA512 c9acf8c66da6ff24ffaeed254c11deabbc587cea0eb50164f2016199af30b85980f96a2d754ae5e7fe080f9076673b1abc82e2a6a41ff2ac442fb2b326fca1c0
DIST sip-4.19.25.tar.gz 1056384 BLAKE2B f92e105e6b30e871aea2883dc9cd459e4032fb139a9eaff153a3412a66b39df4d7ac985711a2693aee83195ff3850ae648bee4102f7fc3cc30d09885799f2b98 SHA512 60fb4133c68869bf0993144978b4847d94a0f9c7b477f64a346ea133cfe35bc11820204ab327dcf9a929b6f65a26d16cc7efbce65e49967c3347b39376e57001
diff --git a/dev-python/sip/sip-4.19.24.ebuild b/dev-python/sip/sip-4.19.24.ebuild
deleted file mode 100644
index 00f43d0b67f8..000000000000
--- a/dev-python/sip/sip-4.19.24.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-inherit python-r1 toolchain-funcs
-
-DESCRIPTION="Python extension module generator for C and C++ libraries"
-HOMEPAGE="https://www.riverbankcomputing.com/software/sip/intro"
-
-MY_PN=sip
-MY_P=${MY_PN}-${PV/_pre/.dev}
-if [[ ${PV} == *_pre* ]]; then
- SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.gz"
-else
- SRC_URI="https://www.riverbankcomputing.com/static/Downloads/${MY_PN}/${PV}/${MY_P}.tar.gz"
-fi
-
-# Sub-slot based on SIP_API_MAJOR_NR from siplib/sip.h
-SLOT="0/12"
-LICENSE="|| ( GPL-2 GPL-3 SIP )"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~sparc x86"
-IUSE="doc"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-DEPEND="${PYTHON_DEPS}"
-RDEPEND="${DEPEND}"
-
-S=${WORKDIR}/${MY_P}
-
-PATCHES=( "${FILESDIR}"/${PN}-4.18-darwin.patch )
-
-src_prepare() {
- # Sub-slot sanity check
- local sub_slot=${SLOT#*/}
- local sip_api_major_nr=$(sed -nre 's:^#define SIP_API_MAJOR_NR\s+([0-9]+):\1:p' siplib/sip.h || die)
- if [[ ${sub_slot} != ${sip_api_major_nr} ]]; then
- eerror
- eerror "Ebuild sub-slot (${sub_slot}) does not match SIP_API_MAJOR_NR (${sip_api_major_nr})"
- eerror "Please update SLOT variable as follows:"
- eerror " SLOT=\"${SLOT%%/*}/${sip_api_major_nr}\""
- eerror
- die "sub-slot sanity check failed"
- fi
-
- default
-}
-
-src_configure() {
- configuration() {
- local incdir=$(python_get_includedir)
- local myconf=(
- "${PYTHON}"
- "${S}"/configure.py
- --sysroot="${ESYSROOT}/usr"
- --bindir="${EPREFIX}/usr/bin"
- --destdir="$(python_get_sitedir)"
- --incdir="${incdir#${SYSROOT}}"
- AR="$(tc-getAR) cqs"
- CC="$(tc-getCC)"
- CFLAGS="${CFLAGS}"
- CFLAGS_RELEASE=
- CXX="$(tc-getCXX)"
- CXXFLAGS="${CXXFLAGS}"
- CXXFLAGS_RELEASE=
- LINK="$(tc-getCXX)"
- LINK_SHLIB="$(tc-getCXX)"
- LFLAGS="${LDFLAGS}"
- LFLAGS_RELEASE=
- RANLIB=
- STRIP=
- )
- echo "${myconf[@]}"
- "${myconf[@]}" || die
- }
- python_foreach_impl run_in_build_dir configuration
-}
-
-src_compile() {
- python_foreach_impl run_in_build_dir default
-}
-
-src_install() {
- installation() {
- emake DESTDIR="${D}" install
- python_optimize
- }
- python_foreach_impl run_in_build_dir installation
-
- einstalldocs
- use doc && dodoc -r doc/html
-}
diff --git a/dev-python/soupsieve/soupsieve-2.2.1.ebuild b/dev-python/soupsieve/soupsieve-2.2.1.ebuild
index bd95ea826173..9b350011e8ae 100644
--- a/dev-python/soupsieve/soupsieve-2.2.1.ebuild
+++ b/dev-python/soupsieve/soupsieve-2.2.1.ebuild
@@ -19,7 +19,7 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~x64
BDEPEND="
test? (
dev-python/beautifulsoup[${PYTHON_USEDEP}]
- dev-python/lxml[${PYTHON_USEDEP}]
+ <dev-python/lxml-4.6.3-r1[${PYTHON_USEDEP}]
dev-python/html5lib[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
index ee6cc113e14d..65e6a4db5e14 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -5,3 +5,4 @@ DIST SQLAlchemy-1.4.13.tar.gz 7589942 BLAKE2B 08e9fb6112aa71738f27dc4ce86ebe2274
DIST SQLAlchemy-1.4.14.tar.gz 7599698 BLAKE2B 500a6257829244e1181b8ef5cb39fb87b62ae2d7ca054fedb580b7431b32d15c8f68600b881eb67eb97a73301660ab96793ab12094ae901782ce4eebdc8929db SHA512 2f33ab034467344ffb19aa3934148faaa4a57e4ffa5f97008d814d54149da4e15cfca14d138b9fb656227e25932ca95cf7321209c31c2706405d3916dc2fb9c0
DIST SQLAlchemy-1.4.15.tar.gz 7621840 BLAKE2B 74299b92e8ae9d6017c961c44281cc43921f8505e9b141c75cc19899f693a2276b2849daef6dbe35f0d62179354740c76adc318b6b37d551679cc8ba3c47681f SHA512 b9a640ccfb7caabb88c4891748699442073db2bea6d1e5a33eb508863616c94ddbf162b3ecd5e502daf20d798d20b8ef5b4b29ed679af9161e117a23862327c2
DIST SQLAlchemy-1.4.16.tar.gz 7629704 BLAKE2B 46626cb38e3ec2c5b5c203a03da1a613cb5b66f2906edc54c03843b87ce8f12fbacb6fcd8b2b36584c53516de24b8c1bae041489a376472e4d2e6e2a301b707b SHA512 035c740b49356b1226ed79f188d022904d93190e5391edd350e44e63301333efcfc6c47477ce5119fdbebd49aa3e21b2764d3e4dcc6be5948428f1d8cf11c84c
+DIST SQLAlchemy-1.4.17.tar.gz 7630929 BLAKE2B 88b75c930caf674aa6d927336573f0e40fc89ae72735c11479eaa15de56754807b5412409d383857104a3027fcae346e747cc605525fe88c0a0f9d4ff39fcc7a SHA512 ff99a3a9c440fcdc10f6f43905672f72929fff430b3d9583b8e81693ff9d54ad5d9607b8041787074072cdf1ba03b31db9255cca1c50c8a43f275a0905e9f0bd
diff --git a/dev-python/sqlalchemy/sqlalchemy-1.4.17.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.4.17.ebuild
new file mode 100644
index 000000000000..aa99618e929b
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-1.4.17.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 multiprocessing optfeature
+
+MY_PN="SQLAlchemy"
+MY_P="${MY_PN}-${PV/_beta/b}"
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="https://www.sqlalchemy.org/ https://pypi.org/project/SQLAlchemy/"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+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 ~x64-solaris"
+IUSE="examples +sqlite test"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/importlib_metadata[${PYTHON_USEDEP}]
+ ' python3_7 pypy3)
+"
+# Use pytest-xdist to speed up tests
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # remove optional/partial dep on greenlet, greenlet is not very portable
+ sed -i -e '/greenlet/d' setup.cfg || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # Disable tests hardcoding function call counts specific to Python versions.
+ epytest --ignore test/aaa_profiling \
+ -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")"
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ dodoc -r examples
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "MySQL support" dev-python/mysqlclient dev-python/pymysql \
+ dev-python/mysql-connector-python
+ optfeature "mssql support" dev-python/pymssql
+ optfeature "postgresql support" dev-python/psycopg:2
+}
diff --git a/dev-python/symengine/files/symengine-0.7.2-metadata.patch b/dev-python/symengine/files/symengine-0.7.2-metadata.patch
new file mode 100644
index 000000000000..965751a41e7a
--- /dev/null
+++ b/dev-python/symengine/files/symengine-0.7.2-metadata.patch
@@ -0,0 +1,68 @@
+From 01b2f6255e05a808b14a9541b7a762277e409edb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 29 May 2021 19:37:04 +0200
+Subject: [PATCH] Fix python_requires to unbreak installed package metadata
+
+The '>=3.6.*' entry in python_requires is invalid and results in broken
+metadata being installed. This in turn causes distlib to break.
+To reproduce:
+
+ $ pip install distlib symengine
+ $ python -c "import distlib.database; \
+ distlib.database.DistributionPath().get_distribution('symengine')"
+ Traceback (most recent call last):
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/metadata.py", line 677, in __init__
+ self._data = json.loads(data)
+ File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
+ return _default_decoder.decode(s)
+ File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
+ obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+ File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
+ raise JSONDecodeError("Expecting value", s, err.value) from None
+ json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+
+ During handling of the above exception, another exception occurred:
+
+ Traceback (most recent call last):
+ File "<string>", line 1, in <module>
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/database.py", line 240, in get_distribution
+ self._generate_cache()
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/database.py", line 167, in _generate_cache
+ for dist in self._yield_distributions():
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/database.py", line 148, in _yield_distributions
+ metadata = Metadata(fileobj=stream, scheme='legacy')
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/metadata.py", line 686, in __init__
+ self._legacy = LegacyMetadata(fileobj=StringIO(data),
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/metadata.py", line 261, in __init__
+ self.read_file(fileobj)
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/metadata.py", line 359, in read_file
+ self.set(field, value)
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/metadata.py", line 459, in set
+ if not scheme.is_valid_constraint_list(value):
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/version.py", line 716, in is_valid_constraint_list
+ return self.is_valid_matcher('dummy_name (%s)' % s)
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/version.py", line 703, in is_valid_matcher
+ self.matcher(s)
+ File "/tmp/venv3/lib/python3.9/site-packages/distlib/version.py", line 115, in __init__
+ raise ValueError('\'.*\' not allowed for '
+ ValueError: '.*' not allowed for '>=' constraints
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 8e64d93..7b2a2d7 100644
+--- a/setup.py
++++ b/setup.py
+@@ -222,7 +222,7 @@ setup(name="symengine",
+ author_email="symengine@googlegroups.com",
+ license="MIT",
+ url="https://github.com/symengine/symengine.py",
+- python_requires='>=3.6.*,<4',
++ python_requires='>=3.6,<4',
+ zip_safe=False,
+ cmdclass = cmdclass,
+ classifiers=[
+--
+2.31.1
+
diff --git a/dev-python/symengine/symengine-0.7.2-r1.ebuild b/dev-python/symengine/symengine-0.7.2-r2.ebuild
index 20d3ca5cf5eb..4145fdad27ec 100644
--- a/dev-python/symengine/symengine-0.7.2-r1.ebuild
+++ b/dev-python/symengine/symengine-0.7.2-r2.ebuild
@@ -37,6 +37,10 @@ distutils_enable_tests pytest
# the C library installs the same docs
DOCS=()
+PATCHES=(
+ "${FILESDIR}"/${P}-metadata.patch
+)
+
src_prepare() {
default