code: def fit(self, X, y, sample_weight, **fit_params):
      if self.estimator is None:
          raise ValueError("estimator cannot be None!")
  
      check_metadata(self, sample_weight=sample_weight)
  
      if sample_weight is not None:
          fit_params["sample_weight"] = sample_weight
  
      # meta-estimators are responsible for validating the given metadata
      request_router = get_routing_for_object(self)
      request_router.validate_metadata(params=fit_params, method="fit")
      # we can use provided utility methods to map the given metadata to what
      # is required by the underlying estimator
      params = request_router.route_params(
          params=fit_params, caller="fit"
      )
      self.estimator_ = clone(self.estimator).fit(
          X, y, **params.estimator.fit
      )
      self.classes_ = self.estimator_.classes_
      return self
  
imports: import warnings
  from pprint import pprint
  import numpy
  from sklearn import set_config
  from sklearn.base import BaseEstimator, ClassifierMixin, MetaEstimatorMixin, RegressorMixin, TransformerMixin, clone
  from sklearn.linear_model import LinearRegression
  from sklearn.utils import metadata_routing
  from sklearn.utils.metadata_routing import MetadataRouter, MethodMapping, get_routing_for_object, process_routing
  from sklearn.utils.validation import check_is_fitted
label_desc: Use image node_id 3 for calling the RouterConsumerClassifier obj's underlying member method code with example usage: obj.fit(X, y, sample_weight) and returns: self