From 3a9d4020271d548418f606f37f399a55c5789950 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 17 Jun 2021 00:38:15 -0500 Subject: [PATCH] Add a flag to indicate whether an array context permits inplace modification --- arraycontext/context.py | 7 ++++++- arraycontext/impl/pyopencl.py | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arraycontext/context.py b/arraycontext/context.py index 838f969..495dcff 100644 --- a/arraycontext/context.py +++ b/arraycontext/context.py @@ -103,7 +103,7 @@ THE SOFTWARE. """ from typing import Sequence, Union -from abc import ABC, abstractmethod +from abc import ABC, abstractmethod, abstractproperty import numpy as np from pytools import memoize_method @@ -349,6 +349,11 @@ class ArrayContext(ABC): "setup-only" array context "leaks" into the application. """ + # undocumented for now + @abstractproperty + def permits_inplace_modification(self): + pass + # }}} # vim: foldmethod=marker diff --git a/arraycontext/impl/pyopencl.py b/arraycontext/impl/pyopencl.py index 9361030..6d8cf75 100644 --- a/arraycontext/impl/pyopencl.py +++ b/arraycontext/impl/pyopencl.py @@ -436,6 +436,9 @@ class PyOpenCLArrayContext(ArrayContext): def clone(self): return type(self)(self.queue, self.allocator, self._wait_event_queue_length) + def permits_inplace_modification(self): + return True + # }}} # vim: foldmethod=marker -- GitLab