5f3c37d287
* chore(lint): enforce and apply PEP 585 type hinting * Run fmt fixes * Fix all typing imports using some regex * Fix all typing written in string in tests * undo changes in the e2e tests * make e2e test use list instead of List * type fixes * remove type:ignore * pylint * Remove typing from Usage example comments * Remove typing from most of comments * try to fix e2e tests on comm PRs * fix * Add tests typing.List in to adjust test compatiplity - test/components/agents/test_state_class.py - test/components/converters/test_output_adapter.py - test/components/joiners/test_list_joiner.py * simplify pyproject * improve relnote --------- Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
# SPDX-FileCopyrightText: 2022-present deepset GmbH <info@deepset.ai>
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
from haystack.core.component import component
|
|
from haystack.core.component.types import Variadic
|
|
|
|
|
|
@component
|
|
class StringJoiner:
|
|
@component.output_types(output=str)
|
|
def run(self, input_str: Variadic[str]):
|
|
"""
|
|
Take strings from multiple input nodes and join them into a single one returned in output.
|
|
|
|
Since `input_str` is Variadic, we know we'll receive a list[str].
|
|
"""
|
|
return {"output": " ".join(input_str)}
|
|
|
|
|
|
@component
|
|
class StringListJoiner:
|
|
@component.output_types(output=str)
|
|
def run(self, inputs: Variadic[list[str]]):
|
|
"""
|
|
Take list of strings from multiple input nodes and join them into a single one returned in output.
|
|
|
|
Since `input_str` is Variadic, we know we'll receive a list[list[str]].
|
|
"""
|
|
retval: list[str] = []
|
|
for list_of_strings in inputs:
|
|
retval += list_of_strings
|
|
|
|
return {"output": retval}
|