class {{ python_class_name.pascal_case }}(
{%- if properties %}
    # Property Mixins
    {%- for property in properties %}
    {{ property.property_name.pascal_case }}_Using{{ property.implementation_name.pascal_case }}_PropertyMixin,
    {%- endfor %}
{%- endif -%}
{%- if methods %}
    # Method Mixins
    {%- for method in methods %}
    {{ method.method_name.pascal_case }}_Using{{ method.implementation_name.pascal_case }}_MethodMixin,
{%- endfor %}
{%- endif %}
    # Base
    FlowBase[{{ return_type }}],
):{% if property_setters %}
    def __init__(
        self,
        *args: Any,
    {%- for property_setter in  property_setters %}
        {{ property_setter.abstract_property_name.snake_case }}: {{ property_setter.property_type }},
    {%- endfor %}
        **kwargs: Any,
    ):
    {%- for property_setter in  property_setters %}
        self._{{ property_setter.abstract_property_name.snake_case }} = {{ property_setter.abstract_property_name.snake_case }}
    {%- endfor %}
        super().__init__(*args, **kwargs)
{% endif %}
    def __call__(self) -> {{ return_type}}:

