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

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for ox_ui-0.4.4.tar.gz
Algorithm Hash digest
SHA256 2eb9b9ed59acfc8b43816da2d6ad5aef59c89686f2a6d609bcbeff77c160a3ab
MD5 01c92950558f503c5a473865baea29fa
BLAKE2b-256 ddf747d8a320025fff30f1aa3b3680519c52a5ad7634af24019c5fd0f005816b

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