structs.maps module

class structs.maps.Dict[source]

Bases: dict

Overriden dict type with iadd functionality which will allow you to append two dictionaries together. ie:

>>> d = Dict(a=1, b=2)
>>> d += {'c': 3, 'd': 4}
>>> d

... {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}

class structs.maps.BiDirectionalMap(iterable=None, **kwargs)[source]

Bases: structs.maps.Dict

a bidirectional map, or hash bag, is an associative data structure in which the (key, value) pairs form a one-to-one correspondence. Thus the binary relation is functional in each direction: value can also act as a key to key. A pair (a, b) thus provides a unique coupling between a and b so that b can be found when a is used as a key and a can be found when b is used as a key.

get(k, d=None)[source]

Return self[k] if k is in this bidirectionaldict, otherwise return d

Parameters:
  • k – A key to return from this bidirectionaldict
  • d – The default value to return if k is not in this bidirectionaldict
Returns:

The value mapped to by k or d if k is not in this bidirectionaldict

items()[source]

Return a 2-tuple of the (key, value) pairs in this BiDirectionalDict

keys()[source]

Return a generator of the keys in this BiDirectionalDict

values()[source]

Return a generator of the values in this BiDirectionalDict

class structs.maps.MultiMap[source]

Bases: structs.maps.Dict

A MultiMap is a generalization of a dict type in which more than one value may be associated with and returned for a given key

setdefault(k, d=None)[source]

If k is not contained in this MultiMap then store the value d in it.

Parameters:
  • k – The key to set the value for
  • d – The default value to assign to key k
Returns:

The value stored at key k

update(other=None, **kwargs)[source]

Update this MultiMap with either the

Parameters:
  • other – Another dict to merge into this MultiMap or an iterable of (key, value) 2-tuples
  • kwargs – Arbitrary keyword args to merge into this MultiMap