Skip to main content

unlibcore-storage-provider

Python package for the unlib monorepo enabling abstract storage interface (local vs cloud).

Python UV Hatchling Ruff Pytest PyPI

Package CI / unlibcore-storage-provider Package CD / unlibcore-storage-provider

Quick Start

Install base dependencies:

uv sync

The base install supports local filesystem configuration without installing cloud backend SDKs. Install provider extras only for the cloud protocols you need:

uv sync --extra s3
uv sync --extra gcs
uv sync --extra azure
uv sync --all-extras

Run local checks:

make lint
make test

Format code:

make format

Development

Packages in this monorepo use uv, ruff, pytest, and hatchling. Tox is not used.

Packages target Python 3.12 or newer. This package contributes to the shared unlib namespace:

from pydantic import TypeAdapter
from unlibcore.storage_provider import StorageProvider

storage_provider = TypeAdapter(StorageProvider).validate_python(
    {
        "provider": "local",
        "root": "./data",
    }
)

Supported Providers

unlibcore-storage-provider keeps provider configuration models in the base package, while cloud filesystem backends are optional extras:

Provider Config discriminator Backend package Extra
Local filesystem local Built into fsspec none
Amazon S3 / S3-compatible storage s3 s3fs s3
Google Cloud Storage gcs gcsfs gcs
Azure Blob Storage az adlfs azure

Install a single backend extra when only one cloud provider is needed:

pip install "unlibcore-storage-provider[s3]"
pip install "unlibcore-storage-provider[gcs]"
pip install "unlibcore-storage-provider[azure]"

Install all cloud backends when a deployment needs multiple protocols:

pip install "unlibcore-storage-provider[all]"

Example S3 configuration:

storage_provider = TypeAdapter(StorageProvider).validate_python(
    {
        "provider": "s3",
        "bucket": "media-library",
        "prefix": "originals",
        "region_name": "ap-southeast-2",
    }
)

Example GCS configuration:

storage_provider = TypeAdapter(StorageProvider).validate_python(
    {
        "provider": "gcs",
        "bucket": "media-library",
        "project": "google-project",
    }
)

Example Azure Blob configuration:

storage_provider = TypeAdapter(StorageProvider).validate_python(
    {
        "provider": "az",
        "container": "application-data",
        "account_name": "productionstorage",
    }
)

CI/CD

Package CI runs with uv run pytest through the reusable .github/workflows/package-ci.yaml workflow. This package's PR workflow is .github/workflows/package-unlibcore-storage-provider-ci.yaml, which only runs when files under packages/unlibcore-storage-provider/ or its workflow files change.

Package publishing is handled by .github/workflows/package-cd.yaml. Run it manually and provide unlibcore-storage-provider as the package name, or publish a GitHub Release tagged packages/unlibcore-storage-provider@X.Y.Z.

Metadata

Release files for unlibcore-storage-provider 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unlibcore-storage-provider 1.0.0
File Size Uploaded Provenance Actions
unlibcore_storage_provider-1.0.0.tar.gz 7.1 kB Without provenance Details for unlibcore_storage_provider-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for unlibcore-storage-provider 1.0.0
File Interpreter ABI Platform Actions
unlibcore_storage_provider-1.0.0-py3-none-any.whl Python 3 none any Details for unlibcore_storage_provider-1.0.0-py3-none-any.whl

Total release size: 15.4 kB

Release files / unlibcore_storage_provider-1.0.0.tar.gz

Download URL unlibcore_storage_provider-1.0.0.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
601305cdaec8ed85fd22aeeec8e4d97900c0d4a5c11b2021983dcd407c676a7c
BLAKE2b-256 checksum
How to use checksums
a6f1e44ba1c98a946314a0ceffca0d8e52dbaa497baccbdb1f5dcf78b8473886
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / unlibcore_storage_provider-1.0.0-py3-none-any.whl

Download URL unlibcore_storage_provider-1.0.0-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
848e8c0540199250aec54b16862a71290bb74950950b5dcf501fff1ad348be2c
BLAKE2b-256 checksum
How to use checksums
07552d9d119bcad8c3ffb387369c700a1055336e061ef14560949878addc5c3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for unlibcore-storage-provider 1.0.0

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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page