9 - Python 3.3.2 compatibility
10 - Always percent-encode location headers
11 - Fix connection adapter matching to be most-specific first
12 - new argument to the default connection adapter for passing a block argument
13 - prevent a KeyError when there's no link headers
18 - Fixed cookies on sessions and on requests
19 - Significantly change how hooks are dispatched - hooks now receive all the
20 arguments specified by the user when making a request so hooks can make a
21 secondary request with the same parameters. This is especially necessary for
22 authentication handler authors
23 - certifi support was removed
24 - Fixed bug where using OAuth 1 with body ``signature_type`` sent no data
25 - Major proxy work thanks to @Lukasa including parsing of proxy authentication
27 - Fix DigestAuth handling too many 401s
28 - Update vendored urllib3 to include SSL bug fixes
29 - Allow keyword arguments to be passed to ``json.loads()`` via the
30 ``Response.json()`` method
31 - Don't send ``Content-Length`` header by default on ``GET`` or ``HEAD``
33 - Add ``elapsed`` attribute to ``Response`` objects to time how long a request
35 - Fix ``RequestsCookieJar``
36 - Sessions and Adapters are now picklable, i.e., can be used with the
37 multiprocessing library
38 - Update charade to version 1.0.3
40 The change in how hooks are dispatched will likely cause a great deal of
47 - Support for iterable response bodies
48 - Assume servers persist redirect params
49 - Allow explicit content types to be specified for file data
50 - Make merge_kwargs case-insensitive when looking up keys
55 - Fix file upload encoding bug
61 - Proxy fix for HTTPAdapter.
66 - Cert verification exception bug.
67 - Proxy fix for HTTPAdapter.
72 - Massive Refactor and Simplification
73 - Switch to Apache 2.0 license
74 - Swappable Connection Adapters
75 - Mountable Connection Adapters
76 - Mutable ProcessedRequest chain
78 - Removal of all configuration
79 - Standard library logging
80 - Make Response.json() callable, not property.
81 - Usage of new charade project, which provides python 2 and 3 simultaneous chardet.
82 - Removal of all hooks except 'response'
83 - Removal of all authentication helpers (OAuth, Kerberos)
85 This is not a backwards compatible change.
90 - Improved mime-compatible JSON handling
93 - Case-Insensistive Content-Encoding headers
94 - Support for CJK parameters in form posts
100 - Python 3.3 Compatibility
101 - Simply default accept-encoding
108 - No more iter_content errors if already downloaded.
113 - Fix for OAuth + POSTs
114 - Remove exception eating from dispatch_hook
120 - Incredible Link header support :)
125 - Support for (key, value) lists everywhere.
126 - Digest Authentication improvements.
127 - Ensure proxy exclusions work properly.
128 - Clearer UnicodeError exceptions.
129 - Automatic casting of URLs to tsrings (fURL and such)
135 - Long awaited fix for hanging connections!
145 - GSSAPI/Kerberos authentication!
146 - App Engine 2.7 Fixes!
147 - Fix leaking connections (from urllib3 update)
148 - OAuthlib path hack fix
149 - OAuthlib URL parameters fix.
154 - Use simplejson if available.
155 - Do not hide SSLErrors behind Timeouts.
156 - Fixed param handling with urls containing fragments.
157 - Significantly improved information in User Agent.
158 - client certificates are ignored when verify=False
163 - Zero dependencies (once again)!
164 - New: Response.reason
165 - Sign querystring parameters in OAuth 1.0
166 - Client certificates no longer ignored when verify=False
167 - Add openSUSE certificate support
172 - Allow passing a file or file-like object as data.
173 - Allow hooks to return responses that indicate errors.
174 - Fix Response.text and Response.json for body-less responses.
179 - Removal of Requests.async in favor of `grequests <https://github.com/kennethreitz/grequests>`_
180 - Allow disabling of cookie persistiance.
181 - New implimentation of safe_mode
182 - cookies.get now supports default argument
183 - Session cookies not saved when Session.request is called with return_response=False
184 - Env: no_proxy support.
185 - RequestsCookieJar improvements.
191 - New ``Response.json`` property.
192 - Ability to add string file uploads.
193 - Fix out-of-range issue with iter_lines.
194 - Fix iter_content default size.
195 - Fix POST redirects containing files.
200 - EXPERIMENTAL OAUTH SUPPORT!
201 - Proper CookieJar-backed cookies interface with awesome dict-like interface.
202 - Speed fix for non-iterated content chunks.
203 - Move ``pre_request`` to a more usable place.
204 - New ``pre_send`` hook.
205 - Lazily encode data, params, files.
206 - Load system Certificate Bundle if ``certify`` isn't available.
212 - Attempt to use the OS's certificate bundle if ``certifi`` isn't available.
213 - Infinite digest auth redirect fix.
214 - Multi-part file upload improvements.
215 - Fix decoding of invalid %encodings in URLs.
216 - If there is no content in a response don't throw an error the second time that content is attempted to be read.
217 - Upload data on redirects.
222 * POST redirects now break RFC to do what browsers do: Follow up with a GET.
223 * New ``strict_mode`` configuration to disable new redirect behavior.
229 * Private SSL Certificate support
230 * Remove select.poll from Gevent monkeypatching
231 * Remove redundant generator for chunked transfer encoding
232 * Fix: Response.ok raises Timeout Exception in safe_mode
237 * Generate chunked ValueError fix
238 * Proxy configuration by environment variables
239 * Simplification of iter_lines.
240 * New `trust_env` configuration for disabling system/environment hints.
241 * Suppress cookie errors.
246 * `encode_uri` = False
251 * Allow '=' in cookies.
256 * Response body with 0 content-length fix.
258 * Don't fail on netrc.
269 * HEAD requests don't follow redirects anymore.
270 * raise_for_status() doesn't raise for 3xx anymore.
271 * Make Session objects picklable.
272 * ValueError for invalid schema URLs.
277 * Vastly improved URL quoting.
278 * Additional allowed cookie key values.
279 * Attempted fix for "Too many open files" Error
280 * Replace unicode errors on first pass, no need for second pass.
281 * Append '/' to bare-domain urls before query insertion.
282 * Exceptions now inherit from RuntimeError.
283 * Binary uploads + auth fix.
291 * Dropped 2.5 Support. (*Backwards Incompatible*)
296 * ``Response.content`` is now bytes-only. (*Backwards Incompatible*)
297 * New ``Response.text`` is unicode-only.
298 * If no ``Response.encoding`` is specified and ``chardet`` is available, ``Respoonse.text`` will guess an encoding.
299 * Default to ISO-8859-1 (Western) encoding for "text" subtypes.
300 * Removal of `decode_unicode`. (*Backwards Incompatible*)
301 * New multiple-hooks system.
302 * New ``Response.register_hook`` for registering hooks within the pipeline.
303 * ``Response.url`` is now Unicode.
308 * SSL verify=False bugfix (apparent on windows machines).
313 * Asynchronous async.send method.
314 * Support for proper chunk streams with boundaries.
315 * session argument for Session classes.
316 * Print entire hook tracebacks, not just exception instance.
317 * Fix response.iter_lines from pending next line.
318 * Fix but in HTTP-digest auth w/ URI having query strings.
319 * Fix in Event Hooks section.
326 * danger_mode for automatic Response.raise_for_status()
327 * Response.iter_lines refactor
332 * verify ssl is default.
344 * SSL CERT VERIFICATION!
345 * Release of Cerifi: Mozilla's cert list.
346 * New 'verify' argument for SSL requests.
352 * iter_lines last-line truncation fix
353 * Force safe_mode for async requests
354 * Handle safe_mode exceptions more consistently
355 * Fix iteration on null responses in safe_mode
360 * Socket timeout fixes.
361 * Proxy Authorization support.
366 * Response.iter_lines!
372 * Added license to installed version.
377 * Converted auth system to use simpler callable objects.
378 * New session parameter to API methods.
379 * Display full URL while logging.
384 * New Unicode decoding system, based on over-ridable `Response.encoding`.
385 * Proper URL slash-quote handling.
386 * Cookies with ``[``, ``]``, and ``_`` allowed.
391 * URL Request path fix
398 * Keep-alive support!
399 * Complete removal of Urllib2
400 * Complete removal of Poster
401 * Complete removal of CookieJars
402 * New ConnectionError raising
403 * Safe_mode for error catching
404 * prefetch parameter for request methods
406 * Async pool size throttling
407 * File uploads send real names
408 * Vendored in urllib3
413 * Digest authentication bugfix (attach query data to path)
418 * Response.content = None if there was an invalid repsonse.
419 * Redirection auth handling.
441 * Move away from urllib2 authentication handling.
442 * Fully Remove AuthManager, AuthObject, &c.
443 * New tuple-based auth system with handler callbacks.
449 * Sessions are now the primary interface.
450 * Deprecated InvalidMethodException.
452 * New config system (no more global settings).
458 * Session parameter bugfix (params merging).
464 * Offline (fast) test suite.
465 * Session dictionary argument merging.
471 * Automatic decoding of unicode, based on HTTP Headers.
472 * New ``decode_unicode`` setting.
473 * Removal of ``r.read/close`` methods.
474 * New ``r.faw`` interface for advanced response usage.*
475 * Automatic expansion of parameterized headers.
481 * Beautiful ``requests.async`` module, for making async requests w/ gevent.
487 * GET/HEAD obeys allow_redirects=False.
493 * Enhanced status codes experience ``\o/``
494 * Set a maximum number of redirects (``settings.max_redirects``)
495 * Full Unicode URL support
496 * Support for protocol-less redirects.
497 * Allow for arbitrary request types.
504 * New callback hook system
505 * New persistient sessions object and context manager
506 * Transparent Dict-cookie handling
507 * Status code reference object
508 * Removed Response.cached
509 * Added Response.request
510 * All args are kwargs
511 * Relative redirect support
512 * HTTPError handling improvements
513 * Improved https testing
520 * International Domain Name Support!
521 * Access headers without fetching entire body (``read()``)
522 * Use lists as dicts for parameters
523 * Add Forced Basic Authentication
524 * Forced Basic is default authentication type
525 * ``python-requests.org`` default User-Agent header
526 * CaseInsensitiveDict lower-case caching
527 * Response.history bugfix
534 * Support for Proxies
537 * settings.verbose stream writing
538 * Querystrings for all methods
539 * URLErrors (Connection Refused, Timeout, Invalid URLs) are treated as explicity raised
540 ``r.requests.get('hwe://blah'); r.raise_for_status()``
546 * Improved Redirection Handling
547 * New 'allow_redirects' param for following non-GET/HEAD Redirects
548 * Settings module refactoring
554 * Response.history: list of redirected responses
555 * Case-Insensitive Header Dictionaries!
562 * Urllib2 HTTPAuthentication Recursion fix (Basic/Digest)
564 * Bytes data upload Bugfix
572 * Unicode url-encoded data
573 * Settings context manager and module
579 * Automatic Decompression of GZip Encoded Content
580 * AutoAuth Support for Tupled HTTP Auth
594 * Automatic Authentication API Change
595 * Smarter Query URL Parameterization
596 * Allow file uploads and POST data together
597 * New Authentication Manager System
598 - Simpler Basic HTTP System
599 - Supports all build-in urllib2 Auths
600 - Allows for custom Auth Handlers
607 * PyPy-c v1.4 Support
608 * Auto-Authentication tests
609 * Improved Request object constructor
614 * New HTTPHandling Methods
615 - Response.__nonzero__ (false if bad HTTP Status)
616 - Response.ok (True if expected HTTP Status)
617 - Response.error (Logged HTTPError if bad HTTP Status)
618 - Response.raise_for_status() (Raises stored HTTPError)
624 * Still handles request in the event of an HTTPError. (Issue #2)
625 * Eventlet and Gevent Monkeypatch support.
626 * Cookie Support (Issue #1)
632 * Added file attribute to POST and PUT requests for multipart-encode file uploads.
633 * Added Request.url attribute for context and redirects