6
0

LabelProvider.py 1.2 KB

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