optiwindnet.utilsΒΆ

Module ContentsΒΆ

class optiwindnet.utils.BiMap(fwd: collections.abc.Mapping[KT, VT] | None = None)[source]ΒΆ

Bases: dict[KT, VT]

One-to-one mapping that keeps its inverse in the plain dict inv.

Lookups on both directions are those of dict. Writes go through the forward mapping, which keeps inv in sync; inv must be treated as read-only, since writing to it desynchronizes the two directions.

Parameters:

fwd – initial mapping; its values must be unique.

Raises:

ValueError – if a value would be mapped from two different keys.

Initialize self. See help(type(self)) for accurate signature.

__slots__ = ('inv',)[source]ΒΆ
inv: dict[VT, KT][source]ΒΆ
__setitem__(key: KT, val: VT) → None[source]ΒΆ

Set self[key] to value.

__delitem__(key: KT) → None[source]ΒΆ

Delete self[key].

pop(key: KT, default: Any = _MISSING) → Any[source]ΒΆ

D.pop(k[,d]) -> v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem() → tuple[KT, VT][source]ΒΆ

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key: KT, default: Any = None) → Any[source]ΒΆ

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update(other: collections.abc.Mapping[KT, VT], /) → None[source]ΒΆ

D.update([E, ]**F) -> None. Update D from mapping/iterable E and F. If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

__ior__(other: Any) → BiMap[KT, VT][source]ΒΆ

Return self|=value.

clear() → None[source]ΒΆ

D.clear() -> None. Remove all items from D.

copy() → BiMap[KT, VT][source]ΒΆ

D.copy() -> a shallow copy of D

__reduce__() → tuple[Any, ...][source]ΒΆ

Helper for pickle.