Skip to main content

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 code
  • docs/ – Sphinx sources for the documentation portal

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_ezio-0.0.1.tar.gz (46.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_ezio-0.0.1-py3-none-any.whl (56.1 kB view details)

Uploaded Python 3

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

Hashes for py_ezio-0.0.1.tar.gz
Algorithm Hash digest
SHA256 be9b5f590562e36d1392ebd714e4e8c60366864fefadc212476828c68decb4e9
MD5 19a14cfb78cda40e4f4ee4702698c013
BLAKE2b-256 ba8e75e1f8d2c9900aa7b96a55e6aa99bf20f1a837e1982ddb2ceb4c0344a608

See more details on using hashes here.

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

Hashes for py_ezio-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5588326f07875e011ee1ad8b1a0c8ad8007527e4f5e1fe2715dd790c872a64cd
MD5 599d8ba24479c75a1b6d7b695f45b1c7
BLAKE2b-256 c2c6b16c6fafe6b9c4ee6446205479967951873c0df8b36461abe100572cab97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page