import typing class LabelProvider: """ label provider interface that should be implemented by label provider developers """ def __init__(self, root_folder, configuration): """ prepare everything needed to provide labels :param root_folder: relative path to label folder :param configuration: object parsed from configuration.json """ raise NotImplementedError def close(self): """ is called everytime a label provider is not used anymore :return: """ raise NotImplementedError def get_labels(self) -> typing.List[dict]: """ return all available labels :return: """ raise NotImplementedError @staticmethod def create_label(identifier, name): """ create a label result :param identifier: label identifier :param name: label name :return: """ return { 'id': identifier, 'name': name }