From 897c2f39c4f899c2432e17f3421fa872f72e79c2 Mon Sep 17 00:00:00 2001
From: Andreas Freise <adf@star.bham.ac.uk>
Date: Fri, 10 Apr 2015 10:52:13 +0100
Subject: [PATCH] starting cnversion to pykat2 and 3 compatibility

---
 pykat/SIfloat.py      |  5 +++++
 pykat/colours.py      |  6 +++++-
 pykat/commands.py     |  8 ++++++--
 pykat/components.py   |  3 +++
 pykat/detectors.py    | 18 +++++++++++++-----
 pykat/exceptions.py   |  4 ++++
 pykat/finesse.py      | 22 +++++++++++++++-------
 pykat/node_network.py |  4 ++++
 pykat/param.py        |  4 ++++
 pykat/plotting.py     |  6 +++++-
 pykat/profiling.py    |  7 ++++++-
 pykat/structs.py      |  6 +++++-
 12 files changed, 75 insertions(+), 18 deletions(-)

diff --git a/pykat/SIfloat.py b/pykat/SIfloat.py
index cac016f..aa65c9e 100644
--- a/pykat/SIfloat.py
+++ b/pykat/SIfloat.py
@@ -1,3 +1,8 @@
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
+
 import os
 import re
 import pykat.exceptions as pkex
diff --git a/pykat/colours.py b/pykat/colours.py
index cc65b2f..94291cd 100644
--- a/pykat/colours.py
+++ b/pykat/colours.py
@@ -4,6 +4,10 @@ Created on Mon Jan 28 10:43:18 2013
 
 @author: Daniel
 """
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
 
 class colours:
     HEADER = '\033[95m'
@@ -19,4 +23,4 @@ class colours:
         self.OKGREEN = ''
         self.WARNING = ''
         self.FAIL = ''
-        self.ENDC = ''
\ No newline at end of file
+        self.ENDC = ''
diff --git a/pykat/commands.py b/pykat/commands.py
index 1ecce9a..06988f3 100644
--- a/pykat/commands.py
+++ b/pykat/commands.py
@@ -4,14 +4,18 @@ Created on Mon Jan 28 11:58:09 2013
 
 @author: Daniel
 """
+from __future__ import absolute_import
+from __future__ import division
 from __future__ import print_function
+from __future__ import unicode_literals
+
 import numpy
 from numpy import min,max
 import pykat.external.six as six
 if six.PY2:
 	import exceptions
-from components import *
-from structs import *
+from pykat.components import *
+from pykat.structs import *
 from pykat.param import Param, putter
 import pykat.exceptions as pkex
 from collections import namedtuple
diff --git a/pykat/components.py b/pykat/components.py
index 23f2818..42d63af 100644
--- a/pykat/components.py
+++ b/pykat/components.py
@@ -4,7 +4,10 @@ Created on Mon Jan 28 11:10:01 2013
 
 @author: Daniel
 """
+from __future__ import absolute_import
+from __future__ import division
 from __future__ import print_function
+from __future__ import unicode_literals
 
 from pykat import USE_GUI, HAS_OPTIVIS, NoGUIException
 
diff --git a/pykat/detectors.py b/pykat/detectors.py
index a79b7aa..98c596a 100644
--- a/pykat/detectors.py
+++ b/pykat/detectors.py
@@ -4,7 +4,11 @@ Created on Fri Feb 01 0split()9:09:10 2013
 
 @author: Daniel
 """
+from __future__ import absolute_import
+from __future__ import division
 from __future__ import print_function
+from __future__ import unicode_literals
+
 import pykat.external.six as six
 if six.PY2:
 	import exceptions
@@ -13,8 +17,10 @@ from pykat.node_network import *
 from pykat.param import Param, AttrParam
 from pykat.SIfloat import SIfloat
 
-import collections
+import pykat.external.six as six
 import pykat.exceptions as pkex
+
+import collections
 import warnings
 import copy
 
@@ -63,7 +69,7 @@ class BaseDetector(object) :
                         self._alternate_beam.append(False)
                         
                     self._requested_nodes.append(n)
