From b5180ea6ac73be93a9f869dda1fc444532d6e77e Mon Sep 17 00:00:00 2001 From: Gabriele Puppis Date: Thu, 26 Oct 2023 15:20:00 +0200 Subject: [PATCH] Fix to issue with side-effects on referenced arguments --- rcviz/node_data.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rcviz/node_data.py b/rcviz/node_data.py index 9c0ec2c..7ba6dc2 100644 --- a/rcviz/node_data.py +++ b/rcviz/node_data.py @@ -1,12 +1,14 @@ from typing import List, Tuple +from copy import deepcopy + class node_data(object): def __init__(self, _args=None, _kwargs=None, _fnname="", _ret=None, _childmethods=[]): - self.args = _args - self.kwargs = _kwargs + self.args = deepcopy(_args) + self.kwargs = deepcopy(_kwargs) self.fn_name = _fnname - self.ret = _ret + self.ret = deepcopy(_ret) self.child_methods: List[Tuple[str, int]] = _childmethods # [ (method, gcounter) ] self.auxdata = {} # user assigned track data @@ -23,4 +25,3 @@ def argstr(self): for (k, v) in self.kwargs.items()]) return "%s%s" % (s_args, s_kwargs) -