hpcflow.sdk.core.loop_cache.LoopIndex#
- class hpcflow.sdk.core.loop_cache.LoopIndex(map=None)#
Bases:
dict
[K
,V
],Generic
[K
,V
]Hashable dict implementation, suitable for use as a key into other dicts. Once used as a key, becomes immutable.
Example
>>> h1 = LoopIndex({"apples": 1, "bananas":2}) >>> h2 = LoopIndex({"bananas": 3, "mangoes": 5}) >>> h1+h2 LoopIndex(apples=1, bananas=3, mangoes=5) >>> d1 = {} >>> d1[h1] = "salad" >>> d1[h1] 'salad' >>> d1[h2] Traceback (most recent call last): ... KeyError: LoopIndex(bananas=3, mangoes=5)
Notes
Based on answers from http://stackoverflow.com/questions/1151658/python-hashable-dicts
Assumes both keys and values are hashable. True in practice.
Methods
Create a new dictionary with keys from iterable and values set to value.
Return the value for key if key is in the dictionary, else default.
If the key is not found, return the default if given; otherwise, raise a KeyError.
Remove and return a (key, value) pair as a 2-tuple.
Insert key with a value of default if key is not in the dictionary.
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]
- Parameters:
map (Mapping[K, V] | None) –
- clear() None. Remove all items from D. #
- Return type:
None
- copy() a shallow copy of D #
- fromkeys(value=None, /)#
Create a new dictionary with keys from iterable and values set to value.
- get(key, default=None, /)#
Return the value for key if key is in the dictionary, else default.
- items() a set-like object providing a view on D's items #
- keys() a set-like object providing a view on D's keys #
- 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.
- Return type:
V
- popitem()#
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.
- Return type:
tuple[~K, ~V]
- setdefault(key, default)#
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.
- Parameters:
key (K) –
default (V) –
- Return type:
V
- 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]
- Return type:
None
- values() an object providing a view on D's values #