-            elif isinstance(nodes, str):
+            elif isinstance(nodes, six.string_types):
                 # if we don't have a collection
                 if nodes[-1]=='*':
                     self._alternate_beam.append(True)
@@ -151,7 +157,7 @@ class BaseDetector(object) :
     
     def _getScaleCmds(self, rtn):
         if self.scale != None:
-            if isinstance(self.scale, str):
+            if isinstance(self.scale, six.string_types):
                 rtn.append("scale {1} {0}".format(self.name, self.scale))
             elif isinstance(self.scale, (list, tuple)):
                 for s in self.scale:
@@ -383,9 +389,11 @@ class pd(Detector1):
         
         fs = [self.__f1, self.__f2, self.__f3, self.__f4, self.__f5]
         ps = [self.__phi1, self.__phi2, self.__phi3, self.__phi4, self.__phi5]
-        
+
+        print("-------------------------------------------------------")
         for i in range(num_demods):
             f = 'f{0}'.format(i+1)
+            print("i {0} fs {1} f {2} keys {3}".format(i,len(fs),f, kwargs.keys()))
             
             if f in kwargs:
                 fs[i].value = kwargs[f]
@@ -462,7 +470,7 @@ class pd(Detector1):
             # check if we are setting no phase that this is only on the last
             # demodulation phase.
             raise pkex.BasePyKatException("Only last demodulation phase can be set to None")
-        elif isinstance(value, str) and not isinstance(value,float) and value.lower() != "max":
+        elif isinstance(value, six.string_types) and not isinstance(value,float) and value.lower() != "max":
             raise pkex.BasePyKatException("Demodulation phase can only be set to a 'max' or a number (or None if the last demodulation phase)")
             
         setattr(self, '_'+ self.__class__.__name__ +'__phi' + num, value)
diff --git a/pykat/exceptions.py b/pykat/exceptions.py
index e3d9042..1382809 100644
--- a/pykat/exceptions.py
+++ b/pykat/exceptions.py
@@ -1,4 +1,8 @@
+from __future__ import absolute_import
+from __future__ import division
 from __future__ import print_function
+from __future__ import unicode_literals
+
 import pykat.external.six as six
 if six.PY2:
 	import exceptions
diff --git a/pykat/finesse.py b/pykat/finesse.py
index 572763d..e0063a8 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -23,7 +23,11 @@ Contact at ddb@star.sr.bham.ac.uk
 
 @author: Daniel Brown
 """
+from __future__ import absolute_import
+from __future__ import division
 from __future__ import print_function
+from __future__ import unicode_literals
+
 import sys
 import os
 import subprocess
@@ -52,6 +56,8 @@ from pykat.commands import Command, xaxis
 from pykat.SIfloat import *
 from pykat.param import Param, AttrParam
 
+import pykat.external.six as six
+
 import pykat.exceptions as pkex
 
 from pykat import USE_GUI, HAS_OPTIVIS, NoGUIException
@@ -772,7 +778,7 @@ class kat(object):
                         # manually add the line to the block contents
                         self.__blocks[self.__currentTag].contents.append(line) 
                 
-                    if obj != None and not isinstance(obj, str):
+                    if obj != None and not isinstance(obj, six.string_types):
                         if self.hasNamedObject(obj.name):
                             getattr(self, obj.name).remove()
                             print("Removed existing object '{0}' of type {1} to add line '{2}'".format(obj.name, obj.__class__, line))
@@ -1142,13 +1148,15 @@ class kat(object):
                 
                     r.xlabel = hdr[0]
                     r.ylabel = hdr[1]
-                    r.zlabels = map(str.strip, hdr[2:])
+                    r.zlabels = [s.strip for s in hdr[2:]]
+                    #r.zlabels = map(str.strip, hdr[2:])
                          
                 else:
                     [r.x,r.y,hdr] = self.readOutFile(outfile)
             
                     r.xlabel = hdr[0]
-                    r.ylabels = map(str.strip, hdr[1:])
+                    r.ylabels = [s.strip for s in hdr[1:]]
+                    #r.ylabels = map(str.strip, hdr[1:]) // replaced 090415 adf 
                     
             if save_kat:
                 if kat_name == None:
@@ -1376,7 +1384,7 @@ class kat(object):
         for key in self.__blocks:
             objs = self.__blocks[key].contents
             for obj in objs:
-                if isinstance(obj, str):
+                if isinstance(obj,  six.string_types):
                     if fragment in obj:
                         print("  ** removing line '{0}'".format(obj))
                         objs.remove(obj)
@@ -1405,7 +1413,7 @@ class kat(object):
         for key in self.__blocks:
             objs = self.__blocks[key].contents
             for obj in objs:
-                if isinstance(obj, str):
+                if isinstance(obj, six.string_types):
                     print(obj)
                     found = True
         
@@ -1418,7 +1426,7 @@ class kat(object):
 
         def writeBlock():
             for obj in objs:
-                if isinstance(obj, str):
+                if isinstance(obj, six.string_types):
                     out.append(obj + '\n')
                     
                 elif isinstance(obj, Component) or isinstance(obj, Detector) or isinstance(obj, Command):
@@ -1492,7 +1500,7 @@ class kat(object):
 
                     out.append("vacuum {0}\n".format(" ".join(objs)))
                                         
-            elif isinstance(self.vacuum, str):
+            elif isinstance(self.vacuum, six.string_types):
                 out.append("vacuum {0}\n".format(self.vacuum))
             else:
                 pkex.BasePyKatException("Couldn't understand vacuum input list")
diff --git a/pykat/node_network.py b/pykat/node_network.py
index e5db683..59b6293 100644
--- a/pykat/node_network.py
+++ b/pykat/node_network.py
@@ -4,7 +4,11 @@ Created on Sun Jan 27 10:02:41 2013
 
 @author: Daniel
 """
