"""Import-light routing and prerequisite policy for the private PM worker. PM's own runtime is deliberately absent: its public staging entry point must run directly, before the worker's dependencies exist. """ from __future__ import annotations from dataclasses import dataclass from importlib import import_module from typing import Literal @dataclass(frozen=True) class Operation: module: str packages: tuple[str, ...] | None # None selects the request's named package. bootstrap: Literal["always", "policy", "state", "never"] def resolve(self, name: str): return getattr(import_module(self.module), name) OPERATIONS = { "ensure": Operation("pm.install", None, "state"), "stage_only": Operation("pm.install", None, "always"), "stage_tools": Operation("pm.build_operations", None, "never"), "prepare_tools": Operation("pm.build_operations", None, "always"), "sync_venv": Operation("pm.install", ("venv",), "policy"), "venv_is_current": Operation("pm.install", ("venv",), "never"), "build_environment": Operation("pm.operations", ("uv",), "policy"), "lock_project": Operation("pm.operations", ("uv",), "policy"), "ensure_environment": Operation("pm.operations", ("uv",), "policy"), "ensure_project_environment": Operation("pm.operations", ("uv",), "policy"), "ensure_python_tool": Operation("pm.operations", ("uv",), "policy"), "check_project_lock": Operation("pm.build_operations", ("uv",), "policy"), "export_requirements": Operation("pm.build_operations", ("uv",), "policy"), "build_requirements_environment": Operation("pm.build_operations", ("uv",), "policy"), "prune_cache": Operation("pm.build_operations", ("uv",), "always"), }