parameters: (name, bases=(), kwds=None)
return_statement: return meta, ns, kwds
docstring: Call the __prepare__ method of the appropriate metaclass.
  
      Returns (metaclass, namespace, kwds) as a 3-tuple
  
      *metaclass* is the appropriate metaclass
      *namespace* is the prepared class namespace
      *kwds* is an updated copy of the passed in kwds argument with any
      'metaclass' entry removed. If no kwds argument is passed in, this will
      be an empty dict.
docstring_summary: Call the __prepare__ method of the appropriate metaclass.
docstring_tokens: Call the __prepare__ method of the appropriate metaclass .
function: def prepare_class(name, bases=(), kwds=None):
      """Call the __prepare__ method of the appropriate metaclass.
  
      Returns (metaclass, namespace, kwds) as a 3-tuple
  
      *metaclass* is the appropriate metaclass
      *namespace* is the prepared class namespace
      *kwds* is an updated copy of the passed in kwds argument with any
      'metaclass' entry removed. If no kwds argument is passed in, this will
      be an empty dict.
      """
      if kwds is None:
          kwds = {}
      else:
          kwds = dict(kwds) # Don't alter the provided mapping
      if 'metaclass' in kwds:
          meta = kwds.pop('metaclass')
      else:
          if bases:
              meta = type(bases[0])
          else:
              meta = type
      if isinstance(meta, type):
          # when meta is a type, we first determine the most-derived metaclass
          # instead of invoking the initial candidate directly
          meta = _calculate_meta(meta, bases)
      if hasattr(meta, '__prepare__'):
          ns = meta.__prepare__(name, bases, **kwds)
      else:
          ns = {}
      return meta, ns, kwds
function_tokens: def prepare_class ( name , bases = ( ) , kwds = None ) : if kwds is None : kwds = { } else : kwds = dict ( kwds ) # Don't alter the provided mapping if 'metaclass' in kwds : meta = kwds . pop ( 'metaclass' ) else : if bases : meta = type ( bases [ 0 ] ) else : meta = type if isinstance ( meta , type ) : # when meta is a type, we first determine the most-derived metaclass # instead of invoking the initial candidate directly meta = _calculate_meta ( meta , bases ) if hasattr ( meta , '__prepare__' ) : ns = meta . __prepare__ ( name , bases , * * kwds ) else : ns = { } return meta , ns , kwds