From 8a9a7e3f9445123573fd39fc9cfe0e1b8e739baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20Nem=C4=8Dek?= Date: Mon, 18 Mar 2024 18:19:58 +0100 Subject: [PATCH] Deterministic set order in LOAD_CONST. --- uncompyle6/semantics/n_actions.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/uncompyle6/semantics/n_actions.py b/uncompyle6/semantics/n_actions.py index ab4c27134..467f7e569 100644 --- a/uncompyle6/semantics/n_actions.py +++ b/uncompyle6/semantics/n_actions.py @@ -1241,6 +1241,13 @@ def n_LOAD_CONST(self, node): self.write("None") elif isinstance(data, tuple): self.pp_tuple(data) + elif isinstance(data, set): + # Deterministic set order. + self.write("{") + map_str_repr_to_data = {repr(x): x for x in data} + order = [map_str_repr_to_data[x] for x in sorted(map_str_repr_to_data)] + self.write(", ".join(repr(x) for x in order)) + self.write("}") elif isinstance(attr, bool): self.write(repr(attr)) elif self.FUTURE_UNICODE_LITERALS: