eflips-eval


Nameeflips-eval JSON
Version 1.5.6 PyPI version JSON
download
home_pageNone
SummaryNone
upload_time2024-12-11 13:02:04
maintainerNone
docs_urlNone
authorLudger Heide
requires_python<4.0,>=3.10
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Unit Tests](https://github.com/mpm-tu-berlin/eflips-eval/actions/workflows/unittests.yml/badge.svg)](https://github.com/mpm-tu-berlin/eflips-eval/actions/workflows/unittests.yml) 
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

# eflips-eval

---

Part of the [eFLIPS/simBA](https://github.com/stars/ludgerheide/lists/ebus2030) list of projects.

---


This repository contains code to evaluate an eflips/simBA simulation. It provides the `eflips.eval`package, 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 `int`s 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](https://www.sphinx-doc.org/en/master/). To generate the documentation,
execute the following command in the root directory of the repository:

```bash
sphinx-build doc/ doc/_build -W
```

### Development

We utilize the [GitHub Flow](https://docs.github.com/get-started/quickstart/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](https://semver.org/) scheme for versioning.

Dependencies are managed using [poetry](https://python-poetry.org/). To install the dependencies, execute the following command in the root directory of the repository:

```bash
poetry install
```

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

We use [MyPy](https://mypy.readthedocs.io/en/stable/) 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](https://pre-commit.com/) 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](https://pylint.readthedocs.io/en/latest/index.html) for static code
analysis (but not doing everything it says blindly).

## Usage Example

In [examples](examples/) an example script can be found that generates a report.

## License

This project is licensed under the AGPLv3 license - see the [LICENSE](LICENSE.md) file for details.

## Funding Notice

This code was developed as part of the project [eBus2030+](https://www.eflip.de/) funded by the Federal German Ministry for Digital and Transport (BMDV) under grant number 03EMF0402.




            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "eflips-eval",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Ludger Heide",
    "author_email": "ludger.heide@lhtechnologies.de",
    "download_url": "https://files.pythonhosted.org/packages/fe/fc/fd924c9533a7463a3531fbb44f37bd4da586e1f0044a1a83ba55751d1e79/eflips_eval-1.5.6.tar.gz",
    "platform": null,
    "description": "[![Unit Tests](https://github.com/mpm-tu-berlin/eflips-eval/actions/workflows/unittests.yml/badge.svg)](https://github.com/mpm-tu-berlin/eflips-eval/actions/workflows/unittests.yml) \n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n# eflips-eval\n\n---\n\nPart of the [eFLIPS/simBA](https://github.com/stars/ludgerheide/lists/ebus2030) list of projects.\n\n---\n\n\nThis repository contains code to evaluate an eflips/simBA simulation. It provides the `eflips.eval`package, which\ncontains functions to prepare (database -> pandas DataFrame) and visualize (pandas DataFrame -> plotly) simulation results.\n\nIt is organized hierarchically as follows:\n- `eflips.eval.input` contains functions to prepare and visualize simulation input data. That means it does not access\n  any data from the `Event` or `Vehicle` classes.\n- `eflips.eval.output` contains functions to prepare and visualize simulation output data. That means these functions \n  all access the `Event` or `Vehicle` classes.\n- within each package, there is a `prepare` and a `visualize` module. The `prepare` module contains functions to prepare\n  the data, the `visualize` module contains functions to visualize the data. The functions must conform tp a naming\n  convention, in which for the `eflips.eval.input.preapre.foo()`, there must also exist a\n  `eflips.eval.input.visualize.foo()` method and vice versa. However, when the exact same data can be visualized in \n  multiple ways, there can also be a `eflips.eval.input.visualize.foo_scatter()` and a \n  `eflips.eval.input.visualize.foo_hist()` method.\n- the signature of a `prepare` method is always `prepare(identifier(s), session) -> pd.DataFrame`, where `identifier(s)`\n  is a single or tuple of `int`s identifying a specific database object and `session` is a \n  `sqlalchemy.orm.session.Session` object that is used to access the database.\n- the signature of a `visualize` method is always `visualize(df: pd.DataFrame, **kwargs) -> plotly.graph_objects.Figure`,\n  where `df` is the DataFrame that is to be visualized and `kwargs` are additional arguments that can be used to\n  customize the visualization. it does however create a legend (if necessary) and sets axis labels.\n- a visualize function does not make assumptions about the size of the viewport and does not set the title of the plot.\n- The resulting plots should be in english, with proper names (e.g. \"Distance [km]\" instead of `total_dist`) for the\n  values that would be shown to the user.\n\n## Installation\n\n**TODO**\n\n## Usage\n\n**TODO**\n\n## Testing\n\n**TODO**\n\n### Documentation\n\nThe documentation is generated using [sphinx](https://www.sphinx-doc.org/en/master/). To generate the documentation,\nexecute the following command in the root directory of the repository:\n\n```bash\nsphinx-build doc/ doc/_build -W\n```\n\n### Development\n\nWe utilize the [GitHub Flow](https://docs.github.com/get-started/quickstart/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](https://semver.org/) scheme for versioning.\n\nDependencies are managed using [poetry](https://python-poetry.org/). To install the dependencies, execute the following command in the root directory of the repository:\n\n```bash\npoetry install\n```\n\nWe use black for code formatting. You can use `black .` to format the code.\n\nWe use [MyPy](https://mypy.readthedocs.io/en/stable/) for static type checking. You can\nuse ` mypy --strict --explicit-package-bases  eflips/` to run MyPy on the code.\n\nPlease 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.\n\nYou can use [pre-commit](https://pre-commit.com/) to ensure that MyPy, Black, and Poetry are run before committing. To\ninstall pre-commit, execute the following command in the root directory of the repository:\n\nWe recommend utilizing linters such as [PyLint](https://pylint.readthedocs.io/en/latest/index.html) for static code\nanalysis (but not doing everything it says blindly).\n\n## Usage Example\n\nIn [examples](examples/) an example script can be found that generates a report.\n\n## License\n\nThis project is licensed under the AGPLv3 license - see the [LICENSE](LICENSE.md) file for details.\n\n## Funding Notice\n\nThis code was developed as part of the project [eBus2030+](https://www.eflip.de/) funded by the Federal German Ministry for Digital and Transport (BMDV) under grant number 03EMF0402.\n\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": null,
    "version": "1.5.6",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9e24a014ec17e1f0ebba50bdc20f6b3b9fe1f60c0d7366aa43b43a66cfdc29be",
                "md5": "940dd0515513a499e52094dbdaf7b7e3",
                "sha256": "41c96521d9d87e705ac542d506e8e9ecc6fe5b04d4282215d1d6e4f56b3ccc49"
            },
            "downloads": -1,
            "filename": "eflips_eval-1.5.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "940dd0515513a499e52094dbdaf7b7e3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 43068,
            "upload_time": "2024-12-11T13:02:02",
            "upload_time_iso_8601": "2024-12-11T13:02:02.461478Z",
            "url": "https://files.pythonhosted.org/packages/9e/24/a014ec17e1f0ebba50bdc20f6b3b9fe1f60c0d7366aa43b43a66cfdc29be/eflips_eval-1.5.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fefcfd924c9533a7463a3531fbb44f37bd4da586e1f0044a1a83ba55751d1e79",
                "md5": "0f3c18001d3df876bc0ab715d94ed525",
                "sha256": "9c8e667299f347ee4f40484884908184433ffeef2534da6fb0806f2c9c5d3742"
            },
            "downloads": -1,
            "filename": "eflips_eval-1.5.6.tar.gz",
            "has_sig": false,
            "md5_digest": "0f3c18001d3df876bc0ab715d94ed525",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 29241,
            "upload_time": "2024-12-11T13:02:04",
            "upload_time_iso_8601": "2024-12-11T13:02:04.007769Z",
            "url": "https://files.pythonhosted.org/packages/fe/fc/fd924c9533a7463a3531fbb44f37bd4da586e1f0044a1a83ba55751d1e79/eflips_eval-1.5.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-11 13:02:04",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "eflips-eval"
}
        
Elapsed time: 0.41386s