def of_file(path: str, root_directory: str = None) -> dict:
    """
    Returns a dictionary containing status information for the specified file
    including when its name relative to the root directory, when it was last
    modified and its size.

    :param path:
        The absolute path to the file for which the status information should
        be generated
    :param root_directory:
        The directory to use for creating relative path names for the returned
        status. If this argument is None the path in the status will be the
        absolute path argument.
    :return:
        A dictionary containing the status information for the file at the
        specified path. If no such file exists, then the dictionary will
        contain -1 values for both the file size and the last modified time.
    """

    slug = (
        path
        if root_directory is None
        else path[len(root_directory):].lstrip(os.sep)
    )

    if not os.path.exists(path) or os.path.isdir(path):
        return dict(
            size=-1,
            modified=-1,
            path=slug
        )

    size = os.path.getsize(path)
    modified = max(os.path.getmtime(path), os.path.getctime(path))

    return dict(
        modified=modified,
        path=slug,
        size=size
    )
Returns a dictionary containing status information for the specified file
    including when its name relative to the root directory, when it was last
    modified and its size.

    :param path:
        The absolute path to the file for which the status information should
        be generated
    :param root_directory:
        The directory to use for creating relative path names for the returned
        status. If this argument is None the path in the status will be the
        absolute path argument.
    :return:
        A dictionary containing the status information for the file at the
        specified path. If no such file exists, then the dictionary will
        contain -1 values for both the file size and the last modified time.