summaryrefslogtreecommitdiff
path: root/Lib/curses/wrapper.py
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2011-06-18 20:21:09 -0400
committerR David Murray <rdmurray@bitdance.com>2011-06-18 20:21:09 -0400
commitafc9a5eaa144eb246e22a16a6539821859fc08f5 (patch)
treecaebfc5b3710eadb3e67da29b9e9a687c9b814a6 /Lib/curses/wrapper.py
parent50ae84e727b99c8000d2f6d03559dda90985a33d (diff)
downloadcpython-git-afc9a5eaa144eb246e22a16a6539821859fc08f5.tar.gz
#6771: Move wrapper function into __init__ and eliminate wrapper module
Andrew agreed in the issue that eliminating the module file made sense. Wrapper has only been exposed as a function, and so there is no (easy) way to access the wrapper module, which in any case only had the one function in it. Since __init__ already contains a couple wrapper functions, it seems to make sense to just move wrapper there instead of importing it from a single function module.
Diffstat (limited to 'Lib/curses/wrapper.py')
-rw-r--r--Lib/curses/wrapper.py50
1 files changed, 0 insertions, 50 deletions
diff --git a/Lib/curses/wrapper.py b/Lib/curses/wrapper.py
deleted file mode 100644
index 5183ce741f..0000000000
--- a/Lib/curses/wrapper.py
+++ /dev/null
@@ -1,50 +0,0 @@
-"""curses.wrapper
-
-Contains one function, wrapper(), which runs another function which
-should be the rest of your curses-based application. If the
-application raises an exception, wrapper() will restore the terminal
-to a sane state so you can read the resulting traceback.
-
-"""
-
-import curses
-
-def wrapper(func, *args, **kwds):
- """Wrapper function that initializes curses and calls another function,
- restoring normal keyboard/screen behavior on error.
- The callable object 'func' is then passed the main window 'stdscr'
- as its first argument, followed by any other arguments passed to
- wrapper().
- """
-
- try:
- # Initialize curses
- stdscr = curses.initscr()
-
- # Turn off echoing of keys, and enter cbreak mode,
- # where no buffering is performed on keyboard input
- curses.noecho()
- curses.cbreak()
-
- # In keypad mode, escape sequences for special keys
- # (like the cursor keys) will be interpreted and
- # a special value like curses.KEY_LEFT will be returned
- stdscr.keypad(1)
-
- # Start color, too. Harmless if the terminal doesn't have
- # color; user can test with has_color() later on. The try/catch
- # works around a minor bit of over-conscientiousness in the curses
- # module -- the error return from C start_color() is ignorable.
- try:
- curses.start_color()
- except:
- pass
-
- return func(stdscr, *args, **kwds)
- finally:
- # Set everything back to normal
- if 'stdscr' in locals():
- stdscr.keypad(0)
- curses.echo()
- curses.nocbreak()
- curses.endwin()