<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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")