PythonTip >> 博文 >> python

Requests v2.0 Python module released

zihua 2014-01-20 23:01:56 点击: 1030 | 收藏


  • Keys in the Headers dictionary are now native strings on all Python versions, i.e. bytestrings on Python 2, unicode on Python 3.
  • Proxy URLs now must have an explicit scheme. A MissingSchema exception will be raised if they don’t.
  • Timeouts now apply to read time if Stream=False.
  • RequestException is now a subclass of IOError, not RuntimeError.
  • Added new method to PreparedRequest objects: PreparedRequest.copy().
  • Added new method to Session objects: Session.update_request(). This method updates a Request object with the data (e.g. cookies) stored on the Session.
  • Added new method to Session objects: Session.prepare_request(). This method updates and prepares a Request object, and returns the corresponding PreparedRequest object.
  • Added new method to HTTPAdapter objects: HTTPAdapter.proxy_headers(). This should not be called directly, but improves the subclass interface.
  • httplib.IncompleteRead exceptions caused by incorrect chunked encoding will now raise a Requests ChunkedEncodingError instead.
  • Invalid percent-escape sequences now cause a Requests InvalidURL exception to be raised.
  • HTTP 208 no longer uses reason phrase "im_used". Correctly uses "already_reported".
  • HTTP 226 reason added ("im_used").

Bugfixes:

  • Vastly improved proxy support, including the CONNECT verb. Special thanks to the many contributors who worked towards this improvement.
  • Cookies are now properly managed when 401 authentication responses are received.
  • Chunked encoding fixes.
  • Support for mixed case schemes.
  • Better handling of streaming downloads.
  • Retrieve environment proxies from more locations.
  • Minor cookies fixes.
  • Imroved redirect behaviour.
  • Improved streaming behaviour, particularly for compressed data.
  • Miscellaneous small Python 3 text encoding bugs.
  • .netrc no longer overrides explicit auth.
  • Cookies set by hooks are now correctly persisted on Sessions.
  • Fix problem with cookies that specify port numbers in their host field.
  • BytesIO can be used to perform streaming uploads.
  • More generous parsing of the no_proxy environment variable.
  • Non-string objects can be passed in data values alongside files.
  • Python 3.3.2 compatibility
  • Always percent-encode location headers
  • Fix connection adapter matching to be most-specific first
  • new argument to the default connection adapter for passing a block argument
  • prevent a KeyError when there’s no link headers

1.2.0 (2013-03-31)

  • Fixed cookies on sessions and on requests
  • Significantly change how hooks are dispatched - hooks now receive all the arguments specified by the user when making a request so hooks can make a secondary request with the same parameters. This is especially necessary for authentication handler authors
  • certifi support was removed
  • Fixed bug where using OAuth 1 with body signature_type sent no data
  • Major proxy work thanks to @Lukasa including parsing of proxy authentication from the proxy url
  • Fix DigestAuth handling too many 401s
  • Update vendored urllib3 to include SSL bug fixes
  • Allow keyword arguments to be passed to json.loads() via the Response.json() method
  • Don’t send Content-Length header by default on GET or HEAD requests
  • Add elapsed attribute to Response objects to time how long a request took.
  • Fix RequestsCookieJar
  • Sessions and Adapters are now picklable, i.e., can be used with the multiprocessing library
  • Update charade to version 1.0.3

The change in how hooks are dispatched will likely cause a great deal of issues.

