-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconvolute.py
More file actions
71 lines (46 loc) · 1.99 KB
/
Copy pathconvolute.py
File metadata and controls
71 lines (46 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# The name of this module is "convolute" because "filter" is a Python keyword
# and most of us are EEs anyway.
import logging_setup
logger = logging_setup.setup_logging()
def get_pid4_list(soc, pid4_map):
logger.debug(f"Getting PID4 list for SOC: {soc}")
soc_data = pid4_map.get(soc, {})
pid4s = soc_data.get("pid4", [])
logger.debug(f"Found PID4s: {pid4s}")
pid4_list = [
pid.get("id", pid) if isinstance(pid, dict) else pid for pid in pid4s
]
logger.debug(f"PID4 list: {pid4_list}")
return pid4_list
def get_pid4_list_from_architecture(
soc_architecture, pid4_map, use_common_devices: bool
):
logger.debug(f"Getting PID4 list for architecture: {soc_architecture}")
matching_pid4s = []
for soc_name, soc_data in pid4_map.items():
for pid4_entry in soc_data.get("pid4", []):
if (
pid4_entry.get("architecture") == soc_architecture
and pid4_entry.get("common_device") == use_common_devices
):
matching_pid4s.append(pid4_entry.get("id"))
logger.debug(f"Matching PID4 list: {matching_pid4s}")
return matching_pid4s
def get_pid4_list_with_device_config(device_config, pid4_map):
logger.debug("Getting PID4 list with device config")
soc_udt, soc_properties = device_config
pid4_data = pid4_map.get(soc_udt, {}).get("pid4", [])
logger.debug(f"PID4 data: {pid4_data}")
pid4_list = []
for pid4 in pid4_data:
if all(prop in pid4 for prop in soc_properties):
pid4_list.append(pid4["id"])
logger.debug(f"Filtered PID4 list: {pid4_list}")
return pid4_list
def get_device_config_data(device_config):
logger.debug("Getting device config data")
logger.debug(f"Device config: {device_config}")
soc_udt = device_config["soc_udt"]["soc_udt_name"]
soc_properties = device_config["soc_udt"]["soc_properties"]
logger.debug(f"SOC UDT: {soc_udt}, SOC Properties: {soc_properties}")
return (soc_udt, soc_properties)