Files
ecm_sync_system/sync_state_machine/datasource/__init__.py
T
strepsiades 32fa374e86 清理代码
2026-03-18 17:09:46 +08:00

69 lines
1.8 KiB
Python

"""
DataSource Layer for sync_state_machine
DataSource 只负责底层 I/O,不关心节点类型。
Handler 负责类型转换和业务逻辑。
"""
from .datasource import BaseDataSource
from .type_registry import (
get_datasource_config_model,
get_datasource_factory,
list_registered_datasource_types,
register_datasource_config_model,
register_datasource_factory,
register_datasource_type,
)
from .handler import (
NodeHandler,
BaseNodeHandler,
NodeHandlerRegistry,
ValidationResult
)
from .task_result import TaskResult, TaskStatus
# API DataSource
from .api import ApiClient, ApiDataSource, BaseApiHandler, register as register_api_datasource
# JSONL DataSource
from .jsonl import JsonlDataSource, BaseJsonlHandler, register as register_jsonl_datasource
_BUILTIN_DATASOURCE_TYPES_REGISTERED = False
def ensure_builtin_datasource_types_registered(*, replace: bool = False) -> None:
global _BUILTIN_DATASOURCE_TYPES_REGISTERED
if _BUILTIN_DATASOURCE_TYPES_REGISTERED and not replace:
return
register_jsonl_datasource(replace=replace)
register_api_datasource(replace=replace)
_BUILTIN_DATASOURCE_TYPES_REGISTERED = True
__all__ = [
# 基础类
"BaseDataSource",
"get_datasource_config_model",
"get_datasource_factory",
"list_registered_datasource_types",
"NodeHandler",
"BaseNodeHandler",
"NodeHandlerRegistry",
"register_datasource_config_model",
"register_datasource_factory",
"register_datasource_type",
"TaskResult",
"TaskStatus",
"ValidationResult",
"ensure_builtin_datasource_types_registered",
# API DataSource
"ApiClient",
"ApiDataSource",
"BaseApiHandler",
# JSONL DataSource
"JsonlDataSource",
"BaseJsonlHandler",
]