[python-nextgen] fix #16151 Disallow additional properties if not present - missing Any and Dict import (#16208)

* [python-nextgen] fix #16151 Disallow additional properties if not present - missing Any and Dict import

Signed-off-by: ふぁ <yuki@yuki0311.com>

* [python-nextgen] update samples

Signed-off-by: ふぁ <yuki@yuki0311.com>

* [python-nextgen] remove unwanted imports

Signed-off-by: ふぁ <yuki@yuki0311.com>

* [python-nextgen] update samples

Signed-off-by: ふぁ <yuki@yuki0311.com>

* [python-nextgen] remove unwanted imports

Signed-off-by: ふぁ <yuki@yuki0311.com>

* [python-nextgen] update samples

Signed-off-by: ふぁ <yuki@yuki0311.com>

---------

Signed-off-by: ふぁ <yuki@yuki0311.com>
This commit is contained in:
ふぁ 2023-07-29 11:51:28 +09:00 committed by GitHub
parent e411b2ac0a
commit d9fc039dcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
60 changed files with 71 additions and 65 deletions

View File

@ -1239,6 +1239,14 @@ public class PythonClientCodegen extends AbstractPythonCodegen implements Codege
codegenProperties = model.vars; codegenProperties = model.vars;
} }
// if model_generic.mustache is used
if (model.oneOf.isEmpty() && !model.isEnum) {
if (!this.disallowAdditionalPropertiesIfNotPresent) {
typingImports.add("Dict");
typingImports.add("Any");
}
}
//loop through properties/schemas to set up typing, pydantic //loop through properties/schemas to set up typing, pydantic
for (CodegenProperty cp : codegenProperties) { for (CodegenProperty cp : codegenProperties) {
String typing = getPydanticType(cp, typingImports, pydanticImports, datetimeImports, modelImports, exampleImports, model.classname); String typing = getPydanticType(cp, typingImports, pydanticImports, datetimeImports, modelImports, exampleImports, model.classname);
@ -1314,13 +1322,11 @@ public class PythonClientCodegen extends AbstractPythonCodegen implements Codege
} }
} }
if (!model.isEnum) {
pydanticImports.add("BaseModel");
}
// add parent model to import // add parent model to import
if (!StringUtils.isEmpty(model.parent)) { if (!StringUtils.isEmpty(model.parent)) {
modelImports.add(model.parent); modelImports.add(model.parent);
} else if (!model.isEnum) {
pydanticImports.add("BaseModel");
} }
// set enum type in extensions and update `name` in enumVars // set enum type in extensions and update `name` in enumVars

View File

@ -20,7 +20,7 @@ import json
from datetime import datetime from datetime import datetime
from typing import Optional from typing import Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import Field, StrictStr
from openapi_client.models.query import Query from openapi_client.models.query import Query
class DataQuery(Query): class DataQuery(Query):

View File

@ -19,7 +19,7 @@ import json
from typing import Optional from typing import Optional
from pydantic import BaseModel, StrictBool from pydantic import StrictBool
from petstore_api.models.animal import Animal from petstore_api.models.animal import Animal
class Cat(Animal): class Cat(Animal):

View File

