mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
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:
parent
d807b7589b
commit
898c915a31
1 changed files with 15 additions and 6 deletions
21
Lib/types.py
21
Lib/types.py
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue