⚡️ 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_csvhas aload_csvalias) and write functions have save aliases (e.g.,write_csvhas asave_csvalias. - Use very efficient stuff for each format (e.g.,
orjsonforjsonfiles). 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)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|