docstr: Check candidate guideline compatibility with `model_extra_params` template
  
  Parameters
  ----------
  exp_id: String
      Candidate Experiment ID
  params: Dict
      Candidate "model_extra_params" to compare to the template in :attr:`model_params`
  score: Number
      Value of the candidate Experiment's target metric
  
  Returns
  -------
  Boolean
      True if candidate `params` match `model_extra_params` guidelines. Else, False
docstr_tok: ["Check","candidate","guideline","compatibility","with","`","model_extra_params","`","template","Parameters","--","--","--","--","--","exp_id",":","String","Candidate","Experiment","ID","params",":","Dict","Candidate","``","model_extra_params","''","to","compare","to","the","template","in",":","attr",":","`","model_params","`","score",":","Number","Value","of","the","candidate","Experiment","'s","target","metric","Returns","--","--","--","-","Boolean","True","if","candidate","`","params","`","match","`","model_extra_params","`","guidelines",".","Else",",","False"]
code: def does_match_extra_params_guidelines(
      self, exp_id, params, score
  ) -> bool:
      """Check candidate guideline compatibility with `model_extra_params` template
  
      Parameters
      ----------
      exp_id: String
          Candidate Experiment ID
      params: Dict
          Candidate "model_extra_params" to compare to the template in :attr:`model_params`
      score: Number
          Value of the candidate Experiment's target metric
  
      Returns
      -------
      Boolean
          True if candidate `params` match `model_extra_params` guidelines. Else, False
      """
  
      # noinspection PyUnusedLocal
      def visit_empty_dicts(path, key, value):
          """Remove empty dicts in ("model_extra_params"). Simplify comparison between experiments
          with no `model_extra_params` and, for example, `dict(fit=dict(verbose=True))`
          """
          if path and path[0] == "model_extra_params" and value == {}:
              return False
  
      _res = does_match_guidelines(
          dict(model_extra_params=params),
          self.mini_spaces["model_extra_params"],
          dict(
              model_extra_params=self.model_params["model_extra_params"]
          ),
          visitors=(visit_empty_dicts,),
      )
  
      return _res
  
imports: from hyperparameter_hunter.feature_engineering import EngineerStep, FeatureEngineer
  from hyperparameter_hunter.i_o.exceptions import IncompatibleCandidateError
  from hyperparameter_hunter.compat.keras_helper import keras_callback_to_dict, keras_initializer_to_dict
  from hyperparameter_hunter.settings import G
  from hyperparameter_hunter.space.dimensions import Categorical, RejectedOptional
  from hyperparameter_hunter.space.space_core import Space
  from hyperparameter_hunter.utils.boltons_utils import remap, get_path
  from hyperparameter_hunter.utils.general_utils import multi_visit
  from hyperparameter_hunter.utils.optimization_utils import does_fit_in_space, get_ids_by, get_scored_params
  from copy import deepcopy
  from numbers import Number
  from pathlib import Path
  from typing import Dict, List, Tuple, Union
  import wrapt
label_desc: Use image node_id 10 for calling the ResultFinder obj's underlying member method code with example usage: obj.does_match_extra_params_guidelines(exp_id, params, score) and returns: _res, False