METADATA 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. Metadata-Version: 2.1
  2. Name: httpx
  3. Version: 0.26.0
  4. Summary: The next generation HTTP client.
  5. Project-URL: Changelog, https://github.com/encode/httpx/blob/master/CHANGELOG.md
  6. Project-URL: Documentation, https://www.python-httpx.org
  7. Project-URL: Homepage, https://github.com/encode/httpx
  8. Project-URL: Source, https://github.com/encode/httpx
  9. Author-email: Tom Christie <tom@tomchristie.com>
  10. License-Expression: BSD-3-Clause
  11. License-File: LICENSE.md
  12. Classifier: Development Status :: 4 - Beta
  13. Classifier: Environment :: Web Environment
  14. Classifier: Framework :: AsyncIO
  15. Classifier: Framework :: Trio
  16. Classifier: Intended Audience :: Developers
  17. Classifier: License :: OSI Approved :: BSD License
  18. Classifier: Operating System :: OS Independent
  19. Classifier: Programming Language :: Python :: 3
  20. Classifier: Programming Language :: Python :: 3 :: Only
  21. Classifier: Programming Language :: Python :: 3.8
  22. Classifier: Programming Language :: Python :: 3.9
  23. Classifier: Programming Language :: Python :: 3.10
  24. Classifier: Programming Language :: Python :: 3.11
  25. Classifier: Programming Language :: Python :: 3.12
  26. Classifier: Topic :: Internet :: WWW/HTTP
  27. Requires-Python: >=3.8
  28. Requires-Dist: anyio
  29. Requires-Dist: certifi
  30. Requires-Dist: httpcore==1.*
  31. Requires-Dist: idna
  32. Requires-Dist: sniffio
  33. Provides-Extra: brotli
  34. Requires-Dist: brotli; (platform_python_implementation == 'CPython') and extra == 'brotli'
  35. Requires-Dist: brotlicffi; (platform_python_implementation != 'CPython') and extra == 'brotli'
  36. Provides-Extra: cli
  37. Requires-Dist: click==8.*; extra == 'cli'
  38. Requires-Dist: pygments==2.*; extra == 'cli'
  39. Requires-Dist: rich<14,>=10; extra == 'cli'
  40. Provides-Extra: http2
  41. Requires-Dist: h2<5,>=3; extra == 'http2'
  42. Provides-Extra: socks
  43. Requires-Dist: socksio==1.*; extra == 'socks'
  44. Description-Content-Type: text/markdown
  45. <p align="center">
  46. <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>
  47. </p>
  48. <p align="center"><strong>HTTPX</strong> <em>- A next-generation HTTP client for Python.</em></p>
  49. <p align="center">
  50. <a href="https://github.com/encode/httpx/actions">
  51. <img src="https://github.com/encode/httpx/workflows/Test%20Suite/badge.svg" alt="Test Suite">
  52. </a>
  53. <a href="https://pypi.org/project/httpx/">
  54. <img src="https://badge.fury.io/py/httpx.svg" alt="Package version">
  55. </a>
  56. </p>
  57. HTTPX is a fully featured HTTP client library for Python 3. It includes **an integrated
  58. command line client**, has support for both **HTTP/1.1 and HTTP/2**, and provides both **sync
  59. and async APIs**.
  60. ---
  61. Install HTTPX using pip:
  62. ```shell
  63. $ pip install httpx
  64. ```
  65. Now, let's get started:
  66. ```pycon
  67. >>> import httpx
  68. >>> r = httpx.get('https://www.example.org/')
  69. >>> r
  70. <Response [200 OK]>
  71. >>> r.status_code
  72. 200
  73. >>> r.headers['content-type']
  74. 'text/html; charset=UTF-8'
  75. >>> r.text
  76. '<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
  77. ```
  78. Or, using the command-line client.
  79. ```shell
  80. $ pip install 'httpx[cli]' # The command line client is an optional dependency.
  81. ```
  82. Which now allows us to use HTTPX directly from the command-line...
  83. <p align="center">
  84. <img width="700" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/httpx-help.png" alt='httpx --help'>
  85. </p>
  86. Sending a request...
  87. <p align="center">
  88. <img width="700" src="https://raw.githubusercontent.com/encode/httpx/master/docs/img/httpx-request.png" alt='httpx http://httpbin.org/json'>
  89. </p>
  90. ## Features
  91. HTTPX builds on the well-established usability of `requests`, and gives you:
  92. * A broadly [requests-compatible API](https://www.python-httpx.org/compatibility/).
  93. * An integrated command-line client.
  94. * HTTP/1.1 [and HTTP/2 support](https://www.python-httpx.org/http2/).
  95. * Standard synchronous interface, but with [async support if you need it](https://www.python-httpx.org/async/).
  96. * Ability to make requests directly to [WSGI applications](https://www.python-httpx.org/advanced/#calling-into-python-web-apps) or [ASGI applications](https://www.python-httpx.org/async/#calling-into-python-web-apps).
  97. * Strict timeouts everywhere.
  98. * Fully type annotated.
  99. * 100% test coverage.
  100. Plus all the standard features of `requests`...
  101. * International Domains and URLs
  102. * Keep-Alive & Connection Pooling
  103. * Sessions with Cookie Persistence
  104. * Browser-style SSL Verification
  105. * Basic/Digest Authentication
  106. * Elegant Key/Value Cookies
  107. * Automatic Decompression
  108. * Automatic Content Decoding
  109. * Unicode Response Bodies
  110. * Multipart File Uploads
  111. * HTTP(S) Proxy Support
  112. * Connection Timeouts
  113. * Streaming Downloads
  114. * .netrc Support
  115. * Chunked Requests
  116. ## Installation
  117. Install with pip:
  118. ```shell
  119. $ pip install httpx
  120. ```
  121. Or, to include the optional HTTP/2 support, use:
  122. ```shell
  123. $ pip install httpx[http2]
  124. ```
  125. HTTPX requires Python 3.8+.
  126. ## Documentation
  127. Project documentation is available at [https://www.python-httpx.org/](https://www.python-httpx.org/).
  128. For a run-through of all the basics, head over to the [QuickStart](https://www.python-httpx.org/quickstart/).
  129. 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.
  130. The [Developer Interface](https://www.python-httpx.org/api/) provides a comprehensive API reference.
  131. To find out about tools that integrate with HTTPX, see [Third Party Packages](https://www.python-httpx.org/third_party_packages/).
  132. ## Contribute
  133. If you want to contribute with HTTPX check out the [Contributing Guide](https://www.python-httpx.org/contributing/) to learn how to start.
  134. ## Dependencies
  135. The HTTPX project relies on these excellent libraries:
  136. * `httpcore` - The underlying transport implementation for `httpx`.
  137. * `h11` - HTTP/1.1 support.
  138. * `certifi` - SSL certificates.
  139. * `idna` - Internationalized domain name support.
  140. * `sniffio` - Async library autodetection.
  141. As well as these optional installs:
  142. * `h2` - HTTP/2 support. *(Optional, with `httpx[http2]`)*
  143. * `socksio` - SOCKS proxy support. *(Optional, with `httpx[socks]`)*
  144. * `rich` - Rich terminal support. *(Optional, with `httpx[cli]`)*
  145. * `click` - Command line client support. *(Optional, with `httpx[cli]`)*
  146. * `brotli` or `brotlicffi` - Decoding for "brotli" compressed responses. *(Optional, with `httpx[brotli]`)*
  147. A huge amount of credit is due to `requests` for the API layout that
  148. much of this work follows, as well as to `urllib3` for plenty of design
  149. inspiration around the lower-level networking details.
  150. ---
  151. <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/>&mdash; 🦋 &mdash;</p>
  152. ## Release Information
  153. ### Added
  154. * The `proxy` argument was added. You should use the `proxy` argument instead of the deprecated `proxies`, or use `mounts=` for more complex configurations. (#2879)
  155. ### Deprecated
  156. * The `proxies` argument is now deprecated. It will still continue to work, but it will be removed in the future. (#2879)
  157. ### Fixed
  158. * Fix cases of double escaping of URL path components. Allow / as a safe character in the query portion. (#2990)
  159. * Handle `NO_PROXY` envvar cases when a fully qualified URL is supplied as the value. (#2741)
  160. * Allow URLs where username or password contains unescaped '@'. (#2986)
  161. * Ensure ASGI `raw_path` does not include URL query component. (#2999)
  162. * Ensure `Response.iter_text()` cannot yield empty strings. (#2998)
  163. ---
  164. [Full changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md)