diff options
author | Andrew Svetlov <andrew.svetlov@gmail.com> | 2012-12-29 23:08:07 +0200 |
---|---|---|
committer | Andrew Svetlov <andrew.svetlov@gmail.com> | 2012-12-29 23:08:07 +0200 |
commit | c2496d5eea0ac3e86427b6196c248558fbdf17fb (patch) | |
tree | 0d5c01d48c33429280b8103ca81c9333e77bb673 /Lib/curses | |
parent | 2ba4679b3844faca6b9b7b92fb48489c4cb4e67a (diff) | |
parent | d430d2b9bd259bf427d1760a2e0e55764d4cf858 (diff) | |
download | cpython-c2496d5eea0ac3e86427b6196c248558fbdf17fb.tar.gz |
Fix docstring in curses (#16782)
Diffstat (limited to 'Lib/curses')
-rw-r--r-- | Lib/curses/__init__.py | 46 | ||||
-rw-r--r-- | Lib/curses/wrapper.py | 50 |
2 files changed, 45 insertions, 51 deletions
diff --git a/Lib/curses/__init__.py b/Lib/curses/__init__.py index 8f09b2459f..47378741ac 100644 --- a/Lib/curses/__init__.py +++ b/Lib/curses/__init__.py @@ -11,7 +11,6 @@ the package, and perhaps a particular module inside it. """ from _curses import * -from curses.wrapper import wrapper import os as _os import sys as _sys @@ -55,3 +54,48 @@ try: has_key except NameError: from .has_key import has_key + +# Wrapper for the entire curses-based application. Runs a 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. + +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 = initscr() + + # Turn off echoing of keys, and enter cbreak mode, + # where no buffering is performed on keyboard input + noecho() + 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: + start_color() + except: + pass + + return func(stdscr, *args, **kwds) + finally: + # Set everything back to normal + if 'stdscr' in locals(): + stdscr.keypad(0) + echo() + nocbreak() + endwin() 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() |