Metadata-Version: 2.4
Name: traffic_scene_renderer
Version: 1.2
Author-email: Erwin de Gelder <erwindegelder@gmail.com>
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: utm
Provides-Extra: lint
Requires-Dist: mypy; extra == "lint"
Requires-Dist: ruff; extra == "lint"
Provides-Extra: test
Requires-Dist: pytest>=7.4.1; extra == "test"
Requires-Dist: pytest-cov>=6.0.0; extra == "test"
Requires-Dist: coverage[toml]>=7.0.0; extra == "test"
Provides-Extra: build
Provides-Extra: dev
Requires-Dist: tox; extra == "dev"
Requires-Dist: tox-pyenv-redux; extra == "dev"
Requires-Dist: traffic_scene_renderer[lint]; extra == "dev"
Requires-Dist: traffic_scene_renderer[test]; extra == "dev"
Requires-Dist: traffic_scene_renderer[build]; extra == "dev"
Dynamic: license-file

# Traffic scene renderer

![PyPI - Version](https://img.shields.io/pypi/v/traffic-scene-renderer)
![GitHub License](https://img.shields.io/github/license/ErwindeGelder/TrafficSceneRenderer)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/traffic-scene-renderer)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
[![codecov](https://codecov.io/gh/ErwindeGelder/TrafficSceneRenderer/graph/badge.svg)](https://codecov.io/gh/ErwindeGelder/TrafficSceneRenderer)
[![PyPI Downloads](https://static.pepy.tech/badge/traffic-scene-renderer/month)](https://pepy.tech/projects/traffic-scene-renderer)

This traffic scene renderer enables drawing top-view overviews of traffic constellations. 
This drawings can be printed on screen using `matplotlib` and exported to images or `tikz` files that can be rendered with LaTeX to create vector-based drawings of the traffic scenes.

## Installation

Installation can be done using `pip`. Simply run

    pip install traffic-scene-renderer

## Usage


## Development

Yes, you can help! Follow the steps below to contribute to this package:

1. Download the git repository, e.g., using
   `git clone git@github.com:ErwindeGelder/TrafficSceneRenderer.git`.
2. Create a virtual environment, e.g., using `python -m venv venv`.
3. Activate the virtual environment (e.g., on Windows, `venv\Scripts\activate`).
4. Install `uv` using `pip install uv` and then `tox-uv` using `uv pip install tox-uv`.
5. The main branch is protected, meaning that you cannot directly push changes to this branch. 
   Therefore, if you want to make changes, do so in a seperate branch. For example, you can create 
   a new branch using `git checkout -b feature/my_awesome_new_feature`.
6. Before pushing changes, ensure that the code adheres to the linting rules and that the tests are 
   successful. Run `tox`. This does a linting check and runs all test scripts. To manually perform 
   these steps, use the following commands:
   1. Run `tox -e lint`. You can do the linting commands manually using:
      1. (One time) `uv pip install -r requirements-lint.txt`
      2. `ruff format . --check` (remove the `--check` flag to let `ruff` do the formatting)
      3. `ruff check .`
      4. `mypy .`
   2. Run `tox -e py310`.
   3. Run `tox -e py311`.
   4. Run `tox -e py312`.
   5. Run `tox -e py313`.
   6. Run `tox -e py314`.
   7. Run `tox -e combine-test-reports`
7. Check if the tests covered everything using the coverage report in 
   `/reports/coverage_html/index.html`.

   NOTE: Currently, not all code is covered. Ideally, all code is covered, but for now, ensure that 
   all *new* code is covered by the testing.
8. Push changes to GitHub. If everything is OK and you want to merge your changes to the `main`
   branch, create a pull request.
   Ideally, there is at least one reviewer who reviews the pull request before the merge.

Note that currently only "Code owners" can merge pull requests onto the `main` branch. This is to
ensure that not everyone can break the main code (even unintentially). If you want to be a "Code
owner", let us know!
