From 2eb6c64a8aaadd36f0ad920feb1cd712e7fc8b90 Mon Sep 17 00:00:00 2001
From: Kaushik Kulkarni <kaushikcfd@gmail.com>
Date: Tue, 29 Jun 2021 09:11:58 -0500
Subject: [PATCH] don't stringify PyOpenCLArrayContext, rather let the
 sub-classes implement it

---
 arraycontext/pytest.py | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/arraycontext/pytest.py b/arraycontext/pytest.py
index 33783e6..e93a8b3 100644
--- a/arraycontext/pytest.py
+++ b/arraycontext/pytest.py
@@ -69,13 +69,6 @@ class PytestPyOpenCLArrayContextFactory:
     def __call__(self) -> ArrayContext:
         raise NotImplementedError
 
-    def __str__(self):
-        return ("<%s for <pyopencl.Device '%s' on '%s'>" %
-                (
-                    self.actx_class.__name__,
-                    self.device.name.strip(),
-                    self.device.platform.name.strip()))
-
 
 class _PytestPyOpenCLArrayContextFactoryWithClass(PytestPyOpenCLArrayContextFactory):
     force_device_scalars = True
@@ -96,6 +89,13 @@ class _PytestPyOpenCLArrayContextFactoryWithClass(PytestPyOpenCLArrayContextFact
                 queue,
                 force_device_scalars=self.force_device_scalars)
 
+    def __str__(self):
+        return ("<%s for <pyopencl.Device '%s' on '%s'>>" %
+                (
+                    self.actx_class.__name__,
+                    self.device.name.strip(),
+                    self.device.platform.name.strip()))
+
 
 class _PytestPyOpenCLArrayContextFactoryWithClassAndHostScalars(
         _PytestPyOpenCLArrayContextFactoryWithClass):
@@ -117,8 +117,13 @@ class _PytestPytatoPyOpenCLArrayContextFactory(
         # On some implementations (notably Intel CPU), holding a reference
         # to a queue does not keep the context alive.
         ctx, queue = self.get_command_queue()
-        return self.actx_class(
-                queue)
+        return self.actx_class(queue)
+
+    def __str__(self):
+        return ("<PytatoPyOpenCLArrayContext for <pyopencl.Device '%s' on '%s'>>" %
+                (
+                    self.device.name.strip(),
+                    self.device.platform.name.strip()))
 
 
 _ARRAY_CONTEXT_FACTORY_REGISTRY: \
-- 
GitLab