feat: add source adapter base class and local filesystem adapter

- Abstract SourceAdapter with FileInfo dataclass
- LocalAdapter for filesystem backups
- Adapter factory for extensibility
This commit is contained in:
2026-05-11 20:52:31 +02:00
parent 83c3075de0
commit f925ae094c
3 changed files with 99 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
from typing import Dict, Any
from .base import SourceAdapter
from .local import LocalAdapter
ADAPTER_MAP = {
"local": LocalAdapter,
}
def get_adapter(source_type: str, config: Dict[str, Any]) -> SourceAdapter:
adapter_class = ADAPTER_MAP.get(source_type)
if not adapter_class:
raise ValueError(f"Unknown source type: {source_type}")
return adapter_class(config)