diff --git a/src/backend/base/langflow/base/io/chat.py b/src/backend/base/langflow/base/io/chat.py index 4d8de40d959e..4b4527ccafd3 100644 --- a/src/backend/base/langflow/base/io/chat.py +++ b/src/backend/base/langflow/base/io/chat.py @@ -61,7 +61,7 @@ def _stream_message(self, message: Message, message_id: str) -> str: iterator = message.text if not isinstance(iterator, AsyncIterator | Iterator): msg = "The message must be an iterator or an async iterator." - raise ValueError(msg) + raise TypeError(msg) if isinstance(iterator, AsyncIterator): return run_until_complete(self._handle_async_iterator(iterator, message, message_id)) diff --git a/src/backend/base/langflow/components/helpers/MessageToData.py b/src/backend/base/langflow/components/helpers/MessageToData.py index 02ff11aedef9..ed9fb93d9b08 100644 --- a/src/backend/base/langflow/components/helpers/MessageToData.py +++ b/src/backend/base/langflow/components/helpers/MessageToData.py @@ -27,7 +27,7 @@ def convert_message_to_data(self) -> Data: try: if not isinstance(self.message, Message): msg = "Input must be a Message object" - raise ValueError(msg) + raise TypeError(msg) # Convert Message to Data data = Data(data=self.message.data) diff --git a/src/backend/base/langflow/components/prototypes/RunnableExecutor.py b/src/backend/base/langflow/components/prototypes/RunnableExecutor.py index 11155d9cf82f..9d21f5e7b0f6 100644 --- a/src/backend/base/langflow/components/prototypes/RunnableExecutor.py +++ b/src/backend/base/langflow/components/prototypes/RunnableExecutor.py @@ -119,7 +119,7 @@ async def build_executor(self) -> Message: input_dict, status = self.get_input_dict(self.runnable, self.input_key, self.input_value) if not isinstance(self.runnable, AgentExecutor): msg = "The runnable must be an AgentExecutor" - raise ValueError(msg) + raise TypeError(msg) if self.use_stream: return self.astream_events(input_dict) diff --git a/src/backend/base/langflow/components/retrievers/SelfQueryRetriever.py b/src/backend/base/langflow/components/retrievers/SelfQueryRetriever.py index a5c0df16b758..e732e3c353ad 100644 --- a/src/backend/base/langflow/components/retrievers/SelfQueryRetriever.py +++ b/src/backend/base/langflow/components/retrievers/SelfQueryRetriever.py @@ -67,7 +67,7 @@ def retrieve_documents(self) -> list[Data]: input_text = self.query else: msg = f"Query type {type(self.query)} not supported." - raise ValueError(msg) + raise TypeError(msg) documents = self_query_retriever.invoke(input=input_text, config={"callbacks": self.get_langchain_callbacks()}) data = [Data.from_document(document) for document in documents] diff --git a/src/backend/base/langflow/components/tools/PythonREPLTool.py b/src/backend/base/langflow/components/tools/PythonREPLTool.py index eb501cfd6e64..245262f52d6b 100644 --- a/src/backend/base/langflow/components/tools/PythonREPLTool.py +++ b/src/backend/base/langflow/components/tools/PythonREPLTool.py @@ -55,7 +55,7 @@ def get_globals(self, global_imports: str | list[str]) -> dict: modules = global_imports else: msg = "global_imports must be either a string or a list" - raise ValueError(msg) + raise TypeError(msg) for module in modules: try: diff --git a/src/backend/base/langflow/components/vectorstores/AstraDB.py b/src/backend/base/langflow/components/vectorstores/AstraDB.py index cfcef1fa4c81..c7d559b654d9 100644 --- a/src/backend/base/langflow/components/vectorstores/AstraDB.py +++ b/src/backend/base/langflow/components/vectorstores/AstraDB.py @@ -441,7 +441,7 @@ def _add_documents_to_vector_store(self, vector_store): documents.append(_input.to_lc_document()) else: msg = "Vector Store Inputs must be Data objects." - raise ValueError(msg) + raise TypeError(msg) if documents: logger.debug(f"Adding {len(documents)} documents to the Vector Store.") diff --git a/src/backend/base/langflow/components/vectorstores/Chroma.py b/src/backend/base/langflow/components/vectorstores/Chroma.py index e6e15e548766..a7dbb76f6fc5 100644 --- a/src/backend/base/langflow/components/vectorstores/Chroma.py +++ b/src/backend/base/langflow/components/vectorstores/Chroma.py @@ -156,7 +156,7 @@ def _add_documents_to_vector_store(self, vector_store: "Chroma") -> None: documents.append(_input.to_lc_document()) else: msg = "Vector Store Inputs must be Data objects." - raise ValueError(msg) + raise TypeError(msg) if documents and self.embedding is not None: logger.debug(f"Adding {len(documents)} documents to the Vector Store.") diff --git a/src/backend/base/langflow/components/vectorstores/Elasticsearch.py b/src/backend/base/langflow/components/vectorstores/Elasticsearch.py index e1037e1b43a9..d7c9e2ff578b 100644 --- a/src/backend/base/langflow/components/vectorstores/Elasticsearch.py +++ b/src/backend/base/langflow/components/vectorstores/Elasticsearch.py @@ -162,7 +162,7 @@ def _prepare_documents(self) -> list[Document]: else: error_message = "Vector Store Inputs must be Data objects." logger.error(error_message) - raise ValueError(error_message) + raise TypeError(error_message) return documents def _add_documents_to_vector_store(self, vector_store: "ElasticsearchStore") -> None: diff --git a/src/backend/base/langflow/components/vectorstores/HCD.py b/src/backend/base/langflow/components/vectorstores/HCD.py index 679f376d7823..be0e6eb99482 100644 --- a/src/backend/base/langflow/components/vectorstores/HCD.py +++ b/src/backend/base/langflow/components/vectorstores/HCD.py @@ -260,7 +260,7 @@ def _add_documents_to_vector_store(self, vector_store): documents.append(_input.to_lc_document()) else: msg = "Vector Store Inputs must be Data objects." - raise ValueError(msg) + raise TypeError(msg) if documents: logger.debug(f"Adding {len(documents)} documents to the Vector Store.") diff --git a/src/backend/base/langflow/components/vectorstores/OpenSearch.py b/src/backend/base/langflow/components/vectorstores/OpenSearch.py index d7155a948904..ebff84e196a6 100644 --- a/src/backend/base/langflow/components/vectorstores/OpenSearch.py +++ b/src/backend/base/langflow/components/vectorstores/OpenSearch.py @@ -159,7 +159,7 @@ def _add_documents_to_vector_store(self, vector_store: "OpenSearchVectorSearch") else: error_message = f"Expected Data object, got {type(_input)}" logger.error(error_message) - raise ValueError(error_message) + raise TypeError(error_message) if documents and self.embedding is not None: logger.debug(f"Adding {len(documents)} documents to the Vector Store.") diff --git a/src/backend/base/langflow/components/vectorstores/Qdrant.py b/src/backend/base/langflow/components/vectorstores/Qdrant.py index 0ac4484eb3d3..b616d6679420 100644 --- a/src/backend/base/langflow/components/vectorstores/Qdrant.py +++ b/src/backend/base/langflow/components/vectorstores/Qdrant.py @@ -87,7 +87,7 @@ def build_vector_store(self) -> Qdrant: if not isinstance(self.embedding, Embeddings): msg = "Invalid embedding object" - raise ValueError(msg) + raise TypeError(msg) if documents: qdrant = Qdrant.from_documents(documents, embedding=self.embedding, **qdrant_kwargs, **server_kwargs) diff --git a/src/backend/base/langflow/custom/custom_component/component.py b/src/backend/base/langflow/custom/custom_component/component.py index 114f07d2c1eb..a8dc759e7012 100644 --- a/src/backend/base/langflow/custom/custom_component/component.py +++ b/src/backend/base/langflow/custom/custom_component/component.py @@ -430,7 +430,7 @@ def _find_matching_output_method(self, input_name: str, value: Component): # Ensure that the output method is a valid method name (string) if not isinstance(output.method, str): msg = f"Method {output.method} is not a valid output of {value.__class__.__name__}" - raise ValueError(msg) + raise TypeError(msg) return getattr(value, output.method) def _process_connection_or_parameter(self, key, value): @@ -503,7 +503,7 @@ def _set_parameter_or_attribute(self, key, value): f"You set {value.display_name} as value for `{key}`. " f"You should pass one of the following: {methods}" ) - raise ValueError(msg) + raise TypeError(msg) self._set_input_value(key, value) self._parameters[key] = value self._attributes[key] = value diff --git a/src/backend/base/langflow/custom/custom_component/custom_component.py b/src/backend/base/langflow/custom/custom_component/custom_component.py index e54333715a7e..cee6251f11e9 100644 --- a/src/backend/base/langflow/custom/custom_component/custom_component.py +++ b/src/backend/base/langflow/custom/custom_component/custom_component.py @@ -288,7 +288,7 @@ def to_data(self, data: Any, keys: list[str] | None = None, silent_errors: bool data_dict = item.copy() else: msg = f"Invalid data type: {type(item)}" - raise ValueError(msg) + raise TypeError(msg) data_objects.append(Data(data=data_dict)) diff --git a/src/backend/base/langflow/custom/utils.py b/src/backend/base/langflow/custom/utils.py index 37e4c1bbde29..8b5ac997a5a2 100644 --- a/src/backend/base/langflow/custom/utils.py +++ b/src/backend/base/langflow/custom/utils.py @@ -268,7 +268,7 @@ def get_component_instance(custom_component: CustomComponent, user_id: str | UUI custom_class = eval_custom_component_code(custom_component._code) else: msg = "Invalid code type" - raise ValueError(msg) + raise TypeError(msg) except Exception as exc: logger.exception("Error while evaluating custom component code") raise HTTPException( @@ -303,7 +303,7 @@ def run_build_config( custom_class = eval_custom_component_code(custom_component._code) else: msg = "Invalid code type" - raise ValueError(msg) + raise TypeError(msg) except Exception as exc: logger.exception("Error while evaluating custom component code") raise HTTPException( diff --git a/src/backend/base/langflow/events/event_manager.py b/src/backend/base/langflow/events/event_manager.py index 89d697980f07..501f73146aa2 100644 --- a/src/backend/base/langflow/events/event_manager.py +++ b/src/backend/base/langflow/events/event_manager.py @@ -27,7 +27,7 @@ def __init__(self, queue: asyncio.Queue): def _validate_callback(callback: EventCallback): if not callable(callback): msg = "Callback must be callable" - raise ValueError(msg) + raise TypeError(msg) # Check if it has `self, event_type and data` sig = inspect.signature(callback) parameters = ["manager", "event_type", "data"] diff --git a/src/backend/base/langflow/graph/graph/base.py b/src/backend/base/langflow/graph/graph/base.py index ca1beaa69de0..01330fdd1a15 100644 --- a/src/backend/base/langflow/graph/graph/base.py +++ b/src/backend/base/langflow/graph/graph/base.py @@ -248,11 +248,11 @@ def add_component_edge(self, source_id: str, output_input_tuple: tuple[str, str] source_vertex = self.get_vertex(source_id) if not isinstance(source_vertex, ComponentVertex): msg = f"Source vertex {source_id} is not a component vertex." - raise ValueError(msg) + raise TypeError(msg) target_vertex = self.get_vertex(target_id) if not isinstance(target_vertex, ComponentVertex): msg = f"Target vertex {target_id} is not a component vertex." - raise ValueError(msg) + raise TypeError(msg) output_name, input_name = output_input_tuple if source_vertex._custom_component is None: msg = f"Source vertex {source_id} does not have a custom component." @@ -661,7 +661,7 @@ async def _run( if not isinstance(inputs.get(INPUT_FIELD_NAME, ""), str): msg = f"Invalid input value: {inputs.get(INPUT_FIELD_NAME)}. Expected string" - raise ValueError(msg) + raise TypeError(msg) if inputs: self._set_inputs(input_components, inputs, input_type) # Update all the vertices with the session_id @@ -1529,7 +1529,7 @@ async def _execute_tasks(self, tasks: list[asyncio.Task], lock: asyncio.Lock) -> vertices.append(result.vertex) else: msg = f"Invalid result from task {task_name}: {result}" - raise ValueError(msg) + raise TypeError(msg) for v in vertices: # set all executed vertices as non-runnable to not run them again. diff --git a/src/backend/base/langflow/graph/state/model.py b/src/backend/base/langflow/graph/state/model.py index fec2d9445fd9..44b0c38b3193 100644 --- a/src/backend/base/langflow/graph/state/model.py +++ b/src/backend/base/langflow/graph/state/model.py @@ -230,7 +230,7 @@ def create_state_model(model_name: str = "State", validate: bool = True, **kwarg # typing.Annotated[, Field(...)] if not isinstance(value[0], type): msg = f"Invalid type for field {name}: {type(value[0])}" - raise ValueError(msg) + raise TypeError(msg) fields[name] = (value[0], value[1]) else: msg = f"Invalid value type {type(value)} for field {name}" diff --git a/src/backend/base/langflow/graph/vertex/base.py b/src/backend/base/langflow/graph/vertex/base.py index dbeb2ad32505..c7fa8959c7d9 100644 --- a/src/backend/base/langflow/graph/vertex/base.py +++ b/src/backend/base/langflow/graph/vertex/base.py @@ -750,7 +750,7 @@ def _validate_built_object(self): """ if isinstance(self._built_object, UnbuiltObject): msg = f"{self.display_name}: {self._built_object_repr()}" - raise ValueError(msg) + raise TypeError(msg) if self._built_object is None: message = f"{self.display_name} returned None." if self.base_type == "custom_components": diff --git a/src/backend/base/langflow/graph/vertex/types.py b/src/backend/base/langflow/graph/vertex/types.py index 3ad950d723f7..4dbe6b595f9b 100644 --- a/src/backend/base/langflow/graph/vertex/types.py +++ b/src/backend/base/langflow/graph/vertex/types.py @@ -382,7 +382,7 @@ async def stream(self): iterator = self.params.get(INPUT_FIELD_NAME, None) if not isinstance(iterator, AsyncIterator | Iterator): msg = "The message must be an iterator or an async iterator." - raise ValueError(msg) + raise TypeError(msg) is_async = isinstance(iterator, AsyncIterator) complete_message = "" if is_async: diff --git a/src/backend/base/langflow/helpers/data.py b/src/backend/base/langflow/helpers/data.py index 66b2672c5cb4..16cfb38c334e 100644 --- a/src/backend/base/langflow/helpers/data.py +++ b/src/backend/base/langflow/helpers/data.py @@ -58,7 +58,7 @@ def messages_to_text(template: str, messages: Message | list[Message]) -> str: # If it is not a message, create one with the key "text" if not isinstance(message, Message): msg = "All elements in the list must be of type Message." - raise ValueError(msg) + raise TypeError(msg) _messages.append(message) formated_messages = [template.format(data=message.model_dump(), **message.model_dump()) for message in _messages] diff --git a/src/backend/base/langflow/inputs/input_mixin.py b/src/backend/base/langflow/inputs/input_mixin.py index 2410479c578c..a87da6cfdbc2 100644 --- a/src/backend/base/langflow/inputs/input_mixin.py +++ b/src/backend/base/langflow/inputs/input_mixin.py @@ -133,12 +133,12 @@ class FileMixin(BaseModel): def validate_file_types(cls, v): if not isinstance(v, list): msg = "file_types must be a list" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 # types should be a list of extensions without the dot for file_type in v: if not isinstance(file_type, str): msg = "file_types must be a list of strings" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 if file_type.startswith("."): msg = "file_types should not start with a dot" raise ValueError(msg) diff --git a/src/backend/base/langflow/inputs/inputs.py b/src/backend/base/langflow/inputs/inputs.py index d034385fc890..02ad2ee7b7b3 100644 --- a/src/backend/base/langflow/inputs/inputs.py +++ b/src/backend/base/langflow/inputs/inputs.py @@ -36,7 +36,7 @@ def validate_value(cls, v: Any, _info): # Check if value is a list of dicts if not isinstance(v, list): msg = f"TableInput value must be a list of dictionaries or Data. Value '{v}' is not a list." - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 for item in v: if not isinstance(item, dict | Data): @@ -44,7 +44,7 @@ def validate_value(cls, v: Any, _info): "TableInput value must be a list of dictionaries or Data. " f"Item '{item}' is not a dictionary or Data." ) - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 return v @@ -206,7 +206,7 @@ def _validate_value(v: Any, _info): value = v else: msg = f"Invalid value type {type(v)}" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 return value @@ -462,11 +462,11 @@ def validate_value(cls, v: Any, _info): # Check if value is a list of dicts if not isinstance(v, list): msg = f"MultiselectInput value must be a list. Value: '{v}'" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 for item in v: if not isinstance(item, str): msg = f"MultiselectInput value must be a list of strings. Item: '{item}' is not a string" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 return v diff --git a/src/backend/base/langflow/io/schema.py b/src/backend/base/langflow/io/schema.py index 037cb397817c..a0d060a23c1c 100644 --- a/src/backend/base/langflow/io/schema.py +++ b/src/backend/base/langflow/io/schema.py @@ -33,7 +33,7 @@ def create_input_schema(inputs: list["InputTypes"]) -> type[BaseModel]: field_type = _convert_field_type_to_type[field_type] else: msg = f"Invalid field type: {field_type}" - raise ValueError(msg) + raise TypeError(msg) if hasattr(input_model, "options") and isinstance(input_model.options, list) and input_model.options: literal_string = f"Literal{input_model.options}" # validate that the literal_string is a valid literal diff --git a/src/backend/base/langflow/load/utils.py b/src/backend/base/langflow/load/utils.py index 712b3f44076d..8d8428fe934b 100644 --- a/src/backend/base/langflow/load/utils.py +++ b/src/backend/base/langflow/load/utils.py @@ -61,7 +61,7 @@ def upload_file(file_path: str, host: str, flow_id: str, components: list[str], tweaks[component] = {"path": response["file_path"]} else: msg = f"Component ID or name must be a string. Got {type(component)}" - raise ValueError(msg) + raise TypeError(msg) return tweaks msg = "Error uploading file" raise ValueError(msg) diff --git a/src/backend/base/langflow/processing/process.py b/src/backend/base/langflow/processing/process.py index 2e22579f6729..7a4b9d2e030e 100644 --- a/src/backend/base/langflow/processing/process.py +++ b/src/backend/base/langflow/processing/process.py @@ -117,13 +117,13 @@ def validate_input( ) -> list[dict[str, Any]]: if not isinstance(graph_data, dict) or not isinstance(tweaks, dict): msg = "graph_data and tweaks should be dictionaries" - raise ValueError(msg) + raise TypeError(msg) nodes = graph_data.get("data", {}).get("nodes") or graph_data.get("nodes") if not isinstance(nodes, list): msg = "graph_data should contain a list of nodes under 'data' key or directly under 'nodes' key" - raise ValueError(msg) + raise TypeError(msg) return nodes diff --git a/src/backend/base/langflow/schema/data.py b/src/backend/base/langflow/schema/data.py index 98a7b39a4629..86128d7c349a 100644 --- a/src/backend/base/langflow/schema/data.py +++ b/src/backend/base/langflow/schema/data.py @@ -30,7 +30,7 @@ class Data(BaseModel): def validate_data(cls, values): if not isinstance(values, dict): msg = "Data must be a dictionary" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 if not values.get("data"): values["data"] = {} # Any other keyword should be added to the data dictionary diff --git a/src/backend/base/langflow/services/chat/cache.py b/src/backend/base/langflow/services/chat/cache.py index d6ac2fde1192..d1408377ffb6 100644 --- a/src/backend/base/langflow/services/chat/cache.py +++ b/src/backend/base/langflow/services/chat/cache.py @@ -113,7 +113,7 @@ def add_pandas(self, name: str, obj: Any): self.add(name, obj.to_csv(), "pandas", extension="csv") else: msg = "Object is not a pandas DataFrame or Series" - raise ValueError(msg) + raise TypeError(msg) def add_image(self, name: str, obj: Any, extension: str = "png"): """ @@ -127,7 +127,7 @@ def add_image(self, name: str, obj: Any, extension: str = "png"): self.add(name, obj, "image", extension=extension) else: msg = "Object is not a PIL Image" - raise ValueError(msg) + raise TypeError(msg) def get(self, name: str): """ diff --git a/src/backend/base/langflow/services/database/models/flow/model.py b/src/backend/base/langflow/services/database/models/flow/model.py index d115990b9d16..85543784963e 100644 --- a/src/backend/base/langflow/services/database/models/flow/model.py +++ b/src/backend/base/langflow/services/database/models/flow/model.py @@ -116,7 +116,7 @@ def validate_json(v): return v if not isinstance(v, dict): msg = "Flow must be a valid JSON" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 # data must contain nodes and edges if "nodes" not in v: diff --git a/src/backend/base/langflow/services/telemetry/opentelemetry.py b/src/backend/base/langflow/services/telemetry/opentelemetry.py index ea15f7e1315d..232561c96d58 100644 --- a/src/backend/base/langflow/services/telemetry/opentelemetry.py +++ b/src/backend/base/langflow/services/telemetry/opentelemetry.py @@ -208,7 +208,7 @@ def increment_counter(self, metric_name: str, labels: Mapping[str, str], value: counter.add(value, labels) else: msg = f"Metric '{metric_name}' is not a counter" - raise ValueError(msg) + raise TypeError(msg) def up_down_counter(self, metric_name: str, value: float, labels: Mapping[str, str]): self.validate_labels(metric_name, labels) @@ -217,7 +217,7 @@ def up_down_counter(self, metric_name: str, value: float, labels: Mapping[str, s up_down_counter.add(value, labels) else: msg = f"Metric '{metric_name}' is not an up down counter" - raise ValueError(msg) + raise TypeError(msg) def update_gauge(self, metric_name: str, value: float, labels: Mapping[str, str]): self.validate_labels(metric_name, labels) @@ -226,7 +226,7 @@ def update_gauge(self, metric_name: str, value: float, labels: Mapping[str, str] gauge.set_value(value, labels) else: msg = f"Metric '{metric_name}' is not a gauge" - raise ValueError(msg) + raise TypeError(msg) def observe_histogram(self, metric_name: str, value: float, labels: Mapping[str, str]): self.validate_labels(metric_name, labels) @@ -235,4 +235,4 @@ def observe_histogram(self, metric_name: str, value: float, labels: Mapping[str, histogram.record(value, labels) else: msg = f"Metric '{metric_name}' is not a histogram" - raise ValueError(msg) + raise TypeError(msg) diff --git a/src/backend/base/langflow/template/field/base.py b/src/backend/base/langflow/template/field/base.py index 5ff3682c28fe..d8778d16ec2f 100644 --- a/src/backend/base/langflow/template/field/base.py +++ b/src/backend/base/langflow/template/field/base.py @@ -138,7 +138,7 @@ def serialize_display_name(self, value, _info): def validate_file_types(cls, value): if not isinstance(value, list): msg = "file_types must be a list" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 return [ (f".{file_type}" if isinstance(file_type, str) and not file_type.startswith(".") else file_type) for file_type in value @@ -155,7 +155,7 @@ def validate_type(cls, v): v = format_type(v) elif not isinstance(v, str): msg = f"type must be a string or a type, not {type(v)}" - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 return v diff --git a/src/backend/base/langflow/utils/schemas.py b/src/backend/base/langflow/utils/schemas.py index d14c0a5f5ada..f34e0d22b8ca 100644 --- a/src/backend/base/langflow/utils/schemas.py +++ b/src/backend/base/langflow/utils/schemas.py @@ -37,7 +37,7 @@ def validate_files(cls, files): for file in files: if not isinstance(file, dict): msg = "Files must be a list of dictionaries." - raise ValueError(msg) + raise ValueError(msg) # noqa: TRY004 if not all(key in file for key in ["path", "name", "type"]): # If any of the keys are missing, we should extract the diff --git a/src/backend/base/pyproject.toml b/src/backend/base/pyproject.toml index 2acc9cedc0b2..2d165f740c21 100644 --- a/src/backend/base/pyproject.toml +++ b/src/backend/base/pyproject.toml @@ -62,12 +62,14 @@ ignore = [ "EXE", "FBT", "N", + "PGH", "RUF006", # Store a reference to the return value of `asyncio.create_task` "S", "SLF", "T201", - "TRY", - "PGH", + "TRY002", + "TRY2", + "TRY3", ] [tool.ruff.lint.per-file-ignores] diff --git a/src/backend/tests/unit/graph/graph/state/test_state_model.py b/src/backend/tests/unit/graph/graph/state/test_state_model.py index c7b78842aa28..1c1e800cab16 100644 --- a/src/backend/tests/unit/graph/graph/state/test_state_model.py +++ b/src/backend/tests/unit/graph/graph/state/test_state_model.py @@ -76,8 +76,8 @@ def test_create_model_with_fields_from_kwargs(self): assert state_instance.field_two == 123 # Raises ValueError for invalid field type in tuple-based definitions - def test_raise_valueerror_for_invalid_field_type_in_tuple(self): - with pytest.raises(ValueError, match="Invalid type for field invalid_field"): + def test_raise_typeerror_for_invalid_field_type_in_tuple(self): + with pytest.raises(TypeError, match="Invalid type for field invalid_field"): create_state_model(invalid_field=("not_a_type", "default")) # Raises ValueError for unsupported value types in keyword arguments diff --git a/src/backend/tests/unit/test_telemetry.py b/src/backend/tests/unit/test_telemetry.py index abef3bfd619c..6406770d67e3 100644 --- a/src/backend/tests/unit/test_telemetry.py +++ b/src/backend/tests/unit/test_telemetry.py @@ -24,17 +24,17 @@ def test_gauge(opentelemetry_instance): def test_gauge_with_counter_method(opentelemetry_instance): - with pytest.raises(ValueError, match="Metric 'file_uploads' is not a counter"): + with pytest.raises(TypeError, match="Metric 'file_uploads' is not a counter"): opentelemetry_instance.increment_counter(metric_name="file_uploads", value=1, labels=fixed_labels) def test_gauge_with_historgram_method(opentelemetry_instance): - with pytest.raises(ValueError, match="Metric 'file_uploads' is not a histogram"): + with pytest.raises(TypeError, match="Metric 'file_uploads' is not a histogram"): opentelemetry_instance.observe_histogram("file_uploads", 1, fixed_labels) def test_gauge_with_up_down_counter_method(opentelemetry_instance): - with pytest.raises(ValueError, match="Metric 'file_uploads' is not an up down counter"): + with pytest.raises(TypeError, match="Metric 'file_uploads' is not an up down counter"): opentelemetry_instance.up_down_counter("file_uploads", 1, labels=fixed_labels)