From af17f41d036d85876baebb99d970bb9d033d4862 Mon Sep 17 00:00:00 2001 From: Jonas Rembser Date: Sat, 6 Dec 2025 17:39:40 +0100 Subject: [PATCH] [cppyy] Remove code related to finding CPyCppyy API header path This is not needed for ROOT, because the CPyCppyy API headers are installed with the other ROOT headers anyway, and ROOT knows where to find them already. --- .../cppyy/cppyy/python/cppyy/__init__.py | 82 ------------------- 1 file changed, 82 deletions(-) diff --git a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py index 68e3c49e5fe84..c8dd458bfdd70 100644 --- a/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py +++ b/bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py @@ -297,88 +297,6 @@ def add_library_path(path): if os.path.exists(apipath) and os.path.exists(os.path.join(apipath, 'Python.h')): add_include_path(apipath) -# add access to extra headers for dispatcher (CPyCppyy only (?)) -if not ispypy: - try: - apipath_extra = os.environ['CPPYY_API_PATH'] - if os.path.basename(apipath_extra) == 'CPyCppyy': - apipath_extra = os.path.dirname(apipath_extra) - except KeyError: - apipath_extra = None - - if apipath_extra is None: - try: - if 0x30a0000 <= sys.hexversion: - import importlib.metadata as m - - for p in m.files('CPyCppyy'): - if p.match('API.h'): - ape = p.locate() - break - del p, m - else: - import pkg_resources as pr - - d = pr.get_distribution('CPyCppyy') - for line in d.get_metadata_lines('RECORD'): - if 'API.h' in line: - ape = os.path.join(d.location, line[0:line.find(',')]) - break - del line, d, pr - - if os.path.exists(ape): - apipath_extra = os.path.dirname(os.path.dirname(ape)) - del ape - except Exception: - pass - - if apipath_extra is None: - ldversion = sysconfig.get_config_var('LDVERSION') - if not ldversion: - ldversion = sys.version[:3] - - apipath_extra = os.path.join(os.path.dirname(apipath), 'site', 'python'+ldversion) - if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')): - import glob - import platform - - if platform.system() == "Windows": - # Install locations are handled differently on Windows - import libcppyy - - ape = os.path.dirname(libcppyy.__file__) - else: - import cppyy.libcppyy as libcppyy - - ape = os.path.dirname(libcppyy.__file__) - # a "normal" structure finds the include directory up to 3 levels up, - # ie. dropping lib/pythonx.y[md]/site-packages - for i in range(3): - if os.path.exists(os.path.join(ape, 'include')): - break - ape = os.path.dirname(ape) - - ape = os.path.join(ape, 'include') - if os.path.exists(os.path.join(ape, 'CPyCppyy')): - apipath_extra = ape - else: - # add back pythonx.y or site/pythonx.y if present - for p in glob.glob(os.path.join(ape, 'python'+sys.version[:3]+'*'))+\ - glob.glob(os.path.join(ape, '*', 'python'+sys.version[:3]+'*')): - if os.path.exists(os.path.join(p, 'CPyCppyy')): - apipath_extra = p - break - - if apipath_extra.lower() != 'none': - if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')): - warnings.warn("CPyCppyy API not found (tried: %s); " - "set CPPYY_API_PATH envar to the 'CPyCppyy' API directory to fix" - % apipath_extra) - else: - add_include_path(apipath_extra) - - del apipath_extra - if os.getenv('CONDA_PREFIX'): # MacOS, Linux include_path = os.path.join(os.getenv('CONDA_PREFIX'), 'include')