in packages/autorest.python/autorest/multiapi/serializers/__init__.py [0:0]
def _serialize_helper(self, code_model: CodeModel, async_mode: bool) -> None:
def _render_template(file: str, **kwargs: Any) -> str:
template = self.env.get_template(_FILE_TO_TEMPLATE[file])
all_params = (
code_model.global_parameters.parameters
+ code_model.global_parameters.service_client_specific_global_parameters
)
positional_params = [p for p in all_params if p.method_location == "positional"]
keyword_only_params = [p for p in all_params if p.method_location == "keywordOnly"]
return template.render(
code_model=code_model,
async_mode=async_mode,
positional_params=_method_signature_helper(positional_params, async_mode),
keyword_only_params=_method_signature_helper(keyword_only_params, async_mode),
**kwargs
)
# serialize init file
self.write_file(_get_file_path("__init__", async_mode), _render_template("init"))
# serialize service client file
imports = FileImportSerializer(code_model.client.imports(async_mode))
config_policies = build_policies(code_model.azure_arm, async_mode, is_azure_flavor=True)
self.write_file(
_get_file_path(code_model.client.filename, async_mode),
_render_template("client", imports=imports, config_policies=config_policies),
)
# serialize config file
imports = FileImportSerializer(code_model.config.imports(async_mode))
self.write_file(
_get_file_path("_configuration", async_mode),
_render_template("config", imports=imports),
)
# serialize mixins
if code_model.operation_mixin_group.mixin_operations:
imports = FileImportSerializer(
code_model.operation_mixin_group.imports(async_mode),
code_model.operation_mixin_group.typing_definitions(async_mode),
)
self.write_file(
_get_file_path("_operations_mixin", async_mode),
_render_template("operations_mixin", imports=imports),
)
# serialize models
self.write_file(Path("models.py"), _render_template("models"))