Skip to main content

PyPI version License: MIT

⚡️ Introduction

unified-io is a Python utility that attempts to unify several I/O operations (i.e., read/write data in different formats) under a similar interface while making them more concise and user-friendly.

The library provides a unified interface for reading/writing files, which is based on the following principles:

  • Read/write interfaces consist of concise functions with similar signatures.
  • Read/write interfaces allows passing keyword arguments to the underlying I/O functions to preserve flexibility.
  • Read operations can be performed lazily using generators.
  • Before reading/writing, the user can specify a callback function that will be applied to each element of the data stream.
  • read functions have load aliases (e.g., read_csv has a load_csv alias) and write functions have save aliases (e.g., write_csv has a save_csv alias.
  • Use very efficient stuff for each format (e.g., orjson for json files). Suggestions are welcome!

✨ Supported formats

🔌 Requirements

python>=3.7

💾 Installation

pip install unified-io

💡 Examples

The API is designed to be as simple as possible. For example, the following code snippet reads a CSV file, applies a callback function to each element of the data stream, and writes the result to a JSONl file:

from unified_io import read_csv, write_jsonl

def callback(x):
    return {"id": x["id"], "title": x["title"].lower()}

# Using a generator we avoid loading the entire file into memory
data = read_csv('input.csv', callback=callback, generator=True)

write_jsonl('output.jsonl', data)

📚 Documentation

Browse the documentation for more details and examples.

🎁 Feature Requests

Would you like to see other features implemented? Please, open a feature request.

🤘 Want to contribute?

Would you like to contribute? Please, drop me an e-mail.

📄 License

unified-io is an open-sourced software licensed under the MIT license.

Metadata

Release files for unified-io 0.1.2

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

Built distribution (wheel)

Table of built distributions (wheels) for unified-io 0.1.2
File Interpreter ABI Platform
unified_io-0.1.2-py3-none-any.whl Python 3 none any Details

Release files / unified_io-0.1.2-py3-none-any.whl

Download URL unified_io-0.1.2-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57a6aad60017baab4d162b85a9c12ae4b2cbc278e21c3437d14f75b3940e51ab
BLAKE2b-256 checksum
How to use checksums
be7ef248f5b0e106c58b49cd5fa171112cad2a33cad1692b20961f7b11543284
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.14

Release history Release notifications | RSS feed

This release

0.1.2 This release

1 release file

0.1.1

2 release files

0.1.0

2 release files

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