Compile and render given template file and return the result string.

    :param filepath: Template file path or '-'
    :param context: A dict or dict-like object to instantiate given
        template file
    :param options: Optional keyword arguments such as:

        - at_paths: Template search paths
        - at_encoding: Template encoding
        - at_engine: Specify the name of template engine to use explicitly or
          None to find it automatically anyhow.
        - at_cls_args: Arguments passed to instantiate template engine class
        - other keyword arguments passed to the template engine to render
          templates with specific features enabled.

    :return: Rendered string

def render(filepath, context=None, **options):
    """
    Compile and render given template file and return the result string.

    :param filepath: Template file path or '-'
    :param context: A dict or dict-like object to instantiate given
        template file
    :param options: Optional keyword arguments such as:

        - at_paths: Template search paths
        - at_encoding: Template encoding
        - at_engine: Specify the name of template engine to use explicitly or
          None to find it automatically anyhow.
        - at_cls_args: Arguments passed to instantiate template engine class
        - other keyword arguments passed to the template engine to render
          templates with specific features enabled.

    :return: Rendered string
    """
    if filepath == '-':
        return _render(sys.stdin.read(), context=context, **options)

    return _render(filepath=filepath, context=context, **options)