Flexible IO helpers with pluggable backends and handlers
Project description
easy_io
easy_io provides pluggable file backends (local, HTTP/S, S3) and format
handlers for common data types (text, JSON, YAML, pickle, numpy arrays, etc.).
The project draws inspiration from mmengine
and the jammy toolbox while re-packaging
the ideas into a focused, backend-oriented IO helper.
Environment Setup
# 1. Use Python 3.9+ and install uv if it is not already available
pip install uv
# 2. Create an isolated environment (uv uses .venv by default)
uv venv
# 3. Activate the virtual environment
source .venv/bin/activate # or the Windows/conda equivalent
# 4. Install the core dependencies
uv sync
# Optional: tune logging verbosity for CLI sessions
export EASY_IO_LOG_LEVEL=DEBUG
# Optional: change the log tag prefix shown in log lines
export EASY_LOG_LOG_TAG="MyService"
easy_io.log prefixes messages with EASY_LOG_LOG_TAG (defaults to
EASY_IO) and defaults to rank-zero logging when torch.distributed is
initialized. Set easy_io.log.RANK0_ONLY = False in code if you need messages
from every worker.
Quickstart
uv sync
uv run python -c "import easy_io; print(easy_io.get_text('README.md'))"
Development
uv sync --dev
uv run pytest
uv run ruff check
Documentation
uv sync --group docs
uv run sphinx-build -b html docs docs/_build/html
python -m http.server --directory docs/_build/html 8000
Release tooling
uv sync --group release
uv run python -m build
uv run twine check dist/*
Manual publish (developers)
uv sync --group release
export UV_PUBLISH_TOKEN="$(pass show pypi/token)" # orexport from your secret manager
uv publish --token "$UV_PUBLISH_TOKEN"
Publishing
Publishing to PyPI is automated via GitHub Actions (.github/workflows/publish.yml).
Create a PyPI trusted publisher or add the PYPI_API_TOKEN repository secret. Then
tag a release:
git tag v0.1.0
git push origin v0.1.0
The workflow will build and publish the project with uv publish.
Project Structure
pyproject.toml– project metadata and dependency management (driven by uv)easy_io/– package source codedocs/– Sphinx sources for the documentation portal
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 py_ezio-0.0.1.tar.gz.
File metadata
- Download URL: py_ezio-0.0.1.tar.gz
- Upload date:
- Size: 46.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be9b5f590562e36d1392ebd714e4e8c60366864fefadc212476828c68decb4e9
|
|
| MD5 |
19a14cfb78cda40e4f4ee4702698c013
|
|
| BLAKE2b-256 |
ba8e75e1f8d2c9900aa7b96a55e6aa99bf20f1a837e1982ddb2ceb4c0344a608
|
File details
Details for the file py_ezio-0.0.1-py3-none-any.whl.
File metadata
- Download URL: py_ezio-0.0.1-py3-none-any.whl
- Upload date:
- Size: 56.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5588326f07875e011ee1ad8b1a0c8ad8007527e4f5e1fe2715dd790c872a64cd
|
|
| MD5 |
599d8ba24479c75a1b6d7b695f45b1c7
|
|
| BLAKE2b-256 |
c2c6b16c6fafe6b9c4ee6446205479967951873c0df8b36461abe100572cab97
|