2000-02-04 11:28:42 -04:00
|
|
|
"""Define names for all type symbols known in the standard interpreter.
|
|
|
|
|
|
|
|
Types that are part of optional modules (e.g. array) are not listed.
|
|
|
|
"""
|
1994-06-23 08:53:27 -03:00
|
|
|
import sys
|
|
|
|
|
2001-09-25 19:02:03 -03:00
|
|
|
# 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.
|
|
|
|
|
1994-06-23 08:53:27 -03:00
|
|
|
NoneType = type(None)
|
2001-08-02 01:15:00 -03:00
|
|
|
TypeType = type
|
|
|
|
ObjectType = object
|
1994-06-23 08:53:27 -03:00
|
|
|
|
2001-08-08 13:02:01 -03:00
|
|
|
IntType = int
|
|
|
|
LongType = long
|
|
|
|
FloatType = float
|
2002-05-21 20:17:12 -03:00
|
|
|
BooleanType = bool
|
1996-02-12 20:04:31 -04:00
|
|
|
try:
|
2001-08-08 13:02:01 -03:00
|
|
|
ComplexType = complex
|
1996-02-12 20:04:31 -04:00
|
|
|
except NameError:
|
1997-09-04 19:12:34 -03:00
|
|
|
pass
|
1994-06-23 08:53:27 -03:00
|
|
|
|
2001-08-08 13:02:01 -03:00
|
|
|
StringType = str
|
2002-06-14 17:41:17 -03:00
|
|
|
|
|
|
|
# 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.
|
2001-08-17 15:39:25 -03:00
|
|
|
try:
|
|
|
|
UnicodeType = unicode
|
2001-12-02 08:08:06 -04:00
|
|
|
StringTypes = (StringType, UnicodeType)
|
2001-08-17 15:39:25 -03:00
|
|
|
except NameError:
|
2001-12-02 08:08:06 -04:00
|
|
|
StringTypes = (StringType,)
|
2001-08-17 15:39:25 -03:00
|
|
|
|
2002-06-14 17:41:17 -03:00
|
|
|
BufferType = buffer
|
1994-06-23 08:53:27 -03:00
|
|
|
|
2001-08-08 13:02:01 -03:00
|
|
|
TupleType = tuple
|
2001-08-02 01:15:00 -03:00
|
|
|
ListType = list
|
2001-10-29 18:25:45 -04:00
|
|
|
DictType = DictionaryType = dict
|
1994-06-23 08:53:27 -03:00
|
|
|
|
1994-09-29 07:04:43 -03:00
|
|
|
def _f(): pass
|
|
|
|
FunctionType = type(_f)
|
1998-03-26 17:13:24 -04:00
|
|
|
LambdaType = type(lambda: None) # Same as FunctionType
|
1997-09-04 19:12:34 -03:00
|
|
|
try:
|
|
|
|
CodeType = type(_f.func_code)
|
2001-08-11 12:02:57 -03:00
|
|
|
except RuntimeError:
|
|
|
|
# Execution in restricted environment
|
1997-09-04 19:12:34 -03:00
|
|
|
pass
|
1994-09-29 07:04:43 -03:00
|
|
|
|
2004-07-17 21:08:11 -03:00
|
|
|
def _g():
|
2001-06-25 16:46:25 -03:00
|
|
|
yield 1
|
2004-07-17 21:08:11 -03:00
|
|
|
GeneratorType = type(_g())
|
2001-06-25 16:46:25 -03:00
|
|
|
|
1994-09-29 07:04:43 -03:00
|
|
|
class _C:
|
1997-09-04 19:12:34 -03:00
|
|
|
def _m(self): pass
|
1994-09-29 07:04:43 -03:00
|
|
|
ClassType = type(_C)
|
1998-03-26 17:13:24 -04:00
|
|
|
UnboundMethodType = type(_C._m) # Same as MethodType
|
1994-09-29 07:04:43 -03:00
|
|
|
_x = _C()
|
|
|
|
InstanceType = type(_x)
|
|
|
|
MethodType = type(_x._m)
|
|
|
|
|
|
|
|
BuiltinFunctionType = type(len)
|
1998-03-26 17:13:24 -04:00
|
|
|
BuiltinMethodType = type([].append) # Same as BuiltinFunctionType
|
1994-06-23 08:53:27 -03:00
|
|
|
|
|
|
|
ModuleType = type(sys)
|
2001-09-13 02:38:56 -03:00
|
|
|
FileType = file
|
2002-06-05 20:12:45 -03:00
|
|
|
XRangeType = xrange
|
1994-06-23 08:53:27 -03:00
|
|
|
|
|
|
|
try:
|
1997-09-04 19:12:34 -03:00
|
|
|
raise TypeError
|
1994-06-23 08:53:27 -03:00
|
|
|
except TypeError:
|
1997-09-04 19:12:34 -03:00
|
|
|
try:
|
1998-03-26 17:13:24 -04:00
|
|
|
tb = sys.exc_info()[2]
|
|
|
|
TracebackType = type(tb)
|
|
|
|
FrameType = type(tb.tb_frame)
|
2001-08-11 12:02:57 -03:00
|
|
|
except AttributeError:
|
|
|
|
# In the restricted environment, exc_info returns (None, None,
|
|
|
|
# None) Then, tb.tb_frame gives an attribute error
|
1998-03-26 17:13:24 -04:00
|
|
|
pass
|
1997-09-29 20:22:12 -03:00
|
|
|
tb = None; del tb
|
1994-06-23 08:53:27 -03:00
|
|
|
|
2002-06-14 17:41:17 -03:00
|
|
|
SliceType = slice
|
1996-10-11 13:25:41 -03:00
|
|
|
EllipsisType = type(Ellipsis)
|
1996-10-11 13:00:06 -03:00
|
|
|
|
2001-08-02 01:15:00 -03:00
|
|
|
DictProxyType = type(TypeType.__dict__)
|
2003-02-10 15:38:33 -04:00
|
|
|
NotImplementedType = type(NotImplemented)
|
2001-08-02 01:15:00 -03:00
|
|
|
|
2004-07-17 21:08:11 -03:00
|
|
|
del sys, _f, _g, _C, _x # Not for export
|