refactoring: add initial pipeline configuration and model classes
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import json
|
||||
import logging
|
||||
from typing import Dict, Any
|
||||
|
||||
from core.config.pipeline_config import PipelineConfig
|
||||
|
||||
|
||||
class StateManager:
|
||||
"""Manage pipeline state and checkpoints"""
|
||||
|
||||
def __init__(self, config: PipelineConfig):
|
||||
self.config = config
|
||||
self.checkpoints_dir = self.config.paths.checkpoints_dir
|
||||
|
||||
def save_state(self, state: Dict[str, Any], state_name: str) -> None:
|
||||
"""Save pipeline state"""
|
||||
self.checkpoints_dir.mkdir(parents=True, exist_ok=True)
|
||||
state_file = self.checkpoints_dir / f"{state_name}.json"
|
||||
|
||||
with open(state_file, "w") as f:
|
||||
json.dump(state, f, indent=2, default=str)
|
||||
|
||||
logging.debug(f"Saved state to {state_file}")
|
||||
|
||||
def load_state(self, state_name: str) -> Dict[str, Any]:
|
||||
"""Load pipeline state"""
|
||||
state_file = self.checkpoints_dir / f"{state_name}.json"
|
||||
|
||||
if not state_file.exists():
|
||||
return {}
|
||||
|
||||
with open(state_file, "r") as f:
|
||||
return json.load(f)
|
||||
|
||||
def clear_state(self, state_name: str) -> None:
|
||||
"""Clear pipeline state"""
|
||||
state_file = self.checkpoints_dir / f"{state_name}.json"
|
||||
|
||||
if state_file.exists():
|
||||
state_file.unlink()
|
||||
logging.info(f"Cleared state: {state_name}")
|
||||
Reference in New Issue
Block a user