def iter_parts(self):
        def walk_parts(source, visited=list()):
            for rel in source.rels.values():
                if rel.is_external:
                    continue
                part = rel.target_part
                if part in visited:
                    continue
                visited.append(part)
                yield part
                new_source = part
                for part in walk_parts(new_source, visited):
                    yield part

        for part in walk_parts(self):
            yield part
updateContents(inputPorts: tuple)
dataset/ETHPy150Open scanny/python-pptx/pptx/opc/package.py/OpcPackage.iter_parts--crossover with--dataset/ETHPy150Open VisTrails/VisTrails/contrib/titan/vtkviewcell.py/QVTKViewWidget.updateContents