Python · 1531 bytes Raw Blame History
1 """Export target registry."""
2
3 from __future__ import annotations
4
5 from dlm.export.errors import UnknownExportTargetError
6 from dlm.export.targets.base import ExportTarget, SmokeResult, TargetResult
7 from dlm.export.targets.llama_server import LLAMA_SERVER_TARGET, prepare_llama_server_export
8 from dlm.export.targets.mlx_serve import (
9 MLX_SERVE_TARGET,
10 finalize_mlx_serve_export,
11 prepare_mlx_serve_export,
12 )
13 from dlm.export.targets.ollama import OLLAMA_TARGET
14 from dlm.export.targets.vllm import VLLM_TARGET, finalize_vllm_export, prepare_vllm_export
15
16 TARGETS: dict[str, ExportTarget] = {
17 OLLAMA_TARGET.name: OLLAMA_TARGET,
18 LLAMA_SERVER_TARGET.name: LLAMA_SERVER_TARGET,
19 VLLM_TARGET.name: VLLM_TARGET,
20 MLX_SERVE_TARGET.name: MLX_SERVE_TARGET,
21 }
22
23
24 def available_targets() -> tuple[str, ...]:
25 """Return stable export-target names in display order."""
26 return tuple(TARGETS.keys())
27
28
29 def resolve_target(name: str) -> ExportTarget:
30 """Resolve one configured export target by name."""
31 try:
32 return TARGETS[name]
33 except KeyError as exc:
34 raise UnknownExportTargetError(name, available=available_targets()) from exc
35
36
37 __all__ = [
38 "ExportTarget",
39 "LLAMA_SERVER_TARGET",
40 "MLX_SERVE_TARGET",
41 "SmokeResult",
42 "TARGETS",
43 "TargetResult",
44 "VLLM_TARGET",
45 "available_targets",
46 "finalize_mlx_serve_export",
47 "finalize_vllm_export",
48 "prepare_mlx_serve_export",
49 "prepare_llama_server_export",
50 "prepare_vllm_export",
51 "resolve_target",
52 ]