collections#
Helpers for various collections.
Module Contents#
Functions#
|
Make a hash from a dictionary, list, tuple or set to any level. |
|
Copy a dictionary excluding a specific list of keys. |
|
Generate a list of the first dictionaries encountered that contain a certain key. |
|
Generate a list with all port-clock combinations found in a nested dictionary. |
|
Find the path to a port-clock combination in a nested dictionary. |
- make_hash(obj: Any) int [source]#
Make a hash from a dictionary, list, tuple or set to any level.
From: https://stackoverflow.com/questions/5884066/hashing-a-dictionary
- Parameters:
obj – Input collection.
- Returns:
Hash.
- without(dict_in: dict, keys: list) dict [source]#
Copy a dictionary excluding a specific list of keys.
- Parameters:
dict_in – Input dictionary.
keys – List of keys to exclude.
- Returns:
Filtered dictionary.
- find_inner_dicts_containing_key(d: dict, key: Any) List[dict] [source]#
Generate a list of the first dictionaries encountered that contain a certain key.
This is achieved by recursively traversing the nested structures until the key is found, which is then appended to a list.
- Parameters:
d – The dictionary to traverse.
key – The key to search for.
- Returns:
A list containing all the inner dictionaries containing the specified key.
- find_all_port_clock_combinations(d: dict) List[Tuple[str, str]] [source]#
Generate a list with all port-clock combinations found in a nested dictionary.
Traversing the dictionary is done using the
find_inner_dicts_containing_key
function.- Parameters:
d – The dictionary to traverse.
- Returns:
A list containing tuples representing the port and clock combinations found in the dictionary.
- find_port_clock_path(hardware_config: dict, port: str, clock: str) list | None [source]#
Find the path to a port-clock combination in a nested dictionary.
- Parameters:
hardware_config – The (nested) hardware config dictionary to loop over.
port – The port to find.
clock – The clock to find.
- Returns:
A list representing the keys to the port-clock combination in the hardware config. If the port-clock location is in a list, the list index is also included in this path.