##// END OF EJS Templates
Merge pull request #937 from minrk/readline...
Merge pull request #937 from minrk/readline Add dirty trick for readline import on OSX to more aggressively detect the presence of libedit masquerading as true GNU readline. Also made the libedit warning extremely loud, so people don't miss it. See the original PR page for the gory details; short version: 1. remove lib-dynload from sys.path before trying to import readline the first time 2. after import, restore lib-dynload to its place in sys.path 3. if import failed without lib-dynload, try it one more time, to get the default module

File last commit:

r2267:928c921b
r5211:90b01394 merge
Show More
ipy_legacy.py
62 lines | 1.9 KiB | text/x-python | PythonLexer
vivainio
crlf cleanup
r680 """ Legacy stuff
Various stuff that are there for historical / familiarity reasons.
This is automatically imported by default profile, though not other profiles
(e.g. 'sh' profile).
Stuff that is considered obsolete / redundant is gradually moved here.
"""
Brian Granger
ipapi.py => core/ipapi.py and imports updated.
r2027 from IPython.core import ipapi
ip = ipapi.get()
vivainio
crlf cleanup
r680
import os,sys
Brian Granger
genutils.py => utils/genutils.py and updated imports and tests.
r2023 from IPython.utils.genutils import *
vivainio
crlf cleanup
r680
# use rehashx
def magic_rehash(self, parameter_s = ''):
"""Update the alias table with all entries in $PATH.
This version does no checks on execute permissions or whether the
contents of $PATH are truly files (instead of directories or something
else). For such a safer (but slower) version, use %rehashx."""
# This function (and rehashx) manipulate the alias_table directly
# rather than calling magic_alias, for speed reasons. A rehash on a
# typical Linux box involves several thousand entries, so efficiency
# here is a top concern.
path = filter(os.path.isdir,os.environ.get('PATH','').split(os.pathsep))
alias_table = self.shell.alias_table
for pdir in path:
for ff in os.listdir(pdir):
# each entry in the alias table must be (N,name), where
# N is the number of positional arguments of the alias.
alias_table[ff] = (0,ff)
# Make sure the alias table doesn't contain keywords or builtins
self.shell.alias_table_validate()
# Call again init_auto_alias() so we get 'rm -i' and other modified
# aliases since %rehash will probably clobber them
self.shell.init_auto_alias()
Brian Granger
Continuing a massive refactor of everything.
r2205 ip.define_magic("rehash", magic_rehash)
vivainio
crlf cleanup
r680
# Exit
def magic_Quit(self, parameter_s=''):
"""Exit IPython without confirmation (like %Exit)."""
Gael Varoquaux
Add demo app. Add callback for exit to the ipython0 code.
r1391 self.shell.ask_exit()
vivainio
crlf cleanup
r680
Brian Granger
Continuing a massive refactor of everything.
r2205 ip.define_magic("Quit", magic_Quit)
vivainio
crlf cleanup
r680
# make it autocallable fn if you really need it
def magic_p(self, parameter_s=''):
"""Just a short alias for Python's 'print'."""
exec 'print ' + parameter_s in self.shell.user_ns
Brian Granger
Continuing a massive refactor of everything.
r2205 ip.define_magic("p", magic_p)