root/root-python-3.15.patch
2026-04-05 07:49:26 +02:00

38 lines
1.5 KiB
Diff

From 4171724228a849959542fcb0b0c1ec10d8e94999 Mon Sep 17 00:00:00 2001
From: Jonas Rembser <jonas.rembser@cern.ch>
Date: Fri, 3 Apr 2026 22:56:04 +0200
Subject: [PATCH] [Python] Set `__spec__` attribute and not `__cached__` for
ROOT facade
The Python documentation [1] says:
> It is strongly recommended that you use module.__spec__.cached instead
of module.__cached__.
So this commit suggests to transfer the full `__spec__` attribute from
the ROOT module to the facade, instead of `__cached__`.
This also avoids errors when importing ROOT with Python 3.15, where
`__cached__` will cease to be set or taken into consideration by the
import system or standard library.
Closes #21787.
[1] https://docs.python.org/3/reference/datamodel.html#module.__cached__
---
bindings/pyroot/pythonizations/python/ROOT/_facade.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bindings/pyroot/pythonizations/python/ROOT/_facade.py b/bindings/pyroot/pythonizations/python/ROOT/_facade.py
index c22ae40da4c2d..da8b6681ec2f2 100644
--- a/bindings/pyroot/pythonizations/python/ROOT/_facade.py
+++ b/bindings/pyroot/pythonizations/python/ROOT/_facade.py
@@ -142,7 +142,7 @@ def __init__(self, module, is_ipython):
self.__all__ = module.__all__
self.__name__ = module.__name__
self.__file__ = module.__file__
- self.__cached__ = module.__cached__
+ self.__spec__ = module.__spec__
self.__path__ = module.__path__
self.__doc__ = module.__doc__
self.__package__ = module.__package__