1.1.0 (2013-01-10)

  • CHUNKED REQUESTS
  • Support for iterable response bodies
  • Assume servers persist redirect params
  • Allow explicit content types to be specified for file data
  • Make merge_kwargs case-insensitive when looking up keys
  • Massive Refactor and Simplification
  • Switch to Apache 2.0 license
  • Swappable Connection Adapters
  • Mountable Connection Adapters
  • Mutable ProcessedRequest chain
  • /s/prefetch/stream
  • Removal of all configuration
  • Standard library logging
  • Make Response.json() callable, not property.
  • Usage of new charade project, which provides python 2 and 3 simultaneous chardet.
  • Removal of all hooks except ‘response’
  • Removal of all authentication helpers (OAuth, Kerberos)
  • Support for (key, value) lists everywhere.
  • Digest Authentication improvements.
  • Ensure proxy exclusions work properly.
  • Clearer UnicodeError exceptions.
  • Automatic casting of URLs to tsrings (fURL and such)
  • Bugfixes.
  • Use simplejson if available.
  • Do not hide SSLErrors behind Timeouts.
  • Fixed param handling with urls containing fragments.
  • Significantly improved information in User Agent.
  • client certificates are ignored when verify=False
  • Removal of Requests.async in favor of grequests
  • Allow disabling of cookie persistiance.
  • New implimentation of safe_mode
  • cookies.get now supports default argument
  • Session cookies not saved when Session.request is called with return_response=False
  • Env: no_proxy support.
  • RequestsCookieJar improvements.
  • Various bug fixes.
  • New Response.json property.
  • Ability to add string file uploads.
  • Fix out-of-range issue with iter_lines.
  • Fix iter_content default size.
  • Fix POST redirects containing files.
  • EXPERIMENTAL OAUTH SUPPORT!
  • Proper CookieJar-backed cookies interface with awesome dict-like interface.
  • Speed fix for non-iterated content chunks.
  • Move pre_request to a more usable place.
  • New pre_send hook.
  • Lazily encode data, params, files.
  • Load system Certificate Bundle if certify isn’t available.
  • Cleanups, fixes.

0.11.2 (2012-04-22)

  • Attempt to use the OS’s certificate bundle if certifi isn’t available.
  • Infinite digest auth redirect fix.
  • Multi-part file upload improvements.
  • Fix decoding of invalid %encodings in URLs.
  • If there is no content in a response don’t throw an error the second time that content is attempted to be read.
  • Upload data on redirects.
  • Vastly improved URL quoting.
  • Additional allowed cookie key values.
  • Attempted fix for “Too many open files” Error
  • Replace unicode errors on first pass, no need for second pass.
  • Append ‘/’ to bare-domain urls before query insertion.
  • Exceptions now inherit from RuntimeError.
  • Binary uploads + auth fix.
  • Bugfixes.
  • PYTHON 3 SUPPORT!
  • Dropped 2.5 Support. (Backwards Incompatible)
  • Response.content is now bytes-only. (Backwards Incompatible)
  • New Response.text is unicode-only.
  • If no Response.encoding is specified and chardet is available, Respoonse.text will guess an encoding.
  • Default to ISO-8859-1 (Western) encoding for “text” subtypes.
  • Removal of
  • Asynchronous async.send method.
  • Support for proper chunk streams with boundaries.
  • session argument for Session classes.
  • Print entire hook tracebacks, not just exception instance.
  • Fix response.iter_lines from pending next line.
  • Fix but in HTTP-digest auth w/ URI having query strings.
  • Fix in Event Hooks section.
  • Urllib3 update.
  • Keep-alive support!
  • Complete removal of Urllib2
  • Complete removal of Poster
  • Complete removal of CookieJars
  • New ConnectionError raising
  • Safe_mode for error catching
  • prefetch parameter for request methods
  • OPTION method
  • Async pool size throttling
  • File uploads send real names
  • Vendored in urllib3
  • New callback hook system
  • New persistient sessions object and context manager
  • Transparent Dict-cookie handling
  • Status code reference object
  • Removed Response.cached
  • Added Response.request
  • All args are kwargs
  • Relative redirect support
  • HTTPError handling improvements
  • Improved https testing
  • Bugfixes

0.5.1 (2011-07-23)

  • International Domain Name Support!
  • Access headers without fetching entire body (read())
  • Use lists as dicts for parameters
  • Add Forced Basic Authentication
  • Forced Basic is default authentication type
  • python-requests.org default User-Agent header
  • CaseInsensitiveDict lower-case caching
  • Response.history bugfix

0.5.0 (2011-06-21)

  • PATCH Support
  • Support for Proxies
  • HTTPBin Test Suite
  • Redirect Fixes
  • settings.verbose stream writing
  • Querystrings for all methods
  • URLErrors (Connection Refused, Timeout, Invalid URLs) are treated as explicity raised r.requests.get('hwe://blah');r.raise_for_status()
    • Response.__nonzero__ (false if bad HTTP Status)
    • Response.ok (True if expected HTTP Status)
    • Response.error (Logged HTTPError if bad HTTP Status)
    • Response.raise_for_status() (Raises stored HTTPError)
原文链接:http://www.wumii.com/item/xiNsL2TR

作者:zihua | 分类: python | 标签: python | 阅读: 1030 | 发布于: 2014-01-20 23时 |