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
    )