refspy.types.index

Data type for index numbers.

An index number can be used to store a verse in a database using an UNSIGNED INT(12) field.

It is created by multiplying each constituent number (library, book, chapter, verse) by powers of 1000.

Example:

verse(1, 2, 3, 4) becomes 1002003004

 1"""Data type for index numbers.
 2
 3An index number can be used to store a verse in a database using an `UNSIGNED
 4INT(12)` field.
 5
 6It is created by multiplying each constituent number (library, book, chapter,
 7verse) by powers of 1000.
 8
 9Example:
10    `verse(1, 2, 3, 4)` becomes `1002003004`
11"""
12
13from typing import Annotated
14from annotated_types import Ge, Le  # >=, <=
15
16Index = Annotated[int, Ge(1001001001), Le(999999999999)]
Index = typing.Annotated[int, Ge(ge=1001001001), Le(le=999999999999)]