def load_template(path_or_buffer):
    '''Build tabula-py option from template file

    Args:
        file_like_obj: File like object of Tabula app template

    Returns:
        `obj`:dict: tabula-py options
    '''

    from itertools import groupby
    from operator import itemgetter

    path_or_buffer = _stringify_path(path_or_buffer)

    if is_file_like(path_or_buffer):
        templates = json.load(path_or_buffer)
    else:
        with open(path_or_buffer, 'r') as f:
            templates = json.load(f)

    options = []

    grouper = itemgetter('page', 'extraction_method')

    for key, grp in groupby(sorted(templates, key=grouper), grouper):
        tmp_options = [_convert_template_option(e) for e in grp]

        if len(tmp_options) == 1:
            options.append(tmp_options[0])
            continue

        option = tmp_options[0]
        areas = [e.get('area') for e in tmp_options]
        option['area'] = areas
        option['multiple_tables'] = True
        options.append(option)

    return options
Build tabula-py option from template file

    Args:
        file_like_obj: File like object of Tabula app template

    Returns:
        `obj`:dict: tabula-py options