async def _purge(self, source: BackupSource, pre_purge=False):
    while True:
        purge = self._getPurgeList(source, pre_purge)
        if (len(purge) <= 0):
            return
        if ((len(purge) > 1) and (self.config.get(Setting.CONFIRM_MULTIPLE_DELETES) and (not self.info.isPermitMultipleDeletes()))):
            raise DeleteMutlipleBackupsError(self._getPurgeStats())
        (await self.deleteBackup(purge[0], source))
async def _purge(self, source: BackupSource, pre_purge=False):
    while True:
        purge = self._getPurgeList(source, pre_purge)
        if (len(purge) <= 0):
            return
        if ((len(purge) > 1) and (self.config.get(Setting.CONFIRM_MULTIPLE_DELETES) and (not self.info.isPermitMultipleDeletes()))):
            raise DeleteMutlipleBackupsError(self._getPurgeStats())
        (await self.deleteBackup(purge[0], source))