- Replaced @TIER: TRIVIAL with @COMPLEXITY: 1 - Replaced @TIER: STANDARD with @COMPLEXITY: 3 - Replaced @TIER: CRITICAL with @COMPLEXITY: 5 - Manually elevated specific critical/complex components to levels 2 and 4 - Ignored legacy, specs, and node_modules directories - Updated generated semantic map
50 lines
2.1 KiB
Python
50 lines
2.1 KiB
Python
# [DEF:backend.src.services.clean_release.demo_data_service:Module]
|
|
# @COMPLEXITY: 3
|
|
# @SEMANTICS: clean-release, demo-mode, namespace, isolation, repository
|
|
# @PURPOSE: Provide deterministic namespace helpers and isolated in-memory repository creation for demo and real modes.
|
|
# @LAYER: Domain
|
|
# @RELATION: DEPENDS_ON -> backend.src.services.clean_release.repository
|
|
# @INVARIANT: Demo and real namespaces must never collide for generated physical identifiers.
|
|
|
|
from __future__ import annotations
|
|
|
|
from .repository import CleanReleaseRepository
|
|
|
|
|
|
# [DEF:resolve_namespace:Function]
|
|
# @PURPOSE: Resolve canonical clean-release namespace for requested mode.
|
|
# @PRE: mode is a non-empty string identifying runtime mode.
|
|
# @POST: Returns deterministic namespace key for demo/real separation.
|
|
def resolve_namespace(mode: str) -> str:
|
|
normalized = (mode or "").strip().lower()
|
|
if normalized == "demo":
|
|
return "clean-release:demo"
|
|
return "clean-release:real"
|
|
# [/DEF:resolve_namespace:Function]
|
|
|
|
|
|
# [DEF:build_namespaced_id:Function]
|
|
# @PURPOSE: Build storage-safe physical identifier under mode namespace.
|
|
# @PRE: namespace and logical_id are non-empty strings.
|
|
# @POST: Returns deterministic "{namespace}::{logical_id}" identifier.
|
|
def build_namespaced_id(namespace: str, logical_id: str) -> str:
|
|
if not namespace or not namespace.strip():
|
|
raise ValueError("namespace must be non-empty")
|
|
if not logical_id or not logical_id.strip():
|
|
raise ValueError("logical_id must be non-empty")
|
|
return f"{namespace}::{logical_id}"
|
|
# [/DEF:build_namespaced_id:Function]
|
|
|
|
|
|
# [DEF:create_isolated_repository:Function]
|
|
# @PURPOSE: Create isolated in-memory repository instance for selected mode namespace.
|
|
# @PRE: mode is a valid runtime mode marker.
|
|
# @POST: Returns repository instance tagged with namespace metadata.
|
|
def create_isolated_repository(mode: str) -> CleanReleaseRepository:
|
|
namespace = resolve_namespace(mode)
|
|
repository = CleanReleaseRepository()
|
|
setattr(repository, "namespace", namespace)
|
|
return repository
|
|
# [/DEF:create_isolated_repository:Function]
|
|
|
|
# [/DEF:backend.src.services.clean_release.demo_data_service:Module] |