Simple user interface tools for python
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.
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.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.