pyproject

This commit is contained in:
msramalho
2023-01-21 19:01:02 +00:00
parent ea2c266fa2
commit 753039240f
72 changed files with 398 additions and 683 deletions

View File

@@ -0,0 +1,42 @@
from __future__ import annotations
from dataclasses import dataclass
from abc import abstractmethod, ABC
from typing import Union
from ..core import Metadata
from ..core import Step
@dataclass
class Database(Step, ABC):
name = "database"
def __init__(self, config: dict) -> None:
# without this STEP.__init__ is not called
super().__init__(config)
def init(name: str, config: dict) -> Database:
# only for typing...
return Step.init(name, config, Database)
@abstractmethod
def started(self, item: Metadata) -> None:
"""signals the DB that the given item archival has started"""
pass
def failed(self, item: Metadata) -> None:
"""update DB accordingly for failure"""
pass
def aborted(self, item: Metadata) -> None:
"""abort notification if user cancelled after start"""
pass
# @abstractmethod
def fetch(self, item: Metadata) -> Union[Metadata, bool]:
"""check if the given item has been archived already"""
return False
@abstractmethod
def done(self, item: Metadata) -> None:
"""archival result ready - should be saved to DB"""
pass