class {{ python_class_name.pascal_case }}
{%- if abstract_property_mixins -%}
(
    # Property_mixins
{%- for abstract_property_mixin in abstract_property_mixins %}
    {{ abstract_property_mixin.python_class_name.pascal_case }}{% if abstract_property_mixin.generics_impl %}[{{ abstract_property_mixin.generics_impl }}]{% endif %},
{%- endfor %}
    {%- if generics_def %}
    Generic[{{ generics_def }}],
    {%- endif %}
    abc.ABC,
)
{%- else %}
    {%- if generics_def -%}
(
    Generic[{{ generics_def }}],
)
        {%- endif -%}
{%- endif %}:
    @cached_property
    def _{{ property_name.snake_case }}(self) -> {{ property_type }}:

