X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=blobdiff_plain;f=lib%2Fpython%2Finit.py;h=f828226c9576264e0fcd931fe7f5056a809982e0;hp=71526b9198f4a4e8d1ce5d44b9860b0abaa899f2;hb=2980425cd19b2c30a252b91c324c16a753280a5e;hpb=02382ef710f05b6939bdc54b9b1ab7ef248dc104 diff --git a/lib/python/init.py b/lib/python/init.py index 71526b9..f828226 100644 --- a/lib/python/init.py +++ b/lib/python/init.py @@ -36,16 +36,22 @@ def init(): or os.path.expanduser('~/.inputrc') readline.read_init_file(initfile) - 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') if histsize: @@ -55,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) @@ -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() @@ -195,7 +208,8 @@ def init(): try: pager.pprint(value) except: # noqa - pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red + if _term_found: + pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red print_exc(file=pager) pager.close() @@ -204,7 +218,8 @@ 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()