""" 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. """ from IPython.core import ipapi ip = ipapi.get() import os,sys from IPython.utils.genutils import * # 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() ip.expose_magic("rehash", magic_rehash) # Exit def magic_Quit(self, parameter_s=''): """Exit IPython without confirmation (like %Exit).""" self.shell.ask_exit() ip.expose_magic("Quit", magic_Quit) # 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 ip.expose_magic("p", magic_p)