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 %}