Requests transport adapters for file://, s3://, and oci:// URLs.
Project description
session-adapters
Requests transport adapters for file://, s3://, and oci:// URLs.
Why This Project
session-adapters lets you use a standard requests.Session with non-HTTP backends:
file://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.file_adapter import FileAdapter
from session_adapters.s3_adapter import S3Adapter
from session_adapters.oci_adapter import OCIAdapter
session = requests.Session()
session.mount("file://", FileAdapter())
session.mount("s3://", S3Adapter())
session.mount("oci://", OCIAdapter())
# 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
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 .
License
session-adapters is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file session_adapters-0.3.0.tar.gz.
File metadata
- Download URL: session_adapters-0.3.0.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41de0799328e833a70deef8c3224dbfcf96656025edbc80838258712742bb06e
|
|
| MD5 |
eeb70448f0a71684eb6318d7e37a70df
|
|
| BLAKE2b-256 |
aa36a78418ec6302c1dc81499b5244ed47580a2c5427f1de9468d75aa58419b2
|
Provenance
The following attestation bundles were made for session_adapters-0.3.0.tar.gz:
Publisher:
package.yaml on Terradue/session-adapters
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
session_adapters-0.3.0.tar.gz -
Subject digest:
41de0799328e833a70deef8c3224dbfcf96656025edbc80838258712742bb06e - Sigstore transparency entry: 1296026755
- Sigstore integration time:
-
Permalink:
Terradue/session-adapters@bb32cbfba12b73c2202322aadc50bdb630ab6b03 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Terradue
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package.yaml@bb32cbfba12b73c2202322aadc50bdb630ab6b03 -
Trigger Event:
push
-
Statement type:
File details
Details for the file session_adapters-0.3.0-py3-none-any.whl.
File metadata
- Download URL: session_adapters-0.3.0-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
048e824c73484d31493d473cf4ac1129b1a84711f18e36d4c16623446388452e
|
|
| MD5 |
8e68397f1a84399626d33a553bbc75bb
|
|
| BLAKE2b-256 |
abc9869a2b24fb99664b58fda7fedd763403de5bdd8ea310887ab156925c2496
|
Provenance
The following attestation bundles were made for session_adapters-0.3.0-py3-none-any.whl:
Publisher:
package.yaml on Terradue/session-adapters
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
session_adapters-0.3.0-py3-none-any.whl -
Subject digest:
048e824c73484d31493d473cf4ac1129b1a84711f18e36d4c16623446388452e - Sigstore transparency entry: 1296026888
- Sigstore integration time:
-
Permalink:
Terradue/session-adapters@bb32cbfba12b73c2202322aadc50bdb630ab6b03 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Terradue
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package.yaml@bb32cbfba12b73c2202322aadc50bdb630ab6b03 -
Trigger Event:
push
-
Statement type: