def _getPurgeList(self, source: BackupSource, pre_purge=False):
    if (not source.enabled()):
        return []
    candidates = list(self.backups.values())
    purges = []
    while True:
        next_purge = self._nextPurge(source, candidates, findNext=pre_purge)
        if (next_purge is None):
            return purges
        else:
            purges.append(next_purge)
            candidates.remove(next_purge)
def _getPurgeList(self, source: BackupSource, pre_purge=False):
    if (not source.enabled()):
        return []
    candidates = list(self.backups.values())
    purges = []
    while True:
        next_purge = self._nextPurge(source, candidates, findNext=pre_purge)
        if (next_purge is None):
            return purges
        else:
            purges.append(next_purge)
            candidates.remove(next_purge)