diff --git a/cibuildwheel/util.py b/cibuildwheel/util.py index 5cf5d7f24..2b1c28447 100644 --- a/cibuildwheel/util.py +++ b/cibuildwheel/util.py @@ -68,7 +68,7 @@ def format_safe(template: str, **kwargs: Any) -> str: for key, value in kwargs.items(): find_pattern = re.compile( fr""" - (? str: ) # transform escaped sequences into their literal equivalents - result = result.replace(f"\\{{{key}}}", f"{{{key}}}") + result = result.replace(f"#{{{key}}}", f"{{{key}}}") return result diff --git a/unit_test/utils_test.py b/unit_test/utils_test.py index cdd7a2da1..41e376fa3 100644 --- a/unit_test/utils_test.py +++ b/unit_test/utils_test.py @@ -3,8 +3,8 @@ def test_format_safe(): assert format_safe("{wheel}", wheel="filename.whl") == "filename.whl" - assert format_safe("command \\{wheel}", wheel="filename.whl") == "command {wheel}" - assert format_safe("{command \\{wheel}}", wheel="filename.whl") == "{command {wheel}}" + assert format_safe("command #{wheel}", wheel="filename.whl") == "command {wheel}" + assert format_safe("{command #{wheel}}", wheel="filename.whl") == "{command {wheel}}" # check unmatched brackets assert format_safe("{command {wheel}", wheel="filename.whl") == "{command filename.whl" @@ -15,6 +15,10 @@ def test_format_safe(): == "find . -name * -exec ls -a {} \\;" ) + assert format_safe("{param} {param}", param="1") == "1 1" + assert format_safe("# {param} {param}", param="1") == "# 1 1" + assert format_safe("#{not_a_param} {param}", param="1") == "#{not_a_param} 1" + def test_prepare_command(): assert prepare_command("python -m {project}", project="project") == "python -m project"