import Annotated if needed (#16521)

This commit is contained in:
William Cheng 2023-09-07 14:36:45 +08:00 committed by GitHub
parent fbff32c5d7
commit dee536f7f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 24 additions and 22 deletions

View File

@ -1747,6 +1747,7 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co
@Override @Override
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) { public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
hasModelsToImport = false; hasModelsToImport = false;
boolean importAnnotated = false;
TreeSet<String> typingImports = new TreeSet<>(); TreeSet<String> typingImports = new TreeSet<>();
TreeSet<String> pydanticImports = new TreeSet<>(); TreeSet<String> pydanticImports = new TreeSet<>();
TreeSet<String> datetimeImports = new TreeSet<>(); TreeSet<String> datetimeImports = new TreeSet<>();
@ -1807,6 +1808,7 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co
param.vendorExtensions.put("x-py-typing", typing); param.vendorExtensions.put("x-py-typing", typing);
} else { } else {
param.vendorExtensions.put("x-py-typing", String.format(Locale.ROOT, "Annotated[%s, %s]", typing, fieldCustomization)); param.vendorExtensions.put("x-py-typing", String.format(Locale.ROOT, "Annotated[%s, %s]", typing, fieldCustomization));
importAnnotated = true;
} }
} }
@ -1838,6 +1840,12 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co
List<Map<String, String>> newImports = new ArrayList<>(); List<Map<String, String>> newImports = new ArrayList<>();
if (importAnnotated) {
Map<String, String> item = new HashMap<>();
item.put("import", String.format(Locale.ROOT, String.format(Locale.ROOT, "from typing_extensions import Annotated")));
newImports.add(item);
}
// need datetime import // need datetime import
if (!datetimeImports.isEmpty()) { if (!datetimeImports.isEmpty()) {
Map<String, String> item = new HashMap<>(); Map<String, String> item = new HashMap<>();

View File

@ -7,8 +7,9 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated{{#asyncio}} {{#asyncio}}
from typing import overload, Optional, Union, Awaitable{{/asyncio}} from typing import overload, Optional, Union, Awaitable
{{/asyncio}}
{{#imports}} {{#imports}}
{{import}} {{import}}

View File

@ -18,7 +18,6 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from openapi_client.api_client import ApiClient from openapi_client.api_client import ApiClient

View File

@ -18,8 +18,8 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing_extensions import Annotated
from pydantic import Field, StrictBytes, StrictStr, conlist from pydantic import Field, StrictBytes, StrictStr, conlist
from typing import Any, Dict, Optional, Union from typing import Any, Dict, Optional, Union

View File

@ -18,7 +18,6 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from pydantic import StrictBool, StrictInt, StrictStr from pydantic import StrictBool, StrictInt, StrictStr

View File

@ -18,7 +18,6 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from pydantic import StrictBool, StrictInt, StrictStr from pydantic import StrictBool, StrictInt, StrictStr

View File

@ -18,7 +18,6 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from pydantic import StrictInt, StrictStr from pydantic import StrictInt, StrictStr

View File

@ -18,7 +18,6 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from datetime import date, datetime from datetime import date, datetime

View File

@ -17,9 +17,9 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing import overload, Optional, Union, Awaitable from typing import overload, Optional, Union, Awaitable
from typing_extensions import Annotated
from pydantic import Field from pydantic import Field
from petstore_api.models.client import Client from petstore_api.models.client import Client

View File

@ -17,7 +17,6 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing import overload, Optional, Union, Awaitable from typing import overload, Optional, Union, Awaitable
from petstore_api.models.foo_get_default_response import FooGetDefaultResponse from petstore_api.models.foo_get_default_response import FooGetDefaultResponse

View File

@ -17,9 +17,9 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing import overload, Optional, Union, Awaitable from typing import overload, Optional, Union, Awaitable
from typing_extensions import Annotated
from datetime import date, datetime from datetime import date, datetime
from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr, conbytes, confloat, conint, conlist, constr, validator from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr, conbytes, confloat, conint, conlist, constr, validator

View File

@ -17,9 +17,9 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing import overload, Optional, Union, Awaitable from typing import overload, Optional, Union, Awaitable
from typing_extensions import Annotated
from pydantic import Field from pydantic import Field
from petstore_api.models.client import Client from petstore_api.models.client import Client

View File

@ -17,9 +17,9 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing import overload, Optional, Union, Awaitable from typing import overload, Optional, Union, Awaitable
from typing_extensions import Annotated
from pydantic import Field, StrictBytes, StrictInt, StrictStr, conlist, validator from pydantic import Field, StrictBytes, StrictInt, StrictStr, conlist, validator
from typing import List, Optional, Union from typing import List, Optional, Union

View File

@ -17,9 +17,9 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing import overload, Optional, Union, Awaitable from typing import overload, Optional, Union, Awaitable
from typing_extensions import Annotated
from pydantic import Field, StrictStr, conint from pydantic import Field, StrictStr, conint
from typing import Dict from typing import Dict

View File

@ -17,9 +17,9 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing import overload, Optional, Union, Awaitable from typing import overload, Optional, Union, Awaitable
from typing_extensions import Annotated
from pydantic import Field, StrictStr, conlist from pydantic import Field, StrictStr, conlist
from petstore_api.models.user import User from petstore_api.models.user import User

View File

@ -17,8 +17,8 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing_extensions import Annotated
from pydantic import Field from pydantic import Field
from petstore_api.models.client import Client from petstore_api.models.client import Client

View File

@ -17,7 +17,6 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from petstore_api.models.foo_get_default_response import FooGetDefaultResponse from petstore_api.models.foo_get_default_response import FooGetDefaultResponse

View File

@ -17,8 +17,8 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing_extensions import Annotated
from datetime import date, datetime from datetime import date, datetime
from pydantic import Field, StrictBool, StrictBytes, StrictFloat, StrictInt, StrictStr, conbytes, confloat, conint, conlist, constr, validator from pydantic import Field, StrictBool, StrictBytes, StrictFloat, StrictInt, StrictStr, conbytes, confloat, conint, conlist, constr, validator

View File

@ -17,8 +17,8 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing_extensions import Annotated
from pydantic import Field from pydantic import Field
from petstore_api.models.client import Client from petstore_api.models.client import Client

View File

@ -17,8 +17,8 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing_extensions import Annotated
from pydantic import Field, StrictBytes, StrictInt, StrictStr, conlist, validator from pydantic import Field, StrictBytes, StrictInt, StrictStr, conlist, validator
from typing import List, Optional, Union from typing import List, Optional, Union

View File

@ -17,8 +17,8 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing_extensions import Annotated
from pydantic import Field, StrictStr, conint from pydantic import Field, StrictStr, conint
from typing import Dict from typing import Dict

View File

@ -17,8 +17,8 @@ import io
import warnings import warnings
from pydantic import validate_arguments, ValidationError from pydantic import validate_arguments, ValidationError
from typing_extensions import Annotated
from typing_extensions import Annotated
from pydantic import Field, StrictStr, conlist from pydantic import Field, StrictStr, conlist
from petstore_api.models.user import User from petstore_api.models.user import User