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

Uploaded Source

File details

Details for the file intermake-1.0.0.78.tar.gz.

File metadata

  • Download URL: intermake-1.0.0.78.tar.gz
  • Upload date:
  • Size: 89.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for intermake-1.0.0.78.tar.gz
Algorithm Hash digest
SHA256 831691c3eb213b1b6e44c63b95252f8ccf358cbfe761c26c0dab6825dfdd6c7b
MD5 33d92e43f6bac0dd0770068ba728926d
BLAKE2b-256 fbe478375ba254b84a26f7beb09db5ed913644b0d93c0ee36bdbb11b5493c0ce

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