Added some try-excepts so that it can be imported in restricted mode

(though some type names are undefined in that case, e.g. CodeType
(inaccessible), FileType (not always accessible), and TracebackType
and FrameType (inaccessible).
This commit is contained in:
Guido van Rossum 1997-09-04 22:12:34 +00:00
parent d807b7589b
commit 898c915a31

View file

@ -10,9 +10,9 @@ IntType = type(0)
LongType = type(0L) LongType = type(0L)
FloatType = type(0.0) FloatType = type(0.0)
try: try:
ComplexType = type(complex(0,1)) ComplexType = type(complex(0,1))
except NameError: except NameError:
pass pass
StringType = type('') StringType = type('')
@ -23,10 +23,13 @@ DictType = DictionaryType = type({})
def _f(): pass def _f(): pass
FunctionType = type(_f) FunctionType = type(_f)
LambdaType = type(lambda: None) # Same as FunctionType LambdaType = type(lambda: None) # Same as FunctionType
CodeType = type(_f.func_code) try:
CodeType = type(_f.func_code)
except:
pass
class _C: class _C:
def _m(self): pass def _m(self): pass
ClassType = type(_C) ClassType = type(_C)
UnboundMethodType = type(_C._m) # Same as MethodType UnboundMethodType = type(_C._m) # Same as MethodType
_x = _C() _x = _C()
@ -38,14 +41,20 @@ BuiltinMethodType = type([].append) # Same as BuiltinFunctionType
ModuleType = type(sys) ModuleType = type(sys)
FileType = type(sys.stdin) # XXX what if it was assigned to? try:
FileType = type(sys.stdin) # XXX what if it was assigned to?
except:
pass
XRangeType = type(xrange(0)) XRangeType = type(xrange(0))
try: try:
raise TypeError raise TypeError
except TypeError: except TypeError:
try:
TracebackType = type(sys.exc_traceback) TracebackType = type(sys.exc_traceback)
FrameType = type(sys.exc_traceback.tb_frame) FrameType = type(sys.exc_traceback.tb_frame)
except:
pass
SliceType = type(slice(0)) SliceType = type(slice(0))
EllipsisType = type(Ellipsis) EllipsisType = type(Ellipsis)