From d279d735bab94c60f782c74c2c60e988ddd7f9cb Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 19 May 2022 11:26:59 -0500 Subject: [PATCH] Fix pocl version parsing for 3.0, do not fail hard if version string not understood --- pyopencl/characterize/__init__.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pyopencl/characterize/__init__.py b/pyopencl/characterize/__init__.py index 9bc90710..835cae09 100644 --- a/pyopencl/characterize/__init__.py +++ b/pyopencl/characterize/__init__.py @@ -22,6 +22,7 @@ THE SOFTWARE. import pyopencl as cl from pytools import memoize +from typing import Optional, Tuple class CLCharacterizationWarning(UserWarning): @@ -318,22 +319,23 @@ def get_simd_group_size(dev, type_size): return None -def get_pocl_version(platform, fallback_value=None): +def get_pocl_version( + platform: cl.Platform, + fallback_value: Optional[Tuple[int, int]] = None + ) -> Optional[Tuple[int, int]]: if platform.name != "Portable Computing Language": return None import re version = platform.version - ver_match = re.match(r"^OpenCL [0-9.]+ pocl ([0-9]+)\.([0-9]+)", version) + ver_match = re.match( + r"^OpenCL [0-9.]+ [Pp]o[Cc][Ll] ([0-9]+)\.([0-9]+)", version) if ver_match is None: msg = f"pocl version number did not have expected format: '{version}'" - if fallback_value is not None: - from warnings import warn - warn(msg) - return fallback_value - else: - raise ValueError(msg) + from warnings import warn + warn(msg) + return fallback_value else: return (int(ver_match.group(1)), int(ver_match.group(2))) -- GitLab