| 
									
										
										
										
											2000-02-04 15:28:42 +00:00
										 |  |  | """Define names for all type symbols known in the standard interpreter.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Types that are part of optional modules (e.g. array) are not listed. | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-09-25 22:02:03 +00:00
										 |  |  | # 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | NoneType = type(None) | 
					
						
							| 
									
										
										
										
											2001-08-02 04:15:00 +00:00
										 |  |  | TypeType = type | 
					
						
							|  |  |  | ObjectType = object | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-08 16:02:01 +00:00
										 |  |  | IntType = int | 
					
						
							|  |  |  | LongType = long | 
					
						
							|  |  |  | FloatType = float | 
					
						
							| 
									
										
										
										
											2002-05-21 23:17:12 +00:00
										 |  |  | BooleanType = bool | 
					
						
							| 
									
										
										
										
											1996-02-13 00:04:31 +00:00
										 |  |  | try: | 
					
						
							| 
									
										
										
										
											2001-08-08 16:02:01 +00:00
										 |  |  |     ComplexType = complex | 
					
						
							| 
									
										
										
										
											1996-02-13 00:04:31 +00:00
										 |  |  | except NameError: | 
					
						
							| 
									
										
										
										
											1997-09-04 22:12:34 +00:00
										 |  |  |     pass | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-08 16:02:01 +00:00
										 |  |  | StringType = str | 
					
						
							| 
									
										
										
										
											2002-06-14 20:41:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # 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. | 
					
						
							| 
									
										
										
										
											2001-08-17 18:39:25 +00:00
										 |  |  | try: | 
					
						
							|  |  |  |     UnicodeType = unicode | 
					
						
							| 
									
										
										
										
											2001-12-02 12:08:06 +00:00
										 |  |  |     StringTypes = (StringType, UnicodeType) | 
					
						
							| 
									
										
										
										
											2001-08-17 18:39:25 +00:00
										 |  |  | except NameError: | 
					
						
							| 
									
										
										
										
											2001-12-02 12:08:06 +00:00
										 |  |  |     StringTypes = (StringType,) | 
					
						
							| 
									
										
										
										
											2001-08-17 18:39:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-06-14 20:41:17 +00:00
										 |  |  | BufferType = buffer | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-08 16:02:01 +00:00
										 |  |  | TupleType = tuple | 
					
						
							| 
									
										
										
										
											2001-08-02 04:15:00 +00:00
										 |  |  | ListType = list | 
					
						
							| 
									
										
										
										
											2001-10-29 22:25:45 +00:00
										 |  |  | DictType = DictionaryType = dict | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-09-29 10:04:43 +00:00
										 |  |  | def _f(): pass | 
					
						
							|  |  |  | FunctionType = type(_f) | 
					
						
							| 
									
										
										
										
											1998-03-26 21:13:24 +00:00
										 |  |  | LambdaType = type(lambda: None)         # Same as FunctionType | 
					
						
							| 
									
										
										
										
											1997-09-04 22:12:34 +00:00
										 |  |  | try: | 
					
						
							|  |  |  |     CodeType = type(_f.func_code) | 
					
						
							| 
									
										
										
										
											2001-08-11 15:02:57 +00:00
										 |  |  | except RuntimeError: | 
					
						
							|  |  |  |     # Execution in restricted environment | 
					
						
							| 
									
										
										
										
											1997-09-04 22:12:34 +00:00
										 |  |  |     pass | 
					
						
							| 
									
										
										
										
											1994-09-29 10:04:43 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-07-18 00:08:11 +00:00
										 |  |  | def _g(): | 
					
						
							| 
									
										
										
										
											2001-06-25 19:46:25 +00:00
										 |  |  |     yield 1 | 
					
						
							| 
									
										
										
										
											2004-07-18 00:08:11 +00:00
										 |  |  | GeneratorType = type(_g()) | 
					
						
							| 
									
										
										
										
											2001-06-25 19:46:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-09-29 10:04:43 +00:00
										 |  |  | class _C: | 
					
						
							| 
									
										
										
										
											1997-09-04 22:12:34 +00:00
										 |  |  |     def _m(self): pass | 
					
						
							| 
									
										
										
										
											1994-09-29 10:04:43 +00:00
										 |  |  | ClassType = type(_C) | 
					
						
							| 
									
										
										
										
											1998-03-26 21:13:24 +00:00
										 |  |  | UnboundMethodType = type(_C._m)         # Same as MethodType | 
					
						
							| 
									
										
										
										
											1994-09-29 10:04:43 +00:00
										 |  |  | _x = _C() | 
					
						
							|  |  |  | InstanceType = type(_x) | 
					
						
							|  |  |  | MethodType = type(_x._m) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BuiltinFunctionType = type(len) | 
					
						
							| 
									
										
										
										
											1998-03-26 21:13:24 +00:00
										 |  |  | BuiltinMethodType = type([].append)     # Same as BuiltinFunctionType | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ModuleType = type(sys) | 
					
						
							| 
									
										
										
										
											2001-09-13 05:38:56 +00:00
										 |  |  | FileType = file | 
					
						
							| 
									
										
										
										
											2002-06-05 23:12:45 +00:00
										 |  |  | XRangeType = xrange | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | try: | 
					
						
							| 
									
										
										
										
											1997-09-04 22:12:34 +00:00
										 |  |  |     raise TypeError | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | except TypeError: | 
					
						
							| 
									
										
										
										
											1997-09-04 22:12:34 +00:00
										 |  |  |     try: | 
					
						
							| 
									
										
										
										
											1998-03-26 21:13:24 +00:00
										 |  |  |         tb = sys.exc_info()[2] | 
					
						
							|  |  |  |         TracebackType = type(tb) | 
					
						
							|  |  |  |         FrameType = type(tb.tb_frame) | 
					
						
							| 
									
										
										
										
											2001-08-11 15:02:57 +00:00
										 |  |  |     except AttributeError: | 
					
						
							|  |  |  |         # In the restricted environment, exc_info returns (None, None, | 
					
						
							|  |  |  |         # None) Then, tb.tb_frame gives an attribute error | 
					
						
							| 
									
										
										
										
											1998-03-26 21:13:24 +00:00
										 |  |  |         pass | 
					
						
							| 
									
										
										
										
											1997-09-29 23:22:12 +00:00
										 |  |  |     tb = None; del tb | 
					
						
							| 
									
										
										
										
											1994-06-23 11:53:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-06-14 20:41:17 +00:00
										 |  |  | SliceType = slice | 
					
						
							| 
									
										
										
										
											1996-10-11 16:25:41 +00:00
										 |  |  | EllipsisType = type(Ellipsis) | 
					
						
							| 
									
										
										
										
											1996-10-11 16:00:06 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-02 04:15:00 +00:00
										 |  |  | DictProxyType = type(TypeType.__dict__) | 
					
						
							| 
									
										
										
										
											2003-02-10 19:38:33 +00:00
										 |  |  | NotImplementedType = type(NotImplemented) | 
					
						
							| 
									
										
										
										
											2001-08-02 04:15:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-08 22:07:05 +00:00
										 |  |  | # For Jython, the following two types are identical | 
					
						
							|  |  |  | GetSetDescriptorType = type(FunctionType.func_code) | 
					
						
							|  |  |  | MemberDescriptorType = type(FunctionType.func_globals) | 
					
						
							| 
									
										
										
										
											2006-07-27 23:43:15 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | del sys, _f, _g, _C, _x                           # Not for export |