+from __future__ import absolute_import
+from __future__ import division
 from __future__ import print_function
+from __future__ import unicode_literals
+
 from pykat import USE_GUI, NoGUIException
 
 if USE_GUI:
diff --git a/pykat/param.py b/pykat/param.py
index 590fbf5..7b5f165 100644
--- a/pykat/param.py
+++ b/pykat/param.py
@@ -1,4 +1,8 @@
+from __future__ import absolute_import
+from __future__ import division
 from __future__ import print_function
+from __future__ import unicode_literals
+
 import abc
 import pykat.exceptions as pkex
 import weakref
diff --git a/pykat/plotting.py b/pykat/plotting.py
index 10e6cc1..7abd88c 100644
--- a/pykat/plotting.py
+++ b/pykat/plotting.py
@@ -4,6 +4,10 @@ Created on Sat Feb 02 10:35:04 2013
 
 @author: Daniel
 """
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
 
 import numpy as np
 import matplotlib
@@ -80,4 +84,4 @@ class pp():
     # for Palatino and other serif fonts use:
     #font = {'family':'serif','serif':['Palatino']}
     SCREEN_TITLE = True # show title on screen?
-    PRINT_TITLE = False # show title in saved file?
\ No newline at end of file
+    PRINT_TITLE = False # show title in saved file?
diff --git a/pykat/profiling.py b/pykat/profiling.py
index c6302a2..4d1a7b9 100644
--- a/pykat/profiling.py
+++ b/pykat/profiling.py
@@ -1,3 +1,8 @@
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
+
 import numpy as np
 import pylab as pl
 
@@ -24,4 +29,4 @@ def plotReducedPerformanceData(perfdata, ordered=False):
     pl.xlabel("Time [s]")
     pl.title("Timing data for FINESSE")
     
-    return labels, times, fig
\ No newline at end of file
+    return labels, times, fig
diff --git a/pykat/structs.py b/pykat/structs.py
index d8838af..90c5fb8 100644
--- a/pykat/structs.py
+++ b/pykat/structs.py
@@ -4,7 +4,11 @@ Created on Mon Jan 28 12:00:29 2013
 
 @author: Daniel
 """
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
 
 class Scale:
     linear = 'lin'
-    logarithmic = 'log'
\ No newline at end of file
+    logarithmic = 'log'
-- 
GitLab