11 - Fixes incorrect parsing of proxy credentials that contain a literal or encoded '#' character.
12 - Assorted urllib3 fixes.
19 - New exception: ``ContentDecodingError``. Raised instead of ``urllib3``
20 ``DecodeError`` exceptions.
24 - Avoid many many exceptions from the buggy implementation of ``proxy_bypass`` on OS X in Python 2.6.
25 - Avoid crashing when attempting to get authentication credentials from ~/.netrc when running as a user without a home directory.
26 - Use the correct pool size for pools of connections to proxies.
27 - Fix iteration of ``CookieJar`` objects.
28 - Ensure that cookies are persisted over redirect.
29 - Switch back to using chardet, since it has merged with charade.
34 - Updated CA Bundle, of course.
35 - Cookies set on individual Requests through a ``Session`` (e.g. via ``Session.get()``) are no longer persisted to the ``Session``.
36 - Clean up connections when we hit problems during chunked upload, rather than leaking them.
37 - Return connections to the pool when a chunked upload is successful, rather than leaking it.
38 - Match the HTTPbis recommendation for HTTP 301 redirects.
39 - Prevent hanging when using streaming uploads and Digest Auth when a 401 is received.
40 - Values of headers set by Requests are now always the native string type.
41 - Fix previously broken SNI support.
42 - Fix accessing HTTP proxies using proxy authentication.
43 - Unencode HTTP Basic usernames and passwords extracted from URLs.
44 - Support for IP address ranges for no_proxy environment variable
45 - Parse headers correctly when users override the default ``Host:`` header.
46 - Avoid munging the URL in case of case-sensitive servers.
47 - Looser URL handling for non-HTTP/HTTPS urls.
48 - Accept unicode methods in Python 2.6 and 2.7.
49 - More resilient cookie handling.
50 - Make ``Response`` objects pickleable.
51 - Actually added MD5-sess to Digest Auth instead of pretending to like last time.
52 - Updated internal urllib3.
53 - Fixed @Lukasa's lack of taste.
58 - Updated included CA Bundle with new mistrusts and automated process for the future
59 - Added MD5-sess to Digest Auth
60 - Accept per-file headers in multipart file POST messages.
61 - Fixed: Don't send the full URL on CONNECT messages.
62 - Fixed: Correctly lowercase a redirect scheme.
63 - Fixed: Cookies not persisted when set via functional API.
64 - Fixed: Translate urllib3 ProxyError into a requests ProxyError derived from ConnectionError.
65 - Updated internal urllib3 and chardet.
72 - Keys in the Headers dictionary are now native strings on all Python versions,
73 i.e. bytestrings on Python 2, unicode on Python 3.
74 - Proxy URLs now *must* have an explicit scheme. A ``MissingSchema`` exception
75 will be raised if they don't.
76 - Timeouts now apply to read time if ``Stream=False``.
77 - ``RequestException`` is now a subclass of ``IOError``, not ``RuntimeError``.
78 - Added new method to ``PreparedRequest`` objects: ``PreparedRequest.copy()``.
79 - Added new method to ``Session`` objects: ``Session.update_request()``. This
80 method updates a ``Request`` object with the data (e.g. cookies) stored on
82 - Added new method to ``Session`` objects: ``Session.prepare_request()``. This
83 method updates and prepares a ``Request`` object, and returns the
84 corresponding ``PreparedRequest`` object.
85 - Added new method to ``HTTPAdapter`` objects: ``HTTPAdapter.proxy_headers()``.
86 This should not be called directly, but improves the subclass interface.
87 - ``httplib.IncompleteRead`` exceptions caused by incorrect chunked encoding
88 will now raise a Requests ``ChunkedEncodingError`` instead.
89 - Invalid percent-escape sequences now cause a Requests ``InvalidURL``
90 exception to be raised.
91 - HTTP 208 no longer uses reason phrase ``"im_used"``. Correctly uses
92 ``"already_reported"``.
93 - HTTP 226 reason added (``"im_used"``).
97 - Vastly improved proxy support, including the CONNECT verb. Special thanks to
98 the many contributors who worked towards this improvement.
99 - Cookies are now properly managed when 401 authentication responses are
101 - Chunked encoding fixes.
102 - Support for mixed case schemes.
103 - Better handling of streaming downloads.
104 - Retrieve environment proxies from more locations.
105 - Minor cookies fixes.
106 - Improved redirect behaviour.
107 - Improved streaming behaviour, particularly for compressed data.
108 - Miscellaneous small Python 3 text encoding bugs.
109 - ``.netrc`` no longer overrides explicit auth.
110 - Cookies set by hooks are now correctly persisted on Sessions.
111 - Fix problem with cookies that specify port numbers in their host field.
112 - ``BytesIO`` can be used to perform streaming uploads.
113 - More generous parsing of the ``no_proxy`` environment variable.
114 - Non-string objects can be passed in data values alongside files.
119 - Simple packaging fix
125 - Simple packaging fix
131 - Python 3.3.2 compatibility
132 - Always percent-encode location headers
133 - Fix connection adapter matching to be most-specific first
134 - new argument to the default connection adapter for passing a block argument
135 - prevent a KeyError when there's no link headers
140 - Fixed cookies on sessions and on requests
141 - Significantly change how hooks are dispatched - hooks now receive all the
142 arguments specified by the user when making a request so hooks can make a
143 secondary request with the same parameters. This is especially necessary for
144 authentication handler authors
145 - certifi support was removed
146 - Fixed bug where using OAuth 1 with body ``signature_type`` sent no data
147 - Major proxy work thanks to @Lukasa including parsing of proxy authentication
149 - Fix DigestAuth handling too many 401s
150 - Update vendored urllib3 to include SSL bug fixes
151 - Allow keyword arguments to be passed to ``json.loads()`` via the
152 ``Response.json()`` method
153 - Don't send ``Content-Length`` header by default on ``GET`` or ``HEAD``
155 - Add ``elapsed`` attribute to ``Response`` objects to time how long a request
157 - Fix ``RequestsCookieJar``
158 - Sessions and Adapters are now picklable, i.e., can be used with the
159 multiprocessing library
160 - Update charade to version 1.0.3
162 The change in how hooks are dispatched will likely cause a great deal of
169 - Support for iterable response bodies
170 - Assume servers persist redirect params
171 - Allow explicit content types to be specified for file data
172 - Make merge_kwargs case-insensitive when looking up keys
177 - Fix file upload encoding bug
178 - Fix cookie behavior
183 - Proxy fix for HTTPAdapter.
188 - Cert verification exception bug.
189 - Proxy fix for HTTPAdapter.
194 - Massive Refactor and Simplification
195 - Switch to Apache 2.0 license
196 - Swappable Connection Adapters
197 - Mountable Connection Adapters
198 - Mutable ProcessedRequest chain
200 - Removal of all configuration
201 - Standard library logging
202 - Make Response.json() callable, not property.
203 - Usage of new charade project, which provides python 2 and 3 simultaneous chardet.
204 - Removal of all hooks except 'response'
205 - Removal of all authentication helpers (OAuth, Kerberos)
207 This is not a backwards compatible change.
212 - Improved mime-compatible JSON handling
215 - Case-Insensistive Content-Encoding headers
216 - Support for CJK parameters in form posts
222 - Python 3.3 Compatibility
223 - Simply default accept-encoding
230 - No more iter_content errors if already downloaded.
235 - Fix for OAuth + POSTs
236 - Remove exception eating from dispatch_hook
242 - Incredible Link header support :)
247 - Support for (key, value) lists everywhere.
248 - Digest Authentication improvements.
249 - Ensure proxy exclusions work properly.
250 - Clearer UnicodeError exceptions.
251 - Automatic casting of URLs to tsrings (fURL and such)
257 - Long awaited fix for hanging connections!
267 - GSSAPI/Kerberos authentication!
268 - App Engine 2.7 Fixes!
269 - Fix leaking connections (from urllib3 update)
270 - OAuthlib path hack fix
271 - OAuthlib URL parameters fix.
276 - Use simplejson if available.
277 - Do not hide SSLErrors behind Timeouts.
278 - Fixed param handling with urls containing fragments.
279 - Significantly improved information in User Agent.
280 - client certificates are ignored when verify=False
285 - Zero dependencies (once again)!
286 - New: Response.reason
287 - Sign querystring parameters in OAuth 1.0
288 - Client certificates no longer ignored when verify=False
289 - Add openSUSE certificate support
294 - Allow passing a file or file-like object as data.
295 - Allow hooks to return responses that indicate errors.
296 - Fix Response.text and Response.json for body-less responses.
301 - Removal of Requests.async in favor of `grequests <https://github.com/kennethreitz/grequests>`_
302 - Allow disabling of cookie persistiance.
303 - New implimentation of safe_mode
304 - cookies.get now supports default argument
305 - Session cookies not saved when Session.request is called with return_response=False
306 - Env: no_proxy support.
307 - RequestsCookieJar improvements.
313 - New ``Response.json`` property.
314 - Ability to add string file uploads.
315 - Fix out-of-range issue with iter_lines.
316 - Fix iter_content default size.
317 - Fix POST redirects containing files.
322 - EXPERIMENTAL OAUTH SUPPORT!
323 - Proper CookieJar-backed cookies interface with awesome dict-like interface.
324 - Speed fix for non-iterated content chunks.
325 - Move ``pre_request`` to a more usable place.
326 - New ``pre_send`` hook.
327 - Lazily encode data, params, files.
328 - Load system Certificate Bundle if ``certify`` isn't available.
334 - Attempt to use the OS's certificate bundle if ``certifi`` isn't available.
335 - Infinite digest auth redirect fix.
336 - Multi-part file upload improvements.
337 - Fix decoding of invalid %encodings in URLs.
338 - If there is no content in a response don't throw an error the second time that content is attempted to be read.
339 - Upload data on redirects.
344 * POST redirects now break RFC to do what browsers do: Follow up with a GET.
345 * New ``strict_mode`` configuration to disable new redirect behavior.
351 * Private SSL Certificate support
352 * Remove select.poll from Gevent monkeypatching
353 * Remove redundant generator for chunked transfer encoding
354 * Fix: Response.ok raises Timeout Exception in safe_mode
359 * Generate chunked ValueError fix
360 * Proxy configuration by environment variables
361 * Simplification of iter_lines.
362 * New `trust_env` configuration for disabling system/environment hints.
363 * Suppress cookie errors.
368 * `encode_uri` = False
373 * Allow '=' in cookies.
378 * Response body with 0 content-length fix.
380 * Don't fail on netrc.
391 * HEAD requests don't follow redirects anymore.
392 * raise_for_status() doesn't raise for 3xx anymore.
393 * Make Session objects picklable.
394 * ValueError for invalid schema URLs.
399 * Vastly improved URL quoting.
400 * Additional allowed cookie key values.
401 * Attempted fix for "Too many open files" Error
402 * Replace unicode errors on first pass, no need for second pass.
403 * Append '/' to bare-domain urls before query insertion.
404 * Exceptions now inherit from RuntimeError.
405 * Binary uploads + auth fix.
413 * Dropped 2.5 Support. (*Backwards Incompatible*)
418 * ``Response.content`` is now bytes-only. (*Backwards Incompatible*)
419 * New ``Response.text`` is unicode-only.
420 * If no ``Response.encoding`` is specified and ``chardet`` is available, ``Respoonse.text`` will guess an encoding.
421 * Default to ISO-8859-1 (Western) encoding for "text" subtypes.
422 * Removal of `decode_unicode`. (*Backwards Incompatible*)
423 * New multiple-hooks system.
424 * New ``Response.register_hook`` for registering hooks within the pipeline.
425 * ``Response.url`` is now Unicode.
430 * SSL verify=False bugfix (apparent on windows machines).
435 * Asynchronous async.send method.
436 * Support for proper chunk streams with boundaries.
437 * session argument for Session classes.
438 * Print entire hook tracebacks, not just exception instance.
439 * Fix response.iter_lines from pending next line.
440 * Fix but in HTTP-digest auth w/ URI having query strings.
441 * Fix in Event Hooks section.
448 * danger_mode for automatic Response.raise_for_status()
449 * Response.iter_lines refactor
454 * verify ssl is default.
466 * SSL CERT VERIFICATION!
467 * Release of Cerifi: Mozilla's cert list.
468 * New 'verify' argument for SSL requests.
474 * iter_lines last-line truncation fix
475 * Force safe_mode for async requests
476 * Handle safe_mode exceptions more consistently
477 * Fix iteration on null responses in safe_mode
482 * Socket timeout fixes.
483 * Proxy Authorization support.
488 * Response.iter_lines!
494 * Added license to installed version.
499 * Converted auth system to use simpler callable objects.
500 * New session parameter to API methods.
501 * Display full URL while logging.
506 * New Unicode decoding system, based on over-ridable `Response.encoding`.
507 * Proper URL slash-quote handling.
508 * Cookies with ``[``, ``]``, and ``_`` allowed.
513 * URL Request path fix
520 * Keep-alive support!
521 * Complete removal of Urllib2
522 * Complete removal of Poster
523 * Complete removal of CookieJars
524 * New ConnectionError raising
525 * Safe_mode for error catching
526 * prefetch parameter for request methods
528 * Async pool size throttling
529 * File uploads send real names
530 * Vendored in urllib3
535 * Digest authentication bugfix (attach query data to path)
540 * Response.content = None if there was an invalid repsonse.
541 * Redirection auth handling.
563 * Move away from urllib2 authentication handling.
564 * Fully Remove AuthManager, AuthObject, &c.
565 * New tuple-based auth system with handler callbacks.
571 * Sessions are now the primary interface.
572 * Deprecated InvalidMethodException.
574 * New config system (no more global settings).
580 * Session parameter bugfix (params merging).
586 * Offline (fast) test suite.
587 * Session dictionary argument merging.
593 * Automatic decoding of unicode, based on HTTP Headers.
594 * New ``decode_unicode`` setting.
595 * Removal of ``r.read/close`` methods.
596 * New ``r.faw`` interface for advanced response usage.*
597 * Automatic expansion of parameterized headers.
603 * Beautiful ``requests.async`` module, for making async requests w/ gevent.
609 * GET/HEAD obeys allow_redirects=False.
615 * Enhanced status codes experience ``\o/``
616 * Set a maximum number of redirects (``settings.max_redirects``)
617 * Full Unicode URL support
618 * Support for protocol-less redirects.
619 * Allow for arbitrary request types.
626 * New callback hook system
627 * New persistient sessions object and context manager
628 * Transparent Dict-cookie handling
629 * Status code reference object
630 * Removed Response.cached
631 * Added Response.request
632 * All args are kwargs
633 * Relative redirect support
634 * HTTPError handling improvements
635 * Improved https testing
642 * International Domain Name Support!
643 * Access headers without fetching entire body (``read()``)
644 * Use lists as dicts for parameters
645 * Add Forced Basic Authentication
646 * Forced Basic is default authentication type
647 * ``python-requests.org`` default User-Agent header
648 * CaseInsensitiveDict lower-case caching
649 * Response.history bugfix
656 * Support for Proxies
659 * settings.verbose stream writing
660 * Querystrings for all methods
661 * URLErrors (Connection Refused, Timeout, Invalid URLs) are treated as explicity raised
662 ``r.requests.get('hwe://blah'); r.raise_for_status()``
668 * Improved Redirection Handling
669 * New 'allow_redirects' param for following non-GET/HEAD Redirects
670 * Settings module refactoring
676 * Response.history: list of redirected responses
677 * Case-Insensitive Header Dictionaries!
684 * Urllib2 HTTPAuthentication Recursion fix (Basic/Digest)
686 * Bytes data upload Bugfix
694 * Unicode url-encoded data
695 * Settings context manager and module
701 * Automatic Decompression of GZip Encoded Content
702 * AutoAuth Support for Tupled HTTP Auth
716 * Automatic Authentication API Change
717 * Smarter Query URL Parameterization
718 * Allow file uploads and POST data together
719 * New Authentication Manager System
720 - Simpler Basic HTTP System
721 - Supports all build-in urllib2 Auths
722 - Allows for custom Auth Handlers
729 * PyPy-c v1.4 Support
730 * Auto-Authentication tests
731 * Improved Request object constructor
736 * New HTTPHandling Methods
737 - Response.__nonzero__ (false if bad HTTP Status)
738 - Response.ok (True if expected HTTP Status)
739 - Response.error (Logged HTTPError if bad HTTP Status)
740 - Response.raise_for_status() (Raises stored HTTPError)
746 * Still handles request in the event of an HTTPError. (Issue #2)
747 * Eventlet and Gevent Monkeypatch support.
748 * Cookie Support (Issue #1)
754 * Added file attribute to POST and PUT requests for multipart-encode file uploads.
755 * Added Request.url attribute for context and redirects