nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1diff --git a/Tensile/SolutionStructs.py b/Tensile/SolutionStructs.py
2index f663c6f1..17bcf897 100644
3--- a/Tensile/SolutionStructs.py
4+++ b/Tensile/SolutionStructs.py
5@@ -4828,24 +4828,26 @@ class Solution(collections.abc.Mapping):
6 # create a dictionary of lists of parameter values
7 @staticmethod
8 def getSerialNaming(objs):
9+ valid_params = sorted(validParameters.keys())
10 data = {}
11- for objIdx in range(0, len(objs)):
12- obj = objs[objIdx]
13- for paramName in sorted(obj.keys()):
14- if paramName in list(validParameters.keys()):
15- paramValue = obj[paramName]
16- if paramName in data:
17- if paramValue not in data[paramName]:
18- data[paramName].append(paramValue)
19- else:
20- data[paramName] = [ paramValue ]
21- maxObjs = 1
22- for paramName in data:
23- if not isinstance(data[paramName][0],dict):
24- data[paramName] = sorted(data[paramName])
25- maxObjs *= len(data[paramName])
26- numDigits = len(str(maxObjs))
27- return [ data, numDigits ]
28+
29+ objs = [getattr(obj, "_state", obj) for obj in objs]
30+
31+ for param in valid_params:
32+ d = []
33+ for obj in objs:
34+ if param in obj:
35+ v = obj[param]
36+ if v not in d:
37+ d.append(v)
38+ if len(d):
39+ if not isinstance(d[0], dict): d.sort()
40+ data[param] = d
41+
42+ # Calculate max objects using prod() from math module
43+ max_objs = math.prod(len(values) for values in data.values())
44+ num_digits = len(str(max_objs))
45+ return data, num_digits
46
47 ########################################
48 # Get Name Serial