* Add EventHooks internal datastructure
* Add support for 'request' and 'response' event hooks
* Support Client.event_hooks property
* Handle exceptions raised by response event hooks
* Docs for event hooks
* Only support 'request' and 'response' event hooks
* Add event_hooks to top-level API
* Event hooks
* Formatting
* Formatting
* Fix up event hooks test
* Add test case to confirm that redirects/event hooks don't currently play together correctly
* Refactor test cases
* Make response.request clear in response event hooks docs
* Drop merge marker
* Request event hook runs as soon as we have an auth-constructed request
* Internal refactoring to swap auth/redirects ordering
* Drop chardet for charset detection
* Drop chardet in favour of simpler charset autodetection
* Revert unintentionally included changes
* Update test case
* Refactor to prefer different decoding style
* Update text decoding docs/docstrings
* Resolve typo
* Update docs/quickstart.md
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
* Add support for async auth flows
* Move body logic to Auth, add sync_auth_flow, add NoAuth
* Update tests
* Stick to next() / __anext__()
* Fix undefined name errors
* Add docs
* Add unit tests for auth classes
Co-authored-by: Tom Christie <tom@tomchristie.com>
* Drop urllib3 in favor of public gist
* Drop urllib3 coverage omit
* Drop recommendation to use urllib3 transport during Requests migration
* Add urllib3-transport to 3p pkgs
* Drop urllib3 from dependencies list in README / docs home page
Co-authored-by: Tom Christie <tom@tomchristie.com>
* Adjust 1.0 expectations.
Not sure why I thought saying "expected September 2020" was a good idea.
Like *maybe* that'll happen, but no problem with us taking our time if there's areas we want to be really firm about first. *Eg finer details in the Transport API*.
* Update index.md
* Add AsyncClient.aclose to API documentation
* Expand client docstrings
* Add docstrings for all verbs and close methods
* Include parameter merge information and see also
* Update _client.py
Co-authored-by: Tom Christie <tom@tomchristie.com>
* Version 0.14.0
* Update CHANGELOG
* Update CHANGELOG.md
Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>
* Update CHANGELOG
* max_keepalive_connections
* Add deprecation test
* Update CHANGELOG.md
* Undate dependency pin callout
* Update expected 1.0 release date
Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>
* #1105 added deprecation warning, raised when we try to use proxies={"http": ...} instead of {"http://": ...}. Updated docs and added unit, which check the warning presence
* Update tests/client/test_proxies.py
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
* Update tests/client/test_proxies.py
Co-authored-by: Tom Christie <tom@tomchristie.com>
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
* Included create_ssl_context function to create the same context with SSLConfig and serve as API.
* Changed create_ssl_context with SSLConfig into the client implementation and tests.
* Dropped the __repr__ and __eq__ methods from SSLConfig and removed SSLConfig using from tests
* Fixed test issue regarding cert_authority trust of ssl context
Co-authored-by: Tom Christie <tom@tomchristie.com>
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
* Drop private Origin model
* Drop Origin from docs
* Update tests/test_utils.py
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
* Drop full_path test
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
* Changed RequestFiles type
* Changed RequestFiles type 2
* Added test for multiple files same field
* Lint
* Mypy no idea
* Added doc
* Fixed some docs typos
* Checking the right instance type and deleting the mypy ignore
* Docs clarification
* Back on images form field, with other files modified
* Fix HttpError -> HTTPError typo
* Increased test coverage
* Increase coverage threshold
* Reuse sync/async transport code in test_auth.py
* Removed close_client check inside StreamContextManager
It's never set as True when used in async
* Reuse sync/async transport code in test_redirects.py
* Remove unused/untested headers copy() method
Last usage was removed in #804
* Remove unused premature_close server endpoint
Last usage was removed in #804
* Increased test coverage
* Revert removal of headers copy() method
Documented and added tests for it.
Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
* Version 0.13
* Update docs to 0.13 as the latest
* Whitespacing tweak
* More explicit notes about transport API renamings
* Update changelog
Co-authored-by: florimondmanca <florimond.manca@gmail.com>