10 - New exception: ``ContentDecodingError``. Raised instead of ``urllib3``
11 ``DecodeError`` exceptions.
14 - Avoid many many exceptions from the buggy implementation of ``proxy_bypass``
15 on OS X in Python 2.6.
16 - Avoid crashing when attempting to get authentication credentions from
17 ~/.netrc when running as a user without a home directory.
18 - Use the correct pool size for pools of connections to proxies.
19 - Fix iteration of ``CookieJar`` objects.
20 - Ensure that cookies are persisted over redirect.
21 - Switch back to using chardet since charade has merged with it
26 - Updated CA Bundle, of course.
27 - Cookies set on individual Requests through a ``Session`` (e.g. via ``Session.get()``) are no longer persisted to the ``Session``.
28 - Clean up connections when we hit problems during chunked upload, rather than leaking them.
29 - Return connections to the pool when a chunked upload is successful, rather than leaking it.
30 - Match the HTTPbis recommendation for HTTP 301 redirects.
31 - Prevent hanging when using streaming uploads and Digest Auth when a 401 is received.
32 - Values of headers set by Requests are now always the native string type.
33 - Fix previously broken SNI support.
34 - Fix accessing HTTP proxies using proxy authentication.
35 - Unencode HTTP Basic usernames and passwords extracted from URLs.
36 - Support for IP address ranges for no_proxy environment variable
37 - Parse headers correctly when users override the default ``Host:`` header.
38 - Avoid munging the URL in case of case-sensitive servers.
39 - Looser URL handling for non-HTTP/HTTPS urls.
40 - Accept unicode methods in Python 2.6 and 2.7.
41 - More resilient cookie handling.
42 - Make ``Response`` objects pickleable.
43 - Actually added MD5-sess to Digest Auth instead of pretending to like last time.
44 - Updated internal urllib3.
45 - Fixed @Lukasa's lack of taste.
50 - Updated included CA Bundle with new mistrusts and automated process for the future
51 - Added MD5-sess to Digest Auth
52 - Accept per-file headers in multipart file POST messages.
53 - Fixed: Don't send the full URL on CONNECT messages.
54 - Fixed: Correctly lowercase a redirect scheme.
55 - Fixed: Cookies not persisted when set via functional API.
56 - Fixed: Translate urllib3 ProxyError into a requests ProxyError derived from ConnectionError.
57 - Updated internal urllib3 and chardet.
64 - Keys in the Headers dictionary are now native strings on all Python versions,
65 i.e. bytestrings on Python 2, unicode on Python 3.
66 - Proxy URLs now *must* have an explicit scheme. A ``MissingSchema`` exception
67 will be raised if they don't.
68 - Timeouts now apply to read time if ``Stream=False``.
69 - ``RequestException`` is now a subclass of ``IOError``, not ``RuntimeError``.
70 - Added new method to ``PreparedRequest`` objects: ``PreparedRequest.copy()``.
71 - Added new method to ``Session`` objects: ``Session.update_request()``. This
72 method updates a ``Request`` object with the data (e.g. cookies) stored on
74 - Added new method to ``Session`` objects: ``Session.prepare_request()``. This
75 method updates and prepares a ``Request`` object, and returns the
76 corresponding ``PreparedRequest`` object.
77 - Added new method to ``HTTPAdapter`` objects: ``HTTPAdapter.proxy_headers()``.
78 This should not be called directly, but improves the subclass interface.
79 - ``httplib.IncompleteRead`` exceptions caused by incorrect chunked encoding
80 will now raise a Requests ``ChunkedEncodingError`` instead.
81 - Invalid percent-escape sequences now cause a Requests ``InvalidURL``
82 exception to be raised.
83 - HTTP 208 no longer uses reason phrase ``"im_used"``. Correctly uses
84 ``"already_reported"``.
85 - HTTP 226 reason added (``"im_used"``).
89 - Vastly improved proxy support, including the CONNECT verb. Special thanks to
90 the many contributors who worked towards this improvement.
91 - Cookies are now properly managed when 401 authentication responses are
93 - Chunked encoding fixes.
94 - Support for mixed case schemes.
95 - Better handling of streaming downloads.
96 - Retrieve environment proxies from more locations.
97 - Minor cookies fixes.
98 - Improved redirect behaviour.
99 - Improved streaming behaviour, particularly for compressed data.
100 - Miscellaneous small Python 3 text encoding bugs.
101 - ``.netrc`` no longer overrides explicit auth.
102 - Cookies set by hooks are now correctly persisted on Sessions.
103 - Fix problem with cookies that specify port numbers in their host field.
104 - ``BytesIO`` can be used to perform streaming uploads.
105 - More generous parsing of the ``no_proxy`` environment variable.
106 - Non-string objects can be passed in data values alongside files.
111 - Simple packaging fix
117 - Simple packaging fix
123 - Python 3.3.2 compatibility
124 - Always percent-encode location headers
125 - Fix connection adapter matching to be most-specific first
126 - new argument to the default connection adapter for passing a block argument
127 - prevent a KeyError when there's no link headers
132 - Fixed cookies on sessions and on requests
133 - Significantly change how hooks are dispatched - hooks now receive all the
134 arguments specified by the user when making a request so hooks can make a
135 secondary request with the same parameters. This is especially necessary for
136 authentication handler authors
137 - certifi support was removed
138 - Fixed bug where using OAuth 1 with body ``signature_type`` sent no data
139 - Major proxy work thanks to @Lukasa including parsing of proxy authentication
141 - Fix DigestAuth handling too many 401s
142 - Update vendored urllib3 to include SSL bug fixes
143 - Allow keyword arguments to be passed to ``json.loads()`` via the
144 ``Response.json()`` method
145 - Don't send ``Content-Length`` header by default on ``GET`` or ``HEAD``
147 - Add ``elapsed`` attribute to ``Response`` objects to time how long a request
149 - Fix ``RequestsCookieJar``
150 - Sessions and Adapters are now picklable, i.e., can be used with the
151 multiprocessing library
152 - Update charade to version 1.0.3
154 The change in how hooks are dispatched will likely cause a great deal of
161 - Support for iterable response bodies
162 - Assume servers persist redirect params
163 - Allow explicit content types to be specified for file data
164 - Make merge_kwargs case-insensitive when looking up keys
169 - Fix file upload encoding bug
170 - Fix cookie behavior
175 - Proxy fix for HTTPAdapter.
180 - Cert verification exception bug.
181 - Proxy fix for HTTPAdapter.
186 - Massive Refactor and Simplification
187 - Switch to Apache 2.0 license
188 - Swappable Connection Adapters
189 - Mountable Connection Adapters
190 - Mutable ProcessedRequest chain
192 - Removal of all configuration
193 - Standard library logging
194 - Make Response.json() callable, not property.
195 - Usage of new charade project, which provides python 2 and 3 simultaneous chardet.
196 - Removal of all hooks except 'response'
197 - Removal of all authentication helpers (OAuth, Kerberos)
199 This is not a backwards compatible change.
204 - Improved mime-compatible JSON handling
207 - Case-Insensistive Content-Encoding headers
208 - Support for CJK parameters in form posts
214 - Python 3.3 Compatibility
215 - Simply default accept-encoding
222 - No more iter_content errors if already downloaded.
227 - Fix for OAuth + POSTs
228 - Remove exception eating from dispatch_hook
234 - Incredible Link header support :)
239 - Support for (key, value) lists everywhere.
240 - Digest Authentication improvements.
241 - Ensure proxy exclusions work properly.
242 - Clearer UnicodeError exceptions.
243 - Automatic casting of URLs to tsrings (fURL and such)
249 - Long awaited fix for hanging connections!
259 - GSSAPI/Kerberos authentication!
260 - App Engine 2.7 Fixes!
261 - Fix leaking connections (from urllib3 update)
262 - OAuthlib path hack fix
263 - OAuthlib URL parameters fix.
268 - Use simplejson if available.
269 - Do not hide SSLErrors behind Timeouts.
270 - Fixed param handling with urls containing fragments.
271 - Significantly improved information in User Agent.
272 - client certificates are ignored when verify=False
277 - Zero dependencies (once again)!
278 - New: Response.reason
279 - Sign querystring parameters in OAuth 1.0
280 - Client certificates no longer ignored when verify=False
281 - Add openSUSE certificate support
286 - Allow passing a file or file-like object as data.
287 - Allow hooks to return responses that indicate errors.
288 - Fix Response.text and Response.json for body-less responses.
293 - Removal of Requests.async in favor of `grequests <https://github.com/kennethreitz/grequests>`_
294 - Allow disabling of cookie persistiance.
295 - New implimentation of safe_mode
296 - cookies.get now supports default argument
297 - Session cookies not saved when Session.request is called with return_response=False
298 - Env: no_proxy support.
299 - RequestsCookieJar improvements.
305 - New ``Response.json`` property.
306 - Ability to add string file uploads.
307 - Fix out-of-range issue with iter_lines.
308 - Fix iter_content default size.
309 - Fix POST redirects containing files.
314 - EXPERIMENTAL OAUTH SUPPORT!
315 - Proper CookieJar-backed cookies interface with awesome dict-like interface.
316 - Speed fix for non-iterated content chunks.
317 - Move ``pre_request`` to a more usable place.
318 - New ``pre_send`` hook.
319 - Lazily encode data, params, files.
320 - Load system Certificate Bundle if ``certify`` isn't available.
326 - Attempt to use the OS's certificate bundle if ``certifi`` isn't available.
327 - Infinite digest auth redirect fix.
328 - Multi-part file upload improvements.
329 - Fix decoding of invalid %encodings in URLs.
330 - If there is no content in a response don't throw an error the second time that content is attempted to be read.
331 - Upload data on redirects.
336 * POST redirects now break RFC to do what browsers do: Follow up with a GET.
337 * New ``strict_mode`` configuration to disable new redirect behavior.
343 * Private SSL Certificate support
344 * Remove select.poll from Gevent monkeypatching
345 * Remove redundant generator for chunked transfer encoding
346 * Fix: Response.ok raises Timeout Exception in safe_mode
351 * Generate chunked ValueError fix
352 * Proxy configuration by environment variables
353 * Simplification of iter_lines.
354 * New `trust_env` configuration for disabling system/environment hints.
355 * Suppress cookie errors.
360 * `encode_uri` = False
365 * Allow '=' in cookies.
370 * Response body with 0 content-length fix.
372 * Don't fail on netrc.
383 * HEAD requests don't follow redirects anymore.
384 * raise_for_status() doesn't raise for 3xx anymore.
385 * Make Session objects picklable.
386 * ValueError for invalid schema URLs.
391 * Vastly improved URL quoting.
392 * Additional allowed cookie key values.
393 * Attempted fix for "Too many open files" Error
394 * Replace unicode errors on first pass, no need for second pass.
395 * Append '/' to bare-domain urls before query insertion.
396 * Exceptions now inherit from RuntimeError.
397 * Binary uploads + auth fix.
405 * Dropped 2.5 Support. (*Backwards Incompatible*)
410 * ``Response.content`` is now bytes-only. (*Backwards Incompatible*)
411 * New ``Response.text`` is unicode-only.
412 * If no ``Response.encoding`` is specified and ``chardet`` is available, ``Respoonse.text`` will guess an encoding.
413 * Default to ISO-8859-1 (Western) encoding for "text" subtypes.
414 * Removal of `decode_unicode`. (*Backwards Incompatible*)
415 * New multiple-hooks system.
416 * New ``Response.register_hook`` for registering hooks within the pipeline.
417 * ``Response.url`` is now Unicode.
422 * SSL verify=False bugfix (apparent on windows machines).
427 * Asynchronous async.send method.
428 * Support for proper chunk streams with boundaries.
429 * session argument for Session classes.
430 * Print entire hook tracebacks, not just exception instance.
431 * Fix response.iter_lines from pending next line.
432 * Fix but in HTTP-digest auth w/ URI having query strings.
433 * Fix in Event Hooks section.
440 * danger_mode for automatic Response.raise_for_status()
441 * Response.iter_lines refactor
446 * verify ssl is default.
458 * SSL CERT VERIFICATION!
459 * Release of Cerifi: Mozilla's cert list.
460 * New 'verify' argument for SSL requests.
466 * iter_lines last-line truncation fix
467 * Force safe_mode for async requests
468 * Handle safe_mode exceptions more consistently
469 * Fix iteration on null responses in safe_mode
474 * Socket timeout fixes.
475 * Proxy Authorization support.
480 * Response.iter_lines!
486 * Added license to installed version.
491 * Converted auth system to use simpler callable objects.
492 * New session parameter to API methods.
493 * Display full URL while logging.
498 * New Unicode decoding system, based on over-ridable `Response.encoding`.
499 * Proper URL slash-quote handling.
500 * Cookies with ``[``, ``]``, and ``_`` allowed.
505 * URL Request path fix
512 * Keep-alive support!
513 * Complete removal of Urllib2
514 * Complete removal of Poster
515 * Complete removal of CookieJars
516 * New ConnectionError raising
517 * Safe_mode for error catching
518 * prefetch parameter for request methods
520 * Async pool size throttling
521 * File uploads send real names
522 * Vendored in urllib3
527 * Digest authentication bugfix (attach query data to path)
532 * Response.content = None if there was an invalid repsonse.
533 * Redirection auth handling.
555 * Move away from urllib2 authentication handling.
556 * Fully Remove AuthManager, AuthObject, &c.
557 * New tuple-based auth system with handler callbacks.
563 * Sessions are now the primary interface.
564 * Deprecated InvalidMethodException.
566 * New config system (no more global settings).
572 * Session parameter bugfix (params merging).
578 * Offline (fast) test suite.
579 * Session dictionary argument merging.
585 * Automatic decoding of unicode, based on HTTP Headers.
586 * New ``decode_unicode`` setting.
587 * Removal of ``r.read/close`` methods.
588 * New ``r.faw`` interface for advanced response usage.*
589 * Automatic expansion of parameterized headers.
595 * Beautiful ``requests.async`` module, for making async requests w/ gevent.
601 * GET/HEAD obeys allow_redirects=False.
607 * Enhanced status codes experience ``\o/``
608 * Set a maximum number of redirects (``settings.max_redirects``)
609 * Full Unicode URL support
610 * Support for protocol-less redirects.
611 * Allow for arbitrary request types.
618 * New callback hook system
619 * New persistient sessions object and context manager
620 * Transparent Dict-cookie handling
621 * Status code reference object
622 * Removed Response.cached
623 * Added Response.request
624 * All args are kwargs
625 * Relative redirect support
626 * HTTPError handling improvements
627 * Improved https testing
634 * International Domain Name Support!
635 * Access headers without fetching entire body (``read()``)
636 * Use lists as dicts for parameters
637 * Add Forced Basic Authentication
638 * Forced Basic is default authentication type
639 * ``python-requests.org`` default User-Agent header
640 * CaseInsensitiveDict lower-case caching
641 * Response.history bugfix
648 * Support for Proxies
651 * settings.verbose stream writing
652 * Querystrings for all methods
653 * URLErrors (Connection Refused, Timeout, Invalid URLs) are treated as explicity raised
654 ``r.requests.get('hwe://blah'); r.raise_for_status()``
660 * Improved Redirection Handling
661 * New 'allow_redirects' param for following non-GET/HEAD Redirects
662 * Settings module refactoring
668 * Response.history: list of redirected responses
669 * Case-Insensitive Header Dictionaries!
676 * Urllib2 HTTPAuthentication Recursion fix (Basic/Digest)
678 * Bytes data upload Bugfix
686 * Unicode url-encoded data
687 * Settings context manager and module
693 * Automatic Decompression of GZip Encoded Content
694 * AutoAuth Support for Tupled HTTP Auth
708 * Automatic Authentication API Change
709 * Smarter Query URL Parameterization
710 * Allow file uploads and POST data together
711 * New Authentication Manager System
712 - Simpler Basic HTTP System
713 - Supports all build-in urllib2 Auths
714 - Allows for custom Auth Handlers
721 * PyPy-c v1.4 Support
722 * Auto-Authentication tests
723 * Improved Request object constructor
728 * New HTTPHandling Methods
729 - Response.__nonzero__ (false if bad HTTP Status)
730 - Response.ok (True if expected HTTP Status)
731 - Response.error (Logged HTTPError if bad HTTP Status)
732 - Response.raise_for_status() (Raises stored HTTPError)
738 * Still handles request in the event of an HTTPError. (Issue #2)
739 * Eventlet and Gevent Monkeypatch support.
740 * Cookie Support (Issue #1)
746 * Added file attribute to POST and PUT requests for multipart-encode file uploads.
747 * Added Request.url attribute for context and redirects