This release is a pre-release and may not be stable for production use.
storage-kernel-contracts
Provider-agnostic contracts for Storage Kernel.
This package owns the portable public API: storage paths, locations, operation options, async client protocols, provider aliases, shared helpers and normalized errors.
Install
uv add storage-kernel-contracts
Usage
from storage_kernel.contracts import StorageLocation
location = StorageLocation(bucket="files", prefix="production")
path = "documents/readme.md"
Provider packages depend on this package. This package does not import provider SDKs.
Directory reads default to recursive=True and include_directories=True.
A signed URL defaults to DEFAULT_SIGNED_URL_ACTION, StorageSignedUrlAction.READ,
and to DEFAULT_SIGNED_URL_EXPIRES_IN_SECONDS, 900.
StorageClientClass describes provider classes accepted by the generic
factory. STORAGE_PROVIDER_ALIASES and STORAGE_PROVIDER_TARGET_BY_NAME are the
canonical built-in registries. StorageStreamSource is what a streaming write
accepts: text, bytes or an async byte iterable.
Observability
Clients write to StorageClientOptions.logger and nowhere else. Without one, or
without the method for a line's level, the line is dropped, so a client with no
logger is silent. logger=logging.getLogger("my-app") is a drop-in: a log line
is one descriptive string, with no identifier and no context argument.
ObservedStorageClient applies the common behavior once at the public client
boundary. Each line says what happened and where — Reading invoices/2026.pdf from aws-s3 bucket reports — and the two languages write the same sentences.
Provider SDK paths and location metadata are not logged by this boundary.
decorate_client(client, options, provider) is the direct Python
equivalent of the JavaScript client decorator. It is idempotent, preserves
provider extension attributes, and lets the generic factory apply the same
behavior to injected provider classes without requiring inheritance.
Metadata
Release files for storage-kernel-contracts 0.1.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| storage_kernel_contracts-0.1.0a5.tar.gz | 8.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| storage_kernel_contracts-0.1.0a5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.2 kB
Release files / storage_kernel_contracts-0.1.0a5.tar.gz
| Download URL | storage_kernel_contracts-0.1.0a5.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d806848d00dec8a6ed06439dee07dc6975443c1b7ca5dde7a47679827682bc3c
|
|
BLAKE2b-256 checksum How to use checksums |
d3a702664609152d3c1f90fc35832c6fc7e391dff127eaf004b65227de25ce1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / storage_kernel_contracts-0.1.0a5-py3-none-any.whl
| Download URL | storage_kernel_contracts-0.1.0a5-py3-none-any.whl |
|---|---|
| Size | 11.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bd8c0c3d2f0a3d794c1b7f7bd9884389c484d8c6f3fe257c4e1c18c75ff14730
|
|
BLAKE2b-256 checksum How to use checksums |
e6cad4cc68d63c9c799681a370a5666bd593e40e2cc3c4a979e7d6e24e18c7b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for storage-kernel-contracts 0.1.0a5
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.