LabelProvider.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from typing import List
  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) -> List[dict]:
  20. """
  21. return all available labels
  22. :return:
  23. """
  24. raise NotImplementedError
  25. @staticmethod
  26. def create_label(reference: str, name: str,
  27. parent_reference: str = None, hierarchy_level: str = None):
  28. """
  29. create a label result
  30. :param reference: label reference string
  31. :param name: label name
  32. :param parent_reference: parent's reference string
  33. :param hierarchy_level: hierarchy level name
  34. :return:
  35. """
  36. return {
  37. 'reference': reference,
  38. 'name': name,
  39. 'parent': parent_reference,
  40. 'hierarchy_level': hierarchy_level
  41. }