From e0e1a420cc64a4c6d32f8cc77606547b1161da08 Mon Sep 17 00:00:00 2001
From: Kaushik Kulkarni <kaushikcfd@gmail.com>
Date: Sun, 15 Aug 2021 18:07:10 -0500
Subject: [PATCH] Define ArrayContext.permits_advanced_indexing

---
 arraycontext/context.py                | 8 ++++++++
 arraycontext/impl/pyopencl/__init__.py | 4 ++++
 arraycontext/impl/pytato/__init__.py   | 4 ++++
 3 files changed, 16 insertions(+)

diff --git a/arraycontext/context.py b/arraycontext/context.py
index 31ceb40..379c8e9 100644
--- a/arraycontext/context.py
+++ b/arraycontext/context.py
@@ -361,6 +361,14 @@ class ArrayContext(ABC):
     def supports_nonscalar_broadcasting(self):
         pass
 
+    @abstractproperty
+    def permits_advanced_indexing(self):
+        """
+        *True* only if the arrays support :mod:`numpy`'s advanced indexing
+        semantics.
+        """
+        pass
+
 # }}}
 
 # vim: foldmethod=marker
diff --git a/arraycontext/impl/pyopencl/__init__.py b/arraycontext/impl/pyopencl/__init__.py
index cd9c02a..18836ef 100644
--- a/arraycontext/impl/pyopencl/__init__.py
+++ b/arraycontext/impl/pyopencl/__init__.py
@@ -282,6 +282,10 @@ class PyOpenCLArrayContext(ArrayContext):
     def supports_nonscalar_broadcasting(self):
         return False
 
+    @property
+    def permits_advanced_indexing(self):
+        return False
+
 # }}}
 
 # vim: foldmethod=marker
diff --git a/arraycontext/impl/pytato/__init__.py b/arraycontext/impl/pytato/__init__.py
index 0f5ad12..9631430 100644
--- a/arraycontext/impl/pytato/__init__.py
+++ b/arraycontext/impl/pytato/__init__.py
@@ -231,3 +231,7 @@ class PytatoPyOpenCLArrayContext(ArrayContext):
     @property
     def supports_nonscalar_broadcasting(self):
         return True
+
+    @property
+    def permits_advanced_indexing(self):
+        return True
-- 
GitLab