From 0d9f4b90cee1b5c5d6c142ef22de1e246e003ccc Mon Sep 17 00:00:00 2001 From: adisbladis Date: Thu, 30 Jan 2025 15:25:48 +1300 Subject: [PATCH] pep723: Fix empty metadata lines throwing "Invalid metadata line: #" Closes https://github.com/pyproject-nix/uv2nix/issues/120 --- lib/pep723.nix | 2 +- lib/test_pep723.nix | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/pep723.nix b/lib/pep723.nix index 8ee66bf..870e7de 100644 --- a/lib/pep723.nix +++ b/lib/pep723.nix @@ -22,7 +22,7 @@ let stripComment = l: let - m = match " *# (.+)" l; + m = match " *# ?(.*)" l; in if match " *" l != null then l diff --git a/lib/test_pep723.nix b/lib/test_pep723.nix index 41f5814..7c8b66e 100644 --- a/lib/test_pep723.nix +++ b/lib/test_pep723.nix @@ -163,6 +163,34 @@ in }; }; + testEmptyLine = { + expr = + (pep723.parseScript '' + # /// script + # requires-python = ">=3.11" + # # Note: Empty line below + # + # /// + '').requires-python; + expected = [ + { + op = ">="; + version = { + dev = null; + epoch = 0; + local = null; + post = null; + pre = null; + release = [ + 3 + 11 + ]; + str = "3.11"; + }; + } + ]; + }; + # Note the empty line in the script. testHolyMetadata = { expr = pep723.parseScript ''