The Baseline Check is always enabled. It makes various small checks that reveal a great deal of tabular errors. You can create an empty
Checklist to see the baseline check scope:
capital-invalid.csvto reproduce the examples (right-click and "Save link as")..
from pprint import pprint from frictionless import Checklist, validate checklist = Checklist() pprint(checklist.scope) report = validate('capital-invalid.csv') # we don't pass the checklist as the empty one is default pprint(report.flatten(['type', 'message']))
['hash-count', 'byte-count', 'field-count', 'row-count', 'blank-header', 'extra-label', 'missing-label', 'blank-label', 'duplicate-label', 'incorrect-label', 'blank-row', 'primary-key', 'foreign-key', 'extra-cell', 'missing-cell', 'type-error', 'constraint-error', 'unique-error'] [['duplicate-label', 'Label "name" in the header at position "3" is duplicated to a label: at ' 'position "2"'], ['missing-cell', 'Row at position "10" has a missing cell in field "name2" at position "3"'], ['blank-row', 'Row at position "11" is completely blank'], ['type-error', 'Type error in the cell "x" in row "12" and field "id" at position "1": type ' 'is "integer/default"'], ['extra-cell', 'Row at position "12" has an extra value in field at position "4"']]
The Baseline Check is incorporated into base Frictionless classes as though Resource, Header, and Row. There is no exact order in which those errors are revealed as it's highly optimized. One should consider the Baseline Check as one unit of validation.
Check a table for basic errors Ths check is enabled by default for any `validate` function run.
(*, name: Optional[str] = None, title: Optional[str] = None, description: Optional[str] = None) -> None