class ExpectationSuiteValidationResultSchema(Schema): success = fields.Bool() results = fields.List(fields.Nested(ExpectationValidationResultSchema)) evaluation_parameters = fields.Dict() statistics = fields.Dict() meta = fields.Dict(allow_none=True) ge_cloud_id = fields.UUID(required=False, allow_none=True) # noinspection PyUnusedLocal @pre_dump def prepare_dump(self, data, **kwargs): data = deepcopy(data) if isinstance(data, ExpectationSuiteValidationResult): data.meta = convert_to_json_serializable(data=data.meta) data.statistics = convert_to_json_serializable( data=data.statistics) elif isinstance(data, dict): data["meta"] = convert_to_json_serializable(data=data.get("meta")) data["statistics"] = convert_to_json_serializable( data=data.get("statistics")) return data # noinspection PyUnusedLocal @post_load def make_expectation_suite_validation_result(self, data, **kwargs): return ExpectationSuiteValidationResult(**data)
class ExpectationValidationResultSchema(Schema): success = fields.Bool() expectation_config = fields.Nested(ExpectationConfigurationSchema) result = fields.Dict() meta = fields.Dict() exception_info = fields.Dict() # noinspection PyUnusedLocal @pre_dump def convert_result_to_serializable(self, data, **kwargs): data = deepcopy(data) if isinstance(data, ExpectationValidationResult): data.result = convert_to_json_serializable(data.result) elif isinstance(data, dict): data["result"] = convert_to_json_serializable(data.get("result")) return data # # noinspection PyUnusedLocal # @pre_dump # def clean_empty(self, data, **kwargs): # # if not hasattr(data, 'meta'): # # pass # # elif len(data.meta) == 0: # # del data.meta # # return data # pass # noinspection PyUnusedLocal @post_load def make_expectation_validation_result(self, data, **kwargs): return ExpectationValidationResult(**data)
class ValidationOperatorResultSchema(Schema): run_id = fields.Nested(RunIdentifierSchema) run_results = fields.Dict() evaluation_parameters = fields.Dict(allow_none=True) validation_operator_config = fields.Dict() success = fields.Bool() # noinspection PyUnusedLocal @pre_dump def prepare_dump(self, data, **kwargs): data = deepcopy(data) data._run_results = convert_to_json_serializable(data.run_results) return data # noinspection PyUnusedLocal @post_load def make_expectation_suite_validation_result(self, data, **kwargs): return ValidationOperatorResult(**data)
class ExpectationSuiteValidationResultSchema(Schema): success = fields.Bool() results = fields.List(fields.Nested(ExpectationValidationResultSchema)) evaluation_parameters = fields.Dict() statistics = fields.Dict() meta = fields.Dict(allow_none=True) # noinspection PyUnusedLocal @pre_dump def prepare_dump(self, data, **kwargs): data = deepcopy(data) data.meta = convert_to_json_serializable(data.meta) return data # noinspection PyUnusedLocal @post_load def make_expectation_suite_validation_result(self, data, **kwargs): return ExpectationSuiteValidationResult(**data)
class CheckpointResultSchema(Schema): # JC: I think this needs to be changed to be an instance of a new type called CheckpointResult, # which would include the top-level keys run_id, config, name, and a list of results. run_id = fields.Nested(RunIdentifierSchema) run_results = fields.Dict() checkpoint_config = fields.Nested(CheckpointConfigSchema) success = fields.Bool() # noinspection PyUnusedLocal @pre_dump def prepare_dump(self, data, **kwargs): data = deepcopy(data) data._run_results = convert_to_json_serializable(data.run_results) return data # noinspection PyUnusedLocal @post_load def make_checkpoint_result(self, data, **kwargs): return CheckpointResult(**data)
class ExpectationValidationResultSchema(Schema): success = fields.Bool(required=False, allow_none=True) expectation_config = fields.Nested(lambda: ExpectationConfigurationSchema, required=False, allow_none=True) result = fields.Dict(required=False, allow_none=True) meta = fields.Dict(required=False, allow_none=True) exception_info = fields.Dict(required=False, allow_none=True) rendered_content = fields.List( fields.Nested(lambda: RenderedAtomicContentSchema, required=False, allow_none=True)) # noinspection PyUnusedLocal @pre_dump def convert_result_to_serializable(self, data, **kwargs): data = deepcopy(data) if isinstance(data, ExpectationValidationResult): data.result = convert_to_json_serializable(data.result) elif isinstance(data, dict): data["result"] = convert_to_json_serializable(data.get("result")) return data REMOVE_KEYS_IF_NONE = ["rendered_content"] @post_dump def clean_null_attrs(self, data: dict, **kwargs: dict) -> dict: """Removes the attributes in ExpectationValidationResultSchema.REMOVE_KEYS_IF_NONE during serialization if their values are None.""" data = deepcopy(data) for key in ExpectationConfigurationSchema.REMOVE_KEYS_IF_NONE: if key in data and data[key] is None: data.pop(key) return data # noinspection PyUnusedLocal @post_load def make_expectation_validation_result(self, data, **kwargs): return ExpectationValidationResult(**data)