Automated run-time generation of user interfaces from Python functions - command-line-args, CLI, python-interactive, python-scripted, graphical (Qt GUI)
Automated application frontend.
from intermake import Application app = Application( "Example" ) @app.command() def say_hello(n : int): """says hello n times""" print("hello " * n)
import example example.app.start()
example say_hello 2 ⇝ hello hello example help say_hello ⇝ says hello n times example gui ⇝ welcome to Example's graphical user interface *click say hello* *set n = 2* ⇝ *message box: hello hello* *click x* example pyi ⇝ welcome to Example's python interactive shell say_hello(2) ⇝ hello hello exit() example cli ⇝ welcome to Example's command line interactive say_hello 2 ⇝ hello hello exit python import example example.say_hello(2) ⇝ hello hello exit()
Full documentation can be found `here<http://software.rusilowicz.com/intermake>`_.
Intermake is a library that automatically provides multiple front-ends a Python application. Once an application is registered with Intermake, the following interfaces are provided:
- Command line arguments
- Command line interface (CLI)
- Python interactive shell
- Graphical user interface (GUI)
- Python library interface (DLL)
- Interactive Jupyter notebook
- *Custom* front-ends are also supported
Intermake aims to avoid repetition by being *reflective*, pulling data-types from PEP484 annotations and documentation from doc-strings. However, it also aims to be *architecturally simple*, avoiding guesswork, behind the scenes magic and duck-typing where at all possible.
- all frontends to share a common command set
- a global application state to persist between commands
- minimal setup (by automatically inferring datatypes and documentation)
- standard Python functions to be used (such as print)
- original information to be retained (i.e. functions exposed through Intermake remain unchanged)
- applications to derive from one another