@@ -626,6 +626,27 @@ def complete_package(
626
626
dependencies .append (deps [0 ])
627
627
continue
628
628
629
+ # Sort out irrelevant requirements
630
+ overrides_marker_intersection : BaseMarker = AnyMarker ()
631
+ for dep_overrides in self ._overrides .values ():
632
+ for dep in dep_overrides .values ():
633
+ overrides_marker_intersection = (
634
+ overrides_marker_intersection .intersect (dep .marker )
635
+ )
636
+ deps = [
637
+ dep
638
+ for dep in deps
639
+ if not overrides_marker_intersection .intersect (dep .marker ).is_empty ()
640
+ ]
641
+ if len (deps ) < 2 :
642
+ if not deps or (len (deps ) == 1 and deps [0 ].constraint .is_empty ()):
643
+ msg = f"<debug>No relevant requirements for { dep_name } </debug>"
644
+ else :
645
+ msg = f"<debug>Only one relevant requirement for { dep_name } </debug>"
646
+ dependencies .append (deps [0 ])
647
+ self .debug (msg )
648
+ continue
649
+
629
650
# At this point, we raise an exception that will
630
651
# tell the solver to make new resolutions with specific overrides.
631
652
#
@@ -652,22 +673,14 @@ def fmt_warning(d: Dependency) -> str:
652
673
)
653
674
654
675
overrides = []
655
- overrides_marker_intersection : BaseMarker = AnyMarker ()
656
- for dep_overrides in self ._overrides .values ():
657
- for dep in dep_overrides .values ():
658
- overrides_marker_intersection = (
659
- overrides_marker_intersection .intersect (dep .marker )
660
- )
661
676
for dep in deps :
662
- if not overrides_marker_intersection .intersect (dep .marker ).is_empty ():
663
- current_overrides = self ._overrides .copy ()
664
- package_overrides = current_overrides .get (package , {}).copy ()
665
- package_overrides .update ({dep .name : dep })
666
- current_overrides .update ({package : package_overrides })
667
- overrides .append (current_overrides )
668
-
669
- if overrides :
670
- raise OverrideNeededError (* overrides )
677
+ current_overrides = self ._overrides .copy ()
678
+ package_overrides = current_overrides .get (package , {}).copy ()
679
+ package_overrides .update ({dep .name : dep })
680
+ current_overrides .update ({package : package_overrides })
681
+ overrides .append (current_overrides )
682
+
683
+ raise OverrideNeededError (* overrides )
671
684
672
685
# Modifying dependencies as needed
673
686
clean_dependencies = []
0 commit comments