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
- Create a
.envrc
file, settingSECRET_KEY
as perpython_web_io/.envrc.example
. - Try running the
example.py
script usingpython_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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python_web_io-0.1.14-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb8a142802c72e69c2dcfd694aeca741ef5882e53276bd83b61b0d62d4fb6b38 |
|
MD5 | 6c9fa91da94f66061e83713cfe8aa346 |
|
BLAKE2b-256 | d11de1115d5c7d9fa41b06c6c2b840f808a52769c62b260dbaec65f26f442b52 |