Metadata-Version: 2.5
Name: brinkhaustools
Version: 0.23.1
Summary: Common tooling for Brinkhaus industrial applications
Author: Brinkhaus GmbH
License-Expression: MIT
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: jsonschema>=4.0; extra == 'dev'
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest-timeout>=2.1; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5; extra == 'docs'
Provides-Extra: rest
Requires-Dist: bcrypt>=3.2; extra == 'rest'
Requires-Dist: flask-cors>=3.0; extra == 'rest'
Requires-Dist: flask>=2.0; extra == 'rest'
Requires-Dist: waitress>=2.0; extra == 'rest'
Description-Content-Type: text/markdown

# brinkhaustools (Python)

Common infrastructure for Brinkhaus industrial applications: app wiring, graceful
shutdown, JSON settings, self-diagnosis, status collection, heartbeat watchdog,
version information and HTTPS reporting to
[BrinkhausFleetManager](https://fleetmanager-website.brinkhaus-gmbh.de).
The optional `[rest]` extra adds a REST server (Flask + Waitress).

This is the Python variant of a multi-language toolkit (Python, Rust, JavaScript,
C++) that shares one version number and one fleet wire protocol. Overview of all
variants: [gitlab.com/brinkhaus/brinkhaustools](https://gitlab.com/brinkhaus/brinkhaustools).

## Installation

```bash
pip install brinkhaustools
# With REST server support:
pip install brinkhaustools[rest]
```

Requires Python >= 3.10. The core has no external dependencies.

## Quick example

```python
from brinkhaustools.common import App

app = App(
    name="my-service",
    settings_path="data/settings/settings_main.json",
    fleet_config_path="fleetManagementData/config.json",
)
app.start()
app.wait()
```

## Documentation

**[brinkhaus.gitlab.io/brinkhaustools](https://brinkhaus.gitlab.io/brinkhaustools)**

## License

MIT
