Fixes #721. Remove self-link dependency pulled in sometimes by extras (#730)
diff --git a/python/pip_install/extract_wheels/lib/bazel.py b/python/pip_install/extract_wheels/lib/bazel.py index 4b6a4ff..aaca68b 100644 --- a/python/pip_install/extract_wheels/lib/bazel.py +++ b/python/pip_install/extract_wheels/lib/bazel.py
@@ -384,7 +384,10 @@ setup_namespace_pkg_compatibility(directory) extras_requested = extras[whl.name] if whl.name in extras else set() - whl_deps = sorted(whl.dependencies(extras_requested)) + # Packages may create dependency cycles when specifying optional-dependencies / 'extras'. + # Example: github.com/google/etils/blob/a0b71032095db14acf6b33516bca6d885fe09e35/pyproject.toml#L32. + self_edge_dep = set([whl.name]) + whl_deps = sorted(whl.dependencies(extras_requested) - self_edge_dep) if incremental: sanitised_dependencies = [