diff --git a/crates/pypi-types/src/lenient_requirement.rs b/crates/pypi-types/src/lenient_requirement.rs index e74642414..edf29f882 100644 --- a/crates/pypi-types/src/lenient_requirement.rs +++ b/crates/pypi-types/src/lenient_requirement.rs @@ -14,7 +14,7 @@ static MISSING_COMMA: Lazy = Lazy::new(|| Regex::new(r"(\d)([<>=~^!])").u static NOT_EQUAL_TILDE: Lazy = Lazy::new(|| Regex::new(r"!=~((?:\d\.)*\d)").unwrap()); /// Ex) `>=1.9.*`, `<3.4.*` static INVALID_TRAILING_DOT_STAR: Lazy = - Lazy::new(|| Regex::new(r"(<=|>=|<|>)(\d+\.\d+)\.\*").unwrap()); + Lazy::new(|| Regex::new(r"(<=|>=|<|>)(\d+(\.\d+)?)\.\*").unwrap()); /// Ex) `!=3.0*` static MISSING_DOT: Lazy = Lazy::new(|| Regex::new(r"(\d\.\d)+\*").unwrap()); /// Ex) `>=3.6,` @@ -216,6 +216,10 @@ mod tests { .into(); let expected: VersionSpecifiers = VersionSpecifiers::from_str(">=1.9").unwrap(); assert_eq!(actual, expected); + + let actual: VersionSpecifiers = LenientVersionSpecifiers::from_str(">=1.*").unwrap().into(); + let expected: VersionSpecifiers = VersionSpecifiers::from_str(">=1").unwrap(); + assert_eq!(actual, expected); } #[test]