From c2088af78dbd474f6db26cc3eddeef25ae1cf8d2 Mon Sep 17 00:00:00 2001 From: konsti Date: Thu, 22 Aug 2024 10:15:47 +0200 Subject: [PATCH] Hint at missing quote in marker (#6414) For https://github.com/astral-sh/uv/issues/6379#issuecomment-2303074836. Input: `name; python_version == 3.10` Error: ``` Expected a quoted string or a valid marker name, found '3.10' name; python_version == 3.10 ^^^^ ``` --- crates/pep508-rs/src/lib.rs | 22 ++++++++++++++++++---- crates/pep508-rs/src/marker/parse.rs | 2 +- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/crates/pep508-rs/src/lib.rs b/crates/pep508-rs/src/lib.rs index 740789e6e..32584550b 100644 --- a/crates/pep508-rs/src/lib.rs +++ b/crates/pep508-rs/src/lib.rs @@ -1645,9 +1645,10 @@ mod tests { assert_snapshot!( parse_pep508_err(r"name; invalid_name"), @" - Expected a valid marker name, found 'invalid_name' + Expected a quoted string or a valid marker name, found 'invalid_name' name; invalid_name - ^^^^^^^^^^^^" + ^^^^^^^^^^^^ + " ); } @@ -1656,9 +1657,10 @@ mod tests { assert_snapshot!( parse_pep508_err("name; '3.7' <= invalid_name"), @" - Expected a valid marker name, found 'invalid_name' + Expected a quoted string or a valid marker name, found 'invalid_name' name; '3.7' <= invalid_name - ^^^^^^^^^^^^" + ^^^^^^^^^^^^ + " ); } @@ -1673,6 +1675,18 @@ mod tests { ); } + #[test] + fn error_missing_quote() { + assert_snapshot!( + parse_pep508_err("name; python_version == 3.10"), + @" + Expected a quoted string or a valid marker name, found '3.10' + name; python_version == 3.10 + ^^^^ + " + ); + } + #[test] fn error_markers_inpython_version() { assert_snapshot!( diff --git a/crates/pep508-rs/src/marker/parse.rs b/crates/pep508-rs/src/marker/parse.rs index a45fa6c1c..0a52b0db9 100644 --- a/crates/pep508-rs/src/marker/parse.rs +++ b/crates/pep508-rs/src/marker/parse.rs @@ -103,7 +103,7 @@ pub(crate) fn parse_marker_value( let key = cursor.slice(start, len); MarkerValue::from_str(key).map_err(|_| Pep508Error { message: Pep508ErrorSource::String(format!( - "Expected a valid marker name, found '{key}'" + "Expected a quoted string or a valid marker name, found '{key}'" )), start, len,