From 762d920606c88bc97fbc8a99c4ca5afcf52d5043 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Tue, 20 Sep 2022 15:34:32 +0300 Subject: [PATCH] make pytato a soft dependency again --- arraycontext/impl/pytato/__init__.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/arraycontext/impl/pytato/__init__.py b/arraycontext/impl/pytato/__init__.py index ec13738a..92db6ff0 100644 --- a/arraycontext/impl/pytato/__init__.py +++ b/arraycontext/impl/pytato/__init__.py @@ -219,18 +219,20 @@ def get_target(self): # {{{ PytatoPyOpenCLArrayContext -from pytato.target.loopy import LoopyPyOpenCLTarget - - -class _ArgSizeLimitingPytatoLoopyPyOpenCLTarget(LoopyPyOpenCLTarget): - def __init__(self, limit_arg_size_nbytes: int) -> None: - super().__init__() - self.limit_arg_size_nbytes = limit_arg_size_nbytes - - @memoize_method - def get_loopy_target(self) -> Optional["lp.PyOpenCLTarget"]: - from loopy import PyOpenCLTarget - return PyOpenCLTarget(limit_arg_size_nbytes=self.limit_arg_size_nbytes) +try: + from pytato.target.loopy import LoopyPyOpenCLTarget + + class _ArgSizeLimitingPytatoLoopyPyOpenCLTarget(LoopyPyOpenCLTarget): + def __init__(self, limit_arg_size_nbytes: int) -> None: + super().__init__() + self.limit_arg_size_nbytes = limit_arg_size_nbytes + + @memoize_method + def get_loopy_target(self) -> Optional["lp.PyOpenCLTarget"]: + from loopy import PyOpenCLTarget + return PyOpenCLTarget(limit_arg_size_nbytes=self.limit_arg_size_nbytes) +except ImportError: + pass class PytatoPyOpenCLArrayContext(_BasePytatoArrayContext):