# -*- coding: utf-8 -*-
# vim: sw=4:ts=4:expandtab
# Pipe {{ pipe_name }} generated by riko

from riko import Context
{%- if use_collection %}
from riko.collections import SyncCollection
{%- endif %}
{%- for module in uniq_modules %}
{%- if module.sub_pipe %}
from riko.pypipelines.{{ module.name }} import {{ module.pipe_name }}
{%- elif module.name != "output" %}
from riko.modules.{{ module.name }} import pipe as {{ module.alias }}
{%- endif %}
{%- endfor %}
from riko.types.general import Conf
{%- if raw_confs %}
from riko.types.modules import (
{%- for raw_conf in raw_confs %}
    {{ raw_conf }}{% if not loop.last %},{% endif %}
{%- endfor %}
)
{%- endif %}


def {{ pipe_name }}(item=None, conf: Conf = None, context: Context | None = None, **kwargs):
    if context and context.describe_input:
        result = {{ inputs }}
    elif context and context.describe_dependencies:
        result = {{ dependencies }}
    else:
{%- for module in modules %}
        {{ module.id }} = {{ module.expr }}
{%- endfor %}
        result = {{ last_module }}

    return result


if __name__ == "__main__":
    for i in {{ pipe_name }}():
        print(i)
