class_docstr: Class determine the main operations for parameters search
  like finding all changing parameters.
  
  Args:
      prefix: prefix to determine special keys like "`prefix`_range", "`prefix`_bool", "`prefix`_choice"
      seed: random seed for initialization
      **kwargs: basic config with parameters
  
  Attributes:
      basic_config: dictionary with initial config with possible values of searched parameters
      prefix: prefix to determine special keys like "`prefix`_range", "`prefix`_bool", "`prefix`_choice"
      paths_to_params: list of lists of keys and/or integers (for list)
              with relative paths to searched parameters
      n_params: number of searched parameters
      eps: threshold value
docstr: Find paths to all dictionaries in config that contain key 'key_model'
  
  Args:
      config: dictionary
      key_model: key of sub-dictionary to be found
      path: list of keys and/or integers (for list) with relative path (needed for recursion)
  
  Returns:
      path in config -- list of keys (strings and integers)
docstr_tok: ["Find","paths","to","all","dictionaries","in","config","that","contain","key","'key_model'","Args",":","config",":","dictionary","key_model",":","key","of","sub-dictionary","to","be","found","path",":","list","of","keys","and\/or","integers","(","for","list",")","with","relative","path","(","needed","for","recursion",")","Returns",":","path","in","config","--","list","of","keys","(","strings","and","integers",")"]
code: def find_model_path(
      self, config: dict, key_model: str, path: list = []
  ) -> Generator:
      """
      Find paths to all dictionaries in config that contain key 'key_model'
  
      Args:
          config: dictionary
          key_model: key of sub-dictionary to be found
          path: list of keys and/or integers (for list) with relative path (needed for recursion)
  
      Returns:
          path in config -- list of keys (strings and integers)
      """
      config_pointer = config
      if (
          isinstance(config_pointer, dict)
          and key_model in config_pointer.keys()
      ):
          yield path
      else:
          if isinstance(config_pointer, dict):
              for key in list(config_pointer.keys()):
                  for path_ in self.find_model_path(
                      config_pointer[key], key_model, path + [key]
                  ):
                      yield path_
          elif isinstance(config_pointer, list):
              for i in range(len(config_pointer)):
                  for path_ in self.find_model_path(
                      config_pointer[i], key_model, path + [i]
                  ):
                      yield path_
  
file_path: DeepPavlov/deeppavlov/core/common/params_search.py
imports: import random
  from copy import deepcopy
  from logging import getLogger
  from typing import List, Generator, Any, Tuple
  import numpy
  from deeppavlov.core.common.registry import register
label_desc: Use image node_id 2 for calling the ParamsSearch obj's underlying member method code with example usage: obj.find_model_path(config, key_model, path) without return types