code: def Bind(method):
      # pylint: disable=C0103
      
      if not inspect.isroutine(method):
          raise TypeError("@Bind can only be applied on functions")
  
      # Tests the number of parameters
      validate_method_arity(method, "service", "service_reference")
  
      _append_object_entry(
          method, constants.IPOPO_METHOD_CALLBACKS, constants.IPOPO_CALLBACK_BIND
      )
      return method
docs: The ``@Bind`` callback decorator is called when a component is bound to a
      dependency.
  
      The decorated method must accept the injected service object and its
      :class:`~pelix.framework.ServiceReference` as arguments::
  
         @Bind
         def bind_method(self, service, service_reference):
             '''
             service: The injected service instance.
             service_reference: The injected service ServiceReference
             '''
             # ...
  
      If the service is a required one, the bind callback is called **before**
      the component is validated.
  
      The service reference can be stored *if it is released on unbind*.
  
      Exceptions raised by a bind callback are ignored.
  
      :param method: The decorated method
      :raise TypeError: The decorated element is not a valid function