# Buggy code
def render(self, expectations):
    columns, ordered_columns = self._group_and_order_expectations_by_column(
        expectations
    )
    expectation_suite_name = expectations.expectation_suite_name

    overview_content_blocks = [
        self._render_expectation_suite_header(),
        self._render_expectation_suite_info(expectations),
    ]

    table_level_expectations_content_block = self._render_table_level_expectations(
        columns
    )
    if table_level_expectations_content_block is not None:
        overview_content_blocks.append(table_level_expectations_content_block)

    asset_notes_content_block = self._render_expectation_suite_notes(expectations)
    if asset_notes_content_block is not None:
        overview_content_blocks.append(asset_notes_content_block)

    sections = [
        RenderedSectionContent(
            **{
                "section_name": "Overview",
                "content_blocks": overview_content_blocks,
            }
        )
    ]

    sections += [
        self._column_section_renderer.render(expectations=columns[column])
        for column in ordered_columns
        if column != "_nocolumn"
    ]
    return RenderedDocumentContent(
        **{
            "renderer_type": "ExpectationSuitePageRenderer",
            "page_title": "Expectations / " + expectation_suite_name,
            "expectation_suite_name": expectation_suite_name,
            "utm_medium": "expectation-suite-page",
            "sections": sections,
        }
    )


# Traceback (TypeError)
❯ great_expectations docs build

The following Data Docs sites will be built:

- local_site: file:///Users/taylor/repos/sdap/ge/great_expectations/uncommitted/data_docs/local_site/index.html

Would you like to proceed? [Y/n]:

Building Data Docs...

--- Logging error ---
Traceback (most recent call last):
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/site_builder.py", line 443, in build
rendered_content = self.renderer_class.render(resource)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/page_renderer.py", line 210, in render
page_title += " / " + data_asset_name
TypeError: can only concatenate str (not "int") to str

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "/Users/taylor/repos/sdap/.venv/bin/great_expectations", line 8, in <module>
sys.exit(main())
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/cli/cli.py", line 73, in main
cli()
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/cli/docs.py", line 45, in docs_build
build_docs(context, site_name=site_name, view=view, assume_yes=assume_yes)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/cli/docs.py", line 146, in build_docs
index_page_locator_infos = context.build_data_docs(site_names=site_names)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/core/usage_statistics/usage_statistics.py", line 257, in usage_statistics_wrapped_method
result = func(*args, **kwargs)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/data_context/data_context.py", line 1572, in build_data_docs
index_page_resource_identifier_tuple = site_builder.build(
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/site_builder.py", line 290, in build
site_section_builder.build(resource_identifiers=resource_identifiers)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/site_builder.py", line 460, in build
logger.error(exception_message, e, exc_info=True)
Message: 'An unexpected Exception occurred during data docs rendering.  Because of this error, certain parts of data docs will not be rendered properly and/or may not appear altogether.  Please use the trace, included in this message, to diagnose and repair the underlying issue.  Detailed information follows:\n                TypeError: "can only concatenate str (not "int") to str".  Traceback: "Traceback (most recent call last):\n  File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/site_builder.py", line 443, in build\n    rendered_content = self.renderer_class.render(resource)\n  File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/page_renderer.py", line 210, in render\n    page_title += " / " + data_asset_name\nTypeError: can only concatenate str (not "int") to str\n".'
Arguments: (TypeError('can only concatenate str (not "int") to str'),)
Traceback (most recent call last):
File "/Users/taylor/repos/sdap/.venv/bin/great_expectations", line 8, in <module>
sys.exit(main())
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/cli/cli.py", line 73, in main
cli()
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/cli/docs.py", line 45, in docs_build
build_docs(context, site_name=site_name, view=view, assume_yes=assume_yes)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/cli/docs.py", line 146, in build_docs
index_page_locator_infos = context.build_data_docs(site_names=site_names)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/core/usage_statistics/usage_statistics.py", line 257, in usage_statistics_wrapped_method
result = func(*args, **kwargs)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/data_context/data_context.py", line 1572, in build_data_docs
index_page_resource_identifier_tuple = site_builder.build(
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/site_builder.py", line 290, in build
site_section_builder.build(resource_identifiers=resource_identifiers)
File "/Users/taylor/repos/sdap/.venv/lib/python3.8/site-packages/great_expectations/render/renderer/site_builder.py", line 466, in build
viewable_content,
UnboundLocalError: local variable 'viewable_content' referenced before assignment

# Fixed code
def render(self, expectations):
    columns, ordered_columns = self._group_and_order_expectations_by_column(
        expectations
    )
    expectation_suite_name = expectations.expectation_suite_name

    overview_content_blocks = [
        self._render_expectation_suite_header(),
        self._render_expectation_suite_info(expectations),
    ]

    table_level_expectations_content_block = self._render_table_level_expectations(
        columns
    )
    if table_level_expectations_content_block is not None:
        overview_content_blocks.append(table_level_expectations_content_block)

    asset_notes_content_block = self._render_expectation_suite_notes(expectations)
    if asset_notes_content_block is not None:
        overview_content_blocks.append(asset_notes_content_block)

    sections = [
        RenderedSectionContent(
            **{
                "section_name": "Overview",
                "content_blocks": overview_content_blocks,
            }
        )
    ]

    sections += [
        self._column_section_renderer.render(expectations=columns[column])
        for column in ordered_columns
        if column != "_nocolumn"
    ]
    return RenderedDocumentContent(
        **{
            "renderer_type": "ExpectationSuitePageRenderer",
            "page_title": "Expectations / " + str(expectation_suite_name),
            "expectation_suite_name": expectation_suite_name,
            "utm_medium": "expectation-suite-page",
            "sections": sections,
        }
    )