Skip to main content

Python library written in Rust for working with the Databento Binary Encoding (DBZ) format

Project description

dbz-python

build license pypi-version

Python bindings for the dbz-lib Rust library. Used by the Databento Python client library.

Using this crate is for advanced users and is not fully documented or supported.

Installation

To install the latest stable version from PyPI:

pip install -U dbz-python

Usage

To read the metadata from a DBZ file into a dict, read the raw bytes and pass them to decode_metadata.

from dbz_python import decode_metadata

with open("my.dbz", "rb") as fin:
    metadata = decode_metadata(fin.read())
# Print symbology mappings
print(metadata["mappings"])

You can write DBZ files using write_dbz_file:

from dbz_python import write_dbz_file

records = [
    {"rtype": 160, "publisher_id": 1, "product_id": 1, "ts_event": 647784973705, "order_id": 1,
     "price": 3723000000000, "size": 1, "flags": -128, "channel_id": 0, "action": ord('C'),
     "side": ord('A'), "ts_recv": 1609160400000704060, "ts_in_delta": 0, "sequence": 1170352}
]
with open("my.dbz", "wb") as out:
    write_dbz_file(file=out, schema="mbo", dataset="custom", records=records, stype="product_id")

Note that the keys in the dictionaries in records must match the field names of the schema, or the function will raise a KeyError.

Building

dbz-python is written in Rust, so you'll need to have Rust installed as well as Maturin.

To build, run the following commands:

git clone https://github.com/databento/dbz
cd dbz
maturin build

To build the Python package and install it for the active Python interpreter in your PATH, run:

maturin develop

This will install a package named dbz_python in your current Python environment.

License

Distributed under the Apache 2.0 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

dbz_python-0.2.1-cp311-none-win_amd64.whl (358.0 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

dbz_python-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

dbz_python-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl (1.7 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

dbz_python-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

dbz_python-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

dbz_python-0.2.1-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (1.4 MB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

dbz_python-0.2.1-cp311-cp311-macosx_10_7_x86_64.whl (770.3 kB view hashes)

Uploaded CPython 3.11 macOS 10.7+ x86-64

dbz_python-0.2.1-cp310-none-win_amd64.whl (357.9 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

dbz_python-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

dbz_python-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl (1.7 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

dbz_python-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

dbz_python-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

dbz_python-0.2.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (1.4 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

dbz_python-0.2.1-cp310-cp310-macosx_10_7_x86_64.whl (770.3 kB view hashes)

Uploaded CPython 3.10 macOS 10.7+ x86-64

dbz_python-0.2.1-cp39-none-win_amd64.whl (357.9 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

dbz_python-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

dbz_python-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl (1.7 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

dbz_python-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

dbz_python-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

dbz_python-0.2.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (1.4 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

dbz_python-0.2.1-cp39-cp39-macosx_10_7_x86_64.whl (770.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.7+ x86-64

dbz_python-0.2.1-cp38-none-win_amd64.whl (358.1 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

dbz_python-0.2.1-cp38-cp38-musllinux_1_2_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

dbz_python-0.2.1-cp38-cp38-musllinux_1_2_aarch64.whl (1.7 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

dbz_python-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

dbz_python-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

dbz_python-0.2.1-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (1.4 MB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

dbz_python-0.2.1-cp38-cp38-macosx_10_7_x86_64.whl (769.8 kB view hashes)

Uploaded CPython 3.8 macOS 10.7+ x86-64

dbz_python-0.2.1-cp37-none-win_amd64.whl (358.1 kB view hashes)

Uploaded CPython 3.7 Windows x86-64

dbz_python-0.2.1-cp37-cp37m-musllinux_1_2_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

dbz_python-0.2.1-cp37-cp37m-musllinux_1_2_aarch64.whl (1.7 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARM64

dbz_python-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

dbz_python-0.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

dbz_python-0.2.1-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (1.4 MB view hashes)

Uploaded CPython 3.7m macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

dbz_python-0.2.1-cp37-cp37m-macosx_10_7_x86_64.whl (769.8 kB view hashes)

Uploaded CPython 3.7m macOS 10.7+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page