Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ox_ui-0.3.10.tar.gz (32.8 kB view details)

Uploaded Source

File details

Details for the file ox_ui-0.3.10.tar.gz.

File metadata

  • Download URL: ox_ui-0.3.10.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for ox_ui-0.3.10.tar.gz
Algorithm Hash digest
SHA256 a20a1ac95e0c2866f73638331dc3594e6ebb9d69deece29e29513a43bcf44be5
MD5 8d20b33b245b990b081b8a4781279cf4
BLAKE2b-256 8b430e0d35e1b0b9d8b3bc151dc7e091412125f2b06473b1ac3dcd6c8087c073

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page