code: def load_model_using_search_path(
              self, filename, model, search_path, is_main_model=False,
              encoding='utf8', add_to_local_models=True):
          
          if (model):
              self.update_model_in_repo_based_on_filename(model)
          for the_path in search_path:
              full_filename = join(the_path, filename)
              # print(full_filename)
              if exists(full_filename):
                  the_metamodel = \
                      MetaModelProvider.get_metamodel(model, full_filename)
                  return self.load_model(the_metamodel,
                                         full_filename,
                                         is_main_model,
                                         encoding=encoding,
                                         add_to_local_models=add_to_local_models)
  
          raise IOError(
              errno.ENOENT, os.strerror(errno.ENOENT), filename)
docs: add a new model to all relevant objects
  
          Args:
              filename: models to be loaded
              model: model holding the loaded models in its _tx_model_repository
                     field (may be None).
              search_path: list of search directories.
  
          Returns:
              the loaded model