Skip to main content

Generate a webpage as a GUI for a Python script, and serve from anywhere.

Project description

Python Web I/O

Generate a webpage as a GUI for a Python script, and serve from anywhere.

Usage

$ export SECRET_KEY="someSecureSecretKey"
$ python_web_io .\example.py
Argument
"example.py" Required Specify the file path for the app Python script / entrypoint.
--debug Optional Run the Flask server with debug output enabled.

Config

Magic

input() and print() both support the magic keyword argument. For input(), magic sets the type of the input html element. For print(), magic sets the element type.

Magic Default
input() button, checkbox, color, date, datetime-local, email, file, image, month, number, password, radio, range, search, tel, text, time, url, week text
print() style, img, address, footer, aside, header, h1..6, blockquote, p, b, abbr, code, em, i, mark, q, s, small, span, strong, p

Arguments

input() and print() both support the magic_args keyword argument. magic_args accepts a dictionary, which can be used to set attributes for the html element.

Cache

The user script is re-evaluated after each user interaction, to progress the script to the next input(), etc. This means expensive functions may be called more than once per session. To reduce latency, a cache decorator is made available through the python_web_io module. The @cache_to_file() decorator accepts a single argument: file_path, which indicates where the cache (a .pkl file) should be stored.

import python_web_io as io

@io.cache_to_file('cache.pickle')
def expensive_function(arg):
    # Calculate the result here
    return result

Cache is persistent across sessions, allowing multiple users to access it. Session specific data can be stored using session from flask.

from flask import session
session['some_var] = 'some_val'

Reserved keys for the session namespace are: io and counter.

License

MIT

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

python_web_io-0.1.14.tar.gz (11.5 kB view hashes)

Uploaded Source

Built Distribution

python_web_io-0.1.14-py3-none-any.whl (12.3 kB view hashes)

Uploaded Python 3

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