This release is a pre-release and may not be stable for production use.
Swarmauri Git Filter Minio
swarmauri_gitfilter_minio packages the MinioFilter plugin used by
peagen and other Swarmauri tooling to keep
large Git objects in MinIO (or any S3-compatible) storage instead of the local
repository. The filter implements both StorageAdapterBase and
GitFilterBase, so you can call it directly from Python code or register it as
a Git clean/smudge filter.
Highlights
- Accepts
minio://(HTTP) andminios://(HTTPS) URIs and automatically ensures the referenced bucket exists. - Inherits
GitFilterBase, giving youcleanandsmudgehelpers that hash content, upload it to remote storage, and hydrate it back into your working tree on checkout. - Provides convenience methods such as
upload_dir,iter_prefix, anddownload_prefixfor whole directory trees in addition to single-file transfers. - Surfaces a
root_uriproperty that reflects the bucket and optional prefix derived from the connection string.
Installation
Choose the workflow that matches your project:
# pip
pip install swarmauri_gitfilter_minio
# Poetry
poetry add swarmauri_gitfilter_minio
# uv
uv add swarmauri_gitfilter_minio
Configuration
MinioFilter.from_uri() consults peagen.toml for credentials under
[storage.filters.minio] and falls back to the MINIO_ACCESS_KEY and
MINIO_SECRET_KEY environment variables when the configuration is absent. When
instantiated, the filter lazily creates the bucket identified by the URI and
stores objects beneath an optional prefix.
Usage
from swarmauri_gitfilter_minio import MinioFilter
# Create a filter from a connection string. The scheme `minios://` will use
# HTTPS while `minio://` uses plain HTTP.
filt = MinioFilter.from_uri("minio://localhost:9000/my-bucket/prefix")
# Upload a file and retrieve its URI
with open("README.md", "rb") as fh:
uri = filt.upload("docs/README.md", fh)
# Download the file back into memory
buffer = filt.download("docs/README.md")
data = buffer.read()
MinioFilter also exposes helpers such as upload_dir, iter_prefix, and
download_prefix for working with entire directory trees.
Want to help?
If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.
Metadata
Release files for swarmauri_gitfilter_minio 0.11.0.dev1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swarmauri_gitfilter_minio-0.11.0.dev1.tar.gz | 9.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swarmauri_gitfilter_minio-0.11.0.dev1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.5 kB
Release files / swarmauri_gitfilter_minio-0.11.0.dev1.tar.gz
| Download URL | swarmauri_gitfilter_minio-0.11.0.dev1.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f51b0d82fafb6f2fce53077f1ec3f1882ec9c734dbdf0381b75aeb05a1d8545
|
|
BLAKE2b-256 checksum How to use checksums |
473d4451672f06a6b1df5a93fe20b99ee5f3f17035fa4c5a680e683bf9c32127
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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 / swarmauri_gitfilter_minio-0.11.0.dev1-py3-none-any.whl
| Download URL | swarmauri_gitfilter_minio-0.11.0.dev1-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
deab5e2ecf8e07eabcb4235a0c78046c2383add3db48570d89a4a929fcf3dd5f
|
|
BLAKE2b-256 checksum How to use checksums |
44cf2165e2949d0435f790d84ec81f4ea88f2a8fa13063ed87810d7eaf1c7b02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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}
|