Skip to main content

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()

Attention!

Full documentation can be found `here<http://software.rusilowicz.com/intermake>`_.

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

License

Intermake is licensed under the [GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html).

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
intermake-1.0.0.78.tar.gz (89.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page