diff --git a/pyopencl/characterize/__init__.py b/pyopencl/characterize/__init__.py index 9bc90710d01d0b6d679bcf6943bd682652ffba39..835cae09623e2cb12b912279373706e8455fd3ca 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)))