{% macro construct_template(construct_function, property, source) %}
{% if property.required %}
{{ property.python_name }} = {{ construct_function(property, source) }}
{% else %}{# Must be non-required #}
_{{ property.python_name }} = {{ source }}
{{ property.python_name }}: {{ property.get_type_string() }}
    {% if not property.required %}
if isinstance(_{{ property.python_name }},  Unset):
    {{ property.python_name }} = UNSET
    {% endif %}
else:
    {{ property.python_name }} = {{ construct_function(property, "_" + property.python_name) }}
{% endif %}
{% endmacro %}
