Files
deepset-ai--haystack/haystack/testing/sample_components/greet.py
T
wehub-resource-sync c56bef871b
Sync docs with Docusaurus / sync (push) Waiting to run
Tests / Check if changed (push) Waiting to run
Tests / format (push) Blocked by required conditions
Tests / check-imports (push) Blocked by required conditions
Tests / Unit / macos-latest (push) Blocked by required conditions
Tests / Unit / ubuntu-latest (push) Blocked by required conditions
Tests / Unit / windows-latest (push) Blocked by required conditions
Tests / mypy (push) Blocked by required conditions
Tests / Integration / ubuntu-latest (push) Blocked by required conditions
Tests / Integration / macos-latest (push) Blocked by required conditions
Tests / Integration / windows-latest (push) Blocked by required conditions
Tests / notify-slack-on-failure (push) Blocked by required conditions
Tests / Mark tests as completed (push) Blocked by required conditions
Docker image release / Build base image (push) Waiting to run
CodeQL / Analyze (python) (push) Has been cancelled
Update Platform Components Table / update (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:22:28 +08:00

49 lines
1.5 KiB
Python

# SPDX-FileCopyrightText: 2022-present deepset GmbH <info@deepset.ai>
#
# SPDX-License-Identifier: Apache-2.0
import logging
import haystack.logging as haystack_logging
from haystack.core.component import component
logger = haystack_logging.getLogger(__name__)
@component
class Greet:
"""
Logs a greeting message without affecting the value passing on the connection.
"""
def __init__(
self, message: str = "\nGreeting component says: Hi! The value is {value}\n", log_level: str = "INFO"
) -> None:
"""
Class constructor
:param message: the message to log. Can use `{value}` to embed the value.
:param log_level: the level to log at.
"""
if log_level and not getattr(logging, log_level):
raise ValueError(f"This log level does not exist: {log_level}")
self.message = message
self.log_level = log_level
@component.output_types(value=int)
def run(self, value: int, message: str | None = None, log_level: str | None = None):
"""
Logs a greeting message without affecting the value passing on the connection.
"""
if not message:
message = self.message
if not log_level:
log_level = self.log_level
level = getattr(logging, log_level, None)
if not level:
raise ValueError(f"This log level does not exist: {log_level}")
logger.log(level=level, msg=message.format(value=value))
return {"value": value}