How can I output a custom message or altair graph instead of the default output in data docs?
Here is a guide for customizing the interface of Data Docs: https://docs.greatexpectations.io/en/latest/reference/spare_parts/data_docs_reference.html#customizing-data-docs
It explains the basic architecture of the templates and how to replace the default code with your own.
Thanks for your answer! It seems super straightforward to add a single custom expectation, but I couldn’t find an easy way of injecting custom visualizations.
So far, I’ve been able to update a couple files in the source ( expectation_string
, validation_results_table_content_block
) to generate some custom displays for my own expectations, but ideally we’d have plugins for each new expectation & viz. I suppose I could create a whole custom renderer, but that seems like overkill for my use case.
Is creating a whole new renderer the right/only way forward here?
if so, any advice on a straightforward way to integrate custom expectations into that new renderer? The example at the bottom of the page you linked didn’t seem to have a whole lot in the way of iterating over expectation results
Hi Ryan - thanks for reaching out. You are correct - currently, if you would like to use plugins in that way for custom expectations in Data Docs, you would have to implement a custom ExpectationStringRenderer, as well as a custom ValidationResultsTableContentBlockRenderer and ExpectationSuiteBulletListContentBlockRenderer that inherits the custom ExpectationStringRenderer. You would then specify the custom ValidationResultsTableContentBlockRenderer and ExpectationSuiteBulletListContentBlockRenderer in your great_expectations.yml
(also referenced in the docs link above):
data_docs_sites:
local_site:
class_name: SiteBuilder
store_backend:
class_name: TupleFilesystemStoreBackend
base_directory: uncommitted/data_docs/local_site/
site_index_builder:
class_name: DefaultSiteIndexBuilder
site_section_builders:
expectations:
renderer:
module_name: great_expectations.render.renderer
class_name: ExpectationSuitePageRenderer
column_section_renderer:
class_name: ExpectationSuiteColumnSectionRenderer
bullet_list_renderer:
module_name: custom_data_docs.renderers.custom_bullet_list_renderer
class_name: CustomExpectationSuiteBulletListContentBlockRenderer
validations:
renderer:
module_name: great_expectations.render.renderer
class_name: ValidationResultsPageRenderer
column_section_renderer:
class_name: ValidationResultsColumnSectionRenderer
table_renderer:
module_name: custom_data_docs.renderers.custom_table_renderer
class_name: CustomValidationResultsTableContentBlockRenderer
We realize this is not ideal and are currently in the middle of a big refactor that will make implementing custom expectations (and their Data Docs renderers) much simpler. In the new architecture, expectations are refactored into their own classes, which also encapsulates any rendering logic. This will be released soon in GE 0.13.
Similar to bhcastleton’s original question, is it possible/what would be the best way to add a custom field in the data docs results screen? For example, we wish to add an id field so that we can easily match up troublesome records using their database id.
Like imagine similar to the custom comments/notes feature, but on a record-by-record basis.
Thanks
Just discovered that one can get full data_docs results including the problematic id fields by tweaking the result_format checkpoint setting:
These then get saved as json files within the folder:
uncommitted/validations
Apologies for digging up an old thread!