class_docstr: Metaclass of the Component class, used mainly to register the interface
  declared to be implemented by a component.
class_docstr_tok: ["Metaclass","of","the","Component","class",",","used","mainly","to","register","the","interface","declared","to","be","implemented","by","a","component","."]
code: def __new__(cls, name, bases, d):
      new_class = super(MetaComponent, cls).__new__(cls, name, bases, d)
  
      # Register implementations
      if MetaComponent.implements:
          for i in MetaComponent.implements:
              MetaComponent.implementations.append(
                  {
                      "interface": i,
                      "class": new_class,
                      "abstract": MetaComponent.abstract,
                  }
              )
  
      # Propagate @interfacedoc
      for name in new_class.__dict__:
          member = new_class.__dict__[name]
          if isinstance(member, staticmethod):
              member = getattr(new_class, name)
  
          if member.__doc__ == "@interfacedoc":
              if_member = None
              for i in MetaComponent.implements:
                  if hasattr(i, name):
                      if_member = getattr(i, name)
              if not if_member:
                  raise ComponentError(
                      "@interfacedoc: %s.%s: no such member in implemented interfaces: %s"
                      % (
                          new_class.__name__,
                          name,
                          str(MetaComponent.implements),
                      )
                  )
              member.__doc__ = if_member.__doc__
  
      MetaComponent.implements = []
      MetaComponent.abstract = False
  
      return new_class
  
file_path: TimeSide/timeside/core/component.py
label_desc: Use image node_id 1 for calling the MetaComponent obj's underlying member method code with example usage: obj.__new__(cls, name, bases, d) and returns: new_class