Coverage for agentos/checkpoint/factory.py: 50%
14 statements
« prev ^ index » next coverage.py v7.14.3, created at 2026-07-02 09:59 +0800
« prev ^ index » next coverage.py v7.14.3, created at 2026-07-02 09:59 +0800
1"""
2Checkpointer 工厂 — 统一创建不同后端的 Checkpointer。
3"""
5from __future__ import annotations
7from typing import Any
9from agentos.checkpoint.base import CheckpointBackend
10from agentos.checkpoint.sqlite import SQLiteCheckpointer
11from agentos.checkpoint.postgres import PostgresCheckpointer
13__all__ = ["create_checkpointer"]
16def create_checkpointer(
17 backend: str = "sqlite",
18 **kwargs: Any,
19) -> CheckpointBackend:
20 """
21 创建 Checkpointer 实例。
23 Args:
24 backend: "sqlite" | "postgres"
25 **kwargs: 后端特定参数
26 - sqlite: db_path (默认 "checkpoints.db")
27 - postgres: dsn (默认 "postgresql://localhost:5432/agentos")
29 Returns:
30 CheckpointBackend 实例。
32 Raises:
33 ValueError: 未知后端。
34 """
35 backend = backend.lower().strip()
37 if backend == "sqlite":
38 db_path = kwargs.pop("db_path", "checkpoints.db")
39 return SQLiteCheckpointer(db_path=db_path, **kwargs)
41 if backend == "postgres":
42 return PostgresCheckpointer(**kwargs)
44 raise ValueError(
45 f"Unknown checkpoint backend: '{backend}'. Available: sqlite, postgres"
46 )