requests-adapter-injector
This package provides a global mechanism for injection of Requests
transport adapters. Injection is done with the help of importhook
library and a .pth
file as described
here.
You may probably want to use this package in a separate venv, where you would install
Python tools using Requests which you want to inject transport adapters into, along with
a package implementing desired adapters to inject. You may want to try pipx tool
to manage venvs for Python-based tools.
With that you would probably do pipx install <target-tool> && pipx inject <target-tool> <adapter-package>
.
This package itself can be tested using the built-in test transport adapter, which can also serve as an example for authors of adapter packages.
$ python -mvenv venv
$ venv/bin/pip install requests-adapter-injector
$ venv/bin/python -c "import requests; r = requests.get('injector-test://some/url'); print(r.json())"
{'method': 'GET', 'url': 'injector-test://some/url', 'headers': {'User-Agent': 'python-requests/2.23.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}, 'body': None}
Adapter packages have to declare one or more requests_adapter_injector.adapter
entry_points, and are expected
to require this package, to have it installed automatically.
Note: this package will not work when installed as editable install because
src/requests_adapter_injector.pth
is not installed then.
Existing transport adapter packages
None so far and some in planning.