Removed extra extra parentheses in SessionRedirectMixin.resolve_redirects
[services/python-requests.git] / HISTORY.rst
1 .. :changelog:
2
3 Release History
4 ---------------
5
6 2.0.0 (2013-09-24)
7 ++++++++++++++++++
8
9 **API Changes:**
10
11 - Keys in the Headers dictionary are now native strings on all Python versions,
12   i.e. bytestrings on Python 2, unicode on Python 3.
13 - Proxy URLs now *must* have an explicit scheme. A ``MissingSchema`` exception
14   will be raised if they don't.
15 - Timeouts now apply to read time if ``Stream=False``.
16 - ``RequestException`` is now a subclass of ``IOError``, not ``RuntimeError``.
17 - Added new method to ``PreparedRequest`` objects: ``PreparedRequest.copy()``.
18 - Added new method to ``Session`` objects: ``Session.update_request()``. This
19   method updates a ``Request`` object with the data (e.g. cookies) stored on
20   the ``Session``.
21 - Added new method to ``Session`` objects: ``Session.prepare_request()``. This
22   method updates and prepares a ``Request`` object, and returns the
23   corresponding ``PreparedRequest`` object.
24 - Added new method to ``HTTPAdapter`` objects: ``HTTPAdapter.proxy_headers()``.
25   This should not be called directly, but improves the subclass interface.
26 - ``httplib.IncompleteRead`` exceptions caused by incorrect chunked encoding
27   will now raise a Requests ``ChunkedEncodingError`` instead.
28 - Invalid percent-escape sequences now cause a Requests ``InvalidURL``
29   exception to be raised.
30 - HTTP 208 no longer uses reason phrase ``"im_used"``. Correctly uses
31   ``"already_reported"``.
32 - HTTP 226 reason added (``"im_used"``).
33
34 **Bugfixes:**
35
36 - Vastly improved proxy support, including the CONNECT verb. Special thanks to
37   the many contributors who worked towards this improvement.
38 - Cookies are now properly managed when 401 authentication responses are
39   received.
40 - Chunked encoding fixes.
41 - Support for mixed case schemes.
42 - Better handling of streaming downloads.
43 - Retrieve environment proxies from more locations.
44 - Minor cookies fixes.
45 - Improved redirect behaviour.
46 - Improved streaming behaviour, particularly for compressed data.
47 - Miscellaneous small Python 3 text encoding bugs.
48 - ``.netrc`` no longer overrides explicit auth.
49 - Cookies set by hooks are now correctly persisted on Sessions.
50 - Fix problem with cookies that specify port numbers in their host field.
51 - ``BytesIO`` can be used to perform streaming uploads.
52 - More generous parsing of the ``no_proxy`` environment variable.
53 - Non-string objects can be passed in data values alongside files.
54
55 1.2.3 (2013-05-25)
56 ++++++++++++++++++
57
58 - Simple packaging fix
59
60
61 1.2.2 (2013-05-23)
62 ++++++++++++++++++
63
64 - Simple packaging fix
65
66
67 1.2.1 (2013-05-20)
68 ++++++++++++++++++
69
70 - Python 3.3.2 compatibility
71 - Always percent-encode location headers
72 - Fix connection adapter matching to be most-specific first
73 - new argument to the default connection adapter for passing a block argument
74 - prevent a KeyError when there's no link headers
75
76 1.2.0 (2013-03-31)
77 ++++++++++++++++++
78
79 - Fixed cookies on sessions and on requests
80 - Significantly change how hooks are dispatched - hooks now receive all the
81   arguments specified by the user when making a request so hooks can make a
82   secondary request with the same parameters. This is especially necessary for
83   authentication handler authors
84 - certifi support was removed
85 - Fixed bug where using OAuth 1 with body ``signature_type`` sent no data
86 - Major proxy work thanks to @Lukasa including parsing of proxy authentication
87   from the proxy url
88 - Fix DigestAuth handling too many 401s
89 - Update vendored urllib3 to include SSL bug fixes
90 - Allow keyword arguments to be passed to ``json.loads()`` via the
91   ``Response.json()`` method
92 - Don't send ``Content-Length`` header by default on ``GET`` or ``HEAD``
93   requests
94 - Add ``elapsed`` attribute to ``Response`` objects to time how long a request
95   took.
96 - Fix ``RequestsCookieJar``
97 - Sessions and Adapters are now picklable, i.e., can be used with the
98   multiprocessing library
99 - Update charade to version 1.0.3
100
101 The change in how hooks are dispatched will likely cause a great deal of
102 issues.
103
104 1.1.0 (2013-01-10)
105 ++++++++++++++++++
106
107 - CHUNKED REQUESTS
108 - Support for iterable response bodies
109 - Assume servers persist redirect params
110 - Allow explicit content types to be specified for file data
111 - Make merge_kwargs case-insensitive when looking up keys
112
113 1.0.3 (2012-12-18)
114 ++++++++++++++++++
115
116 - Fix file upload encoding bug
117 - Fix cookie behavior
118
119 1.0.2 (2012-12-17)
120 ++++++++++++++++++
121
122 - Proxy fix for HTTPAdapter.
123
124 1.0.1 (2012-12-17)
125 ++++++++++++++++++
126
127 - Cert verification exception bug.
128 - Proxy fix for HTTPAdapter.
129
130 1.0.0 (2012-12-17)
131 ++++++++++++++++++
132
133 - Massive Refactor and Simplification
134 - Switch to Apache 2.0 license
135 - Swappable Connection Adapters
136 - Mountable Connection Adapters
137 - Mutable ProcessedRequest chain
138 - /s/prefetch/stream
139 - Removal of all configuration
140 - Standard library logging
141 - Make Response.json() callable, not property.
142 - Usage of new charade project, which provides python 2 and 3 simultaneous chardet.
143 - Removal of all hooks except 'response'
144 - Removal of all authentication helpers (OAuth, Kerberos)
145
146 This is not a backwards compatible change.
147
148 0.14.2 (2012-10-27)
149 +++++++++++++++++++
150
151 - Improved mime-compatible JSON handling
152 - Proxy fixes
153 - Path hack fixes
154 - Case-Insensistive Content-Encoding headers
155 - Support for CJK parameters in form posts
156
157
158 0.14.1 (2012-10-01)
159 +++++++++++++++++++
160
161 - Python 3.3 Compatibility
162 - Simply default accept-encoding
163 - Bugfixes
164
165
166 0.14.0 (2012-09-02)
167 ++++++++++++++++++++
168
169 - No more iter_content errors if already downloaded.
170
171 0.13.9 (2012-08-25)
172 +++++++++++++++++++
173
174 - Fix for OAuth + POSTs
175 - Remove exception eating from dispatch_hook
176 - General bugfixes
177
178 0.13.8 (2012-08-21)
179 +++++++++++++++++++
180
181 - Incredible Link header support :)
182
183 0.13.7 (2012-08-19)
184 +++++++++++++++++++
185
186 - Support for (key, value) lists everywhere.
187 - Digest Authentication improvements.
188 - Ensure proxy exclusions work properly.
189 - Clearer UnicodeError exceptions.
190 - Automatic casting of URLs to tsrings (fURL and such)
191 - Bugfixes.
192
193 0.13.6 (2012-08-06)
194 +++++++++++++++++++
195
196 - Long awaited fix for hanging connections!
197
198 0.13.5 (2012-07-27)
199 +++++++++++++++++++
200
201 - Packaging fix
202
203 0.13.4 (2012-07-27)
204 +++++++++++++++++++
205
206 - GSSAPI/Kerberos authentication!
207 - App Engine 2.7 Fixes!
208 - Fix leaking connections (from urllib3 update)
209 - OAuthlib path hack fix
210 - OAuthlib URL parameters fix.
211
212 0.13.3 (2012-07-12)
213 +++++++++++++++++++
214
215 - Use simplejson if available.
216 - Do not hide SSLErrors behind Timeouts.
217 - Fixed param handling with urls containing fragments.
218 - Significantly improved information in User Agent.
219 - client certificates are ignored when verify=False
220
221 0.13.2 (2012-06-28)
222 +++++++++++++++++++
223
224 - Zero dependencies (once again)!
225 - New: Response.reason
226 - Sign querystring parameters in OAuth 1.0
227 - Client certificates no longer ignored when verify=False
228 - Add openSUSE certificate support
229
230 0.13.1 (2012-06-07)
231 +++++++++++++++++++
232
233 - Allow passing a file or file-like object as data.
234 - Allow hooks to return responses that indicate errors.
235 - Fix Response.text and Response.json for body-less responses.
236
237 0.13.0 (2012-05-29)
238 +++++++++++++++++++
239
240 - Removal of Requests.async in favor of `grequests <https://github.com/kennethreitz/grequests>`_
241 - Allow disabling of cookie persistiance.
242 - New implimentation of safe_mode
243 - cookies.get now supports default argument
244 - Session cookies not saved when Session.request is called with return_response=False
245 - Env: no_proxy support.
246 - RequestsCookieJar improvements.
247 - Various bug fixes.
248
249 0.12.1 (2012-05-08)
250 +++++++++++++++++++
251
252 - New ``Response.json`` property.
253 - Ability to add string file uploads.
254 - Fix out-of-range issue with iter_lines.
255 - Fix iter_content default size.
256 - Fix POST redirects containing files.
257
258 0.12.0 (2012-05-02)
259 +++++++++++++++++++
260
261 - EXPERIMENTAL OAUTH SUPPORT!
262 - Proper CookieJar-backed cookies interface with awesome dict-like interface.
263 - Speed fix for non-iterated content chunks.
264 - Move ``pre_request`` to a more usable place.
265 - New ``pre_send`` hook.
266 - Lazily encode data, params, files.
267 - Load system Certificate Bundle if ``certify`` isn't available.
268 - Cleanups, fixes.
269
270 0.11.2 (2012-04-22)
271 +++++++++++++++++++
272
273 - Attempt to use the OS's certificate bundle if ``certifi`` isn't available.
274 - Infinite digest auth redirect fix.
275 - Multi-part file upload improvements.
276 - Fix decoding of invalid %encodings in URLs.
277 - If there is no content in a response don't throw an error the second time that content is attempted to be read.
278 - Upload data on redirects.
279
280 0.11.1 (2012-03-30)
281 +++++++++++++++++++
282
283 * POST redirects now break RFC to do what browsers do: Follow up with a GET.
284 * New ``strict_mode`` configuration to disable new redirect behavior.
285
286
287 0.11.0 (2012-03-14)
288 +++++++++++++++++++
289
290 * Private SSL Certificate support
291 * Remove select.poll from Gevent monkeypatching
292 * Remove redundant generator for chunked transfer encoding
293 * Fix: Response.ok raises Timeout Exception in safe_mode
294
295 0.10.8 (2012-03-09)
296 +++++++++++++++++++
297
298 * Generate chunked ValueError fix
299 * Proxy configuration by environment variables
300 * Simplification of iter_lines.
301 * New `trust_env` configuration for disabling system/environment hints.
302 * Suppress cookie errors.
303
304 0.10.7 (2012-03-07)
305 +++++++++++++++++++
306
307 * `encode_uri` = False
308
309 0.10.6 (2012-02-25)
310 +++++++++++++++++++
311
312 * Allow '=' in cookies.
313
314 0.10.5 (2012-02-25)
315 +++++++++++++++++++
316
317 * Response body with 0 content-length fix.
318 * New async.imap.
319 * Don't fail on netrc.
320
321
322 0.10.4 (2012-02-20)
323 +++++++++++++++++++
324
325 * Honor netrc.
326
327 0.10.3 (2012-02-20)
328 +++++++++++++++++++
329
330 * HEAD requests don't follow redirects anymore.
331 * raise_for_status() doesn't raise for 3xx anymore.
332 * Make Session objects picklable.
333 * ValueError for invalid schema URLs.
334
335 0.10.2 (2012-01-15)
336 +++++++++++++++++++
337
338 * Vastly improved URL quoting.
339 * Additional allowed cookie key values.
340 * Attempted fix for "Too many open files" Error
341 * Replace unicode errors on first pass, no need for second pass.
342 * Append '/' to bare-domain urls before query insertion.
343 * Exceptions now inherit from RuntimeError.
344 * Binary uploads + auth fix.
345 * Bugfixes.
346
347
348 0.10.1 (2012-01-23)
349 +++++++++++++++++++
350
351 * PYTHON 3 SUPPORT!
352 * Dropped 2.5 Support. (*Backwards Incompatible*)
353
354 0.10.0 (2012-01-21)
355 +++++++++++++++++++
356
357 * ``Response.content`` is now bytes-only. (*Backwards Incompatible*)
358 * New ``Response.text`` is unicode-only.
359 * If no ``Response.encoding`` is specified and ``chardet`` is available, ``Respoonse.text`` will guess an encoding.
360 * Default to ISO-8859-1 (Western) encoding for "text" subtypes.
361 * Removal of `decode_unicode`. (*Backwards Incompatible*)
362 * New multiple-hooks system.
363 * New ``Response.register_hook`` for registering hooks within the pipeline.
364 * ``Response.url`` is now Unicode.
365
366 0.9.3 (2012-01-18)
367 ++++++++++++++++++
368
369 * SSL verify=False bugfix (apparent on windows machines).
370
371 0.9.2 (2012-01-18)
372 ++++++++++++++++++
373
374 * Asynchronous async.send method.
375 * Support for proper chunk streams with boundaries.
376 * session argument for Session classes.
377 * Print entire hook tracebacks, not just exception instance.
378 * Fix response.iter_lines from pending next line.
379 * Fix but in HTTP-digest auth w/ URI having query strings.
380 * Fix in Event Hooks section.
381 * Urllib3 update.
382
383
384 0.9.1 (2012-01-06)
385 ++++++++++++++++++
386
387 * danger_mode for automatic Response.raise_for_status()
388 * Response.iter_lines refactor
389
390 0.9.0 (2011-12-28)
391 ++++++++++++++++++
392
393 * verify ssl is default.
394
395
396 0.8.9 (2011-12-28)
397 ++++++++++++++++++
398
399 * Packaging fix.
400
401
402 0.8.8 (2011-12-28)
403 ++++++++++++++++++
404
405 * SSL CERT VERIFICATION!
406 * Release of Cerifi: Mozilla's cert list.
407 * New 'verify' argument for SSL requests.
408 * Urllib3 update.
409
410 0.8.7 (2011-12-24)
411 ++++++++++++++++++
412
413 * iter_lines last-line truncation fix
414 * Force safe_mode for async requests
415 * Handle safe_mode exceptions more consistently
416 * Fix iteration on null responses in safe_mode
417
418 0.8.6 (2011-12-18)
419 ++++++++++++++++++
420
421 * Socket timeout fixes.
422 * Proxy Authorization support.
423
424 0.8.5 (2011-12-14)
425 ++++++++++++++++++
426
427 * Response.iter_lines!
428
429 0.8.4 (2011-12-11)
430 ++++++++++++++++++
431
432 * Prefetch bugfix.
433 * Added license to installed version.
434
435 0.8.3 (2011-11-27)
436 ++++++++++++++++++
437
438 * Converted auth system to use simpler callable objects.
439 * New session parameter to API methods.
440 * Display full URL while logging.
441
442 0.8.2 (2011-11-19)
443 ++++++++++++++++++
444
445 * New Unicode decoding system, based on over-ridable `Response.encoding`.
446 * Proper URL slash-quote handling.
447 * Cookies with ``[``, ``]``, and ``_`` allowed.
448
449 0.8.1 (2011-11-15)
450 ++++++++++++++++++
451
452 * URL Request path fix
453 * Proxy fix.
454 * Timeouts fix.
455
456 0.8.0 (2011-11-13)
457 ++++++++++++++++++
458
459 * Keep-alive support!
460 * Complete removal of Urllib2
461 * Complete removal of Poster
462 * Complete removal of CookieJars
463 * New ConnectionError raising
464 * Safe_mode for error catching
465 * prefetch parameter for request methods
466 * OPTION method
467 * Async pool size throttling
468 * File uploads send real names
469 * Vendored in urllib3
470
471 0.7.6 (2011-11-07)
472 ++++++++++++++++++
473
474 * Digest authentication bugfix (attach query data to path)
475
476 0.7.5 (2011-11-04)
477 ++++++++++++++++++
478
479 * Response.content = None if there was an invalid repsonse.
480 * Redirection auth handling.
481
482 0.7.4 (2011-10-26)
483 ++++++++++++++++++
484
485 * Session Hooks fix.
486
487 0.7.3 (2011-10-23)
488 ++++++++++++++++++
489
490 * Digest Auth fix.
491
492
493 0.7.2 (2011-10-23)
494 ++++++++++++++++++
495
496 * PATCH Fix.
497
498
499 0.7.1 (2011-10-23)
500 ++++++++++++++++++
501
502 * Move away from urllib2 authentication handling.
503 * Fully Remove AuthManager, AuthObject, &c.
504 * New tuple-based auth system with handler callbacks.
505
506
507 0.7.0 (2011-10-22)
508 ++++++++++++++++++
509
510 * Sessions are now the primary interface.
511 * Deprecated InvalidMethodException.
512 * PATCH fix.
513 * New config system (no more global settings).
514
515
516 0.6.6 (2011-10-19)
517 ++++++++++++++++++
518
519 * Session parameter bugfix (params merging).
520
521
522 0.6.5 (2011-10-18)
523 ++++++++++++++++++
524
525 * Offline (fast) test suite.
526 * Session dictionary argument merging.
527
528
529 0.6.4 (2011-10-13)
530 ++++++++++++++++++
531
532 * Automatic decoding of unicode, based on HTTP Headers.
533 * New ``decode_unicode`` setting.
534 * Removal of ``r.read/close`` methods.
535 * New ``r.faw`` interface for advanced response usage.*
536 * Automatic expansion of parameterized headers.
537
538
539 0.6.3 (2011-10-13)
540 ++++++++++++++++++
541
542 * Beautiful ``requests.async`` module, for making async requests w/ gevent.
543
544
545 0.6.2 (2011-10-09)
546 ++++++++++++++++++
547
548 * GET/HEAD obeys allow_redirects=False.
549
550
551 0.6.1 (2011-08-20)
552 ++++++++++++++++++
553
554 * Enhanced status codes experience ``\o/``
555 * Set a maximum number of redirects (``settings.max_redirects``)
556 * Full Unicode URL support
557 * Support for protocol-less redirects.
558 * Allow for arbitrary request types.
559 * Bugfixes
560
561
562 0.6.0 (2011-08-17)
563 ++++++++++++++++++
564
565 * New callback hook system
566 * New persistient sessions object and context manager
567 * Transparent Dict-cookie handling
568 * Status code reference object
569 * Removed Response.cached
570 * Added Response.request
571 * All args are kwargs
572 * Relative redirect support
573 * HTTPError handling improvements
574 * Improved https testing
575 * Bugfixes
576
577
578 0.5.1 (2011-07-23)
579 ++++++++++++++++++
580
581 * International Domain Name Support!
582 * Access headers without fetching entire body (``read()``)
583 * Use lists as dicts for parameters
584 * Add Forced Basic Authentication
585 * Forced Basic is default authentication type
586 * ``python-requests.org`` default User-Agent header
587 * CaseInsensitiveDict lower-case caching
588 * Response.history bugfix
589
590
591 0.5.0 (2011-06-21)
592 ++++++++++++++++++
593
594 * PATCH Support
595 * Support for Proxies
596 * HTTPBin Test Suite
597 * Redirect Fixes
598 * settings.verbose stream writing
599 * Querystrings for all methods
600 * URLErrors (Connection Refused, Timeout, Invalid URLs) are treated as explicity raised
601   ``r.requests.get('hwe://blah'); r.raise_for_status()``
602
603
604 0.4.1 (2011-05-22)
605 ++++++++++++++++++
606
607 * Improved Redirection Handling
608 * New 'allow_redirects' param for following non-GET/HEAD Redirects
609 * Settings module refactoring
610
611
612 0.4.0 (2011-05-15)
613 ++++++++++++++++++
614
615 * Response.history: list of redirected responses
616 * Case-Insensitive Header Dictionaries!
617 * Unicode URLs
618
619
620 0.3.4 (2011-05-14)
621 ++++++++++++++++++
622
623 * Urllib2 HTTPAuthentication Recursion fix (Basic/Digest)
624 * Internal Refactor
625 * Bytes data upload Bugfix
626
627
628
629 0.3.3 (2011-05-12)
630 ++++++++++++++++++
631
632 * Request timeouts
633 * Unicode url-encoded data
634 * Settings context manager and module
635
636
637 0.3.2 (2011-04-15)
638 ++++++++++++++++++
639
640 * Automatic Decompression of GZip Encoded Content
641 * AutoAuth Support for Tupled HTTP Auth
642
643
644 0.3.1 (2011-04-01)
645 ++++++++++++++++++
646
647 * Cookie Changes
648 * Response.read()
649 * Poster fix
650
651
652 0.3.0 (2011-02-25)
653 ++++++++++++++++++
654
655 * Automatic Authentication API Change
656 * Smarter Query URL Parameterization
657 * Allow file uploads and POST data together
658 * New Authentication Manager System
659     - Simpler Basic HTTP System
660     - Supports all build-in urllib2 Auths
661     - Allows for custom Auth Handlers
662
663
664 0.2.4 (2011-02-19)
665 ++++++++++++++++++
666
667 * Python 2.5 Support
668 * PyPy-c v1.4 Support
669 * Auto-Authentication tests
670 * Improved Request object constructor
671
672 0.2.3 (2011-02-15)
673 ++++++++++++++++++
674
675 * New HTTPHandling Methods
676     - Response.__nonzero__ (false if bad HTTP Status)
677     - Response.ok (True if expected HTTP Status)
678     - Response.error (Logged HTTPError if bad HTTP Status)
679     - Response.raise_for_status() (Raises stored HTTPError)
680
681
682 0.2.2 (2011-02-14)
683 ++++++++++++++++++
684
685 * Still handles request in the event of an HTTPError. (Issue #2)
686 * Eventlet and Gevent Monkeypatch support.
687 * Cookie Support (Issue #1)
688
689
690 0.2.1 (2011-02-14)
691 ++++++++++++++++++
692
693 * Added file attribute to POST and PUT requests for multipart-encode file uploads.
694 * Added Request.url attribute for context and redirects
695
696
697 0.2.0 (2011-02-14)
698 ++++++++++++++++++
699
700 * Birth!
701
702
703 0.0.1 (2011-02-13)
704 ++++++++++++++++++
705
706 * Frustration
707 * Conception
708