% for import_ in imports:
${import_}
% endfor

% for model in models:
${model}
% endfor

async def ${function_name}(connection: Connection, ${ ", ".join([f"{param.name_in_function}: {param.type_str}" for param in params])}, timeout: timedelta | None = None) -> str:
    query = """
    ${query}
"""
    return await connection.execute(query, ${", ".join([param.name_in_function for param in params])},timeout=timeout.total_seconds() if timeout is not None else None)

