Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | """Define names for all type symbols known in the standard interpreter. |
2 | ||
3 | Types that are part of optional modules (e.g. array) are not listed. | |
4 | """ | |
5 | import sys | |
6 | ||
7 | # Iterators in Python aren't a matter of type but of protocol. A large | |
8 | # and changing number of builtin types implement *some* flavor of | |
9 | # iterator. Don't check the type! Use hasattr to check for both | |
10 | # "__iter__" and "next" attributes instead. | |
11 | ||
12 | NoneType = type(None) | |
13 | TypeType = type | |
14 | ObjectType = object | |
15 | ||
16 | IntType = int | |
17 | LongType = long | |
18 | FloatType = float | |
19 | BooleanType = bool | |
20 | try: | |
21 | ComplexType = complex | |
22 | except NameError: | |
23 | pass | |
24 | ||
25 | StringType = str | |
26 | ||
27 | # StringTypes is already outdated. Instead of writing "type(x) in | |
28 | # types.StringTypes", you should use "isinstance(x, basestring)". But | |
29 | # we keep around for compatibility with Python 2.2. | |
30 | try: | |
31 | 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 | ||
42 | def _f(): pass | |
43 | FunctionType = type(_f) | |
44 | LambdaType = type(lambda: None) # Same as FunctionType | |
45 | try: | |
46 | CodeType = type(_f.func_code) | |
47 | except RuntimeError: | |
48 | # Execution in restricted environment | |
49 | pass | |
50 | ||
51 | def _g(): | |
52 | yield 1 | |
53 | GeneratorType = type(_g()) | |
54 | ||
55 | class _C: | |
56 | def _m(self): pass | |
57 | ClassType = type(_C) | |
58 | UnboundMethodType = type(_C._m) # Same as MethodType | |
59 | _x = _C() | |
60 | InstanceType = type(_x) | |
61 | MethodType = type(_x._m) | |
62 | ||
63 | 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 | tb = sys.exc_info()[2] | |
75 | TracebackType = type(tb) | |
76 | FrameType = type(tb.tb_frame) | |
77 | except AttributeError: | |
78 | # In the restricted environment, exc_info returns (None, None, | |
79 | # 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 |