megstore - Common Formats. Uncommon Speed.
megstore is a Python library that provides a unified interface for file operations across various file formats. It aims to simplify file handling, while also enhancing performance and reliability.
Why megstore
- Faster file read and write operations, the random read performance is also very fast with index support.
- Low memory usage with streaming read and write support.
- Supports popular file formats and easy to use.
Quick Start
Installation
pip3 install megstore
# for msgpack support
pip3 install 'megstore[msgpack]'
Examples
- indexed jsonline
from megstore import indexed_jsonline_open
with indexed_jsonline_open("data.jsonl", "w") as writer:
writer.append({"key": "value"})
writer.append({"number": 123})
# Buffer up to 1,000 records before writing a batch.
with indexed_jsonline_open("buffered.jsonl", "w", buffer_size=1000) as writer:
writer.extend([{"key": "value"}, {"number": 123}])
with indexed_jsonline_open("data.jsonl", "r") as reader:
second_item = reader[1]
second_to_last_items = reader[1:]
total_count = len(reader)
for item in reader:
print(item)
- indexed msgpack
from megstore import indexed_msgpack_open
with indexed_msgpack_open("data.msg", "w") as writer:
writer.append({"key": "value"})
writer.append({"number": 123})
with indexed_msgpack_open("data.msg", "r") as reader:
second_item = reader[1]
second_to_last_items = reader[1:]
total_count = len(reader)
for item in reader:
print(item)
- indexed txt
from megstore import indexed_txt_open
with indexed_txt_open("data.txt", "w") as writer:
writer.append("Hello, World!")
writer.append("This is a test.")
with indexed_txt_open("data.txt", "r") as reader:
second_item = reader[1]
second_to_last_items = reader[1:]
total_count = len(reader)
for line in reader:
print(line)
How to Contribute
-
We welcome everyone to contribute code to the
megstoreproject, but the contributed code needs to meet the following conditions as much as possible:You can submit code even if the code doesn't meet conditions. The project members will evaluate and assist you in making code changes
-
Code format: Your code needs to pass code format check.
megstoreusesruffas lint tool -
Static check: Your code needs complete type hint.
megstoreusespytypeas static check tool. Ifpytypefailed in static check, use# pytype: disable=XXXto disable the error and please tell us why you disable it. -
Test: Your code needs complete unit test coverage.
megstoreusespyfakefsandmotoas local file system and s3 virtual environment in unit tests. The newly added code should have a complete unit test to ensure the correctness
-
-
You can help to improve
megstorein many ways:- Write code.
- Improve documentation.
- Report or investigate bugs and issues.
- If you find any problem or have any improving suggestion, submit a new issuse as well. We will reply as soon as possible and evaluate whether to adopt.
- Review pull requests.
- Star
megstorerepo. - Recommend
megstoreto your friends. - Any other form of contribution is welcomed.
Metadata
Release files for megstore 0.0.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 |
|---|---|---|---|---|
| megstore-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / megstore-0.0.2-py3-none-any.whl
| Download URL | megstore-0.0.2-py3-none-any.whl |
|---|---|
| Size | 27.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a9ce87f24b799613c95dbe626c43250846c129ba752b2d8549c2c19f8df1a3ac
|
|
BLAKE2b-256 checksum How to use checksums |
bbdf4fdfeb4d0d115f0d0fe97bfa6326192d7db8d0c1fa462269d91f7ea2ecb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.8
|