Graphical User Interface engine based upon Schema
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
Opentea is OpenSource (Cecill-B) available on PiPY.
>pip install opentea
then test your installation with
>opentea3 test-gui trivial
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.
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
A small CLI makes available small tools for developpers. Only two tools are present now.
Call the CLI using
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.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size OpenTEA-3.3.1-py3-none-any.whl (449.4 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size OpenTEA-3.3.1.tar.gz (327.1 kB)||File type Source||Python version None||Upload date||Hashes View|