def _serialize_helper()

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"))