colour.utilities.LazyCanonicalMapping#

class colour.utilities.LazyCanonicalMapping(data: Optional[Union[Generator, Mapping]] = None, **kwargs: Any)[source]#

Bases: CanonicalMapping

Implement a lazy delimiter and case-insensitive dict-like object inheriting from colour.utilities.CanonicalMapping class.

The lazy retrieval is performed as follows: If the value is a callable, then it is evaluated and its return value is stored in place of the current value.

Parameters:
  • data (Optional[Union[Generator, Mapping]]) – Data to store into the lazy delimiter and case-insensitive dict-like object at initialisation.

  • kwargs (Any) – Key / value pairs to store into the mapping at initialisation.

Methods

Examples

>>> def callable_a():
...     print(2)
...     return 2
...
>>> methods = LazyCanonicalMapping({"McCamy": 1, "Hernandez": callable_a})
>>> methods["mccamy"]
1
>>> methods["hernandez"]
2
2
__getitem__(item: Union[str, Any]) Any[source]#

Return the value of given item from the lazy delimiter and case-insensitive dict-like object.

Parameters:

item (Union[str, Any]) – Item to retrieve the value of from the lazy delimiter and case-insensitive dict-like object.

Returns:

Item value.

Return type:

object