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.12.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

python_web_io-0.1.12-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file python_web_io-0.1.12.tar.gz.

File metadata

  • Download URL: python_web_io-0.1.12.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.2 Linux/5.15.90.1-microsoft-standard-WSL2

File hashes

Hashes for python_web_io-0.1.12.tar.gz
Algorithm Hash digest
SHA256 f6a4104364b89807375e36501625bb492a8d9ce9cf3031b6b7650915c514e432
MD5 dcba6773f767227cc0d12da77b8d719a
BLAKE2b-256 69dfcf8149a8cffead17a24483804d4823a09322d58844875ecf90d263081ec5

See more details on using hashes here.

File details

Details for the file python_web_io-0.1.12-py3-none-any.whl.

File metadata

  • Download URL: python_web_io-0.1.12-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.2 Linux/5.15.90.1-microsoft-standard-WSL2

File hashes

Hashes for python_web_io-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 293daab3ad9b0269ab28424cac982b90142bfda291aeed64b1e56b128f882204
MD5 953ebdb41b33949ab7a963b9ccfdd800
BLAKE2b-256 686225ce6605abb117837ded03ebcda13c815cbaa3d0356591a936d2bcfb860a

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