python-httpx/python-httpx.spec
Steve Kowalik a48e72919e - Update to 0.22.0:
* Add support for `Client(allow_redirects=<bool>)`. (Pull #1790)
  * Add automatic character set detection, when no `charset` is included in the response `Content-Type` header. (Pull #1791)
  * Added the `httpx` command-line client.
  * Response instances now include `.is_informational`, `.is_success`, `.is_redirect`, `.is_client_error`, and `.is_server_error`
    properties for checking 1xx, 2xx, 3xx, 4xx, and 5xx response types. Note that the behaviour of `.is_redirect` is slightly different in that it now returns True for all 3xx responses, in order to allow for a consistent set of properties onto the different HTTP status code types. The `response.has_redirect_location` location may be used to determine responses with properly formed URL redirects.
  * Support for [the SOCKS5 proxy protocol](https://www.python-httpx.org/advanced/#socks) via [the `socksio` package](https://github.com/sethmlarson/socksio). (#2034)
  * Support for custom headers in multipart/form-data requests (#1936)
  * Event hooks are now also called for any additional redirect or auth requests/responses. (Pull #1806)
  * Strictly enforce that upload files must be opened in binary mode. (Pull #1736)
  * Strictly enforce that client instances can only be opened and closed once, and cannot be re-opened. (Pull #1800)
  * Drop `mode` argument from `httpx.Proxy(..., mode=...)`. (Pull #1795)
  * The `allow_redirects` flag is now `follow_redirects` and defaults to `False`.
  * The `raise_for_status()` method will now raise an exception for any responses
    except those with 2xx status codes. Previously only 4xx and 5xx status codes
    would result in an exception.
  * The low-level transport API changes to the much simpler `response = transport.handle_request(request)`.
  * The `client.send()` method no longer accepts a `timeout=...` argument, but the
    `client.build_request()` does. This required by the signature change of the
    Transport API. The request timeout configuration is now stored on the request
    instance, as `request.extensions['timeout']`.
  * `response.iter_bytes()` no longer raises a ValueError when called on a response with no content. (Pull #1827)
  * The `'wsgi.error'` configuration now defaults to `sys.stderr`, and is corrected to be a `TextIO` interface, not a `BytesIO` interface. Additionally, the WSGITransport now accepts a `wsgi_error` configuration. (Pull #1828)
  * Follow the WSGI spec by properly closing the iterable returned by the application. (Pull #1830)
  * Don't perform unreliable close/warning on `__del__` with unclosed clients. (#2026)
  * Fix `Headers.update(...)` to correctly handle repeated headers (#2038)
  * Fix streaming uploads using `SyncByteStream` or `AsyncByteStream`. Regression in 0.21.2. (#2016)
  * HTTP/2 support for tunnelled proxy cases. (#2009)
  * Improved the speed of large file uploads. (#1948)
  * The `response.url` property is now correctly annotated as `URL`, instead of `Optional[URL]`. (#1940)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-httpx?expand=0&rev=6
2022-02-01 07:07:59 +00:00

117 lines
3.4 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/
#
%{?!python_module:%define python_module() python3-%{**}}
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
%define skip_python2 1
Name: python-httpx%{psuffix}
Version: 0.22.0
Release: 0
Summary: Python HTTP client with async support
License: BSD-3-Clause
URL: https://github.com/encode/httpx
Source: https://github.com/encode/httpx/archive/%{version}.tar.gz#/httpx-%{version}.tar.gz
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-brotlicffi
Requires: python-certifi
Requires: python-chardet >= 3.0
Requires: python-charset-normalizer >= 2.0.6
Requires: python-h11 >= 0.8.0
Requires: python-h2 >= 3.0
Requires: python-hstspreload >= 2019.8.27
Requires: python-httpcore >= 0.14.0
Requires: python-idna >= 2.0
Requires: python-rfc3986 >= 1.3
Requires: python-sniffio
Requires(post): update-alternatives
Requires(postun):update-alternatives
BuildArch: noarch
# SECTION test requirements
%if %{with test}
BuildRequires: %{python_module anyio}
BuildRequires: %{python_module async_generator}
BuildRequires: %{python_module brotlicffi}
BuildRequires: %{python_module certifi}
BuildRequires: %{python_module chardet >= 3.0}
BuildRequires: %{python_module charset-normalizer >= 2.0.6}
BuildRequires: %{python_module h11 >= 0.8.0}
BuildRequires: %{python_module h2 >= 3.0}
BuildRequires: %{python_module hstspreload >= 2019.8.27}
BuildRequires: %{python_module httpcore >= 0.14.0}
BuildRequires: %{python_module httpx}
BuildRequires: %{python_module idna >= 2.0}
BuildRequires: %{python_module pytest-asyncio}
BuildRequires: %{python_module pytest-trio}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module rfc3986 >= 1.3}
BuildRequires: %{python_module sniffio}
BuildRequires: %{python_module trio}
BuildRequires: %{python_module trustme}
BuildRequires: %{python_module uvicorn}
BuildRequires: %{python_module uvloop}
%endif
# /SECTION
%python_subpackages
%description
Python HTTP client with async support.
%prep
%setup -q -n httpx-%{version}
rm setup.cfg
%build
%python_build
%install
%if !%{with test}
%python_install
%python_clone -a %{buildroot}%{_bindir}/httpx
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
%check
%if %{with test}
%pytest -k 'not (network or socks or test_main or response_no_charset or test_text_decoder)'
%endif
%post
%python_install_alternative httpx
%postun
%python_uninstall_alternative httpx
%if !%{with test}
%files %{python_files}
%doc CHANGELOG.md README.md
%license LICENSE.md
%python_alternative %{_bindir}/httpx
%{python_sitelib}/httpx*
%endif
%changelog