Skip to main content

Library for TUI programs on basis of curses

Project description

cursedspace

A python library/framework for TUI application on the basis of the curses package.

Example use

Here’s a very simple example of how to use the cursedspace package:

#!/usr/bin/env python3

import curses
from cursedspace import Application, Key, Panel, colors


class DemoApplication(Application):
    def __init__(self):
        super().__init__()
        self.panel = None

    def main(self):
        self.panel = Panel(self)
        self.resize()

        self.screen.addstr(0, 0, "Just some color example", colors.attr(colors.RED))

        while True:
            curses.doupdate()

            key = self.read_key()

            if key == Key.RESIZE:
                self.resize()
            elif key in [Key.ESCAPE, "q", "^C"]:
                break

    def resize(self):
        height, width = self.size()
        self.panel.resize(height, width)
        self.panel.paint()


# run the application
DemoApplication().run()

For more examples see the examples folder.

Components

  • Application is the main application class and provides boilerplate initialisations
  • Panel is a basic panel with support for borders and key handling in the context of an Application
  • InputLine is a panel with very basic editing support.
  • Key provides a convenient wrapper around curses’ key system. It can be used standalone even when you don’t want to use Application or Panel.
  • ShellContext is a convenient wrapper to execute external processes (e.g. through subprocess) and returning to the curses context afterwards again.
  • colors is a generic way to define colors in pairs (foreground and background) and have them automatically registerd for use in curses. You only have to call colors.attr(ColorPair(...)) to use a new color combination (limited by the terminal, of course).

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

cursedspace-1.5.2.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

cursedspace-1.5.2-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file cursedspace-1.5.2.tar.gz.

File metadata

  • Download URL: cursedspace-1.5.2.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.3 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5

File hashes

Hashes for cursedspace-1.5.2.tar.gz
Algorithm Hash digest
SHA256 21043f80498db9a79d5ee1bb52229fd28ad8871a360601c8f9120ff9dadc2aec
MD5 a9e84bd909f0ca665797456ef34c6bd7
BLAKE2b-256 cd3b72657c9e867dd5034814dcea21b1128a70a1b8427e48c7de8b3b9ea3dd93

See more details on using hashes here.

File details

Details for the file cursedspace-1.5.2-py3-none-any.whl.

File metadata

  • Download URL: cursedspace-1.5.2-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.3 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5

File hashes

Hashes for cursedspace-1.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 29c77d1aa51ca95ff3f55cce33c21da15f64f31781bd3b94f17a27621bdea6a7
MD5 84d44c7f5e6f9ce4248c325f7cc2466d
BLAKE2b-256 b118a60d7d348fdf9e4d5d5be31630b339d7e0b11b13705062c12c6320aab282

See more details on using hashes here.

Supported by

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