Files
ecm_sync_system/scripts/run_copy_pipeline_jsonl.py
T
strepsiades 4a9c444b10 first commit
2026-03-09 16:31:42 +08:00

34 lines
1.1 KiB
Python

from __future__ import annotations
import argparse
import asyncio
import sys
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
if str(REPO_ROOT) not in sys.path:
sys.path.insert(0, str(REPO_ROOT))
import sync_state_machine.domain # noqa: F401
from sync_state_machine.pipeline.copy_data_pipeline import CopyDataPipeline
async def _main() -> None:
parser = argparse.ArgumentParser(description="Run standalone JSONL->JSONL copy pipeline in sync_state_machine")
parser.add_argument("--source-dir", required=True, help="Source JSONL directory")
parser.add_argument("--target-dir", required=True, help="Target JSONL directory")
parser.add_argument("--node-types", nargs="*", default=None, help="Optional node type whitelist")
args = parser.parse_args()
pipeline = CopyDataPipeline(
source_dir=Path(args.source_dir),
target_dir=Path(args.target_dir),
node_types=args.node_types,
)
stats = await pipeline.run()
print("\n[Standalone Result]", stats)
if __name__ == "__main__":
asyncio.run(_main())