moth_labels.py 781 B

1234567891011121314151617181920212223242526272829
  1. import json
  2. import typing as T
  3. from pycs import app
  4. from pycs.interfaces.LabelProvider import LabelProvider
  5. from pathlib import Path
  6. class FlatMothLabels(LabelProvider):
  7. def __init__(self, root_folder: str, configuration: dict):
  8. mapping_file = Path(root_folder, configuration["mapping"])
  9. with open(mapping_file) as f:
  10. self.mapping = json.load(f)
  11. def close(self):
  12. pass
  13. def get_labels(self) -> T.List[dict]:
  14. labels = []
  15. for key, entries in self.mapping.items():
  16. display_name = f"{entries['genus']} {entries['species']} ({entries['kr']})"
  17. app.logger.debug(key, display_name)
  18. label = self.create_label(key, display_name)
  19. labels.append(label)
  20. return labels