"""Define names for all type symbols known in the standard interpreter.
Types that are part of optional modules (e.g. array) are not listed.
# Iterators in Python aren't a matter of type but of protocol. A large
# and changing number of builtin types implement *some* flavor of
# iterator. Don't check the type! Use hasattr to check for both
# "__iter__" and "next" attributes instead.
# StringTypes is already outdated. Instead of writing "type(x) in
# types.StringTypes", you should use "isinstance(x, basestring)". But
# we keep around for compatibility with Python 2.2.
StringTypes
= (StringType
, UnicodeType
)
StringTypes
= (StringType
,)
DictType
= DictionaryType
= dict
LambdaType
= type(lambda: None) # Same as FunctionType
CodeType
= type(_f
.func_code
)
# Execution in restricted environment
GeneratorType
= type(_g())
UnboundMethodType
= type(_C
._m
) # Same as MethodType
BuiltinFunctionType
= type(len)
BuiltinMethodType
= type([].append
) # Same as BuiltinFunctionType
FrameType
= type(tb
.tb_frame
)
# In the restricted environment, exc_info returns (None, None,
# None) Then, tb.tb_frame gives an attribute error
EllipsisType
= type(Ellipsis)
DictProxyType
= type(TypeType
.__dict
__)
NotImplementedType
= type(NotImplemented)
del sys
, _f
, _g
, _C
, _x
# Not for export