X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=lib%2Fpython%2Finit.py;h=8720caa9bf1120075310a8a54296704b47e7332b;hb=HEAD;hp=ff42ce40c845dbcbd0d94c8dbf4cf96763aeedd5;hpb=2b945221ad1331603f83a5db1ba44bf0f86a611f;p=dotfiles.git diff --git a/lib/python/init.py b/lib/python/init.py index ff42ce4..1d365c6 100644 --- a/lib/python/init.py +++ b/lib/python/init.py @@ -36,16 +36,21 @@ def init(): or os.path.expanduser('~/.inputrc') readline.read_init_file(initfile) - #if 'libedit' in readline.__doc__: - # readline.parse_and_bind("bind ^I rl_complete") - #else: - # readline.parse_and_bind("tab: complete") - - histfile = os.path.expanduser('~/.python_history') - try: - readline.read_history_file(histfile) - except IOError: - pass # No such file + # if 'libedit' in readline.__doc__: + # readline.parse_and_bind("bind ^I rl_complete") + # else: + # readline.parse_and_bind("tab: complete") + + histfiles = ['~/.python_history'] + # if 'VIRTUAL_ENV' in os.environ: + # histfiles.append('$VIRTUAL_ENV/.python_history') + for histfile in histfiles: + try: + histfile = os.path.expandvars(histfile) + histfile = os.path.expanduser(histfile) + readline.read_history_file(histfile) + except IOError: + pass # No such file def savehist(): histsize = os.environ.get('HISTSIZE') @@ -56,7 +61,13 @@ def init(): pass else: readline.set_history_length(histsize) - readline.write_history_file(histfile) + histfile = histfiles[-1] + histfile = os.path.expandvars(histfile) + histfile = os.path.expanduser(histfile) + try: + readline.write_history_file(histfile) + except IOError: + pass import atexit atexit.register(savehist) @@ -69,18 +80,24 @@ def init(): # terminal term = os.environ.get('TERM', '') - if 'linux' in term: - background = 'dark' + for _term in ['cygwin', 'linux', 'putty']: + if _term in term: + background = 'dark' + break else: background = os.environ.get('BACKGROUND', 'light').lower() # From Randall Hopper: # https://mail.python.org/pipermail/python-list/2001-March/112696.html - for _term in ['linux', 'rxvt', 'screen', 'term', 'vt100']: - if _term not in term: - continue + _term_found = False + for _term in ['cygwin', 'linux', 'putty', 'rxvt', + 'screen', 'term', 'vt100']: + if _term in term: + _term_found = True + break + if _term_found: if background == 'dark': ps1_color = '3' # yellow stdout_color = '7' # bold white @@ -115,24 +132,19 @@ def init(): def myinput(prompt=None): save_stdout = sys.stdout sys.stdout = sys.__stdout__ - try: - result = builtin_input(prompt) - except EOFError: - result = None + result = builtin_input(prompt) sys.stdout = save_stdout return result try: builtins.raw_input - except AttributeError: # PY3 + except AttributeError: # PY3 builtin_input = builtins.input builtins.input = myinput else: builtin_input = builtins.raw_input builtins.raw_input = myinput - break - try: import locale except ImportError: @@ -163,10 +175,11 @@ def init(): def write(self, value): self.stdout.write(value) - def pprint(self, value): - pprint(value, - stream=ColoredFile(self.stdout, - '\033[1;3%sm' % stdout_color)) + if _term_found: + def pprint(self, value): + pprint(value, + stream=ColoredFile(self.stdout, + '\033[1;3%sm' % stdout_color)) def close(self): self.stdout.close() @@ -194,8 +207,9 @@ def init(): pager = Pager() try: pager.pprint(value) - except: - pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red + except: # noqa + if _term_found: + pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red print_exc(file=pager) pager.close() @@ -204,20 +218,21 @@ def init(): def excepthook(etype, evalue, etraceback): lines = format_exception(etype, evalue, etraceback) pager = Pager() - pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red + if _term_found: + pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red for line in lines: pager.write(line) pager.close() sys.excepthook = excepthook - #try: - # import cgitb - #except ImportError: - # pass - #else: - # # cgitb.enable() overrides sys.excepthook - # cgitb.enable(format='text') + # try: + # import cgitb + # except ImportError: + # pass + # else: + # # cgitb.enable() overrides sys.excepthook + # cgitb.enable(format='text') # From Thomas Heller: # https://mail.python.org/pipermail/python-list/2001-April/099020.html @@ -294,7 +309,7 @@ def init(): return "Usage: cat('filename')" def __call__(self, filename): - fp = open(filename, 'rU') + fp = open(filename, 'r') text = fp.read() fp.close() print(text)