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
1 changed files with 15 additions and 6 deletions

View File

@ -10,9 +10,9 @@ IntType = type(0)
LongType = type(0L)
FloatType = type(0.0)
try:
ComplexType = type(complex(0,1))
ComplexType = type(complex(0,1))
except NameError:
pass
pass
StringType = type('')
@ -23,10 +23,13 @@ DictType = DictionaryType = type({})
def _f(): pass
FunctionType = type(_f)
LambdaType = type(lambda: None) # Same as FunctionType
CodeType = type(_f.func_code)
try:
CodeType = type(_f.func_code)
except:
pass
class _C:
def _m(self): pass
def _m(self): pass
ClassType = type(_C)
UnboundMethodType = type(_C._m) # Same as MethodType
_x = _C()
@ -38,14 +41,20 @@ BuiltinMethodType = type([].append) # Same as BuiltinFunctionType
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))
try:
raise TypeError
raise TypeError
except TypeError:
try:
TracebackType = type(sys.exc_traceback)
FrameType = type(sys.exc_traceback.tb_frame)
except:
pass
SliceType = type(slice(0))
EllipsisType = type(Ellipsis)