""" An abstract class for BackBlaze, S3 etc. It assumes that while some providers are supported via restic/rclone, others may require different backends """ from abc import ABC, abstractmethod from selfprivacy_api.backup.backuppers import AbstractBackupper from selfprivacy_api.graphql.queries.providers import ( BackupProvider as BackupProviderEnum, ) class AbstractBackupProvider(ABC): backupper: AbstractBackupper name: BackupProviderEnum def __init__(self, login="", key="", location="", repo_id=""): self.backupper.set_creds(login, key, location) self.login = login self.key = key self.location = location # We do not need to do anything with this one # Just remember in case the app forgets self.repo_id = repo_id