from typing import List


def render_include_source_code(
    col_offset: int, include_path: str, include_code: str
) -> List[str]:
    """Annotate included source code with additional information about
    the source path of the included source.

    Args:
        col_offset: a col offset of the whole source code which is included
        include_path: a path to the module which is included
        include_code: a content of the module at path `include_path`

    Returns:
        formatted source code
    """
    print(f"PyParams: including module source: {include_path}")
    s_col_offset = " " * col_offset

    comment_line = f"{s_col_offset}PyParams: auto include source of `{include_path}`"
    header_lines = [
        f'{s_col_offset}"""\n{s_col_offset}' + "-" * (80 - col_offset),
        f"{s_col_offset}{comment_line}",
        s_col_offset + "-" * (80 - col_offset) + f'\n{s_col_offset}"""',
    ]

    include_lines = header_lines + [s_col_offset + l for l in include_code.split("\n")]

    comment_line = f"{s_col_offset}INCLUDE END OF `{include_path}`"
    include_lines += [
        f'{s_col_offset}"""\n{s_col_offset}' + "-" * (80 - col_offset),
        f"{s_col_offset}{comment_line}",
        s_col_offset + "-" * (80 - col_offset) + f'\n{s_col_offset}"""',
    ]

    return include_lines