Metadata-Version: 2.1
Name: ubo-app
Version: 0.3.5
Summary: Ubo main app, running on device initialization. A platform for running other apps.
License: Apache-2.0
Author: Sassan Haradji
Author-email: sassanh@gmail.com
Requires-Python: >=3.11,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: dev
Requires-Dist: RPi.GPIO (>=0.7.1,<0.8.0) ; platform_machine == "aarch64"
Requires-Dist: headless-kivy-pi (>=0.5.0,<0.6.0) ; extra != "dev"
Requires-Dist: headless-kivy-pi[dev] (>=0.5.0,<0.6.0) ; extra == "dev"
Requires-Dist: psutil (>=5.9.6,<6.0.0)
Requires-Dist: python-redux (>=0.7.2,<0.8.0)
Requires-Dist: ubo-gui (>=0.6.1,<0.7.0) ; extra != "dev"
Requires-Dist: ubo-gui[dev] (>=0.6.1,<0.7.0) ; extra == "dev"
Description-Content-Type: text/markdown

# Ubo Application

## Contribution

```sh
poetry install # You need `--with development` if you want to run it on a non-raspberry machine
poetry run app
```

## Conventions

1. Use `UBO_` prefix for all environment variables, additional prefixes may come after `UBO_` as needed.
1. Always use frozen dataclasses for action and state classes.
1. Each `action` should have only two attributes: `type` and `payload`. Payload class of an action should also be a frozen dataclass with the same name as the action class with "Payload" prefix.

