This commit was manufactured by cvs2svn to create tag 'r23b1-mac'.
[python/dscho.git] / Lib / types.py
blob0d2905d81536c8b5ff2cf70f338f6555577ea276
1 """Define names for all type symbols known in the standard interpreter.
3 Types that are part of optional modules (e.g. array) are not listed.
4 """
5 import sys
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.
12 NoneType = type(None)
13 TypeType = type
14 ObjectType = object
16 IntType = int
17 LongType = long
18 FloatType = float
19 BooleanType = bool
20 try:
21 ComplexType = complex
22 except NameError:
23 pass
25 StringType = str
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,)
36 BufferType = buffer
38 TupleType = tuple
39 ListType = list
40 DictType = DictionaryType = dict
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
51 def g():
52 yield 1
53 GeneratorType = type(g())
54 del g
56 class _C:
57 def _m(self): pass
58 ClassType = type(_C)
59 UnboundMethodType = type(_C._m) # Same as MethodType
60 _x = _C()
61 InstanceType = type(_x)
62 MethodType = type(_x._m)
64 BuiltinFunctionType = type(len)
65 BuiltinMethodType = type([].append) # Same as BuiltinFunctionType
67 ModuleType = type(sys)
68 FileType = file
69 XRangeType = xrange
71 try:
72 raise TypeError
73 except TypeError:
74 try:
75 tb = sys.exc_info()[2]
76 TracebackType = type(tb)
77 FrameType = type(tb.tb_frame)
78 except AttributeError:
79 # In the restricted environment, exc_info returns (None, None,
80 # None) Then, tb.tb_frame gives an attribute error
81 pass
82 tb = None; del tb
84 SliceType = slice
85 EllipsisType = type(Ellipsis)
87 DictProxyType = type(TypeType.__dict__)
88 NotImplementedType = type(NotImplemented)
90 del sys, _f, _C, _x # Not for export