code: def find_class_module(module_name: str, class_name: str) \
          -> Tuple[List[str], List[Tuple[str, Exception]]]:   # pylint: disable=invalid-sequence-index
      
      matched_submodules = []
      erroneous_submodules = []
      for submodule_name in list_submodules(module_name):
          try:  # the sub-module to be included may be erroneous and we need to continue
              submodule = importlib.import_module(submodule_name)
              if hasattr(submodule, class_name):
                  matched_submodules.append(submodule_name)
          except Exception as ex:  # pylint: disable=broad-except
              erroneous_submodules.append((submodule_name, ex))
      return matched_submodules, erroneous_submodules
docs: Find sub-modules of the given module that contain the given class.
  
      Moreover, return a list of sub-modules that could not be imported as a list of (sub-module name, Exception) tuples.
  
      :param module_name: name of the module to be searched
      :param class_name: searched class name
      :return: a tuple of sub-modules having the searched class and sub-modules that could not be searched