diff --git a/pollination_dsl/common.py b/pollination_dsl/common.py index 28dd355..7430ffe 100644 --- a/pollination_dsl/common.py +++ b/pollination_dsl/common.py @@ -1,6 +1,5 @@ from dataclasses import dataclass from typing import NamedTuple, Dict, List -import importlib from collections import namedtuple import importlib_metadata import re diff --git a/pollination_dsl/dag/base.py b/pollination_dsl/dag/base.py index 271f7db..6a6e18e 100644 --- a/pollination_dsl/dag/base.py +++ b/pollination_dsl/dag/base.py @@ -103,7 +103,7 @@ def _dependencies(self): cls = self.__class__ dag_package = self._package dependencies = {'plugin': [], 'recipe': [], 'dag': []} - for method_name, method in inspect.getmembers(cls): + for _, method in inspect.getmembers(cls): # try to get decorator qb_dec = getattr(method, '__decorator__', None) if qb_dec == 'task': @@ -122,4 +122,12 @@ def _dependencies(self): if tt._package not in dependencies['plugin']: dependencies['plugin'].append(tt._package) + # add dependencies of dag dependencies + for dag in dependencies['dag']: + deps = dag._dependencies + for key, sub_deps in deps.items(): + for v in sub_deps: + if v not in dependencies[key]: + dependencies[key].append(v) + return dependencies