Skip to main content

Data logger for Disco simulations

Project description

🧾 disco-data-logger

High-performance, C++/NumPy-backed data logger
for Disco discrete-event and Monte Carlo simulation programs.

PyPI License: MIT Build Tests


Overview

disco-data-logger provides a fast, compressed, and lightweight data recording layer
for large-scale Disco simulations and other computational experiments.

It is optimized for capturing sparse numerical state updates and accumulators during simulation runs,
and writing them efficiently to disk as Zstandard-compressed segment files.
Each simulation entity or measurement can log its data independently through labeled streams.

It combines:

  • A C++/pybind11 core for high-throughput buffering and compression.
  • Python API for easy stream registration and control.
  • Built-in Parquet export for analysis and aggregation after runs.

✨ Features

  • Sparse vector logging powered by graphblas.Vector.
  • Fixed-point quantization for compact and deterministic encoding.
  • Buffered, lock-free write path (ring buffer + writer thread).
  • Zstandard compression (vendored, no external dependencies).
  • Segment rotation for large simulation outputs.
  • JSON metadata for each stream (organisation, model, experiment, …).
  • Periodic vector streams that emit state snapshots or accumulator sums once per period.
  • Integrated Parquet export for post-run analytics.
  • Arrow-based collector to filter finished loggers and emit RecordBatches directly.
  • MIT-licensed and designed for in-cluster (on-disk/in-memory) use.

🚀 Installation

pip install disco-data-logger

pyarrow ships with the package, so Parquet export works out of the box.


📚 Documentation

  • Collector – decode completed loggers, filter streams with label_selector, and write Arrow RecordBatch outputs efficiently.
  • Periodic vector stream logging – step-by-step guide for configuring periodicity, choosing between state and accumulator modes, and verifying the emitted sparse data.
  • ENGINEERING_SPEC.md – project history, motivation, and architectural overview.

🛠️ Development

Set up a virtual environment (for example, python -m venv .venv && source .venv/bin/activate), then install the project in editable mode with its development extras:

pip install -e '.[dev]'

[!NOTE] The tools namespace is provided by the separate disco-tools dependency. After installing it for the first time you must deactivate and reactivate your environment (e.g., deactivate followed by source .venv/bin/activate) so that pytest can discover the package properly.

Once the environment is ready, run the unit tests with:

pytest

License

This project is licensed under the Apache License, Version 2.0.

You are free to use, modify, and distribute this software, including for commercial purposes, subject to the terms of the license.

Contributions

By contributing to this project, you agree that your contributions will be licensed under the Apache License 2.0 and that you have the right to submit the work under those terms.

This project uses a Contributor License Agreement (CLA) to ensure clarity of intellectual property and patent rights.

Project details


Download files

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

Source Distribution

