summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-06-26 07:47:23 +0100
committerSam James <sam@gentoo.org>2022-06-26 07:47:48 +0100
commit3d1e085725f9968e622a29d985c5e18c1ab25efc (patch)
treeefcc17966c4f73a5cbba8b7ca7f047e7bd09c831 /dev-python/requests
parentdev-ruby/combustion: drop 1.3.4, 1.3.5 (diff)
downloadgentoo-3d1e085725f9968e622a29d985c5e18c1ab25efc.tar.gz
gentoo-3d1e085725f9968e622a29d985c5e18c1ab25efc.tar.bz2
gentoo-3d1e085725f9968e622a29d985c5e18c1ab25efc.zip
dev-python/requests: unpin chardet
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-python/requests')
-rw-r--r--dev-python/requests/files/requests-2.28.0-drop-dependency-warnings.patch21
-rw-r--r--dev-python/requests/files/requests-2.28.0-unpin-chardet.patch37
-rw-r--r--dev-python/requests/requests-2.28.0-r2.ebuild74
3 files changed, 132 insertions, 0 deletions
diff --git a/dev-python/requests/files/requests-2.28.0-drop-dependency-warnings.patch b/dev-python/requests/files/requests-2.28.0-drop-dependency-warnings.patch
new file mode 100644
index 000000000000..ec3634966a07
--- /dev/null
+++ b/dev-python/requests/files/requests-2.28.0-drop-dependency-warnings.patch
@@ -0,0 +1,21 @@
+Minimal patch to avoid often rebasing.
+
+We already have tools to try check for these (`pip check` obviously, but also
+app-portage/gpyutils provides gpy-verify-deps).
+--- a/requests/__init__.py
++++ b/requests/__init__.py
+@@ -106,13 +106,7 @@ try:
+ urllib3.__version__, chardet_version, charset_normalizer_version
+ )
+ except (AssertionError, ValueError):
+- warnings.warn(
+- "urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported "
+- "version!".format(
+- urllib3.__version__, chardet_version, charset_normalizer_version
+- ),
+- RequestsDependencyWarning,
+- )
++ pass
+
+ # Attempt to enable urllib3's fallback for SNI support
+ # if the standard library doesn't support SNI or the
diff --git a/dev-python/requests/files/requests-2.28.0-unpin-chardet.patch b/dev-python/requests/files/requests-2.28.0-unpin-chardet.patch
new file mode 100644
index 000000000000..bd0451daaf13
--- /dev/null
+++ b/dev-python/requests/files/requests-2.28.0-unpin-chardet.patch
@@ -0,0 +1,37 @@
+https://github.com/psf/requests/pull/6179
+
+From 09483bae4f56e4f4c227e2d25ee920c538271feb Mon Sep 17 00:00:00 2001
+From: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
+Date: Sun, 26 Jun 2022 12:18:42 +0800
+Subject: [PATCH] Update Dependency with `chardet>=3.0.2,<6`
+
+https://github.com/chardet/chardet/releases/tag/5.0.0 was released on
+2022-06-25 with remove of Python 3.6 support, which also align with our
+Python > 3.6 requirement.
+
+Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
+--- a/requests/__init__.py
++++ b/requests/__init__.py
+@@ -75,8 +75,8 @@ def check_compatibility(urllib3_version, chardet_version, charset_normalizer_ver
+ if chardet_version:
+ major, minor, patch = chardet_version.split(".")[:3]
+ major, minor, patch = int(major), int(minor), int(patch)
+- # chardet_version >= 3.0.2, < 5.0.0
+- assert (3, 0, 2) <= (major, minor, patch) < (5, 0, 0)
++ # chardet_version >= 3.0.2, < 6.0.0
++ assert (3, 0, 2) <= (major, minor, patch) < (6, 0, 0)
+ elif charset_normalizer_version:
+ major, minor, patch = charset_normalizer_version.split(".")[:3]
+ major, minor, patch = int(major), int(minor), int(patch)
+--- a/setup.py
++++ b/setup.py
+@@ -123,7 +123,7 @@ def run_tests(self):
+ extras_require={
+ "security": [],
+ "socks": ["PySocks>=1.5.6, !=1.5.7"],
+- "use_chardet_on_py3": ["chardet>=3.0.2,<5"],
++ "use_chardet_on_py3": ["chardet>=3.0.2,<6"],
+ },
+ project_urls={
+ "Documentation": "https://requests.readthedocs.io",
+
diff --git a/dev-python/requests/requests-2.28.0-r2.ebuild b/dev-python/requests/requests-2.28.0-r2.ebuild
new file mode 100644
index 000000000000..c3c23c38db26
--- /dev/null
+++ b/dev-python/requests/requests-2.28.0-r2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 7 -- sys-apps/portage dep
+EAPI=7
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8..11} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library for human beings"
+HOMEPAGE="
+ https://requests.readthedocs.io/
+ https://github.com/psf/requests/
+ https://pypi.org/project/requests/
+"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="socks5"
+
+RDEPEND="
+ >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}]
+ dev-python/charset_normalizer[${PYTHON_USEDEP}]
+ <dev-python/idna-4[${PYTHON_USEDEP}]
+ <dev-python/urllib3-1.27[${PYTHON_USEDEP}]
+ socks5? ( >=dev-python/PySocks-1.5.6[${PYTHON_USEDEP}] )
+"
+
+BDEPEND="
+ test? (
+ dev-python/pytest-httpbin[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ >=dev-python/PySocks-1.5.6[${PYTHON_USEDEP}]
+ !alpha? ( !hppa? ( !ia64? (
+ dev-python/trustme[${PYTHON_USEDEP}]
+ ) ) )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.28.0-unpin-charset-normalizer.patch
+ "${FILESDIR}"/${PN}-2.28.0-unpin-chardet.patch
+ "${FILESDIR}"/${PN}-2.28.0-drop-dependency-warnings.patch
+)
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet (doctests)
+ requests/__init__.py::requests
+ requests/api.py::requests.api.request
+ requests/models.py::requests.models.PreparedRequest
+ requests/sessions.py::requests.sessions.Session
+ # require IPv4 interface in 10.* range
+ tests/test_requests.py::TestTimeout::test_connect_timeout
+ tests/test_requests.py::TestTimeout::test_total_timeout_connect
+ # TODO: openssl?
+ tests/test_requests.py::TestRequests::test_pyopenssl_redirect
+ )
+
+ if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/test_requests.py::TestRequests::test_https_warnings
+ )
+ fi
+
+ epytest
+}