ChainMap

ChainMap(maps, *, uid=None)

Composition of multiple maps: f(g(h(x))).

The maps are applied in sequence from first to last. The output unit of one map must match the input unit of the next (if specified).

Attributes: maps: The sequence of maps to apply.

Examples: >>> # Ticks -> Seconds -> Milliseconds >>> ticks_to_secs = ScalarMap(scalar=1/480, source_unit=“ticks”, target_unit=“seconds”) >>> secs_to_ms = ScalarMap(scalar=1000, source_unit=“seconds”, target_unit=“milliseconds”) >>> chain = ChainMap([ticks_to_secs, secs_to_ms]) >>> chain(480) 1000.0

Attributes

Name Description
is_invertible Whether the chain is invertible (all sub-maps must be invertible).
maps The sequence of maps.

Methods

Name Description
from_dict Deserialize from dictionary.
inverse Return the inverse chain.
to_dict Serialize to dictionary.

from_dict

ChainMap.from_dict(data)

Deserialize from dictionary.

inverse

ChainMap.inverse()

Return the inverse chain.

This reverses the order of maps and inverts each one. (f(g(x)))^-1 = g-1(f-1(x))

to_dict

ChainMap.to_dict()

Serialize to dictionary.