From 6af6b93f08cac4ca950e5c256555127feb6f18e7 Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Fri, 3 Jan 2020 12:14:53 +0100
Subject: [PATCH] Add InterpolatorAccess.__getnewargs__

---
 pystencils/interpolation_astnodes.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/pystencils/interpolation_astnodes.py b/pystencils/interpolation_astnodes.py
index 62d291b08..e14222b12 100644
--- a/pystencils/interpolation_astnodes.py
+++ b/pystencils/interpolation_astnodes.py
@@ -142,8 +142,8 @@ class NearestNeightborInterpolator(Interpolator):
 
 
 class InterpolatorAccess(TypedSymbol):
-    def __new__(cls, field, offsets, *args, **kwargs):
-        obj = TextureAccess.__xnew_cached_(cls, field, offsets, *args, **kwargs)
+    def __new__(cls, field, *offsets, **kwargs):
+        obj = TextureAccess.__xnew_cached_(cls, field, *offsets, **kwargs)
         return obj
 
     def __new_stage2__(self, symbol, *offsets):
@@ -287,6 +287,9 @@ class InterpolatorAccess(TypedSymbol):
     # noinspection SpellCheckingInspection
     __xnew_cached_ = staticmethod(cacheit(__new_stage2__))
 
+    def __getnewargs__(self):
+        return tuple(self.symbol, *self.offsets)
+
 ##########################################################################################
 # GPU-specific fast specializations (for precision GPUs can also use above nodes/symbols #
 ##########################################################################################
@@ -362,8 +365,8 @@ class TextureCachedField:
 
 
 class TextureAccess(InterpolatorAccess):
-    def __new__(cls, texture_symbol, offsets, *args, **kwargs):
-        obj = TextureAccess.__xnew_cached_(cls, texture_symbol, offsets, *args, **kwargs)
+    def __new__(cls, texture_symbol, *offsets, **kwargs):
+        obj = TextureAccess.__xnew_cached_(cls, texture_symbol, *offsets, **kwargs)
         return obj
 
     def __new_stage2__(self, symbol, *offsets):
-- 
GitLab