From a2413cc0e7cabd6ec16d2e5aa68cf5ef9639af6d Mon Sep 17 00:00:00 2001
From: Daniel Brown <ddb@star.sr.bham.ac.uk>
Date: Fri, 27 Jun 2014 16:36:09 +0100
Subject: [PATCH] fixing issue where kat class changes were being made globally
 instead of to the cloned class

---
 pykat/finesse.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/pykat/finesse.py b/pykat/finesse.py
index 9d340d3..d9d7b4e 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -356,6 +356,9 @@ Constant = namedtuple('Constant', 'name, value, usedBy')
 class kat(object):  
         
     def __init__(self, kat_file=None, kat_code=None, katdir="", katname="", tempdir=None, tempname=None):
+
+        cls = type(self)
+        self.__class__ = type(cls.__name__, (cls,), {})
         
         self.scene = None # scene object for GUI
         self.verbose = True
@@ -401,9 +404,6 @@ class kat(object):
         
         if kat_file != None:
             self.loadKatFile(kat_file)
-        
-        cls = type(self)
-        self.__class__ = type(cls.__name__, (cls,), {})
 
     @property
     def signals(self): return self.__signals
@@ -687,7 +687,7 @@ class kat(object):
                 if obj != None and not isinstance(obj, str):
                     if self.hasNamedObject(obj.name):
                         getattr(self, obj.name).remove()
-                        print "Removed existing object '{0}' of type {1} to add new object".format(obj.name, obj.__class__)
+                        print "Removed existing object '{0}' of type {1} to add line '{2}'".format(obj.name, obj.__class__, line)
                         
                     self.add(obj)
                     
@@ -1021,8 +1021,8 @@ class kat(object):
     
         del nodes
         
-        import gc
-        print gc.get_referrers(obj)
+        #import gc
+        #print gc.get_referrers(obj)
     
     def getMatrices(self):
         
@@ -1404,6 +1404,9 @@ class kat(object):
             raise exceptions.ValueError("Argument is not of type Command")
         
         name = com.__class__.__name__
+        
+        print getattr(self.__class__, name)
+        
         delattr(self.__class__, name)
         delattr(self, '__com_' + name)
         
-- 
GitLab