Rules

Usage of any generic or custom:

from contessa import GT, SQL, NOT_NULL

rules = [{
  "name": NOT_NULL,
  "columns": ["a", "b", "c"],
}, {
  "name": GT,
  "value": 0,
  "columns": ["a", "b", "c"],
  "condition": "status IN ('closed', 'refunded')", # optional thingy in rules
}, {
  "name": SQL,
  "sql": "SELECT CASE WHEN <something-cool> THEN false ELSE true END FROM {{table_fullname}}",
  "description": "more coolness",
  # condition doesnt make sense here :)
}]

Tip

value can be another col, e.g. - {"name": NOT, "column": "src", "value": "dst"}

Check supported rules below.

Accuracy, Completeness and Conformity

class contessa.rules.NotNullRule(name, column, description='True when data is null.', **kwargs)[source]

from contessa import NOT_NULL

class contessa.rules.GtRule(name, column, value, description='True when data is greater than input value.', **kwargs)[source]

from contessa import GT

class contessa.rules.GteRule(name, column, value, description='True when data is greater or even than input value.', **kwargs)[source]

from contessa import GTE

class contessa.rules.NotRule(name, column, value, description='True when data is not input value.', **kwargs)[source]

from contessa import NOT

class contessa.rules.LtRule(name, column, value, description='True when data is less than input value.', **kwargs)[source]

from contessa import LT

class contessa.rules.LteRule(name, column, value, description='True when data is less or even than input value.', **kwargs)[source]

from contessa import LTE

class contessa.rules.EqRule(name, column, value, description='True when data is the same as input value.', **kwargs)[source]

from contessa import EQ

Custom Rules

class contessa.rules.CustomSqlRule(name, sql, description, **kwargs)[source]

from contessa import SQL

Consistency

# comming soon