def _XYZ_optimal_colour_stimuli(illuminant): """ Returns given illuminant *Optimal Colour Stimuli* in *CIE XYZ* tristimulus values and caches it if not existing. Parameters ---------- illuminant : unicode Illuminant. Returns ------- tuple Illuminant *Optimal Colour Stimuli*. """ optimal_colour_stimuli = ILLUMINANTS_OPTIMAL_COLOUR_STIMULI.get(illuminant) if optimal_colour_stimuli is None: raise KeyError('"{0}" not found in factory ' '"Optimal Colour Stimuli": "{1}".'.format( illuminant, sorted(ILLUMINANTS_OPTIMAL_COLOUR_STIMULI.keys()))) cached_ocs = _XYZ_OPTIMAL_COLOUR_STIMULI_CACHE.get(illuminant) if cached_ocs is None: _XYZ_OPTIMAL_COLOUR_STIMULI_CACHE[illuminant] = cached_ocs = ( xyY_to_XYZ(optimal_colour_stimuli) / 100) return cached_ocs
def _XYZ_optimal_colour_stimuli(illuminant): """ Returns given illuminant optimal colour stimuli in *CIE XYZ* tristimulus values and caches it if not existing. Parameters ---------- illuminant : unicode Illuminant. Returns ------- tuple Illuminant optimal colour stimuli. """ optimal_colour_stimuli = ILLUMINANTS_OPTIMAL_COLOUR_STIMULI.get(illuminant) if optimal_colour_stimuli is None: raise KeyError( '"{0}" not found in factory optimal colour stimuli: "{1}".'.format( illuminant, sorted(ILLUMINANTS_OPTIMAL_COLOUR_STIMULI.keys()))) cached_ocs = _XYZ_OPTIMAL_COLOUR_STIMULI_CACHE.get(illuminant) if cached_ocs is None: _XYZ_OPTIMAL_COLOUR_STIMULI_CACHE[illuminant] = cached_ocs = ( xyY_to_XYZ(optimal_colour_stimuli) / 100) return cached_ocs