types.py 2.1 KB
Newer Older
1 2 3 4
"""Define names for all type symbols known in the standard interpreter.

Types that are part of optional modules (e.g. array) are not listed.
"""
5 6
import sys

7 8 9 10 11
# 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.

12
NoneType = type(None)
13 14
TypeType = type
ObjectType = object
15

16 17 18
IntType = int
LongType = long
FloatType = float
Skip Montanaro's avatar
Skip Montanaro committed
19
BooleanType = bool
20
try:
21
    ComplexType = complex
22
except NameError:
23
    pass
24

25
StringType = str
26 27 28 29

# 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.
30 31
try:
    UnicodeType = unicode
32
    StringTypes = (StringType, UnicodeType)
33
except NameError:
34
    StringTypes = (StringType,)
35

36
BufferType = buffer
37

38
TupleType = tuple
39
ListType = list
40
DictType = DictionaryType = dict
41

Guido van Rossum's avatar
Guido van Rossum committed
42 43
def _f(): pass
FunctionType = type(_f)
44
LambdaType = type(lambda: None)         # Same as FunctionType
45 46
try:
    CodeType = type(_f.func_code)
47 48
except RuntimeError:
    # Execution in restricted environment
49
    pass
Guido van Rossum's avatar
Guido van Rossum committed
50

51
def _g():
52
    yield 1
53
GeneratorType = type(_g())
54

Guido van Rossum's avatar
Guido van Rossum committed
55
class _C:
56
    def _m(self): pass
Guido van Rossum's avatar
Guido van Rossum committed
57
ClassType = type(_C)
58
UnboundMethodType = type(_C._m)         # Same as MethodType
Guido van Rossum's avatar
Guido van Rossum committed
59 60 61 62 63
_x = _C()
InstanceType = type(_x)
MethodType = type(_x._m)

BuiltinFunctionType = type(len)
64
BuiltinMethodType = type([].append)     # Same as BuiltinFunctionType
65 66

ModuleType = type(sys)
67
FileType = file
68
XRangeType = xrange
69 70

try:
71
    raise TypeError
72
except TypeError:
73
    try:
74 75 76
        tb = sys.exc_info()[2]
        TracebackType = type(tb)
        FrameType = type(tb.tb_frame)
77 78 79
    except AttributeError:
        # In the restricted environment, exc_info returns (None, None,
        # None) Then, tb.tb_frame gives an attribute error
80
        pass
81
    tb = None; del tb
82

83
SliceType = slice
84
EllipsisType = type(Ellipsis)
85

86
DictProxyType = type(TypeType.__dict__)
87
NotImplementedType = type(NotImplemented)
88

89
del sys, _f, _g, _C, _x                  # Not for export