Skip to main content

Graphical User Interface engine based upon Schema

Project description

OpenTEA

logo

OpenTEA is a graphical user interface engine. It convert a set of degrees of freedom, expressed in SCHEMA, into graphical forms.

example

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 : Trivial GUI

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

OpenTEA-3.3.1.tar.gz (327.1 kB view details)

Uploaded Source

Built Distribution

OpenTEA-3.3.1-py3-none-any.whl (449.4 kB view details)

Uploaded Python 3

File details

Details for the file OpenTEA-3.3.1.tar.gz.

File metadata

  • Download URL: OpenTEA-3.3.1.tar.gz
  • Upload date:
  • Size: 327.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

File hashes

Hashes for OpenTEA-3.3.1.tar.gz
Algorithm Hash digest
SHA256 aaa2bd5b3e47608f4b670e54b609a0791f4e8933c2ed79c69002e102131ca6e0
MD5 478b7913ad54d1df9d2c39f152309d0d
BLAKE2b-256 d6b7bc45a4a7fbf2782035d54aae0170c42e8debfa3cd8b08563e7a3720f3ebe

See more details on using hashes here.

File details

Details for the file OpenTEA-3.3.1-py3-none-any.whl.

File metadata

  • Download URL: OpenTEA-3.3.1-py3-none-any.whl
  • Upload date:
  • Size: 449.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

File hashes

Hashes for OpenTEA-3.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 69be7c7b1dcfadc74196f7d163ee2464d07931790c8dd1c4bcc315b57541d3ff
MD5 1feef16cf51cff8ab2550b58f1c266fd
BLAKE2b-256 0675ea53c03cd6315ec60844141bcbded7a00c644cc4d8a0eb4e0eece7135be7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page