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 = [