class_docstr: A prescription of how metadata is to be passed to a single method.
  
  Refer to :class:`MetadataRequest` for how this class is used.
  
  .. versionadded:: 1.3
  
  Parameters
  ----------
  owner : str
      A display name for the object owning these requests.
  
  method : str
      The name of the method to which these requests belong.
  
  requests : dict of {str: bool, None or str}, default=None
      The initial requests for this method.
class_docstr_tok: ["A","prescription","of","how","metadata","is","to","be","passed","to","a","single","method",".","Refer","to",":","class",":","`","MetadataRequest","`","for","how","this","class","is","used",".","..","versionadded",":",":","1.3","Parameters","--","--","--","--","--","owner",":","str","A","display","name","for","the","object","owning","these","requests",".","method",":","str","The","name","of","the","method","to","which","these","requests","belong",".","requests",":","dict","of","{","str",":","bool",",","None","or","str","}",",","default=None","The","initial","requests","for","this","method","."]
docstr: Add request info for a metadata.
  
  Parameters
  ----------
  param : str
      The property for which a request is set.
  
  alias : str, or {True, False, None}
      Specifies which metadata should be routed to `param`
  
      - str: the name (or alias) of metadata given to a meta-estimator that
        should be routed to this parameter.
  
      - True: requested
  
      - False: not requested
  
      - None: error if passed
docstr_tok: ["Add","request","info","for","a","metadata",".","Parameters","--","--","--","--","--","param",":","str","The","property","for","which","a","request","is","set",".","alias",":","str",",","or","{","True",",","False",",","None","}","Specifies","which","metadata","should","be","routed","to","`","param","`","-","str",":","the","name","(","or","alias",")","of","metadata","given","to","a","meta-estimator","that","should","be","routed","to","this","parameter",".","-","True",":","requested","-","False",":","not","requested","-","None",":","error","if","passed"]
code: def add_request(
      self,
      *,
      param,
      alias,
  ):
      """Add request info for a metadata.
  
      Parameters
      ----------
      param : str
          The property for which a request is set.
  
      alias : str, or {True, False, None}
          Specifies which metadata should be routed to `param`
  
          - str: the name (or alias) of metadata given to a meta-estimator that
            should be routed to this parameter.
  
          - True: requested
  
          - False: not requested
  
          - None: error if passed
      """
      if not request_is_alias(alias) and not request_is_valid(alias):
          raise ValueError(
              f"The alias you're setting for `{param}` should be either a "
              "valid identifier or one of {None, True, False}, but given "
              f"value is: `{alias}`"
          )
  
      if alias == param:
          alias = True
  
      if alias == UNUSED:
          if param in self._requests:
              del self._requests[param]
          else:
              raise ValueError(
                  f"Trying to remove parameter {param} with UNUSED which doesn't"
                  " exist."
              )
      else:
          self._requests[param] = alias
  
      return self
  
imports: import inspect
  from collections import namedtuple
  from copy import deepcopy
  from typing import TYPE_CHECKING, Optional, Union
  from warnings import warn
  from ..None import get_config
  from ..exceptions import UnsetMetadataPassedError
  from ._bunch import Bunch
label_desc: Use image node_id 3 for calling the MethodMetadataRequest obj's underlying member method code with example usage: obj.add_request() and returns: self