# 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)
# 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)
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:
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
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, '')
sys.displayhook = displayhook
except (ImportError, locale.Error):
- pass # no locale support or unsupported locale
+ pass # no locale support or unsupported locale
+ # utilities
# From: Paul Magwene:
# https://mail.python.org/pipermail/python-list/2001-March/086191.html
# 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):
__builtin__.pwd = Pwd()
+ # exit REPL with 'exit', 'quit' or simple 'x'
class _Exit:
def __repr__(self):
__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):
__builtin__.cat = _Cat()
+ # call shell
class _Sh:
def __repr__(self):
__builtin__.sh = _Sh()
+ # paginate a file
class _Pager:
def __repr__(self):
__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'
+ editor = os.environ.get("VISUAL") \
+ or os.environ.get("EDITOR") or 'vi'
os.system("%s '%s'" % (editor, filename.replace("'", '"\'"')))
__builtin__.edit = __builtin__.editor = _Editor()
+import atexit
+import os
+import sys
+import readline
+
# Command line history:
-import os, readline
histfile = os.path.expanduser("~/.pdb-history")
try:
except IOError:
pass
+
def savehist(histfile=histfile):
- import os, readline
- histfilesize = os.environ.get('HISTFILESIZE') or \
- os.environ.get('HISTSIZE')
+ import os
+ import readline
+
+ histfilesize = os.environ.get('HISTFILESIZE') \
+ or os.environ.get('HISTSIZE')
if histfilesize:
try:
histfilesize = int(histfilesize)
readline.set_history_length(histfilesize)
readline.write_history_file(histfile)
-import atexit
atexit.register(savehist)
-# return to debugger after fatal exception (Python cookbook 14.5):
-import sys
+
def info(type, value, tb):
+ # return to debugger after fatal exception (Python cookbook 14.5):
+ import pdb
+ import sys
+ import traceback
+
if hasattr(sys, 'ps1') or not sys.stderr.isatty():
sys.__excepthook__(type, value, tb)
- import traceback, pdb
traceback.print_exception(type, value, tb)
print
pdb.pm()
+
sys.excepthook = info
+
# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498182
-import pdb, rlcompleter
+import pdb
+import rlcompleter
pdb.Pdb.complete = rlcompleter.Completer().complete
# Cleanup any variables that could otherwise clutter up the namespace.