1 | """curses
|
---|
2 |
|
---|
3 | The main package for curses support for Python. Normally used by importing
|
---|
4 | the package, and perhaps a particular module inside it.
|
---|
5 |
|
---|
6 | import curses
|
---|
7 | from curses import textpad
|
---|
8 | curses.initscr()
|
---|
9 | ...
|
---|
10 |
|
---|
11 | """
|
---|
12 |
|
---|
13 | __revision__ = "$Id$"
|
---|
14 |
|
---|
15 | from _curses import *
|
---|
16 | from curses.wrapper import wrapper
|
---|
17 | import os as _os
|
---|
18 | import sys as _sys
|
---|
19 |
|
---|
20 | # Some constants, most notably the ACS_* ones, are only added to the C
|
---|
21 | # _curses module's dictionary after initscr() is called. (Some
|
---|
22 | # versions of SGI's curses don't define values for those constants
|
---|
23 | # until initscr() has been called.) This wrapper function calls the
|
---|
24 | # underlying C initscr(), and then copies the constants from the
|
---|
25 | # _curses module to the curses package's dictionary. Don't do 'from
|
---|
26 | # curses import *' if you'll be needing the ACS_* constants.
|
---|
27 |
|
---|
28 | def initscr():
|
---|
29 | import _curses, curses
|
---|
30 | # we call setupterm() here because it raises an error
|
---|
31 | # instead of calling exit() in error cases.
|
---|
32 | setupterm(term=_os.environ.get("TERM", "unknown"),
|
---|
33 | fd=_sys.__stdout__.fileno())
|
---|
34 | stdscr = _curses.initscr()
|
---|
35 | for key, value in _curses.__dict__.items():
|
---|
36 | if key[0:4] == 'ACS_' or key in ('LINES', 'COLS'):
|
---|
37 | setattr(curses, key, value)
|
---|
38 |
|
---|
39 | return stdscr
|
---|
40 |
|
---|
41 | # This is a similar wrapper for start_color(), which adds the COLORS and
|
---|
42 | # COLOR_PAIRS variables which are only available after start_color() is
|
---|
43 | # called.
|
---|
44 |
|
---|
45 | def start_color():
|
---|
46 | import _curses, curses
|
---|
47 | retval = _curses.start_color()
|
---|
48 | if hasattr(_curses, 'COLORS'):
|
---|
49 | curses.COLORS = _curses.COLORS
|
---|
50 | if hasattr(_curses, 'COLOR_PAIRS'):
|
---|
51 | curses.COLOR_PAIRS = _curses.COLOR_PAIRS
|
---|
52 | return retval
|
---|
53 |
|
---|
54 | # Import Python has_key() implementation if _curses doesn't contain has_key()
|
---|
55 |
|
---|
56 | try:
|
---|
57 | has_key
|
---|
58 | except NameError:
|
---|
59 | from has_key import has_key
|
---|