{% from "property_templates/helpers.jinja" import guarded_statement %} {% macro header_params(endpoint) %} {% if endpoint.header_parameters %} {% for parameter in endpoint.header_parameters.values() %} {% set destination = 'headers["' + parameter.name + '"]' %} {% import "property_templates/" + parameter.template as param_template %} {% if param_template.transform_header %} {% set statement = param_template.transform_header(parameter, parameter.python_name, destination) %} {% else %} {% set statement = destination + " = " + parameter.python_name %} {% endif %} {{ guarded_statement(parameter, parameter.python_name, statement) }} {% endfor %} {% endif %} {% endmacro %} {% macro cookie_params(endpoint) %} {% if endpoint.cookie_parameters %} {% for parameter in endpoint.cookie_parameters.values() %} {% if parameter.required %} cookies["{{ parameter.name}}"] = {{ parameter.python_name }} {% else %} if {{ parameter.python_name }} is not UNSET: cookies["{{ parameter.name}}"] = {{ parameter.python_name }} {% endif %} {% endfor %} {% endif %} {% endmacro %} {% macro query_params(endpoint) %} {% if endpoint.query_parameters %} params: Dict[str, Any] = {} {% for property in endpoint.query_parameters.values() %} {% set destination = property.python_name %} {% import "property_templates/" + property.template as prop_template %} {% if prop_template.transform %} {% set destination = "json_" + property.python_name %} {{ prop_template.transform(property, property.python_name, destination) }} {% endif %} {%- if not property.json_is_dict %} params["{{ property.name }}"] = {{ destination }} {% else %} {{ guarded_statement(property, destination, "params.update(" + destination + ")") }} {% endif %} {% endfor %} params = {k: v for k, v in params.items() if v is not UNSET and v is not None} {% endif %} {% endmacro %} {% macro json_body(endpoint) %} {% if endpoint.json_body %} {% set property = endpoint.json_body %} {% set destination = "json_" + property.python_name %} {% import "property_templates/" + property.template as prop_template %} {% if prop_template.transform %} {{ prop_template.transform(property, property.python_name, destination) }} {% else %} {{ destination }} = {{ property.python_name }} {% endif %} {% endif %} {% endmacro %} {% macro multipart_body(endpoint) %} {% if endpoint.multipart_body %} {% set property = endpoint.multipart_body %} {% set destination = "multipart_" + property.python_name %} {% import "property_templates/" + property.template as prop_template %} {% if prop_template.transform_multipart %} {{ prop_template.transform_multipart(property, property.python_name, destination) }} {% endif %} {% endif %} {% endmacro %} {# The all the kwargs passed into an endpoint (and variants thereof)) #} {% macro arguments(endpoint) %} {# path parameters #} {% for parameter in endpoint.path_parameters.values() %} {{ parameter.to_string() }}, {% endfor %} *, {# Proper _client based on whether or not the endpoint requires authentication #} {% if endpoint.requires_security %} _client: AuthenticatedClient, {% else %} _client: Client, {% endif %} {# Form data if any #} {% if endpoint.form_body_class %} form_data: {{ endpoint.form_body_class.name }}, {% endif %} {# Multipart data if any #} {% if endpoint.multipart_body %} multipart_data: {{ endpoint.multipart_body.get_type_string() }}, {% endif %} {# JSON body if any #} {% if endpoint.json_body %} json_body: {{ endpoint.json_body.get_type_string() }}, {% endif %} {# query parameters #} {% for parameter in endpoint.query_parameters.values() %} {{ parameter.to_string() }}, {% endfor %} {% for parameter in endpoint.header_parameters.values() %} {{ parameter.to_string() }}, {% endfor %} {# cookie parameters #} {% for parameter in endpoint.cookie_parameters.values() %} {{ parameter.to_string() }}, {% endfor %} {% endmacro %} {# Just lists all kwargs to endpoints as name=name for passing to other functions #} {% macro kwargs(endpoint) %} {% for parameter in endpoint.path_parameters.values() %} {{ parameter.python_name }}={{ parameter.python_name }}, {% endfor %} _client=_client, {% if endpoint.form_body_class %} form_data=form_data, {% endif %} {% if endpoint.multipart_body %} multipart_data=multipart_data, {% endif %} {% if endpoint.json_body %} json_body=json_body, {% endif %} {% for parameter in endpoint.query_parameters.values() %} {{ parameter.python_name }}={{ parameter.python_name }}, {% endfor %} {% for parameter in endpoint.header_parameters.values() %} {{ parameter.python_name }}={{ parameter.python_name }}, {% endfor %} {% for parameter in endpoint.cookie_parameters.values() %} {{ parameter.python_name }}={{ parameter.python_name }}, {% endfor %} {% endmacro %} {% macro docstring(endpoint, return_string) %} """{% if endpoint.summary %}{{ endpoint.summary | wordwrap(100)}} {% endif -%} {%- if endpoint.description %} {{ endpoint.description | wordwrap(100) }} {% endif %} {% if not endpoint.summary and not endpoint.description %} {# Leave extra space so that Args or Returns isn't at the top #} {% endif %} {% set all_parameters = endpoint.list_all_parameters() %} {% if all_parameters %} Args: {% for parameter in all_parameters %} {{ parameter.to_docstring() | wordwrap(90) | indent(8) }} {% endfor %} {% endif %} Returns: Response[{{ return_string }}] """ {% endmacro %}