def format_stack_frame(stack_frame, project: 'projects.Project') ->dict:
    """
    Formats a raw stack frame into a dictionary formatted for render
    templating and enriched with information from the currently open project.

    :param stack_frame:
        A raw stack frame to turn into an enriched version for templating.
    :param project:
        The currently open project, which is used to contextualize stack
        information with project-specific information.
    :return:
        A dictionary containing the enriched stack frame data.
    """
    filename = stack_frame.filename
    if filename.startswith(project.source_directory):
        filename = filename[len(project.source_directory) + 1:]
    location = stack_frame.name
    if location == '<module>':
        location = None
    return dict(filename=filename, location=location, line_number=
        stack_frame.lineno, line=stack_frame.line)
