vimsheet.model.validation

Cell data-validation rules.

class vimsheet.model.validation.ValidationRule(rule_type='any', operator='between', value1=None, value2=None, choices=<factory>, formula='', error_message='Invalid value', allow_blank=True)[source]

Bases: object

A rule that constrains what values a cell may hold.

Parameters:
rule_type

“any”, “number”, “integer”, “text”, “list”, “date”, “custom”

operator

For numeric/date types: “between”, “not_between”, “eq”, “ne”, “lt”, “le”, “gt”, “ge”.

value1, value2

Bounds for the rule (value2 used only for “between”/”not_between”).

choices

Allowed values when rule_type == "list".

formula

Raw formula string when rule_type == "custom".

error_message

User-visible error message shown on violation.

allow_blank

Whether a blank / None value is accepted.

rule_type: str = 'any'
operator: str = 'between'
value1: Any = None
value2: Any = None
choices: list[Any]
formula: str = ''
error_message: str = 'Invalid value'
allow_blank: bool = True
validate(value)[source]

Return True if value satisfies this rule.

Parameters:

value (Any)

Return type:

bool

__init__(rule_type='any', operator='between', value1=None, value2=None, choices=<factory>, formula='', error_message='Invalid value', allow_blank=True)
Parameters:
Return type:

None

class vimsheet.model.validation.SheetValidation(rules=<factory>)[source]

Bases: object

Collection of validation rules keyed by (row, col).

Parameters:

rules (dict[tuple[int, int], ValidationRule])

rules: dict[tuple[int, int], ValidationRule]
add(row, col, rule)[source]
Parameters:
Return type:

None

remove(row, col)[source]
Parameters:
Return type:

None

get(row, col)[source]
Parameters:
Return type:

ValidationRule | None

validate(row, col, value)[source]

Return (is_valid, error_message).

Parameters:
Return type:

tuple[bool, str]

__init__(rules=<factory>)
Parameters:

rules (dict[tuple[int, int], ValidationRule])

Return type:

None