session-adapters
Requests transport adapters for bearer-authenticated http(s)://, file://,
s3://, and oci:// URLs.
Why This Project
session-adapters lets you use a standard requests.Session with authenticated
HTTP requests and non-HTTP backends:
http://andhttps://with bearer token authenticationfile://for local filesystem artifactss3://for AWS S3 objects and prefix listingsoci://for OCI registry artifacts (via ORAS client)
This keeps one client interface while changing only the URL scheme.
Installation
pip install session-adapters
Quick Start
import requests
from session_adapters.bearer_auth_http_adapter import BearerAuthHTTPAdapter
from session_adapters.file_adapter import FileAdapter
from session_adapters.oci_adapter import OCIAdapter
from session_adapters.s3_adapter import S3Adapter
session = requests.Session()
session.mount("https://", BearerAuthHTTPAdapter("my-token"))
session.mount("file://", FileAdapter())
session.mount("s3://", S3Adapter())
session.mount("oci://", OCIAdapter())
# Bearer-authenticated HTTPS request
resp = session.get("https://api.example.com/resource")
print(resp.status_code)
# Local file
resp = session.get("file:///tmp/example.txt")
print(resp.status_code)
# S3 object
resp = session.get("s3://my-bucket/path/to/object.json")
print(resp.status_code)
# OCI artifact
resp = session.get("oci://registry.example.com/my-repo:latest")
print(resp.status_code)
Adapter Notes
Bearer Auth HTTP Adapter
- Adds an
Authorization: Bearer <token>header to every request it handles - Replaces an existing
Authorizationheader - Can be mounted on a specific URL prefix to limit where the token is sent
- Mount separate adapters for
http://andhttps://if both schemes are needed
File Adapter
- Supports
GET,HEAD,PUT,DELETE - Uses local filesystem paths from
file://URLs
S3 Adapter
- Supports
GET,HEAD,PUT,DELETE - Supports query options like:
range=bytes=0-99versionId=...delimiter=/maxKeys=...
OCI Adapter
- Supports
GET,HEAD,PUT,DELETE - Parses refs as tags (
:tag) or digests (@sha256:...) - Uses
oras.client.OrasClientunder the hood
Development
Run tests:
hatch run test:test-q
Run lint checks:
hatch run dev:check
ruff format --check .
Preview the documentation:
hatch run docs:serve
Build the documentation with strict validation:
hatch run docs:build
License
License
Metadata
Release files for session-adapters 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| session_adapters-0.7.0.tar.gz | 112.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| session_adapters-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 137.2 kB
Release files / session_adapters-0.7.0.tar.gz
| Download URL | session_adapters-0.7.0.tar.gz |
|---|---|
| Size | 112.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
674995337796b7e8e7624fdad88732f1659761c06db3552b38711f3410f60abd
|
|
BLAKE2b-256 checksum How to use checksums |
e2b82fc5a90d1f60f0c8c05c650a6e53184facedf1e36f118b37c355b531c957
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / session_adapters-0.7.0-py3-none-any.whl
| Download URL | session_adapters-0.7.0-py3-none-any.whl |
|---|---|
| Size | 25.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d8ba00006c097d9ed206564ff25adeab5831969d2256c59ea29a362dffe1a4e3
|
|
BLAKE2b-256 checksum How to use checksums |
e9f5df94e7f7e70b878a64b11124542566f9673727fa0d2fe04ff0081a65024a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log