Metadata-Version: 2.1
Name: ubo-app
Version: 0.3.2
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.9,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: dev
Requires-Dist: headless-kivy-pi (>=0.4.2,<0.5.0) ; extra != "dev"
Requires-Dist: headless-kivy-pi[dev] (>=0.4.2,<0.5.0) ; extra == "dev"
Requires-Dist: psutil (>=5.9.6,<6.0.0)
Requires-Dist: python-redux (>=0.3.4,<0.4.0)
Requires-Dist: ubo-gui (>=0.4.5,<0.5.0) ; extra != "dev"
Requires-Dist: ubo-gui[dev] (>=0.4.5,<0.5.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.

