Skip to content

Commit 73fd1b5

Browse files
committed
fix propery name conversion
1 parent 9430d18 commit 73fd1b5

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

src/openapi_python_generator/language_converters/python/common.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,11 @@ def normalize_symbol(symbol: str) -> str:
5555
if normalized_symbol in keyword.kwlist:
5656
normalized_symbol = normalized_symbol + "_"
5757
return normalized_symbol
58+
59+
60+
def safe_property_name(name: str) -> str:
61+
return re.sub(
62+
r"^(\d.*)",
63+
r"var_\1",
64+
name.replace("@", "").replace("-", "_"),
65+
)

src/openapi_python_generator/language_converters/python/jinja_config.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
def create_jinja_env():
2121
custom_template_path = common.get_custom_template_path()
22-
return Environment(
22+
environment = Environment(
2323
loader=(
2424
ChoiceLoader(
2525
[
@@ -33,3 +33,5 @@ def create_jinja_env():
3333
autoescape=True,
3434
trim_blocks=True,
3535
)
36+
environment.filters["safe_property_name"] = common.safe_property_name
37+
return environment

src/openapi_python_generator/language_converters/python/templates/models.jinja2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ class {{ schema_name }}(BaseModel):
1818
"""
1919
{% for property in properties %}
2020

21-
{{ property.name | replace("@","") | replace("-","_") }} : {{ property.type.converted_type | safe }} = Field(alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %})
21+
{{ property.name | replace("@","") | replace("-","_") | replace("90d","var_90d") }} : {{ property.type.converted_type | safe }} = Field(alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %})
2222
{% endfor %}

src/openapi_python_generator/language_converters/python/templates/models_pydantic_2.jinja2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ class {{ schema_name }}(BaseModel):
2222
}
2323
{% for property in properties %}
2424

25-
{{ property.name | replace("@","") | replace("-","_") }} : {{ property.type.converted_type | safe }} = Field(validation_alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %})
26-
{% endfor %}
25+
{{ property.name | safe_property_name }} : {{ property.type.converted_type | safe }} = Field(validation_alias="{{ property.name }}" {% if not property.required %}, default = {{ property.default }} {% endif %})
26+
{% endfor %}

0 commit comments

Comments
 (0)