class_docstr: Stores and handles metadata routing for a router object.
  
  This class is used by router objects to store and handle metadata routing.
  Routing information is stored as a dictionary of the form ``{"object_name":
  RouteMappingPair(method_mapping, routing_info)}``, where ``method_mapping``
  is an instance of :class:`~sklearn.utils.metadata_routing.MethodMapping` and
  ``routing_info`` is either a
  :class:`~utils.metadata_routing.MetadataRequest` or a
  :class:`~utils.metadata_routing.MetadataRouter` instance.
  
  .. versionadded:: 1.3
  
  Parameters
  ----------
  owner : str
      The name of the object to which these requests belong.
docstr: Return the input parameters requested by child objects.
  
  The output of this method is a bunch, which includes the inputs for all
  methods of each child object that are used in the router's `caller`
  method.
  
  If the router is also a consumer, it also checks for warnings of
  `self`'s/consumer's requested metadata.
  
  Parameters
  ----------
  caller : str
      The name of the method for which the parameters are requested and
      routed. If called inside the :term:`fit` method of a router, it
      would be `"fit"`.
  
  params : dict
      A dictionary of provided metadata.
  
  Returns
  -------
  params : Bunch
      A :class:`~utils.Bunch` of the form
      ``{"object_name": {"method_name": {prop: value}}}`` which can be
      used to pass the required metadata to corresponding methods or
      corresponding child objects.
docstr_tok: ["Return","the","input","parameters","requested","by","child","objects",".","The","output","of","this","method","is","a","bunch",",","which","includes","the","inputs","for","all","methods","of","each","child","object","that","are","used","in","the","router","'s","`","caller","`","method",".","If","the","router","is","also","a","consumer",",","it","also","checks","for","warnings","of","`","self","`","'s\/consumer","'s","requested","metadata",".","Parameters","--","--","--","--","--","caller",":","str","The","name","of","the","method","for","which","the","parameters","are","requested","and","routed",".","If","called","inside","the",":","term",":","`","fit","`","method","of","a","router",",","it","would","be","`","``","fit","''","`",".","params",":","dict","A","dictionary","of","provided","metadata",".","Returns","--","--","--","-","params",":","Bunch","A",":","class",":","`","~utils.Bunch","`","of","the","form","``","{","``","object_name","''",":","{","``","method_name","''",":","{","prop",":","value","}","}","}","``","which","can","be","used","to","pass","the","required","metadata","to","corresponding","methods","or","corresponding","child","objects","."]
code: def route_params(self, *, caller, params):
      """Return the input parameters requested by child objects.
  
      The output of this method is a bunch, which includes the inputs for all
      methods of each child object that are used in the router's `caller`
      method.
  
      If the router is also a consumer, it also checks for warnings of
      `self`'s/consumer's requested metadata.
  
      Parameters
      ----------
      caller : str
          The name of the method for which the parameters are requested and
          routed. If called inside the :term:`fit` method of a router, it
          would be `"fit"`.
  
      params : dict
          A dictionary of provided metadata.
  
      Returns
      -------
      params : Bunch
          A :class:`~utils.Bunch` of the form
          ``{"object_name": {"method_name": {prop: value}}}`` which can be
          used to pass the required metadata to corresponding methods or
          corresponding child objects.
      """
      if self._self_request:
          self._self_request._check_warnings(
              params=params, method=caller
          )
  
      res = Bunch()
      for name, route_mapping in self._route_mappings.items():
          router, mapping = route_mapping.router, route_mapping.mapping
  
          res[name] = Bunch()
          for _callee, _caller in mapping:
              if _caller == caller:
                  res[name][_callee] = router._route_params(
                      params=params, method=_callee
                  )
      return res
  
imports: import inspect
  from collections import namedtuple
  from copy import deepcopy
  from typing import 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 6 for calling the MetadataRouter obj's underlying member method code with example usage: obj.route_params() and returns: res