disco_data_logger-0.1.3rc1.tar.gz (32.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

disco_data_logger-0.1.3rc1-cp313-cp313-win_amd64.whl (860.2 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_data_logger-0.1.3rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_data_logger-0.1.3rc1-cp313-cp313-macosx_11_0_arm64.whl (755.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_data_logger-0.1.3rc1-cp313-cp313-macosx_10_13_x86_64.whl (958.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

disco_data_logger-0.1.3rc1-cp312-cp312-win_amd64.whl (860.2 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_data_logger-0.1.3rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_data_logger-0.1.3rc1-cp312-cp312-macosx_11_0_arm64.whl (755.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_data_logger-0.1.3rc1-cp312-cp312-macosx_10_13_x86_64.whl (958.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

disco_data_logger-0.1.3rc1-cp311-cp311-win_amd64.whl (859.1 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_data_logger-0.1.3rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_data_logger-0.1.3rc1-cp311-cp311-macosx_11_0_arm64.whl (754.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_data_logger-0.1.3rc1-cp311-cp311-macosx_10_9_x86_64.whl (954.8 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file disco_data_logger-0.1.3rc1.tar.gz.

File metadata

  • Download URL: disco_data_logger-0.1.3rc1.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for disco_data_logger-0.1.3rc1.tar.gz
Algorithm Hash digest
SHA256 4d6e91b3920aac3a061993c22ec6d212f68e95414ac8dc19de879f71a34f2b75
MD5 29f3cdb8e5dbffa017fd0c582b7dce97
BLAKE2b-256 e1a456e8132c771396c1200bca5278f9aadfd2bfd3acf28bc836751ae08950fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1.tar.gz:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 792e4664d50c6af6f8901985e14c7b62d33ecccc7d08c82f2e921aa1283a6011
MD5 25568e7afed0041c9799a54e69898d4a
BLAKE2b-256 c97eb6fcd585238f1793a76eeaef64577af473e65938bd54bfce801d374913ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp313-cp313-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13f7ff8befd1e970ebad817b3f2a25578bf7a42868cd0860991091b2ed172ca8
MD5 e18095ac1a3701752103fbbfe4a06118
BLAKE2b-256 eb17ea015154e390c575c82e8d2ec0fd0291aee62cee24f5edae4270c44fc639

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 113afe7e57f328f0769d7160fabc0a48065655f8d5c29af93a3223c52d01744a
MD5 230e5378e17852b7bbc97218f7b82014
BLAKE2b-256 ffa3acf02d5f4a85f76d9d163149c97f909e3f55717490bd4c0a53e481bdd48f

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 56b569c784198f36a3b267b3145c0d8d60f8f275ea2bda05d2f88f7a446be748
MD5 aa7eac7a59989532259844b97504e523
BLAKE2b-256 141d4088331209010276e02e96902e1ebe4ebe71c12783d90dab09290901094f

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 aaddc04594652525705f8ed2be57970027175609b5981d140abdab613e53faf6
MD5 bf1b1f69a570eadcf156b528e409edfd
BLAKE2b-256 561f5d3eb6b1af9d4b6f3c4af7e33e9de41807536aae14fa6bae236e85847116

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp312-cp312-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2663f57436572e67afb34209a52c58d903c30cb186892a8157b7e24f2517870e
MD5 0dc00d2e124172734ff40e2bbcc13331
BLAKE2b-256 0943fa5759b0dd7e8b6163dff7a88a617cfd276c7016fb277a7ec78a89d75407

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8dda658b0969db15d9abb0fb5673b6de3e3edfd6840e90b70d1d2a80447bbe8f
MD5 e7081b5f67e197a1162b330a96d1d4e8
BLAKE2b-256 9e1a96da8933b54f67a8fd73d7ddfe2d9c83ec87230860bb4554ac6916954383

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 84126c01776ac2949fc5fbfee60fd54b283ed984f9b292e52bc16f3e747496af
MD5 e36f2ba3b442feae1fc102fec96c32f6
BLAKE2b-256 1477583eec3bba66a1ebbbc83d80a9c1988d715f62600c55520bce38f5a7e4eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1fe3507aa480bde9e2df7b1b85de77089e0ac75a29e42ba1be91b84e793512c8
MD5 667cecee0c74d650cdc0df7b71251ef6
BLAKE2b-256 bab0bf7a4d4b8ed26b51f0590cebc2fae526b01f201485a8df7433bb275ef67a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp311-cp311-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c379114f5093458708194cb445ac2dd728ba4bdce9bec78341a6d2d671f73950
MD5 32f85afb930fdcf6bf989c30517fbcd5
BLAKE2b-256 57f9e5b55fba0240624cbfcb28ece9cb3909eddc35a912471bb0799645313ae5

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d822339df48d97a017c9d336738b4d285e42b15e0668207ab74ebe7f08ba7f5
MD5 25cfc0cc14841e75dc6bc80d667cfdd4
BLAKE2b-256 db8ac56713d8ee8f9e443bfe6be8ee6b22f2114a4b1d146c6eda6a931cca5a5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_data_logger-0.1.3rc1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.3rc1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f70e62cea967f3d00877413b34fa089c2acf95e0ef78ca9475182ac8ac8b8b71
MD5 eaf4fd96d13d8db356f72a6b4a37354a
BLAKE2b-256 deb455054459d20ed84b2a2b0b3710768a7eafd1044fdb2519f9d66fb06c0b25

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.3rc1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-data-logger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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