jpayne@68
|
1 Metadata-Version: 2.3
|
jpayne@68
|
2 Name: httpx
|
jpayne@68
|
3 Version: 0.28.1
|
jpayne@68
|
4 Summary: The next generation HTTP client.
|
jpayne@68
|
5 Project-URL: Changelog, https://github.com/encode/httpx/blob/master/CHANGELOG.md
|
jpayne@68
|
6 Project-URL: Documentation, https://www.python-httpx.org
|
jpayne@68
|
7 Project-URL: Homepage, https://github.com/encode/httpx
|
jpayne@68
|
8 Project-URL: Source, https://github.com/encode/httpx
|
jpayne@68
|
9 Author-email: Tom Christie <tom@tomchristie.com>
|
jpayne@68
|
10 License: BSD-3-Clause
|
jpayne@68
|
11 Classifier: Development Status :: 4 - Beta
|
jpayne@68
|
12 Classifier: Environment :: Web Environment
|
jpayne@68
|
13 Classifier: Framework :: AsyncIO
|
jpayne@68
|
14 Classifier: Framework :: Trio
|
jpayne@68
|
15 Classifier: Intended Audience :: Developers
|
jpayne@68
|
16 Classifier: License :: OSI Approved :: BSD License
|
jpayne@68
|
17 Classifier: Operating System :: OS Independent
|
jpayne@68
|
18 Classifier: Programming Language :: Python :: 3
|
jpayne@68
|
19 Classifier: Programming Language :: Python :: 3 :: Only
|
jpayne@68
|
20 Classifier: Programming Language :: Python :: 3.8
|
jpayne@68
|
21 Classifier: Programming Language :: Python :: 3.9
|
jpayne@68
|
22 Classifier: Programming Language :: Python :: 3.10
|
jpayne@68
|
23 Classifier: Programming Language :: Python :: 3.11
|
jpayne@68
|
24 Classifier: Programming Language :: Python :: 3.12
|
jpayne@68
|
25 Classifier: Topic :: Internet :: WWW/HTTP
|
jpayne@68
|
26 Requires-Python: >=3.8
|
jpayne@68
|
27 Requires-Dist: anyio
|
jpayne@68
|
28 Requires-Dist: certifi
|
jpayne@68
|
29 Requires-Dist: httpcore==1.*
|
jpayne@68
|
30 Requires-Dist: idna
|
jpayne@68
|
31 Provides-Extra: brotli
|
jpayne@68
|
32 Requires-Dist: brotli; (platform_python_implementation == 'CPython') and extra == 'brotli'
|
jpayne@68
|
33 Requires-Dist: brotlicffi; (platform_python_implementation != 'CPython') and extra == 'brotli'
|
jpayne@68
|
34 Provides-Extra: cli
|
jpayne@68
|
35 Requires-Dist: click==8.*; extra == 'cli'
|
jpayne@68
|
36 Requires-Dist: pygments==2.*; extra == 'cli'
|
jpayne@68
|
37 Requires-Dist: rich<14,>=10; extra == 'cli'
|
jpayne@68
|
38 Provides-Extra: http2
|
jpayne@68
|
39 Requires-Dist: h2<5,>=3; extra == 'http2'
|
jpayne@68
|
40 Provides-Extra: socks
|
jpayne@68
|
41 Requires-Dist: socksio==1.*; extra == 'socks'
|
jpayne@68
|
42 Provides-Extra: zstd
|
jpayne@68
|
43 Requires-Dist: zstandard>=0.18.0; extra == 'zstd'
|
jpayne@68
|
44 Description-Content-Type: text/markdown
|
jpayne@68
|
45
|
jpayne@68
|
46 <p align="center">
|
jpayne@68
|
47 <a href="https://www.python-httpx.org/"><img width="350" height="208" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/butterfly.png" alt='HTTPX'></a>
|
jpayne@68
|
48 </p>
|
jpayne@68
|
49
|
jpayne@68
|
50 <p align="center"><strong>HTTPX</strong> <em>- A next-generation HTTP client for Python.</em></p>
|
jpayne@68
|
51
|
jpayne@68
|
52 <p align="center">
|
jpayne@68
|
53 <a href="https://github.com/encode/httpx/actions">
|
jpayne@68
|
54 <img src="https://github.com/encode/httpx/workflows/Test%20Suite/badge.svg" alt="Test Suite">
|
jpayne@68
|
55 </a>
|
jpayne@68
|
56 <a href="https://pypi.org/project/httpx/">
|
jpayne@68
|
57 <img src="https://badge.fury.io/py/httpx.svg" alt="Package version">
|
jpayne@68
|
58 </a>
|
jpayne@68
|
59 </p>
|
jpayne@68
|
60
|
jpayne@68
|
61 HTTPX is a fully featured HTTP client library for Python 3. It includes **an integrated command line client**, has support for both **HTTP/1.1 and HTTP/2**, and provides both **sync and async APIs**.
|
jpayne@68
|
62
|
jpayne@68
|
63 ---
|
jpayne@68
|
64
|
jpayne@68
|
65 Install HTTPX using pip:
|
jpayne@68
|
66
|
jpayne@68
|
67 ```shell
|
jpayne@68
|
68 $ pip install httpx
|
jpayne@68
|
69 ```
|
jpayne@68
|
70
|
jpayne@68
|
71 Now, let's get started:
|
jpayne@68
|
72
|
jpayne@68
|
73 ```pycon
|
jpayne@68
|
74 >>> import httpx
|
jpayne@68
|
75 >>> r = httpx.get('https://www.example.org/')
|
jpayne@68
|
76 >>> r
|
jpayne@68
|
77 <Response [200 OK]>
|
jpayne@68
|
78 >>> r.status_code
|
jpayne@68
|
79 200
|
jpayne@68
|
80 >>> r.headers['content-type']
|
jpayne@68
|
81 'text/html; charset=UTF-8'
|
jpayne@68
|
82 >>> r.text
|
jpayne@68
|
83 '<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
|
jpayne@68
|
84 ```
|
jpayne@68
|
85
|
jpayne@68
|
86 Or, using the command-line client.
|
jpayne@68
|
87
|
jpayne@68
|
88 ```shell
|
jpayne@68
|
89 $ pip install 'httpx[cli]' # The command line client is an optional dependency.
|
jpayne@68
|
90 ```
|
jpayne@68
|
91
|
jpayne@68
|
92 Which now allows us to use HTTPX directly from the command-line...
|
jpayne@68
|
93
|
jpayne@68
|
94 <p align="center">
|
jpayne@68
|
95 <img width="700" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/httpx-help.png" alt='httpx --help'>
|
jpayne@68
|
96 </p>
|
jpayne@68
|
97
|
jpayne@68
|
98 Sending a request...
|
jpayne@68
|
99
|
jpayne@68
|
100 <p align="center">
|
jpayne@68
|
101 <img width="700" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/httpx-request.png" alt='httpx http://httpbin.org/json'>
|
jpayne@68
|
102 </p>
|
jpayne@68
|
103
|
jpayne@68
|
104 ## Features
|
jpayne@68
|
105
|
jpayne@68
|
106 HTTPX builds on the well-established usability of `requests`, and gives you:
|
jpayne@68
|
107
|
jpayne@68
|
108 * A broadly [requests-compatible API](https://www.python-httpx.org/compatibility/).
|
jpayne@68
|
109 * An integrated command-line client.
|
jpayne@68
|
110 * HTTP/1.1 [and HTTP/2 support](https://www.python-httpx.org/http2/).
|
jpayne@68
|
111 * Standard synchronous interface, but with [async support if you need it](https://www.python-httpx.org/async/).
|
jpayne@68
|
112 * Ability to make requests directly to [WSGI applications](https://www.python-httpx.org/advanced/transports/#wsgi-transport) or [ASGI applications](https://www.python-httpx.org/advanced/transports/#asgi-transport).
|
jpayne@68
|
113 * Strict timeouts everywhere.
|
jpayne@68
|
114 * Fully type annotated.
|
jpayne@68
|
115 * 100% test coverage.
|
jpayne@68
|
116
|
jpayne@68
|
117 Plus all the standard features of `requests`...
|
jpayne@68
|
118
|
jpayne@68
|
119 * International Domains and URLs
|
jpayne@68
|
120 * Keep-Alive & Connection Pooling
|
jpayne@68
|
121 * Sessions with Cookie Persistence
|
jpayne@68
|
122 * Browser-style SSL Verification
|
jpayne@68
|
123 * Basic/Digest Authentication
|
jpayne@68
|
124 * Elegant Key/Value Cookies
|
jpayne@68
|
125 * Automatic Decompression
|
jpayne@68
|
126 * Automatic Content Decoding
|
jpayne@68
|
127 * Unicode Response Bodies
|
jpayne@68
|
128 * Multipart File Uploads
|
jpayne@68
|
129 * HTTP(S) Proxy Support
|
jpayne@68
|
130 * Connection Timeouts
|
jpayne@68
|
131 * Streaming Downloads
|
jpayne@68
|
132 * .netrc Support
|
jpayne@68
|
133 * Chunked Requests
|
jpayne@68
|
134
|
jpayne@68
|
135 ## Installation
|
jpayne@68
|
136
|
jpayne@68
|
137 Install with pip:
|
jpayne@68
|
138
|
jpayne@68
|
139 ```shell
|
jpayne@68
|
140 $ pip install httpx
|
jpayne@68
|
141 ```
|
jpayne@68
|
142
|
jpayne@68
|
143 Or, to include the optional HTTP/2 support, use:
|
jpayne@68
|
144
|
jpayne@68
|
145 ```shell
|
jpayne@68
|
146 $ pip install httpx[http2]
|
jpayne@68
|
147 ```
|
jpayne@68
|
148
|
jpayne@68
|
149 HTTPX requires Python 3.8+.
|
jpayne@68
|
150
|
jpayne@68
|
151 ## Documentation
|
jpayne@68
|
152
|
jpayne@68
|
153 Project documentation is available at [https://www.python-httpx.org/](https://www.python-httpx.org/).
|
jpayne@68
|
154
|
jpayne@68
|
155 For a run-through of all the basics, head over to the [QuickStart](https://www.python-httpx.org/quickstart/).
|
jpayne@68
|
156
|
jpayne@68
|
157 For more advanced topics, see the [Advanced Usage](https://www.python-httpx.org/advanced/) section, the [async support](https://www.python-httpx.org/async/) section, or the [HTTP/2](https://www.python-httpx.org/http2/) section.
|
jpayne@68
|
158
|
jpayne@68
|
159 The [Developer Interface](https://www.python-httpx.org/api/) provides a comprehensive API reference.
|
jpayne@68
|
160
|
jpayne@68
|
161 To find out about tools that integrate with HTTPX, see [Third Party Packages](https://www.python-httpx.org/third_party_packages/).
|
jpayne@68
|
162
|
jpayne@68
|
163 ## Contribute
|
jpayne@68
|
164
|
jpayne@68
|
165 If you want to contribute with HTTPX check out the [Contributing Guide](https://www.python-httpx.org/contributing/) to learn how to start.
|
jpayne@68
|
166
|
jpayne@68
|
167 ## Dependencies
|
jpayne@68
|
168
|
jpayne@68
|
169 The HTTPX project relies on these excellent libraries:
|
jpayne@68
|
170
|
jpayne@68
|
171 * `httpcore` - The underlying transport implementation for `httpx`.
|
jpayne@68
|
172 * `h11` - HTTP/1.1 support.
|
jpayne@68
|
173 * `certifi` - SSL certificates.
|
jpayne@68
|
174 * `idna` - Internationalized domain name support.
|
jpayne@68
|
175 * `sniffio` - Async library autodetection.
|
jpayne@68
|
176
|
jpayne@68
|
177 As well as these optional installs:
|
jpayne@68
|
178
|
jpayne@68
|
179 * `h2` - HTTP/2 support. *(Optional, with `httpx[http2]`)*
|
jpayne@68
|
180 * `socksio` - SOCKS proxy support. *(Optional, with `httpx[socks]`)*
|
jpayne@68
|
181 * `rich` - Rich terminal support. *(Optional, with `httpx[cli]`)*
|
jpayne@68
|
182 * `click` - Command line client support. *(Optional, with `httpx[cli]`)*
|
jpayne@68
|
183 * `brotli` or `brotlicffi` - Decoding for "brotli" compressed responses. *(Optional, with `httpx[brotli]`)*
|
jpayne@68
|
184 * `zstandard` - Decoding for "zstd" compressed responses. *(Optional, with `httpx[zstd]`)*
|
jpayne@68
|
185
|
jpayne@68
|
186 A huge amount of credit is due to `requests` for the API layout that
|
jpayne@68
|
187 much of this work follows, as well as to `urllib3` for plenty of design
|
jpayne@68
|
188 inspiration around the lower-level networking details.
|
jpayne@68
|
189
|
jpayne@68
|
190 ---
|
jpayne@68
|
191
|
jpayne@68
|
192 <p align="center"><i>HTTPX is <a href="https://github.com/encode/httpx/blob/master/LICENSE.md">BSD licensed</a> code.<br/>Designed & crafted with care.</i><br/>— 🦋 —</p>
|
jpayne@68
|
193
|
jpayne@68
|
194 ## Release Information
|
jpayne@68
|
195
|
jpayne@68
|
196 ### Fixed
|
jpayne@68
|
197
|
jpayne@68
|
198 * Reintroduced supposedly-private `URLTypes` shortcut. (#2673)
|
jpayne@68
|
199
|
jpayne@68
|
200
|
jpayne@68
|
201 ---
|
jpayne@68
|
202
|
jpayne@68
|
203 [Full changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md)
|