From a7afdfac8b4ae2a35a54271a7f591e6583ee6e62 Mon Sep 17 00:00:00 2001 From: "william.dias" Date: Fri, 23 Jan 2026 09:55:58 -0300 Subject: [PATCH] refactor: Rename metadata_repo to metadata_store for consistency across tools and remove compatibility modules --- src/sql_optimizer_team/tools/core_tools.py | 8 +++--- .../flows/collect_and_optimize_worst_query.py | 4 +-- .../engine/flows/compare_optimizations.py | 6 ++--- .../tools/engine/flows/optimize_query.py | 8 +++--- .../tools/engine/outputs/optimization_dto.py | 11 -------- .../storage_tools/sqlserver_stats_tool.py | 8 +++--- .../tools/engine/types/domain_exceptions.py | 26 ------------------- 7 files changed, 17 insertions(+), 54 deletions(-) delete mode 100644 src/sql_optimizer_team/tools/engine/outputs/optimization_dto.py delete mode 100644 src/sql_optimizer_team/tools/engine/types/domain_exceptions.py diff --git a/src/sql_optimizer_team/tools/core_tools.py b/src/sql_optimizer_team/tools/core_tools.py index ad613c2..f4cde92 100644 --- a/src/sql_optimizer_team/tools/core_tools.py +++ b/src/sql_optimizer_team/tools/core_tools.py @@ -122,14 +122,14 @@ async def optimize_query_core( llm = LLMToolFactory.create(settings) storage = LocalFileStore() - metadata_repo = JsonMetadataStore(settings.storage.metadata_file) + metadata_store = JsonMetadataStore(settings.storage.metadata_file) generator = PromptGeneratorFactory.create(db_type) sql_file = _write_sql(sql, output_dir=output_dir, filename_prefix=f"opt_{db_type.value}") flow = OptimizeQueryFlow( llm_tool=llm, storage_tool=storage, - metadata_store=metadata_repo, + metadata_store=metadata_store, prompt_generator=generator, ) @@ -166,13 +166,13 @@ async def compare_optimizations_core( llm = LLMToolFactory.create(settings) storage = LocalFileStore() - metadata_repo = JsonMetadataStore(settings.storage.metadata_file) + metadata_store = JsonMetadataStore(settings.storage.metadata_file) sql_file = _write_sql(sql, output_dir=output_dir, filename_prefix="compare") flow = CompareOptimizationsFlow( llm_tool=llm, storage_tool=storage, - metadata_store=metadata_repo, + metadata_store=metadata_store, prompt_generator_factory=PromptGeneratorFactory, ) diff --git a/src/sql_optimizer_team/tools/engine/flows/collect_and_optimize_worst_query.py b/src/sql_optimizer_team/tools/engine/flows/collect_and_optimize_worst_query.py index 924e39f..982785b 100644 --- a/src/sql_optimizer_team/tools/engine/flows/collect_and_optimize_worst_query.py +++ b/src/sql_optimizer_team/tools/engine/flows/collect_and_optimize_worst_query.py @@ -47,7 +47,7 @@ class CollectAndOptimizeWorstQueryFlow: ) -> None: self._llm = llm_tool self._storage_tool = storage_tool - self._metadata_repo = metadata_store + self._metadata_store = metadata_store self._prompt_generator = prompt_generator def _fetch_worst( @@ -216,7 +216,7 @@ class CollectAndOptimizeWorstQueryFlow: output = await OptimizeQueryFlow( llm_tool=self._llm, storage_tool=self._storage_tool, - metadata_store=self._metadata_repo, + metadata_store=self._metadata_store, prompt_generator=self._prompt_generator, ).execute( sql_file=worst_query_file, diff --git a/src/sql_optimizer_team/tools/engine/flows/compare_optimizations.py b/src/sql_optimizer_team/tools/engine/flows/compare_optimizations.py index 0a9408a..a429f92 100644 --- a/src/sql_optimizer_team/tools/engine/flows/compare_optimizations.py +++ b/src/sql_optimizer_team/tools/engine/flows/compare_optimizations.py @@ -27,7 +27,7 @@ class CompareOptimizationsFlow: Attributes: _llm: LLM tool _storage: File storage tool - _metadata_repo: Metadata store tool + _metadata_store: Metadata store tool _prompt_generator_factory: Factory for creating prompt generators Examples: @@ -60,7 +60,7 @@ class CompareOptimizationsFlow: """ self._llm = llm_tool self._storage = storage_tool - self._metadata_repo = metadata_store + self._metadata_store = metadata_store self._prompt_factory = prompt_generator_factory async def execute( @@ -151,7 +151,7 @@ class CompareOptimizationsFlow: return await OptimizeQueryFlow( llm_tool=self._llm, storage_tool=self._storage, - metadata_store=self._metadata_repo, + metadata_store=self._metadata_store, prompt_generator=self._prompt_factory.create(database_type), ).execute( sql_file, diff --git a/src/sql_optimizer_team/tools/engine/flows/optimize_query.py b/src/sql_optimizer_team/tools/engine/flows/optimize_query.py index 8525423..2ef12ea 100644 --- a/src/sql_optimizer_team/tools/engine/flows/optimize_query.py +++ b/src/sql_optimizer_team/tools/engine/flows/optimize_query.py @@ -30,7 +30,7 @@ class OptimizeQueryFlow: Attributes: _llm: LLM tool _storage: File storage tool - _metadata_repo: Metadata store tool + _metadata_store: Metadata store tool _prompt_generator: Prompt generator tool for target database Examples: @@ -63,7 +63,7 @@ class OptimizeQueryFlow: """ self._llm = llm_tool self._storage = storage_tool - self._metadata_repo = metadata_store + self._metadata_store = metadata_store self._prompt_generator = prompt_generator async def execute( @@ -144,7 +144,7 @@ class OptimizeQueryFlow: pair_review = None # Persist metadata and output file and return - await self._metadata_repo.save(metadata) + await self._metadata_store.save(metadata) await self._save_output_file(sql_file, result, pair_review=pair_review, source_object=source_object) return OptimizationOutput.from_result(result, source_object=source_object) @@ -198,7 +198,7 @@ class OptimizeQueryFlow: Returns: Existing or new metadata instance """ - if existing := await self._metadata_repo.get(query_hash): + if existing := await self._metadata_store.get(query_hash): return existing return OptimizationMetadata.create_new(query, database_type) diff --git a/src/sql_optimizer_team/tools/engine/outputs/optimization_dto.py b/src/sql_optimizer_team/tools/engine/outputs/optimization_dto.py deleted file mode 100644 index 1e58d3e..0000000 --- a/src/sql_optimizer_team/tools/engine/outputs/optimization_dto.py +++ /dev/null @@ -1,11 +0,0 @@ -"""Compatibility module for output objects. - -Keep this shim to avoid import breakages while exposing the new output types. -""" - -from sql_optimizer_team.tools.engine.outputs.optimization_output import ( - ComparisonOutput, - OptimizationOutput, -) - -__all__ = ["OptimizationOutput", "ComparisonOutput"] diff --git a/src/sql_optimizer_team/tools/engine/storage_tools/sqlserver_stats_tool.py b/src/sql_optimizer_team/tools/engine/storage_tools/sqlserver_stats_tool.py index 8a170b0..8748b78 100644 --- a/src/sql_optimizer_team/tools/engine/storage_tools/sqlserver_stats_tool.py +++ b/src/sql_optimizer_team/tools/engine/storage_tools/sqlserver_stats_tool.py @@ -84,13 +84,13 @@ class SQLServerStatsTool: List of dicts containing performance metrics and SQL text. Examples: - >>> repo = SQLServerStatsTool(instance="sis_vida_prd") + >>> tool = SQLServerStatsTool(instance="sis_vida_prd") >>> # Get queries with highest CPU consumption - >>> queries = repo.fetch_worst_queries(limit=10, metric=QueryMetric.CPU) + >>> queries = tool.fetch_worst_queries(limit=10, metric=QueryMetric.CPU) >>> # Get queries executed at least 100 times - >>> queries = repo.fetch_worst_queries(limit=10, metric=QueryMetric.CPU, min_executions=100) + >>> queries = tool.fetch_worst_queries(limit=10, metric=QueryMetric.CPU, min_executions=100) >>> # Order by most executed first, then by CPU - >>> queries = repo.fetch_worst_queries(limit=10, metric=QueryMetric.CPU, order_by_executions=True) + >>> queries = tool.fetch_worst_queries(limit=10, metric=QueryMetric.CPU, order_by_executions=True) """ # Ensure safety and avoid SQL injection try: diff --git a/src/sql_optimizer_team/tools/engine/types/domain_exceptions.py b/src/sql_optimizer_team/tools/engine/types/domain_exceptions.py deleted file mode 100644 index c89ce68..0000000 --- a/src/sql_optimizer_team/tools/engine/types/domain_exceptions.py +++ /dev/null @@ -1,26 +0,0 @@ -"""Compatibility module for tool exceptions. - -Keep this shim to avoid import breakages while exposing the new exceptions. -""" - -from sql_optimizer_team.tools.engine.types.tool_exceptions import ( - ToolError, - InvalidDatabaseTypeError, - InvalidQueryHashError, - InvalidVersionError, - LLMProviderError, - MetadataNotFoundError, - OptimizationError, - QueryValidationError, -) - -__all__ = [ - "ToolError", - "QueryValidationError", - "LLMProviderError", - "MetadataNotFoundError", - "InvalidDatabaseTypeError", - "InvalidQueryHashError", - "InvalidVersionError", - "OptimizationError", -]