Skip to main content

megstore - Common Formats. Uncommon Speed.

Build Documents Codecov Latest version Support python versions License

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 megstore project, 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. megstore uses ruff as lint tool

    • Static check: Your code needs complete type hint. megstore uses pytype as static check tool. If pytype failed in static check, use # pytype: disable=XXX to disable the error and please tell us why you disable it.

    • Test: Your code needs complete unit test coverage. megstore uses pyfakefs and moto as 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 megstore in 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 megstore repo.
    • Recommend megstore to 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)

Table of built distributions (wheels) for megstore 0.0.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 release file

0.0.1

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