Skip to content

Commit 3dda1b4

Browse files
authored
Merge pull request #281 from lsst/tickets/DM-46145
DM-46145: Sort keys after deduplicating via set(...) to make order deterministic.
2 parents e25f21d + 91fa3ce commit 3dda1b4

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

python/lsst/analysis/tools/interfaces/_stages.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ class BasePrep(KeyedDataAction):
6262
def getInputSchema(self) -> KeyedDataSchema:
6363
yield from (
6464
(column, Vector | Scalar | HealSparseMap | Tensor)
65-
for column in set(self.keysToLoad).union(self.vectorKeys)
65+
for column in sorted(set(self.keysToLoad).union(self.vectorKeys))
6666
)
6767
for action in self.selectors:
6868
yield from action.getInputSchema()
6969

7070
def getOutputSchema(self) -> KeyedDataSchema:
7171
return (
7272
(column, Vector | Scalar | HealSparseMap | Tensor)
73-
for column in set(self.keysToLoad).union(self.vectorKeys)
73+
for column in sorted(set(self.keysToLoad).union(self.vectorKeys))
7474
)
7575

7676
def __call__(self, data: KeyedData, **kwargs) -> KeyedData:
@@ -82,7 +82,7 @@ def __call__(self, data: KeyedData, **kwargs) -> KeyedData:
8282
else:
8383
mask *= subMask # type: ignore
8484
result: dict[str, Any] = {}
85-
for key in set(self.keysToLoad).union(self.vectorKeys):
85+
for key in sorted(set(self.keysToLoad).union(self.vectorKeys)):
8686
formattedKey = key.format_map(kwargs)
8787
result[formattedKey] = cast(Vector, data[formattedKey])
8888
if mask is not None:
@@ -101,8 +101,8 @@ def addInputSchema(self, inputSchema: KeyedDataSchema) -> None:
101101
existing.append(name)
102102
if typ == Vector:
103103
existingVectors.append(name)
104-
self.keysToLoad = set(existing)
105-
self.vectorKeys = set(existingVectors)
104+
self.keysToLoad = sorted(set(existing))
105+
self.vectorKeys = sorted(set(existingVectors))
106106

107107

108108
class BaseProcess(KeyedDataAction):

0 commit comments

Comments
 (0)