translation_candidates.py 900 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/python3
  2. """Build a list of candidates for translation
  3. This script was created to prioritise common entities for translation.
  4. """
  5. import sys
  6. from custom_components.tuya_local.helpers.device_config import (
  7. TuyaDeviceConfig,
  8. available_configs,
  9. )
  10. def main() -> int:
  11. candidates: dict[str, int] = {}
  12. for config in available_configs():
  13. device = TuyaDeviceConfig(config)
  14. for entity in device.all_entities():
  15. if entity.name:
  16. if entity.config_id in candidates:
  17. candidates[entity.config_id] += 1
  18. else:
  19. candidates[entity.config_id] = 1
  20. sorted_candidates = sorted(
  21. candidates.items(), key=lambda item: item[1], reverse=True
  22. )
  23. for candidate, count in sorted_candidates:
  24. print(f"{candidate}: {count}")
  25. if __name__ == "__main__":
  26. sys.exit(main())