Metadata-Version: 2.4
Name: ahlbatross
Version: 0.2.1
Summary: Tool for comparing and visualizing changes between AHB documents across different format version releases.
Project-URL: Changelog, https://github.com/Hochfrequenz/ahlbatross/releases
Project-URL: Homepage, https://github.com/Hochfrequenz/ahlbatross
Author-email: Hochfrequenz Unternehmensberatung GmbH <info@hochfrequenz.de>
License: MIT
License-File: LICENSE
Keywords: ahb
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
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.11
Requires-Dist: efoli>=1.4.0
Requires-Dist: kohlrahbi>=1.11.2
Requires-Dist: pydantic>=2.10.6
Requires-Dist: typer>=0.15.4
Requires-Dist: xlsxwriter>=3.2.0
Provides-Extra: coverage
Requires-Dist: coverage==7.12.0; extra == 'coverage'
Provides-Extra: dev
Requires-Dist: pip-tools; extra == 'dev'
Provides-Extra: formatting
Requires-Dist: black==25.11.0; extra == 'formatting'
Requires-Dist: isort==7.0.0; extra == 'formatting'
Provides-Extra: linting
Requires-Dist: pylint==4.0.2; extra == 'linting'
Provides-Extra: packaging
Requires-Dist: build==1.3.0; extra == 'packaging'
Requires-Dist: twine==6.2.0; extra == 'packaging'
Provides-Extra: spell-check
Requires-Dist: codespell==2.4.1; extra == 'spell-check'
Provides-Extra: tests
Requires-Dist: pytest==9.0.1; extra == 'tests'
Provides-Extra: type-check
Requires-Dist: mypy==1.19.0; extra == 'type-check'
Description-Content-Type: text/markdown

<img src="https://raw.githubusercontent.com/Hochfrequenz/ahlbatross/main/ahlbatross.png" alt="ahlbatross.png">

# AHlBatross

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?labelColor=30363D&color=fccccc)](LICENSE)
![Pypi status badge](https://img.shields.io/pypi/v/ahlbatross?labelColor=30363D&color=fccccc)
![Python Versions (officially) supported](https://img.shields.io/pypi/pyversions/ahlbatross.svg?labelColor=30363D&color=fccccc)

![Unittests status badge](https://github.com/Hochfrequenz/ahlbatross/workflows/Unittests/badge.svg)
![Coverage status badge](https://github.com/Hochfrequenz/ahlbatross/workflows/Coverage/badge.svg)
![Pylint status badge](https://github.com/Hochfrequenz/ahlbatross/workflows/Linting/badge.svg)
![Formatting status badge](https://github.com/Hochfrequenz/ahlbatross/workflows/Formatting/badge.svg)

Tool for automatic AHB comparison of consecutive `Formatversionen`. Highlighted changes between `PruefIDs` of various 
`Nachrichtenformate` are provided by already formatted `.xlsx` files or raw `.csv` files located inside the 
[machine-readable-anwendungshandbücher](https://github.com/Hochfrequenz/machine-readable_anwendungshandbuecher/tree/main/diff) 
repository.

<img src="https://raw.githubusercontent.com/Hochfrequenz/ahlbatross/main/output.png" alt="output.png">

## Installation
Install this package from [PyPI](https://pypi.org/project/ahlbatross/) using

```shell
pip install ahlbatross
```

## Development Setup

To set up the python development environment, install the required dependencies via

```shell
$ tox -e dev
```

For local testing and code quality maintenance, run 

```shell
tox
```

Check out our [Python Template Repository](https://github.com/Hochfrequenz/python_template_repository#how-to-use-this-repository-on-your-machine) 
for detailed descriptions and step-by-step instructions.

### Release Workflow / CD
To publish a new version of this library on PyPI [create a new release](https://github.com/Hochfrequenz/ahlbatross/releases/new).
Use semantic versioning with leading `v`, e.g. `v1.2.3` and please include at least the autogenerated release notes.

## Contribute

Feel free to contribute to this project by opening a pull request against the main branch.
