blob: 01af46364013ab6785bd0f4151f448cd09ddd058 [file] [log] [blame]
Guido van Rossume7b146f2000-02-04 15:28:42 +00001"""Define names for all type symbols known in the standard interpreter.
2
3Types that are part of optional modules (e.g. array) are not listed.
4"""
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00005from __future__ import generators
Guido van Rossum85d89451994-06-23 11:53:27 +00006
7import sys
8
9NoneType = type(None)
Tim Peters6d6c1a32001-08-02 04:15:00 +000010TypeType = type
11ObjectType = object
Guido van Rossum85d89451994-06-23 11:53:27 +000012
Martin v. Löwisff885562001-08-08 16:02:01 +000013IntType = int
14LongType = long
15FloatType = float
Guido van Rossum0f6f8121996-02-13 00:04:31 +000016try:
Martin v. Löwisff885562001-08-08 16:02:01 +000017 ComplexType = complex
Guido van Rossum0f6f8121996-02-13 00:04:31 +000018except NameError:
Guido van Rossum898c9151997-09-04 22:12:34 +000019 pass
Guido van Rossum85d89451994-06-23 11:53:27 +000020
Martin v. Löwisff885562001-08-08 16:02:01 +000021StringType = str
22UnicodeType = unicode
Guido van Rossum36561c51999-03-19 19:08:03 +000023BufferType = type(buffer(''))
Guido van Rossum85d89451994-06-23 11:53:27 +000024
Martin v. Löwisff885562001-08-08 16:02:01 +000025TupleType = tuple
Tim Peters6d6c1a32001-08-02 04:15:00 +000026ListType = list
27DictType = DictionaryType = dictionary
Guido van Rossum85d89451994-06-23 11:53:27 +000028
Guido van Rossumadc940e1994-09-29 10:04:43 +000029def _f(): pass
30FunctionType = type(_f)
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000031LambdaType = type(lambda: None) # Same as FunctionType
Guido van Rossum898c9151997-09-04 22:12:34 +000032try:
33 CodeType = type(_f.func_code)
Martin v. Löwis58682b72001-08-11 15:02:57 +000034except RuntimeError:
35 # Execution in restricted environment
Guido van Rossum898c9151997-09-04 22:12:34 +000036 pass
Guido van Rossum85d89451994-06-23 11:53:27 +000037
Tim Peters3e7b1a02001-06-25 19:46:25 +000038def g():
39 yield 1
40GeneratorType = type(g())
41del g
42
Guido van Rossumadc940e1994-09-29 10:04:43 +000043class _C:
Guido van Rossum898c9151997-09-04 22:12:34 +000044 def _m(self): pass
Guido van Rossumadc940e1994-09-29 10:04:43 +000045ClassType = type(_C)
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000046UnboundMethodType = type(_C._m) # Same as MethodType
Guido van Rossumadc940e1994-09-29 10:04:43 +000047_x = _C()
48InstanceType = type(_x)
49MethodType = type(_x._m)
Guido van Rossum85d89451994-06-23 11:53:27 +000050
Guido van Rossumadc940e1994-09-29 10:04:43 +000051BuiltinFunctionType = type(len)
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000052BuiltinMethodType = type([].append) # Same as BuiltinFunctionType
Guido van Rossum85d89451994-06-23 11:53:27 +000053
54ModuleType = type(sys)
55
Guido van Rossum898c9151997-09-04 22:12:34 +000056try:
Guido van Rossum1f057081998-12-19 23:53:33 +000057 FileType = type(sys.__stdin__)
Martin v. Löwis58682b72001-08-11 15:02:57 +000058except AttributeError:
59 # Not available in restricted mode
Guido van Rossum898c9151997-09-04 22:12:34 +000060 pass
Guido van Rossum85d89451994-06-23 11:53:27 +000061XRangeType = type(xrange(0))
62
63try:
Guido van Rossum898c9151997-09-04 22:12:34 +000064 raise TypeError
Guido van Rossum85d89451994-06-23 11:53:27 +000065except TypeError:
Guido van Rossum898c9151997-09-04 22:12:34 +000066 try:
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000067 tb = sys.exc_info()[2]
68 TracebackType = type(tb)
69 FrameType = type(tb.tb_frame)
Martin v. Löwis58682b72001-08-11 15:02:57 +000070 except AttributeError:
71 # In the restricted environment, exc_info returns (None, None,
72 # None) Then, tb.tb_frame gives an attribute error
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000073 pass
Guido van Rossumf15d1591997-09-29 23:22:12 +000074 tb = None; del tb
Guido van Rossum85d89451994-06-23 11:53:27 +000075
Guido van Rossum8741b2b1996-10-11 16:00:06 +000076SliceType = type(slice(0))
Guido van Rossume449af71996-10-11 16:25:41 +000077EllipsisType = type(Ellipsis)
Guido van Rossum8741b2b1996-10-11 16:00:06 +000078
Tim Peters6d6c1a32001-08-02 04:15:00 +000079DictIterType = type(iter({}))
80SequenceIterType = type(iter([]))
81FunctionIterType = type(iter(lambda: 0, 0))
82DictProxyType = type(TypeType.__dict__)
83
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000084del sys, _f, _C, _x # Not for export