summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-06-03 01:34:20 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-06-03 01:34:20 +0000
commitf2fe63f9eee97aeef416cec2270b78aad31765ad (patch)
treeeb309c29f3dcb575af1a64ea5dcbd7fb525c7d4e /dev-python
parent8a5aa7a1e915da2b5215aa99bdb92254b01ebe5d (diff)
downloadbaldeagleos-repo-f2fe63f9eee97aeef416cec2270b78aad31765ad.tar.gz
baldeagleos-repo-f2fe63f9eee97aeef416cec2270b78aad31765ad.tar.xz
baldeagleos-repo-f2fe63f9eee97aeef416cec2270b78aad31765ad.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Faker/Faker-8.5.0.ebuild27
-rw-r--r--dev-python/Faker/Manifest1
-rw-r--r--dev-python/PyQt5/PyQt5-5.15.4-r1.ebuild (renamed from dev-python/PyQt5/PyQt5-5.15.4.ebuild)10
-rw-r--r--dev-python/PyQt5/metadata.xml3
-rw-r--r--dev-python/QtPy/QtPy-1.9.0-r5.ebuild15
-rw-r--r--dev-python/QtPy/metadata.xml3
-rw-r--r--dev-python/betamax/betamax-0.8.1.ebuild4
-rw-r--r--dev-python/bleach/bleach-3.3.0.ebuild2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.17.86.ebuild56
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.20.86.ebuild59
-rw-r--r--dev-python/django/Manifest6
-rw-r--r--dev-python/django/django-2.2.24.ebuild92
-rw-r--r--dev-python/django/django-3.1.12.ebuild95
-rw-r--r--dev-python/django/django-3.2.4.ebuild103
-rw-r--r--dev-python/frozen-flask/Manifest1
-rw-r--r--dev-python/frozen-flask/frozen-flask-0.17.ebuild26
-rw-r--r--dev-python/humanize/Manifest1
-rw-r--r--dev-python/humanize/humanize-3.7.0.ebuild24
-rw-r--r--dev-python/ipdb/Manifest1
-rw-r--r--dev-python/ipdb/ipdb-0.13.9.ebuild25
-rw-r--r--dev-python/ipython/Manifest1
-rw-r--r--dev-python/ipython/ipython-7.24.1.ebuild139
-rw-r--r--dev-python/jeepney/jeepney-0.6.0.ebuild5
-rw-r--r--dev-python/keyring/keyring-23.0.1.ebuild9
-rw-r--r--dev-python/lz4/files/lz4-3.1.3-310-readall.patch32
-rw-r--r--dev-python/lz4/lz4-3.1.3.ebuild4
-rw-r--r--dev-python/munch/munch-2.5.0-r1.ebuild2
-rw-r--r--dev-python/nuitka/Manifest1
-rw-r--r--dev-python/nuitka/nuitka-0.6.15.1.ebuild48
-rw-r--r--dev-python/pip/pip-21.1.1.ebuild3
-rw-r--r--dev-python/pip/pip-21.1.2.ebuild3
-rw-r--r--dev-python/protobuf-python/protobuf-python-3.15.8.ebuild2
-rw-r--r--dev-python/pyfakefs/files/pyfakefs-4.4.0-py310.patch265
-rw-r--r--dev-python/pyfakefs/pyfakefs-4.4.0.ebuild4
-rw-r--r--dev-python/pyilmbase/pyilmbase-2.5.6.ebuild2
-rw-r--r--dev-python/pytest/files/pytest-6.2.4-py310.patch34
-rw-r--r--dev-python/pytest/pytest-6.2.4-r1.ebuild (renamed from dev-python/pytest/pytest-6.2.4.ebuild)4
-rw-r--r--dev-python/readme_renderer/readme_renderer-29.0.ebuild2
-rw-r--r--dev-python/requests-toolbelt/files/requests-toolbelt-0.9.1-py310.patch37
-rw-r--r--dev-python/requests-toolbelt/requests-toolbelt-0.9.1.ebuild2
-rw-r--r--dev-python/vdirsyncer/vdirsyncer-0.16.8-r1.ebuild (renamed from dev-python/vdirsyncer/vdirsyncer-0.16.8.ebuild)11
43 files changed, 1133 insertions, 33 deletions
diff --git a/dev-python/Faker/Faker-8.5.0.ebuild b/dev-python/Faker/Faker-8.5.0.ebuild
new file mode 100644
index 000000000000..ee753c20e0d8
--- /dev/null
+++ b/dev-python/Faker/Faker-8.5.0.ebuild
@@ -0,0 +1,27 @@
+# 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} )
+inherit distutils-r1
+
+DESCRIPTION="A Python package that generates fake data for you"
+HOMEPAGE="https://github.com/joke2k/faker"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND=">=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
+ >=dev-python/text-unidecode-1.3[${PYTHON_USEDEP}]
+ !dev-ruby/faker"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/random2[${PYTHON_USEDEP}]
+ dev-python/validators[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
diff --git a/dev-python/Faker/Manifest b/dev-python/Faker/Manifest
index 757b8c86d4b8..f7b92101150a 100644
--- a/dev-python/Faker/Manifest
+++ b/dev-python/Faker/Manifest
@@ -2,3 +2,4 @@ DIST Faker-8.2.0.tar.gz 1144105 BLAKE2B cac0e083fb91c4eff99b4a1af0c4acf665d2c7dd
DIST Faker-8.2.1.tar.gz 1144260 BLAKE2B 3c523e394043d2294e9973c0a2764a7c7961ea89b45efecfefa7a094e2b4ffa81513e9ca6ac321e5b2b05bf29c62ae37a4797ad210172d5e988dbd80d8b0858e SHA512 58e6fc188dfb6ef5f5847d2d7966767eb71df66752858fbccbf984afda2d25f6a6b01d2c9446e7b1c9e57bf3744c0e1f89202e0079b01e139789f384e3cdbc17
DIST Faker-8.3.0.tar.gz 1144870 BLAKE2B fba95fdc3023dc583345d0a7890b4ac6318ca87157270e1d844a2978bd2866c1cd8e8a334e41bc0b8689a1c8814a5353ab4adbb08af49a31779217d82b913ce6 SHA512 7f046e60636dc7c2a584eb75e832a674715424b91de5eac6dba423d40100ce44b5baec178976bcf2b00b5edb81c5796f5eeebed0572984e7740c9e3279afd51a
DIST Faker-8.4.0.tar.gz 1146293 BLAKE2B 9ec37d76ebfe486a9671f5fc97e321420b9cf83811894db4f7264430f441ab63309e2abed0b5c900467685d7fe979001c216a9e32323c764867f127025706558 SHA512 03abef5c85edccf924191f2bc5be1dd64d56f827bc4307fed16becac7981c0340fa900748e767f2bbbf37721075c03ac068892870f2ac895f8d748403ae8bb08
+DIST Faker-8.5.0.tar.gz 1147011 BLAKE2B 497a3f46a61519707ab3e8d78240ea5dd796b247268930ee4117647b24e4822a023ddda2ffdc1333dde4e35eedc1b7110f2103d0f49d0227ea7991c75c60c7df SHA512 29de2928109281bada27923a76ccb7cfd9e31211d0474cb47473197ea0c89983ac10e3dc990eb987ea3b45b5f5aa324b53004b60b5e20d922969bc552de96f01
diff --git a/dev-python/PyQt5/PyQt5-5.15.4.ebuild b/dev-python/PyQt5/PyQt5-5.15.4-r1.ebuild
index cc435aaa508c..0b1eca1535ec 100644
--- a/dev-python/PyQt5/PyQt5-5.15.4.ebuild
+++ b/dev-python/PyQt5/PyQt5-5.15.4-r1.ebuild
@@ -21,13 +21,13 @@ LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
-# TODO: QtNfc, QtRemoteObjects, QtTextToSpeech
+# TODO: QtNfc, QtQuick3D, QtRemoteObjects
IUSE="bluetooth dbus debug declarative designer examples gles2-only gui help location
- multimedia network opengl positioning printsupport sensors serialport sql
- +ssl svg testlib webchannel websockets widgets x11extras xmlpatterns"
+ multimedia network opengl positioning printsupport sensors serialport speech
+ sql +ssl svg testlib webchannel websockets widgets x11extras xmlpatterns"
# The requirements below were extracted from configure.py
-# and from the output of 'grep -r "%Import " "${S}"/sip'
+# and from the output of 'grep -r "%Import " ${S}/sip'
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
bluetooth? ( gui )
@@ -74,6 +74,7 @@ RDEPEND="${PYTHON_DEPS}
printsupport? ( >=dev-qt/qtprintsupport-${QT_PV} )
sensors? ( >=dev-qt/qtsensors-${QT_PV} )
serialport? ( >=dev-qt/qtserialport-${QT_PV} )
+ speech? ( >=dev-qt/qtspeech-${QT_PV} )
sql? ( >=dev-qt/qtsql-${QT_PV} )
svg? ( >=dev-qt/qtsvg-${QT_PV} )
testlib? ( >=dev-qt/qttest-${QT_PV} )
@@ -131,6 +132,7 @@ src_configure() {
$(pyqt_use_enable printsupport QtPrintSupport)
$(pyqt_use_enable sensors)
$(pyqt_use_enable serialport QtSerialPort)
+ $(pyqt_use_enable speech QtTextToSpeech)
$(pyqt_use_enable sql)
$(usex ssl '' '--disable-feature=PyQt_SSL')
$(pyqt_use_enable svg)
diff --git a/dev-python/PyQt5/metadata.xml b/dev-python/PyQt5/metadata.xml
index 9ed5d9a52721..c5ffe3533bf5 100644
--- a/dev-python/PyQt5/metadata.xml
+++ b/dev-python/PyQt5/metadata.xml
@@ -13,7 +13,7 @@
<use>
<flag name="bluetooth">Build bindings for the QtBluetooth module</flag>
<flag name="dbus">Build bindings for the QtDBus module</flag>
- <flag name="declarative">Build bindings for the QtQml/QtQuick modules and enable the qmlscene plugin</flag>
+ <flag name="declarative">Build bindings for the QtQml and QtQuick modules and enable the qmlscene plugin</flag>
<flag name="designer">Build bindings for the QtDesigner module and enable the designer plugin</flag>
<flag name="gui">Build bindings for the QtGui module</flag>
<flag name="help">Build bindings for the QtHelp module</flag>
@@ -26,6 +26,7 @@
<flag name="printsupport">Build bindings for the QtPrintSupport module</flag>
<flag name="sensors">Build bindings for the QtSensors module</flag>
<flag name="serialport">Build bindings for the QtSerialPort module</flag>
+ <flag name="speech">Build bindings for the QtTextToSpeech module</flag>
<flag name="sql">Build bindings for the QtSql module</flag>
<flag name="svg">Build bindings for the QtSvg module</flag>
<flag name="testlib">Build bindings for the QtTest module</flag>
diff --git a/dev-python/QtPy/QtPy-1.9.0-r5.ebuild b/dev-python/QtPy/QtPy-1.9.0-r5.ebuild
index 36ffe7f8ef77..e78d5637cf8c 100644
--- a/dev-python/QtPy/QtPy-1.9.0-r5.ebuild
+++ b/dev-python/QtPy/QtPy-1.9.0-r5.ebuild
@@ -17,8 +17,8 @@ KEYWORDS="~amd64 ~arm64 ~x86"
_IUSE_QT_MODULES="
declarative designer gui help location multimedia network opengl
- positioning printsupport sensors serialport sql svg testlib webchannel
- webengine websockets widgets x11extras xml xmlpatterns
+ positioning printsupport sensors serialport speech sql svg testlib
+ webchannel webengine websockets widgets x11extras xml xmlpatterns
"
IUSE="+pyqt5 pyside2 ${_IUSE_QT_MODULES}"
unset _IUSE_QT_MODULES
@@ -44,7 +44,6 @@ REQUIRED_USE="
# scxml? ( pyside2 )
# script? ( pyside2 )
# scripttools? ( pyside2 )
-# speech? ( pyside2 )
# WARNING: the obvious solution of using || for PyQt5/pyside2 is not going
# to work. The package only checks whether PyQt5/pyside2 is installed, it does
@@ -68,7 +67,7 @@ RDEPEND="
dev-python/PyQt5[${PYTHON_USEDEP}]
dev-python/PyQt5[declarative?,designer?,gui?,help?,location?]
dev-python/PyQt5[multimedia?,network?,opengl?,positioning?]
- dev-python/PyQt5[printsupport?,sensors?,serialport?,sql?,svg?]
+ dev-python/PyQt5[printsupport?,sensors?,serialport?,speech?,sql?,svg?]
dev-python/PyQt5[testlib?,webchannel?,websockets?,widgets?]
dev-python/PyQt5[x11extras?,xml(+)?,xmlpatterns?]
webengine? ( dev-python/PyQtWebEngine[${PYTHON_USEDEP}] )
@@ -78,9 +77,9 @@ RDEPEND="
dev-python/pyside2[${PYTHON_USEDEP}]
dev-python/pyside2[designer?,gui?,help?,location?,multimedia?]
dev-python/pyside2[network?,opengl(+)?,positioning?,printsupport?]
- dev-python/pyside2[sensors?,serialport(+)?,sql?,svg?,testlib?]
- dev-python/pyside2[webchannel?,webengine?,websockets?,widgets?]
- dev-python/pyside2[x11extras?,xml?,xmlpatterns?]
+ dev-python/pyside2[sensors?,serialport(+)?,speech?,sql?,svg?]
+ dev-python/pyside2[testlib?,webchannel?,webengine?,websockets?]
+ dev-python/pyside2[widgets?,x11extras?,xml?,xmlpatterns?]
declarative? ( dev-python/pyside2[qml,quick] )
' python3_{7..9} )
)
@@ -96,7 +95,7 @@ BDEPEND="
dev-python/PyQt5[${PYTHON_USEDEP}]
dev-python/PyQt5[bluetooth,dbus,declarative,designer,gui,help,location]
dev-python/PyQt5[multimedia,network,opengl,positioning,printsupport]
- dev-python/PyQt5[sensors,serialport,sql,svg,testlib,webchannel]
+ dev-python/PyQt5[sensors,serialport,speech,sql,svg,testlib,webchannel]
dev-python/PyQt5[websockets,widgets,x11extras,xml(+),xmlpatterns]
dev-python/PyQtWebEngine[${PYTHON_USEDEP}]
)
diff --git a/dev-python/QtPy/metadata.xml b/dev-python/QtPy/metadata.xml
index 30e4e8b8deab..0817bf94ebde 100644
--- a/dev-python/QtPy/metadata.xml
+++ b/dev-python/QtPy/metadata.xml
@@ -21,7 +21,7 @@
<use>
<flag name="pyqt5">Use <pkg>dev-python/PyQt5</pkg> as Qt for Python implementation</flag>
<flag name="pyside2">Use <pkg>dev-python/pyside2</pkg> as Qt for Python implementation</flag>
- <flag name="declarative">Pull in bindings for the QtQml/QtQuick modules and enable the qmlscene plugin</flag>
+ <flag name="declarative">Build bindings for the QtQml and QtQuick modules and enable the qmlscene plugin</flag>
<flag name="designer">Pull in bindings for the QtDesigner module and enable the designer plugin</flag>
<flag name="gui">Pull in bindings for the QtGui module</flag>
<flag name="help">Pull in bindings for the QtHelp module</flag>
@@ -33,6 +33,7 @@
<flag name="printsupport">Pull in bindings for the QtPrintSupport module</flag>
<flag name="sensors">Pull in bindings for the QtSensors module</flag>
<flag name="serialport">Pull in bindings for the QtSerialPort module</flag>
+ <flag name="speech">Build bindings for the QtTextToSpeech module</flag>
<flag name="sql">Pull in bindings for the QtSql module</flag>
<flag name="svg">Pull in bindings for the QtSvg module</flag>
<flag name="testlib">Pull in bindings for the QtTest module</flag>
diff --git a/dev-python/betamax/betamax-0.8.1.ebuild b/dev-python/betamax/betamax-0.8.1.ebuild
index 7e146e03cf14..3cbed3346424 100644
--- a/dev-python/betamax/betamax-0.8.1.ebuild
+++ b/dev-python/betamax/betamax-0.8.1.ebuild
@@ -1,11 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-DISTUTILS_USE_SETUPTOOLS=bdepend
PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
-
inherit distutils-r1
DESCRIPTION="python-requests HTTP exchanges recorder"
diff --git a/dev-python/bleach/bleach-3.3.0.ebuild b/dev-python/bleach/bleach-3.3.0.ebuild
index 5f4439d4ed91..da47d5e29a07 100644
--- a/dev-python/bleach/bleach-3.3.0.ebuild
+++ b/dev-python/bleach/bleach-3.3.0.ebuild
@@ -2,8 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
inherit distutils-r1
DESCRIPTION="an easy whitelist-based HTML-sanitizing tool"
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 8989654efeaf..cfbe961bdefd 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -7,3 +7,4 @@ DIST boto3-1.17.82.tar.gz 376284 BLAKE2B 33520a1a80566a17b3a0665ce2520e73bab69b4
DIST boto3-1.17.83.tar.gz 376963 BLAKE2B 0bdcae1097a8ee4250c08fe639419ea99b83e33ea77433698ee9bafd928252e6b836c93bb83d383ff4aeacc583d2309236e80d2ebd5425e320aa2a80da295964 SHA512 c1dad3d17b0bf628ae31edda3a6eaf01fa1b820031d541f0dd4f4d56e98a1da9f868ed1c6e63ff0b6bd83cda027c540c08b41a066d3b35959294779c2113cb37
DIST boto3-1.17.84.tar.gz 377284 BLAKE2B dbbc6b8643b720a8a5409c334e268b6de465e7db05684ff5a70d95c91e7e2feff3c3db94ad85f400ac7451e8f37537732ed416602c35bf37955d840701bf5bb4 SHA512 19d224c9bd7135d1de4da807b51f72a3366d5774dba970896388bffb1308b348b001453c0632de5eee8f03bdf0c2b8cf3e9da894e73cb16e10551e060beef5fe
DIST boto3-1.17.85.tar.gz 377940 BLAKE2B 7fdfa25b7fd6467f484dc988bac280b0e4e7044f2a064625efdc5e6f9725b038f08b88f63442452b151541ae4f0ff26ae395816f6422b49474d2e8d93df3a7da SHA512 126e78056b8ac52cba3db5965563c4b6c1451f5aeba2d7d775f358e75f810229102328230e0f5dd1ef3767468106f1d7f3af5575e51422c6b63ef6b509318e70
+DIST boto3-1.17.86.tar.gz 378144 BLAKE2B 35d6bfec515c985ead488811e7f2ad021f671e8eee1e63ae1aaade8f4a03dcca228483ec81c4911d12c290b3e4b3363ae92e9153eda83a638258394d0c7b4fcf SHA512 0b267b2333925e830237c830ef5258fa8834fd584f6f4132c012141b4ad5e38b6e6977de019d60f0ba93e3c8b4d9a1036d0c989366145a9d25ac0e5e7e4d39ae
diff --git a/dev-python/boto3/boto3-1.17.86.ebuild b/dev-python/boto3/boto3-1.17.86.ebuild
new file mode 100644
index 000000000000..511fc98f5fff
--- /dev/null
+++ b/dev-python/boto3/boto3-1.17.86.ebuild
@@ -0,0 +1,56 @@
+# 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} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="https://github.com/boto/boto3"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/boto3"
+ inherit git-r3
+ BOTOCORE_PV=${PV}
+else
+ SRC_URI="https://github.com/boto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+ # botocore is x.(y+3).z
+ BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)"
+fi
+
+RDEPEND="
+ >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.3.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/source \
+ 'dev-python/guzzle_sphinx_theme'
+distutils_enable_tests nose
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # prevent an infinite loop
+ rm tests/functional/docs/test_smoke.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ nosetests -v tests/unit/ tests/functional/ || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index f74f63db14d5..a9b6812d1810 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -7,3 +7,4 @@ DIST botocore-1.20.82.tar.gz 7772021 BLAKE2B 09fc32ba42275afde8332287825e954bd5b
DIST botocore-1.20.83.tar.gz 7786168 BLAKE2B 1bd8864da814ed502c4e0860d8c7a82c6c15d778f2aafc333ffe6e64f45398c173ad7700f9fc90a9fbf4b91f8f77b5494619bdc6e4bda1dcec6cef8d496327c2 SHA512 7ff1c73d85e02cc1f2de1de915d337369681e28ac44aba5cfb29df6bc4377f664170844ed8caeb7e50c97d127d1e9caac08fac18724046a7f1450cc7ea212b4a
DIST botocore-1.20.84.tar.gz 7792555 BLAKE2B e9459fad976bb81541ce933666edccdbfe9910674cde9f23b264388845cb3e98cae77639a3333cb3fec00c33602af8fea82681fbd387775ff9ed47245e4d0e4f SHA512 da19ffb81c24c2e7a10c5e0647179f36ebf89c097f795cb16d723a3e0311a81e9c835b7b3795d02047d084a098507f4b6e0cc502129877e4258691a6a6ee1cee
DIST botocore-1.20.85.tar.gz 7795550 BLAKE2B 483b6fef456de9a37b00dbaf0f2af766079447f70fb992c96f0ab8208c3ce0e39a459d89a29e07b7e9fed9e1b39ddfeac28c3de5bfac1ddde1aac2cbecfe4056 SHA512 1a3e07da2c1b60680c858e4b732fe340563b18ec10aad7a9250bff7e7a11a97ccd3e952245187b90fe84b2fddd8f48568d70d69a03612782da5d90a8e2d06de3
+DIST botocore-1.20.86.tar.gz 7798788 BLAKE2B 93450262bf1e34a627a64f8972e4d8b02dc24e1646633e89d4911751b0c919b9dd3515021cfffcd0c79223b237a8bb283220f6793c8e411d399a75321cd7b369 SHA512 fd630d93645861a94173a38b50c7b2ef1c646e33ad30d75eccb4b92bfa0ce08c06ac39ea6bb38f7e5c551f625b919b00170c4a243e67d5d66789a011ee5390a1
diff --git a/dev-python/botocore/botocore-1.20.86.ebuild b/dev-python/botocore/botocore-1.20.86.ebuild
new file mode 100644
index 000000000000..ca62b7dad65f
--- /dev/null
+++ b/dev-python/botocore/botocore-1.20.86.ebuild
@@ -0,0 +1,59 @@
+# 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
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="https://github.com/boto/botocore"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/botocore"
+ inherit git-r3
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/jmespath[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/1.8.6-tests-pass-all-env-vars-to-cmd-runner.patch"
+)
+
+distutils_enable_sphinx docs/source \
+ 'dev-python/guzzle_sphinx_theme'
+distutils_enable_tests nose
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+ # very unstable
+ sed -i -e 's:test_stress_test_token_bucket:_&:' \
+ tests/functional/retries/test_bucket.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # note: suites need to be run separately as one of the unit tests
+ # seems to be leaking mocks and breaking a few functional tests
+ nosetests -v tests/unit ||
+ die "unit tests failed under ${EPYTHON}"
+ nosetests -v tests/functional ||
+ die "functional tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index 30f175f4e9e1..5a79c891f6b4 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -2,11 +2,17 @@ DIST Django-2.2.22.checksum.txt 2551 BLAKE2B b08f1d904caedfad04eceb57a704cec9dc6
DIST Django-2.2.22.tar.gz 9182392 BLAKE2B f68141772ec101332a2a0c7b1b2216a14535404e814d80a6a350effcd4ee07eb6a4271f997a43d24e4a083fef690492714858b2c92d982fb113352f6fd062545 SHA512 215497034224dbbbffb3e70f9c50e51a149c9962074d2ae7152a664d21f7e762a7f62baebad2387037feff02e880e1dfdfa04ad797907ba5daf65276c2b99fd7
DIST Django-2.2.23.checksum.txt 2552 BLAKE2B 25763dad7ee67cbbf64a182998b53277d24866030c1fba5b1f53f0d944321dbf104b9b03fa714212a8051e44b3b56c2ecfad140999ab88ed563b854aa7b7eee2 SHA512 5479b7f8c6918cd7363851038e49b2e0f23e25e6f6e56b049372209db901c0caa621d1b6acf46983c5a887b78a47e801364cbcec3b996ea474472f9ca2304bbe
DIST Django-2.2.23.tar.gz 9182567 BLAKE2B 97ba0f098fdc8f187489e7b25fe17e7258396e758ba0d566b9d17012612a2693f675b1049cc939c88dc5f5d2af783934369f9b6672e92e1420189852ebbd7ad6 SHA512 0f9b8705ce150f7c291452551933135a521b2d22cad00928bddbd6cac8ccb44da2c6c9a4302dc49b6f5188f6d72e148bd3c9806001e50972acefcb6ef853777b
+DIST Django-2.2.24.checksum.txt 2558 BLAKE2B 8a4b1759f0c52f9dfe6eafc2b54d2d6db8c1204be837ef0df362e02afb41faa3fcfef3ee1b5bc10482a200db58c21c3a7a9650b6ed8103c69f196b655af5b239 SHA512 e26d71ed2cded2521837c82ee896b68d765da224a42f34457cb67a0105a72b2b0223655208400baddf7bb70dd51c4902b9ae80d8cb2bc8963c16b23d37bb2d53
+DIST Django-2.2.24.tar.gz 9211396 BLAKE2B 7422019ad8849ae543d7b2ca7f5624b5379c832b5d19511f52df77d95acaa0a45cc61579b0e3a74671c295ffab5e1dfecd1c044e9ec042c46606f888c257e1d0 SHA512 5a3ee79500ad458bfc5220b9b68248bec59bf6d2304d58ca280111854d6a5f7e25784680e949487e8b59c1de0b329a53cf0676d2ee4bb2b88463918c4b0b6085
DIST Django-3.1.10.checksum.txt 2551 BLAKE2B 811e820ef036301ee1a6aafb2f74e5809baee591b37a04e5726bff4086f58d29e13ef7b0fd5f95fe9316232cff45ebd2d7c69fbdcd9a3d1322ede118c4577a65 SHA512 b1eb565dfb978cd4819817b1f0fbb9685c1a7d9d9863ea4a0da137056add6af98d6051eae1b81f37bfb0e673993a4af7dd760811e343bb2fd7a0d98a3ee1663a
DIST Django-3.1.10.tar.gz 9654073 BLAKE2B c3729b7007b0b8309fda111f7bd988c861fb1002da3683e972a01bcd2aecfc6b42e896f91297239cba2061106096226552c26eb50325ea5b50f5a5df3a191bfd SHA512 6dd3c7a5cd1b5cbeb6e62f72fa56fce260bd407a3ac659ddee893489efae7a6bea862ecc113da342a2ed4cffa39e564c55dd20792b5435f9f00fef5488579aad
DIST Django-3.1.11.checksum.txt 2552 BLAKE2B 11c8f9c26491dce2897e302e2ff92cfb8e481dcf93c46e91f1005a9ad92bfdc60e4e69682c94999f2e1fe37cf57ba452e03748862919d2f6afdb9c77c9ae1049 SHA512 8cee919d2a4d6b55dd1c6d91ad999caff0e7efe9a0d8c2a92e70d1fb51a534d924ac47fffd1a28b92e8060225c1fd7fda2bd693b977b29bed8f4ffe8a7f18041
DIST Django-3.1.11.tar.gz 9654094 BLAKE2B 00e4ba95127d49b410cf0811e54fee5e5d17647a782ac6ffd30339ec81455479d913f62a29d83e7c87773cc81635393202a3065d3d0262cd17a033c7637fda76 SHA512 8da05ea46e4fdf20a90aadc954a9cf9e7e830e3822ff9095bd973628e74fa14e5397365740fcb5d76d393f2e5b39fdc578b3d7f12601feb9a3b3e057e6bbe086
+DIST Django-3.1.12.checksum.txt 2558 BLAKE2B fe31c76517811b5a69bbab6a44966059b40e26e81134682a56753fb886abb1081ad998628fb45eb9959fa1b625c1ffc7128ed0153aadde23319ca28daedf71ca SHA512 6b5a243eee10a33721725be4f09b34395f0d7b34775c72b387d47445947de25f927b2b6d3bc6d76896096b8d06080ebd66ad3a667984087b7c3505a705ec8f76
+DIST Django-3.1.12.tar.gz 9676259 BLAKE2B 91781b77b63591a9fc1dffbe341b5400898ccce6267b18236f8680e86f02bb70cc4ab3297fb504e5a809947bd7e68795286b875f319a60ad501d38f4af1f17a7 SHA512 7b58d0bd6ccd6a3222bd58e87ee26646e75b807f284cb259baa5442514c249b3d7695ed0c61e5cc544e121d06a102c5ea1b40694d17e7d4dd3a8437891284c0a
DIST Django-3.2.2.checksum.txt 2542 BLAKE2B 1a61ea4e8415d77b50d0dc227905596941a9cfed019c3442be1d7529d0b82204b08e15befdcccccd3a7a4625b762e99526b762053e9ec7c29068caa2dfe055a1 SHA512 eebb6e7172d85af3d6f65296d816f40cacd78c8270bd198d275c3c2844e9106ec517265490e7371d5df803d044ee1534a4eb836d2a279d395884c1ec7b9cb0f5
DIST Django-3.2.2.tar.gz 9796920 BLAKE2B 09a720d169702f1d80b592e8a4c8e136b9b3c4539db44f8bcf3ef7d0e6bb678892b7ad4bbeac89fc887c9938cb35d8a9d3fee9a58e692f99c37e81f01615a6b4 SHA512 28d1d56cdf883f8fb5e438124be53dbefaa0045d1acf0b4b8b455a482422e2b88ffc5a3c8be2ee1b7d3c39fe29cfa854b44b438c3d43323483bd35e0d05f9e49
DIST Django-3.2.3.checksum.txt 2543 BLAKE2B e15fd98b887e3e416d6636a84cfe08e23d920c3044c0382ff0821b47dced378fb89d05bd0e128b1237423be72ccdd1454f4a092b543f2325e1d3d1072e508ccf SHA512 7c898155e085f003dd9872cf266484d4d533d869df18aa5c431ca6bf9dee2682ef61921e3f31e43392c0539d2175a8000a37f371519ae485b38bda0eede54c67
DIST Django-3.2.3.tar.gz 9798957 BLAKE2B b3b72fc405d13c63d6b12819390ee281319275350b38cbd7f8a2657f8ad39b7c4168b560d0c8db4a2f26231f6dccf5855bfa1259d6fb3d51fd1decc5e406d837 SHA512 a1f9f9661f1a851a00387007f5079615e70ad2357a3a99a1b4a77da6a31419b22fd9d321b8d9737092a02a3055df76cee2aa69404b804b392d94d3423d54b0f8
+DIST Django-3.2.4.checksum.txt 2549 BLAKE2B d7f9e0fb88d9913c611ab3e5c0c276e135d2f2dbf2ad27043a46a9c57ecfd7e7f774b1d60630f47a53fdf455e63b2deb32b4f9caed77f33732cf85c92dc03108 SHA512 67e67719eb24fdf47da9611eb18184283657dca398eaf52963e17b2ff29a2687921171b1c68853fb7e17307d03c01be0d2554931c8bff38e2252c371f81e40b9
+DIST Django-3.2.4.tar.gz 9824343 BLAKE2B 25123c228171953e057fe6ba75afadc49c49567e167045c292606e914538f58f9628e48485f611afaacd7e173f36c720391c06662f8dcd796e966f7557f60216 SHA512 5891f77c884cb4bc74f4c9759e2e7be463fc0c661b8dd4d889be0ec46919e59b81f5ce1585c28075b15f03355e66d4b8e7b09001f0c2bea15f8c8aac77d1ea16
diff --git a/dev-python/django/django-2.2.24.ebuild b/dev-python/django/django-2.2.24.ebuild
new file mode 100644
index 000000000000..0ee1bbac738c
--- /dev/null
+++ b/dev-python/django/django-2.2.24.ebuild
@@ -0,0 +1,92 @@
+# 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} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 optfeature verify-sig
+
+MY_P=${P^}
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="https://www.djangoproject.com/ https://pypi.org/project/Django/"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${MY_P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${MY_P}.checksum.txt )"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.2.2[${PYTHON_USEDEP}]"
+BDEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ dev-python/tblib[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( app-crypt/openpgp-keys-django )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.0.7-bashcomp.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${MY_P}.checksum.txt" sha256 "${MY_P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite -v2 ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+ optfeature "High-level abstractions for Django forms" dev-python/django-formtools
+}
diff --git a/dev-python/django/django-3.1.12.ebuild b/dev-python/django/django-3.1.12.ebuild
new file mode 100644
index 000000000000..a6df9a447ab6
--- /dev/null
+++ b/dev-python/django/django-3.1.12.ebuild
@@ -0,0 +1,95 @@
+# 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} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 optfeature verify-sig
+
+MY_P=${P^}
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="https://www.djangoproject.com/ https://pypi.org/project/Django/"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${MY_P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${MY_P}.checksum.txt )"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/asgiref-3.3.4[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.2.2[${PYTHON_USEDEP}]"
+BDEPEND="
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ dev-python/tblib[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ !!<dev-python/ipython-7.21.0-r1
+ !!=dev-python/ipython-7.22.0-r0
+ )
+ verify-sig? ( >=app-crypt/openpgp-keys-django-20201201 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1-bashcomp.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${MY_P}.checksum.txt" sha256 "${MY_P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite -v2 ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+ optfeature "High-level abstractions for Django forms" dev-python/django-formtools
+}
diff --git a/dev-python/django/django-3.2.4.ebuild b/dev-python/django/django-3.2.4.ebuild
new file mode 100644
index 000000000000..861cc22eac56
--- /dev/null
+++ b/dev-python/django/django-3.2.4.ebuild
@@ -0,0 +1,103 @@
+# 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} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 optfeature verify-sig
+
+MY_P=${P^}
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="https://www.djangoproject.com/ https://pypi.org/project/Django/"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${MY_P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${MY_P}.checksum.txt )"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/asgiref-3.3.4[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.2.2[${PYTHON_USEDEP}]"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ dev-python/tblib[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ !!<dev-python/ipython-7.21.0-r1
+ !!=dev-python/ipython-7.22.0-r0
+ )
+ verify-sig? ( >=app-crypt/openpgp-keys-django-20201201 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1-bashcomp.patch
+ # From https://github.com/django/django/pull/14228
+ "${FILESDIR}"/${PN}-3.2.3-py310-repr.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${MY_P}.checksum.txt" sha256 "${MY_P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_prepare_all() {
+ # Fails because of warnings
+ sed -i 's/test_dumpdata_proxy_with_concrete/_&/' tests/fixtures/tests.py
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite -v2 ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:2
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+ optfeature "High-level abstractions for Django forms" dev-python/django-formtools
+}
diff --git a/dev-python/frozen-flask/Manifest b/dev-python/frozen-flask/Manifest
index 68a4eceb825f..48638836e213 100644
--- a/dev-python/frozen-flask/Manifest
+++ b/dev-python/frozen-flask/Manifest
@@ -1 +1,2 @@
DIST Frozen-Flask-0.15.tar.gz 477516 BLAKE2B 1f9ecc59cabc547f7c4358c5fbbde0c57264a6c8e45bcf567c00f5c20eef288b8d261edf878e1295ef702d863c16dd605b59982abfe4daf9f073b29787b01921 SHA512 8cb80ccb5018abdaaf53a43c219504d57f2630af3d8d5c7bd6bee44c7cf483f50530bc00ff49fd674d54c0e1f6a5e0caa004bff04e95dec7f58a8bb443a36241
+DIST Frozen-Flask-0.17.tar.gz 179081 BLAKE2B ddd029bdcebfc6a682de5e052bfed50ede18cfeab29655d321dcbdf38070c61c4c9c2d2424a43d170ea34d7ea512b029014786b6f6a48b90d024ad512ccb0861 SHA512 278aff5ac5f581963f0b5935c7b52b44c93ba6dcac735ee3802bba899faa35ed6a170fcf2d6f7507948b277e6de9a30f46f99f0e61e94fc0c670181ec35ddf53
diff --git a/dev-python/frozen-flask/frozen-flask-0.17.ebuild b/dev-python/frozen-flask/frozen-flask-0.17.ebuild
new file mode 100644
index 000000000000..026c53195f7d
--- /dev/null
+++ b/dev-python/frozen-flask/frozen-flask-0.17.ebuild
@@ -0,0 +1,26 @@
+# 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
+
+MY_PN="Frozen-Flask"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Freezes a Flask application into a set of static files"
+HOMEPAGE="https://github.com/Frozen-Flask/Frozen-Flask https://pypi.org/project/Frozen-Flask/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="<dev-python/flask-2[${PYTHON_USEDEP}]"
+
+distutils_enable_sphinx docs \
+ dev-python/flask-sphinx-themes
+distutils_enable_tests nose
diff --git a/dev-python/humanize/Manifest b/dev-python/humanize/Manifest
index 26d9f6fb7607..e5d30e51729d 100644
--- a/dev-python/humanize/Manifest
+++ b/dev-python/humanize/Manifest
@@ -1,3 +1,4 @@
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
+DIST humanize-3.7.0.tar.gz 44002 BLAKE2B ec253c07a38c83d67038836998a7159afe7d1f3e1f0f5ea0f946f987e18bf4943d7dd48e2e156009627e1bda2140017bf99df072671008a6e1daad704b693292 SHA512 e501cdb4dcb603601624f5df9a04a256669f06ac594d8a3a0c83543d1d8503bfcf4d7198ff87827e2c60dd63897c23b722be7497179c49a9f9b05d07289de4be
diff --git a/dev-python/humanize/humanize-3.7.0.ebuild b/dev-python/humanize/humanize-3.7.0.ebuild
new file mode 100644
index 000000000000..b799aae188ae
--- /dev/null
+++ b/dev-python/humanize/humanize-3.7.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/ipdb/Manifest b/dev-python/ipdb/Manifest
index c2ee17e14d7a..fedc0c405a61 100644
--- a/dev-python/ipdb/Manifest
+++ b/dev-python/ipdb/Manifest
@@ -1,2 +1,3 @@
DIST ipdb-0.13.7.tar.gz 16437 BLAKE2B 3f4ca56f0279f4bccc14eb12df48e03b938ff2de0e77a5fff273f82895dacc8d079f5ebd66f63568f62f3f1ae3f266695a6bad23911a872b5ed0f1628d32d1aa SHA512 14ccccb645bf3fb303d82718ed9f1e7fd19d699c9a875358b336135b40f9492b6c9c260c53fa87f38aa381e989e6f6c801f081eaa361c8e929c6e1b0bbaa300e
DIST ipdb-0.13.8.tar.gz 16761 BLAKE2B f049fe4cfbecc6df7162069fb79e6493fcdc9a680dc33072b00a278ce7a46187a2f132f2252989c41f7263eb5b433905facf597322c7c20a1d2b7a0ae029e193 SHA512 5018a275e47eba26fd399b6d946a8c1f556dbe9b5392ef14e2766bed3f080fb9f75fafe79a598d052eac6152a5e347ce82f455250946c5b33a96e033887c4f92
+DIST ipdb-0.13.9.tar.gz 16820 BLAKE2B d028fff2c4273fd4a57c3338093f0065868856b4f7b2b95aa0db3c2b1e7c5906fc17b5b55b79b3a3809465214bd91ac1891cefc1604ed866edaa2811380175f6 SHA512 da0ac6d8a7451e90cf433ab2a0d4e43fff76be03082da5cf31b83fdc56174fde7f0256009ad9a407d805c0bf12da5fa2f081e1aa0e0ce73ca648262acd385671
diff --git a/dev-python/ipdb/ipdb-0.13.9.ebuild b/dev-python/ipdb/ipdb-0.13.9.ebuild
new file mode 100644
index 000000000000..e764c8835ae1
--- /dev/null
+++ b/dev-python/ipdb/ipdb-0.13.9.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="IPython-enabled pdb"
+HOMEPAGE="https://pypi.org/project/ipdb/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND=">=dev-python/ipython-7.17[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+DOCS=( HISTORY.txt )
+
+distutils_enable_tests unittest
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
index c906b9a3ff54..26e07a1ee532 100644
--- a/dev-python/ipython/Manifest
+++ b/dev-python/ipython/Manifest
@@ -1,3 +1,4 @@
DIST ipython-7.22.0.tar.gz 5143229 BLAKE2B be78fc7089d620cb9ad437ed8154b37ac8c7cd68ca18a2569cfcf7ea9af968c58eeee18c8d18a1f26459ccef73e59083ac27055c19e4df254836e484ce0a9908 SHA512 2647dcd5e0d9b6afc8d990d2c099ad7ed581b5eff6d657630929e0d0d9f8965e7c7924c51a10a797e7d7406212d7a06c941c163e6f6046aa62130049a9bbc0d0
DIST ipython-7.23.1.tar.gz 5188898 BLAKE2B 9713b0f1f75e283e53ba19044c9919f0c4d0b1c120e63d7a79ab9c6b8783499ed115e86a24cab34fc13c46245fb43865b851e6f98a2ee729ee35c3db242fa2ba SHA512 9b35626a8a07c6bd0b93552341e5a61d3d90a60c72ad6e3fc71266d9509134366c46a7ae8aeca9c3acc7509dfeab47b5144f105cb3d1d05ef1c7acca6c2f365d
DIST ipython-7.24.0.tar.gz 5146172 BLAKE2B 9d10eea9c329c78d7698adda999d746cdb305fad71ad521bd2f856590dd1e34010adfef045633bec07f8a6705201325815bbc254c23d74f0a17d73d2c3c060fe SHA512 67f6392b5448f1526da67577e8fa84958c99b3ac71c616c78a034e5c20cd06224134da45a8c3930a3779ce98ebc983bea2f237b5be7e8ba9d6fe97fde91a0608
+DIST ipython-7.24.1.tar.gz 5146561 BLAKE2B ae63d024f488f44dbd61eb9f3e14ac5b8ad801b1db195632c184c6106d4c2e6d6143c1524ae6fc5a2f6f631683b73f241c9115c439c0f97a4fe540cc232fb181 SHA512 0ea8843a1f2e7f9357ff9896f2b6da058adb5fcbbad5c3b1fc4138a085eb57034c62c0b50d82dea0e563523649ec112edd4ef0c267a914f6a7d33b44be30b977
diff --git a/dev-python/ipython/ipython-7.24.1.ebuild b/dev-python/ipython/ipython-7.24.1.ebuild
new file mode 100644
index 000000000000..491c7fdba8e5
--- /dev/null
+++ b/dev-python/ipython/ipython-7.24.1.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-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} )
+PYTHON_REQ_USE='readline,sqlite,threads(+)'
+
+inherit distutils-r1 optfeature virtualx
+
+DESCRIPTION="Advanced interactive shell for Python"
+HOMEPAGE="https://ipython.org/ https://github.com/ipython/ipython/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="doc examples matplotlib notebook nbconvert qt5 +smp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/backcall[${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.16[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
+ dev-python/pickleshare[${PYTHON_USEDEP}]
+ >=dev-python/prompt_toolkit-2[${PYTHON_USEDEP}]
+ <dev-python/prompt_toolkit-3.1[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+ matplotlib? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ )
+"
+
+BDEPEND="
+ test? (
+ app-text/dvipng[truetype]
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ dev-python/nose[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.17[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-2[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
+
+RDEPEND+="
+ nbconvert? ( dev-python/nbconvert[${PYTHON_USEDEP}] )"
+PDEPEND="
+ notebook? (
+ dev-python/notebook[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ dev-python/widgetsnbextension[${PYTHON_USEDEP}]
+ )
+ qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
+ smp? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=( "${FILESDIR}"/2.1.0-substitute-files.patch )
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+python_prepare_all() {
+ # Remove out of date insource files
+ rm IPython/extensions/cythonmagic.py || die
+ rm IPython/extensions/rmagic.py || die
+
+ # Prevent un-needed download during build
+ if use doc; then
+ sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
+ fi
+
+ # Rename the test directory to reduce sys.path pollution
+ # https://github.com/ipython/ipython/issues/12892
+ mv IPython/extensions/{,ipython_}tests || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ emake -C docs html_noapi
+ HTML_DOCS=( docs/build/html/. )
+ fi
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # Create ipythonX.Y symlinks.
+ # TODO:
+ # 1. do we want them for pypy? No. pypy has no numpy
+ # 2. handle it in the eclass instead (use _python_ln_rel).
+ # With pypy not an option the dosym becomes unconditional
+ dosym ../lib/python-exec/${EPYTHON}/ipython \
+ /usr/bin/ipython${EPYTHON#python}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
+
+pkg_postinst() {
+ optfeature "sympyprinting" dev-python/sympy
+ optfeature "cythonmagic" dev-python/cython
+ optfeature "%lprun magic command" dev-python/line_profiler
+ optfeature "%mprun magic command" dev-python/memory_profiler
+
+ if use nbconvert; then
+ if ! has_version app-text/pandoc ; then
+ einfo "Node.js will be used to convert notebooks to other formats"
+ einfo "like HTML. Support for that is still experimental. If you"
+ einfo "encounter any problems, please use app-text/pandoc instead."
+ fi
+ fi
+}
diff --git a/dev-python/jeepney/jeepney-0.6.0.ebuild b/dev-python/jeepney/jeepney-0.6.0.ebuild
index 302339d7f9f8..37ed1d46e064 100644
--- a/dev-python/jeepney/jeepney-0.6.0.ebuild
+++ b/dev-python/jeepney/jeepney-0.6.0.ebuild
@@ -21,6 +21,7 @@ BDEPEND="
test? (
dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/testpath[${PYTHON_USEDEP}]
+ sys-apps/dbus
)
"
@@ -34,6 +35,10 @@ src_prepare() {
distutils-r1_src_prepare
}
+python_test() {
+ dbus-run-session pytest -vv -ra -l || die "tests failed with ${EPYTHON}"
+}
+
python_install_all() {
if use examples; then
docompress -x "/usr/share/doc/${PF}/examples"
diff --git a/dev-python/keyring/keyring-23.0.1.ebuild b/dev-python/keyring/keyring-23.0.1.ebuild
index e1f1f1a3f7f0..8db489f480f2 100644
--- a/dev-python/keyring/keyring-23.0.1.ebuild
+++ b/dev-python/keyring/keyring-23.0.1.ebuild
@@ -3,9 +3,7 @@
EAPI=7
-DISTUTILS_USE_SETUPTOOLS=rdepend
PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
-
inherit distutils-r1
DESCRIPTION="Provides access to the system keyring service"
@@ -35,5 +33,10 @@ distutils_enable_sphinx docs \
export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
python_test() {
- epytest --ignore tests/backends/test_kwallet.py
+ local 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 tests/backends/test_kwallet.py ${deselect[@]/#/--deselect }
}
diff --git a/dev-python/lz4/files/lz4-3.1.3-310-readall.patch b/dev-python/lz4/files/lz4-3.1.3-310-readall.patch
new file mode 100644
index 000000000000..63b306b4e4f3
--- /dev/null
+++ b/dev-python/lz4/files/lz4-3.1.3-310-readall.patch
@@ -0,0 +1,32 @@
+diff --git a/lz4/frame/__init__.py b/lz4/frame/__init__.py
+index 5fa03ce..b77c425 100644
+--- a/lz4/frame/__init__.py
++++ b/lz4/frame/__init__.py
+@@ -617,6 +617,17 @@ class LZ4FrameFile(_compression.BaseStream):
+ # returns at least one byte (except at EOF)
+ return self._buffer.peek(size)
+
++ def readall(self):
++ chunks = bytearray()
++
++ while True:
++ data = self.read(io.DEFAULT_BUFFER_SIZE)
++ chunks += data
++ if not data:
++ break
++
++ return bytes(chunks)
++
+ def read(self, size=-1):
+ """Read up to ``size`` uncompressed bytes from the file.
+
+@@ -632,6 +643,9 @@ class LZ4FrameFile(_compression.BaseStream):
+
+ """
+ self._check_can_read()
++
++ if size < 0 and sys.version_info >= (3, 10):
++ return self.readall()
+ return self._buffer.read(size)
+
+ def read1(self, size=-1):
diff --git a/dev-python/lz4/lz4-3.1.3.ebuild b/dev-python/lz4/lz4-3.1.3.ebuild
index 9d5883368a6d..09f5adb62008 100644
--- a/dev-python/lz4/lz4-3.1.3.ebuild
+++ b/dev-python/lz4/lz4-3.1.3.ebuild
@@ -25,4 +25,8 @@ BDEPEND="
)
"
+PATCHES=(
+ "${FILESDIR}/${P}-310-readall.patch"
+)
+
distutils_enable_tests pytest
diff --git a/dev-python/munch/munch-2.5.0-r1.ebuild b/dev-python/munch/munch-2.5.0-r1.ebuild
index c74da65fdbc9..3e2accdedd09 100644
--- a/dev-python/munch/munch-2.5.0-r1.ebuild
+++ b/dev-python/munch/munch-2.5.0-r1.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/nuitka/Manifest b/dev-python/nuitka/Manifest
index 6a105b538df4..24abc85e255c 100644
--- a/dev-python/nuitka/Manifest
+++ b/dev-python/nuitka/Manifest
@@ -1,2 +1,3 @@
DIST Nuitka-0.6.11.tar.gz 2582563 BLAKE2B e65c3a01f3283b24aadefc47a17a41ebae116265946c24f2225fa7f3f6f824a0a822c76aa2fa1ff33b5a00d4d3762bbac7cd0d090d2627274155b13a48d8f0ba SHA512 c1ead8430f0af3a20d7a14ae3cb34b9a4675c18f0c775e8833b5722cb0acdd8213b28639e52067b3e6758b8b6cc516b05151cfd85560630c92b872dae05a88b4
+DIST Nuitka-0.6.15.1.tar.gz 2712603 BLAKE2B 8e639b19975410143d1b91b4fb4f71c65bd1d9382c07d2f1f431c16b687954cec62c2e4dbe9bb1c6f6981dda1948a87040b2e300919dbe72c7d6bfd0772b73c2 SHA512 70bdb55ff4b57f06f67e3026c6a1fbeaa729e85f0a7e698ba0ab40c4acaebd31925327dd0f5fbf8187779421968bf29f9b0fbc2995193468411b40a1d30889e2
DIST Nuitka-0.6.15.tar.gz 2712097 BLAKE2B 78c43be4a2ef5678d7a0d6164d7cba2b3a67a738215915b001cdb3774e209fcecc167c52db4c3b22d87dde9169e48077875d09f8601df7c8b079e3d57b21aea6 SHA512 9a41e9b8fb3f51ec16dccd5415b3b7d7d201230fea6aff902931be1764ba65e1d5e4885cd772b4c1cb9f36b1b14a02a73351bc5c1b8e7f7bbb87e5d74aad16b4
diff --git a/dev-python/nuitka/nuitka-0.6.15.1.ebuild b/dev-python/nuitka/nuitka-0.6.15.1.ebuild
new file mode 100644
index 000000000000..20c8f712b514
--- /dev/null
+++ b/dev-python/nuitka/nuitka-0.6.15.1.ebuild
@@ -0,0 +1,48 @@
+# 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 flag-o-matic optfeature
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="https://www.nuitka.net"
+SRC_URI="https://nuitka.net/releases/${P^}.tar.gz"
+S="${WORKDIR}/${P^}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~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 "${S}/${PN}/build/inline_copy/lib/scons-2.3.2/SCons" || die
+ eapply_user
+}
+
+python_install() {
+ distutils-r1_python_install
+ python_optimize
+ doman doc/nuitka.1 doc/nuitka3.1 doc/nuitka3-run.1 doc/nuitka-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/pip/pip-21.1.1.ebuild b/dev-python/pip/pip-21.1.1.ebuild
index 5f914109d0d7..30f594b36ca6 100644
--- a/dev-python/pip/pip-21.1.1.ebuild
+++ b/dev-python/pip/pip-21.1.1.ebuild
@@ -40,12 +40,9 @@ BDEPEND="
${RDEPEND}
test? (
dev-python/cryptography[${PYTHON_USEDEP}]
- dev-python/csv23[${PYTHON_USEDEP}]
dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/scripttest[${PYTHON_USEDEP}]
<dev-python/virtualenv-20[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
diff --git a/dev-python/pip/pip-21.1.2.ebuild b/dev-python/pip/pip-21.1.2.ebuild
index 70a92e0f3b59..ff52156abe93 100644
--- a/dev-python/pip/pip-21.1.2.ebuild
+++ b/dev-python/pip/pip-21.1.2.ebuild
@@ -39,12 +39,9 @@ BDEPEND="
${RDEPEND}
test? (
dev-python/cryptography[${PYTHON_USEDEP}]
- dev-python/csv23[${PYTHON_USEDEP}]
dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/scripttest[${PYTHON_USEDEP}]
<dev-python/virtualenv-20[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
diff --git a/dev-python/protobuf-python/protobuf-python-3.15.8.ebuild b/dev-python/protobuf-python/protobuf-python-3.15.8.ebuild
index 225f48136209..73354199acde 100644
--- a/dev-python/protobuf-python/protobuf-python-3.15.8.ebuild
+++ b/dev-python/protobuf-python/protobuf-python-3.15.8.ebuild
@@ -24,7 +24,7 @@ fi
LICENSE="BSD"
SLOT="0/26"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE=""
BDEPEND="${PYTHON_DEPS}
diff --git a/dev-python/pyfakefs/files/pyfakefs-4.4.0-py310.patch b/dev-python/pyfakefs/files/pyfakefs-4.4.0-py310.patch
new file mode 100644
index 000000000000..6ef35df7d1f8
--- /dev/null
+++ b/dev-python/pyfakefs/files/pyfakefs-4.4.0-py310.patch
@@ -0,0 +1,265 @@
+From a8a70bb7746ba24aa60c9915311e1ff5b402146c Mon Sep 17 00:00:00 2001
+From: Carl Montanari <8515611+carlmontanari@users.noreply.github.com>
+Date: Thu, 13 May 2021 22:44:45 -0700
+Subject: [PATCH] Add support for Python 3.10 beta1 (#594)
+
+- add Python 3.10-beta1 to CI
+- adapt fake pathlib, fix pathlib.Path methods link_to, getcwd, lchmod
+- handle dummy encoding "locale" introduced in Python 3.10
+- do not test extra dependencies with Python 3.10 (some are not available)
+---
+ pyfakefs/fake_filesystem.py | 15 ++++---
+ pyfakefs/fake_pathlib.py | 64 ++++++++++++++++++++++-------
+ pyfakefs/helpers.py | 9 ++++
+ pyfakefs/tests/fake_pathlib_test.py | 27 +++++++++---
+ 6 files changed, 109 insertions(+), 32 deletions(-)
+
+diff --git a/pyfakefs/fake_filesystem.py b/pyfakefs/fake_filesystem.py
+index 1e9bfc8..971dc93 100644
+--- a/pyfakefs/fake_filesystem.py
++++ b/pyfakefs/fake_filesystem.py
+@@ -114,7 +114,7 @@ from pyfakefs.fake_scandir import scandir, walk
+ from pyfakefs.helpers import (
+ FakeStatResult, BinaryBufferIO, TextBufferIO,
+ is_int_type, is_byte_string, is_unicode_string,
+- make_string_path, IS_WIN, to_string, matching_string
++ make_string_path, IS_WIN, to_string, matching_string, real_encoding
+ )
+ from pyfakefs import __version__ # noqa: F401 for upwards compatibility
+
+@@ -293,7 +293,7 @@ class FakeFile:
+ if st_mode >> 12 == 0:
+ st_mode |= S_IFREG
+ self.stat_result.st_mode = st_mode
+- self.encoding = encoding
++ self.encoding = real_encoding(encoding)
+ self.errors = errors or 'strict'
+ self._byte_contents = self._encode_contents(contents)
+ self.stat_result.st_size = (
+@@ -430,7 +430,7 @@ class FakeFile:
+ OSError: if `st_size` is not a non-negative integer,
+ or if it exceeds the available file system space.
+ """
+- self.encoding = encoding
++ self.encoding = real_encoding(encoding)
+ changed = self._set_initial_contents(contents)
+ if self._side_effect is not None:
+ self._side_effect(self)
+@@ -1177,9 +1177,12 @@ class FakeFilesystem:
+ OSError: if the filesystem object doesn't exist.
+ """
+ # stat should return the tuple representing return value of os.stat
+- file_object = self.resolve(
+- entry_path, follow_symlinks,
+- allow_fd=True, check_read_perm=False)
++ try:
++ file_object = self.resolve(
++ entry_path, follow_symlinks,
++ allow_fd=True, check_read_perm=False)
++ except TypeError:
++ file_object = self.resolve(entry_path)
+ if not is_root():
+ # make sure stat raises if a parent dir is not readable
+ parent_dir = file_object.parent_dir
+diff --git a/pyfakefs/fake_pathlib.py b/pyfakefs/fake_pathlib.py
+index b43b178..09933fa 100644
+--- a/pyfakefs/fake_pathlib.py
++++ b/pyfakefs/fake_pathlib.py
+@@ -53,8 +53,8 @@ def init_module(filesystem):
+
+ def _wrap_strfunc(strfunc):
+ @functools.wraps(strfunc)
+- def _wrapped(pathobj, *args):
+- return strfunc(pathobj.filesystem, str(pathobj), *args)
++ def _wrapped(pathobj, *args, **kwargs):
++ return strfunc(pathobj.filesystem, str(pathobj), *args, **kwargs)
+
+ return staticmethod(_wrapped)
+
+@@ -94,19 +94,24 @@ class _FakeAccessor(accessor):
+
+ listdir = _wrap_strfunc(FakeFilesystem.listdir)
+
+- chmod = _wrap_strfunc(FakeFilesystem.chmod)
+-
+ if use_scandir:
+ scandir = _wrap_strfunc(fake_scandir.scandir)
+
+ if hasattr(os, "lchmod"):
+ lchmod = _wrap_strfunc(lambda fs, path, mode: FakeFilesystem.chmod(
+ fs, path, mode, follow_symlinks=False))
++ chmod = _wrap_strfunc(FakeFilesystem.chmod)
+ else:
+- def lchmod(self, pathobj, mode):
++ def lchmod(self, pathobj, *args, **kwargs):
+ """Raises not implemented for Windows systems."""
+ raise NotImplementedError("lchmod() not available on this system")
+
++ def chmod(self, pathobj, *args, **kwargs):
++ if "follow_symlinks" in kwargs and not kwargs["follow_symlinks"]:
++ raise NotImplementedError(
++ "lchmod() not available on this system")
++ return pathobj.filesystem.chmod(str(pathobj), *args, **kwargs)
++
+ mkdir = _wrap_strfunc(FakeFilesystem.makedir)
+
+ unlink = _wrap_strfunc(FakeFilesystem.remove)
+@@ -124,13 +129,21 @@ class _FakeAccessor(accessor):
+ FakeFilesystem.create_symlink(fs, file_path, link_target,
+ create_missing_dirs=False))
+
+- if sys.version_info >= (3, 8):
++ if (3, 8) <= sys.version_info < (3, 10):
+ link_to = _wrap_binary_strfunc(
+ lambda fs, file_path, link_target:
+ FakeFilesystem.link(fs, file_path, link_target))
+
+- if sys.version_info >= (3, 9):
+- readlink = _wrap_strfunc(FakeFilesystem.readlink)
++ if sys.version_info >= (3, 10):
++ link = _wrap_binary_strfunc(
++ lambda fs, file_path, link_target:
++ FakeFilesystem.link(fs, file_path, link_target))
++
++ # this will use the fake filesystem because os is patched
++ def getcwd(self):
++ return os.getcwd()
++
++ readlink = _wrap_strfunc(FakeFilesystem.readlink)
+
+ utime = _wrap_strfunc(FakeFilesystem.utime)
+
+@@ -461,19 +474,42 @@ class FakePath(pathlib.Path):
+ cls = (FakePathlibModule.WindowsPath
+ if cls.filesystem.is_windows_fs
+ else FakePathlibModule.PosixPath)
+- self = cls._from_parts(args, init=True)
++ self = cls._from_parts(args)
+ return self
+
+- def _path(self):
+- """Returns the underlying path string as used by the fake filesystem.
+- """
+- return str(self)
++ @classmethod
++ def _from_parts(cls, args, init=False): # pylint: disable=unused-argument
++ # Overwritten to call _init to set the fake accessor,
++ # which is not done since Python 3.10
++ self = object.__new__(cls)
++ self._init()
++ drv, root, parts = self._parse_args(args)
++ self._drv = drv
++ self._root = root
++ self._parts = parts
++ return self
++
++ @classmethod
++ def _from_parsed_parts(cls, drv, root, parts):
++ # Overwritten to call _init to set the fake accessor,
++ # which is not done since Python 3.10
++ self = object.__new__(cls)
++ self._init()
++ self._drv = drv
++ self._root = root
++ self._parts = parts
++ return self
+
+ def _init(self, template=None):
+ """Initializer called from base class."""
+ self._accessor = _fake_accessor
+ self._closed = False
+
++ def _path(self):
++ """Returns the underlying path string as used by the fake filesystem.
++ """
++ return str(self)
++
+ @classmethod
+ def cwd(cls):
+ """Return a new path pointing to the current working directory
+@@ -722,7 +758,7 @@ class RealPath(pathlib.Path):
+ if cls is RealPathlibModule.Path:
+ cls = (RealPathlibModule.WindowsPath if os.name == 'nt'
+ else RealPathlibModule.PosixPath)
+- self = cls._from_parts(args, init=True)
++ self = cls._from_parts(args)
+ return self
+
+
+diff --git a/pyfakefs/helpers.py b/pyfakefs/helpers.py
+index aa3959d..08962fc 100644
+--- a/pyfakefs/helpers.py
++++ b/pyfakefs/helpers.py
+@@ -57,6 +57,15 @@ def to_string(path):
+ return path
+
+
++def real_encoding(encoding):
++ """Since Python 3.10, the new function ``io.text_encoding`` returns
++ "locale" as the encoding if None is defined. This will be handled
++ as no encoding in pyfakefs."""
++ if sys.version_info >= (3, 10):
++ return encoding if encoding != "locale" else None
++ return encoding
++
++
+ def matching_string(matched, string):
+ """Return the string as byte or unicode depending
+ on the type of matched, assuming string is an ASCII string.
+diff --git a/pyfakefs/tests/fake_pathlib_test.py b/pyfakefs/tests/fake_pathlib_test.py
+index 5dcc57f..efea509 100644
+--- a/pyfakefs/tests/fake_pathlib_test.py
++++ b/pyfakefs/tests/fake_pathlib_test.py
+@@ -378,10 +378,11 @@ class FakePathlibFileObjectPropertyTest(RealPathlibTestCase):
+ # we get stat.S_IFLNK | 0o755 under MacOs
+ self.assertEqual(link_stat.st_mode, stat.S_IFLNK | 0o777)
+
+- @unittest.skipIf(sys.platform == 'darwin',
+- 'Different behavior under MacOs')
+ def test_lchmod(self):
+ self.skip_if_symlink_not_supported()
++ if (sys.version_info >= (3, 10) and self.use_real_fs() and
++ 'chmod' not in os.supports_follow_symlinks):
++ raise unittest.SkipTest('follow_symlinks not available for chmod')
+ file_stat = self.os.stat(self.file_path)
+ link_stat = self.os.lstat(self.file_link_path)
+ if not hasattr(os, "lchmod"):
+@@ -390,8 +391,9 @@ class FakePathlibFileObjectPropertyTest(RealPathlibTestCase):
+ else:
+ self.path(self.file_link_path).lchmod(0o444)
+ self.assertEqual(file_stat.st_mode, stat.S_IFREG | 0o666)
+- # we get stat.S_IFLNK | 0o755 under MacOs
+- self.assertEqual(link_stat.st_mode, stat.S_IFLNK | 0o444)
++ # the exact mode depends on OS and Python version
++ self.assertEqual(link_stat.st_mode & 0o777700,
++ stat.S_IFLNK | 0o700)
+
+ def test_resolve(self):
+ self.create_dir(self.make_path('antoine', 'docs'))
+@@ -968,7 +970,22 @@ class FakePathlibUsageInOsFunctionsTest(RealPathlibTestCase):
+ def test_stat(self):
+ path = self.make_path('foo', 'bar', 'baz')
+ self.create_file(path, contents='1234567')
+- self.assertEqual(self.os.stat(path), self.os.stat(self.path(path)))
++ self.assertEqual(self.os.stat(path), self.path(path).stat())
++
++ @unittest.skipIf(sys.version_info < (3, 10), "New in Python 3.10")
++ def test_stat_follow_symlinks(self):
++ self.check_posix_only()
++ directory = self.make_path('foo')
++ base_name = 'bar'
++ file_path = self.path(self.os.path.join(directory, base_name))
++ link_path = self.path(self.os.path.join(directory, 'link'))
++ contents = "contents"
++ self.create_file(file_path, contents=contents)
++ self.create_symlink(link_path, base_name)
++ self.assertEqual(len(contents),
++ link_path.stat(follow_symlinks=True)[stat.ST_SIZE])
++ self.assertEqual(len(base_name),
++ link_path.stat(follow_symlinks=False)[stat.ST_SIZE])
+
+ def test_utime(self):
+ path = self.make_path('some_file')
+--
+2.31.1
+
diff --git a/dev-python/pyfakefs/pyfakefs-4.4.0.ebuild b/dev-python/pyfakefs/pyfakefs-4.4.0.ebuild
index 356775062db5..1f72017dac7b 100644
--- a/dev-python/pyfakefs/pyfakefs-4.4.0.ebuild
+++ b/dev-python/pyfakefs/pyfakefs-4.4.0.ebuild
@@ -18,6 +18,10 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x
distutils_enable_tests pytest
+PATCHES=(
+ "${FILESDIR}"/${P}-py310.patch
+)
+
python_test() {
"${EPYTHON}" -m pyfakefs.tests.all_tests -v || die "tests failed under ${EPYTHON}"
}
diff --git a/dev-python/pyilmbase/pyilmbase-2.5.6.ebuild b/dev-python/pyilmbase/pyilmbase-2.5.6.ebuild
index 2b972acb54a7..05250f941889 100644
--- a/dev-python/pyilmbase/pyilmbase-2.5.6.ebuild
+++ b/dev-python/pyilmbase/pyilmbase-2.5.6.ebuild
@@ -13,7 +13,7 @@ S="${WORKDIR}/openexr-${PV}/PyIlmBase"
LICENSE="BSD"
SLOT="0/25"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
IUSE="exceptions +numpy test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pytest/files/pytest-6.2.4-py310.patch b/dev-python/pytest/files/pytest-6.2.4-py310.patch
new file mode 100644
index 000000000000..88c8f703f08a
--- /dev/null
+++ b/dev-python/pytest/files/pytest-6.2.4-py310.patch
@@ -0,0 +1,34 @@
+From 78fb97105f38dc286353bbc331a243b6e753fe3c Mon Sep 17 00:00:00 2001
+From: Petr Viktorin <encukou@gmail.com>
+Date: Wed, 6 Jan 2021 13:33:33 +0100
+Subject: [PATCH] Make code.FormattedExcinfo.get_source more defensive
+
+When line_index was a large negative number, get_source failed
+on `source.lines[line_index]`.
+Use the same dummy Source as with a large positive line_index.
+---
+ src/_pytest/_code/code.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/_pytest/_code/code.py b/src/_pytest/_code/code.py
+index b85217560..af3bdf056 100644
+--- a/src/_pytest/_code/code.py
++++ b/src/_pytest/_code/code.py
+@@ -721,11 +721,11 @@ class FormattedExcinfo:
+ ) -> List[str]:
+ """Return formatted and marked up source lines."""
+ lines = []
+- if source is None or line_index >= len(source.lines):
++ if source is not None and line_index < 0:
++ line_index += len(source.lines)
++ if source is None or line_index >= len(source.lines) or line_index < 0:
+ source = Source("???")
+ line_index = 0
+- if line_index < 0:
+- line_index += len(source)
+ space_prefix = " "
+ if short:
+ lines.append(space_prefix + source.lines[line_index].strip())
+--
+2.31.1
+
diff --git a/dev-python/pytest/pytest-6.2.4.ebuild b/dev-python/pytest/pytest-6.2.4-r1.ebuild
index 27c33f540af8..e1c3b5d1583d 100644
--- a/dev-python/pytest/pytest-6.2.4.ebuild
+++ b/dev-python/pytest/pytest-6.2.4-r1.ebuild
@@ -43,6 +43,10 @@ BDEPEND="
' python3_{7..9} pypy3)
)"
+PATCHES=(
+ "${FILESDIR}"/${P}-py310.patch
+)
+
src_test() {
# workaround new readline defaults
echo "set enable-bracketed-paste off" > "${T}"/inputrc || die
diff --git a/dev-python/readme_renderer/readme_renderer-29.0.ebuild b/dev-python/readme_renderer/readme_renderer-29.0.ebuild
index 62d973632021..e191724f84a8 100644
--- a/dev-python/readme_renderer/readme_renderer-29.0.ebuild
+++ b/dev-python/readme_renderer/readme_renderer-29.0.ebuild
@@ -3,9 +3,7 @@
EAPI=7
-DISTUTILS_USE_SETUPTOOLS=bdepend
PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
-
inherit distutils-r1
DESCRIPTION="a library for rendering \"readme\" descriptions for Warehouse"
diff --git a/dev-python/requests-toolbelt/files/requests-toolbelt-0.9.1-py310.patch b/dev-python/requests-toolbelt/files/requests-toolbelt-0.9.1-py310.patch
new file mode 100644
index 000000000000..182e413158cd
--- /dev/null
+++ b/dev-python/requests-toolbelt/files/requests-toolbelt-0.9.1-py310.patch
@@ -0,0 +1,37 @@
+From 7188b06330e5260be20bce8cbcf0d5ae44e34eaf Mon Sep 17 00:00:00 2001
+From: Jon Dufresne <jon.dufresne@gmail.com>
+Date: Fri, 1 Feb 2019 16:30:01 -0800
+Subject: [PATCH] Fix collections.abc deprecation warning in downloadutils
+
+Warning appears as:
+
+tests/test_downloadutils.py::test_stream_response_to_specific_filename
+ requests_toolbelt/downloadutils/stream.py:161: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
+ if path and isinstance(getattr(path, 'write', None), collections.Callable):
+---
+ requests_toolbelt/downloadutils/stream.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/requests_toolbelt/downloadutils/stream.py b/requests_toolbelt/downloadutils/stream.py
+index eed60a7..1d1c31b 100644
+--- a/requests_toolbelt/downloadutils/stream.py
++++ b/requests_toolbelt/downloadutils/stream.py
+@@ -1,6 +1,5 @@
+ # -*- coding: utf-8 -*-
+ """Utilities for dealing with streamed requests."""
+-import collections
+ import os.path
+ import re
+
+@@ -158,7 +157,7 @@ def stream_response_to_file(response, path=None, chunksize=_DEFAULT_CHUNKSIZE):
+ pre_opened = False
+ fd = None
+ filename = None
+- if path and isinstance(getattr(path, 'write', None), collections.Callable):
++ if path and callable(getattr(path, 'write', None)):
+ pre_opened = True
+ fd = path
+ filename = getattr(fd, 'name', None)
+--
+2.31.1
+
diff --git a/dev-python/requests-toolbelt/requests-toolbelt-0.9.1.ebuild b/dev-python/requests-toolbelt/requests-toolbelt-0.9.1.ebuild
index 91a2133a6e86..ea4742c0bcfc 100644
--- a/dev-python/requests-toolbelt/requests-toolbelt-0.9.1.ebuild
+++ b/dev-python/requests-toolbelt/requests-toolbelt-0.9.1.ebuild
@@ -36,6 +36,8 @@ PATCHES=(
# disable tests that require internet access
"${FILESDIR}/requests-toolbelt-0.9.1-tests-internet.patch"
+
+ "${FILESDIR}/requests-toolbelt-0.9.1-py310.patch"
)
distutils_enable_tests pytest
diff --git a/dev-python/vdirsyncer/vdirsyncer-0.16.8.ebuild b/dev-python/vdirsyncer/vdirsyncer-0.16.8-r1.ebuild
index 5c0dfece6e81..afc223ec4f86 100644
--- a/dev-python/vdirsyncer/vdirsyncer-0.16.8.ebuild
+++ b/dev-python/vdirsyncer/vdirsyncer-0.16.8-r1.ebuild
@@ -17,7 +17,7 @@ LICENSE="BSD"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
SLOT="0"
-PATCHES=( "${FILESDIR}/${P}-click-7-compat.patch" )
+PATCHES=( "${FILESDIR}/${PN}-0.16.8-click-7-compat.patch" )
RDEPEND="dev-python/click[${PYTHON_USEDEP}]
>=dev-python/click-log-0.3.0[${PYTHON_USEDEP}]
@@ -38,6 +38,15 @@ DOCS=( AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst README.rst config.example )
distutils_enable_tests pytest
+src_prepare() {
+ default
+
+ # Replace getiterator with iter for python3.9.
+ # See https://github.com/pimutils/vdirsyncer/issues/880.
+ sed -i "s/rv.extend(item.getiterator())/rv.extend(iter(item))/" \
+ vdirsyncer/storage/dav.py || die
+}
+
python_test() {
# skip tests needing servers running
local -x DAV_SERVER=skip