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 | CodeType = type(_f.func_code) |
---|
46 | |
---|
47 | def _g(): |
---|
48 | yield 1 |
---|
49 | GeneratorType = type(_g()) |
---|
50 | |
---|
51 | class _C: |
---|
52 | def _m(self): pass |
---|
53 | ClassType = type(_C) |
---|
54 | UnboundMethodType = type(_C._m) # Same as MethodType |
---|
55 | _x = _C() |
---|
56 | InstanceType = type(_x) |
---|
57 | MethodType = type(_x._m) |
---|
58 | |
---|
59 | BuiltinFunctionType = type(len) |
---|
60 | BuiltinMethodType = type([].append) # Same as BuiltinFunctionType |
---|
61 | |
---|
62 | ModuleType = type(sys) |
---|
63 | FileType = file |
---|
64 | XRangeType = xrange |
---|
65 | |
---|
66 | try: |
---|
67 | raise TypeError |
---|
68 | except TypeError: |
---|
69 | tb = sys.exc_info()[2] |
---|
70 | TracebackType = type(tb) |
---|
71 | FrameType = type(tb.tb_frame) |
---|
72 | del tb |
---|
73 | |
---|
74 | SliceType = slice |
---|
75 | EllipsisType = type(Ellipsis) |
---|
76 | |
---|
77 | DictProxyType = type(TypeType.__dict__) |
---|
78 | NotImplementedType = type(NotImplemented) |
---|
79 | |
---|
80 | # For Jython, the following two types are identical |
---|
81 | GetSetDescriptorType = type(FunctionType.func_code) |
---|
82 | MemberDescriptorType = type(FunctionType.func_globals) |
---|
83 | |
---|
84 | del sys, _f, _g, _C, _x # Not for export |
---|
85 | |
---|
86 | __all__ = list(n for n in globals() if n[:1] != '_') |
---|