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 nanobind. 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.

Examples

Examples in this repository are (slowly) being deprecated. You can build them by adding the cmake flag -DDSF_EXAMPLES=ON and you will find the exectuables under the examples folder. You can also find some Python examples.

New examples are being updated on dsf-examples.

GUI

If you need a visualization tool there is one available on dsf-gui. It is still in alpha stage but is already useful for some purposes.

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

If you use this software, please cite it using the metadata in CITATION.cff (GitHub's "Cite this repository" button exports it as BibTeX/APA), or via its DOI: 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.

Metadata

Release files for dsf-suite 7.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dsf-suite 7.3.3
File Size Uploaded
dsf_suite-7.3.3.tar.gz 189.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for dsf-suite 7.3.3
File
dsf_suite-7.3.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
dsf_suite-7.3.3-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
dsf_suite-7.3.3-cp314-cp314-macosx_26_0_arm64.whl CPython 3.14 CPython 3.14 macOS 26.0+ ARM64 Details
dsf_suite-7.3.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
dsf_suite-7.3.3-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
dsf_suite-7.3.3-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details
dsf_suite-7.3.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
dsf_suite-7.3.3-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
dsf_suite-7.3.3-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details

Total release size: 17.0 MB

Release files / dsf_suite-7.3.3.tar.gz

Download URL dsf_suite-7.3.3.tar.gz
Size 189.2 kB
Tags Source
SHA-256 checksum
How to use checksums
94e4d30711dce049c6473cbd9d8c59cf8c57017c46eeb152edfe7bbc3d78266d
BLAKE2b-256 checksum
How to use checksums
a7783dd2c5b872d03661c414d6a00bd6dd30d78e3319465cc0c0773363dbb4c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.3.3-cp314-cp314-win_amd64.whl
Size 1.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
6ac106195d3287a3177aed471beea48260ab66398ef65b43c4841faf62e648c9
BLAKE2b-256 checksum
How to use checksums
9d175a7fa9cd6215d1e978e99215b79c3d7873c07ec4a890dd3954457980720c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.3.3-cp314-cp314-manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a10a0fbd0a9d038f675eeb26adc7711ffc52bc9b77a750ef3a03df0b5db4139b
BLAKE2b-256 checksum
How to use checksums
1a8a0d8d6e5e143aec06683897e3dc42f99f078b2cd8d297cd2a71aac87dd843
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.3.3-cp314-cp314-macosx_26_0_arm64.whl
Size 1.6 MB
Tags CPython 3.14 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
cfabaff353d395fd4a243d4741f21d7b595b47f47d0eb19dd899d9f47cbdba2c
BLAKE2b-256 checksum
How to use checksums
a1f8ab1d3ba637d237128ad06af38495ee3c043ea779ed2e953e5a35d96128d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp313-cp313-win_amd64.whl

Download URL dsf_suite-7.3.3-cp313-cp313-win_amd64.whl
Size 1.7 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
314ddd4b8f6fbcdc79ff5b0c8333e4ca266dd905ac22094129e08b907bb8d336
BLAKE2b-256 checksum
How to use checksums
6d2e9d86848f95b7cc1de619e40e7d034f6cb78a117a8d7985f219564267587e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.3.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4711f34ce9017698e280a87968ce85dd431f9313981ea0fe5e92ba896114bf87
BLAKE2b-256 checksum
How to use checksums
ce3b5b85c7f2f91a242a0a3836fbdc7ed6138dd388403e8f9e7c8a4d0584a47f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.3.3-cp313-cp313-macosx_26_0_arm64.whl
Size 1.6 MB
Tags CPython 3.13 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
48231bab77312d3d75126828c8f2ba4351d16ec40bdbfb05332ef464ab264363
BLAKE2b-256 checksum
How to use checksums
939f1aaa50f4255b81261fcea0e43ae6602b2dce67309acd6a62c5353ea3b99b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.3.3-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
9244a24e12302aa80fe847f19713f2f766f639754c6cb7317fbb7fdd4259c891
BLAKE2b-256 checksum
How to use checksums
dfa82e4d6695907802ad022947e22136e7868578f194c760910955d782e33aaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.3.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2b11c580c1fc3aa009be787d3fb0a679df24ef0fb4610929950f6b4fea179142
BLAKE2b-256 checksum
How to use checksums
aab815f48100f41724168feb5877cfd0391083c5d260a9b54089e372f3e57ee3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.3.3-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.3.3-cp312-cp312-macosx_26_0_arm64.whl
Size 1.6 MB
Tags CPython 3.12 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
b35efe69e68afa83081faa767a6f7a13e1072dd61ea50bfd87bd377cad642ad8
BLAKE2b-256 checksum
How to use checksums
d6125dbe0735d4fb02d45a50d47e4f94c936fcdf35d7e095210014209283365a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

This release

7.3.3 This release

10 release files

7.3.2

10 release files

7.3.1

10 release files

7.3.0

10 release files

7.2.9

10 release files

7.2.8

10 release files

7.2.7

10 release files

7.2.6

10 release files

7.2.5

10 release files

7.2.4

10 release files

7.2.3

10 release files

7.2.2

10 release files

7.2.1

10 release files

7.2.0

10 release files

7.1.0

10 release files

7.0.4

10 release files

7.0.3

10 release files

7.0.2

10 release files

7.0.1

10 release files

6.7.0

10 release files

6.6.3

10 release files

6.6.2

10 release files

6.6.1

10 release files

6.6.0

10 release files

6.5.7

10 release files

6.5.6

10 release files

6.5.5

10 release files

6.5.4

10 release files

6.3.2

10 release files

6.3.1

10 release files

6.2.5

10 release files

6.2.4

10 release files

6.2.3

10 release files

6.2.2

10 release files

6.2.1

10 release files

6.2.0

10 release files

6.0.9

10 release files

6.0.8

13 release files

6.0.7

13 release files

6.0.5

9 release files

6.0.4

9 release files

6.0.3

9 release files

6.0.2

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page