This package implements a Gaussian Mixture Model to simulate charging session data of electric vehicles. In particular, the session duration [h] and the electricity demand [kWh] can be simulated.
Assume the following variables:
The model can generate draws from the following distributions:
The joint distribution:
The marginal distributions:
The conditional distributions:
The distribution
This project uses the following tools to automate tedious tasks in the development process:
poetry
: Reproducible dependency management and packagingtox
: Test and workflow automation against different Python environmentspytest
: Unittestsblack
: Code formattingisort
: Code imports formattingflake8
: Code lintingmypy
: Static type checking
There is no setup.py
/ setup.cfg
configuration file because this package is managed by Poetry's
build system. This follows PEP 517 where setuptools
is no longer the
default build system for Python. Instead it is possible to configure build systems via pyproject.toml
. Poetry provides
a consistent configuration solely based on the pyproject.toml
file. Read more details
here: https://setuptools.pypa.io/en/latest/build_meta.html.
Install poetry
on your machine if not yet installed. Install the project dependencies
using:
poetry install
You can invoke all workflows using the tox
CLI:
tox -e format # Format code
tox -e lint # Lint code
tox -e format,lint # Format first and then lint
tox -e python3.9 # Run pytest tests for Python 3.9 environment
# Run all workflows in logical order:
# format -> lint -> pytest against all Python environments
tox
It might be useful to find the Python interpreter path for integration with your IDE. Print the path using:
poetry env info --path
For usage from command-line directly run:
poetry run <command> # Will run any command within the Poetry Python virtual environment
poetry shell # Will start a new shell as child process (recommended)
source `poetry env info --path`/bin/activate # Activation in current shell