packages/autorest.python/autorest/multiapi/templates/multiapi_config.py.jinja2 (83 lines of code) (raw):

{% macro method_signature() %} def __init__( self, {% for parameter in code_model.global_parameters.parameters %} {% if parameter.required %} {{ parameter.signature(async_mode) }} {% endif %} {% endfor %} {% for parameter in code_model.global_parameters.parameters %} {% if not parameter.required %} {{ parameter.signature(async_mode) }} {% endif %} {% endfor %} **kwargs: Any ){{" -> None" if async_mode else "" }}:{% endmacro %} {% set version_import = ".._version" if async_mode else "._version" %} {% set async_prefix = "Async" if async_mode else "" %} {# actual template starts here #} # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for # license information. # # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is # regenerated. # -------------------------------------------------------------------------- {{ imports }} class {{ code_model.client.name }}Configuration: """Configuration for {{ code_model.client.name }}. Note that all parameters used to create this instance are saved as instance attributes. {% if code_model.global_parameters.parameters %} {% endif %} {% for parameter in code_model.global_parameters.parameters %} :param {{ parameter.name }}: {{ parameter.description(async_mode) }} :type {{ parameter.name }}: {{ parameter.docstring_type(async_mode) }} {% endfor %} """ {{ method_signature()|indent }} {% for parameter in code_model.global_parameters.parameters %} {% if parameter.required %} if {{ parameter.name }} is None: raise ValueError("Parameter '{{ parameter.name }}' must not be None.") {% endif %} {% endfor %} {% for parameter in code_model.global_parameters.parameters %} self.{{ parameter.name }} = {{ parameter.name }} {% endfor %} {% if code_model.global_parameters.constant_parameters %} {% for constant_parameter in code_model.global_parameters.constant_parameters %} self.{{ constant_parameter.name }} = {{ constant_parameter.value }} {% endfor %} {% endif %} {% if code_model.config.credential_scopes is not none %} self.credential_scopes = kwargs.pop('credential_scopes', {{ code_model.config.credential_scopes }}) {% endif %} kwargs.setdefault('sdk_moniker', '{{ code_model.package_name|lower }}/{}'.format(VERSION)) self.polling_interval = kwargs.get("polling_interval", 30) self._configure(**kwargs) def _configure( self, **kwargs: Any ){{ " -> None" if async_mode else "" }}: self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) self.http_logging_policy = kwargs.get('http_logging_policy') or {{ "ARM" if code_model.azure_arm else "policies." }}HttpLoggingPolicy(**kwargs) self.retry_policy = kwargs.get('retry_policy') or policies.{{ async_prefix }}RetryPolicy(**kwargs) self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) self.redirect_policy = kwargs.get('redirect_policy') or policies.{{ async_prefix }}RedirectPolicy(**kwargs) self.authentication_policy = kwargs.get('authentication_policy') {% if code_model.config.credential %} {# only adding this if credential_scopes is not passed during code generation #} {% if code_model.config.credential_scopes is not none and code_model.config.credential_scopes|length == 0 %} if not self.credential_scopes and not self.authentication_policy: raise ValueError("You must provide either credential_scopes or authentication_policy as kwargs") {% endif %} if self.credential and not self.authentication_policy: self.authentication_policy = {{ code_model.config.credential_call(async_mode) }} {% endif %}