From 53c4a8787f13b5e2d53664a4fc982ba816de877b Mon Sep 17 00:00:00 2001 From: -LAN- Date: Thu, 4 Sep 2025 09:35:32 +0800 Subject: [PATCH] [Chore/Refactor] Improve type safety and resolve type checking issues (#25104) --- .../rag/datasource/vdb/tablestore/tablestore_vector.py | 10 ++++++++-- .../storage/clickzetta_volume/file_lifecycle.py | 4 ++-- api/pyrightconfig.json | 1 - api/services/dataset_service.py | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py b/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py index dbb25d289..9c5535152 100644 --- a/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py +++ b/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py @@ -1,6 +1,7 @@ import json import logging import math +from collections.abc import Iterable from typing import Any, Optional import tablestore # type: ignore @@ -102,9 +103,12 @@ class TableStoreVector(BaseVector): return uuids def text_exists(self, id: str) -> bool: - _, return_row, _ = self._tablestore_client.get_row( + result = self._tablestore_client.get_row( table_name=self._table_name, primary_key=[("id", id)], columns_to_get=["id"] ) + assert isinstance(result, tuple | list) + # Unpack the tuple result + _, return_row, _ = result return return_row is not None @@ -169,6 +173,7 @@ class TableStoreVector(BaseVector): def _create_search_index_if_not_exist(self, dimension: int) -> None: search_index_list = self._tablestore_client.list_search_index(table_name=self._table_name) + assert isinstance(search_index_list, Iterable) if self._index_name in [t[1] for t in search_index_list]: logger.info("Tablestore system index[%s] already exists", self._index_name) return None @@ -212,6 +217,7 @@ class TableStoreVector(BaseVector): def _delete_table_if_exist(self): search_index_list = self._tablestore_client.list_search_index(table_name=self._table_name) + assert isinstance(search_index_list, Iterable) for resp_tuple in search_index_list: self._tablestore_client.delete_search_index(resp_tuple[0], resp_tuple[1]) logger.info("Tablestore delete index[%s] successfully.", self._index_name) @@ -269,7 +275,7 @@ class TableStoreVector(BaseVector): ) if search_response is not None: - rows.extend([row[0][0][1] for row in search_response.rows]) + rows.extend([row[0][0][1] for row in list(search_response.rows)]) if search_response is None or search_response.next_token == b"": break diff --git a/api/extensions/storage/clickzetta_volume/file_lifecycle.py b/api/extensions/storage/clickzetta_volume/file_lifecycle.py index f5d6fd6f2..c41344774 100644 --- a/api/extensions/storage/clickzetta_volume/file_lifecycle.py +++ b/api/extensions/storage/clickzetta_volume/file_lifecycle.py @@ -1,8 +1,8 @@ """ClickZetta Volume file lifecycle management This module provides file lifecycle management features including version control, -automatic cleanup, backup and restore. Supports complete lifecycle management for -knowledge base files. +automatic cleanup, backup and restore. +Supports complete lifecycle management for knowledge base files. """ import json diff --git a/api/pyrightconfig.json b/api/pyrightconfig.json index 28ccbafd0..80fd10558 100644 --- a/api/pyrightconfig.json +++ b/api/pyrightconfig.json @@ -5,7 +5,6 @@ "pythonVersion": "3.11", "pythonPlatform": "All", "reportMissingTypeStubs": false, - "reportGeneralTypeIssues": "none", "reportOptionalMemberAccess": "none", "reportOptionalIterable": "none", "reportOptionalOperand": "none", diff --git a/api/services/dataset_service.py b/api/services/dataset_service.py index 2e057b81c..a5550c701 100644 --- a/api/services/dataset_service.py +++ b/api/services/dataset_service.py @@ -1093,7 +1093,7 @@ class DocumentService: account: Account | Any, dataset_process_rule: Optional[DatasetProcessRule] = None, created_from: str = "web", - ): + ) -> tuple[list[Document], str]: # check doc_form DatasetService.check_doc_form(dataset, knowledge_config.doc_form) # check document limit