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).
diff --git a/Lib/types.py b/Lib/types.py
index c0b3296..5254ebc 100644
--- a/Lib/types.py
+++ b/Lib/types.py
@@ -10,9 +10,9 @@
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 @@
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 @@
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)