HTTPS SSH

ezcurses

library to help with curses programming (Python 3.3+ compatible)

Installation

From the project root directory:

$ python setup.py install

Usage

The easiest method is to just decorate your function, and use the injected scr argument:

from time import sleep
from ezcurses import curse

@curse
def main(scr, message_string):
    w, h = scr.max_size()
    scr.write(message_string, pos=(w // 2, h // 2))
    scr.refresh()
    sleep(1)

if __name__ == '__main__':
    main('Hello world!')

You can also use the Cursed context manager. Here's an example with windows with backgrounds and borders and colors:

from ezcurses import Cursed

with Cursed() as scr:
    w, h = scr.max_size()
    win1 = scr.new_win(orig=(0, 0), size=(20, 20))
    win2 = scr.new_win(orig=(20, 0), size=(20, 20))
    win1.border()
    win2.border()
    win1.background('+', color='red')
    win2.background('.', color=('green', 'blue'))
    win1.refresh()
    win2.refresh()
    s = win1.getstr((1, 1), echo=True)
    win2.write(s, (1, 1), color=('red', 'black'))
    win2.refresh()
    win1.write('Press q to quit', (1, 1), color=('black', 'red'))
    while win1.getkey() != 'q':
        pass

Release Notes

0.2.12:
  • Add windows support with unicurses
0.2.11:
  • Readme example was bad
0.2.10:
  • Add multi_menu feature for selections spanning a screen
0.2.9:
  • Rename _msgs to Menu.items
0.2.8:
  • Much more intricate menu logic and new multi_menu.py example
0.2.7:
  • Fix menu origin in windows bug
0.2.6:
  • Make layout creatable with Screen.new_layout(border=True)
0.2.5:
  • Add Layout feature for bootstrap like rows and columns
0.2.4:
  • Add Menu functionality and an example in examples/menu_example.py
0.2.3:
  • make it much more tolerable for floats, if user does math stuff
0.2.2:
  • add curse decorator
  • rename main context manager to Cursed
0.2.1:
  • fixed a few bugs in window without size
0.2.0:
  • lots of clean up and testing, fix README
0.1.2:
  • Make positional optional and a keyword pos for the getstr function
  • Add documentation to API
0.1.1:
  • Make position optional for write and default (0, 0) like other funcs
0.1.0:
  • New features for curses windows
  • get input, string and characters
  • add strings with colors to the window
  • add borders
  • draw lines
  • change background
  • very functional as is
0.0.1:
  • Project created