forked from pool/python-requests
* Officially added support for Python 3.10. (#5928) * Added a `requests.exceptions.JSONDecodeError` to unify JSON exceptions between Python 2 and 3. This gets raised in the `response.json()` method, and is backwards compatible as it inherits from previously thrown exceptions. Can be caught from `requests.exceptions.RequestException` as well. (#5856) * Improved error text for misnamed `InvalidSchema` and `MissingSchema` exceptions. This is a temporary fix until exceptions can be renamed (Schema->Scheme). (#6017) * Improved proxy parsing for proxy URLs missing a scheme. This will address recent changes to `urlparse` in Python 3.9+. (#5917) * Fixed defect in `extract_zipped_paths` which could result in an infinite loop for some paths. (#5851) * Fixed handling for `AttributeError` when calculating length of files obtained by `Tarfile.extractfile()`. (#5239) * Fixed urllib3 exception leak, wrapping `urllib3.exceptions.InvalidHeader` with `requests.exceptions.InvalidHeader`. (#5914) * Fixed bug where two Host headers were sent for chunked requests. (#5391) * Fixed regression in Requests 2.26.0 where `Proxy-Authorization` was incorrectly stripped from all requests sent with `Session.send`. (#5924) * Fixed performance regression in 2.26.0 for hosts with a large number of proxies available in the environment. (#5924) * Fixed idna exception leak, wrapping `UnicodeError` with `requests.exceptions.InvalidURL` for URLs with a leading dot (.) in the domain. (#5414) * Requests support for Python 2.7 and 3.6 will be ending in 2022. While we don't have exact dates, Requests 2.27.x is likely to be the last release series providing support. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-requests?expand=0&rev=156
132 lines
4.1 KiB
RPMSpec
132 lines
4.1 KiB
RPMSpec
#
|
|
# spec file
|
|
#
|
|
# Copyright (c) 2022 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
%if "%{flavor}" == "test"
|
|
%define psuffix -test
|
|
%bcond_without test
|
|
%else
|
|
%define psuffix %{nil}
|
|
%bcond_with test
|
|
%endif
|
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
|
Name: python-requests%{psuffix}
|
|
Version: 2.27.0
|
|
Release: 0
|
|
Summary: Python HTTP Library
|
|
License: Apache-2.0
|
|
Group: Development/Languages/Python
|
|
URL: https://docs.python-requests.org/
|
|
Source: https://files.pythonhosted.org/packages/source/r/requests/requests-%{version}.tar.gz
|
|
# PATCH-FIX-SUSE: do not hardcode versions in setup.py/requirements
|
|
Patch0: requests-no-hardcoded-version.patch
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
Requires: ca-certificates
|
|
Requires: python
|
|
Requires: python-certifi >= 2017.4.17
|
|
Requires: python-charset-normalizer >= 2.0.0
|
|
Requires: python-idna >= 2.5
|
|
Requires: python-py
|
|
Requires: python-urllib3 >= 1.21.1
|
|
BuildArch: noarch
|
|
%if 0%{?_no_weakdeps}
|
|
Requires: ca-certificates-mozilla
|
|
Requires: python-PySocks >= 1.5.6
|
|
Requires: python-cryptography >= 1.3.4
|
|
Requires: python-pyOpenSSL >= 0.14
|
|
%else
|
|
Recommends: ca-certificates-mozilla
|
|
Recommends: python-PySocks >= 1.5.6
|
|
Recommends: python-cryptography >= 1.3.4
|
|
Recommends: python-pyOpenSSL >= 0.14
|
|
%endif
|
|
%if %{with test}
|
|
BuildRequires: %{python_module PySocks >= 1.5.6}
|
|
BuildRequires: %{python_module brotlipy}
|
|
BuildRequires: %{python_module charset-normalizer >= 2.0.0}
|
|
BuildRequires: %{python_module idna >= 2.5}
|
|
BuildRequires: %{python_module pytest-httpbin >= 0.0.7}
|
|
BuildRequires: %{python_module pytest-mock}
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module requests >= %{version}}
|
|
BuildRequires: %{python_module trustme}
|
|
%endif
|
|
%python_subpackages
|
|
|
|
%description
|
|
Requests is an HTTP library, written in Python, as an alternative
|
|
to Python's builtin urllib2 which requires work (even
|
|
method overrides) to perform basic tasks.
|
|
|
|
Features of Requests:
|
|
- GET, HEAD, POST, PUT, DELETE Requests:
|
|
+ HTTP Header Request Attachment.
|
|
+ Data/Params Request Attachment.
|
|
+ Multipart File Uploads.
|
|
+ CookieJar Support.
|
|
+ Redirection History.
|
|
+ Redirection Recursion Urllib Fix.
|
|
+ Automatic Decompression of GZipped Content.
|
|
+ Unicode URL Support.
|
|
- Authentication:
|
|
+ URL + HTTP Auth Registry.
|
|
|
|
%prep
|
|
%setup -q -n requests-%{version}
|
|
%autopatch -p1
|
|
|
|
# drop shebang from certs.py
|
|
sed -i '1s/^#!.*$//' requests/certs.py
|
|
|
|
# remove 'never' default parameter from digest-auth check
|
|
# requires httpbin 0.6.0
|
|
sed -i "s#\(httpbin.*\), 'never'#\1#" tests/test_requests.py
|
|
|
|
%build
|
|
%python_build
|
|
|
|
%install
|
|
%if !%{with test}
|
|
%python_install
|
|
# check that urllib3 is not installed
|
|
test ! -e %{buildroot}%{python3_sitelib}/requests/packages/urllib3
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
%endif
|
|
|
|
# NOTE(aplanas) If we do not have the certificates, we some of the
|
|
# tests will fail, so for now we only run the tests in openSUSE
|
|
%if 0%{?suse_version} && %{with test}
|
|
%check
|
|
touch Pipfile
|
|
# exclude tests connecting to TARPIT
|
|
# exclude test_https_warnings as is flaky
|
|
%python_exec -m pytest -v tests -k "not (TestTimeout or connect or test_https_warnings or test_pyopenssl_redirect)"
|
|
%endif
|
|
|
|
%if !%{with test}
|
|
%files %{python_files}
|
|
%license LICENSE
|
|
%doc HISTORY.md README.md
|
|
%{python_sitelib}/requests/
|
|
%{python_sitelib}/requests-*
|
|
%endif
|
|
|
|
%changelog
|