Graphical User Interface engine based upon Schema
Project description
OpenTEA
OpenTEA is a graphical user interface engine. It convert a set of degrees of freedom, expressed in SCHEMA, into graphical forms.
The documentation is currently available in ReadtheDocs
Installation
Opentea is OpenSource (Cecill-B) available on PiPY.
>pip install opentea
then test your installation with
>opentea3 test-gui trivial
Basic Usage
OpenTEA is a GUI engine, based on the json-SCHEMA description. For example, assume a nested information conforming to the following SCHEMA :
---
title: "Trivial form..."
type: object
properties:
first_tab:
type: object
title: Only tab.
process: custom_callback.py
properties:
first_block:
type: object
title: Custom Block
properties:
number_1:
title: "Number 1"
type: number
default: 32.
operand:
title: "Operation"
type: string
default: "+"
enum: ["+", "-", "*", "/"]
number_2:
title: "Number 2"
type: number
default: 10.
result:
title: "result"
state: disabled
type: string
default: "-"
The openTEA GUI will show as :
In this form, a callback can be added to each tab.
The corresponding custom_callback.py
script is :
"""Module for the first tab."""
from opentea.process_utils import process_tab
def custom_fun(nob):
"""Update the result."""
operation = nob["first_tab"]["first_block"]["operand"]
nb1 = nob["first_tab"]["first_block"]["number_1"]
nb2 = nob["first_tab"]["first_block"]["number_2"]
res = None
if operation == "+":
res = nb1 + nb2
elif operation == "-":
res = nb1 - nb2
elif operation == "*":
res = nb1 * nb2
elif operation == "/":
res = nb1 / nb2
else:
res = None
nob["first_tab"]["first_block"]["result"] = res
return nob
if __name__ == "__main__":
process_tab(custom_fun)
Note that OpenTEA meomory is a classical nested object named here nob
. The memory I/O can be done the usual Python way : nob["first_tab"]["first_block"]["result"] = res
.
We however encourage the use our nested object helper , available on PyPI, which gives a faster -an still pythonic- access to the nested object. The name of the package is, unsurprisigly nob.
Finally, the data recorded by the GUI is available as a YAML file, conforming to the SCHEMA Validation:
first_tab:
first_block:
number_1: 32.0
number_2: 10.0
operand: +
result: 42.0
Command line
A small CLI makes available small tools for developpers. Only two tools are present now.
Call the CLI using opentea3
:
Usage: opentea3 [OPTIONS] COMMAND [ARGS]...
--------------- O P E N T E A III --------------------
You are now using the Command line interface of Opentea 3, a Python3
Tkinter GUI engine based on SCHEMA specifications, created at CERFACS
(https://cerfacs.fr).
This is a python package currently installed in your python environement.
See the full documentation at : https://opentea.readthedocs.io/en/latest/.
Options:
--help Show this message and exit.
Commands:
test-gui Examples of OpenTEA GUIs
test-schema Test if a yaml SCHEMA_FILE is valid for an opentea GUI.
Acknowledgments
This work was funded, among many sources, by the CoE Excellerat and the National project ICARUS. Many thanks to the people from SAFRAN group for their feedback.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file OpenTEA-3.4.4.tar.gz
.
File metadata
- Download URL: OpenTEA-3.4.4.tar.gz
- Upload date:
- Size: 270.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 372e20e73f1c0699955ea79b9252c2697b0c6019acd36332d90b2d88da40c03d |
|
MD5 | b7c45e990525a960cb81415655283b9f |
|
BLAKE2b-256 | 36c0c4a9b9ecf501c58190f5a85432d065202919076303dbb2a8bb2ddaab535d |
File details
Details for the file OpenTEA-3.4.4-py3-none-any.whl
.
File metadata
- Download URL: OpenTEA-3.4.4-py3-none-any.whl
- Upload date:
- Size: 260.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fc36cacc71f46922753b5d1ae16e07ee6011db9c1f749d1a6e09a90eda9a650 |
|
MD5 | 1708c61d4f6c5e9cb427ddcd410384c2 |
|
BLAKE2b-256 | 1f3ea906248888b6da3fd4f11b590c0bf7e077f4534ff02fb81ab502518b3893 |