home *** CD-ROM | disk | FTP | other *** search
Wrap
# Source Generated with Decompyle++ # File: in.pyc (Python 2.6) import IPython.ipapi as IPython from IPython.ipapi import UsageError ip = IPython.ipapi.get() import pickleshare import inspect import pickle import os import sys import textwrap from IPython.FakeModule import FakeModule def restore_aliases(self): ip = self.getapi() staliases = ip.db.get('stored_aliases', { }) for k, v in staliases.items(): ip.defalias(k, v) def refresh_variables(ip): db = ip.db for key in db.keys('autorestore/*'): justkey = os.path.basename(key) try: obj = db[key] except KeyError: print "Unable to restore variable '%s', ignoring (use %%store -d to forget!)" % justkey print 'The error was:', sys.exc_info()[0] continue ip.user_ns[justkey] = obj def restore_dhist(ip): db = ip.db ip.user_ns['_dh'] = db.get('dhist', []) def restore_data(self): ip = self.getapi() refresh_variables(ip) restore_aliases(self) restore_dhist(self) raise IPython.ipapi.TryNext ip.set_hook('late_startup_hook', restore_data) def magic_store(self, parameter_s = ''): (opts, argsl) = self.parse_options(parameter_s, 'drz', mode = 'string') args = argsl.split(None, 1) ip = self.getapi() db = ip.db if opts.has_key('d'): try: todel = args[0] except IndexError: raise UsageError('You must provide the variable to forget') try: del db['autorestore/' + todel] raise UsageError("Can't delete variable '%s'" % todel) elif opts.has_key('z'): for k in db.keys('autorestore/*'): del db[k] elif opts.has_key('r'): refresh_variables(ip) elif not args: vars = self.db.keys('autorestore/*') vars.sort() if vars: size = max(map(len, vars)) else: size = 0 print 'Stored variables and their in-db values:' fmt = '%-' + str(size) + 's -> %s' get = db.get for var in vars: justkey = os.path.basename(var) print fmt % (justkey, repr(get(var, '<unavailable>'))[:50]) elif len(args) > 1 and args[1].startswith('>'): fnam = os.path.expanduser(args[1].lstrip('>').lstrip()) if args[1].startswith('>>'): fil = open(fnam, 'a') else: fil = open(fnam, 'w') obj = ip.ev(args[0]) print "Writing '%s' (%s) to file '%s'." % (args[0], obj.__class__.__name__, fnam) if not isinstance(obj, basestring): pprint = pprint import pprint pprint(obj, fil) else: fil.write(obj) if not obj.endswith('\n'): fil.write('\n') fil.close() return None try: obj = ip.user_ns[args[0]] except KeyError: if args[0] in self.alias_table: staliases = db.get('stored_aliases', { }) staliases[args[0]] = self.alias_table[args[0]] db['stored_aliases'] = staliases print 'Alias stored:', args[0], self.alias_table[args[0]] return None raise UsageError("Unknown variable '%s'" % args[0]) except: args[0] in self.alias_table if isinstance(inspect.getmodule(obj), FakeModule): print textwrap.dedent(" Warning:%s is %s \n Proper storage of interactively declared classes (or instances\n of those classes) is not possible! Only instances\n of classes in real modules on file system can be %%store'd.\n " % (args[0], obj)) return None self.db['autorestore/' + args[0]] = obj print "Stored '%s' (%s)" % (args[0], obj.__class__.__name__) ip.expose_magic('store', magic_store)