Skip to content

tools

django_spire.contrib.seeding.field.seed.tools

resolve_ordered_index

Source code in django_spire/contrib/seeding/field/seed/tools.py
def resolve_ordered_index(seed_index: int, length: int, wrap: bool, item_name: str) -> int:
    if wrap:
        return seed_index % length

    if seed_index >= length:
        message = (
            f'Cannot seed index {seed_index}: only {length} {item_name} available. '
            f'Pass wrap=True to cycle through them instead.'
        )
        raise DjangoSpireSeederError(message)

    return seed_index