tools/gen-cpydiff: Skip Black fmt comments.

Since cpydiff is code used as documentation, there are cases where we may
want to use Black's `fmt: on/off/skip` comments to avoid automatic
formatting.  However, we don't want these comments to be distracting in the
generated documentation.

This rewrites the code to omit these comments when generating the docs.

Signed-off-by: David Lechner <david@pybricks.com>
pull/8270/merge
David Lechner 2022-03-23 14:18:23 -05:00 zatwierdzone przez Damien George
rodzic e7a92c0e69
commit e7f6b9f4f7
1 zmienionych plików z 10 dodań i 0 usunięć

Wyświetl plik

@ -85,6 +85,16 @@ def readfiles():
class_, desc, cause, workaround, code = [
x.rstrip() for x in list(filter(None, re.split(SPLIT, text)))
]
# remove black `fmt: on/off/skip` comments
code = "".join(
# skip comments are inline, so we replace just the comment
re.sub(r"\s*# fmt: skip", "", x)
for x in code.splitlines(keepends=True)
# on/off comments are on their own line, so we omit the entire line
if not re.match(r"\s*# fmt: (on|off)\s*", x)
)
output = Output(test, class_, desc, cause, workaround, code, "", "", "")
files.append(output)
except IndexError: