From 67d3e70a669818ed9c1ab7a194f26cac0543ca6b Mon Sep 17 00:00:00 2001 From: robrobo Date: Mon, 16 Jun 2025 20:09:50 +0200 Subject: [PATCH] Added some ordering to checksums from FunctionType since these could depending on input fail to be deterministic --- src/mdevaluate/checksum.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mdevaluate/checksum.py b/src/mdevaluate/checksum.py index 8a234eb..f651987 100755 --- a/src/mdevaluate/checksum.py +++ b/src/mdevaluate/checksum.py @@ -73,7 +73,9 @@ def checksum(*args, csum=None): elif isinstance(arg, FunctionType): csum.update(strip_comments(inspect.getsource(arg)).encode()) c = inspect.getclosurevars(arg) - for v in {**c.nonlocals, **c.globals}.values(): + merged = {**c.nonlocals, **c.globals} + for key in sorted(merged): # deterministic ordering + v = merged[key] if v is not arg: checksum(v, csum=csum) elif isinstance(arg, functools.partial): -- 2.39.5