moth_labels.py 840 B

123456789101112131415161718192021222324252627282930
  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. reference = entries["kr"]
  18. app.logger.debug(f"{reference} -> {display_name}")
  19. label = self.create_label(reference, display_name)
  20. labels.append(label)
  21. return labels