Skip to content

Commit 8a7c0af

Browse files
committed
cleanup
1 parent 918a028 commit 8a7c0af

18 files changed

Lines changed: 35 additions & 18 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ public String generatePackageName(String packageName) {
442442

443443
@Override
444444
public String generatorLanguageVersion() {
445-
return "3.9+";
445+
return "3.11+";
446446
}
447447

448448
@Override
@@ -454,6 +454,23 @@ protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Sc
454454
}
455455
}
456456

457+
@Override
458+
public CodegenModel fromModel(String name, Schema model) {
459+
CodegenModel codegenModel = super.fromModel(name, model);
460+
setEnumDiscriminatorDefaultValue(codegenModel);
461+
462+
// Additional logic: mark className fields as discriminators for Pydantic v2 compatibility
463+
if (codegenModel.vars != null) {
464+
for (CodegenProperty property : codegenModel.vars) {
465+
if ("className".equals(property.baseName)) {
466+
property.isDiscriminator = true;
467+
}
468+
}
469+
}
470+
471+
return codegenModel;
472+
}
473+
457474
@Override
458475
public String escapeReservedWord(String name) {
459476
if (this.reservedWordsMappings().containsKey(name)) {

modules/openapi-generator/src/main/resources/python/model_generic.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
6262
{{/isEnum}}
6363
{{^isEnum}}
6464
{{#isDiscriminator}}
65-
{{name}}: Literal['{{{vendorExtensions.x-py-discriminator-value}}}'] = Field(
65+
{{name}}: Literal['{{classname}}'] = Field(
6666
{{#required}}...{{/required}}{{^required}}None{{/required}},
6767
description="{{description}}{{^description}}{{{name}}} of the {{classname}}{{/description}}",
6868
alias="{{{baseName}}}"

samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/animal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class Animal(BaseModel):
3232
"""
3333
Animal
3434
""" # noqa: E501
35-
class_name: Literal[''] = Field(
35+
class_name: Literal['Animal'] = Field(
3636
...,
3737
description="class_name of the Animal",
3838
alias="className"

samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/base_discriminator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class BaseDiscriminator(BaseModel):
3232
"""
3333
BaseDiscriminator
3434
""" # noqa: E501
35-
type_name: Literal[''] = Field(
35+
type_name: Literal['BaseDiscriminator'] = Field(
3636
None,
3737
description="type_name of the BaseDiscriminator",
3838
alias="_typeName"

samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/creature.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class Creature(BaseModel):
3333
Creature
3434
""" # noqa: E501
3535
info: CreatureInfo
36-
type: Literal[''] = Field(
36+
type: Literal['Creature'] = Field(
3737
...,
3838
description="type of the Creature",
3939
alias="type"

samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/discriminator_all_of_super.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class DiscriminatorAllOfSuper(BaseModel):
3131
"""
3232
DiscriminatorAllOfSuper
3333
""" # noqa: E501
34-
element_type: Literal[''] = Field(
34+
element_type: Literal['DiscriminatorAllOfSuper'] = Field(
3535
...,
3636
description="element_type of the DiscriminatorAllOfSuper",
3737
alias="elementType"

samples/openapi3/client/petstore/python-httpx/petstore_api/models/animal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class Animal(BaseModel):
3232
"""
3333
Animal
3434
""" # noqa: E501
35-
class_name: Literal[''] = Field(
35+
class_name: Literal['Animal'] = Field(
3636
...,
3737
description="class_name of the Animal",
3838
alias="className"

samples/openapi3/client/petstore/python-httpx/petstore_api/models/base_discriminator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class BaseDiscriminator(BaseModel):
3232
"""
3333
BaseDiscriminator
3434
""" # noqa: E501
35-
type_name: Literal[''] = Field(
35+
type_name: Literal['BaseDiscriminator'] = Field(
3636
None,
3737
description="type_name of the BaseDiscriminator",
3838
alias="_typeName"

samples/openapi3/client/petstore/python-httpx/petstore_api/models/creature.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class Creature(BaseModel):
3333
Creature
3434
""" # noqa: E501
3535
info: CreatureInfo
36-
type: Literal[''] = Field(
36+
type: Literal['Creature'] = Field(
3737
...,
3838
description="type of the Creature",
3939
alias="type"

samples/openapi3/client/petstore/python-httpx/petstore_api/models/discriminator_all_of_super.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class DiscriminatorAllOfSuper(BaseModel):
3131
"""
3232
DiscriminatorAllOfSuper
3333
""" # noqa: E501
34-
element_type: Literal[''] = Field(
34+
element_type: Literal['DiscriminatorAllOfSuper'] = Field(
3535
...,
3636
description="element_type of the DiscriminatorAllOfSuper",
3737
alias="elementType"

0 commit comments

Comments
 (0)