@typespec/http-client-python 0.13.0-dev.2 → 0.13.0-dev.3
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/eng/scripts/setup/__pycache__/package_manager.cpython-39.pyc +0 -0
- package/eng/scripts/setup/__pycache__/venvtools.cpython-39.pyc +0 -0
- package/generator/build/lib/pygen/__init__.py +176 -2
- package/generator/build/lib/pygen/black.py +1 -1
- package/generator/build/lib/pygen/codegen/__init__.py +4 -256
- package/generator/build/lib/pygen/codegen/_utils.py +0 -3
- package/generator/build/lib/pygen/codegen/models/__init__.py +1 -1
- package/generator/build/lib/pygen/codegen/models/base_builder.py +1 -1
- package/generator/build/lib/pygen/codegen/models/client.py +12 -12
- package/generator/build/lib/pygen/codegen/models/code_model.py +10 -9
- package/generator/build/lib/pygen/codegen/models/enum_type.py +4 -4
- package/generator/build/lib/pygen/codegen/models/imports.py +1 -1
- package/generator/build/lib/pygen/codegen/models/list_type.py +6 -6
- package/generator/build/lib/pygen/codegen/models/lro_operation.py +1 -1
- package/generator/build/lib/pygen/codegen/models/operation.py +16 -16
- package/generator/build/lib/pygen/codegen/models/operation_group.py +4 -4
- package/generator/build/lib/pygen/codegen/models/paging_operation.py +4 -4
- package/generator/build/lib/pygen/codegen/models/parameter.py +8 -8
- package/generator/build/lib/pygen/codegen/models/property.py +1 -1
- package/generator/build/lib/pygen/codegen/models/request_builder.py +2 -2
- package/generator/build/lib/pygen/codegen/models/request_builder_parameter.py +2 -2
- package/generator/build/lib/pygen/codegen/models/response.py +3 -3
- package/generator/build/lib/pygen/codegen/serializers/__init__.py +27 -28
- package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +31 -31
- package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +4 -4
- package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +4 -4
- package/generator/build/lib/pygen/codegen/serializers/metadata_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/model_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/operations_init_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/sample_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/test_serializer.py +5 -5
- package/generator/build/lib/pygen/codegen/templates/config.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/config_container.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/conftest.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/init.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/metadata.json.jinja2 +2 -2
- package/generator/build/lib/pygen/codegen/templates/model_dpg.py.jinja2 +2 -2
- package/generator/build/lib/pygen/codegen/templates/operation_group.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/operation_groups_container.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/operation_tools.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/MANIFEST.in.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/README.md.jinja2 +38 -7
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +9 -9
- package/generator/build/lib/pygen/codegen/templates/request_builder.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/sample.py.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/test.py.jinja2 +6 -6
- package/generator/build/lib/pygen/codegen/templates/version.py.jinja2 +1 -1
- package/generator/build/lib/pygen/preprocess/__init__.py +1 -1
- package/generator/build/lib/pygen/utils.py +4 -0
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/__init__.py +176 -2
- package/generator/pygen/black.py +1 -1
- package/generator/pygen/codegen/__init__.py +4 -256
- package/generator/pygen/codegen/_utils.py +0 -3
- package/generator/pygen/codegen/models/__init__.py +1 -1
- package/generator/pygen/codegen/models/base_builder.py +1 -1
- package/generator/pygen/codegen/models/client.py +12 -12
- package/generator/pygen/codegen/models/code_model.py +10 -9
- package/generator/pygen/codegen/models/enum_type.py +4 -4
- package/generator/pygen/codegen/models/imports.py +1 -1
- package/generator/pygen/codegen/models/list_type.py +6 -6
- package/generator/pygen/codegen/models/lro_operation.py +1 -1
- package/generator/pygen/codegen/models/operation.py +16 -16
- package/generator/pygen/codegen/models/operation_group.py +4 -4
- package/generator/pygen/codegen/models/paging_operation.py +4 -4
- package/generator/pygen/codegen/models/parameter.py +8 -8
- package/generator/pygen/codegen/models/property.py +1 -1
- package/generator/pygen/codegen/models/request_builder.py +2 -2
- package/generator/pygen/codegen/models/request_builder_parameter.py +2 -2
- package/generator/pygen/codegen/models/response.py +3 -3
- package/generator/pygen/codegen/serializers/__init__.py +27 -28
- package/generator/pygen/codegen/serializers/builder_serializer.py +31 -31
- package/generator/pygen/codegen/serializers/client_serializer.py +4 -4
- package/generator/pygen/codegen/serializers/general_serializer.py +4 -4
- package/generator/pygen/codegen/serializers/metadata_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/model_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/operations_init_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/sample_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/test_serializer.py +5 -5
- package/generator/pygen/codegen/templates/config.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/config_container.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/conftest.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/init.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/metadata.json.jinja2 +2 -2
- package/generator/pygen/codegen/templates/model_dpg.py.jinja2 +2 -2
- package/generator/pygen/codegen/templates/operation_group.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/operation_groups_container.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/operation_tools.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/MANIFEST.in.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +38 -7
- package/generator/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +9 -9
- package/generator/pygen/codegen/templates/request_builder.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/sample.py.jinja2 +1 -1
- package/generator/pygen/codegen/templates/test.py.jinja2 +6 -6
- package/generator/pygen/codegen/templates/version.py.jinja2 +1 -1
- package/generator/pygen/preprocess/__init__.py +1 -1
- package/generator/pygen/utils.py +4 -0
- package/generator/test/unittests/test_optional_return_type.py +5 -5
- package/generator/test/unittests/test_parameter_ordering.py +5 -5
- package/generator/test/unittests/test_sort_schema.py +4 -4
- package/package.json +1 -1
|
@@ -33,8 +33,7 @@ from .patch_serializer import PatchSerializer
|
|
|
33
33
|
from .sample_serializer import SampleSerializer
|
|
34
34
|
from .test_serializer import TestSerializer, TestGeneralSerializer
|
|
35
35
|
from .types_serializer import TypesSerializer
|
|
36
|
-
from ...utils import to_snake_case
|
|
37
|
-
from .._utils import VALID_PACKAGE_MODE
|
|
36
|
+
from ...utils import to_snake_case, VALID_PACKAGE_MODE
|
|
38
37
|
from .utils import (
|
|
39
38
|
extract_sample_name,
|
|
40
39
|
get_namespace_from_package_name,
|
|
@@ -84,11 +83,11 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
84
83
|
|
|
85
84
|
@property
|
|
86
85
|
def has_aio_folder(self) -> bool:
|
|
87
|
-
return not self.code_model.options["
|
|
86
|
+
return not self.code_model.options["no-async"] and bool(self.code_model.has_operations)
|
|
88
87
|
|
|
89
88
|
@property
|
|
90
89
|
def has_operations_folder(self) -> bool:
|
|
91
|
-
return self.code_model.options["
|
|
90
|
+
return self.code_model.options["show-operations"] and bool(self.code_model.has_operations)
|
|
92
91
|
|
|
93
92
|
@property
|
|
94
93
|
def serialize_loop(self) -> List[AsyncInfo]:
|
|
@@ -98,7 +97,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
98
97
|
|
|
99
98
|
@property
|
|
100
99
|
def keep_version_file(self) -> bool:
|
|
101
|
-
if self.options.get("
|
|
100
|
+
if self.options.get("keep-version-file"):
|
|
102
101
|
return True
|
|
103
102
|
# If the version file is already there and the version is greater than the current version, keep it.
|
|
104
103
|
try:
|
|
@@ -107,7 +106,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
107
106
|
serialized_version = match.group(1) if match else ""
|
|
108
107
|
except (FileNotFoundError, IndexError):
|
|
109
108
|
serialized_version = ""
|
|
110
|
-
return serialized_version > self.code_model.options
|
|
109
|
+
return serialized_version > self.code_model.options.get("package-version", "")
|
|
111
110
|
|
|
112
111
|
def serialize(self) -> None:
|
|
113
112
|
env = Environment(
|
|
@@ -124,25 +123,25 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
124
123
|
exec_path = self.exec_path(client_namespace)
|
|
125
124
|
if client_namespace == "":
|
|
126
125
|
# Write the setup file
|
|
127
|
-
if self.code_model.options["
|
|
126
|
+
if self.code_model.options["basic-setup-py"]:
|
|
128
127
|
self.write_file(exec_path / Path("setup.py"), general_serializer.serialize_setup_file())
|
|
129
128
|
|
|
130
129
|
# add packaging files in root namespace (e.g. setup.py, README.md, etc.)
|
|
131
|
-
if self.code_model.options
|
|
130
|
+
if self.code_model.options.get("package-mode"):
|
|
132
131
|
self._serialize_and_write_package_files(client_namespace)
|
|
133
132
|
|
|
134
133
|
# write apiview-properties.json
|
|
135
|
-
if self.code_model.options.get("
|
|
134
|
+
if self.code_model.options.get("emit-cross-language-definition-file"):
|
|
136
135
|
self.write_file(
|
|
137
136
|
exec_path / Path("apiview-properties.json"),
|
|
138
137
|
general_serializer.serialize_cross_language_definition_file(),
|
|
139
138
|
)
|
|
140
139
|
|
|
141
140
|
# add generated samples and generated tests
|
|
142
|
-
if self.code_model.options["
|
|
143
|
-
if self.code_model.options["
|
|
141
|
+
if self.code_model.options["show-operations"] and self.code_model.has_operations:
|
|
142
|
+
if self.code_model.options["generate-sample"]:
|
|
144
143
|
self._serialize_and_write_sample(env, namespace=client_namespace)
|
|
145
|
-
if self.code_model.options["
|
|
144
|
+
if self.code_model.options["generate-test"]:
|
|
146
145
|
self._serialize_and_write_test(env, namespace=client_namespace)
|
|
147
146
|
|
|
148
147
|
# add _metadata.json
|
|
@@ -169,7 +168,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
169
168
|
# add models folder if there are models in this namespace
|
|
170
169
|
if (
|
|
171
170
|
self.code_model.has_non_json_models(client_namespace_type.models) or client_namespace_type.enums
|
|
172
|
-
) and self.code_model.options["
|
|
171
|
+
) and self.code_model.options["models-mode"]:
|
|
173
172
|
self._serialize_and_write_models_folder(
|
|
174
173
|
env=env,
|
|
175
174
|
namespace=client_namespace,
|
|
@@ -177,7 +176,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
177
176
|
enums=client_namespace_type.enums,
|
|
178
177
|
)
|
|
179
178
|
|
|
180
|
-
if not self.code_model.options["
|
|
179
|
+
if not self.code_model.options["models-mode"]:
|
|
181
180
|
# keep models file if users ended up just writing a models file
|
|
182
181
|
model_path = exec_path / Path("models.py")
|
|
183
182
|
if self.read_file(model_path):
|
|
@@ -201,7 +200,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
201
200
|
|
|
202
201
|
def _serialize_and_write_package_files(self, client_namespace: str) -> None:
|
|
203
202
|
root_of_sdk = self.exec_path(client_namespace)
|
|
204
|
-
if self.code_model.options["
|
|
203
|
+
if self.code_model.options["package-mode"] in VALID_PACKAGE_MODE:
|
|
205
204
|
env = Environment(
|
|
206
205
|
loader=PackageLoader("pygen.codegen", "templates/packaging_templates"),
|
|
207
206
|
undefined=StrictUndefined,
|
|
@@ -212,9 +211,9 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
212
211
|
package_files = _PACKAGE_FILES
|
|
213
212
|
if not self.code_model.license_description:
|
|
214
213
|
package_files.remove("LICENSE.jinja2")
|
|
215
|
-
elif Path(self.code_model.options["
|
|
214
|
+
elif Path(self.code_model.options["package-mode"]).exists():
|
|
216
215
|
env = Environment(
|
|
217
|
-
loader=FileSystemLoader(str(Path(self.code_model.options["
|
|
216
|
+
loader=FileSystemLoader(str(Path(self.code_model.options["package-mode"]))),
|
|
218
217
|
keep_trailing_newline=True,
|
|
219
218
|
undefined=StrictUndefined,
|
|
220
219
|
)
|
|
@@ -222,7 +221,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
222
221
|
else:
|
|
223
222
|
return
|
|
224
223
|
serializer = GeneralSerializer(self.code_model, env, async_mode=False)
|
|
225
|
-
params = self.code_model.options
|
|
224
|
+
params = self.code_model.options.get("packaging-files-config", {})
|
|
226
225
|
for template_name in package_files:
|
|
227
226
|
if not self.code_model.is_azure_flavor and template_name == "dev_requirements.txt.jinja2":
|
|
228
227
|
continue
|
|
@@ -251,7 +250,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
251
250
|
) -> None:
|
|
252
251
|
# Write the models folder
|
|
253
252
|
models_path = self.exec_path(namespace) / "models"
|
|
254
|
-
serializer = DpgModelSerializer if self.code_model.options["
|
|
253
|
+
serializer = DpgModelSerializer if self.code_model.options["models-mode"] == "dpg" else MsrestModelSerializer
|
|
255
254
|
if self.code_model.has_non_json_models(models):
|
|
256
255
|
self.write_file(
|
|
257
256
|
models_path / Path(f"{self.code_model.models_filename}.py"),
|
|
@@ -332,7 +331,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
332
331
|
|
|
333
332
|
# write operations file
|
|
334
333
|
OgLoop = namedtuple("OgLoop", ["operation_groups", "filename"])
|
|
335
|
-
if self.code_model.options["
|
|
334
|
+
if self.code_model.options["combine-operation-files"]:
|
|
336
335
|
loops = [OgLoop(operation_groups, "_operations")]
|
|
337
336
|
else:
|
|
338
337
|
loops = [OgLoop([og], og.filename) for og in operation_groups]
|
|
@@ -372,7 +371,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
372
371
|
_write_version_file(original_version_file_name="_version.py")
|
|
373
372
|
elif self.keep_version_file and _read_version_file("version.py"):
|
|
374
373
|
_write_version_file(original_version_file_name="version.py")
|
|
375
|
-
elif self.code_model.options
|
|
374
|
+
elif self.code_model.options.get("package-version"):
|
|
376
375
|
self.write_file(
|
|
377
376
|
exec_path / Path("_version.py"),
|
|
378
377
|
general_serializer.serialize_version_file(),
|
|
@@ -437,7 +436,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
437
436
|
)
|
|
438
437
|
|
|
439
438
|
# write _model_base.py
|
|
440
|
-
if self.code_model.options["
|
|
439
|
+
if self.code_model.options["models-mode"] == "dpg":
|
|
441
440
|
self.write_file(
|
|
442
441
|
utils_folder_path / Path("model_base.py"),
|
|
443
442
|
general_serializer.serialize_model_base_file(),
|
|
@@ -479,7 +478,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
479
478
|
"""Assume the process is running in the root folder of the package. If not, we need the path compensation."""
|
|
480
479
|
return (
|
|
481
480
|
Path("../" * (self.code_model.namespace.count(".") + 1))
|
|
482
|
-
if self.code_model.options["
|
|
481
|
+
if self.code_model.options["no-namespace-folders"]
|
|
483
482
|
else Path(".")
|
|
484
483
|
)
|
|
485
484
|
|
|
@@ -488,7 +487,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
488
487
|
|
|
489
488
|
# pylint: disable=line-too-long
|
|
490
489
|
def exec_path(self, namespace: str) -> Path:
|
|
491
|
-
if self.code_model.options["
|
|
490
|
+
if self.code_model.options["no-namespace-folders"] and not self.code_model.options["multiapi"]:
|
|
492
491
|
# when output folder contains parts different from the namespace, we fall back to current folder directly.
|
|
493
492
|
# (e.g. https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/communication/azure-communication-callautomation/swagger/SWAGGER.md)
|
|
494
493
|
return Path(".")
|
|
@@ -506,7 +505,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
506
505
|
namespace_config = get_namespace_config(self.code_model.namespace, self.code_model.options["multiapi"])
|
|
507
506
|
num_of_namespace = namespace_config.count(".") + 1
|
|
508
507
|
num_of_package_namespace = (
|
|
509
|
-
get_namespace_from_package_name(self.code_model.options
|
|
508
|
+
get_namespace_from_package_name(self.code_model.options.get("namespace", "")).count(".") + 1
|
|
510
509
|
)
|
|
511
510
|
if num_of_namespace > num_of_package_namespace:
|
|
512
511
|
return Path("/".join(namespace_config.split(".")[num_of_package_namespace:]))
|
|
@@ -519,7 +518,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
519
518
|
for operation in op_group.operations:
|
|
520
519
|
if (
|
|
521
520
|
self.code_model.options["multiapi"]
|
|
522
|
-
and operation.api_versions[0] != self.code_model.options["
|
|
521
|
+
and operation.api_versions[0] != self.code_model.options["default-api-version"]
|
|
523
522
|
):
|
|
524
523
|
continue
|
|
525
524
|
samples = operation.yaml_data.get("samples")
|
|
@@ -550,7 +549,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
550
549
|
out_path = self.exec_path_for_test_sample(namespace) / Path("generated_tests")
|
|
551
550
|
general_serializer = TestGeneralSerializer(code_model=self.code_model, env=env)
|
|
552
551
|
self.write_file(out_path / "conftest.py", general_serializer.serialize_conftest())
|
|
553
|
-
if not self.code_model.options["
|
|
552
|
+
if not self.code_model.options["azure-arm"]:
|
|
554
553
|
for async_mode in (True, False):
|
|
555
554
|
async_suffix = "_async" if async_mode else ""
|
|
556
555
|
general_serializer.async_mode = async_mode
|
|
@@ -562,7 +561,7 @@ class JinjaSerializer(ReaderAndWriter):
|
|
|
562
561
|
for client in self.code_model.clients:
|
|
563
562
|
for og in client.operation_groups:
|
|
564
563
|
if self.code_model.options["multiapi"] and any(
|
|
565
|
-
o.api_versions[0] != self.code_model.options["
|
|
564
|
+
o.api_versions[0] != self.code_model.options["default-api-version"] for o in og.operations
|
|
566
565
|
):
|
|
567
566
|
continue
|
|
568
567
|
test_serializer = TestSerializer(self.code_model, env, client=client, operation_group=og)
|
|
@@ -326,7 +326,7 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
326
326
|
|
|
327
327
|
if (
|
|
328
328
|
isinstance(body_param.type, (ListType, DictionaryType))
|
|
329
|
-
and self.code_model.options["
|
|
329
|
+
and self.code_model.options["models-mode"] == "msrest"
|
|
330
330
|
):
|
|
331
331
|
return template
|
|
332
332
|
|
|
@@ -351,7 +351,7 @@ class _BuilderBaseSerializer(Generic[BuilderType]):
|
|
|
351
351
|
)
|
|
352
352
|
for idx in range(
|
|
353
353
|
min(
|
|
354
|
-
self.code_model.options["
|
|
354
|
+
self.code_model.options["polymorphic-examples"],
|
|
355
355
|
len(polymorphic_subtypes),
|
|
356
356
|
)
|
|
357
357
|
):
|
|
@@ -494,7 +494,7 @@ class RequestBuilderSerializer(_BuilderBaseSerializer[RequestBuilderType]):
|
|
|
494
494
|
return retval
|
|
495
495
|
|
|
496
496
|
def construct_url(self, builder: RequestBuilderType) -> str:
|
|
497
|
-
if any(o for o in ["
|
|
497
|
+
if any(o for o in ["low-level-client", "version-tolerant"] if self.code_model.options.get(o)):
|
|
498
498
|
url_value = _escape_str(builder.url)
|
|
499
499
|
else:
|
|
500
500
|
url_value = f'kwargs.pop("template_url", {_escape_str(builder.url)})'
|
|
@@ -522,7 +522,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
522
522
|
return "response"
|
|
523
523
|
|
|
524
524
|
def example_template(self, builder: OperationType) -> List[str]:
|
|
525
|
-
if self.code_model.options["
|
|
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:
|
|
@@ -540,7 +540,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
540
540
|
)
|
|
541
541
|
for idx in range(
|
|
542
542
|
min(
|
|
543
|
-
self.code_model.options["
|
|
543
|
+
self.code_model.options["polymorphic-examples"],
|
|
544
544
|
len(polymorphic_subtypes),
|
|
545
545
|
)
|
|
546
546
|
):
|
|
@@ -559,7 +559,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
559
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
|
-
if builder.stream_value is True and not self.code_model.options["
|
|
562
|
+
if builder.stream_value is True and not self.code_model.options["version-tolerant"]:
|
|
563
563
|
retval.append("_decompress = kwargs.pop('decompress', True)")
|
|
564
564
|
pylint_disable = " # pylint: disable=protected-access" if self.code_model.is_azure_flavor else ""
|
|
565
565
|
retval.extend(
|
|
@@ -688,9 +688,9 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
688
688
|
send_xml = builder.parameters.body_parameter.type.is_xml
|
|
689
689
|
xml_serialization_ctxt = body_param.type.xml_serialization_ctxt if send_xml else None
|
|
690
690
|
ser_ctxt_name = "serialization_ctxt"
|
|
691
|
-
if xml_serialization_ctxt and self.code_model.options["
|
|
691
|
+
if xml_serialization_ctxt and self.code_model.options["models-mode"]:
|
|
692
692
|
retval.append(f'{ser_ctxt_name} = {{"xml": {{{xml_serialization_ctxt}}}}}')
|
|
693
|
-
if self.code_model.options["
|
|
693
|
+
if self.code_model.options["models-mode"] == "msrest":
|
|
694
694
|
is_xml_cmd = _xml_config(send_xml, builder.parameters.body_parameter.content_types)
|
|
695
695
|
serialization_ctxt_cmd = f", {ser_ctxt_name}={ser_ctxt_name}" if xml_serialization_ctxt else ""
|
|
696
696
|
serialization_type = body_param.type.serialization_type(serialize_namespace=self.serialize_namespace)
|
|
@@ -698,7 +698,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
698
698
|
f"_{body_kwarg_name} = self._serialize.body({body_param.client_name}, "
|
|
699
699
|
f"'{serialization_type}'{is_xml_cmd}{serialization_ctxt_cmd})"
|
|
700
700
|
)
|
|
701
|
-
elif self.code_model.options["
|
|
701
|
+
elif self.code_model.options["models-mode"] == "dpg":
|
|
702
702
|
if json_serializable(body_param.default_content_type):
|
|
703
703
|
if hasattr(body_param.type, "encode") and body_param.type.encode: # type: ignore
|
|
704
704
|
create_body_call = (
|
|
@@ -812,7 +812,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
812
812
|
is_next_request: bool = False,
|
|
813
813
|
) -> List[str]:
|
|
814
814
|
retval: List[str] = []
|
|
815
|
-
if self.code_model.options["
|
|
815
|
+
if self.code_model.options["builders-visibility"] == "embedded":
|
|
816
816
|
request_path_name = request_builder.name
|
|
817
817
|
else:
|
|
818
818
|
group_name = request_builder.group_name
|
|
@@ -873,7 +873,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
873
873
|
if builder.parameters.path:
|
|
874
874
|
retval.extend(self.serialize_path(builder))
|
|
875
875
|
url_to_format = "_request.url"
|
|
876
|
-
if self.code_model.options["
|
|
876
|
+
if self.code_model.options["version-tolerant"] and template_url:
|
|
877
877
|
url_to_format = template_url
|
|
878
878
|
retval.append(
|
|
879
879
|
"_request.url = self._client.format_url({}{})".format(
|
|
@@ -948,7 +948,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
948
948
|
deserialized = f"{'await ' if self.async_mode else ''}response.read()"
|
|
949
949
|
else:
|
|
950
950
|
stream_logic = False
|
|
951
|
-
if self.code_model.options["
|
|
951
|
+
if self.code_model.options["version-tolerant"]:
|
|
952
952
|
deserialized = "response.iter_bytes()"
|
|
953
953
|
else:
|
|
954
954
|
deserialized = (
|
|
@@ -959,13 +959,13 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
959
959
|
pylint_disable = ""
|
|
960
960
|
if isinstance(response.type, ModelType) and response.type.internal:
|
|
961
961
|
pylint_disable = " # pylint: disable=protected-access"
|
|
962
|
-
if self.code_model.options["
|
|
962
|
+
if self.code_model.options["models-mode"] == "msrest":
|
|
963
963
|
deserialize_code.append("deserialized = self._deserialize(")
|
|
964
964
|
serialization_type = response.serialization_type(serialize_namespace=self.serialize_namespace)
|
|
965
965
|
deserialize_code.append(f" '{serialization_type}',{pylint_disable}")
|
|
966
966
|
deserialize_code.append(" pipeline_response.http_response")
|
|
967
967
|
deserialize_code.append(")")
|
|
968
|
-
elif self.code_model.options["
|
|
968
|
+
elif self.code_model.options["models-mode"] == "dpg":
|
|
969
969
|
if builder.has_stream_response:
|
|
970
970
|
deserialize_code.append("deserialized = response.content")
|
|
971
971
|
else:
|
|
@@ -1019,7 +1019,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1019
1019
|
retval.extend([f" {l}" for l in response_read])
|
|
1020
1020
|
retval.append(" map_error(status_code=response.status_code, response=response, error_map=error_map)")
|
|
1021
1021
|
error_model = ""
|
|
1022
|
-
if builder.non_default_errors and self.code_model.options["
|
|
1022
|
+
if builder.non_default_errors and self.code_model.options["models-mode"]:
|
|
1023
1023
|
error_model = ", model=error"
|
|
1024
1024
|
condition = "if"
|
|
1025
1025
|
retval.append(" error = None")
|
|
@@ -1031,7 +1031,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1031
1031
|
type_annotation = e.type.type_annotation( # type: ignore
|
|
1032
1032
|
is_operation_file=True, skip_quote=True, serialize_namespace=self.serialize_namespace
|
|
1033
1033
|
)
|
|
1034
|
-
if self.code_model.options["
|
|
1034
|
+
if self.code_model.options["models-mode"] == "dpg":
|
|
1035
1035
|
retval.append(f" error = _failsafe_deserialize({type_annotation}, response.json())")
|
|
1036
1036
|
else:
|
|
1037
1037
|
retval.append(
|
|
@@ -1051,7 +1051,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1051
1051
|
" raise {}(response=response{}{})".format(
|
|
1052
1052
|
status_code_error_map[cast(int, status_code)],
|
|
1053
1053
|
error_model,
|
|
1054
|
-
(", error_format=ARMErrorFormat" if self.code_model.options["
|
|
1054
|
+
(", error_format=ARMErrorFormat" if self.code_model.options["azure-arm"] else ""),
|
|
1055
1055
|
)
|
|
1056
1056
|
)
|
|
1057
1057
|
condition = "if"
|
|
@@ -1065,7 +1065,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1065
1065
|
type_annotation = e.type.type_annotation( # type: ignore
|
|
1066
1066
|
is_operation_file=True, skip_quote=True, serialize_namespace=self.serialize_namespace
|
|
1067
1067
|
)
|
|
1068
|
-
if self.code_model.options["
|
|
1068
|
+
if self.code_model.options["models-mode"] == "dpg":
|
|
1069
1069
|
if xml_serializable(str(e.default_content_type)):
|
|
1070
1070
|
retval.append(
|
|
1071
1071
|
f" error = _failsafe_deserialize_xml({type_annotation}, response.text())"
|
|
@@ -1079,12 +1079,12 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1079
1079
|
)
|
|
1080
1080
|
condition = "elif"
|
|
1081
1081
|
# default error handling
|
|
1082
|
-
if builder.default_error_deserialization and self.code_model.options["
|
|
1082
|
+
if builder.default_error_deserialization and self.code_model.options["models-mode"]:
|
|
1083
1083
|
error_model = ", model=error"
|
|
1084
1084
|
indent = " " if builder.non_default_errors else " "
|
|
1085
1085
|
if builder.non_default_errors:
|
|
1086
1086
|
retval.append(" else:")
|
|
1087
|
-
if self.code_model.options["
|
|
1087
|
+
if self.code_model.options["models-mode"] == "dpg":
|
|
1088
1088
|
retval.append(
|
|
1089
1089
|
f"{indent}error = _failsafe_deserialize({builder.default_error_deserialization}, response.json())"
|
|
1090
1090
|
)
|
|
@@ -1096,7 +1096,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1096
1096
|
retval.append(
|
|
1097
1097
|
" raise HttpResponseError(response=response{}{})".format(
|
|
1098
1098
|
error_model,
|
|
1099
|
-
(", error_format=ARMErrorFormat" if self.code_model.options["
|
|
1099
|
+
(", error_format=ARMErrorFormat" if self.code_model.options["azure-arm"] else ""),
|
|
1100
1100
|
)
|
|
1101
1101
|
)
|
|
1102
1102
|
return retval
|
|
@@ -1144,7 +1144,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1144
1144
|
else:
|
|
1145
1145
|
retval.extend(self.response_headers_and_deserialization(builder, builder.responses[0]))
|
|
1146
1146
|
retval.append("")
|
|
1147
|
-
if builder.has_optional_return_type or self.code_model.options["
|
|
1147
|
+
if builder.has_optional_return_type or self.code_model.options["models-mode"]:
|
|
1148
1148
|
deserialized = "deserialized"
|
|
1149
1149
|
else:
|
|
1150
1150
|
deserialized = f"cast({builder.response_type_annotation(async_mode=self.async_mode)}, deserialized)"
|
|
@@ -1161,7 +1161,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1161
1161
|
):
|
|
1162
1162
|
retval.append("")
|
|
1163
1163
|
retval.append(f"return {deserialized} # type: ignore")
|
|
1164
|
-
if builder.request_builder.method == "HEAD" and self.code_model.options["
|
|
1164
|
+
if builder.request_builder.method == "HEAD" and self.code_model.options["head-as-boolean"]:
|
|
1165
1165
|
retval.append("return 200 <= response.status_code <= 299")
|
|
1166
1166
|
return retval
|
|
1167
1167
|
|
|
@@ -1180,7 +1180,7 @@ class _OperationSerializer(_BuilderBaseSerializer[OperationType]):
|
|
|
1180
1180
|
|
|
1181
1181
|
def error_map(self, builder: OperationType) -> List[str]:
|
|
1182
1182
|
retval = ["error_map: MutableMapping = {"]
|
|
1183
|
-
if builder.non_default_errors and self.code_model.options["
|
|
1183
|
+
if builder.non_default_errors and self.code_model.options["models-mode"]:
|
|
1184
1184
|
# TODO: we should decide whether to add the build-in error map when there is a customized default error type
|
|
1185
1185
|
if self._need_specific_error_map(401, builder):
|
|
1186
1186
|
retval.append(" 401: ClientAuthenticationError,")
|
|
@@ -1326,7 +1326,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1326
1326
|
retval = [f"{'async ' if self.async_mode else ''}def extract_data(pipeline_response):"]
|
|
1327
1327
|
response = builder.responses[0]
|
|
1328
1328
|
deserialized = "pipeline_response.http_response.json()"
|
|
1329
|
-
if self.code_model.options["
|
|
1329
|
+
if self.code_model.options["models-mode"] == "msrest":
|
|
1330
1330
|
suffix = ".http_response" if hasattr(builder, "initial_operation") else ""
|
|
1331
1331
|
deserialize_type = response.serialization_type(serialize_namespace=self.serialize_namespace)
|
|
1332
1332
|
pylint_disable = " # pylint: disable=protected-access"
|
|
@@ -1337,13 +1337,13 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1337
1337
|
f"self._deserialize(\n {deserialize_type},{pylint_disable}\n pipeline_response{suffix}\n)"
|
|
1338
1338
|
)
|
|
1339
1339
|
retval.append(f" deserialized = {deserialized}")
|
|
1340
|
-
elif self.code_model.options["
|
|
1340
|
+
elif self.code_model.options["models-mode"] == "dpg":
|
|
1341
1341
|
# we don't want to generate paging models for DPG
|
|
1342
1342
|
retval.append(f" deserialized = {deserialized}")
|
|
1343
1343
|
else:
|
|
1344
1344
|
retval.append(f" deserialized = {deserialized}")
|
|
1345
1345
|
item_name = builder.item_name
|
|
1346
|
-
if self.code_model.options["
|
|
1346
|
+
if self.code_model.options["models-mode"] == "msrest":
|
|
1347
1347
|
access = f".{item_name}"
|
|
1348
1348
|
else:
|
|
1349
1349
|
item_name_array = item_name.split(".")
|
|
@@ -1351,7 +1351,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1351
1351
|
"".join([f'.get("{i}", {{}})' for i in item_name_array[:-1]]) + f'.get("{item_name_array[-1]}", [])'
|
|
1352
1352
|
)
|
|
1353
1353
|
list_of_elem_deserialized = ""
|
|
1354
|
-
if self.code_model.options["
|
|
1354
|
+
if self.code_model.options["models-mode"] == "dpg":
|
|
1355
1355
|
item_type = builder.item_type.type_annotation(
|
|
1356
1356
|
is_operation_file=True, serialize_namespace=self.serialize_namespace
|
|
1357
1357
|
)
|
|
@@ -1377,7 +1377,7 @@ class _PagingOperationSerializer(_OperationSerializer[PagingOperationType]):
|
|
|
1377
1377
|
next_link_name = builder.next_link_name
|
|
1378
1378
|
if not next_link_name:
|
|
1379
1379
|
cont_token_property = "None"
|
|
1380
|
-
elif self.code_model.options["
|
|
1380
|
+
elif self.code_model.options["models-mode"] == "msrest":
|
|
1381
1381
|
cont_token_property = f"deserialized.{next_link_name} or None"
|
|
1382
1382
|
else:
|
|
1383
1383
|
cont_token_property = f'deserialized.get("{next_link_name}") or None'
|
|
@@ -1498,8 +1498,8 @@ class _LROOperationSerializer(_OperationSerializer[LROOperationType]):
|
|
|
1498
1498
|
if builder.lro_response.headers:
|
|
1499
1499
|
retval.append(" response_headers = {}")
|
|
1500
1500
|
if (
|
|
1501
|
-
not self.code_model.options["
|
|
1502
|
-
or self.code_model.options["
|
|
1501
|
+
not self.code_model.options["models-mode"]
|
|
1502
|
+
or self.code_model.options["models-mode"] == "dpg"
|
|
1503
1503
|
or builder.lro_response.headers
|
|
1504
1504
|
):
|
|
1505
1505
|
retval.append(" response = pipeline_response.http_response")
|
|
@@ -137,7 +137,7 @@ class ClientSerializer:
|
|
|
137
137
|
if not self.client.code_model.is_legacy and self.client.request_id_header_name:
|
|
138
138
|
result.append(f'kwargs["request_id_header_name"] = "{self.client.request_id_header_name}"')
|
|
139
139
|
policies = build_policies(
|
|
140
|
-
self.client.code_model.options["
|
|
140
|
+
self.client.code_model.options["azure-arm"],
|
|
141
141
|
async_mode,
|
|
142
142
|
is_azure_flavor=self.client.code_model.is_azure_flavor,
|
|
143
143
|
tracing=self.client.code_model.options["tracing"],
|
|
@@ -161,7 +161,7 @@ class ClientSerializer:
|
|
|
161
161
|
return f"{{k: v for k, v in {models_dict_name}.__dict__.items() if isinstance(v, type)}}"
|
|
162
162
|
return "{}"
|
|
163
163
|
|
|
164
|
-
is_msrest_model = self.client.code_model.options["
|
|
164
|
+
is_msrest_model = self.client.code_model.options["models-mode"] == "msrest"
|
|
165
165
|
if is_msrest_model:
|
|
166
166
|
add_private_models = len(self.client.code_model.model_types) != len(
|
|
167
167
|
self.client.code_model.public_model_types
|
|
@@ -177,7 +177,7 @@ class ClientSerializer:
|
|
|
177
177
|
client_models_str = "client_models" if is_msrest_model else ""
|
|
178
178
|
retval.append(f"self._serialize = Serializer({client_models_str})")
|
|
179
179
|
retval.append(f"self._deserialize = Deserializer({client_models_str})")
|
|
180
|
-
if not self.client.code_model.options["
|
|
180
|
+
if not self.client.code_model.options["client-side-validation"]:
|
|
181
181
|
retval.append("self._serialize.client_side_validation = False")
|
|
182
182
|
operation_groups = [og for og in self.client.operation_groups if not og.is_mixin]
|
|
183
183
|
for og in operation_groups:
|
|
@@ -252,7 +252,7 @@ class ClientSerializer:
|
|
|
252
252
|
rest_library = f"{self.client.code_model.core_library}.rest"
|
|
253
253
|
retval = ['"""Runs the network request through the client\'s chained policies.']
|
|
254
254
|
retval.append("")
|
|
255
|
-
if self.client.code_model.options["
|
|
255
|
+
if self.client.code_model.options["builders-visibility"] != "embedded":
|
|
256
256
|
retval.extend(self._request_builder_example(async_mode))
|
|
257
257
|
else:
|
|
258
258
|
retval.extend(self._rest_request_example(async_mode))
|
|
@@ -39,7 +39,7 @@ class GeneralSerializer(BaseSerializer):
|
|
|
39
39
|
"MIN_PYTHON_VERSION": MIN_PYTHON_VERSION,
|
|
40
40
|
"MAX_PYTHON_VERSION": MAX_PYTHON_VERSION,
|
|
41
41
|
}
|
|
42
|
-
params.update(self.code_model.options)
|
|
42
|
+
params.update({"options": self.code_model.options})
|
|
43
43
|
return template.render(code_model=self.code_model, **params)
|
|
44
44
|
|
|
45
45
|
def serialize_package_file(self, template_name: str, **kwargs: Any) -> str:
|
|
@@ -47,12 +47,12 @@ class GeneralSerializer(BaseSerializer):
|
|
|
47
47
|
package_parts = (
|
|
48
48
|
self.code_model.namespace.split(".")[:-1]
|
|
49
49
|
if self.code_model.is_tsp
|
|
50
|
-
else (self.code_model.options
|
|
50
|
+
else (self.code_model.options.get("package-name", "")).split("-")[:-1]
|
|
51
51
|
)
|
|
52
52
|
token_credential = any(
|
|
53
53
|
c for c in self.code_model.clients if isinstance(getattr(c.credential, "type", None), TokenCredentialType)
|
|
54
54
|
)
|
|
55
|
-
version = self.code_model.options
|
|
55
|
+
version = self.code_model.options.get("package-version", "")
|
|
56
56
|
if any(x in version for x in ["a", "b", "rc"]) or version[0] == "0":
|
|
57
57
|
dev_status = "4 - Beta"
|
|
58
58
|
else:
|
|
@@ -68,7 +68,7 @@ class GeneralSerializer(BaseSerializer):
|
|
|
68
68
|
"MIN_PYTHON_VERSION": MIN_PYTHON_VERSION,
|
|
69
69
|
"MAX_PYTHON_VERSION": MAX_PYTHON_VERSION,
|
|
70
70
|
}
|
|
71
|
-
params.update(self.code_model.options)
|
|
71
|
+
params.update({"options": self.code_model.options})
|
|
72
72
|
params.update(kwargs)
|
|
73
73
|
return template.render(file_import=FileImport(self.code_model), **params)
|
|
74
74
|
|
|
@@ -158,7 +158,7 @@ class MetadataSerializer(BaseSerializer):
|
|
|
158
158
|
chosen_version, total_api_version_list = self._choose_api_version()
|
|
159
159
|
|
|
160
160
|
# setting to true, because for multiapi we always generate with a version file with version 0.1.0
|
|
161
|
-
self.code_model.options["
|
|
161
|
+
self.code_model.options["package-version"] = "0.1.0"
|
|
162
162
|
template = self.env.get_template("metadata.json.jinja2")
|
|
163
163
|
|
|
164
164
|
client_serialize_namespace = self.code_model.get_serialize_namespace(self.client_namespace, async_mode=False)
|
|
@@ -164,7 +164,7 @@ class MsrestModelSerializer(_ModelSerializer):
|
|
|
164
164
|
def declare_model(self, model: ModelType) -> str:
|
|
165
165
|
basename = (
|
|
166
166
|
"msrest.serialization.Model"
|
|
167
|
-
if self.code_model.options["
|
|
167
|
+
if self.code_model.options["client-side-validation"]
|
|
168
168
|
else "_serialization.Model"
|
|
169
169
|
)
|
|
170
170
|
if model.parents:
|
|
@@ -24,7 +24,7 @@ class OperationsInitSerializer:
|
|
|
24
24
|
|
|
25
25
|
def operation_group_imports(self) -> List[str]:
|
|
26
26
|
def _get_filename(operation_group: OperationGroup) -> str:
|
|
27
|
-
return "_operations" if self.code_model.options["
|
|
27
|
+
return "_operations" if self.code_model.options["combine-operation-files"] else operation_group.filename
|
|
28
28
|
|
|
29
29
|
return [f"from .{_get_filename(og)} import {og.class_name} # type: ignore" for og in self.operation_groups]
|
|
30
30
|
|
|
@@ -147,7 +147,7 @@ class SampleSerializer(BaseSerializer):
|
|
|
147
147
|
name = self.sample.get("x-ms-original-file", "")
|
|
148
148
|
if "specification" in name:
|
|
149
149
|
return "specification" + name.split("specification")[-1]
|
|
150
|
-
return name if self.code_model.options["
|
|
150
|
+
return name if self.code_model.options["from-typespec"] else ""
|
|
151
151
|
|
|
152
152
|
def serialize(self) -> str:
|
|
153
153
|
operation_result, return_var = self._operation_result()
|
|
@@ -54,13 +54,13 @@ class TestName:
|
|
|
54
54
|
|
|
55
55
|
@property
|
|
56
56
|
def preparer_name(self) -> str:
|
|
57
|
-
if self.code_model.options["
|
|
57
|
+
if self.code_model.options["azure-arm"]:
|
|
58
58
|
return "RandomNameResourceGroupPreparer"
|
|
59
59
|
return self.prefix + "Preparer"
|
|
60
60
|
|
|
61
61
|
@property
|
|
62
62
|
def base_test_class_name(self) -> str:
|
|
63
|
-
if self.code_model.options["
|
|
63
|
+
if self.code_model.options["azure-arm"]:
|
|
64
64
|
return "AzureMgmtRecordedTestCase"
|
|
65
65
|
return f"{self.client_name}TestBase{self.async_suffix_capt}"
|
|
66
66
|
|
|
@@ -196,12 +196,12 @@ class TestSerializer(TestGeneralSerializer):
|
|
|
196
196
|
test_name = TestName(self.code_model, self.client.name, async_mode=self.async_mode)
|
|
197
197
|
async_suffix = "_async" if self.async_mode else ""
|
|
198
198
|
imports.add_submodule_import(
|
|
199
|
-
"devtools_testutils" if self.code_model.options["
|
|
199
|
+
"devtools_testutils" if self.code_model.options["azure-arm"] else "testpreparer" + async_suffix,
|
|
200
200
|
test_name.base_test_class_name,
|
|
201
201
|
ImportType.LOCAL,
|
|
202
202
|
)
|
|
203
203
|
imports.add_submodule_import(
|
|
204
|
-
"devtools_testutils" if self.code_model.options["
|
|
204
|
+
"devtools_testutils" if self.code_model.options["azure-arm"] else "testpreparer",
|
|
205
205
|
test_name.preparer_name,
|
|
206
206
|
ImportType.LOCAL,
|
|
207
207
|
)
|
|
@@ -210,7 +210,7 @@ class TestSerializer(TestGeneralSerializer):
|
|
|
210
210
|
"recorded_by_proxy" + async_suffix,
|
|
211
211
|
ImportType.LOCAL,
|
|
212
212
|
)
|
|
213
|
-
if self.code_model.options["
|
|
213
|
+
if self.code_model.options["azure-arm"]:
|
|
214
214
|
self.add_import_client(imports)
|
|
215
215
|
return FileImportSerializer(imports, self.async_mode)
|
|
216
216
|
|
|
@@ -46,7 +46,7 @@ class {{ client.name }}Configuration: {{ client.config.pylint_disable() }}
|
|
|
46
46
|
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs)
|
|
47
47
|
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs)
|
|
48
48
|
{% if code_model.is_azure_flavor %}
|
|
49
|
-
self.http_logging_policy = kwargs.get('http_logging_policy') or {{ "ARM" if client.code_model.options[
|
|
49
|
+
self.http_logging_policy = kwargs.get('http_logging_policy') or {{ "ARM" if client.code_model.options["azure-arm"] else "policies." }}HttpLoggingPolicy(**kwargs)
|
|
50
50
|
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
|
|
51
51
|
self.redirect_policy = kwargs.get('redirect_policy') or policies.{{ keywords.async_class }}RedirectPolicy(**kwargs)
|
|
52
52
|
{% endif %}
|
|
@@ -13,7 +13,7 @@ load_dotenv()
|
|
|
13
13
|
@pytest.fixture(scope="session", autouse=True)
|
|
14
14
|
def add_sanitizers(test_proxy):
|
|
15
15
|
{% for test_name in test_names %}
|
|
16
|
-
{% set prefix_upper = "AZURE" if code_model.options["
|
|
16
|
+
{% set prefix_upper = "AZURE" if code_model.options["azure-arm"] else test_name.prefix|upper %}
|
|
17
17
|
{% set prefix_lower = test_name.prefix|lower %}
|
|
18
18
|
{{ prefix_lower }}_subscription_id = os.environ.get("{{ prefix_upper }}_SUBSCRIPTION_ID", "00000000-0000-0000-0000-000000000000")
|
|
19
19
|
{{ prefix_lower }}_tenant_id = os.environ.get("{{ prefix_upper }}_TENANT_ID", "00000000-0000-0000-0000-000000000000")
|