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.0.tar.gz (175.5 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.0-cp314-cp314-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.14Windows x86-64

dsf_suite-6.5.0-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.0-cp314-cp314-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

dsf_suite-6.5.0-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.0-cp313-cp313-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

dsf_suite-6.5.0-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.0-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.0.tar.gz.

File metadata

  • Download URL: dsf_suite-6.5.0.tar.gz
  • Upload date:
  • Size: 175.5 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.0.tar.gz
Algorithm Hash digest
SHA256 d2bd928fb9d9324bfab79c7df3827b0313f4385a9338298f73e58fd3c162a08d
MD5 8771b08fce77bfc38b1029d4610d95b8
BLAKE2b-256 ff07d411784fa1ad36e287b68f1557611541554ba75d717809832d43bb7ad7ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.0-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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b7a273c0cec095f0abe875af5c32cbdd72e1ee1a9f8db8d726554af76c021d70
MD5 6bf9bfba3335237fdea49992a79a78e3
BLAKE2b-256 3ca26f1ddddd818cbc919b68620ed69ce3c3eda792edf6175646b98d76905462

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f28a7f2f7d2edc9a9ca2f06012adb2dc3c6c63687b6b2ca73b6d03a34240b69c
MD5 ccac3d95f371f245aba0501f2db4416d
BLAKE2b-256 9c3508c53856c067de4b6be5a93e880fff25a0763050506265fb186fd4aabe25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.0-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 e5a646940686af88d87da4a7461b9b0192d11e4568305f0e6222c56b70bf6e1c
MD5 9ce1f153267215b39428d9787f329e0f
BLAKE2b-256 444dfadc862655f3d3ac209691f0a86c7c257c68e6464f5a8bd9db60895a8e2c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.0-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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d9ef3799ebbd8f4dd240255ffbc61f6bd0673a98d7723ba936b0409c854b5506
MD5 3f7fb71e6102c011fd7238e0960d7500
BLAKE2b-256 01ef4b80b95902ee0d0b4ff5f1032a7ba21d15609a8552fe77463b282f30bb00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0dddf33f4def0a27b81033036bb85987964ebbe05955a4b13efb99d78ea1a55d
MD5 730268ac6aea641c6cf9050add427fde
BLAKE2b-256 4ba96b4628c8bac69fb02624fd6b90026915f66243967ed4ad80ae2bc89a7ecc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.0-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 549b7420ca4a4f52768a288f82994b520ac09a42aa47c80fee4fe8651d630d86
MD5 9542cabb63a1515b67d1ce7556859410
BLAKE2b-256 6aa6a106bc514691166e5f9fd2af2022a72cc5455c4a2eeacd360a23bbaaf8d0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2ec94cf5284d69bc0afb4c10c48fcff3d90533b1f5433e80e1d35b118884f84c
MD5 ce03709ed970f7f7af59480d4370588f
BLAKE2b-256 56fa6ec6e6d013ab91099969ee97185a8fce6f2074e8b54ff3a94c849c66c65d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d0b2b4a45b541488b9419acd02f229a72445b90ac8d55194ed10b1d08145a751
MD5 082d93999f4bd170abd32669cf9e0620
BLAKE2b-256 ca562d70fc116f52336e7f5eb8a8b10c5151832262f76e76a715bf504085799d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.0-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 3d666211b8a70376d29b4c082ac9e38a8df635945626b6d2a911051f31a29fc1
MD5 57205ed37d9fd4caf09fb06c6dde06fc
BLAKE2b-256 ee0cfcea846c3abef9d7cc85cdbe501860e2f2a20805f518572111a10bb58b9e

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