From 41925859696fb4edcb01ed6f25706e9bafd57e61 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 12 Sep 2026 18:28:31 +0800 Subject: [PATCH] fix(classification): satisfy type and module contracts --- app/api/endpoints/classification.py | 5 +++-- .../{migration_values.py => compiler.py} | 2 +- app/application/classification/migration.py | 2 +- .../architecture/dependency-baseline.json | 16 ++++++++-------- tests/test_architecture_dependencies.py | 2 +- 5 files changed, 14 insertions(+), 13 deletions(-) rename app/application/classification/{migration_values.py => compiler.py} (98%) diff --git a/app/api/endpoints/classification.py b/app/api/endpoints/classification.py index 1e6a1a410..9d1054702 100644 --- a/app/api/endpoints/classification.py +++ b/app/api/endpoints/classification.py @@ -285,15 +285,16 @@ async def validate_policy( async def preview_policy( request: ClassificationPreviewRequest, _: object = Depends(get_current_active_user_async), - runtime: ClassificationRuntime = Depends(get_classification_runtime), + host_runtime: HostRuntime = Depends(get_host_runtime), ) -> ClassificationEvaluation | JSONResponse: """对选择的媒体信息或兼容事实执行策略,并返回完整匹配说明。""" + runtime = host_runtime.classification if request.policy is None: _require_active_policy(runtime) try: return ClassificationAnalysisService( runtime.service, - execution=runtime.classification_execution, + execution=host_runtime.classification_execution, ).preview(request) except ClassificationPolicyValidationError as error: return _validation_response(error) diff --git a/app/application/classification/migration_values.py b/app/application/classification/compiler.py similarity index 98% rename from app/application/classification/migration_values.py rename to app/application/classification/compiler.py index 81ceea449..44f11e4e0 100644 --- a/app/application/classification/migration_values.py +++ b/app/application/classification/compiler.py @@ -1,4 +1,4 @@ -"""旧版分类迁移的值展开和条件树基础工具。""" +"""旧版分类迁移的值编译和条件树基础工具。""" from __future__ import annotations diff --git a/app/application/classification/migration.py b/app/application/classification/migration.py index c6519bf46..deabe67cb 100644 --- a/app/application/classification/migration.py +++ b/app/application/classification/migration.py @@ -8,7 +8,7 @@ from collections.abc import Iterable, Mapping, Sequence from dataclasses import dataclass, field from typing import Callable, Final, Literal, Optional, TypeAlias, Union, cast -from app.application.classification.migration_values import ( +from app.application.classification.compiler import ( _all_or_single, _any_or_single, _legacy_field_definition, diff --git a/tests/fixtures/architecture/dependency-baseline.json b/tests/fixtures/architecture/dependency-baseline.json index 5850307cb..cf423edb7 100644 --- a/tests/fixtures/architecture/dependency-baseline.json +++ b/tests/fixtures/architecture/dependency-baseline.json @@ -1078,7 +1078,7 @@ } }, "edge_count": 8579, - "edge_sha256": "896fdba07ea557dad95790a532c4890a6094f6d30d870de3bea440157764d656", + "edge_sha256": "1ffc77ec803f7ee447d884559e5e6298e5a812aabb3e5d74cec72f61a37c10a8", "edges": [ "app -> app.foundation", "app -> app.foundation.environment", @@ -3236,6 +3236,11 @@ "app.application.classification.catalog -> app.domain.classification.fields", "app.application.classification.catalog -> app.schemas", "app.application.classification.catalog -> app.schemas.category", + "app.application.classification.compiler -> app.domain", + "app.application.classification.compiler -> app.domain.classification", + "app.application.classification.compiler -> app.domain.classification.vocabulary", + "app.application.classification.compiler -> app.schemas", + "app.application.classification.compiler -> app.schemas.category", "app.application.classification.configuration -> app.application", "app.application.classification.configuration -> app.application.classification", "app.application.classification.configuration -> app.application.classification.contract", @@ -3271,17 +3276,12 @@ "app.application.classification.legacy -> app.application.classification.projection", "app.application.classification.migration -> app.application", "app.application.classification.migration -> app.application.classification", - "app.application.classification.migration -> app.application.classification.migration_values", + "app.application.classification.migration -> app.application.classification.compiler", "app.application.classification.migration -> app.domain", "app.application.classification.migration -> app.domain.classification", "app.application.classification.migration -> app.domain.classification.vocabulary", "app.application.classification.migration -> app.schemas", "app.application.classification.migration -> app.schemas.category", - "app.application.classification.migration_values -> app.domain", - "app.application.classification.migration_values -> app.domain.classification", - "app.application.classification.migration_values -> app.domain.classification.vocabulary", - "app.application.classification.migration_values -> app.schemas", - "app.application.classification.migration_values -> app.schemas.category", "app.application.classification.projection -> app.application", "app.application.classification.projection -> app.application.classification", "app.application.classification.projection -> app.application.classification.migration", @@ -9883,13 +9883,13 @@ "app.application.classification", "app.application.classification.analysis", "app.application.classification.catalog", + "app.application.classification.compiler", "app.application.classification.configuration", "app.application.classification.contract", "app.application.classification.enrichment", "app.application.classification.execution", "app.application.classification.legacy", "app.application.classification.migration", - "app.application.classification.migration_values", "app.application.classification.projection", "app.application.classification.reference", "app.application.classification.runtime", diff --git a/tests/test_architecture_dependencies.py b/tests/test_architecture_dependencies.py index 094600794..e954b6935 100644 --- a/tests/test_architecture_dependencies.py +++ b/tests/test_architecture_dependencies.py @@ -460,7 +460,7 @@ def test_application_classification_uses_same_named_package() -> None: "execution.py", "legacy.py", "migration.py", - "migration_values.py", + "compiler.py", "projection.py", "reference.py", "runtime.py",