Files
Abdelrahman Kaseb 5f3c37d287 chore: adopt PEP 585 type hints (#9678)
* 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>
2025-08-07 10:23:14 +02:00

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}