Automated run-time generation of user interfaces from Python functions - command-line-args, CLI, python-interactive, python-scripted, graphical (Qt GUI)
Project description
Automated application frontend.
example/__init__.py:
from intermake import Application app = Application( "Example" ) @app.command() def say_hello(n : int): """says hello n times""" print("hello " * n)
example/__main__.py:
import example example.app.start()
Usage:
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()
What is 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
Rationale
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.
Intermake permits:
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
Example usage
[Bio42](https://bitbucket.org/mjr129/bio42)
[Neocommand](https://bitbucket.org/mjr129/neocommand)
[Groot](https://bitbucket.org/mjr129/groot)
[Faketree](https://bitbucket.org/mjr129/faketree)
License
Intermake is licensed under the [GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html).
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.