Skip to main content

specs_intersect

Function specs_intersect 

Source
pub fn specs_intersect(a: &str, b: &str) -> bool
Expand description

Do two PEP 440 specifier sets have a non-empty intersection — i.e. does any version satisfy both a and b? Used to decide whether a declared range (e.g. >=2.0) permits a version that an advisory marks vulnerable (e.g. <2.11.3), without needing a concrete pin.

Sound finite sweep: every constraint’s truth value only changes at one of the boundary versions named in a/b. We test each boundary, a point just above each boundary, and a point below all of them; if any candidate satisfies both specifier sets, they intersect.