def _dependency_nodes(self, step_context, dep_product): for dependency in getattr(dep_product, self.field or 'dependencies'): variants = self.variants if isinstance(dependency, Address): # If a subject has literal variants for particular dependencies, they win over all else. dependency, literal_variants = parse_variants(dependency) variants = Variants.merge(variants, literal_variants) yield SelectNode(dependency, self.product, variants, None)