@@ -697,28 +697,19 @@ def register_colors(*args, user=None, default=False, space=None, margin=None, **
697697
698698 # Load colors from file and get their HCL values
699699 # NOTE: Colors that come *later* overwrite colors that come earlier.
700+ srcs = {'opencolor' : pcolors .COLORS_OPEN , 'xkcd' : pcolors .COLORS_XKCD }
700701 for i , path in _iter_data_objects ('colors' , * paths , user = user , default = default ):
701- # Read colors
702- loaded = pcolors ._load_colors (path , ignore_base = (i == 0 ), warn_on_failure = True )
703-
704- # Add user colors
705- cat , _ = os .path .splitext (os .path .basename (path ))
706- if i != 0 :
707- pcolors ._color_database .update (loaded )
708-
709- # Add open-color colors
710- elif cat == 'opencolor' :
711- pcolors ._color_database .update (loaded )
712- pcolors .COLORS_OPEN .update (loaded )
713-
714- # Add xkcd colors after filtering
715- elif cat == 'xkcd' :
716- loaded = pcolors ._standardize_colors (loaded , space , margin )
717- pcolors ._color_database .update (loaded )
718- pcolors .COLORS_XKCD .update (loaded )
719-
720- else :
721- raise RuntimeError (f'Unknown proplot color database { path !r} .' )
702+ loaded = pcolors ._load_colors (path , warn_on_failure = True )
703+ if i == 0 :
704+ cat , _ = os .path .splitext (os .path .basename (path ))
705+ if cat not in srcs :
706+ raise RuntimeError (f'Unknown proplot color database { path !r} .' )
707+ src = srcs [cat ]
708+ if cat == 'xkcd' :
709+ loaded = pcolors ._standardize_colors (loaded , space , margin )
710+ loaded = {k : c for k , c in loaded .items () if k not in pcolors .COLORS_BASE }
711+ src .update (loaded ) # needed for demos.show_colors()
712+ pcolors ._color_database .update (loaded )
722713
723714
724715@docstring ._snippet_manager
0 commit comments