code: def with_metaclasses(metaclasses, *bases):
      """Make a class inheriting from ``bases`` whose metaclass inherits from
      all of ``metaclasses``.
  
      Like :func:`six.with_metaclass`, but allows multiple metaclasses.
  
      Parameters
      ----------
      metaclasses : iterable[type]
          A tuple of types to use as metaclasses.
      *bases : tuple[type]
          A tuple of types to use as bases.
  
      Returns
      -------
      base : type
          A subtype of ``bases`` whose metaclass is a subtype of ``metaclasses``.
  
      Notes
      -----
      The metaclasses must be written to support cooperative multiple
      inheritance. This means that they must delegate all calls to ``super()``
      instead of inlining their super class by name.
      """
      return six.with_metaclass(compose_types(*metaclasses), *bases)
  
imports: from operator import attrgetter
  import six
label_desc: Use image node_id 2 for calling a global function with example usage: with_metaclasses(metaclasses) and returns: six