Home | History | Annotate | Download | only in Lib
      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] != '_')
     87