depends_on.
Defining a check
Place Python files underchecks/ and decorate functions with @check. depends_on is required:
CheckContext and reads its dependencies’ persisted results with ctx.result_of(...).
Results
Return a result through the context helpers, or a bool shorthand:| Return | Meaning |
|---|---|
ctx.pass_(message=None, metadata=None) | Passing |
ctx.fail(message, metadata=None) | Failing, using the check’s severity |
ctx.warn(message, metadata=None) | Warning, regardless of severity |
True | Pass |
False | Fail |
None is not allowed - checks must be explicit.
Severity
@check takes a severity of error (default) or warn:
error(default) - a failing check failssqb build.warn- a failing check is reported but does not fail the build.
ctx.warn(...) always produces a warning regardless of the declared severity.
What checks can depend on
- Checks may depend on tasks, assets, and loaders.
- Checks may not depend on SQL models, sources, seeds, or functions. Use SQL audits to validate SQL relations.
- Checks may not depend on other checks.
- Checks may not depend on a terminal source loader directly. Validate loaded source data with a source audit instead.
group, tags, or path.
Decorator parameters
| Parameter | Description |
|---|---|
depends_on | Required. Tasks/assets/loaders to validate (function, tuple, or list) |
name | Override the node name (defaults to the function name) |
severity | error (default) or warn |
tags | Labels for selection and grouping |
group | Display/catalog grouping |
description | Docs (defaults to docstring) |
meta | Freeform JSON metadata |
columns, column_lineage, or retry.
Running checks
Checks run automatically duringsqb build when their Python dependencies run. They are skipped when --no-audits is passed. To run checks on their own, use sqb check:
sqb check rejects selecting non-check nodes; use sqb build to run tasks and assets. Check results are written to target/run/checks/python_checks.json, and sqb check --json prints them to stdout.
Checks vs audits
| Checks | Audits | |
|---|---|---|
| Validates | Python tasks, assets, loaders | SQL relations |
| Authored in | checks/ (Python) | MODEL() headers / audits/ (SQL) |
| Run by | sqb build, sqb check | sqb build, sqb audit |
| Severity | error, warn | error, warn |
sqb build runs both. sqb audit runs SQL audits only; sqb check runs Python checks only.
