@autorest/python 6.38.2 → 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 +7 -21
- 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 +15 -40
- package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +101 -94
- 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 +46 -60
- 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/dev_requirements.txt.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +7 -0
- 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 +7 -21
- 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 +15 -40
- package/generator/pygen/codegen/serializers/builder_serializer.py +101 -94
- 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 +46 -60
- 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/dev_requirements.txt.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +7 -0
- 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 = [
|
|
@@ -1098,8 +1109,8 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1098
1109
|
)
|
|
1099
1110
|
return retval
|
|
1100
1111
|
|
|
1101
|
-
def handle_response(self, builder: OperationType) ->
|
|
1102
|
-
retval:
|
|
1112
|
+
def handle_response(self, builder: OperationType) -> list[str]:
|
|
1113
|
+
retval: list[str] = ["response = pipeline_response.http_response"]
|
|
1103
1114
|
retval.append("")
|
|
1104
1115
|
retval.extend(self.handle_error_response(builder))
|
|
1105
1116
|
retval.append("")
|
|
@@ -1175,7 +1186,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1175
1186
|
return False
|
|
1176
1187
|
return True
|
|
1177
1188
|
|
|
1178
|
-
def error_map(self, builder: OperationType) ->
|
|
1189
|
+
def error_map(self, builder: OperationType) -> list[str]:
|
|
1179
1190
|
retval = ["error_map: MutableMapping = {"]
|
|
1180
1191
|
if builder.non_default_errors and self.code_model.options["models-mode"]:
|
|
1181
1192
|
# TODO: we should decide whether to add the build-in error map when there is a customized default error type
|
|
@@ -1222,12 +1233,12 @@ PagingOperationType = TypeVar("PagingOperationType", bound=Union[PagingOperation
|
|
|
1222
1233
|
|
|
1223
1234
|
class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
1224
1235
|
|
|
1225
|
-
def serialize_path(self, builder: PagingOperationType) ->
|
|
1236
|
+
def serialize_path(self, builder: PagingOperationType) -> list[str]:
|
|
1226
1237
|
return self.parameter_serializer.serialize_path(builder.parameters.path, self.serializer_name)
|
|
1227
1238
|
|
|
1228
|
-
def decorators(self, builder: PagingOperationType) ->
|
|
1239
|
+
def decorators(self, builder: PagingOperationType) -> list[str]:
|
|
1229
1240
|
"""Decorators for the method"""
|
|
1230
|
-
retval:
|
|
1241
|
+
retval: list[str] = []
|
|
1231
1242
|
if builder.is_overload:
|
|
1232
1243
|
return ["@overload"]
|
|
1233
1244
|
if self.code_model.options["tracing"] and builder.want_tracing:
|
|
@@ -1236,7 +1247,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1236
1247
|
retval.append(self._api_version_validation(builder))
|
|
1237
1248
|
return retval
|
|
1238
1249
|
|
|
1239
|
-
def call_next_link_request_builder(self, builder: PagingOperationType) ->
|
|
1250
|
+
def call_next_link_request_builder(self, builder: PagingOperationType) -> list[str]:
|
|
1240
1251
|
if builder.next_request_builder:
|
|
1241
1252
|
request_builder = builder.next_request_builder
|
|
1242
1253
|
template_url = None
|
|
@@ -1252,7 +1263,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1252
1263
|
template_url=template_url,
|
|
1253
1264
|
is_next_request=True,
|
|
1254
1265
|
)
|
|
1255
|
-
retval:
|
|
1266
|
+
retval: list[str] = []
|
|
1256
1267
|
query_str = ""
|
|
1257
1268
|
next_link_str = "next_link"
|
|
1258
1269
|
try:
|
|
@@ -1269,11 +1280,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1269
1280
|
"})",
|
|
1270
1281
|
]
|
|
1271
1282
|
)
|
|
1272
|
-
api_version =
|
|
1273
|
-
"self._api_version"
|
|
1274
|
-
if self.code_model.options["multiapi"] and builder.group_name
|
|
1275
|
-
else api_version_param.full_client_name
|
|
1276
|
-
)
|
|
1283
|
+
api_version = api_version_param.full_client_name
|
|
1277
1284
|
retval.append(f'_next_request_params["api-version"] = {api_version}')
|
|
1278
1285
|
if builder.next_link_reinjected_parameters:
|
|
1279
1286
|
for param in builder.next_link_reinjected_parameters:
|
|
@@ -1296,7 +1303,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1296
1303
|
|
|
1297
1304
|
return retval
|
|
1298
1305
|
|
|
1299
|
-
def _prepare_request_callback(self, builder: PagingOperationType) ->
|
|
1306
|
+
def _prepare_request_callback(self, builder: PagingOperationType) -> list[str]:
|
|
1300
1307
|
retval = self._initialize_overloads(builder)
|
|
1301
1308
|
if builder.has_continuation_token:
|
|
1302
1309
|
retval.append(f"def prepare_request({builder.next_variable_name}=None):")
|
|
@@ -1319,7 +1326,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1319
1326
|
def _function_def(self) -> str:
|
|
1320
1327
|
return "def"
|
|
1321
1328
|
|
|
1322
|
-
def _extract_data_callback(self, builder: PagingOperationType) ->
|
|
1329
|
+
def _extract_data_callback(self, builder: PagingOperationType) -> list[str]: # pylint: disable=too-many-statements
|
|
1323
1330
|
retval = [f"{'async ' if self.async_mode else ''}def extract_data(pipeline_response):"]
|
|
1324
1331
|
response = builder.responses[0]
|
|
1325
1332
|
deserialized = "pipeline_response.http_response.json()"
|
|
@@ -1382,7 +1389,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1382
1389
|
retval.append(f" return {cont_token_property}, {list_type}(list_of_elem)")
|
|
1383
1390
|
return retval
|
|
1384
1391
|
|
|
1385
|
-
def _get_next_callback(self, builder: PagingOperationType) ->
|
|
1392
|
+
def _get_next_callback(self, builder: PagingOperationType) -> list[str]:
|
|
1386
1393
|
retval = [f"{'async ' if self.async_mode else ''}def get_next({builder.next_variable_name}=None):"]
|
|
1387
1394
|
retval.append(f" _request = prepare_request({builder.next_variable_name})")
|
|
1388
1395
|
retval.append("")
|
|
@@ -1394,7 +1401,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1394
1401
|
retval.append(" return pipeline_response")
|
|
1395
1402
|
return retval
|
|
1396
1403
|
|
|
1397
|
-
def set_up_params_for_pager(self, builder: PagingOperationType) ->
|
|
1404
|
+
def set_up_params_for_pager(self, builder: PagingOperationType) -> list[str]:
|
|
1398
1405
|
retval = []
|
|
1399
1406
|
retval.extend(self.error_map(builder))
|
|
1400
1407
|
retval.extend(self._prepare_request_callback(builder))
|
|
@@ -1414,10 +1421,10 @@ LROOperationType = TypeVar("LROOperationType", bound=Union[LROOperation, LROPagi
|
|
|
1414
1421
|
|
|
1415
1422
|
|
|
1416
1423
|
class _LROOperationSerializer(_OperationSerializer[LROOperationType]):
|
|
1417
|
-
def serialize_path(self, builder: LROOperationType) ->
|
|
1424
|
+
def serialize_path(self, builder: LROOperationType) -> list[str]:
|
|
1418
1425
|
return self.parameter_serializer.serialize_path(builder.parameters.path, self.serializer_name)
|
|
1419
1426
|
|
|
1420
|
-
def initial_call(self, builder: LROOperationType) ->
|
|
1427
|
+
def initial_call(self, builder: LROOperationType) -> list[str]:
|
|
1421
1428
|
retval = [
|
|
1422
1429
|
f"polling: Union[bool, {builder.get_base_polling_method(self.async_mode)}] = kwargs.pop('polling', True)",
|
|
1423
1430
|
]
|
|
@@ -1444,7 +1451,7 @@ class _LROOperationSerializer(_OperationSerializer[LROOperationType]):
|
|
|
1444
1451
|
retval.append("kwargs.pop('error_map', None)")
|
|
1445
1452
|
return retval
|
|
1446
1453
|
|
|
1447
|
-
def return_lro_poller(self, builder: LROOperationType) ->
|
|
1454
|
+
def return_lro_poller(self, builder: LROOperationType) -> list[str]:
|
|
1448
1455
|
retval = []
|
|
1449
1456
|
lro_options_str = (
|
|
1450
1457
|
"lro_options={'final-state-via': '" + builder.lro_options["final-state-via"] + "'},"
|
|
@@ -1486,7 +1493,7 @@ class _LROOperationSerializer(_OperationSerializer[LROOperationType]):
|
|
|
1486
1493
|
retval.append(" )")
|
|
1487
1494
|
return retval
|
|
1488
1495
|
|
|
1489
|
-
def get_long_running_output(self, builder: LROOperationType) ->
|
|
1496
|
+
def get_long_running_output(self, builder: LROOperationType) -> list[str]:
|
|
1490
1497
|
pylint_disable = ""
|
|
1491
1498
|
if not builder.lro_response:
|
|
1492
1499
|
pylint_disable = " # pylint: disable=inconsistent-return-statements"
|
|
@@ -1534,7 +1541,7 @@ class LROPagingOperationSerializer(
|
|
|
1534
1541
|
def _function_def(self) -> str:
|
|
1535
1542
|
return "async def" if self.async_mode else "def"
|
|
1536
1543
|
|
|
1537
|
-
def get_long_running_output(self, builder: LROPagingOperation) ->
|
|
1544
|
+
def get_long_running_output(self, builder: LROPagingOperation) -> list[str]:
|
|
1538
1545
|
retval = ["def get_long_running_output(pipeline_response):"]
|
|
1539
1546
|
retval.append(f" {self._function_def} internal_get_next({builder.next_variable_name}=None):")
|
|
1540
1547
|
retval.append(f" if {builder.next_variable_name} is None:")
|
|
@@ -1546,7 +1553,7 @@ class LROPagingOperationSerializer(
|
|
|
1546
1553
|
retval.append(" )")
|
|
1547
1554
|
return retval
|
|
1548
1555
|
|
|
1549
|
-
def decorators(self, builder: LROPagingOperation) ->
|
|
1556
|
+
def decorators(self, builder: LROPagingOperation) -> list[str]:
|
|
1550
1557
|
"""Decorators for the method"""
|
|
1551
1558
|
return _LROOperationSerializer.decorators(self, builder) # type: ignore
|
|
1552
1559
|
|