Skip to main content

muscles-data-s3

S3-compatible adapter package for muscles-data.

This package is intentionally separate from muscles-data: the core package owns typed ports and runtime, while this package owns the boto3-backed ObjectStorePort adapter.

Install

python -m pip install muscles-data-s3

For local framework development:

PYTHONPATH=../muscles-data/src:src python3 -m pytest -q

Configuration

data:
  resources:
    objects.docs:
      type: s3
      endpoint_url: !environ S3_ENDPOINT
      bucket: documents
      region_name: us-east-1
      prefix: raw
      max_keys: 100

The adapter also supports standard boto3 credential options:

  • aws_access_key_id;
  • aws_secret_access_key;
  • aws_session_token;
  • profile_name;
  • the default boto3 environment/provider chain.

Usage

Register this adapter once in the application composition root when building the shared DataAdapterCatalog, alongside other configured adapters:

catalog.register(S3ObjectStoreFactory())

The objects.docs resource itself is declared in the application's central data.resources configuration shown below. A package resolves the port from the existing runtime; it does not build another catalog or DataRuntime:

from muscles.data.ports import ObjectStorePort

objects = app.resource.connect("objects.docs", ObjectStorePort)

Then use the narrow port:

objects.put_object("docs/readme.txt", b"hello", content_type="text/plain")
blob = objects.get_object("docs/readme.txt")
items = objects.list_objects(prefix="docs", limit=20)
objects.delete_object("docs/readme.txt")

Backend-specific request options are available without exposing the boto3 client: get_object() accepts range, conditional headers and version/checksum options; list_objects() accepts delimiter and continuation helpers; and delete_object() accepts version and retention options.

If prefix: raw is configured, the public key docs/readme.txt is stored as raw/docs/readme.txt in S3 and returned to port consumers without the configured prefix. This keeps application code independent from bucket layout details.

Metadata

Release files for muscles-data-s3 0.2.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 muscles-data-s3 0.2.0
File Size Uploaded Provenance Actions
muscles_data_s3-0.2.0.tar.gz 10.9 kB With provenance Details for muscles_data_s3-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for muscles-data-s3 0.2.0
File Interpreter ABI Platform Actions
muscles_data_s3-0.2.0-py3-none-any.whl Python 3 none any Details for muscles_data_s3-0.2.0-py3-none-any.whl

Total release size: 17.7 kB

Release files / muscles_data_s3-0.2.0.tar.gz

Download URL muscles_data_s3-0.2.0.tar.gz
Size 10.9 kB
Tags Source
SHA-256 checksum
How to use checksums
12feaaff66fa43faa56b7e6afa302cc472c74c83f020054998f0c1889054c1aa
BLAKE2b-256 checksum
How to use checksums
c10d6015876694f9579d100678ad1fb277ff69f5f2c737528b185820c9a88728
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / muscles_data_s3-0.2.0-py3-none-any.whl

Download URL muscles_data_s3-0.2.0-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f430f9fe88c65ed237283bd8ecfa18b64cf7a164de4fb2ae452f48eedaac0fb
BLAKE2b-256 checksum
How to use checksums
df0ea01b88182e70b5369e862efc9715cf50d08eb85c7bd98015970b6bb27ded
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Security for muscles-data-s3 0.2.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for muscles_data_s3-0.2.0.tar.gz

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 Nov 4, 2026.

Transparency log

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.

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