Skip to main content

Depot Simulation for eFLIPS

Project description

Tests Code style: black

eflips-depot


Part of the eFLIPS/simBA list of projects.


eFLIPS has been developed within several research projects at the Department of Methods of Product Development and Mechatronics at the Technische Universität Berlin (see https://www.tu.berlin/mpm/forschung/projekte/eflips).

With eFLIPS, electric fleets and depots can be simulated, planned and designed. This repository contains only the planning and design tool for depots.

eflips_overview

The repository contains an example for the simulation and planning of an elecric bus depot, which is based on the dissertation by Dr.-Ing. Enrico Lauth (see https://depositonce.tu-berlin.de/items/f47662f7-c9ae-4fbf-9e9c-bcd307b73aa7).

Installation

  1. Clone this git repository (or download a specific release)

    git clone git@github.com:mpm-tu-berlin/eflips-depot.git
    
  2. Install the packages listed in poetry.lock and pyproject.toml into your Python environment. Notes:

    • The suggested Python version os 3.11.*, it may work with other versions, but this is not tested.
    • Using the poetry package manager is recommended. It can be installed accoring to the instructions listed here.

    macOS

    poetry env use 3.11
    poetry install
    

    Windows

    If you are using Windows, you have to provide the full path to the desired Python executable, e.g.:

    poetry env use C:\Users\user\AppData\Local\Programs\Python\Python311\python.exe
    poetry install
    
  3. To start a simulation, an existing eFLIPS-Model database is requires. Once you have that, you can run the script bin/example.py

Usage

Please refer to the Documentation section of this Readme for information on how to use eFLIPS-Depot.

The API of eFLIPS-Depot can be accessed via eFLIPS.depot.api. A usage example can be found in the script bus_depot/user_example.py.

Testing


NOTE: Be aware that the tests will clear the database specified in the DATABASE_URL environment variable. Make sure that you are not using a database that you want to keep.


Testing is done using the pytest framework with tests located in the testsdirectory. To run the tests, execute the following command in the root directory of the repository:

   export PYTHONPATH=tests:. # To make sure that the tests can find the eflips package
   export DATABASE_URL=postgis://postgres:postgres@localhost:5432/postgres # Or whatever your database URL is
   export DJANGO_SETTINGS_MODULE=tests.api.djangosettings # To make sure that the tests use the correct settings
   pytest

Documentation

Documentation is available on Read the Docs.

To locally create the documentaiton from the docstrings in the code using sphinx-autoapi, you can create the documentation execute the following command in the root directory of the repository:

   cd docs/
   sphinx-build -b html . _build

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 use black for code formatting. You can use pre-commit to ensure the code is formatted correctly before committing. You are also free to use other methods to format the code, but please ensure that the code is formatted correctly before committing.

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.

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.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

eflips_depot-4.12.0.tar.gz (209.8 kB view details)

Uploaded Source

Built Distribution

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

eflips_depot-4.12.0-py3-none-any.whl (224.7 kB view details)

Uploaded Python 3

File details

Details for the file eflips_depot-4.12.0.tar.gz.

File metadata

  • Download URL: eflips_depot-4.12.0.tar.gz
  • Upload date:
  • Size: 209.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for eflips_depot-4.12.0.tar.gz
Algorithm Hash digest
SHA256 70ec0f9d047619890b8421824ea1e5a06f72a78fca67f2cb9734f3d2c42e226c
MD5 35809e01b05e8c3e3afef171e6c14e2b
BLAKE2b-256 22480739c12b3112931b0137567084f360c9760a6405bb05d4e1e4584b23dac1

See more details on using hashes here.

Provenance

The following attestation bundles were made for eflips_depot-4.12.0.tar.gz:

Publisher: release.yml on mpm-tu-berlin/eflips-depot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eflips_depot-4.12.0-py3-none-any.whl.

File metadata

  • Download URL: eflips_depot-4.12.0-py3-none-any.whl
  • Upload date:
  • Size: 224.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for eflips_depot-4.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a0d09a9e4d96256878cecf8f7aebbaf3ac0b50ea69c0529f9fcff68538e6996
MD5 25703353f2d829d3a5385c0355c80de0
BLAKE2b-256 a36b9444eb1580e2c74f32518be37726d60c5746e5b2bf8ca9b40e915f01c06a

See more details on using hashes here.

Provenance

The following attestation bundles were made for eflips_depot-4.12.0-py3-none-any.whl:

Publisher: release.yml on mpm-tu-berlin/eflips-depot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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