comparison env/lib/python3.7/site-packages/urllib3-1.25.9.dist-info/METADATA @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:26e78fe6e8c4
1 Metadata-Version: 2.1
2 Name: urllib3
3 Version: 1.25.9
4 Summary: HTTP library with thread-safe connection pooling, file post, and more.
5 Home-page: https://urllib3.readthedocs.io/
6 Author: Andrey Petrov
7 Author-email: andrey.petrov@shazow.net
8 License: MIT
9 Project-URL: Documentation, https://urllib3.readthedocs.io/
10 Project-URL: Code, https://github.com/urllib3/urllib3
11 Project-URL: Issue tracker, https://github.com/urllib3/urllib3/issues
12 Keywords: urllib httplib threadsafe filepost http https ssl pooling
13 Platform: UNKNOWN
14 Classifier: Environment :: Web Environment
15 Classifier: Intended Audience :: Developers
16 Classifier: License :: OSI Approved :: MIT License
17 Classifier: Operating System :: OS Independent
18 Classifier: Programming Language :: Python
19 Classifier: Programming Language :: Python :: 2
20 Classifier: Programming Language :: Python :: 2.7
21 Classifier: Programming Language :: Python :: 3
22 Classifier: Programming Language :: Python :: 3.5
23 Classifier: Programming Language :: Python :: 3.6
24 Classifier: Programming Language :: Python :: 3.7
25 Classifier: Programming Language :: Python :: 3.8
26 Classifier: Programming Language :: Python :: 3.9
27 Classifier: Programming Language :: Python :: Implementation :: CPython
28 Classifier: Programming Language :: Python :: Implementation :: PyPy
29 Classifier: Topic :: Internet :: WWW/HTTP
30 Classifier: Topic :: Software Development :: Libraries
31 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4
32 Provides-Extra: brotli
33 Requires-Dist: brotlipy (>=0.6.0) ; extra == 'brotli'
34 Provides-Extra: secure
35 Requires-Dist: certifi ; extra == 'secure'
36 Requires-Dist: cryptography (>=1.3.4) ; extra == 'secure'
37 Requires-Dist: idna (>=2.0.0) ; extra == 'secure'
38 Requires-Dist: pyOpenSSL (>=0.14) ; extra == 'secure'
39 Requires-Dist: ipaddress ; (python_version == "2.7") and extra == 'secure'
40 Provides-Extra: socks
41 Requires-Dist: PySocks (!=1.5.7,<2.0,>=1.5.6) ; extra == 'socks'
42
43 urllib3
44 =======
45
46 urllib3 is a powerful, *sanity-friendly* HTTP client for Python. Much of the
47 Python ecosystem already uses urllib3 and you should too.
48 urllib3 brings many critical features that are missing from the Python
49 standard libraries:
50
51 - Thread safety.
52 - Connection pooling.
53 - Client-side SSL/TLS verification.
54 - File uploads with multipart encoding.
55 - Helpers for retrying requests and dealing with HTTP redirects.
56 - Support for gzip, deflate, and brotli encoding.
57 - Proxy support for HTTP and SOCKS.
58 - 100% test coverage.
59
60 urllib3 is powerful and easy to use::
61
62 >>> import urllib3
63 >>> http = urllib3.PoolManager()
64 >>> r = http.request('GET', 'http://httpbin.org/robots.txt')
65 >>> r.status
66 200
67 >>> r.data
68 'User-agent: *\nDisallow: /deny\n'
69
70
71 Installing
72 ----------
73
74 urllib3 can be installed with `pip <https://pip.pypa.io>`_::
75
76 $ pip install urllib3
77
78 Alternatively, you can grab the latest source code from `GitHub <https://github.com/urllib3/urllib3>`_::
79
80 $ git clone git://github.com/urllib3/urllib3.git
81 $ python setup.py install
82
83
84 Documentation
85 -------------
86
87 urllib3 has usage and reference documentation at `urllib3.readthedocs.io <https://urllib3.readthedocs.io>`_.
88
89
90 Contributing
91 ------------
92
93 urllib3 happily accepts contributions. Please see our
94 `contributing documentation <https://urllib3.readthedocs.io/en/latest/contributing.html>`_
95 for some tips on getting started.
96
97
98 Security Disclosures
99 --------------------
100
101 To report a security vulnerability, please use the
102 `Tidelift security contact <https://tidelift.com/security>`_.
103 Tidelift will coordinate the fix and disclosure with maintainers.
104
105 Maintainers
106 -----------
107
108 - `@sethmlarson <https://github.com/sethmlarson>`_ (Seth M. Larson)
109 - `@pquentin <https://github.com/pquentin>`_ (Quentin Pradet)
110 - `@theacodes <https://github.com/theacodes>`_ (Thea Flowers)
111 - `@haikuginger <https://github.com/haikuginger>`_ (Jess Shapiro)
112 - `@lukasa <https://github.com/lukasa>`_ (Cory Benfield)
113 - `@sigmavirus24 <https://github.com/sigmavirus24>`_ (Ian Stapleton Cordasco)
114 - `@shazow <https://github.com/shazow>`_ (Andrey Petrov)
115
116 👋
117
118
119 Sponsorship
120 -----------
121
122 .. |tideliftlogo| image:: https://nedbatchelder.com/pix/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png
123 :width: 75
124 :alt: Tidelift
125
126 .. list-table::
127 :widths: 10 100
128
129 * - |tideliftlogo|
130 - Professional support for urllib3 is available as part of the `Tidelift
131 Subscription`_. Tidelift gives software development teams a single source for
132 purchasing and maintaining their software, with professional grade assurances
133 from the experts who know it best, while seamlessly integrating with existing
134 tools.
135
136 .. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-urllib3?utm_source=pypi-urllib3&utm_medium=referral&utm_campaign=readme
137
138 If your company benefits from this library, please consider `sponsoring its
139 development <https://urllib3.readthedocs.io/en/latest/contributing.html#sponsorship-project-grants>`_.
140
141 Sponsors include:
142
143 - Abbott (2018-2019), sponsored `@sethmlarson <https://github.com/sethmlarson>`_'s work on urllib3.
144 - Google Cloud Platform (2018-2019), sponsored `@theacodes <https://github.com/theacodes>`_'s work on urllib3.
145 - Akamai (2017-2018), sponsored `@haikuginger <https://github.com/haikuginger>`_'s work on urllib3
146 - Hewlett Packard Enterprise (2016-2017), sponsored `@Lukasa’s <https://github.com/Lukasa>`_ work on urllib3.
147
148
149 Changes
150 =======
151
152 1.25.9 (2020-04-16)
153 -------------------
154
155 * Added ``InvalidProxyConfigurationWarning`` which is raised when
156 erroneously specifying an HTTPS proxy URL. urllib3 doesn't currently
157 support connecting to HTTPS proxies but will soon be able to
158 and we would like users to migrate properly without much breakage.
159
160 See `this GitHub issue <https://github.com/urllib3/urllib3/issues/1850>`_
161 for more information on how to fix your proxy config. (Pull #1851)
162
163 * Drain connection after ``PoolManager`` redirect (Pull #1817)
164
165 * Ensure ``load_verify_locations`` raises ``SSLError`` for all backends (Pull #1812)
166
167 * Rename ``VerifiedHTTPSConnection`` to ``HTTPSConnection`` (Pull #1805)
168
169 * Allow the CA certificate data to be passed as a string (Pull #1804)
170
171 * Raise ``ValueError`` if method contains control characters (Pull #1800)
172
173 * Add ``__repr__`` to ``Timeout`` (Pull #1795)
174
175
176 1.25.8 (2020-01-20)
177 -------------------
178
179 * Drop support for EOL Python 3.4 (Pull #1774)
180
181 * Optimize _encode_invalid_chars (Pull #1787)
182
183
184 1.25.7 (2019-11-11)
185 -------------------
186
187 * Preserve ``chunked`` parameter on retries (Pull #1715, Pull #1734)
188
189 * Allow unset ``SERVER_SOFTWARE`` in App Engine (Pull #1704, Issue #1470)
190
191 * Fix issue where URL fragment was sent within the request target. (Pull #1732)
192
193 * Fix issue where an empty query section in a URL would fail to parse. (Pull #1732)
194
195 * Remove TLS 1.3 support in SecureTransport due to Apple removing support (Pull #1703)
196
197
198 1.25.6 (2019-09-24)
199 -------------------
200
201 * Fix issue where tilde (``~``) characters were incorrectly
202 percent-encoded in the path. (Pull #1692)
203
204
205 1.25.5 (2019-09-19)
206 -------------------
207
208 * Add mitigation for BPO-37428 affecting Python <3.7.4 and OpenSSL 1.1.1+ which
209 caused certificate verification to be enabled when using ``cert_reqs=CERT_NONE``.
210 (Issue #1682)
211
212
213 1.25.4 (2019-09-19)
214 -------------------
215
216 * Propagate Retry-After header settings to subsequent retries. (Pull #1607)
217
218 * Fix edge case where Retry-After header was still respected even when
219 explicitly opted out of. (Pull #1607)
220
221 * Remove dependency on ``rfc3986`` for URL parsing.
222
223 * Fix issue where URLs containing invalid characters within ``Url.auth`` would
224 raise an exception instead of percent-encoding those characters.
225
226 * Add support for ``HTTPResponse.auto_close = False`` which makes HTTP responses
227 work well with BufferedReaders and other ``io`` module features. (Pull #1652)
228
229 * Percent-encode invalid characters in URL for ``HTTPConnectionPool.request()`` (Pull #1673)
230
231
232 1.25.3 (2019-05-23)
233 -------------------
234
235 * Change ``HTTPSConnection`` to load system CA certificates
236 when ``ca_certs``, ``ca_cert_dir``, and ``ssl_context`` are
237 unspecified. (Pull #1608, Issue #1603)
238
239 * Upgrade bundled rfc3986 to v1.3.2. (Pull #1609, Issue #1605)
240
241
242 1.25.2 (2019-04-28)
243 -------------------
244
245 * Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull #1583)
246
247 * Change ``parse_url`` to percent-encode invalid characters within the
248 path, query, and target components. (Pull #1586)
249
250
251 1.25.1 (2019-04-24)
252 -------------------
253
254 * Add support for Google's ``Brotli`` package. (Pull #1572, Pull #1579)
255
256 * Upgrade bundled rfc3986 to v1.3.1 (Pull #1578)
257
258
259 1.25 (2019-04-22)
260 -----------------
261
262 * Require and validate certificates by default when using HTTPS (Pull #1507)
263
264 * Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull #1487)
265
266 * Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
267 encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull #1489)
268
269 * Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
270 implementations. (Pull #1496)
271
272 * Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue #303, PR #1492)
273
274 * Fixed issue where OpenSSL would block if an encrypted client private key was
275 given and no password was given. Instead an ``SSLError`` is raised. (Pull #1489)
276
277 * Added support for Brotli content encoding. It is enabled automatically if
278 ``brotlipy`` package is installed which can be requested with
279 ``urllib3[brotli]`` extra. (Pull #1532)
280
281 * Drop ciphers using DSS key exchange from default TLS cipher suites.
282 Improve default ciphers when using SecureTransport. (Pull #1496)
283
284 * Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue #1483)
285
286 1.24.3 (2019-05-01)
287 -------------------
288
289 * Apply fix for CVE-2019-9740. (Pull #1591)
290
291 1.24.2 (2019-04-17)
292 -------------------
293
294 * Don't load system certificates by default when any other ``ca_certs``, ``ca_certs_dir`` or
295 ``ssl_context`` parameters are specified.
296
297 * Remove Authorization header regardless of case when redirecting to cross-site. (Issue #1510)
298
299 * Add support for IPv6 addresses in subjectAltName section of certificates. (Issue #1269)
300
301
302 1.24.1 (2018-11-02)
303 -------------------
304
305 * Remove quadratic behavior within ``GzipDecoder.decompress()`` (Issue #1467)
306
307 * Restored functionality of ``ciphers`` parameter for ``create_urllib3_context()``. (Issue #1462)
308
309
310 1.24 (2018-10-16)
311 -----------------
312
313 * Allow key_server_hostname to be specified when initializing a PoolManager to allow custom SNI to be overridden. (Pull #1449)
314
315 * Test against Python 3.7 on AppVeyor. (Pull #1453)
316
317 * Early-out ipv6 checks when running on App Engine. (Pull #1450)
318
319 * Change ambiguous description of backoff_factor (Pull #1436)
320
321 * Add ability to handle multiple Content-Encodings (Issue #1441 and Pull #1442)
322
323 * Skip DNS names that can't be idna-decoded when using pyOpenSSL (Issue #1405).
324
325 * Add a server_hostname parameter to HTTPSConnection which allows for
326 overriding the SNI hostname sent in the handshake. (Pull #1397)
327
328 * Drop support for EOL Python 2.6 (Pull #1429 and Pull #1430)
329
330 * Fixed bug where responses with header Content-Type: message/* erroneously
331 raised HeaderParsingError, resulting in a warning being logged. (Pull #1439)
332
333 * Move urllib3 to src/urllib3 (Pull #1409)
334
335
336 1.23 (2018-06-04)
337 -----------------
338
339 * Allow providing a list of headers to strip from requests when redirecting
340 to a different host. Defaults to the ``Authorization`` header. Different
341 headers can be set via ``Retry.remove_headers_on_redirect``. (Issue #1316)
342
343 * Fix ``util.selectors._fileobj_to_fd`` to accept ``long`` (Issue #1247).
344
345 * Dropped Python 3.3 support. (Pull #1242)
346
347 * Put the connection back in the pool when calling stream() or read_chunked() on
348 a chunked HEAD response. (Issue #1234)
349
350 * Fixed pyOpenSSL-specific ssl client authentication issue when clients
351 attempted to auth via certificate + chain (Issue #1060)
352
353 * Add the port to the connectionpool connect print (Pull #1251)
354
355 * Don't use the ``uuid`` module to create multipart data boundaries. (Pull #1380)
356
357 * ``read_chunked()`` on a closed response returns no chunks. (Issue #1088)
358
359 * Add Python 2.6 support to ``contrib.securetransport`` (Pull #1359)
360
361 * Added support for auth info in url for SOCKS proxy (Pull #1363)
362
363
364 1.22 (2017-07-20)
365 -----------------
366
367 * Fixed missing brackets in ``HTTP CONNECT`` when connecting to IPv6 address via
368 IPv6 proxy. (Issue #1222)
369
370 * Made the connection pool retry on ``SSLError``. The original ``SSLError``
371 is available on ``MaxRetryError.reason``. (Issue #1112)
372
373 * Drain and release connection before recursing on retry/redirect. Fixes
374 deadlocks with a blocking connectionpool. (Issue #1167)
375
376 * Fixed compatibility for cookiejar. (Issue #1229)
377
378 * pyopenssl: Use vendored version of ``six``. (Issue #1231)
379
380
381 1.21.1 (2017-05-02)
382 -------------------
383
384 * Fixed SecureTransport issue that would cause long delays in response body
385 delivery. (Pull #1154)
386
387 * Fixed regression in 1.21 that threw exceptions when users passed the
388 ``socket_options`` flag to the ``PoolManager``. (Issue #1165)
389
390 * Fixed regression in 1.21 that threw exceptions when users passed the
391 ``assert_hostname`` or ``assert_fingerprint`` flag to the ``PoolManager``.
392 (Pull #1157)
393
394
395 1.21 (2017-04-25)
396 -----------------
397
398 * Improved performance of certain selector system calls on Python 3.5 and
399 later. (Pull #1095)
400
401 * Resolved issue where the PyOpenSSL backend would not wrap SysCallError
402 exceptions appropriately when sending data. (Pull #1125)
403
404 * Selectors now detects a monkey-patched select module after import for modules
405 that patch the select module like eventlet, greenlet. (Pull #1128)
406
407 * Reduced memory consumption when streaming zlib-compressed responses
408 (as opposed to raw deflate streams). (Pull #1129)
409
410 * Connection pools now use the entire request context when constructing the
411 pool key. (Pull #1016)
412
413 * ``PoolManager.connection_from_*`` methods now accept a new keyword argument,
414 ``pool_kwargs``, which are merged with the existing ``connection_pool_kw``.
415 (Pull #1016)
416
417 * Add retry counter for ``status_forcelist``. (Issue #1147)
418
419 * Added ``contrib`` module for using SecureTransport on macOS:
420 ``urllib3.contrib.securetransport``. (Pull #1122)
421
422 * urllib3 now only normalizes the case of ``http://`` and ``https://`` schemes:
423 for schemes it does not recognise, it assumes they are case-sensitive and
424 leaves them unchanged.
425 (Issue #1080)
426
427
428 1.20 (2017-01-19)
429 -----------------
430
431 * Added support for waiting for I/O using selectors other than select,
432 improving urllib3's behaviour with large numbers of concurrent connections.
433 (Pull #1001)
434
435 * Updated the date for the system clock check. (Issue #1005)
436
437 * ConnectionPools now correctly consider hostnames to be case-insensitive.
438 (Issue #1032)
439
440 * Outdated versions of PyOpenSSL now cause the PyOpenSSL contrib module
441 to fail when it is injected, rather than at first use. (Pull #1063)
442
443 * Outdated versions of cryptography now cause the PyOpenSSL contrib module
444 to fail when it is injected, rather than at first use. (Issue #1044)
445
446 * Automatically attempt to rewind a file-like body object when a request is
447 retried or redirected. (Pull #1039)
448
449 * Fix some bugs that occur when modules incautiously patch the queue module.
450 (Pull #1061)
451
452 * Prevent retries from occurring on read timeouts for which the request method
453 was not in the method whitelist. (Issue #1059)
454
455 * Changed the PyOpenSSL contrib module to lazily load idna to avoid
456 unnecessarily bloating the memory of programs that don't need it. (Pull
457 #1076)
458
459 * Add support for IPv6 literals with zone identifiers. (Pull #1013)
460
461 * Added support for socks5h:// and socks4a:// schemes when working with SOCKS
462 proxies, and controlled remote DNS appropriately. (Issue #1035)
463
464
465 1.19.1 (2016-11-16)
466 -------------------
467
468 * Fixed AppEngine import that didn't function on Python 3.5. (Pull #1025)
469
470
471 1.19 (2016-11-03)
472 -----------------
473
474 * urllib3 now respects Retry-After headers on 413, 429, and 503 responses when
475 using the default retry logic. (Pull #955)
476
477 * Remove markers from setup.py to assist ancient setuptools versions. (Issue
478 #986)
479
480 * Disallow superscripts and other integerish things in URL ports. (Issue #989)
481
482 * Allow urllib3's HTTPResponse.stream() method to continue to work with
483 non-httplib underlying FPs. (Pull #990)
484
485 * Empty filenames in multipart headers are now emitted as such, rather than
486 being suppressed. (Issue #1015)
487
488 * Prefer user-supplied Host headers on chunked uploads. (Issue #1009)
489
490
491 1.18.1 (2016-10-27)
492 -------------------
493
494 * CVE-2016-9015. Users who are using urllib3 version 1.17 or 1.18 along with
495 PyOpenSSL injection and OpenSSL 1.1.0 *must* upgrade to this version. This
496 release fixes a vulnerability whereby urllib3 in the above configuration
497 would silently fail to validate TLS certificates due to erroneously setting
498 invalid flags in OpenSSL's ``SSL_CTX_set_verify`` function. These erroneous
499 flags do not cause a problem in OpenSSL versions before 1.1.0, which
500 interprets the presence of any flag as requesting certificate validation.
501
502 There is no PR for this patch, as it was prepared for simultaneous disclosure
503 and release. The master branch received the same fix in PR #1010.
504
505
506 1.18 (2016-09-26)
507 -----------------
508
509 * Fixed incorrect message for IncompleteRead exception. (PR #973)
510
511 * Accept ``iPAddress`` subject alternative name fields in TLS certificates.
512 (Issue #258)
513
514 * Fixed consistency of ``HTTPResponse.closed`` between Python 2 and 3.
515 (Issue #977)
516
517 * Fixed handling of wildcard certificates when using PyOpenSSL. (Issue #979)
518
519
520 1.17 (2016-09-06)
521 -----------------
522
523 * Accept ``SSLContext`` objects for use in SSL/TLS negotiation. (Issue #835)
524
525 * ConnectionPool debug log now includes scheme, host, and port. (Issue #897)
526
527 * Substantially refactored documentation. (Issue #887)
528
529 * Used URLFetch default timeout on AppEngine, rather than hardcoding our own.
530 (Issue #858)
531
532 * Normalize the scheme and host in the URL parser (Issue #833)
533
534 * ``HTTPResponse`` contains the last ``Retry`` object, which now also
535 contains retries history. (Issue #848)
536
537 * Timeout can no longer be set as boolean, and must be greater than zero.
538 (PR #924)
539
540 * Removed pyasn1 and ndg-httpsclient from dependencies used for PyOpenSSL. We
541 now use cryptography and idna, both of which are already dependencies of
542 PyOpenSSL. (PR #930)
543
544 * Fixed infinite loop in ``stream`` when amt=None. (Issue #928)
545
546 * Try to use the operating system's certificates when we are using an
547 ``SSLContext``. (PR #941)
548
549 * Updated cipher suite list to allow ChaCha20+Poly1305. AES-GCM is preferred to
550 ChaCha20, but ChaCha20 is then preferred to everything else. (PR #947)
551
552 * Updated cipher suite list to remove 3DES-based cipher suites. (PR #958)
553
554 * Removed the cipher suite fallback to allow HIGH ciphers. (PR #958)
555
556 * Implemented ``length_remaining`` to determine remaining content
557 to be read. (PR #949)
558
559 * Implemented ``enforce_content_length`` to enable exceptions when
560 incomplete data chunks are received. (PR #949)
561
562 * Dropped connection start, dropped connection reset, redirect, forced retry,
563 and new HTTPS connection log levels to DEBUG, from INFO. (PR #967)
564
565
566 1.16 (2016-06-11)
567 -----------------
568
569 * Disable IPv6 DNS when IPv6 connections are not possible. (Issue #840)
570
571 * Provide ``key_fn_by_scheme`` pool keying mechanism that can be
572 overridden. (Issue #830)
573
574 * Normalize scheme and host to lowercase for pool keys, and include
575 ``source_address``. (Issue #830)
576
577 * Cleaner exception chain in Python 3 for ``_make_request``.
578 (Issue #861)
579
580 * Fixed installing ``urllib3[socks]`` extra. (Issue #864)
581
582 * Fixed signature of ``ConnectionPool.close`` so it can actually safely be
583 called by subclasses. (Issue #873)
584
585 * Retain ``release_conn`` state across retries. (Issues #651, #866)
586
587 * Add customizable ``HTTPConnectionPool.ResponseCls``, which defaults to
588 ``HTTPResponse`` but can be replaced with a subclass. (Issue #879)
589
590
591 1.15.1 (2016-04-11)
592 -------------------
593
594 * Fix packaging to include backports module. (Issue #841)
595
596
597 1.15 (2016-04-06)
598 -----------------
599
600 * Added Retry(raise_on_status=False). (Issue #720)
601
602 * Always use setuptools, no more distutils fallback. (Issue #785)
603
604 * Dropped support for Python 3.2. (Issue #786)
605
606 * Chunked transfer encoding when requesting with ``chunked=True``.
607 (Issue #790)
608
609 * Fixed regression with IPv6 port parsing. (Issue #801)
610
611 * Append SNIMissingWarning messages to allow users to specify it in
612 the PYTHONWARNINGS environment variable. (Issue #816)
613
614 * Handle unicode headers in Py2. (Issue #818)
615
616 * Log certificate when there is a hostname mismatch. (Issue #820)
617
618 * Preserve order of request/response headers. (Issue #821)
619
620
621 1.14 (2015-12-29)
622 -----------------
623
624 * contrib: SOCKS proxy support! (Issue #762)
625
626 * Fixed AppEngine handling of transfer-encoding header and bug
627 in Timeout defaults checking. (Issue #763)
628
629
630 1.13.1 (2015-12-18)
631 -------------------
632
633 * Fixed regression in IPv6 + SSL for match_hostname. (Issue #761)
634
635
636 1.13 (2015-12-14)
637 -----------------
638
639 * Fixed ``pip install urllib3[secure]`` on modern pip. (Issue #706)
640
641 * pyopenssl: Fixed SSL3_WRITE_PENDING error. (Issue #717)
642
643 * pyopenssl: Support for TLSv1.1 and TLSv1.2. (Issue #696)
644
645 * Close connections more defensively on exception. (Issue #734)
646
647 * Adjusted ``read_chunked`` to handle gzipped, chunk-encoded bodies without
648 repeatedly flushing the decoder, to function better on Jython. (Issue #743)
649
650 * Accept ``ca_cert_dir`` for SSL-related PoolManager configuration. (Issue #758)
651
652
653 1.12 (2015-09-03)
654 -----------------
655
656 * Rely on ``six`` for importing ``httplib`` to work around
657 conflicts with other Python 3 shims. (Issue #688)
658
659 * Add support for directories of certificate authorities, as supported by
660 OpenSSL. (Issue #701)
661
662 * New exception: ``NewConnectionError``, raised when we fail to establish
663 a new connection, usually ``ECONNREFUSED`` socket error.
664
665
666 1.11 (2015-07-21)
667 -----------------
668
669 * When ``ca_certs`` is given, ``cert_reqs`` defaults to
670 ``'CERT_REQUIRED'``. (Issue #650)
671
672 * ``pip install urllib3[secure]`` will install Certifi and
673 PyOpenSSL as dependencies. (Issue #678)
674
675 * Made ``HTTPHeaderDict`` usable as a ``headers`` input value
676 (Issues #632, #679)
677
678 * Added `urllib3.contrib.appengine <https://urllib3.readthedocs.io/en/latest/contrib.html#google-app-engine>`_
679 which has an ``AppEngineManager`` for using ``URLFetch`` in a
680 Google AppEngine environment. (Issue #664)
681
682 * Dev: Added test suite for AppEngine. (Issue #631)
683
684 * Fix performance regression when using PyOpenSSL. (Issue #626)
685
686 * Passing incorrect scheme (e.g. ``foo://``) will raise
687 ``ValueError`` instead of ``AssertionError`` (backwards
688 compatible for now, but please migrate). (Issue #640)
689
690 * Fix pools not getting replenished when an error occurs during a
691 request using ``release_conn=False``. (Issue #644)
692
693 * Fix pool-default headers not applying for url-encoded requests
694 like GET. (Issue #657)
695
696 * log.warning in Python 3 when headers are skipped due to parsing
697 errors. (Issue #642)
698
699 * Close and discard connections if an error occurs during read.
700 (Issue #660)
701
702 * Fix host parsing for IPv6 proxies. (Issue #668)
703
704 * Separate warning type SubjectAltNameWarning, now issued once
705 per host. (Issue #671)
706
707 * Fix ``httplib.IncompleteRead`` not getting converted to
708 ``ProtocolError`` when using ``HTTPResponse.stream()``
709 (Issue #674)
710
711 1.10.4 (2015-05-03)
712 -------------------
713
714 * Migrate tests to Tornado 4. (Issue #594)
715
716 * Append default warning configuration rather than overwrite.
717 (Issue #603)
718
719 * Fix streaming decoding regression. (Issue #595)
720
721 * Fix chunked requests losing state across keep-alive connections.
722 (Issue #599)
723
724 * Fix hanging when chunked HEAD response has no body. (Issue #605)
725
726
727 1.10.3 (2015-04-21)
728 -------------------
729
730 * Emit ``InsecurePlatformWarning`` when SSLContext object is missing.
731 (Issue #558)
732
733 * Fix regression of duplicate header keys being discarded.
734 (Issue #563)
735
736 * ``Response.stream()`` returns a generator for chunked responses.
737 (Issue #560)
738
739 * Set upper-bound timeout when waiting for a socket in PyOpenSSL.
740 (Issue #585)
741
742 * Work on platforms without `ssl` module for plain HTTP requests.
743 (Issue #587)
744
745 * Stop relying on the stdlib's default cipher list. (Issue #588)
746
747
748 1.10.2 (2015-02-25)
749 -------------------
750
751 * Fix file descriptor leakage on retries. (Issue #548)
752
753 * Removed RC4 from default cipher list. (Issue #551)
754
755 * Header performance improvements. (Issue #544)
756
757 * Fix PoolManager not obeying redirect retry settings. (Issue #553)
758
759
760 1.10.1 (2015-02-10)
761 -------------------
762
763 * Pools can be used as context managers. (Issue #545)
764
765 * Don't re-use connections which experienced an SSLError. (Issue #529)
766
767 * Don't fail when gzip decoding an empty stream. (Issue #535)
768
769 * Add sha256 support for fingerprint verification. (Issue #540)
770
771 * Fixed handling of header values containing commas. (Issue #533)
772
773
774 1.10 (2014-12-14)
775 -----------------
776
777 * Disabled SSLv3. (Issue #473)
778
779 * Add ``Url.url`` property to return the composed url string. (Issue #394)
780
781 * Fixed PyOpenSSL + gevent ``WantWriteError``. (Issue #412)
782
783 * ``MaxRetryError.reason`` will always be an exception, not string.
784 (Issue #481)
785
786 * Fixed SSL-related timeouts not being detected as timeouts. (Issue #492)
787
788 * Py3: Use ``ssl.create_default_context()`` when available. (Issue #473)
789
790 * Emit ``InsecureRequestWarning`` for *every* insecure HTTPS request.
791 (Issue #496)
792
793 * Emit ``SecurityWarning`` when certificate has no ``subjectAltName``.
794 (Issue #499)
795
796 * Close and discard sockets which experienced SSL-related errors.
797 (Issue #501)
798
799 * Handle ``body`` param in ``.request(...)``. (Issue #513)
800
801 * Respect timeout with HTTPS proxy. (Issue #505)
802
803 * PyOpenSSL: Handle ZeroReturnError exception. (Issue #520)
804
805
806 1.9.1 (2014-09-13)
807 ------------------
808
809 * Apply socket arguments before binding. (Issue #427)
810
811 * More careful checks if fp-like object is closed. (Issue #435)
812
813 * Fixed packaging issues of some development-related files not
814 getting included. (Issue #440)
815
816 * Allow performing *only* fingerprint verification. (Issue #444)
817
818 * Emit ``SecurityWarning`` if system clock is waaay off. (Issue #445)
819
820 * Fixed PyOpenSSL compatibility with PyPy. (Issue #450)
821
822 * Fixed ``BrokenPipeError`` and ``ConnectionError`` handling in Py3.
823 (Issue #443)
824
825
826
827 1.9 (2014-07-04)
828 ----------------
829
830 * Shuffled around development-related files. If you're maintaining a distro
831 package of urllib3, you may need to tweak things. (Issue #415)
832
833 * Unverified HTTPS requests will trigger a warning on the first request. See
834 our new `security documentation
835 <https://urllib3.readthedocs.io/en/latest/security.html>`_ for details.
836 (Issue #426)
837
838 * New retry logic and ``urllib3.util.retry.Retry`` configuration object.
839 (Issue #326)
840
841 * All raised exceptions should now wrapped in a
842 ``urllib3.exceptions.HTTPException``-extending exception. (Issue #326)
843
844 * All errors during a retry-enabled request should be wrapped in
845 ``urllib3.exceptions.MaxRetryError``, including timeout-related exceptions
846 which were previously exempt. Underlying error is accessible from the
847 ``.reason`` property. (Issue #326)
848
849 * ``urllib3.exceptions.ConnectionError`` renamed to
850 ``urllib3.exceptions.ProtocolError``. (Issue #326)
851
852 * Errors during response read (such as IncompleteRead) are now wrapped in
853 ``urllib3.exceptions.ProtocolError``. (Issue #418)
854
855 * Requesting an empty host will raise ``urllib3.exceptions.LocationValueError``.
856 (Issue #417)
857
858 * Catch read timeouts over SSL connections as
859 ``urllib3.exceptions.ReadTimeoutError``. (Issue #419)
860
861 * Apply socket arguments before connecting. (Issue #427)
862
863
864 1.8.3 (2014-06-23)
865 ------------------
866
867 * Fix TLS verification when using a proxy in Python 3.4.1. (Issue #385)
868
869 * Add ``disable_cache`` option to ``urllib3.util.make_headers``. (Issue #393)
870
871 * Wrap ``socket.timeout`` exception with
872 ``urllib3.exceptions.ReadTimeoutError``. (Issue #399)
873
874 * Fixed proxy-related bug where connections were being reused incorrectly.
875 (Issues #366, #369)
876
877 * Added ``socket_options`` keyword parameter which allows to define
878 ``setsockopt`` configuration of new sockets. (Issue #397)
879
880 * Removed ``HTTPConnection.tcp_nodelay`` in favor of
881 ``HTTPConnection.default_socket_options``. (Issue #397)
882
883 * Fixed ``TypeError`` bug in Python 2.6.4. (Issue #411)
884
885
886 1.8.2 (2014-04-17)
887 ------------------
888
889 * Fix ``urllib3.util`` not being included in the package.
890
891
892 1.8.1 (2014-04-17)
893 ------------------
894
895 * Fix AppEngine bug of HTTPS requests going out as HTTP. (Issue #356)
896
897 * Don't install ``dummyserver`` into ``site-packages`` as it's only needed
898 for the test suite. (Issue #362)
899
900 * Added support for specifying ``source_address``. (Issue #352)
901
902
903 1.8 (2014-03-04)
904 ----------------
905
906 * Improved url parsing in ``urllib3.util.parse_url`` (properly parse '@' in
907 username, and blank ports like 'hostname:').
908
909 * New ``urllib3.connection`` module which contains all the HTTPConnection
910 objects.
911
912 * Several ``urllib3.util.Timeout``-related fixes. Also changed constructor
913 signature to a more sensible order. [Backwards incompatible]
914 (Issues #252, #262, #263)
915
916 * Use ``backports.ssl_match_hostname`` if it's installed. (Issue #274)
917
918 * Added ``.tell()`` method to ``urllib3.response.HTTPResponse`` which
919 returns the number of bytes read so far. (Issue #277)
920
921 * Support for platforms without threading. (Issue #289)
922
923 * Expand default-port comparison in ``HTTPConnectionPool.is_same_host``
924 to allow a pool with no specified port to be considered equal to to an
925 HTTP/HTTPS url with port 80/443 explicitly provided. (Issue #305)
926
927 * Improved default SSL/TLS settings to avoid vulnerabilities.
928 (Issue #309)
929
930 * Fixed ``urllib3.poolmanager.ProxyManager`` not retrying on connect errors.
931 (Issue #310)
932
933 * Disable Nagle's Algorithm on the socket for non-proxies. A subset of requests
934 will send the entire HTTP request ~200 milliseconds faster; however, some of
935 the resulting TCP packets will be smaller. (Issue #254)
936
937 * Increased maximum number of SubjectAltNames in ``urllib3.contrib.pyopenssl``
938 from the default 64 to 1024 in a single certificate. (Issue #318)
939
940 * Headers are now passed and stored as a custom
941 ``urllib3.collections_.HTTPHeaderDict`` object rather than a plain ``dict``.
942 (Issue #329, #333)
943
944 * Headers no longer lose their case on Python 3. (Issue #236)
945
946 * ``urllib3.contrib.pyopenssl`` now uses the operating system's default CA
947 certificates on inject. (Issue #332)
948
949 * Requests with ``retries=False`` will immediately raise any exceptions without
950 wrapping them in ``MaxRetryError``. (Issue #348)
951
952 * Fixed open socket leak with SSL-related failures. (Issue #344, #348)
953
954
955 1.7.1 (2013-09-25)
956 ------------------
957
958 * Added granular timeout support with new ``urllib3.util.Timeout`` class.
959 (Issue #231)
960
961 * Fixed Python 3.4 support. (Issue #238)
962
963
964 1.7 (2013-08-14)
965 ----------------
966
967 * More exceptions are now pickle-able, with tests. (Issue #174)
968
969 * Fixed redirecting with relative URLs in Location header. (Issue #178)
970
971 * Support for relative urls in ``Location: ...`` header. (Issue #179)
972
973 * ``urllib3.response.HTTPResponse`` now inherits from ``io.IOBase`` for bonus
974 file-like functionality. (Issue #187)
975
976 * Passing ``assert_hostname=False`` when creating a HTTPSConnectionPool will
977 skip hostname verification for SSL connections. (Issue #194)
978
979 * New method ``urllib3.response.HTTPResponse.stream(...)`` which acts as a
980 generator wrapped around ``.read(...)``. (Issue #198)
981
982 * IPv6 url parsing enforces brackets around the hostname. (Issue #199)
983
984 * Fixed thread race condition in
985 ``urllib3.poolmanager.PoolManager.connection_from_host(...)`` (Issue #204)
986
987 * ``ProxyManager`` requests now include non-default port in ``Host: ...``
988 header. (Issue #217)
989
990 * Added HTTPS proxy support in ``ProxyManager``. (Issue #170 #139)
991
992 * New ``RequestField`` object can be passed to the ``fields=...`` param which
993 can specify headers. (Issue #220)
994
995 * Raise ``urllib3.exceptions.ProxyError`` when connecting to proxy fails.
996 (Issue #221)
997
998 * Use international headers when posting file names. (Issue #119)
999
1000 * Improved IPv6 support. (Issue #203)
1001
1002
1003 1.6 (2013-04-25)
1004 ----------------
1005
1006 * Contrib: Optional SNI support for Py2 using PyOpenSSL. (Issue #156)
1007
1008 * ``ProxyManager`` automatically adds ``Host: ...`` header if not given.
1009
1010 * Improved SSL-related code. ``cert_req`` now optionally takes a string like
1011 "REQUIRED" or "NONE". Same with ``ssl_version`` takes strings like "SSLv23"
1012 The string values reflect the suffix of the respective constant variable.
1013 (Issue #130)
1014
1015 * Vendored ``socksipy`` now based on Anorov's fork which handles unexpectedly
1016 closed proxy connections and larger read buffers. (Issue #135)
1017
1018 * Ensure the connection is closed if no data is received, fixes connection leak
1019 on some platforms. (Issue #133)
1020
1021 * Added SNI support for SSL/TLS connections on Py32+. (Issue #89)
1022
1023 * Tests fixed to be compatible with Py26 again. (Issue #125)
1024
1025 * Added ability to choose SSL version by passing an ``ssl.PROTOCOL_*`` constant
1026 to the ``ssl_version`` parameter of ``HTTPSConnectionPool``. (Issue #109)
1027
1028 * Allow an explicit content type to be specified when encoding file fields.
1029 (Issue #126)
1030
1031 * Exceptions are now pickleable, with tests. (Issue #101)
1032
1033 * Fixed default headers not getting passed in some cases. (Issue #99)
1034
1035 * Treat "content-encoding" header value as case-insensitive, per RFC 2616
1036 Section 3.5. (Issue #110)
1037
1038 * "Connection Refused" SocketErrors will get retried rather than raised.
1039 (Issue #92)
1040
1041 * Updated vendored ``six``, no longer overrides the global ``six`` module
1042 namespace. (Issue #113)
1043
1044 * ``urllib3.exceptions.MaxRetryError`` contains a ``reason`` property holding
1045 the exception that prompted the final retry. If ``reason is None`` then it
1046 was due to a redirect. (Issue #92, #114)
1047
1048 * Fixed ``PoolManager.urlopen()`` from not redirecting more than once.
1049 (Issue #149)
1050
1051 * Don't assume ``Content-Type: text/plain`` for multi-part encoding parameters
1052 that are not files. (Issue #111)
1053
1054 * Pass `strict` param down to ``httplib.HTTPConnection``. (Issue #122)
1055
1056 * Added mechanism to verify SSL certificates by fingerprint (md5, sha1) or
1057 against an arbitrary hostname (when connecting by IP or for misconfigured
1058 servers). (Issue #140)
1059
1060 * Streaming decompression support. (Issue #159)
1061
1062
1063 1.5 (2012-08-02)
1064 ----------------
1065
1066 * Added ``urllib3.add_stderr_logger()`` for quickly enabling STDERR debug
1067 logging in urllib3.
1068
1069 * Native full URL parsing (including auth, path, query, fragment) available in
1070 ``urllib3.util.parse_url(url)``.
1071
1072 * Built-in redirect will switch method to 'GET' if status code is 303.
1073 (Issue #11)
1074
1075 * ``urllib3.PoolManager`` strips the scheme and host before sending the request
1076 uri. (Issue #8)
1077
1078 * New ``urllib3.exceptions.DecodeError`` exception for when automatic decoding,
1079 based on the Content-Type header, fails.
1080
1081 * Fixed bug with pool depletion and leaking connections (Issue #76). Added
1082 explicit connection closing on pool eviction. Added
1083 ``urllib3.PoolManager.clear()``.
1084
1085 * 99% -> 100% unit test coverage.
1086
1087
1088 1.4 (2012-06-16)
1089 ----------------
1090
1091 * Minor AppEngine-related fixes.
1092
1093 * Switched from ``mimetools.choose_boundary`` to ``uuid.uuid4()``.
1094
1095 * Improved url parsing. (Issue #73)
1096
1097 * IPv6 url support. (Issue #72)
1098
1099
1100 1.3 (2012-03-25)
1101 ----------------
1102
1103 * Removed pre-1.0 deprecated API.
1104
1105 * Refactored helpers into a ``urllib3.util`` submodule.
1106
1107 * Fixed multipart encoding to support list-of-tuples for keys with multiple
1108 values. (Issue #48)
1109
1110 * Fixed multiple Set-Cookie headers in response not getting merged properly in
1111 Python 3. (Issue #53)
1112
1113 * AppEngine support with Py27. (Issue #61)
1114
1115 * Minor ``encode_multipart_formdata`` fixes related to Python 3 strings vs
1116 bytes.
1117
1118
1119 1.2.2 (2012-02-06)
1120 ------------------
1121
1122 * Fixed packaging bug of not shipping ``test-requirements.txt``. (Issue #47)
1123
1124
1125 1.2.1 (2012-02-05)
1126 ------------------
1127
1128 * Fixed another bug related to when ``ssl`` module is not available. (Issue #41)
1129
1130 * Location parsing errors now raise ``urllib3.exceptions.LocationParseError``
1131 which inherits from ``ValueError``.
1132
1133
1134 1.2 (2012-01-29)
1135 ----------------
1136
1137 * Added Python 3 support (tested on 3.2.2)
1138
1139 * Dropped Python 2.5 support (tested on 2.6.7, 2.7.2)
1140
1141 * Use ``select.poll`` instead of ``select.select`` for platforms that support
1142 it.
1143
1144 * Use ``Queue.LifoQueue`` instead of ``Queue.Queue`` for more aggressive
1145 connection reusing. Configurable by overriding ``ConnectionPool.QueueCls``.
1146
1147 * Fixed ``ImportError`` during install when ``ssl`` module is not available.
1148 (Issue #41)
1149
1150 * Fixed ``PoolManager`` redirects between schemes (such as HTTP -> HTTPS) not
1151 completing properly. (Issue #28, uncovered by Issue #10 in v1.1)
1152
1153 * Ported ``dummyserver`` to use ``tornado`` instead of ``webob`` +
1154 ``eventlet``. Removed extraneous unsupported dummyserver testing backends.
1155 Added socket-level tests.
1156
1157 * More tests. Achievement Unlocked: 99% Coverage.
1158
1159
1160 1.1 (2012-01-07)
1161 ----------------
1162
1163 * Refactored ``dummyserver`` to its own root namespace module (used for
1164 testing).
1165
1166 * Added hostname verification for ``VerifiedHTTPSConnection`` by vendoring in
1167 Py32's ``ssl_match_hostname``. (Issue #25)
1168
1169 * Fixed cross-host HTTP redirects when using ``PoolManager``. (Issue #10)
1170
1171 * Fixed ``decode_content`` being ignored when set through ``urlopen``. (Issue
1172 #27)
1173
1174 * Fixed timeout-related bugs. (Issues #17, #23)
1175
1176
1177 1.0.2 (2011-11-04)
1178 ------------------
1179
1180 * Fixed typo in ``VerifiedHTTPSConnection`` which would only present as a bug if
1181 you're using the object manually. (Thanks pyos)
1182
1183 * Made RecentlyUsedContainer (and consequently PoolManager) more thread-safe by
1184 wrapping the access log in a mutex. (Thanks @christer)
1185
1186 * Made RecentlyUsedContainer more dict-like (corrected ``__delitem__`` and
1187 ``__getitem__`` behaviour), with tests. Shouldn't affect core urllib3 code.
1188
1189
1190 1.0.1 (2011-10-10)
1191 ------------------
1192
1193 * Fixed a bug where the same connection would get returned into the pool twice,
1194 causing extraneous "HttpConnectionPool is full" log warnings.
1195
1196
1197 1.0 (2011-10-08)
1198 ----------------
1199
1200 * Added ``PoolManager`` with LRU expiration of connections (tested and
1201 documented).
1202 * Added ``ProxyManager`` (needs tests, docs, and confirmation that it works
1203 with HTTPS proxies).
1204 * Added optional partial-read support for responses when
1205 ``preload_content=False``. You can now make requests and just read the headers
1206 without loading the content.
1207 * Made response decoding optional (default on, same as before).
1208 * Added optional explicit boundary string for ``encode_multipart_formdata``.
1209 * Convenience request methods are now inherited from ``RequestMethods``. Old
1210 helpers like ``get_url`` and ``post_url`` should be abandoned in favour of
1211 the new ``request(method, url, ...)``.
1212 * Refactored code to be even more decoupled, reusable, and extendable.
1213 * License header added to ``.py`` files.
1214 * Embiggened the documentation: Lots of Sphinx-friendly docstrings in the code
1215 and docs in ``docs/`` and on https://urllib3.readthedocs.io/.
1216 * Embettered all the things!
1217 * Started writing this file.
1218
1219
1220 0.4.1 (2011-07-17)
1221 ------------------
1222
1223 * Minor bug fixes, code cleanup.
1224
1225
1226 0.4 (2011-03-01)
1227 ----------------
1228
1229 * Better unicode support.
1230 * Added ``VerifiedHTTPSConnection``.
1231 * Added ``NTLMConnectionPool`` in contrib.
1232 * Minor improvements.
1233
1234
1235 0.3.1 (2010-07-13)
1236 ------------------
1237
1238 * Added ``assert_host_name`` optional parameter. Now compatible with proxies.
1239
1240
1241 0.3 (2009-12-10)
1242 ----------------
1243
1244 * Added HTTPS support.
1245 * Minor bug fixes.
1246 * Refactored, broken backwards compatibility with 0.2.
1247 * API to be treated as stable from this version forward.
1248
1249
1250 0.2 (2008-11-17)
1251 ----------------
1252
1253 * Added unit tests.
1254 * Bug fixes.
1255
1256
1257 0.1 (2008-11-16)
1258 ----------------
1259
1260 * First release.
1261
1262