Metadata-Version: 2.1
Name: brest
Version: 1.2.0
Summary: Bender Robotics Embedded Systems Toolkit
Author-email: Bender Robotics <muller@benderrobotics.com>
License: MIT
Project-URL: Homepage, https://www.benderrobotics.com
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: colorama==0.4.6
Requires-Dist: pyserial==3.5
Requires-Dist: PyYAML==6.0.1
Requires-Dist: Cython==0.29.36
Requires-Dist: hidapi==0.14.0
Requires-Dist: crcmod==1.7
Requires-Dist: packaging==23.2
Requires-Dist: attrs>=21.3.0
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Requires-Dist: m2r2; extra == "docs"
Provides-Extra: cameras-win
Requires-Dist: pywin32; extra == "cameras-win"
Requires-Dist: opencv-python; extra == "cameras-win"
Requires-Dist: imageio; extra == "cameras-win"
Requires-Dist: imageio-ffmpeg; extra == "cameras-win"
Requires-Dist: display_sniffer>=1.2.0; extra == "cameras-win"
Provides-Extra: cameras-unix
Requires-Dist: opencv-python; extra == "cameras-unix"
Requires-Dist: imageio; extra == "cameras-unix"
Requires-Dist: imageio-ffmpeg; extra == "cameras-unix"
Requires-Dist: display_sniffer>=1.2.0; extra == "cameras-unix"
Provides-Extra: jlink-win
Requires-Dist: pywin32; extra == "jlink-win"

<div align="center">
<img alt="pdoc" src="./docs/_static/logo.svg" width="320" />
</div>
</br>

# Bender Robotics Embedded Systems Toolkit
Goal of the Brest project is to provide a python based resource manager and common libraries for embedded system testing.

If you are looking for the **documentation**, please refer [here](https://docs.benderrobotics.com/brest/) or [build offline](docs/README.md#building-the-offline-documentation).


## Install Brest
    $ pip install brest


## Installing Brest from the source
    $ pip install https+git://github.com/BenderRobotics/brest.git

## Minimal Example
See [minimal example files](examples/minimal_example/example.py)
```yaml
# project_config.yaml - define what project needs
project_name:
    psu:
        class_name: 'Supplies'
        disable_on_destruct: False
        default:
            voltage: 12
            current: 0.5
```
```yaml
# user_config.yaml - alter specific instance at end-setup
project_name:
    psu:
        class_name: 'Supplies.ManSup'
```
```py
# example.py
# Simple example showing operation with power supply.
import brest

resources = brest.Resources("project_name", "user_config.yaml", "project_config.yaml", needed=["psu"])
psu = resources["psu"]

print(psu.voltage)
psu.voltage = psu.voltage * 2
psu.enable()
```
See other [examples](examples/)

## Branching strategy
Because Brest is a relatively small project, it uses a very basic branching strategy.
All feature branches keep their history and merge into the 'devel' branch as merge-commits.
If there has been a commit in the 'devel' branch while the feature branch was under development,
the procedure is to merge 'devel' into the feature branch (as a merge-commit) to update changes and when the feature
branch development is over, it can be merged with 'devel'.

