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.4rc1.tar.gz (32.3 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.4rc1-cp313-cp313-win_amd64.whl (864.8 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_data_logger-0.1.4rc1-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.4rc1-cp313-cp313-macosx_11_0_arm64.whl (762.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_data_logger-0.1.4rc1-cp313-cp313-macosx_10_13_x86_64.whl (966.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

disco_data_logger-0.1.4rc1-cp312-cp312-win_amd64.whl (864.8 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_data_logger-0.1.4rc1-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.4rc1-cp312-cp312-macosx_11_0_arm64.whl (762.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_data_logger-0.1.4rc1-cp312-cp312-macosx_10_13_x86_64.whl (966.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

disco_data_logger-0.1.4rc1-cp311-cp311-win_amd64.whl (862.9 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_data_logger-0.1.4rc1-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.4rc1-cp311-cp311-macosx_11_0_arm64.whl (761.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_data_logger-0.1.4rc1-cp311-cp311-macosx_10_9_x86_64.whl (962.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: disco_data_logger-0.1.4rc1.tar.gz
  • Upload date:
  • Size: 32.3 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.4rc1.tar.gz
Algorithm Hash digest
SHA256 02f0394941f9a8ef59cdf4330bc60481904c859b93da0a95d76942567d97c9d9
MD5 e3f7e71506d2c70244723a635ca6f2e6
BLAKE2b-256 acc40a9da8bde4cdb3a8363a2e3e9fc9363316fecd25e1001d648a192cc49189

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1.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.4rc1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 59a7d13b370a41eb86d55d6b59f97582504905efee8c1ad22b3455e998727388
MD5 80039d35960ef10671a05abca9c82486
BLAKE2b-256 7281d5e024b00a10f45ed5b3cf2aaab9895d24f6cb9d23d2000219f12cce875c

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bddd85deb73a24a63dcae7760617c57190bf47705d29f41c61e2e2c0839e07dc
MD5 10ced87fcf35587d1d5be3b408943b10
BLAKE2b-256 dd7d9d7e6d2e06bd74f2e85a1899b0612bee581b7b2c18547ed0846ae362224e

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ab6666d86ff06c38593f99aa4400aa1ab98a4c3769c2afca30932b8df715151
MD5 1d2a648c10a234bec0434b3c1366528d
BLAKE2b-256 e9a29cd90e446848d494d6efe8731eaf276abded8faee1f106f6f9740c373028

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 bfd75a68734193187955592c06f43ce911dfcdb7ac50d7601ca03c6563e37f5e
MD5 91785bae9a82baea8b686c2fc77e4d2a
BLAKE2b-256 841119f8169cde9935d281fc82f43c458a19667c0532eb02796acb44c4d8add1

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 677a1b132c1fb4b5c580e01d700807837448a21b2c73d3721f13c744148969d2
MD5 246703c6883193635a18bb51bab5cc2a
BLAKE2b-256 5c9649ab05bad0ad1b140d2e46895969818e76a8e78744227b3271b3fcdd0e8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 30c374f3eeaa762ee7cdbbd4c9d1eaf54768cbc13a61b62e90332574b6ce4b33
MD5 9ed6b75f471eb6f8d6941a1317542de2
BLAKE2b-256 6830f8e08928969ae3abf5bbb0888d1d2bcb40f6724b378870615bd58991fab1

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05c0fed63c11478b314dc2a87f8ed32bd02909ad60b4ee457e6934a8e62a9db3
MD5 adac41ec890f961218bae79b871a9cf9
BLAKE2b-256 705537c912fec887814bc35ee574b87e365a3033f7e6eced02107ce5e6cc753a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 643fa741516969ee26f1cd33ddcb6519d5a70a9d17f34581168e6b291d43cd61
MD5 a76b6552541eab813deef6a8d17f929b
BLAKE2b-256 a45b09f5f417a974ea34683a6262f0f3a25a17c16e072d06d2b85e424373b45e

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a5ba8c2b34deebc4f579f44b6c67fca95c07f2aee7e8da5942dfb782c361852a
MD5 0b16b13e04e0d38d79d99df63cb3e35a
BLAKE2b-256 7daa9f942ba22cac48a249b49e1e25acfad6a708717e5afe112993b22bce36f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72ab1e913527f040975ad415126795fd1a9cb95ae8d63d58ea0f91e42edd56fd
MD5 42039d9d5dc712f81ffffb4a25c4c800
BLAKE2b-256 7abf7357093fb7b7a6f4d8b9b6461fb540373819947e87174601abd0dce95ff7

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 daf91a2db5e7f9868a2aa883cc52cda806851bc987a38d8cf09085e0bcb89e38
MD5 bf7127d9a5de61d3bbe783684f28ec5c
BLAKE2b-256 c05a1263f81eb4d3600576a18b96ea69747aa7e6fa6606eb631ac1bf97e841c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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.4rc1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for disco_data_logger-0.1.4rc1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4929d309f853f2ffb2f405a4e75f939fd4b5b356a37b8031411c720a6eb49ae7
MD5 36b0dd5105c516684125fe3b9da6abc3
BLAKE2b-256 4c1f67df6cd24ab1c11f449437931c8f34a7a42d094c12c652acd0d72957858a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_data_logger-0.1.4rc1-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