@ -19,7 +19,7 @@ import json
from typing import Optional from typing import Optional
from pydantic import BaseModel, StrictStr from pydantic import StrictStr
from petstore_api.models.animal import Animal from petstore_api.models.animal import Animal
class Dog(Animal): class Dog(Animal):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Dict, Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class AdditionalPropertiesClass(BaseModel): class AdditionalPropertiesClass(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
from petstore_api.models.single_ref_type import SingleRefType from petstore_api.models.single_ref_type import SingleRefType

View File

@ -19,7 +19,7 @@ import json
import petstore_api.models import petstore_api.models
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class Animal(BaseModel): class Animal(BaseModel):

View File

@ -18,7 +18,7 @@ import json
import pprint import pprint
import re # noqa: F401 import re # noqa: F401
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, conlist, constr, validator from pydantic import BaseModel, Field, StrictStr, ValidationError, conint, conlist, constr, validator
from typing import Union, Any, List, TYPE_CHECKING from typing import Union, Any, List, TYPE_CHECKING
from pydantic import StrictStr, Field from pydantic import StrictStr, Field

View File

@ -18,7 +18,7 @@ import json
import pprint import pprint
import re # noqa: F401 import re # noqa: F401
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr, ValidationError, validator from pydantic import BaseModel, Field, StrictStr, ValidationError, validator
from petstore_api.models.basque_pig import BasquePig from petstore_api.models.basque_pig import BasquePig
from petstore_api.models.danish_pig import DanishPig from petstore_api.models.danish_pig import DanishPig

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictInt, StrictStr from pydantic import BaseModel, StrictInt, StrictStr
class ApiResponse(BaseModel): class ApiResponse(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, conlist from pydantic import BaseModel, conlist
from petstore_api.models.tag import Tag from petstore_api.models.tag import Tag

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, StrictFloat, conlist from pydantic import BaseModel, Field, StrictFloat, conlist
class ArrayOfArrayOfNumberOnly(BaseModel): class ArrayOfArrayOfNumberOnly(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, StrictFloat, conlist from pydantic import BaseModel, Field, StrictFloat, conlist
class ArrayOfNumberOnly(BaseModel): class ArrayOfNumberOnly(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, StrictInt, StrictStr, conlist from pydantic import BaseModel, StrictInt, StrictStr, conlist
from petstore_api.models.read_only_first import ReadOnlyFirst from petstore_api.models.read_only_first import ReadOnlyFirst

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Any, Dict
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class BasquePig(BaseModel): class BasquePig(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class Capitalization(BaseModel): class Capitalization(BaseModel):

View File

@ -18,8 +18,8 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictBool from pydantic import StrictBool
from petstore_api.models.animal import Animal from petstore_api.models.animal import Animal
class Cat(Animal): class Cat(Animal):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt, StrictStr from pydantic import BaseModel, Field, StrictInt, StrictStr
class Category(BaseModel): class Category(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictInt from pydantic import BaseModel, StrictInt
class CircularReferenceModel(BaseModel): class CircularReferenceModel(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class ClassModel(BaseModel): class ClassModel(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class Client(BaseModel): class Client(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Any, Dict
from pydantic import BaseModel, Field, StrictInt, StrictStr from pydantic import BaseModel, Field, StrictInt, StrictStr
class DanishPig(BaseModel): class DanishPig(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class DeprecatedObject(BaseModel): class DeprecatedObject(BaseModel):

View File

@ -18,8 +18,8 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import StrictStr
from petstore_api.models.animal import Animal from petstore_api.models.animal import Animal
class Dog(Animal): class Dog(Animal):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class DummyModel(BaseModel): class DummyModel(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, StrictStr, conlist, validator from pydantic import BaseModel, StrictStr, conlist, validator
class EnumArrays(BaseModel): class EnumArrays(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, validator from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, validator
from petstore_api.models.outer_enum import OuterEnum from petstore_api.models.outer_enum import OuterEnum
from petstore_api.models.outer_enum_default_value import OuterEnumDefaultValue from petstore_api.models.outer_enum_default_value import OuterEnumDefaultValue

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class File(BaseModel): class File(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, conlist from pydantic import BaseModel, conlist
from petstore_api.models.file import File from petstore_api.models.file import File

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class FirstRef(BaseModel): class FirstRef(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class Foo(BaseModel): class Foo(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel from pydantic import BaseModel
from petstore_api.models.foo import Foo from petstore_api.models.foo import Foo

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from datetime import date, datetime from datetime import date, datetime
from typing import Optional, Union from typing import Any, Dict, Optional, Union
from pydantic import BaseModel, Field, StrictBytes, StrictInt, StrictStr, condecimal, confloat, conint, constr, validator from pydantic import BaseModel, Field, StrictBytes, StrictInt, StrictStr, condecimal, confloat, conint, constr, validator
class FormatTest(BaseModel): class FormatTest(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class HasOnlyReadOnly(BaseModel): class HasOnlyReadOnly(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class HealthCheckResult(BaseModel): class HealthCheckResult(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class List(BaseModel): class List(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Dict, List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, conlist from pydantic import BaseModel, Field, conlist
from petstore_api.models.tag import Tag from petstore_api.models.tag import Tag

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Dict, Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictBool, StrictStr, validator from pydantic import BaseModel, StrictBool, StrictStr, validator
class MapTest(BaseModel): class MapTest(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from datetime import datetime from datetime import datetime
from typing import Dict, Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
from petstore_api.models.animal import Animal from petstore_api.models.animal import Animal

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt, StrictStr from pydantic import BaseModel, Field, StrictInt, StrictStr
class Model200Response(BaseModel): class Model200Response(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt from pydantic import BaseModel, Field, StrictInt
class ModelReturn(BaseModel): class ModelReturn(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt, StrictStr from pydantic import BaseModel, Field, StrictInt, StrictStr
class Name(BaseModel): class Name(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt, constr, validator from pydantic import BaseModel, Field, StrictInt, constr, validator
class NullableProperty(BaseModel): class NullableProperty(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictFloat from pydantic import BaseModel, Field, StrictFloat
class NumberOnly(BaseModel): class NumberOnly(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, StrictFloat, StrictStr, conlist from pydantic import BaseModel, Field, StrictFloat, StrictStr, conlist
from petstore_api.models.deprecated_object import DeprecatedObject from petstore_api.models.deprecated_object import DeprecatedObject

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from datetime import datetime from datetime import datetime
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr, validator from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr, validator
class Order(BaseModel): class Order(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictBool, StrictFloat, StrictStr from pydantic import BaseModel, StrictBool, StrictFloat, StrictStr
class OuterComposite(BaseModel): class OuterComposite(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from petstore_api.models.outer_enum import OuterEnum from petstore_api.models.outer_enum import OuterEnum
from petstore_api.models.outer_enum_integer import OuterEnumInteger from petstore_api.models.outer_enum_integer import OuterEnumInteger

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Dict, Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from petstore_api.models.inner_dict_with_property import InnerDictWithProperty from petstore_api.models.inner_dict_with_property import InnerDictWithProperty

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Dict, Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from petstore_api.models.inner_dict_with_property import InnerDictWithProperty from petstore_api.models.inner_dict_with_property import InnerDictWithProperty

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import List, Optional from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field, StrictInt, StrictStr, conlist, validator from pydantic import BaseModel, Field, StrictInt, StrictStr, conlist, validator
from petstore_api.models.category import Category from petstore_api.models.category import Category
from petstore_api.models.tag import Tag from petstore_api.models.tag import Tag

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictStr from pydantic import BaseModel, Field, StrictStr
class PropertyNameCollision(BaseModel): class PropertyNameCollision(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class ReadOnlyFirst(BaseModel): class ReadOnlyFirst(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictStr from pydantic import BaseModel, StrictStr
class SecondRef(BaseModel): class SecondRef(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictInt from pydantic import BaseModel, StrictInt
class SelfReferenceModel(BaseModel): class SelfReferenceModel(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt from pydantic import BaseModel, Field, StrictInt
class SpecialModelName(BaseModel): class SpecialModelName(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt, StrictStr, validator from pydantic import BaseModel, Field, StrictInt, StrictStr, validator
from petstore_api.models.category import Category from petstore_api.models.category import Category

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictInt, StrictStr from pydantic import BaseModel, StrictInt, StrictStr
class Tag(BaseModel): class Tag(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, Field, StrictInt, StrictStr from pydantic import BaseModel, Field, StrictInt, StrictStr
class User(BaseModel): class User(BaseModel):

View File

@ -18,7 +18,7 @@ import re # noqa: F401
import json import json
from typing import Optional from typing import Any, Dict, Optional
from pydantic import BaseModel, StrictInt from pydantic import BaseModel, StrictInt
from petstore_api.models.one_of_enum_string import OneOfEnumString from petstore_api.models.one_of_enum_string import OneOfEnumString
from petstore_api.models.pig import Pig from petstore_api.models.pig import Pig