Skip to main content

DynamicalSystemFramework

Latest Release PyPI version DOI

Standard TBB SPDLOG CSV JSON SQLite codecov

The aim of this project is to rework the original Traffic Flow Dynamics Model. This rework consists of a full code rewriting, in order to implement more features (like intersections) and get advantage from the latest C++ updates.

Table of Contents

Installation

The library is available on PyPI:

pip install dsf-suite

To check the installation you can simply run

import dsf

print(dsf.__version__)

Installation (from source)

Requirements

The project requires C++20 or greater, cmake, tbb simdjson, spdlog, csv-parser and SQLiteCpp. To install requirements on Ubuntu:

sudo apt install cmake libtbb-dev

To install requirements on macOS:

brew install cmake tbb

Installation (C++)

The library can be installed using CMake. To build and install the project in the default folder run:

cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j$(nproc)
sudo cmake --install build

Otherwise, it is possible to customize the installation path:

cmake -B build -DCMAKE_INSTALL_PREFIX=/path/to/install

then building and installing it (eventually in sudo mode) with:

cmake --build build
cmake --install build

Installation (Python)

If you want to use the library from Python, you can build the Python bindings using pybind11. Make sure you have tbb installed:

sudo apt install libtbb-dev

Then, the installation is automatic via uv:

uv build

or you can just use the classic pip:

pip install .

After installation, you should be able to import the module in Python:

import dsf

print(dsf.__version__)

If you encounter issues, ensure that the installation path is in your PYTHONPATH environment variable.

For Developers

This project as a pre-commit configuration. To use it properly, please install:

pip install pre-commit
pre-commit install

Testing

This project uses Doctest for testing.

If the project is compiled in Debug or Coverage mode, tests are always built. Otherwise, you can add the -DDSF_TESTS=ON flag to enable test build.

cmake -B build -DDSF_TESTS=ON
cmake --build build -j$(nproc)

To run the tests use the command:

ctest --test-dir build -j$(nproc) --output-on-failure

Benchmarking

Some functionalities of the library have been benchmarked in order to assess their efficiency.
The benchmarks are performed using Google Benchmarks. To build the benchmarks add the flag -DDSF_BENCHMARKS=ON :

cmake -B build -DDSF_BENCHMARKS=ON
cmake --build build -j$(nproc)

To run all the benchmarks together use the command:

cd benchmark
for f in ./*.out ; do ./$f ; done

Citing

@software{berselli_2026_18745492,
  author       = {Berselli, Gregorio},
  title        = {DynamicalSystemFramework},
  month        = mar,
  year         = 2026,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.18745492},
  url          = {https://doi.org/10.5281/zenodo.18745492},
}

Bibliography

  • Mungai, Veronica (2024) Studio dell'ottimizzazione di una rete semaforica. University of Bologna, Bachelor's Degree in Physics [L-DM270]. Link to Thesis.
  • Berselli, Gregorio (2024) Advanced queuing traffic model for accurate congestion forecasting and management. University of Bologna, Master's Degree in Physics [LM-DM270]. Link to Thesis.
  • Berselli, Gregorio (2022) Modelli di traffico per la formazione della congestione su una rete stradale. University of Bologna, Bachelor's Degree in Physics [L-DM270]. Link to Thesis.

Download files

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

Source Distribution

dsf_suite-6.5.1.tar.gz (175.7 kB view details)

Uploaded Source

Built Distributions

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

dsf_suite-6.5.1-cp314-cp314-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.14Windows x86-64

dsf_suite-6.5.1-cp314-cp314-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

dsf_suite-6.5.1-cp314-cp314-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

dsf_suite-6.5.1-cp313-cp313-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.13Windows x86-64

dsf_suite-6.5.1-cp313-cp313-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

dsf_suite-6.5.1-cp313-cp313-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

dsf_suite-6.5.1-cp312-cp312-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.12Windows x86-64

dsf_suite-6.5.1-cp312-cp312-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

dsf_suite-6.5.1-cp312-cp312-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

File details

Details for the file dsf_suite-6.5.1.tar.gz.

File metadata

  • Download URL: dsf_suite-6.5.1.tar.gz
  • Upload date:
  • Size: 175.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.5.1.tar.gz
Algorithm Hash digest
SHA256 2eb217b72d0f3edfd4f57f3c04d3bc8c4474d5fae0266c4f6b825c2e067e77b3
MD5 4eec39df0f4032a5a5f2ed2df0d861be
BLAKE2b-256 2ec763670320364b6c9b4ffbfea0bef7b6bf73d53b620b32c9f26ac46090ee9d

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: dsf_suite-6.5.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.5.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b9e8bf5096229f31410061f0cb1aacbc16e7bc9e413461745a437f0ca338b041
MD5 10d5aab97527e5f6125571d5c6a53610
BLAKE2b-256 00b25f1e659e628d18686eacc2a4dc3834e82d8b3b146d701451cb93535cdc67

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.5.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e6bc9be49c61c71f33cb255de022137b60dccbc0e81125e0e85d9fc69cd68285
MD5 ad8bf846b29c9747de7e51caba3b7968
BLAKE2b-256 594b23b0bea355d974d174b744addd257f418eccdb30bc3609407760dd7de616

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp314-cp314-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.5.1-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 26bec65c1078f97dc41a30d19083da39f9b09619327db563ea1f9cb4931bdf29
MD5 13e51b64fd8b9d10459dd62c1a024e0a
BLAKE2b-256 8ebb6757d2a7f0b241bd75a649e49e785d9a620f48ee340b0c1e012d1203ff81

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: dsf_suite-6.5.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.5.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 74f963106d375f863f5d72b310d0b585a6dec3cfeab0f63e0638c4bc1d0f7a5a
MD5 d00e852c6e573cb653bcfce778ca3d41
BLAKE2b-256 63dcce77d5282eb36d3b5be230baa9768a1aff7af1eea0c30fe21087559ed106

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.5.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf14a167caa04e60d170cbff5202fd883a72b407e4f0072a8787b441b4270760
MD5 c6658eea9f3bcb471119143ff907e76f
BLAKE2b-256 f6d8c071ae1527c180e4a319ca426b08312ba98b945b36156b57d321301b61b4

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp313-cp313-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.5.1-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 41ad13114e5ab474e48ac2fc87102436730263ce4dd3a760ca98969b9f24bc79
MD5 5331fcbb9243916bc3b5f5370a0c1004
BLAKE2b-256 b1c35192b7c64f4de5ce2778c5a4b3336f5b814f02df1a2dd67e317244ba534b

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: dsf_suite-6.5.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.5.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 61600eba41636c33323647a9e5c9276cc82ab5ee44c550be9d058100813a724a
MD5 e7ce73df4afbc35823d949758525890e
BLAKE2b-256 c39e683c1958f474469127b8334b93d79404d95107c2dab0c3e0186488d17918

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.5.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3cf71c19c01b8f47c1bfce5cc4578b3fd452511dc6a7f612ed650dedf7d3cade
MD5 3836defcbb5655fc9bad1ea1f2f2249f
BLAKE2b-256 ec3c9386e3d81ee67cd30c46983018b7c2faa3cebf894b324f3ae33e9110a184

See more details on using hashes here.

File details

Details for the file dsf_suite-6.5.1-cp312-cp312-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.5.1-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 971382a7abd53073e81e0dee8bd24fea76f7544820c746ed76a7c3ab806ff5c5
MD5 70282bf32ce71ccd1ec85b357abc5244
BLAKE2b-256 27c0d6d0f8f606c44900715bc7ec6917c865e066b1e314e3c82a24c17a61c600

See more details on using hashes here.

Supported by

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