LabelProvider.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import typing
  2. class LabelProvider:
  3. """
  4. label provider interface that should be implemented by label provider developers
  5. """
  6. def __init__(self, root_folder, configuration):
  7. """
  8. prepare everything needed to provide labels
  9. :param root_folder: relative path to label folder
  10. :param configuration: object parsed from configuration.json
  11. """
  12. raise NotImplementedError
  13. def close(self):
  14. """
  15. is called everytime a label provider is not used anymore
  16. :return:
  17. """
  18. raise NotImplementedError
  19. def get_labels(self) -> typing.List[dict]:
  20. """
  21. return all available labels
  22. :return:
  23. """
  24. raise NotImplementedError
  25. @staticmethod
  26. def create_label(identifier, name):
  27. """
  28. create a label result
  29. :param identifier: label identifier
  30. :param name: label name
  31. :return:
  32. """
  33. return {
  34. 'id': identifier,
  35. 'name': name
  36. }