Skip to main content

io-chunks

Man, I wish there was a way to split this opened file into smaller subfiles to read any part of it independently!

-- No one ever

I made a library for it anyway.

What's this?

This library contains utilities (well, one utility) to get a Python buffer from another buffer, allowing you to read from each of them separately.

Let me show you an example.

from io_chunks import RawIOChunk

with open("test_file", "w") as file_handle:
    file_handle.write("Hello beautiful world!")

with open("test_file", "rb") as file_handle:
    # Create a "chunk" with the first 5 bytes
    chunk_hello = RawIOChunk(file_handle, 5)
    # Create a "chunk" starting at position 16 with the last 6 bytes
    chunk_world = RawIOChunk(file_handle, size=6, start=16)
    # This prints b'Hello'
    print(chunk_hello.read())
    # This prints b'world!'
    print(chunk_world.read())
    # Now, this prints b'Hello beautiful world!' to demostrate that the original
    # `file_handle` pointer wasn't altered at all!
    print(file_handle.read())

Amazing, right?

Why?

While writing a parser I found this class to be somewhat useful, around 7 years ago.

While today I don't really see it today, I decided to clean it up and released it in case it's useful for someone.

Install

Use pip:

$ pip install io-chunks

Documentation

You can read it at readthedocs.

Run the tests

Create a venv with your favorite tool and activate it. Then, install the development dependencies and execute pytest:

$ pip install -r requirements-dev.txt
$ pytest

Alternatively, to execute the tests using tox:

$ pip install tox
$ tox

License

MIT

Metadata

Release files for io-chunks 2.0.0

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

Source distribution (sdist)

Source distribution for io-chunks 2.0.0
File Size Uploaded
io-chunks-2.0.0.tar.gz 11.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for io-chunks 2.0.0
File Interpreter ABI Platform
io_chunks-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.9 kB

Release files / io-chunks-2.0.0.tar.gz

Download URL io-chunks-2.0.0.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
69c9bba17d044145937f1eda9d8fd18dfdcf897bb2118450f8a33a1ff516467c
BLAKE2b-256 checksum
How to use checksums
5e5f2491af0e4fc26358483ce76ade106413d96b3fa3ad2b57d07213667cc253
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.8

Release files / io_chunks-2.0.0-py3-none-any.whl

Download URL io_chunks-2.0.0-py3-none-any.whl
Size 5.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe54da77abba45a88cbe8344fea86c69af0f525bee4552667d8e0c37f38fce86
BLAKE2b-256 checksum
How to use checksums
423c92409d0bf850f9a54bcb9916ba3b6ed7a7158dc43df0b56d1714372d8d1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.8

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

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