##// END OF EJS Templates
Move crash handling to the application level and simplify class structure....
Move crash handling to the application level and simplify class structure. Starting to try to take real advantage of the refactoring, to have generic crash handling. This also lets us initialize the app without needing all the self.attempt() wrappers, since now there's a good system-wide crash handler at the app level (not inside the shell instance). I didn't yet remove the attempt() method because we may have occasional uses for it (we still do, but in one place only). I also removed some extra class layers that weren't quite needed. Creating classes solely for the purpose of passing parameters makes the code (IMO) harder to understand, I kept getting lost in parts of the class hierarchy. I think these changes provide the same flexibility but with easier to follow code (less things to remember, basically). What I tried to do was to use argument passing instead of inheritance for all cases I saw where the inheritance wasn't really adding new functionality. In some cases, this actually allowed me to remove methods that were effectively duplicated in the subclasses.

File last commit:

r2267:928c921b
r2403:08d6ac78
Show More
ipy_defaults.py
62 lines | 1.4 KiB | text/x-python | PythonLexer
""" Set default options for IPython.
Just import this module to get reasonable defaults for everything.
These configurations used to be performed in ipythonrc (or ipythonrc.ini).
Therefore importing this in your config files makes ipython basically
ignore your ipythonrc. This is *not* imported by default, you need to import
this manually in one of your config files.
You can further override these defaults in e.g. your ipy_user_config.py,
ipy_profile_PROFILENAME etc.
"""
import IPython.utils.rlineimpl as readline
from IPython.core import ipapi
ip = ipapi.get()
o = ip.options
o.colors = "Linux"
o.color_info=1
o.confirm_exit=1
o.pprint=1
o.multi_line_specials=1
o.xmode="Context"
o.prompt_in1='In [\#]: '
o.prompt_in2 =' .\D.: '
o.prompt_out = 'Out[\#]: '
o.prompts_pad_left=1
o.autoindent = 1
o.readline_remove_delims="-/~"
o.readline_merge_completions=1
o.readline = 1
rlopts = """\
tab: complete
"\C-l": possible-completions
set show-all-if-ambiguous on
"\C-o": tab-insert
"\M-i": " "
"\M-o": "\d\d\d\d"
"\M-I": "\d\d\d\d"
"\C-r": reverse-search-history
"\C-s": forward-search-history
"\C-p": history-search-backward
"\C-n": history-search-forward
"\e[A": history-search-backward
"\e[B": history-search-forward
"\C-k": kill-line
"\C-u": unix-line-discard"""
if readline.have_readline:
for cmd in rlopts.split('\n'):
readline.parse_and_bind(cmd)