##// END OF EJS Templates
- add support for PyCrust-style _getAttributeNames magic method. Closes #50....
- add support for PyCrust-style _getAttributeNames magic method. Closes #50. - don't delete exit/quit. Closes #55. - rename 'with' to 'with_obj' to avoid problems in python 2.5. Closes #53. - fix FakeModule, which also closes #59. - add -n option to %edit. - fix various other crashes reported by the automatic crash handler.

File last commit:

r292:8dcaaddb
r292:8dcaaddb
Show More
FakeModule.py
51 lines | 1.7 KiB | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
"""
Class which mimics a module.
Needed to allow pickle to correctly resolve namespaces during IPython
sessions.
$Id: FakeModule.py 1322 2006-05-24 07:51:39Z fperez $"""
#*****************************************************************************
# Copyright (C) 2002-2004 Fernando Perez. <fperez@colorado.edu>
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#*****************************************************************************
class FakeModule:
"""Simple class with attribute access to fake a module.
This is not meant to replace a module, but to allow inserting a fake
module in sys.modules so that systems which rely on run-time module
importing (like shelve and pickle) work correctly in interactive IPython
sessions.
Do NOT use this code for anything other than this IPython private hack."""
def __init__(self,adict):
# It seems pydoc (and perhaps others) needs any module instance to
# implement a __nonzero__ method, so we add it if missing:
if '__nonzero__' not in adict:
def __nonzero__():
return 1
adict['__nonzero__'] = __nonzero__
self.__dict__ = adict
# modules should have a __file__ attribute
adict['__file__'] = __file__
def __getattr__(self,key):
try:
return self.__dict__[key]
except KeyError, e:
raise AttributeError("FakeModule object has no attribute %s" % e)
def __str__(self):
return "<IPython.FakeModule instance>"
def __repr__(self):
return str(self)