code: def component(iface):
      '''
      Marks the decorated class as a component implementing the given ``iface``
  
      :param iface: the interface to implement
      :type iface: :func:`interface`
      '''
  
      def decorator(cls):
          if not cls:
              return None
  
          # Run custom verificator if any
          if hasattr(cls, '__verify__'):
              if not cls.__verify__():
                  return None
  
          if not hasattr(iface, 'implementations'):
              log.error('%s is not an @interface', iface)
  
          log.debug(
              'Registering [%s] (implementation of [%s])' % (
                  get_fqdn(cls),
                  get_fqdn(iface)
              )
          )
          iface.implementations.append(cls)
  
          def get(cls, context):
              return context.get_component(cls)
          cls.get = get.__get__(cls)
  
          return cls
  
      return decoratof component(iface):
      '''
      Marks the decorated class as a component implementing the given ``iface``
  
      :param iface: the interface to implement
      :type iface: :func:`interface`
      '''
  
      def decorator(cls):
          if not cls:
              return None
  
          # Run custom verificator if any
          if hasattr(cls, '__verify__'):
              if not cls.__verify__():
                  return None
  
          if not hasattr(iface, 'implementations'):
              log.error('%s is not an @interface', iface)
  
          log.debug(
              'Registering [%s] (implementation of [%s])' % (
                  get_fqdn(cls),
                  get_fqdn(iface)
              )
          )
          iface.implementations.append(cls)
  
          def get(cls, context):
              return context.get_component(cls)
          cls.get = get.__get__(cls)
  
          return cls
  
      return decorator
docs: Marks the decorated class as a component implementing the given ``iface``
  
      :param iface: the interface to implement
      :type iface: :func:`interface`