Fix global keyword reassignment (#265)

fix `global` keyword reassignment
This commit is contained in:
Greg Sweeney
2024-09-10 10:54:52 -04:00
committed by GitHub
parent 4e5442cbae
commit f22663cf5c

View File

@ -1436,7 +1436,7 @@ def generateUnionType(
else:
template_info["types"].append(
{
"name": type,
"name": rename_if_keyword(type),
"var0": randletter(),
"var1": randletter(),
"check": "type",
@ -1688,7 +1688,7 @@ def generateObjectTypeCode(
template_info: TemplateType = {
"fields": fields,
"description": description,
"name": name,
"name": rename_if_keyword(name),
"imports": imports,
}
@ -1943,6 +1943,14 @@ def clean_parameter_name(name: str):
return camel_to_snake(name).replace("from", "from_")
def rename_if_keyword(name: str):
"""Rename a name if it is also a Python keyword."""
KEYWORDS = ["global"] # there are more, but this is the only one we overlap now
if name in KEYWORDS:
return name + "_"
return name
def camel_to_snake(name: str):
name = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name)
return re.sub("([a-z0-9])([A-Z])", r"\1_\2", name).lower().replace("-", "_")