@autorest/python 6.38.1 → 6.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -27
- package/autorest/codegen.py +0 -1
- package/autorest/jsonrpc/server.py +0 -3
- package/generator/build/lib/pygen/__init__.py +14 -23
- package/generator/build/lib/pygen/codegen/__init__.py +4 -4
- package/generator/build/lib/pygen/codegen/models/__init__.py +2 -2
- package/generator/build/lib/pygen/codegen/models/base.py +9 -12
- package/generator/build/lib/pygen/codegen/models/base_builder.py +4 -6
- package/generator/build/lib/pygen/codegen/models/client.py +61 -102
- package/generator/build/lib/pygen/codegen/models/code_model.py +29 -29
- package/generator/build/lib/pygen/codegen/models/combined_type.py +7 -7
- package/generator/build/lib/pygen/codegen/models/constant_type.py +4 -11
- package/generator/build/lib/pygen/codegen/models/credential_types.py +9 -11
- package/generator/build/lib/pygen/codegen/models/dictionary_type.py +7 -8
- package/generator/build/lib/pygen/codegen/models/enum_type.py +7 -7
- package/generator/build/lib/pygen/codegen/models/imports.py +24 -29
- package/generator/build/lib/pygen/codegen/models/list_type.py +15 -14
- package/generator/build/lib/pygen/codegen/models/lro_operation.py +6 -6
- package/generator/build/lib/pygen/codegen/models/lro_paging_operation.py +2 -2
- package/generator/build/lib/pygen/codegen/models/model_type.py +11 -11
- package/generator/build/lib/pygen/codegen/models/operation.py +26 -56
- package/generator/build/lib/pygen/codegen/models/operation_group.py +11 -22
- package/generator/build/lib/pygen/codegen/models/paging_operation.py +15 -19
- package/generator/build/lib/pygen/codegen/models/parameter.py +12 -21
- package/generator/build/lib/pygen/codegen/models/parameter_list.py +37 -39
- package/generator/build/lib/pygen/codegen/models/primitive_types.py +24 -18
- package/generator/build/lib/pygen/codegen/models/property.py +10 -10
- package/generator/build/lib/pygen/codegen/models/request_builder.py +7 -8
- package/generator/build/lib/pygen/codegen/models/request_builder_parameter.py +3 -3
- package/generator/build/lib/pygen/codegen/models/response.py +15 -40
- package/generator/build/lib/pygen/codegen/models/utils.py +2 -2
- package/generator/build/lib/pygen/codegen/serializers/__init__.py +26 -42
- package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +103 -100
- package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +22 -25
- package/generator/build/lib/pygen/codegen/serializers/enum_serializer.py +2 -2
- package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +49 -61
- package/generator/build/lib/pygen/codegen/serializers/import_serializer.py +6 -7
- package/generator/build/lib/pygen/codegen/serializers/model_init_serializer.py +1 -2
- package/generator/build/lib/pygen/codegen/serializers/model_serializer.py +15 -17
- package/generator/build/lib/pygen/codegen/serializers/operation_groups_serializer.py +3 -3
- package/generator/build/lib/pygen/codegen/serializers/operations_init_serializer.py +5 -6
- package/generator/build/lib/pygen/codegen/serializers/parameter_serializer.py +28 -18
- package/generator/build/lib/pygen/codegen/serializers/patch_serializer.py +1 -2
- package/generator/build/lib/pygen/codegen/serializers/request_builders_serializer.py +1 -2
- package/generator/build/lib/pygen/codegen/serializers/sample_serializer.py +9 -14
- package/generator/build/lib/pygen/codegen/serializers/test_serializer.py +7 -7
- package/generator/build/lib/pygen/codegen/serializers/utils.py +2 -2
- package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +30 -24
- package/generator/build/lib/pygen/codegen/templates/model_dpg.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/operation_group.py.jinja2 +1 -11
- package/generator/build/lib/pygen/codegen/templates/operations_folder_init.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/CHANGELOG.md.jinja2 +2 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +13 -2
- package/generator/build/lib/pygen/codegen/templates/patch.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/serialization.py.jinja2 +11 -13
- package/generator/build/lib/pygen/codegen/templates/utils.py.jinja2 +6 -6
- package/generator/build/lib/pygen/preprocess/__init__.py +47 -30
- package/generator/build/lib/pygen/preprocess/helpers.py +2 -2
- package/generator/build/lib/pygen/utils.py +6 -6
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/__init__.py +14 -23
- package/generator/pygen/codegen/__init__.py +4 -4
- package/generator/pygen/codegen/models/__init__.py +2 -2
- package/generator/pygen/codegen/models/base.py +9 -12
- package/generator/pygen/codegen/models/base_builder.py +4 -6
- package/generator/pygen/codegen/models/client.py +61 -102
- package/generator/pygen/codegen/models/code_model.py +29 -29
- package/generator/pygen/codegen/models/combined_type.py +7 -7
- package/generator/pygen/codegen/models/constant_type.py +4 -11
- package/generator/pygen/codegen/models/credential_types.py +9 -11
- package/generator/pygen/codegen/models/dictionary_type.py +7 -8
- package/generator/pygen/codegen/models/enum_type.py +7 -7
- package/generator/pygen/codegen/models/imports.py +24 -29
- package/generator/pygen/codegen/models/list_type.py +15 -14
- package/generator/pygen/codegen/models/lro_operation.py +6 -6
- package/generator/pygen/codegen/models/lro_paging_operation.py +2 -2
- package/generator/pygen/codegen/models/model_type.py +11 -11
- package/generator/pygen/codegen/models/operation.py +26 -56
- package/generator/pygen/codegen/models/operation_group.py +11 -22
- package/generator/pygen/codegen/models/paging_operation.py +15 -19
- package/generator/pygen/codegen/models/parameter.py +12 -21
- package/generator/pygen/codegen/models/parameter_list.py +37 -39
- package/generator/pygen/codegen/models/primitive_types.py +24 -18
- package/generator/pygen/codegen/models/property.py +10 -10
- package/generator/pygen/codegen/models/request_builder.py +7 -8
- package/generator/pygen/codegen/models/request_builder_parameter.py +3 -3
- package/generator/pygen/codegen/models/response.py +15 -40
- package/generator/pygen/codegen/models/utils.py +2 -2
- package/generator/pygen/codegen/serializers/__init__.py +26 -42
- package/generator/pygen/codegen/serializers/builder_serializer.py +103 -100
- package/generator/pygen/codegen/serializers/client_serializer.py +22 -25
- package/generator/pygen/codegen/serializers/enum_serializer.py +2 -2
- package/generator/pygen/codegen/serializers/general_serializer.py +49 -61
- package/generator/pygen/codegen/serializers/import_serializer.py +6 -7
- package/generator/pygen/codegen/serializers/model_init_serializer.py +1 -2
- package/generator/pygen/codegen/serializers/model_serializer.py +15 -17
- package/generator/pygen/codegen/serializers/operation_groups_serializer.py +3 -3
- package/generator/pygen/codegen/serializers/operations_init_serializer.py +5 -6
- package/generator/pygen/codegen/serializers/parameter_serializer.py +28 -18
- package/generator/pygen/codegen/serializers/patch_serializer.py +1 -2
- package/generator/pygen/codegen/serializers/request_builders_serializer.py +1 -2
- package/generator/pygen/codegen/serializers/sample_serializer.py +9 -14
- package/generator/pygen/codegen/serializers/test_serializer.py +7 -7
- package/generator/pygen/codegen/serializers/utils.py +2 -2
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +30 -24
- package/generator/pygen/codegen/templates/model_dpg.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/operation_group.py.jinja2 +1 -11
- package/generator/pygen/codegen/templates/operations_folder_init.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/CHANGELOG.md.jinja2 +2 -1
- package/generator/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +13 -2
- package/generator/pygen/codegen/templates/patch.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/serialization.py.jinja2 +11 -13
- package/generator/pygen/codegen/templates/utils.py.jinja2 +6 -6
- package/generator/pygen/preprocess/__init__.py +47 -30
- package/generator/pygen/preprocess/helpers.py +2 -2
- package/generator/pygen/utils.py +6 -6
- package/generator/pygen.egg-info/SOURCES.txt +0 -2
- package/package.json +2 -2
- package/scripts/__pycache__/venvtools.cpython-310.pyc +0 -0
- package/autorest/multiapi/__init__.py +0 -185
- package/autorest/multiapi/models/__init__.py +0 -16
- package/autorest/multiapi/models/client.py +0 -68
- package/autorest/multiapi/models/code_model.py +0 -142
- package/autorest/multiapi/models/config.py +0 -24
- package/autorest/multiapi/models/constant_global_parameter.py +0 -11
- package/autorest/multiapi/models/global_parameter.py +0 -34
- package/autorest/multiapi/models/global_parameters.py +0 -53
- package/autorest/multiapi/models/imports.py +0 -181
- package/autorest/multiapi/models/mixin_operation.py +0 -38
- package/autorest/multiapi/models/operation_group.py +0 -29
- package/autorest/multiapi/models/operation_mixin_group.py +0 -89
- package/autorest/multiapi/serializers/__init__.py +0 -145
- package/autorest/multiapi/serializers/import_serializer.py +0 -181
- package/autorest/multiapi/templates/multiapi_config.py.jinja2 +0 -89
- package/autorest/multiapi/templates/multiapi_init.py.jinja2 +0 -22
- package/autorest/multiapi/templates/multiapi_models.py.jinja2 +0 -9
- package/autorest/multiapi/templates/multiapi_operations_mixin.py.jinja2 +0 -39
- package/autorest/multiapi/templates/multiapi_service_client.py.jinja2 +0 -163
- package/autorest/multiapi/templates/multiapi_version.py.jinja2 +0 -8
- package/autorest/multiapi/utils.py +0 -51
- package/generator/build/lib/pygen/codegen/serializers/metadata_serializer.py +0 -216
- package/generator/build/lib/pygen/codegen/templates/metadata.json.jinja2 +0 -167
- package/generator/pygen/codegen/serializers/metadata_serializer.py +0 -216
- package/generator/pygen/codegen/templates/metadata.json.jinja2 +0 -167
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# --------------------------------------------------------------------------
|
|
7
7
|
from abc import abstractmethod
|
|
8
8
|
from collections import defaultdict
|
|
9
|
-
from typing import Generic,
|
|
9
|
+
from typing import Generic, Type, TypeVar, Union, Optional, cast
|
|
10
10
|
|
|
11
11
|
from ..models import (
|
|
12
12
|
Operation,
|
|
@@ -33,13 +33,13 @@ from ..models import (
|
|
|
33
33
|
ByteArraySchema,
|
|
34
34
|
)
|
|
35
35
|
from ..models.utils import NamespaceType
|
|
36
|
-
from .parameter_serializer import ParameterSerializer, PopKwargType
|
|
36
|
+
from .parameter_serializer import ParameterSerializer, PopKwargType, check_body_optional
|
|
37
37
|
from ..models.parameter_list import ParameterType
|
|
38
38
|
from . import utils
|
|
39
39
|
from ...utils import xml_serializable, json_serializable
|
|
40
40
|
|
|
41
41
|
T = TypeVar("T")
|
|
42
|
-
OrderedSet =
|
|
42
|
+
OrderedSet = dict[T, None]
|
|
43
43
|
|
|
44
44
|
BuilderType = TypeVar(
|
|
45
45
|
"BuilderType",
|
|
@@ -58,11 +58,11 @@ OperationType = TypeVar(
|
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
def _all_same(data:
|
|
61
|
+
def _all_same(data: list[list[str]]) -> bool:
|
|
62
62
|
return len(data) > 1 and all(sorted(data[0]) == sorted(data[i]) for i in range(1, len(data)))
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
def _xml_config(send_xml: bool, content_types:
|
|
65
|
+
def _xml_config(send_xml: bool, content_types: list[str]) -> str:
|
|
66
66
|
if not (send_xml and "xml" in str(content_types)):
|
|
67
67
|
return ""
|
|
68
68
|
if len(content_types) == 1:
|
|
@@ -75,8 +75,8 @@ def _escape_str(input_str: str) -> str:
|
|
|
75
75
|
return f'"{replace}"'
|
|
76
76
|
|
|
77
77
|
|
|
78
|
-
def _get_polymorphic_subtype_template(polymorphic_subtype: ModelType) ->
|
|
79
|
-
retval:
|
|
78
|
+
def _get_polymorphic_subtype_template(polymorphic_subtype: ModelType) -> list[str]:
|
|
79
|
+
retval: list[str] = []
|
|
80
80
|
retval.append("")
|
|
81
81
|
retval.append(f'# JSON input template for discriminator value "{polymorphic_subtype.discriminator_value}":')
|
|
82
82
|
subtype_template = utils.json_dumps_template(
|
|
@@ -100,8 +100,8 @@ def _get_polymorphic_subtype_template(polymorphic_subtype: ModelType) -> List[st
|
|
|
100
100
|
return retval
|
|
101
101
|
|
|
102
102
|
|
|
103
|
-
def _serialize_grouped_body(builder: BuilderType) ->
|
|
104
|
-
retval:
|
|
103
|
+
def _serialize_grouped_body(builder: BuilderType) -> list[str]:
|
|
104
|
+
retval: list[str] = []
|
|
105
105
|
for grouped_parameter in builder.parameters.grouped:
|
|
106
106
|
retval.append(f"{grouped_parameter.client_name} = None")
|
|
107
107
|
groupers = [p for p in builder.parameters if p.grouper]
|
|
@@ -116,8 +116,8 @@ def _serialize_grouped_body(builder: BuilderType) -> List[str]:
|
|
|
116
116
|
return retval
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
def _serialize_flattened_body(body_parameter: BodyParameter) ->
|
|
120
|
-
retval:
|
|
119
|
+
def _serialize_flattened_body(body_parameter: BodyParameter) -> list[str]:
|
|
120
|
+
retval: list[str] = []
|
|
121
121
|
if not body_parameter.property_to_parameter_name:
|
|
122
122
|
raise ValueError("This method can't be called if the operation doesn't need parameter flattening")
|
|
123
123
|
|
|
@@ -130,8 +130,8 @@ def _serialize_flattened_body(body_parameter: BodyParameter) -> List[str]:
|
|
|
130
130
|
return retval
|
|
131
131
|
|
|
132
132
|
|
|
133
|
-
def _serialize_json_model_body(body_parameter: BodyParameter, parameters:
|
|
134
|
-
retval:
|
|
133
|
+
def _serialize_json_model_body(body_parameter: BodyParameter, parameters: list[ParameterType]) -> list[str]:
|
|
134
|
+
retval: list[str] = []
|
|
135
135
|
if not body_parameter.property_to_parameter_name:
|
|
136
136
|
raise ValueError("This method can't be called if the operation doesn't need parameter flattening")
|
|
137
137
|
|
|
@@ -154,8 +154,8 @@ def _serialize_json_model_body(body_parameter: BodyParameter, parameters: List[P
|
|
|
154
154
|
return retval
|
|
155
155
|
|
|
156
156
|
|
|
157
|
-
def _serialize_multipart_body(builder: BuilderType) ->
|
|
158
|
-
retval:
|
|
157
|
+
def _serialize_multipart_body(builder: BuilderType) -> list[str]:
|
|
158
|
+
retval: list[str] = []
|
|
159
159
|
body_param = builder.parameters.body_parameter
|
|
160
160
|
# we have to construct our form data before passing to the request as well
|
|
161
161
|
retval.append("# Construct form data")
|
|
@@ -168,7 +168,7 @@ def _serialize_multipart_body(builder: BuilderType) -> List[str]:
|
|
|
168
168
|
|
|
169
169
|
def _get_json_response_template_to_status_codes(
|
|
170
170
|
builder: OperationType,
|
|
171
|
-
) ->
|
|
171
|
+
) -> dict[str, list[str]]:
|
|
172
172
|
retval = defaultdict(list)
|
|
173
173
|
for response in builder.responses:
|
|
174
174
|
json_template = response.get_json_template_representation()
|
|
@@ -223,12 +223,12 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
223
223
|
"""Name of serializer"""
|
|
224
224
|
|
|
225
225
|
@abstractmethod
|
|
226
|
-
def response_docstring(self, builder: BuilderType) ->
|
|
226
|
+
def response_docstring(self, builder: BuilderType) -> list[str]:
|
|
227
227
|
"""Response portion of the docstring"""
|
|
228
228
|
|
|
229
|
-
def decorators(self, builder: BuilderType) ->
|
|
229
|
+
def decorators(self, builder: BuilderType) -> list[str]:
|
|
230
230
|
"""Decorators for the method"""
|
|
231
|
-
retval:
|
|
231
|
+
retval: list[str] = []
|
|
232
232
|
if builder.is_overload:
|
|
233
233
|
return ["@overload"]
|
|
234
234
|
if self.code_model.options["tracing"] and builder.want_tracing:
|
|
@@ -262,8 +262,8 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
262
262
|
response_type_annotation=response_type_annotation,
|
|
263
263
|
)
|
|
264
264
|
|
|
265
|
-
def description_and_summary(self, builder: BuilderType) ->
|
|
266
|
-
description_list:
|
|
265
|
+
def description_and_summary(self, builder: BuilderType) -> list[str]:
|
|
266
|
+
description_list: list[str] = []
|
|
267
267
|
description_list.append(f"{builder.summary.strip() if builder.summary else builder.description.strip()}")
|
|
268
268
|
if builder.summary and builder.description:
|
|
269
269
|
description_list.append("")
|
|
@@ -272,10 +272,10 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
272
272
|
return description_list
|
|
273
273
|
|
|
274
274
|
@staticmethod
|
|
275
|
-
def line_too_long(docs:
|
|
275
|
+
def line_too_long(docs: list[str], indentation: int = 0) -> bool:
|
|
276
276
|
return any(len(line) > (120 - indentation) for line in docs)
|
|
277
277
|
|
|
278
|
-
def example_template(self, builder: BuilderType) ->
|
|
278
|
+
def example_template(self, builder: BuilderType) -> list[str]:
|
|
279
279
|
template = []
|
|
280
280
|
if builder.abstract:
|
|
281
281
|
return []
|
|
@@ -284,8 +284,8 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
284
284
|
template += self._json_input_example_template(builder)
|
|
285
285
|
return template
|
|
286
286
|
|
|
287
|
-
def param_description(self, builder: BuilderType) ->
|
|
288
|
-
description_list:
|
|
287
|
+
def param_description(self, builder: BuilderType) -> list[str]:
|
|
288
|
+
description_list: list[str] = []
|
|
289
289
|
for param in builder.parameters.method:
|
|
290
290
|
if (
|
|
291
291
|
not param.in_docstring
|
|
@@ -305,7 +305,7 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
305
305
|
description_list.append(f":{param.docstring_type_keyword} {param.client_name}: {docstring_type}")
|
|
306
306
|
return description_list
|
|
307
307
|
|
|
308
|
-
def param_description_and_response_docstring(self, builder: BuilderType) ->
|
|
308
|
+
def param_description_and_response_docstring(self, builder: BuilderType) -> list[str]:
|
|
309
309
|
if builder.abstract:
|
|
310
310
|
return []
|
|
311
311
|
return self.param_description(builder) + self.response_docstring(builder)
|
|
@@ -314,8 +314,8 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
314
314
|
@abstractmethod
|
|
315
315
|
def _json_response_template_name(self) -> str: ...
|
|
316
316
|
|
|
317
|
-
def _json_input_example_template(self, builder: BuilderType) ->
|
|
318
|
-
template:
|
|
317
|
+
def _json_input_example_template(self, builder: BuilderType) -> list[str]:
|
|
318
|
+
template: list[str] = []
|
|
319
319
|
if not builder.parameters.has_body or builder.parameters.body_parameter.flattened:
|
|
320
320
|
# No input template if now body parameter
|
|
321
321
|
return template
|
|
@@ -340,7 +340,7 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
340
340
|
return template
|
|
341
341
|
json_type = target_model_type
|
|
342
342
|
|
|
343
|
-
polymorphic_subtypes:
|
|
343
|
+
polymorphic_subtypes: list[ModelType] = []
|
|
344
344
|
json_type.get_polymorphic_subtypes(polymorphic_subtypes)
|
|
345
345
|
if polymorphic_subtypes:
|
|
346
346
|
# we just assume one kind of polymorphic body for input
|
|
@@ -364,7 +364,7 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
364
364
|
template.extend(f"{builder.parameters.body_parameter.client_name} = {json_template}".splitlines())
|
|
365
365
|
return template
|
|
366
366
|
|
|
367
|
-
def serialize_path(self, builder: BuilderType) ->
|
|
367
|
+
def serialize_path(self, builder: BuilderType) -> list[str]:
|
|
368
368
|
return self.parameter_serializer.serialize_path(builder.parameters.path, self.serializer_name)
|
|
369
369
|
|
|
370
370
|
@property
|
|
@@ -377,7 +377,7 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
377
377
|
|
|
378
378
|
class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
379
379
|
|
|
380
|
-
def description_and_summary(self, builder: RequestBuilderType) ->
|
|
380
|
+
def description_and_summary(self, builder: RequestBuilderType) -> list[str]:
|
|
381
381
|
retval = super().description_and_summary(builder)
|
|
382
382
|
retval += [
|
|
383
383
|
"See https://aka.ms/azsdk/dpcodegen/python/send_request for how to incorporate this "
|
|
@@ -401,7 +401,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
401
401
|
@staticmethod
|
|
402
402
|
def declare_non_inputtable_headers_queries(
|
|
403
403
|
builder: RequestBuilderType,
|
|
404
|
-
) ->
|
|
404
|
+
) -> list[str]:
|
|
405
405
|
def _get_value(param):
|
|
406
406
|
declaration = param.get_declaration() if param.constant else None
|
|
407
407
|
if param.location in [ParameterLocation.HEADER, ParameterLocation.QUERY]:
|
|
@@ -423,7 +423,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
423
423
|
def _need_self_param(self) -> bool:
|
|
424
424
|
return False
|
|
425
425
|
|
|
426
|
-
def response_docstring(self, builder: RequestBuilderType) ->
|
|
426
|
+
def response_docstring(self, builder: RequestBuilderType) -> list[str]:
|
|
427
427
|
request_full_path = f"{self.code_model.core_library}.rest.HttpRequest"
|
|
428
428
|
response_str = (
|
|
429
429
|
f":return: Returns an :class:`~{request_full_path}` that you will pass to the client's "
|
|
@@ -433,7 +433,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
433
433
|
rtype_str = f":rtype: ~{request_full_path}"
|
|
434
434
|
return [response_str, rtype_str]
|
|
435
435
|
|
|
436
|
-
def pop_kwargs_from_signature(self, builder: RequestBuilderType) ->
|
|
436
|
+
def pop_kwargs_from_signature(self, builder: RequestBuilderType) -> list[str]:
|
|
437
437
|
return self.parameter_serializer.pop_kwargs_from_signature(
|
|
438
438
|
builder.parameters.kwargs_to_pop,
|
|
439
439
|
check_kwarg_dict=True,
|
|
@@ -442,7 +442,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
442
442
|
)
|
|
443
443
|
|
|
444
444
|
@staticmethod
|
|
445
|
-
def create_http_request(builder: RequestBuilderType) ->
|
|
445
|
+
def create_http_request(builder: RequestBuilderType) -> list[str]:
|
|
446
446
|
retval = ["return HttpRequest("]
|
|
447
447
|
retval.append(f' method="{builder.method}",')
|
|
448
448
|
retval.append(" url=_url,")
|
|
@@ -462,7 +462,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
462
462
|
retval.append(")")
|
|
463
463
|
return retval
|
|
464
464
|
|
|
465
|
-
def serialize_headers(self, builder: RequestBuilderType) ->
|
|
465
|
+
def serialize_headers(self, builder: RequestBuilderType) -> list[str]:
|
|
466
466
|
headers = [
|
|
467
467
|
h
|
|
468
468
|
for h in builder.parameters.headers
|
|
@@ -480,7 +480,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
480
480
|
)
|
|
481
481
|
return retval
|
|
482
482
|
|
|
483
|
-
def serialize_query(self, builder: RequestBuilderType) ->
|
|
483
|
+
def serialize_query(self, builder: RequestBuilderType) -> list[str]:
|
|
484
484
|
retval = ["# Construct parameters"]
|
|
485
485
|
for parameter in builder.parameters.query:
|
|
486
486
|
retval.extend(
|
|
@@ -505,7 +505,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
505
505
|
|
|
506
506
|
|
|
507
507
|
class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
508
|
-
def description_and_summary(self, builder: OperationType) ->
|
|
508
|
+
def description_and_summary(self, builder: OperationType) -> list[str]:
|
|
509
509
|
retval = super().description_and_summary(builder)
|
|
510
510
|
if builder.deprecated:
|
|
511
511
|
retval.append(".. warning::")
|
|
@@ -521,12 +521,12 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
521
521
|
def _json_response_template_name(self) -> str:
|
|
522
522
|
return "response"
|
|
523
523
|
|
|
524
|
-
def example_template(self, builder: OperationType) ->
|
|
524
|
+
def example_template(self, builder: OperationType) -> list[str]:
|
|
525
525
|
if self.code_model.options["models-mode"] in ("msrest", "dpg"):
|
|
526
526
|
return []
|
|
527
527
|
retval = super().example_template(builder)
|
|
528
528
|
for response in builder.responses:
|
|
529
|
-
polymorphic_subtypes:
|
|
529
|
+
polymorphic_subtypes: list[ModelType] = []
|
|
530
530
|
if not response.type:
|
|
531
531
|
continue
|
|
532
532
|
response.get_polymorphic_subtypes(polymorphic_subtypes)
|
|
@@ -556,7 +556,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
556
556
|
retval.extend(f"{self._json_response_template_name} == {response_body}".splitlines())
|
|
557
557
|
return retval
|
|
558
558
|
|
|
559
|
-
def make_pipeline_call(self, builder: OperationType) ->
|
|
559
|
+
def make_pipeline_call(self, builder: OperationType) -> list[str]:
|
|
560
560
|
retval = []
|
|
561
561
|
type_ignore = self.async_mode and builder.group_name == "" # is in a mixin
|
|
562
562
|
if builder.stream_value is True and not self.code_model.options["version-tolerant"]:
|
|
@@ -587,7 +587,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
587
587
|
def serializer_name(self) -> str:
|
|
588
588
|
return "self._serialize"
|
|
589
589
|
|
|
590
|
-
def decorators(self, builder: OperationType) ->
|
|
590
|
+
def decorators(self, builder: OperationType) -> list[str]:
|
|
591
591
|
"""Decorators for the method"""
|
|
592
592
|
retval = super().decorators(builder)
|
|
593
593
|
if self._api_version_validation(builder):
|
|
@@ -597,7 +597,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
597
597
|
def _api_version_validation(self, builder: OperationType) -> str:
|
|
598
598
|
if builder.is_overload:
|
|
599
599
|
return ""
|
|
600
|
-
retval:
|
|
600
|
+
retval: list[str] = []
|
|
601
601
|
if builder.added_on:
|
|
602
602
|
retval.append(f' method_added_on="{builder.added_on}",')
|
|
603
603
|
params_added_on = defaultdict(list)
|
|
@@ -613,7 +613,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
613
613
|
return f"@api_version_validation(\n{retval_str}\n)"
|
|
614
614
|
return ""
|
|
615
615
|
|
|
616
|
-
def pop_kwargs_from_signature(self, builder: OperationType) ->
|
|
616
|
+
def pop_kwargs_from_signature(self, builder: OperationType) -> list[str]:
|
|
617
617
|
kwargs_to_pop = builder.parameters.kwargs_to_pop
|
|
618
618
|
kwargs = self.parameter_serializer.pop_kwargs_from_signature(
|
|
619
619
|
kwargs_to_pop,
|
|
@@ -628,8 +628,8 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
628
628
|
if builder.has_kwargs_to_pop_with_default(kwargs_to_pop, ParameterLocation.QUERY) # type: ignore
|
|
629
629
|
else PopKwargType.SIMPLE
|
|
630
630
|
),
|
|
631
|
-
check_client_input=
|
|
632
|
-
|
|
631
|
+
check_client_input=True,
|
|
632
|
+
body_parameter=builder.parameters.body_parameter if builder.parameters.has_body else None,
|
|
633
633
|
)
|
|
634
634
|
for p in builder.parameters.parameters:
|
|
635
635
|
if p.hide_in_operation_signature and not p.is_continuation_token:
|
|
@@ -640,7 +640,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
640
640
|
kwargs.append(f"cls: {cls_annotation} = kwargs.pop(\n 'cls', None\n)")
|
|
641
641
|
return kwargs
|
|
642
642
|
|
|
643
|
-
def response_docstring(self, builder: OperationType) ->
|
|
643
|
+
def response_docstring(self, builder: OperationType) -> list[str]:
|
|
644
644
|
response_str = f":return: {builder.response_docstring_text(async_mode=self.async_mode)}"
|
|
645
645
|
response_docstring_type = builder.response_docstring_type(
|
|
646
646
|
async_mode=self.async_mode, serialize_namespace=self.serialize_namespace
|
|
@@ -652,12 +652,12 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
652
652
|
f":raises ~{self.code_model.core_library}.exceptions.HttpResponseError:",
|
|
653
653
|
]
|
|
654
654
|
|
|
655
|
-
def _serialize_body_parameter(self, builder: OperationType) ->
|
|
655
|
+
def _serialize_body_parameter(self, builder: OperationType) -> list[str]:
|
|
656
656
|
"""We need to serialize params if they're not meant to be streamed in.
|
|
657
657
|
|
|
658
658
|
This function serializes the body params that need to be serialized.
|
|
659
659
|
"""
|
|
660
|
-
retval:
|
|
660
|
+
retval: list[str] = []
|
|
661
661
|
body_param = builder.parameters.body_parameter
|
|
662
662
|
if body_param.is_form_data:
|
|
663
663
|
model_type = cast(
|
|
@@ -677,8 +677,8 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
677
677
|
f" if isinstance({body_param.client_name}, _Model) else",
|
|
678
678
|
f" {body_param.client_name}",
|
|
679
679
|
")",
|
|
680
|
-
f"_file_fields:
|
|
681
|
-
f"_data_fields:
|
|
680
|
+
f"_file_fields: list[str] = {file_fields}",
|
|
681
|
+
f"_data_fields: list[str] = {data_fields}",
|
|
682
682
|
"_files, _data = prepare_multipart_form_data(_body, _file_fields, _data_fields)",
|
|
683
683
|
]
|
|
684
684
|
)
|
|
@@ -729,7 +729,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
729
729
|
def _create_body_parameter(
|
|
730
730
|
self,
|
|
731
731
|
builder: OperationType,
|
|
732
|
-
) ->
|
|
732
|
+
) -> list[str]:
|
|
733
733
|
"""Create the body parameter before we pass it as either json or content to the request builder"""
|
|
734
734
|
retval = []
|
|
735
735
|
body_param = builder.parameters.body_parameter
|
|
@@ -757,15 +757,22 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
757
757
|
retval.extend(self._serialize_body_parameter(builder))
|
|
758
758
|
return retval
|
|
759
759
|
|
|
760
|
-
def _initialize_overloads(self, builder: OperationType, is_paging: bool = False) ->
|
|
761
|
-
retval:
|
|
760
|
+
def _initialize_overloads(self, builder: OperationType, is_paging: bool = False) -> list[str]:
|
|
761
|
+
retval: list[str] = []
|
|
762
762
|
# For paging, we put body parameter in local place outside `prepare_request`
|
|
763
763
|
if is_paging:
|
|
764
764
|
return retval
|
|
765
765
|
same_content_type = len(set(o.parameters.body_parameter.default_content_type for o in builder.overloads)) == 1
|
|
766
|
+
check_body_suffix = ""
|
|
767
|
+
if builder.parameters.has_body:
|
|
768
|
+
body_parameter = builder.parameters.body_parameter
|
|
769
|
+
is_body_optional = check_body_optional(body_parameter)
|
|
770
|
+
if is_body_optional:
|
|
771
|
+
check_body_suffix = f" if {body_parameter.client_name} else None" if is_body_optional else ""
|
|
772
|
+
|
|
766
773
|
if same_content_type:
|
|
767
774
|
default_content_type = builder.overloads[0].parameters.body_parameter.default_content_type
|
|
768
|
-
retval.append(f'content_type = content_type or "{default_content_type}"')
|
|
775
|
+
retval.append(f'content_type = content_type or "{default_content_type}"{check_body_suffix}')
|
|
769
776
|
client_names = [
|
|
770
777
|
overload.request_builder.parameters.body_parameter.client_name for overload in builder.overloads
|
|
771
778
|
]
|
|
@@ -780,7 +787,9 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
780
787
|
binary_body_param = binary_overload.parameters.body_parameter
|
|
781
788
|
retval.append(f"if {binary_body_param.type.instance_check_template.format(binary_body_param.client_name)}:")
|
|
782
789
|
if binary_body_param.default_content_type and not same_content_type:
|
|
783
|
-
retval.append(
|
|
790
|
+
retval.append(
|
|
791
|
+
f' content_type = content_type or "{binary_body_param.default_content_type}"{check_body_suffix}'
|
|
792
|
+
)
|
|
784
793
|
retval.extend(f" {l}" for l in self._create_body_parameter(binary_overload))
|
|
785
794
|
retval.append("else:")
|
|
786
795
|
other_overload = cast(
|
|
@@ -791,7 +800,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
791
800
|
if other_overload.parameters.body_parameter.default_content_type and not same_content_type:
|
|
792
801
|
retval.append(
|
|
793
802
|
" content_type = content_type or "
|
|
794
|
-
f'"{other_overload.parameters.body_parameter.default_content_type}"'
|
|
803
|
+
f'"{other_overload.parameters.body_parameter.default_content_type}"{check_body_suffix}'
|
|
795
804
|
)
|
|
796
805
|
except StopIteration:
|
|
797
806
|
for idx, overload in enumerate(builder.overloads):
|
|
@@ -801,7 +810,9 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
801
810
|
f"{if_statement} {body_param.type.instance_check_template.format(body_param.client_name)}:"
|
|
802
811
|
)
|
|
803
812
|
if body_param.default_content_type and not same_content_type:
|
|
804
|
-
retval.append(
|
|
813
|
+
retval.append(
|
|
814
|
+
f' content_type = content_type or "{body_param.default_content_type}"{check_body_suffix}'
|
|
815
|
+
)
|
|
805
816
|
retval.extend(f" {l}" for l in self._create_body_parameter(cast(OperationType, overload)))
|
|
806
817
|
return retval
|
|
807
818
|
|
|
@@ -810,8 +821,8 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
810
821
|
builder: OperationType,
|
|
811
822
|
request_builder: RequestBuilderType,
|
|
812
823
|
is_next_request: bool = False,
|
|
813
|
-
) ->
|
|
814
|
-
retval:
|
|
824
|
+
) -> list[str]:
|
|
825
|
+
retval: list[str] = []
|
|
815
826
|
if self.code_model.options["builders-visibility"] == "embedded":
|
|
816
827
|
request_path_name = request_builder.name
|
|
817
828
|
else:
|
|
@@ -868,8 +879,8 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
868
879
|
retval.append(")")
|
|
869
880
|
return retval
|
|
870
881
|
|
|
871
|
-
def _postprocess_http_request(self, builder: OperationType, template_url: Optional[str] = None) ->
|
|
872
|
-
retval:
|
|
882
|
+
def _postprocess_http_request(self, builder: OperationType, template_url: Optional[str] = None) -> list[str]:
|
|
883
|
+
retval: list[str] = []
|
|
873
884
|
if builder.parameters.path:
|
|
874
885
|
retval.extend(self.serialize_path(builder))
|
|
875
886
|
url_to_format = "_request.url"
|
|
@@ -890,7 +901,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
890
901
|
template_url: Optional[str] = None,
|
|
891
902
|
is_next_request: bool = False,
|
|
892
903
|
is_paging: bool = False,
|
|
893
|
-
) ->
|
|
904
|
+
) -> list[str]:
|
|
894
905
|
retval = []
|
|
895
906
|
if builder.parameters.grouped:
|
|
896
907
|
# request builders don't allow grouped parameters, so we group them before making the call
|
|
@@ -913,18 +924,18 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
913
924
|
retval.extend(self._postprocess_http_request(builder, template_url))
|
|
914
925
|
return retval
|
|
915
926
|
|
|
916
|
-
def call_request_builder(self, builder: OperationType, is_paging: bool = False) ->
|
|
927
|
+
def call_request_builder(self, builder: OperationType, is_paging: bool = False) -> list[str]:
|
|
917
928
|
return self._call_request_builder_helper(builder, builder.request_builder, is_paging=is_paging)
|
|
918
929
|
|
|
919
930
|
def response_headers_and_deserialization(
|
|
920
931
|
self,
|
|
921
932
|
builder: OperationType,
|
|
922
933
|
response: Response,
|
|
923
|
-
) ->
|
|
934
|
+
) -> list[str]:
|
|
924
935
|
return self.response_headers(response) + self.response_deserialization(builder, response)
|
|
925
936
|
|
|
926
|
-
def response_headers(self, response: Response) ->
|
|
927
|
-
retval:
|
|
937
|
+
def response_headers(self, response: Response) -> list[str]:
|
|
938
|
+
retval: list[str] = [
|
|
928
939
|
(
|
|
929
940
|
f"response_headers['{response_header.wire_name}']=self._deserialize("
|
|
930
941
|
f"'{response_header.serialization_type(serialize_namespace=self.serialize_namespace)}', response.headers.get('{response_header.wire_name}'))" # pylint: disable=line-too-long
|
|
@@ -939,9 +950,9 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
939
950
|
self,
|
|
940
951
|
builder: OperationType,
|
|
941
952
|
response: Response,
|
|
942
|
-
) ->
|
|
943
|
-
retval:
|
|
944
|
-
deserialize_code:
|
|
953
|
+
) -> list[str]:
|
|
954
|
+
retval: list[str] = []
|
|
955
|
+
deserialize_code: list[str] = []
|
|
945
956
|
stream_logic = True
|
|
946
957
|
if builder.has_stream_response:
|
|
947
958
|
if isinstance(response.type, ByteArraySchema):
|
|
@@ -1003,7 +1014,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1003
1014
|
retval.extend(deserialize_code)
|
|
1004
1015
|
return retval
|
|
1005
1016
|
|
|
1006
|
-
def handle_error_response(self, builder: OperationType) ->
|
|
1017
|
+
def handle_error_response(self, builder: OperationType) -> list[str]:
|
|
1007
1018
|
async_await = "await " if self.async_mode else ""
|
|
1008
1019
|
retval = [f"if response.status_code not in {str(builder.success_status_codes)}:"]
|
|
1009
1020
|
response_read = [
|
|
@@ -1067,9 +1078,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1067
1078
|
)
|
|
1068
1079
|
if self.code_model.options["models-mode"] == "dpg":
|
|
1069
1080
|
if xml_serializable(str(e.default_content_type)):
|
|
1070
|
-
retval.append(
|
|
1071
|
-
f" error = _failsafe_deserialize_xml({type_annotation}, response)"
|
|
1072
|
-
)
|
|
1081
|
+
retval.append(f" error = _failsafe_deserialize_xml({type_annotation}, response)")
|
|
1073
1082
|
else:
|
|
1074
1083
|
retval.append(f" error = _failsafe_deserialize({type_annotation}, response)")
|
|
1075
1084
|
else:
|
|
@@ -1086,9 +1095,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1086
1095
|
if builder.non_default_errors:
|
|
1087
1096
|
retval.append(" else:")
|
|
1088
1097
|
if self.code_model.options["models-mode"] == "dpg":
|
|
1089
|
-
retval.append(
|
|
1090
|
-
f"{indent}error = _failsafe_deserialize({default_error_deserialization}, response)"
|
|
1091
|
-
)
|
|
1098
|
+
retval.append(f"{indent}error = _failsafe_deserialize({default_error_deserialization}, response)")
|
|
1092
1099
|
else:
|
|
1093
1100
|
retval.append(
|
|
1094
1101
|
f"{indent}error = self._deserialize.failsafe_deserialize({default_error_deserialization}, "
|
|
@@ -1102,8 +1109,8 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1102
1109
|
)
|
|
1103
1110
|
return retval
|
|
1104
1111
|
|
|
1105
|
-
def handle_response(self, builder: OperationType) ->
|
|
1106
|
-
retval:
|
|
1112
|
+
def handle_response(self, builder: OperationType) -> list[str]:
|
|
1113
|
+
retval: list[str] = ["response = pipeline_response.http_response"]
|
|
1107
1114
|
retval.append("")
|
|
1108
1115
|
retval.extend(self.handle_error_response(builder))
|
|
1109
1116
|
retval.append("")
|
|
@@ -1179,7 +1186,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1179
1186
|
return False
|
|
1180
1187
|
return True
|
|
1181
1188
|
|
|
1182
|
-
def error_map(self, builder: OperationType) ->
|
|
1189
|
+
def error_map(self, builder: OperationType) -> list[str]:
|
|
1183
1190
|
retval = ["error_map: MutableMapping = {"]
|
|
1184
1191
|
if builder.non_default_errors and self.code_model.options["models-mode"]:
|
|
1185
1192
|
# TODO: we should decide whether to add the build-in error map when there is a customized default error type
|
|
@@ -1226,12 +1233,12 @@ PagingOperationType = TypeVar("PagingOperationType", bound=Union[PagingOperation
|
|
|
1226
1233
|
|
|
1227
1234
|
class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
1228
1235
|
|
|
1229
|
-
def serialize_path(self, builder: PagingOperationType) ->
|
|
1236
|
+
def serialize_path(self, builder: PagingOperationType) -> list[str]:
|
|
1230
1237
|
return self.parameter_serializer.serialize_path(builder.parameters.path, self.serializer_name)
|
|
1231
1238
|
|
|
1232
|
-
def decorators(self, builder: PagingOperationType) ->
|
|
1239
|
+
def decorators(self, builder: PagingOperationType) -> list[str]:
|
|
1233
1240
|
"""Decorators for the method"""
|
|
1234
|
-
retval:
|
|
1241
|
+
retval: list[str] = []
|
|
1235
1242
|
if builder.is_overload:
|
|
1236
1243
|
return ["@overload"]
|
|
1237
1244
|
if self.code_model.options["tracing"] and builder.want_tracing:
|
|
@@ -1240,7 +1247,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1240
1247
|
retval.append(self._api_version_validation(builder))
|
|
1241
1248
|
return retval
|
|
1242
1249
|
|
|
1243
|
-
def call_next_link_request_builder(self, builder: PagingOperationType) ->
|
|
1250
|
+
def call_next_link_request_builder(self, builder: PagingOperationType) -> list[str]:
|
|
1244
1251
|
if builder.next_request_builder:
|
|
1245
1252
|
request_builder = builder.next_request_builder
|
|
1246
1253
|
template_url = None
|
|
@@ -1256,7 +1263,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1256
1263
|
template_url=template_url,
|
|
1257
1264
|
is_next_request=True,
|
|
1258
1265
|
)
|
|
1259
|
-
retval:
|
|
1266
|
+
retval: list[str] = []
|
|
1260
1267
|
query_str = ""
|
|
1261
1268
|
next_link_str = "next_link"
|
|
1262
1269
|
try:
|
|
@@ -1273,11 +1280,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1273
1280
|
"})",
|
|
1274
1281
|
]
|
|
1275
1282
|
)
|
|
1276
|
-
api_version =
|
|
1277
|
-
"self._api_version"
|
|
1278
|
-
if self.code_model.options["multiapi"] and builder.group_name
|
|
1279
|
-
else api_version_param.full_client_name
|
|
1280
|
-
)
|
|
1283
|
+
api_version = api_version_param.full_client_name
|
|
1281
1284
|
retval.append(f'_next_request_params["api-version"] = {api_version}')
|
|
1282
1285
|
if builder.next_link_reinjected_parameters:
|
|
1283
1286
|
for param in builder.next_link_reinjected_parameters:
|
|
@@ -1300,7 +1303,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1300
1303
|
|
|
1301
1304
|
return retval
|
|
1302
1305
|
|
|
1303
|
-
def _prepare_request_callback(self, builder: PagingOperationType) ->
|
|
1306
|
+
def _prepare_request_callback(self, builder: PagingOperationType) -> list[str]:
|
|
1304
1307
|
retval = self._initialize_overloads(builder)
|
|
1305
1308
|
if builder.has_continuation_token:
|
|
1306
1309
|
retval.append(f"def prepare_request({builder.next_variable_name}=None):")
|
|
@@ -1323,7 +1326,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1323
1326
|
def _function_def(self) -> str:
|
|
1324
1327
|
return "def"
|
|
1325
1328
|
|
|
1326
|
-
def _extract_data_callback(self, builder: PagingOperationType) ->
|
|
1329
|
+
def _extract_data_callback(self, builder: PagingOperationType) -> list[str]: # pylint: disable=too-many-statements
|
|
1327
1330
|
retval = [f"{'async ' if self.async_mode else ''}def extract_data(pipeline_response):"]
|
|
1328
1331
|
response = builder.responses[0]
|
|
1329
1332
|
deserialized = "pipeline_response.http_response.json()"
|
|
@@ -1386,7 +1389,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1386
1389
|
retval.append(f" return {cont_token_property}, {list_type}(list_of_elem)")
|
|
1387
1390
|
return retval
|
|
1388
1391
|
|
|
1389
|
-
def _get_next_callback(self, builder: PagingOperationType) ->
|
|
1392
|
+
def _get_next_callback(self, builder: PagingOperationType) -> list[str]:
|
|
1390
1393
|
retval = [f"{'async ' if self.async_mode else ''}def get_next({builder.next_variable_name}=None):"]
|
|
1391
1394
|
retval.append(f" _request = prepare_request({builder.next_variable_name})")
|
|
1392
1395
|
retval.append("")
|
|
@@ -1398,7 +1401,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1398
1401
|
retval.append(" return pipeline_response")
|
|
1399
1402
|
return retval
|
|
1400
1403
|
|
|
1401
|
-
def set_up_params_for_pager(self, builder: PagingOperationType) ->
|
|
1404
|
+
def set_up_params_for_pager(self, builder: PagingOperationType) -> list[str]:
|
|
1402
1405
|
retval = []
|
|
1403
1406
|
retval.extend(self.error_map(builder))
|
|
1404
1407
|
retval.extend(self._prepare_request_callback(builder))
|
|
@@ -1418,10 +1421,10 @@ LROOperationType = TypeVar("LROOperationType", bound=Union[LROOperation, LROPagi
|
|
|
1418
1421
|
|
|
1419
1422
|
|
|
1420
1423
|
class _LROOperationSerializer(_OperationSerializer[LROOperationType]):
|
|
1421
|
-
def serialize_path(self, builder: LROOperationType) ->
|
|
1424
|
+
def serialize_path(self, builder: LROOperationType) -> list[str]:
|
|
1422
1425
|
return self.parameter_serializer.serialize_path(builder.parameters.path, self.serializer_name)
|
|
1423
1426
|
|
|
1424
|
-
def initial_call(self, builder: LROOperationType) ->
|
|
1427
|
+
def initial_call(self, builder: LROOperationType) -> list[str]:
|
|
1425
1428
|
retval = [
|
|
1426
1429
|
f"polling: Union[bool, {builder.get_base_polling_method(self.async_mode)}] = kwargs.pop('polling', True)",
|
|
1427
1430
|
]
|
|
@@ -1448,7 +1451,7 @@ class _LROOperationSerializer(_OperationSerializer[LROOperationType]):
|
|
|
1448
1451
|
retval.append("kwargs.pop('error_map', None)")
|
|
1449
1452
|
return retval
|
|
1450
1453
|
|
|
1451
|
-
def return_lro_poller(self, builder: LROOperationType) ->
|
|
1454
|
+
def return_lro_poller(self, builder: LROOperationType) -> list[str]:
|
|
1452
1455
|
retval = []
|
|
1453
1456
|
lro_options_str = (
|
|
1454
1457
|
"lro_options={'final-state-via': '" + builder.lro_options["final-state-via"] + "'},"
|
|
@@ -1490,7 +1493,7 @@ class _LROOperationSerializer(_OperationSerializer[LROOperationType]):
|
|
|
1490
1493
|
retval.append(" )")
|
|
1491
1494
|
return retval
|
|
1492
1495
|
|
|
1493
|
-
def get_long_running_output(self, builder: LROOperationType) ->
|
|
1496
|
+
def get_long_running_output(self, builder: LROOperationType) -> list[str]:
|
|
1494
1497
|
pylint_disable = ""
|
|
1495
1498
|
if not builder.lro_response:
|
|
1496
1499
|
pylint_disable = " # pylint: disable=inconsistent-return-statements"
|
|
@@ -1538,7 +1541,7 @@ class LROPagingOperationSerializer(
|
|
|
1538
1541
|
def _function_def(self) -> str:
|
|
1539
1542
|
return "async def" if self.async_mode else "def"
|
|
1540
1543
|
|
|
1541
|
-
def get_long_running_output(self, builder: LROPagingOperation) ->
|
|
1544
|
+
def get_long_running_output(self, builder: LROPagingOperation) -> list[str]:
|
|
1542
1545
|
retval = ["def get_long_running_output(pipeline_response):"]
|
|
1543
1546
|
retval.append(f" {self._function_def} internal_get_next({builder.next_variable_name}=None):")
|
|
1544
1547
|
retval.append(f" if {builder.next_variable_name} is None:")
|
|
@@ -1550,7 +1553,7 @@ class LROPagingOperationSerializer(
|
|
|
1550
1553
|
retval.append(" )")
|
|
1551
1554
|
return retval
|
|
1552
1555
|
|
|
1553
|
-
def decorators(self, builder: LROPagingOperation) ->
|
|
1556
|
+
def decorators(self, builder: LROPagingOperation) -> list[str]:
|
|
1554
1557
|
"""Decorators for the method"""
|
|
1555
1558
|
return _LROOperationSerializer.decorators(self, builder) # type: ignore
|
|
1556
1559
|
|