provider.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import typing as T
  2. from pycs.interfaces.LabelProvider import LabelProvider as BaseProvider
  3. class LabelProvider(BaseProvider):
  4. def __init__(self, root_folder: str, configuration: dict):
  5. self.hierarchical = configuration["hierarchical"]
  6. def close(self):
  7. pass
  8. def get_labels(self) -> T.List[dict]:
  9. labels = []
  10. for i, _ in enumerate(range(10), 1):
  11. label = self.create_label(
  12. reference=f"label{i}",
  13. name=f"Label{i}",
  14. hierarchy_level="root"
  15. )
  16. labels.append(label)
  17. if not self.hierarchical:
  18. continue
  19. parent = label
  20. for j, _ in enumerate(range(3), 1):
  21. label = self.create_label(
  22. reference=f"label{i}_{j}",
  23. name=f"Label{i}_{j}",
  24. parent_reference=parent["reference"],
  25. hierarchy_level="intermediate",
  26. )
  27. labels.append(label)
  28. second_parent = label
  29. for k, _ in enumerate(range(3), 1):
  30. label = self.create_label(
  31. reference=f"label{i}_{j}_{k}",
  32. name=f"Label{i}_{j}_{k}",
  33. parent_reference=second_parent["reference"],
  34. hierarchy_level="leaf",
  35. )
  36. labels.append(label)
  37. return labels