Simple user interface tools for python
Project description
Introduction
The ox_ui package provides tools for writing user interfaces.
For example, ox_ui lets you take a command defined using the click library and convert it to something you can run in a Flask web server as discussed in the Click to WTForms section.
Click to WTForms
The ox_ui package can convert a click command into a flask route using the WTForms library. This can be convenient both so that you have a command line interface (CLI) for your functions in addition to a web interface and also because sometimes it is quicker and easier to define the CLI interface and auto-generate the web interface.
Imagine you define a function called hello_cmd via something like:
@click.command()
@click.option('--count', default=1, type=int, help='how many times to say it')
@click.option('--text', default='hi', type=str, help='what to say')
def hello_cmd(count, text):
'say hello'
result = []
for i in range(count):
result.append(text)
return '\n'.join(result)
You can import c2f from ox_ui.core and use it to convert your hello_cmd into a flask route via something like:
from flask import Flask
from ox_ui.core import c2f
APP = Flask(__name__)
@APP.route('/hello', methods=('GET', 'POST'))
def hello():
fcmd = c2f.ClickToWTF(hello_cmd)
result = fcmd.handle_request()
return result
Once you start your flask web server, you will then have a route that introspects hello_cmd, creates a web form using the WTForms library and handles the command.
See examples in the tests directory for more details.
Other Utilities
A few additional utilites are provided in the ox_ui/core/decorators.py module including a watched decorator to log the start/end of functions, a setup_flask_watch function which applies the watched decorator to allow your routes using the before_request and teardown_request hooks in flask, and a LockFile context decorator for easily adding lock files to any function or context.
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
File details
Details for the file ox_ui-0.3.6.tar.gz
.
File metadata
- Download URL: ox_ui-0.3.6.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a36742a151a9d85be84a382dc2bb761bfe9f68fabd811e6fe39126439bd3d9de |
|
MD5 | f7a16b51556c62e5a8dbd8199a073368 |
|
BLAKE2b-256 | 5c3c61c9330ac7301b414103ab501e179246d0e4e377b341f6d2eca99b733f2b |