File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -433,6 +433,14 @@ def of(cls, *markers: BaseMarker) -> BaseMarker:
433
433
intersected = True
434
434
elif constraint_intersection .is_empty ():
435
435
return EmptyMarker ()
436
+ elif (
437
+ isinstance (constraint_intersection , VersionConstraint )
438
+ and constraint_intersection .is_simple ()
439
+ ):
440
+ new_markers [i ] = SingleMarker (
441
+ mark .name , constraint_intersection
442
+ )
443
+ intersected = True
436
444
elif isinstance (mark , MarkerUnion ):
437
445
intersection = mark .intersect (marker )
438
446
if isinstance (intersection , SingleMarker ):
Original file line number Diff line number Diff line change @@ -1176,3 +1176,16 @@ def test_union_should_drop_markers_if_their_complement_is_present(
1176
1176
)
1177
1177
def test_dnf (scheme : str , marker : BaseMarker , expected : BaseMarker ) -> None :
1178
1178
assert dnf (marker ) == expected
1179
+
1180
+
1181
+ def test_single_markers_are_found_in_complex_intersection () -> None :
1182
+ m1 = parse_marker ('implementation_name != "pypy" and python_version <= "3.6"' )
1183
+ m2 = parse_marker (
1184
+ 'python_version >= "3.6" and python_version < "4.0" and implementation_name =='
1185
+ ' "cpython"'
1186
+ )
1187
+ intersection = m1 .intersect (m2 )
1188
+ assert (
1189
+ str (intersection )
1190
+ == 'implementation_name == "cpython" and python_version == "3.6"'
1191
+ )
You can’t perform that action at this time.
0 commit comments