Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: third_party/google-endpoints/urllib3-1.20.dist-info/METADATA

Issue 2666783008: Add google-endpoints to third_party/. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 Metadata-Version: 2.0
2 Name: urllib3
3 Version: 1.20
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 Keywords: urllib httplib threadsafe filepost http https ssl pooling
10 Platform: UNKNOWN
11 Classifier: Environment :: Web Environment
12 Classifier: Intended Audience :: Developers
13 Classifier: License :: OSI Approved :: MIT License
14 Classifier: Operating System :: OS Independent
15 Classifier: Programming Language :: Python
16 Classifier: Programming Language :: Python :: 2
17 Classifier: Programming Language :: Python :: 3
18 Classifier: Topic :: Internet :: WWW/HTTP
19 Classifier: Topic :: Software Development :: Libraries
20 Provides-Extra: secure
21 Provides-Extra: socks
22 Requires-Dist: pyOpenSSL>=0.14; python_version<="2.7" and extra == 'secure'
23 Requires-Dist: cryptography>=1.3.4; python_version<="2.7" and extra == 'secure'
24 Requires-Dist: idna>=2.0.0; python_version<="2.7" and extra == 'secure'
25 Requires-Dist: certifi; extra == 'secure'
26 Requires-Dist: ipaddress; python_version<="2.7" and extra == 'secure'
27 Requires-Dist: PySocks>=1.5.6,<2.0,!=1.5.7; extra == 'socks'
28
29 urllib3
30 =======
31
32 .. image:: https://travis-ci.org/shazow/urllib3.png?branch=master
33 :alt: Build status on Travis
34 :target: https://travis-ci.org/shazow/urllib3
35
36 .. image:: https://readthedocs.org/projects/urllib3/badge/?version=latest
37 :alt: Documentation Status
38 :target: https://urllib3.readthedocs.io/en/latest/
39
40 .. image:: https://img.shields.io/codecov/c/github/shazow/urllib3.svg
41 :alt: Coverage Status
42 :target: https://codecov.io/gh/shazow/urllib3
43
44 .. image:: https://img.shields.io/pypi/v/urllib3.svg?maxAge=86400
45 :alt: PyPI version
46 :target: https://pypi.python.org/pypi/urllib3
47
48 .. image:: https://www.bountysource.com/badge/tracker?tracker_id=192525
49 :alt: Bountysource
50 :target: https://www.bountysource.com/trackers/192525-urllib3?utm_source =192525&utm_medium=shield&utm_campaign=TRACKER_BADGE
51
52 urllib3 is a powerful, *sanity-friendly* HTTP client for Python. Much of the
53 Python ecosystem already uses urllib3 and you should too.
54 urllib3 brings many critical features that are missing from the Python
55 standard libraries:
56
57 - Thread safety.
58 - Connection pooling.
59 - Client-side SSL/TLS verification.
60 - File uploads with multipart encoding.
61 - Helpers for retrying requests and dealing with HTTP redirects.
62 - Support for gzip and deflate encoding.
63 - Proxy support for HTTP and SOCKS.
64 - 100% test coverage.
65
66 urllib3 is powerful and easy to use::
67
68 >>> import urllib3
69 >>> http = urllib3.PoolManager()
70 >>> r = http.request('GET', 'http://httpbin.org/robots.txt')
71 >>> r.status
72 200
73 >>> r.data
74 'User-agent: *\nDisallow: /deny\n'
75
76 Installing
77 ----------
78
79 urllib3 can be installed with `pip <https://pip.pypa.io>`_::
80
81 $ pip install urllib3
82
83 Alternatively, you can grab the latest source code from `GitHub <https://github. com/shazow/urllib3>`_::
84
85 $ git clone git://github.com/shazow/urllib3.git
86 $ python setup.py install
87
88
89 Documentation
90 -------------
91
92 urllib3 has usage and reference documentation at `urllib3.readthedocs.io <https: //urllib3.readthedocs.io>`_.
93
94
95 Contributing
96 ------------
97
98 urllib3 happily accepts contributions. Please see our
99 `contributing documentation <https://urllib3.readthedocs.io/en/latest/contributi ng.html>`_
100 for some tips on getting started.
101
102 Maintainers
103 -----------
104
105 - `@lukasa <https://github.com/lukasa>`_ (Cory Benfield)
106 - `@sigmavirus24 <https://github.com/sigmavirus24>`_ (Ian Cordasco)
107 - `@shazow <https://github.com/shazow>`_ (Andrey Petrov)
108
109 👋
110
111 Sponsorship
112 -----------
113
114 If your company benefits from this library, please consider `sponsoring its
115 development <https://urllib3.readthedocs.io/en/latest/contributing.html#sponsors hip>`_.
116
117
118 Changes
119 =======
120
121 1.20 (2017-01-19)
122 -----------------
123
124 * Added support for waiting for I/O using selectors other than select,
125 improving urllib3's behaviour with large numbers of concurrent connections.
126 (Pull #1001)
127
128 * Updated the date for the system clock check. (Issue #1005)
129
130 * ConnectionPools now correctly consider hostnames to be case-insensitive.
131 (Issue #1032)
132
133 * Outdated versions of PyOpenSSL now cause the PyOpenSSL contrib module
134 to fail when it is injected, rather than at first use. (Pull #1063)
135
136 * Outdated versions of cryptography now cause the PyOpenSSL contrib module
137 to fail when it is injected, rather than at first use. (Issue #1044)
138
139 * Automatically attempt to rewind a file-like body object when a request is
140 retried or redirected. (Pull #1039)
141
142 * Fix some bugs that occur when modules incautiously patch the queue module.
143 (Pull #1061)
144
145 * Prevent retries from occuring on read timeouts for which the request method
146 was not in the method whitelist. (Issue #1059)
147
148 * Changed the PyOpenSSL contrib module to lazily load idna to avoid
149 unnecessarily bloating the memory of programs that don't need it. (Pull
150 #1076)
151
152 * Add support for IPv6 literals with zone identifiers. (Pull #1013)
153
154 * Added support for socks5h:// and socks4a:// schemes when working with SOCKS
155 proxies, and controlled remote DNS appropriately. (Issue #1035)
156
157
158 1.19.1 (2016-11-16)
159 -------------------
160
161 * Fixed AppEngine import that didn't function on Python 3.5. (Pull #1025)
162
163
164 1.19 (2016-11-03)
165 -----------------
166
167 * urllib3 now respects Retry-After headers on 413, 429, and 503 responses when
168 using the default retry logic. (Pull #955)
169
170 * Remove markers from setup.py to assist ancient setuptools versions. (Issue
171 #986)
172
173 * Disallow superscripts and other integerish things in URL ports. (Issue #989)
174
175 * Allow urllib3's HTTPResponse.stream() method to continue to work with
176 non-httplib underlying FPs. (Pull #990)
177
178 * Empty filenames in multipart headers are now emitted as such, rather than
179 being supressed. (Issue #1015)
180
181 * Prefer user-supplied Host headers on chunked uploads. (Issue #1009)
182
183
184 1.18.1 (2016-10-27)
185 -------------------
186
187 * CVE-2016-9015. Users who are using urllib3 version 1.17 or 1.18 along with
188 PyOpenSSL injection and OpenSSL 1.1.0 *must* upgrade to this version. This
189 release fixes a vulnerability whereby urllib3 in the above configuration
190 would silently fail to validate TLS certificates due to erroneously setting
191 invalid flags in OpenSSL's ``SSL_CTX_set_verify`` function. These erroneous
192 flags do not cause a problem in OpenSSL versions before 1.1.0, which
193 interprets the presence of any flag as requesting certificate validation.
194
195 There is no PR for this patch, as it was prepared for simultaneous disclosure
196 and release. The master branch received the same fix in PR #1010.
197
198
199 1.18 (2016-09-26)
200 -----------------
201
202 * Fixed incorrect message for IncompleteRead exception. (PR #973)
203
204 * Accept ``iPAddress`` subject alternative name fields in TLS certificates.
205 (Issue #258)
206
207 * Fixed consistency of ``HTTPResponse.closed`` between Python 2 and 3.
208 (Issue #977)
209
210 * Fixed handling of wildcard certificates when using PyOpenSSL. (Issue #979)
211
212
213 1.17 (2016-09-06)
214 -----------------
215
216 * Accept ``SSLContext`` objects for use in SSL/TLS negotiation. (Issue #835)
217
218 * ConnectionPool debug log now includes scheme, host, and port. (Issue #897)
219
220 * Substantially refactored documentation. (Issue #887)
221
222 * Used URLFetch default timeout on AppEngine, rather than hardcoding our own.
223 (Issue #858)
224
225 * Normalize the scheme and host in the URL parser (Issue #833)
226
227 * ``HTTPResponse`` contains the last ``Retry`` object, which now also
228 contains retries history. (Issue #848)
229
230 * Timeout can no longer be set as boolean, and must be greater than zero.
231 (PR #924)
232
233 * Removed pyasn1 and ndg-httpsclient from dependencies used for PyOpenSSL. We
234 now use cryptography and idna, both of which are already dependencies of
235 PyOpenSSL. (PR #930)
236
237 * Fixed infinite loop in ``stream`` when amt=None. (Issue #928)
238
239 * Try to use the operating system's certificates when we are using an
240 ``SSLContext``. (PR #941)
241
242 * Updated cipher suite list to allow ChaCha20+Poly1305. AES-GCM is preferred to
243 ChaCha20, but ChaCha20 is then preferred to everything else. (PR #947)
244
245 * Updated cipher suite list to remove 3DES-based cipher suites. (PR #958)
246
247 * Removed the cipher suite fallback to allow HIGH ciphers. (PR #958)
248
249 * Implemented ``length_remaining`` to determine remaining content
250 to be read. (PR #949)
251
252 * Implemented ``enforce_content_length`` to enable exceptions when
253 incomplete data chunks are received. (PR #949)
254
255 * Dropped connection start, dropped connection reset, redirect, forced retry,
256 and new HTTPS connection log levels to DEBUG, from INFO. (PR #967)
257
258
259 1.16 (2016-06-11)
260 -----------------
261
262 * Disable IPv6 DNS when IPv6 connections are not possible. (Issue #840)
263
264 * Provide ``key_fn_by_scheme`` pool keying mechanism that can be
265 overridden. (Issue #830)
266
267 * Normalize scheme and host to lowercase for pool keys, and include
268 ``source_address``. (Issue #830)
269
270 * Cleaner exception chain in Python 3 for ``_make_request``.
271 (Issue #861)
272
273 * Fixed installing ``urllib3[socks]`` extra. (Issue #864)
274
275 * Fixed signature of ``ConnectionPool.close`` so it can actually safely be
276 called by subclasses. (Issue #873)
277
278 * Retain ``release_conn`` state across retries. (Issues #651, #866)
279
280 * Add customizable ``HTTPConnectionPool.ResponseCls``, which defaults to
281 ``HTTPResponse`` but can be replaced with a subclass. (Issue #879)
282
283
284 1.15.1 (2016-04-11)
285 -------------------
286
287 * Fix packaging to include backports module. (Issue #841)
288
289
290 1.15 (2016-04-06)
291 -----------------
292
293 * Added Retry(raise_on_status=False). (Issue #720)
294
295 * Always use setuptools, no more distutils fallback. (Issue #785)
296
297 * Dropped support for Python 3.2. (Issue #786)
298
299 * Chunked transfer encoding when requesting with ``chunked=True``.
300 (Issue #790)
301
302 * Fixed regression with IPv6 port parsing. (Issue #801)
303
304 * Append SNIMissingWarning messages to allow users to specify it in
305 the PYTHONWARNINGS environment variable. (Issue #816)
306
307 * Handle unicode headers in Py2. (Issue #818)
308
309 * Log certificate when there is a hostname mismatch. (Issue #820)
310
311 * Preserve order of request/response headers. (Issue #821)
312
313
314 1.14 (2015-12-29)
315 -----------------
316
317 * contrib: SOCKS proxy support! (Issue #762)
318
319 * Fixed AppEngine handling of transfer-encoding header and bug
320 in Timeout defaults checking. (Issue #763)
321
322
323 1.13.1 (2015-12-18)
324 -------------------
325
326 * Fixed regression in IPv6 + SSL for match_hostname. (Issue #761)
327
328
329 1.13 (2015-12-14)
330 -----------------
331
332 * Fixed ``pip install urllib3[secure]`` on modern pip. (Issue #706)
333
334 * pyopenssl: Fixed SSL3_WRITE_PENDING error. (Issue #717)
335
336 * pyopenssl: Support for TLSv1.1 and TLSv1.2. (Issue #696)
337
338 * Close connections more defensively on exception. (Issue #734)
339
340 * Adjusted ``read_chunked`` to handle gzipped, chunk-encoded bodies without
341 repeatedly flushing the decoder, to function better on Jython. (Issue #743)
342
343 * Accept ``ca_cert_dir`` for SSL-related PoolManager configuration. (Issue #758)
344
345
346 1.12 (2015-09-03)
347 -----------------
348
349 * Rely on ``six`` for importing ``httplib`` to work around
350 conflicts with other Python 3 shims. (Issue #688)
351
352 * Add support for directories of certificate authorities, as supported by
353 OpenSSL. (Issue #701)
354
355 * New exception: ``NewConnectionError``, raised when we fail to establish
356 a new connection, usually ``ECONNREFUSED`` socket error.
357
358
359 1.11 (2015-07-21)
360 -----------------
361
362 * When ``ca_certs`` is given, ``cert_reqs`` defaults to
363 ``'CERT_REQUIRED'``. (Issue #650)
364
365 * ``pip install urllib3[secure]`` will install Certifi and
366 PyOpenSSL as dependencies. (Issue #678)
367
368 * Made ``HTTPHeaderDict`` usable as a ``headers`` input value
369 (Issues #632, #679)
370
371 * Added `urllib3.contrib.appengine <https://urllib3.readthedocs.io/en/latest/con trib.html#google-app-engine>`_
372 which has an ``AppEngineManager`` for using ``URLFetch`` in a
373 Google AppEngine environment. (Issue #664)
374
375 * Dev: Added test suite for AppEngine. (Issue #631)
376
377 * Fix performance regression when using PyOpenSSL. (Issue #626)
378
379 * Passing incorrect scheme (e.g. ``foo://``) will raise
380 ``ValueError`` instead of ``AssertionError`` (backwards
381 compatible for now, but please migrate). (Issue #640)
382
383 * Fix pools not getting replenished when an error occurs during a
384 request using ``release_conn=False``. (Issue #644)
385
386 * Fix pool-default headers not applying for url-encoded requests
387 like GET. (Issue #657)
388
389 * log.warning in Python 3 when headers are skipped due to parsing
390 errors. (Issue #642)
391
392 * Close and discard connections if an error occurs during read.
393 (Issue #660)
394
395 * Fix host parsing for IPv6 proxies. (Issue #668)
396
397 * Separate warning type SubjectAltNameWarning, now issued once
398 per host. (Issue #671)
399
400 * Fix ``httplib.IncompleteRead`` not getting converted to
401 ``ProtocolError`` when using ``HTTPResponse.stream()``
402 (Issue #674)
403
404 1.10.4 (2015-05-03)
405 -------------------
406
407 * Migrate tests to Tornado 4. (Issue #594)
408
409 * Append default warning configuration rather than overwrite.
410 (Issue #603)
411
412 * Fix streaming decoding regression. (Issue #595)
413
414 * Fix chunked requests losing state across keep-alive connections.
415 (Issue #599)
416
417 * Fix hanging when chunked HEAD response has no body. (Issue #605)
418
419
420 1.10.3 (2015-04-21)
421 -------------------
422
423 * Emit ``InsecurePlatformWarning`` when SSLContext object is missing.
424 (Issue #558)
425
426 * Fix regression of duplicate header keys being discarded.
427 (Issue #563)
428
429 * ``Response.stream()`` returns a generator for chunked responses.
430 (Issue #560)
431
432 * Set upper-bound timeout when waiting for a socket in PyOpenSSL.
433 (Issue #585)
434
435 * Work on platforms without `ssl` module for plain HTTP requests.
436 (Issue #587)
437
438 * Stop relying on the stdlib's default cipher list. (Issue #588)
439
440
441 1.10.2 (2015-02-25)
442 -------------------
443
444 * Fix file descriptor leakage on retries. (Issue #548)
445
446 * Removed RC4 from default cipher list. (Issue #551)
447
448 * Header performance improvements. (Issue #544)
449
450 * Fix PoolManager not obeying redirect retry settings. (Issue #553)
451
452
453 1.10.1 (2015-02-10)
454 -------------------
455
456 * Pools can be used as context managers. (Issue #545)
457
458 * Don't re-use connections which experienced an SSLError. (Issue #529)
459
460 * Don't fail when gzip decoding an empty stream. (Issue #535)
461
462 * Add sha256 support for fingerprint verification. (Issue #540)
463
464 * Fixed handling of header values containing commas. (Issue #533)
465
466
467 1.10 (2014-12-14)
468 -----------------
469
470 * Disabled SSLv3. (Issue #473)
471
472 * Add ``Url.url`` property to return the composed url string. (Issue #394)
473
474 * Fixed PyOpenSSL + gevent ``WantWriteError``. (Issue #412)
475
476 * ``MaxRetryError.reason`` will always be an exception, not string.
477 (Issue #481)
478
479 * Fixed SSL-related timeouts not being detected as timeouts. (Issue #492)
480
481 * Py3: Use ``ssl.create_default_context()`` when available. (Issue #473)
482
483 * Emit ``InsecureRequestWarning`` for *every* insecure HTTPS request.
484 (Issue #496)
485
486 * Emit ``SecurityWarning`` when certificate has no ``subjectAltName``.
487 (Issue #499)
488
489 * Close and discard sockets which experienced SSL-related errors.
490 (Issue #501)
491
492 * Handle ``body`` param in ``.request(...)``. (Issue #513)
493
494 * Respect timeout with HTTPS proxy. (Issue #505)
495
496 * PyOpenSSL: Handle ZeroReturnError exception. (Issue #520)
497
498
499 1.9.1 (2014-09-13)
500 ------------------
501
502 * Apply socket arguments before binding. (Issue #427)
503
504 * More careful checks if fp-like object is closed. (Issue #435)
505
506 * Fixed packaging issues of some development-related files not
507 getting included. (Issue #440)
508
509 * Allow performing *only* fingerprint verification. (Issue #444)
510
511 * Emit ``SecurityWarning`` if system clock is waaay off. (Issue #445)
512
513 * Fixed PyOpenSSL compatibility with PyPy. (Issue #450)
514
515 * Fixed ``BrokenPipeError`` and ``ConnectionError`` handling in Py3.
516 (Issue #443)
517
518
519
520 1.9 (2014-07-04)
521 ----------------
522
523 * Shuffled around development-related files. If you're maintaining a distro
524 package of urllib3, you may need to tweak things. (Issue #415)
525
526 * Unverified HTTPS requests will trigger a warning on the first request. See
527 our new `security documentation
528 <https://urllib3.readthedocs.io/en/latest/security.html>`_ for details.
529 (Issue #426)
530
531 * New retry logic and ``urllib3.util.retry.Retry`` configuration object.
532 (Issue #326)
533
534 * All raised exceptions should now wrapped in a
535 ``urllib3.exceptions.HTTPException``-extending exception. (Issue #326)
536
537 * All errors during a retry-enabled request should be wrapped in
538 ``urllib3.exceptions.MaxRetryError``, including timeout-related exceptions
539 which were previously exempt. Underlying error is accessible from the
540 ``.reason`` propery. (Issue #326)
541
542 * ``urllib3.exceptions.ConnectionError`` renamed to
543 ``urllib3.exceptions.ProtocolError``. (Issue #326)
544
545 * Errors during response read (such as IncompleteRead) are now wrapped in
546 ``urllib3.exceptions.ProtocolError``. (Issue #418)
547
548 * Requesting an empty host will raise ``urllib3.exceptions.LocationValueError``.
549 (Issue #417)
550
551 * Catch read timeouts over SSL connections as
552 ``urllib3.exceptions.ReadTimeoutError``. (Issue #419)
553
554 * Apply socket arguments before connecting. (Issue #427)
555
556
557 1.8.3 (2014-06-23)
558 ------------------
559
560 * Fix TLS verification when using a proxy in Python 3.4.1. (Issue #385)
561
562 * Add ``disable_cache`` option to ``urllib3.util.make_headers``. (Issue #393)
563
564 * Wrap ``socket.timeout`` exception with
565 ``urllib3.exceptions.ReadTimeoutError``. (Issue #399)
566
567 * Fixed proxy-related bug where connections were being reused incorrectly.
568 (Issues #366, #369)
569
570 * Added ``socket_options`` keyword parameter which allows to define
571 ``setsockopt`` configuration of new sockets. (Issue #397)
572
573 * Removed ``HTTPConnection.tcp_nodelay`` in favor of
574 ``HTTPConnection.default_socket_options``. (Issue #397)
575
576 * Fixed ``TypeError`` bug in Python 2.6.4. (Issue #411)
577
578
579 1.8.2 (2014-04-17)
580 ------------------
581
582 * Fix ``urllib3.util`` not being included in the package.
583
584
585 1.8.1 (2014-04-17)
586 ------------------
587
588 * Fix AppEngine bug of HTTPS requests going out as HTTP. (Issue #356)
589
590 * Don't install ``dummyserver`` into ``site-packages`` as it's only needed
591 for the test suite. (Issue #362)
592
593 * Added support for specifying ``source_address``. (Issue #352)
594
595
596 1.8 (2014-03-04)
597 ----------------
598
599 * Improved url parsing in ``urllib3.util.parse_url`` (properly parse '@' in
600 username, and blank ports like 'hostname:').
601
602 * New ``urllib3.connection`` module which contains all the HTTPConnection
603 objects.
604
605 * Several ``urllib3.util.Timeout``-related fixes. Also changed constructor
606 signature to a more sensible order. [Backwards incompatible]
607 (Issues #252, #262, #263)
608
609 * Use ``backports.ssl_match_hostname`` if it's installed. (Issue #274)
610
611 * Added ``.tell()`` method to ``urllib3.response.HTTPResponse`` which
612 returns the number of bytes read so far. (Issue #277)
613
614 * Support for platforms without threading. (Issue #289)
615
616 * Expand default-port comparison in ``HTTPConnectionPool.is_same_host``
617 to allow a pool with no specified port to be considered equal to to an
618 HTTP/HTTPS url with port 80/443 explicitly provided. (Issue #305)
619
620 * Improved default SSL/TLS settings to avoid vulnerabilities.
621 (Issue #309)
622
623 * Fixed ``urllib3.poolmanager.ProxyManager`` not retrying on connect errors.
624 (Issue #310)
625
626 * Disable Nagle's Algorithm on the socket for non-proxies. A subset of requests
627 will send the entire HTTP request ~200 milliseconds faster; however, some of
628 the resulting TCP packets will be smaller. (Issue #254)
629
630 * Increased maximum number of SubjectAltNames in ``urllib3.contrib.pyopenssl``
631 from the default 64 to 1024 in a single certificate. (Issue #318)
632
633 * Headers are now passed and stored as a custom
634 ``urllib3.collections_.HTTPHeaderDict`` object rather than a plain ``dict``.
635 (Issue #329, #333)
636
637 * Headers no longer lose their case on Python 3. (Issue #236)
638
639 * ``urllib3.contrib.pyopenssl`` now uses the operating system's default CA
640 certificates on inject. (Issue #332)
641
642 * Requests with ``retries=False`` will immediately raise any exceptions without
643 wrapping them in ``MaxRetryError``. (Issue #348)
644
645 * Fixed open socket leak with SSL-related failures. (Issue #344, #348)
646
647
648 1.7.1 (2013-09-25)
649 ------------------
650
651 * Added granular timeout support with new ``urllib3.util.Timeout`` class.
652 (Issue #231)
653
654 * Fixed Python 3.4 support. (Issue #238)
655
656
657 1.7 (2013-08-14)
658 ----------------
659
660 * More exceptions are now pickle-able, with tests. (Issue #174)
661
662 * Fixed redirecting with relative URLs in Location header. (Issue #178)
663
664 * Support for relative urls in ``Location: ...`` header. (Issue #179)
665
666 * ``urllib3.response.HTTPResponse`` now inherits from ``io.IOBase`` for bonus
667 file-like functionality. (Issue #187)
668
669 * Passing ``assert_hostname=False`` when creating a HTTPSConnectionPool will
670 skip hostname verification for SSL connections. (Issue #194)
671
672 * New method ``urllib3.response.HTTPResponse.stream(...)`` which acts as a
673 generator wrapped around ``.read(...)``. (Issue #198)
674
675 * IPv6 url parsing enforces brackets around the hostname. (Issue #199)
676
677 * Fixed thread race condition in
678 ``urllib3.poolmanager.PoolManager.connection_from_host(...)`` (Issue #204)
679
680 * ``ProxyManager`` requests now include non-default port in ``Host: ...``
681 header. (Issue #217)
682
683 * Added HTTPS proxy support in ``ProxyManager``. (Issue #170 #139)
684
685 * New ``RequestField`` object can be passed to the ``fields=...`` param which
686 can specify headers. (Issue #220)
687
688 * Raise ``urllib3.exceptions.ProxyError`` when connecting to proxy fails.
689 (Issue #221)
690
691 * Use international headers when posting file names. (Issue #119)
692
693 * Improved IPv6 support. (Issue #203)
694
695
696 1.6 (2013-04-25)
697 ----------------
698
699 * Contrib: Optional SNI support for Py2 using PyOpenSSL. (Issue #156)
700
701 * ``ProxyManager`` automatically adds ``Host: ...`` header if not given.
702
703 * Improved SSL-related code. ``cert_req`` now optionally takes a string like
704 "REQUIRED" or "NONE". Same with ``ssl_version`` takes strings like "SSLv23"
705 The string values reflect the suffix of the respective constant variable.
706 (Issue #130)
707
708 * Vendored ``socksipy`` now based on Anorov's fork which handles unexpectedly
709 closed proxy connections and larger read buffers. (Issue #135)
710
711 * Ensure the connection is closed if no data is received, fixes connection leak
712 on some platforms. (Issue #133)
713
714 * Added SNI support for SSL/TLS connections on Py32+. (Issue #89)
715
716 * Tests fixed to be compatible with Py26 again. (Issue #125)
717
718 * Added ability to choose SSL version by passing an ``ssl.PROTOCOL_*`` constant
719 to the ``ssl_version`` parameter of ``HTTPSConnectionPool``. (Issue #109)
720
721 * Allow an explicit content type to be specified when encoding file fields.
722 (Issue #126)
723
724 * Exceptions are now pickleable, with tests. (Issue #101)
725
726 * Fixed default headers not getting passed in some cases. (Issue #99)
727
728 * Treat "content-encoding" header value as case-insensitive, per RFC 2616
729 Section 3.5. (Issue #110)
730
731 * "Connection Refused" SocketErrors will get retried rather than raised.
732 (Issue #92)
733
734 * Updated vendored ``six``, no longer overrides the global ``six`` module
735 namespace. (Issue #113)
736
737 * ``urllib3.exceptions.MaxRetryError`` contains a ``reason`` property holding
738 the exception that prompted the final retry. If ``reason is None`` then it
739 was due to a redirect. (Issue #92, #114)
740
741 * Fixed ``PoolManager.urlopen()`` from not redirecting more than once.
742 (Issue #149)
743
744 * Don't assume ``Content-Type: text/plain`` for multi-part encoding parameters
745 that are not files. (Issue #111)
746
747 * Pass `strict` param down to ``httplib.HTTPConnection``. (Issue #122)
748
749 * Added mechanism to verify SSL certificates by fingerprint (md5, sha1) or
750 against an arbitrary hostname (when connecting by IP or for misconfigured
751 servers). (Issue #140)
752
753 * Streaming decompression support. (Issue #159)
754
755
756 1.5 (2012-08-02)
757 ----------------
758
759 * Added ``urllib3.add_stderr_logger()`` for quickly enabling STDERR debug
760 logging in urllib3.
761
762 * Native full URL parsing (including auth, path, query, fragment) available in
763 ``urllib3.util.parse_url(url)``.
764
765 * Built-in redirect will switch method to 'GET' if status code is 303.
766 (Issue #11)
767
768 * ``urllib3.PoolManager`` strips the scheme and host before sending the request
769 uri. (Issue #8)
770
771 * New ``urllib3.exceptions.DecodeError`` exception for when automatic decoding,
772 based on the Content-Type header, fails.
773
774 * Fixed bug with pool depletion and leaking connections (Issue #76). Added
775 explicit connection closing on pool eviction. Added
776 ``urllib3.PoolManager.clear()``.
777
778 * 99% -> 100% unit test coverage.
779
780
781 1.4 (2012-06-16)
782 ----------------
783
784 * Minor AppEngine-related fixes.
785
786 * Switched from ``mimetools.choose_boundary`` to ``uuid.uuid4()``.
787
788 * Improved url parsing. (Issue #73)
789
790 * IPv6 url support. (Issue #72)
791
792
793 1.3 (2012-03-25)
794 ----------------
795
796 * Removed pre-1.0 deprecated API.
797
798 * Refactored helpers into a ``urllib3.util`` submodule.
799
800 * Fixed multipart encoding to support list-of-tuples for keys with multiple
801 values. (Issue #48)
802
803 * Fixed multiple Set-Cookie headers in response not getting merged properly in
804 Python 3. (Issue #53)
805
806 * AppEngine support with Py27. (Issue #61)
807
808 * Minor ``encode_multipart_formdata`` fixes related to Python 3 strings vs
809 bytes.
810
811
812 1.2.2 (2012-02-06)
813 ------------------
814
815 * Fixed packaging bug of not shipping ``test-requirements.txt``. (Issue #47)
816
817
818 1.2.1 (2012-02-05)
819 ------------------
820
821 * Fixed another bug related to when ``ssl`` module is not available. (Issue #41)
822
823 * Location parsing errors now raise ``urllib3.exceptions.LocationParseError``
824 which inherits from ``ValueError``.
825
826
827 1.2 (2012-01-29)
828 ----------------
829
830 * Added Python 3 support (tested on 3.2.2)
831
832 * Dropped Python 2.5 support (tested on 2.6.7, 2.7.2)
833
834 * Use ``select.poll`` instead of ``select.select`` for platforms that support
835 it.
836
837 * Use ``Queue.LifoQueue`` instead of ``Queue.Queue`` for more aggressive
838 connection reusing. Configurable by overriding ``ConnectionPool.QueueCls``.
839
840 * Fixed ``ImportError`` during install when ``ssl`` module is not available.
841 (Issue #41)
842
843 * Fixed ``PoolManager`` redirects between schemes (such as HTTP -> HTTPS) not
844 completing properly. (Issue #28, uncovered by Issue #10 in v1.1)
845
846 * Ported ``dummyserver`` to use ``tornado`` instead of ``webob`` +
847 ``eventlet``. Removed extraneous unsupported dummyserver testing backends.
848 Added socket-level tests.
849
850 * More tests. Achievement Unlocked: 99% Coverage.
851
852
853 1.1 (2012-01-07)
854 ----------------
855
856 * Refactored ``dummyserver`` to its own root namespace module (used for
857 testing).
858
859 * Added hostname verification for ``VerifiedHTTPSConnection`` by vendoring in
860 Py32's ``ssl_match_hostname``. (Issue #25)
861
862 * Fixed cross-host HTTP redirects when using ``PoolManager``. (Issue #10)
863
864 * Fixed ``decode_content`` being ignored when set through ``urlopen``. (Issue
865 #27)
866
867 * Fixed timeout-related bugs. (Issues #17, #23)
868
869
870 1.0.2 (2011-11-04)
871 ------------------
872
873 * Fixed typo in ``VerifiedHTTPSConnection`` which would only present as a bug if
874 you're using the object manually. (Thanks pyos)
875
876 * Made RecentlyUsedContainer (and consequently PoolManager) more thread-safe by
877 wrapping the access log in a mutex. (Thanks @christer)
878
879 * Made RecentlyUsedContainer more dict-like (corrected ``__delitem__`` and
880 ``__getitem__`` behaviour), with tests. Shouldn't affect core urllib3 code.
881
882
883 1.0.1 (2011-10-10)
884 ------------------
885
886 * Fixed a bug where the same connection would get returned into the pool twice,
887 causing extraneous "HttpConnectionPool is full" log warnings.
888
889
890 1.0 (2011-10-08)
891 ----------------
892
893 * Added ``PoolManager`` with LRU expiration of connections (tested and
894 documented).
895 * Added ``ProxyManager`` (needs tests, docs, and confirmation that it works
896 with HTTPS proxies).
897 * Added optional partial-read support for responses when
898 ``preload_content=False``. You can now make requests and just read the headers
899 without loading the content.
900 * Made response decoding optional (default on, same as before).
901 * Added optional explicit boundary string for ``encode_multipart_formdata``.
902 * Convenience request methods are now inherited from ``RequestMethods``. Old
903 helpers like ``get_url`` and ``post_url`` should be abandoned in favour of
904 the new ``request(method, url, ...)``.
905 * Refactored code to be even more decoupled, reusable, and extendable.
906 * License header added to ``.py`` files.
907 * Embiggened the documentation: Lots of Sphinx-friendly docstrings in the code
908 and docs in ``docs/`` and on urllib3.readthedocs.org.
909 * Embettered all the things!
910 * Started writing this file.
911
912
913 0.4.1 (2011-07-17)
914 ------------------
915
916 * Minor bug fixes, code cleanup.
917
918
919 0.4 (2011-03-01)
920 ----------------
921
922 * Better unicode support.
923 * Added ``VerifiedHTTPSConnection``.
924 * Added ``NTLMConnectionPool`` in contrib.
925 * Minor improvements.
926
927
928 0.3.1 (2010-07-13)
929 ------------------
930
931 * Added ``assert_host_name`` optional parameter. Now compatible with proxies.
932
933
934 0.3 (2009-12-10)
935 ----------------
936
937 * Added HTTPS support.
938 * Minor bug fixes.
939 * Refactored, broken backwards compatibility with 0.2.
940 * API to be treated as stable from this version forward.
941
942
943 0.2 (2008-11-17)
944 ----------------
945
946 * Added unit tests.
947 * Bug fixes.
948
949
950 0.1 (2008-11-16)
951 ----------------
952
953 * First release.
954
955
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698