@inject
def __init__(self, config: Config, time: Time, source: BackupSource, dest: BackupDestination, info: GlobalInfo, estimator: Estimator, data_cache: DataCache):
    self.config: Config = config
    self.time = time
    self.source: BackupSource = source
    self.dest: BackupDestination = dest
    self.reinitialize()
    self.backups: Dict[(str, Backup)] = {}
    self.firstSync = True
    self.info = info
    self.simulate_error = None
    self.estimator = estimator
    self.waiting_for_startup = False
    self.ignore_startup_delay = False
    self._data_cache = data_cache
@inject
def __init__(self, config: Config, time: Time, source: BackupSource, dest: BackupDestination, info: GlobalInfo, estimator: Estimator, data_cache: DataCache):
    self.config: Config = config
    self.time = time
    self.source: BackupSource = source
    self.dest: BackupDestination = dest
    self.reinitialize()
    self.backups: Dict[(str, Backup)] = {}
    self.firstSync = True
    self.info = info
    self.simulate_error = None
    self.estimator = estimator
    self.waiting_for_startup = False
    self.ignore_startup_delay = False
    self._data_cache = data_cache