How to configure notebooks generated by “suite edit”¶
This guide shows how to customize the notebooks generated by great_expectations suite edit
Prerequisites: This how-to guide assumes you have already:
The notebooks generated by great_expectations suite edit
are made of different sections:
header_markdown
footer_markdown
table_expectations_header_markdown
column_expectations_header_markdown
table_expectations_not_found_markdown
column_expectations_not_found_markdown
authoring_intro_markdown
column_expectations_markdown
header_code
footer_code
column_expectation_code
table_expectation_code
Each one of those cells expects either Markdown or code. Great Expectations has defaults for each one of those sections, but it supports each section to be overwritten. The default class supports using Jinja templating for dynamic rendering.
Additionally, the class that generates the notebooks can be overwritten.
Overwriting the class¶
In `great_expectations.yml` add
notebooks: suite_edit: class_name: CustomeSuiteEditNotebookRender module_name: custom_plugin.render.renderer.suite_edit_notebook_renderer
Overwriting a section¶
For markdown
notebooks: suite_edit: custom_templates_module: notebook_assets.suite_edit header_markdown: file_name: HEADER.md template_kwargs: company_name: MyCompanyIn this case, Great Expectations will overwrite the “header_markdown” section with the file “HEADER.md”, which contains the Jinja variable “company_name”.
The file should be in your package “notebook_assets.suite_edit”. Note this needs to be a package so __init__.py files need to be included.
great_expectations/plugins/notebook_assets/ ├── __init__.py └── suite_edit ├── __init__.py └── HEADER.mdFor example:
great_expectations/plugins/notebook_assets/suite_edit/HEADER.md:
# Custom header for {{ company_name }}
For code
notebooks: suite_edit: custom_templates_module: notebook_assets.suite_edit footer_code: file_name: footer.py template_kwargs: site_name: site_local validation_operator_name: local
In this case, Great Expectations will overwrite the “footer_code” section with the file “footer.py”, which contains the Jinja variables “site_name” and “validation_operator_name”
The file should be in your package “notebook_assets.suite_edit”.
For example:
great_expectations/plugins/notebook_assets/suite_edit/footer.py:
batch.save_expectation_suite(discard_failed_expectations=False) run_id = { "run_name": "some_string_that_uniquely_identifies_this_run", # insert your own run_name here "run_time": datetime.datetime.now(datetime.timezone.utc), } results = context.run_validation_operator( "{{ validation_operator_name }}", assets_to_validate=[batch], run_id=run_id ) validation_result_identifier = results.list_validation_result_identifiers()[0] context.build_data_docs(site_names=["{{ site_name }}"]) context.open_data_docs(validation_result_identifier, site_name="{{ site_name }}")
Notes¶
The “template_kwargs” argument is optional, so the provided files do not have to contain Jinja templating.