From 95e5f733e798bd132cc271ef3622dc328405027d Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Sun, 8 Feb 2015 17:13:28 -0600
Subject: [PATCH] Move some pyopencl imports inside functions

---
 loopy/auto_test.py | 12 ++++++++++--
 loopy/compiled.py  |  6 +++---
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/loopy/auto_test.py b/loopy/auto_test.py
index f73183526..dc304780c 100644
--- a/loopy/auto_test.py
+++ b/loopy/auto_test.py
@@ -29,8 +29,6 @@ from pytools import Record
 
 import numpy as np
 
-import pyopencl as cl
-import pyopencl.array as cl_array
 import loopy as lp
 from loopy.diagnostic import LoopyError
 
@@ -66,6 +64,9 @@ class TestArgInfo(Record):
 # {{{ "reference" arguments
 
 def make_ref_args(kernel, impl_arg_info, queue, parameters, fill_value):
+    import pyopencl as cl
+    import pyopencl.array as cl_array
+
     from loopy.kernel.data import ValueArg, GlobalArg, ImageArg
 
     from pymbolic import evaluate
@@ -176,6 +177,9 @@ def make_ref_args(kernel, impl_arg_info, queue, parameters, fill_value):
 
 def make_args(kernel, impl_arg_info, queue, ref_arg_data, parameters,
         fill_value):
+    import pyopencl as cl
+    import pyopencl.array as cl_array
+
     from loopy.kernel.data import ValueArg, GlobalArg, ImageArg
 
     from pymbolic import evaluate
@@ -310,6 +314,8 @@ def _default_check_result(result, ref_result):
 # {{{ ref device finder
 
 def _enumerate_cl_devices_for_ref_test():
+    import pyopencl as cl
+
     noncpu_devs = []
     cpu_devs = []
 
@@ -359,6 +365,8 @@ def auto_test_vs_ref(
         message) indicating correctness/acceptability of the result
     """
 
+    import pyopencl as cl
+
     if len(ref_knl.args) != len(test_knl.args):
         raise LoopyError("ref_knl and test_knl do not have the same number "
                 "of arguments")
diff --git a/loopy/compiled.py b/loopy/compiled.py
index 7fb686e74..463e24921 100644
--- a/loopy/compiled.py
+++ b/loopy/compiled.py
@@ -27,8 +27,6 @@ THE SOFTWARE.
 """
 
 
-import pyopencl as cl
-import pyopencl.tools  # noqa
 import numpy as np
 from pytools import Record, memoize_method
 from loopy.diagnostic import ParameterFinderWarning
@@ -126,11 +124,12 @@ class SeparateArrayPackingController(object):
 
 
 def python_dtype_str(dtype):
+    import pyopencl.tools as cl_tools
     if dtype.isbuiltin:
         return "_lpy_np."+dtype.name
     else:
         return ("_lpy_cl_tools.get_or_register_dtype(\"%s\")"
-                % cl.tools.dtype_to_ctype(dtype))
+                % cl_tools.dtype_to_ctype(dtype))
 
 
 # {{{ integer arg finding from shapes
@@ -714,6 +713,7 @@ class CompiledKernel:
             from pytools import invoke_editor
             code = invoke_editor(code, "code.cl")
 
+        import pyopencl as cl
         cl_program = cl.Program(self.context, code)
         cl_kernel = getattr(
                 cl_program.build(options=kernel.options.cl_build_options),
-- 
GitLab