Skip to main content

Unit Tests Code style: black

eflips-eval


Part of the eFLIPS/simBA list of projects.


This repository contains code to evaluate an eflips/simBA simulation. It provides the eflips.evalpackage, which contains functions to prepare (database -> pandas DataFrame) and visualize (pandas DataFrame -> plotly) simulation results.

It is organized hierarchically as follows:

  • eflips.eval.input contains functions to prepare and visualize simulation input data. That means it does not access any data from the Event or Vehicle classes.
  • eflips.eval.output contains functions to prepare and visualize simulation output data. That means these functions all access the Event or Vehicle classes.
  • within each package, there is a prepare and a visualize module. The prepare module contains functions to prepare the data, the visualize module contains functions to visualize the data. The functions must conform tp a naming convention, in which for the eflips.eval.input.preapre.foo(), there must also exist a eflips.eval.input.visualize.foo() method and vice versa. However, when the exact same data can be visualized in multiple ways, there can also be a eflips.eval.input.visualize.foo_scatter() and a eflips.eval.input.visualize.foo_hist() method.
  • the signature of a prepare method is always prepare(identifier(s), session) -> pd.DataFrame, where identifier(s) is a single or tuple of ints identifying a specific database object and session is a sqlalchemy.orm.session.Session object that is used to access the database.
  • the signature of a visualize method is always visualize(df: pd.DataFrame, **kwargs) -> plotly.graph_objects.Figure, where df is the DataFrame that is to be visualized and kwargs are additional arguments that can be used to customize the visualization. it does however create a legend (if necessary) and sets axis labels.
  • a visualize function does not make assumptions about the size of the viewport and does not set the title of the plot.
  • The resulting plots should be in english, with proper names (e.g. "Distance [km]" instead of total_dist) for the values that would be shown to the user.

Installation

TODO

Usage

TODO

Testing

TODO

Documentation

The documentation is generated using sphinx. To generate the documentation, execute the following command in the root directory of the repository:

sphinx-build doc/ doc/_build -W

Development

We utilize the GitHub Flow branching structure. This means that the main branch is always deployable and that all development happens in feature branches. The feature branches are merged into main via pull requests. We utilize the semantic versioning scheme for versioning.

Dependencies are managed using poetry. To install the dependencies, execute the following command in the root directory of the repository:

poetry install

We use black for code formatting. You can use black . to format the code.

We use MyPy for static type checking. You can use mypy --strict --explicit-package-bases eflips/ to run MyPy on the code.

Please make sure that your poetry.lock and pyproject.toml files are consistent before committing. You can use poetry check to check this. This is also checked by pre-commit.

You can use pre-commit to ensure that MyPy, Black, and Poetry are run before committing. To install pre-commit, execute the following command in the root directory of the repository:

We recommend utilizing linters such as PyLint for static code analysis (but not doing everything it says blindly).

Usage Example

In examples an example script can be found that generates a report.

License

This project is licensed under the AGPLv3 license - see the LICENSE file for details.

Funding Notice

This code was developed as part of the project eBus2030+ funded by the Federal German Ministry for Digital and Transport (BMDV) under grant number 03EMF0402.

Metadata

Release files for eflips-eval 1.10.0

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

Source distribution (sdist)

Source distribution for eflips-eval 1.10.0
File Size Uploaded Provenance Actions
eflips_eval-1.10.0.tar.gz 55.4 kB With provenance Details for eflips_eval-1.10.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for eflips-eval 1.10.0
File Interpreter ABI Platform Actions
eflips_eval-1.10.0-py3-none-any.whl Python 3 none any Details for eflips_eval-1.10.0-py3-none-any.whl

Total release size: 115.7 kB

Release files / eflips_eval-1.10.0.tar.gz

Download URL eflips_eval-1.10.0.tar.gz
Size 55.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1ccb27f72259f05ea6ef353832db1b3aa540e6961b54faa333ead77130c015ae
BLAKE2b-256 checksum
How to use checksums
e892c38606693f50dced0d0fc4357ce02ce308a6fb96869dd6e5e88f08662bdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / eflips_eval-1.10.0-py3-none-any.whl

Download URL eflips_eval-1.10.0-py3-none-any.whl
Size 60.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f2483f1fbccd8275d8b610cdcba8d080d92219d365ad284cb0d4dfdb5c7d4ea
BLAKE2b-256 checksum
How to use checksums
671a69b566276ae34800ddfc85efb46a97dfb5b68edad3606cab22105387e6d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for eflips-eval 1.10.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for eflips_eval-1.10.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.10.0 This release

2 release files Full provenance

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