def iterate_revisions(self, upper, lower):
        if upper is not None and _relative_destination.match(upper):
            relative = int(upper)
            revs = list(self._iterate_revisions("head", lower))
            revs = revs[-relative:]
            if len(revs) != abs(relative):
                raise util.CommandError("Relative revision %s didn't "
                            "produce %d migrations" % (upper, abs(relative)))
            return iter(revs)
        elif lower is not None and _relative_destination.match(lower):
            relative = int(lower)
            revs = list(self._iterate_revisions(upper, "base"))
            revs = revs[0:-relative]
            if len(revs) != abs(relative):
                raise util.CommandError("Relative revision %s didn't "
                            "produce %d migrations" % (lower, abs(relative)))
            return iter(revs)
        else:
            return self._iterate_revisions(upper, lower)
Checks if issued tokens match client_ids listed in client black list.
dataset/ETHPy150Open goFrendiAsgard/kokoropy/kokoropy/packages/alembic/script.py/ScriptDirectory.iterate_revisions--crossover with--dataset/ETHPy150Open google/gfw-toolkit/toolkit/utils/token_revoker.py/TokenRevoker._IsRevokedByClientBlacklist