@classmethod
def _digest(cls, *signers):
    """Produce a unique, deterministic signature out of one or more
        ``signers`` objects."""
    items = []
    for i in signers:
        try:
            items.extend(list(i._signature_items()))
        except AttributeError:
            items.append(str(i))
    return cls._sign(items)
