LabelProvider.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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, parent_reference=None):
  27. """
  28. create a label result
  29. :param reference: label reference string
  30. :param name: label name
  31. :param parent_reference: parent's reference string
  32. :return:
  33. """
  34. return {
  35. 'reference': reference,
  36. 'name': name,
  37. 'parent': parent_reference
  38. }