File size: 1,318 Bytes
f7d11f7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import json

import great_expectations as gx
from loguru import logger


def set_gx(source_name, asset_name, suite_name):
    context = gx.get_context()

    data_source = context.data_sources.add_pandas(name=source_name)
    data_asset = data_source.add_dataframe_asset(name=asset_name)

    batch_definition = data_asset.add_batch_definition_whole_dataframe("batch_definition")

    suite = context.suites.add(
        gx.core.expectation_suite.ExpectationSuite(
            name=suite_name,
        )
    )
    return context, suite, batch_definition


def show_results(checkpoint_result):
    result = json.loads(checkpoint_result.describe())

    for i, v in enumerate(result.get("validation_results", []), 1):
        logger.info(f"Validation {i}, {v['success']}")

        for e in v.get("expectations", []):
            name = e["expectation_type"]
            kwargs = e.get("kwargs", {})
            col = kwargs.get("column")
            success = e["success"]
            logger.info(f"{col}: {name} -> {success}")

            if not success:
                logger.warning(kwargs)
                logger.warning(e.get("result"))

    if result.get("success"):
        logger.success(f"Overall success: {result.get('success')}")
    else:
        logger.error(f"Overall success: {result.get('success')}")