From da8d7f1b24f96fc5348cd4796b2e98f8a11b90f7 Mon Sep 17 00:00:00 2001 From: David Ellis Date: Fri, 6 Jun 2025 12:15:46 +0100 Subject: [PATCH] Better 32bit install check This uses struct instead of sys.maxsize in order to correctly identify GraalPy as 64bit --- src/ducktools/pythonfinder/details_script.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ducktools/pythonfinder/details_script.py b/src/ducktools/pythonfinder/details_script.py index 3c9dafd..6304870 100644 --- a/src/ducktools/pythonfinder/details_script.py +++ b/src/ducktools/pythonfinder/details_script.py @@ -103,10 +103,18 @@ def get_details(): else: paths = sysconfig.get_paths() + # Use struct to correctly identify GraalPy as 64 bit + try: + import struct + except ImportError: + architecture = "64bit" if (sys.maxsize > 2**32) else "32bit" + else: + architecture = "32bit" if (struct.calcsize("P") == 4) else "64bit" + install = dict( version=list(sys.version_info), executable=sys.executable, - architecture="64bit" if (sys.maxsize > 2**32) else "32bit", + architecture=architecture, implementation=implementation, metadata=metadata, paths=paths,