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

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

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.

Source Distribution

intermake-1.0.0.78.tar.gz (89.3 kB view hashes)

Uploaded Source

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