docs: def load_tasks(self, paths, propagate_exception=False):
          """ Loads all subclasses of BaseTask from modules that are contained in supplied directory paths or direct module paths
  
          :param propagate_exception: a flag that indicates if exceptions from single file import shall be raised during the
              whole directory lookup
          :param paths: an iterable of fully qualified paths to python modules / directories, from where we import subclasses of BaseClass
          :type paths: `iterable`(`str`)
          :return: a dict of CustomTasks, where key is CustomTask.name, and value is a CustomClass task itself
          :rtype: `dict`
          """
          try:
              result = {}
              for path in paths:
                  try:
                      if os.path.isdir(path):
                          result.update(self.load_tasks_from_dir(dir_path=path, propagate_exceptions=propagate_exception))
                      elif os.path.isfile(path):
                          result.update(self.load_tasks_from_file(file_path=path))
                  except (GOSTaskException, GOSIOException):
                      if propagate_exception:
                          raise
              return result
          except TypeError:
              raise GOSTaskException("Argument for `load_tasks` method must be iterable")