X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=lib%2Fpython%2Finit.py;h=642eb6c6ab545f3f52443768c2fcebb61c056b08;hb=b0cebb6cdb495409e43550c82c68258c3269d179;hp=d835c1c9a39b78edc9946c54dc31f688a3fb4b4b;hpb=dc16915c13154ea56c4700c3cf2366788e202bd9;p=dotfiles.git diff --git a/lib/python/init.py b/lib/python/init.py index d835c1c..642eb6c 100644 --- a/lib/python/init.py +++ b/lib/python/init.py @@ -4,36 +4,43 @@ # into your .profile (use whatever syntax and initialization file # is appropriate for your shell): # -# PYTHONSTARTUP=$HOME/init.py # or where you really put it +# PYTHONSTARTUP=$HOME/init.py # or where you really put it # export PYTHONSTARTUP + def init(): - import sys, os import __builtin__ + import os + import sys + + # readline/pyreadline - pyreadlinew32_startup = os.path.join(sys.prefix, - 'lib', 'site-packages', 'pyreadline', 'configuration', 'startup.py') + pyreadlinew32_startup = os.path.join( + sys.prefix, 'lib', 'site-packages', + 'pyreadline', 'configuration', 'startup.py') if os.path.exists(pyreadlinew32_startup): execfile(pyreadlinew32_startup) else: - # From Bruce Edge + # From Bruce Edge: + # https://mail.python.org/pipermail/python-list/2001-March/062888.html try: - import rlcompleter, readline - initfile = os.environ.get('INPUTRC') or os.path.expanduser('~/.inputrc') + import readline + initfile = os.environ.get('INPUTRC') \ + 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 + pass # No such file def savehist(): - histfilesize = os.environ.get('HISTFILESIZE') or \ - os.environ.get('HISTSIZE') + histfilesize = os.environ.get('HISTFILESIZE') \ + or os.environ.get('HISTSIZE') if histfilesize: try: histfilesize = int(histfilesize) @@ -47,9 +54,11 @@ def init(): atexit.register(savehist) except (ImportError, AttributeError): - pass # no readline or atexit, or readline doesn't have - # {read,write}_history_file - ignore the error + # no readline or atexit, or readline doesn't have + # {read,write}_history_file - ignore the error + pass + # terminal term = os.environ.get('TERM', '') if 'linux' in term: @@ -57,27 +66,28 @@ def init(): else: background = os.environ.get('BACKGROUND', 'light').lower() - # From Randall Hopper + # 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 if background == 'dark': - ps1_color = '3' # yellow - stdout_color = '7' # bold white + ps1_color = '3' # yellow + stdout_color = '7' # bold white else: - ps1_color = '4' # blue - stdout_color = '0' # bold black + ps1_color = '4' # blue + stdout_color = '0' # bold black sys.ps1 = '\001\033[3%sm\002>>>\001\033[0m\002 ' % ps1_color - sys.ps2 = '\001\033[1;32m\002...\001\033[0m\002 ' # bold green - + sys.ps2 = '\001\033[1;32m\002...\001\033[0m\002 ' # bold green # From Denis Otkidach class ColoredFile: - def __init__(self, fp, begin, end='\033[0m'): # reset all attributes + def __init__(self, fp, begin, + end='\033[0m'): # reset all attributes self.__fp = fp self.__begin = begin self.__end = end @@ -92,32 +102,37 @@ def init(): return getattr(self.__fp, attr) sys.stdout = ColoredFile(sys.stdout, '\033[1;3%sm' % stdout_color) - sys.stderr = ColoredFile(sys.stderr, '\033[31m') # red + sys.stderr = ColoredFile(sys.stderr, '\033[31m') # red break try: import locale except ImportError: - pass # locale was not compiled + pass # locale was not compiled else: try: locale.setlocale(locale.LC_ALL, '') - from pprint import pprint + except (ImportError, locale.Error): + pass # no locale support or unsupported locale - def displayhook(value): - if value is not None: - __builtin__._ = value - pprint(value) + # set displayhook - sys.displayhook = displayhook + from pprint import pprint - except (ImportError, locale.Error): - pass # no locale support or unsupported locale + def displayhook(value): + if value is not None: + __builtin__._ = value + pprint(value) + + sys.displayhook = displayhook + # utilities - # From: Paul Magwene with a lot of my fixes + # From: Paul Magwene: + # https://mail.python.org/pipermail/python-list/2001-March/086191.html + # With a lot of my fixes: class DirLister: def __getitem__(self, key): @@ -150,15 +165,16 @@ def init(): __builtin__.ls = DirLister() __builtin__.cd = DirChanger() + # From Thomas Heller: + # https://mail.python.org/pipermail/python-list/2001-April/099020.html - # From Thomas Heller - # - #import pdb + # import pdb # - #def info(*args): - # pdb.pm() - #sys.excepthook = info + # def info(*args): + # pdb.pm() + # sys.excepthook = info + # print working directory class Pwd: def __repr__(self): @@ -169,6 +185,7 @@ def init(): __builtin__.pwd = Pwd() + # exit REPL with 'exit', 'quit' or simple 'x' class _Exit: def __repr__(self): @@ -179,8 +196,60 @@ def init(): __builtin__.x = _Exit() - if isinstance(__builtin__.exit, str): # In Python 2.5+ exit and quit are objects - __builtin__.exit = __builtin__.quit = x + # In Python 2.5+ exit and quit are objects + if isinstance(__builtin__.exit, str): + __builtin__.exit = __builtin__.quit = x # noqa: x is defined as _Exit + + # print conten of a file + + class _Cat: + def __repr__(self): + return "Usage: cat('filename')" + + def __call__(self, filename): + fp = open(filename, 'rU') + text = fp.read() + fp.close() + print text + + __builtin__.cat = _Cat() + + # call shell + + class _Sh: + def __repr__(self): + os.system(os.environ["SHELL"]) + return '' + + def __call__(self, cmdline): + os.system(cmdline) + + __builtin__.sh = _Sh() + + # paginate a file + + class _Pager: + def __repr__(self): + return "Usage: pager('filename')" + + def __call__(self, filename): + pager = os.environ.get("PAGER") or 'more' + os.system("%s '%s'" % (pager, filename.replace("'", '"\'"'))) + + __builtin__.pager = _Pager() + + # edit a file + + class _Editor: + def __repr__(self): + return "Usage: edit('filename')" + + def __call__(self, filename): + editor = os.environ.get("VISUAL") \ + or os.environ.get("EDITOR") or 'vi' + os.system("%s '%s'" % (editor, filename.replace("'", '"\'"'))) + + __builtin__.edit = __builtin__.editor = _Editor() init()