makepalettes.py 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import bokeh.palettes, os
  2. from strange_io.colors import StrangeColors
  3. from protolib import hex_to_rgb, get_app_root
  4. os.makedirs(os.path.join(get_app_root(), 'palettes', 'bokeh'), exist_ok=True)
  5. def dump(name: str, palette: list[str], directory: str = 'palettes'):
  6. try:
  7. rgb_palette = []
  8. for color in palette:
  9. rgb_palette.append(hex_to_rgb(color))
  10. scolors = StrangeColors(rgb_palette)
  11. scolors.dump_file(directory + '/' + name + '.scolors')
  12. except ValueError:
  13. print('Failed to dump palette \'%s\'' % name)
  14. def dump_dict(palettes, directory: str = 'palettes'):
  15. for k in palettes:
  16. v = palettes[k]
  17. if isinstance(v, list) or isinstance(v, tuple):
  18. dump(k, v, directory)
  19. elif isinstance(v, dict):
  20. for k2 in v:
  21. v2 = v[k2]
  22. dump('%s %s' % (k, k2), v2, directory)
  23. else:
  24. raise TypeError('Invalid type')
  25. dump_dict(bokeh.palettes.all_palettes, 'palettes/bokeh')
  26. dump('default', ['#000000', '#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF', '#FFFFFF'])