From 29f8c7b36a9d2d7223da67d07a389b87631420df Mon Sep 17 00:00:00 2001 From: Bernhard Merkle Date: Sat, 1 Aug 2026 17:52:11 +0200 Subject: [PATCH] Use module-qualified imports for storage.memory.reltermsindex reltermsindex (memory variant) exports a mix of classes and functions, so per AGENTS.md's import style guidelines it defaults to module-qualified. Converts the 3 src/typeagent call sites (secindex.py, search.py, storage/memory/provider.py) from direct symbol imports to `from ..storage.memory import reltermsindex` + qualified calls. The sqlite variant (storage/sqlite/reltermsindex.py) exports a single class each and is left as direct-symbol import, already compliant. Scope: src/typeagent only, per #298 -- test files keep direct-symbol imports for the functions/classes they exercise, which is idiomatic pytest style. Phase 2 (1/3) of the import-consistency cleanup tracked in #298. --- src/typeagent/knowpro/search.py | 4 ++-- src/typeagent/knowpro/secindex.py | 4 ++-- src/typeagent/storage/memory/provider.py | 8 +++++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/typeagent/knowpro/search.py b/src/typeagent/knowpro/search.py index bfc94459..d4e1d5cd 100644 --- a/src/typeagent/knowpro/search.py +++ b/src/typeagent/knowpro/search.py @@ -4,8 +4,8 @@ from collections.abc import Callable from typing import cast, TypeGuard +from ..storage.memory import reltermsindex from ..storage.memory.messageindex import IMessageTextEmbeddingIndex -from ..storage.memory.reltermsindex import resolve_related_terms from .collections import MessageAccumulator, SemanticRefAccumulator from .dataclasses import dataclass from .field_helpers import CamelCaseField @@ -507,7 +507,7 @@ async def resolve_related_terms( self.secondary_indexes is not None and self.secondary_indexes.term_to_related_terms_index is not None ): - await resolve_related_terms( + await reltermsindex.resolve_related_terms( self.secondary_indexes.term_to_related_terms_index, compiled_terms, dedupe, diff --git a/src/typeagent/knowpro/secindex.py b/src/typeagent/knowpro/secindex.py index f101f9cb..dba189f3 100644 --- a/src/typeagent/knowpro/secindex.py +++ b/src/typeagent/knowpro/secindex.py @@ -1,9 +1,9 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. +from ..storage.memory import reltermsindex from ..storage.memory.messageindex import build_message_index from ..storage.memory.propindex import build_property_index -from ..storage.memory.reltermsindex import build_related_terms_index from ..storage.memory.timestampindex import build_timestamp_index from .convsettings import ConversationSettings, RelatedTermIndexSettings from .interfaces import ( @@ -45,7 +45,7 @@ async def build_secondary_indexes[ else: storage_provider = await conversation_settings.get_storage_provider() await build_transient_secondary_indexes(conversation, conversation_settings) - await build_related_terms_index( + await reltermsindex.build_related_terms_index( conversation, conversation_settings.related_term_index_settings ) if conversation.secondary_indexes is not None: diff --git a/src/typeagent/storage/memory/provider.py b/src/typeagent/storage/memory/provider.py index 230b5b0a..6ef19e61 100644 --- a/src/typeagent/storage/memory/provider.py +++ b/src/typeagent/storage/memory/provider.py @@ -5,6 +5,7 @@ from datetime import datetime, timezone +from . import reltermsindex from ...knowpro.convsettings import MessageTextIndexSettings, RelatedTermIndexSettings from ...knowpro.interfaces import ( ChunkFailure, @@ -23,7 +24,6 @@ from .convthreads import ConversationThreads from .messageindex import MessageTextIndex from .propindex import PropertyIndex -from .reltermsindex import RelatedTermsIndex from .semrefindex import TermToSemanticRefIndex from .timestampindex import TimestampToTextRangeIndex @@ -38,7 +38,7 @@ class MemoryStorageProvider[TMessage: IMessage](IStorageProvider[TMessage]): _property_index: PropertyIndex _timestamp_index: TimestampToTextRangeIndex _message_text_index: MessageTextIndex - _related_terms_index: RelatedTermsIndex + _related_terms_index: reltermsindex.RelatedTermsIndex _conversation_threads: ConversationThreads _ingested_sources: set[str] _chunk_failures: dict[tuple[int, int], ChunkFailure] @@ -60,7 +60,9 @@ def __init__( self._conversation_index = TermToSemanticRefIndex() self._property_index = PropertyIndex() self._timestamp_index = TimestampToTextRangeIndex() - self._related_terms_index = RelatedTermsIndex(related_terms_settings) + self._related_terms_index = reltermsindex.RelatedTermsIndex( + related_terms_settings + ) thread_settings = message_text_settings.embedding_index_settings self._conversation_threads = ConversationThreads(thread_settings) self._ingested_sources = set()