Skip to main content

Object-Oriented Terminal User Interface an object oriented way of displaying data in the terminal.

Project description

OOTUI

Object-Oriented Terminal User Interface


Alpha state

the package does not yet live up to some details given in the readme


OOTUI is a package for creating easy to read data displays in your terminal. (or games if you're crazy like that)

you create displays by creating objects that hold the data that you want to display (and updating these objects whenever necessary). You decorate or divide this data by creating more objects (like BorderRects).

Each object has a position and a size, so any object can appear anywhere on the terminal

Parent-Child structure

Any drawable(a OOTUI object that 'draws' on the terminal) can have a parent and any number of children.

When a drawable 'updates'(redraw its portion of the terminal) all of its will update as well before its portion is redrawn.

a child can overwrite (part of) its parent, meaning that, for example: you can layer multiple line-graphs over each other.

The position of a drawable is relative to its parent (and optionally its size as well), this means that groups of objects automatically stick together

Use Window to take over the entire terminal... or don't.

Any drawable can output itself and the sum of its children at any time with a normal print statement. This is for if you just want to show a graph or two every once in a while.

If you use the window object, you overwrite the whole terminal, and can position your drawables anywhere on this terminal. You can update this window as often as you'd like to get real-time data from multiple drawables at once.

A window knows the size of your terminal, so your drawables can reposition and rescale itself, based on this size (optionally in real time)

You can use multiple windows to switch between structures of drawables, fast. (you can think of these as different screens)

efficient

Even very complex structures of drawables (with many children (both in depth (grandchildren) and in width (siblings))) can usually be updated and drawn within a tenth of a second.

If that isn't enough, you don't need to update every drawable every 'frame', you can just update the drawables that you want to update, and they will cascade their part of the terminal back to the root object

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

OOTUI-0.0.1.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

OOTUI-0.0.1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file OOTUI-0.0.1.tar.gz.

File metadata

  • Download URL: OOTUI-0.0.1.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for OOTUI-0.0.1.tar.gz
Algorithm Hash digest
SHA256 0120390b63afefb4875874bdf4ded6c5c86c836e70590461831f22fd79c73fb5
MD5 0e7de2cd57c54c19fcd348d95dd37c5e
BLAKE2b-256 fda4f04416b22b4031afb9c649c18da52beb08eb4aecc97a6ce0cbf95563d683

See more details on using hashes here.

File details

Details for the file OOTUI-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: OOTUI-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for OOTUI-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 019d7041a8877df01ddb8f27047a90859dfb22dd0436158618bed600858e2c1a
MD5 04c582a5c41fd98c1fe60480ac3dc42d
BLAKE2b-256 2d2efd57f43ad03b92574fe854289cce65db5fb2091fe65c5776b82318cba527

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