From 6a650e2e5cf5cf369103f0cdb8392cb83b3bc126 Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.anjos@idiap.ch>
Date: Thu, 6 Jul 2017 14:39:07 +0200
Subject: [PATCH] Fix python 3.x compatibility for 'jman ls'

---
 gridtk/models.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gridtk/models.py b/gridtk/models.py
index f641683..cef50f8 100644
--- a/gridtk/models.py
+++ b/gridtk/models.py
@@ -226,7 +226,7 @@ class Job(Base):
     """Returns the command line for the job."""
     # In python 2, the command line is unicode, which needs to be converted to string before pickling;
     # In python 3, the command line is bytes, which can be pickled directly
-    return loads(self.command_line) if isinstance(self.command_line, bytes) else loads(str(self.command_line))
+    return loads(self.command_line) if isinstance(self.command_line, bytes) else loads(self.command_line.encode())
 
   def set_command_line(self, command_line):
     """Sets / overwrites the command line for the job."""
@@ -244,14 +244,14 @@ class Job(Base):
     """Returns the array arguments for the job; usually a string."""
     # In python 2, the command line is unicode, which needs to be converted to string before pickling;
     # In python 3, the command line is bytes, which can be pickled directly
-    return loads(self.array_string) if isinstance(self.array_string, bytes) else loads(str(self.array_string))
+    return loads(self.array_string) if isinstance(self.array_string, bytes) else loads(self.array_string.encode())
 
 
   def get_arguments(self):
     """Returns the additional options for the grid (such as the queue, memory requirements, ...)."""
     # In python 2, the command line is unicode, which needs to be converted to string before pickling;
     # In python 3, the command line is bytes, which can be pickled directly
-    args = loads(self.grid_arguments)['kwargs'] if isinstance(self.grid_arguments, bytes) else loads(str(self.grid_arguments))['kwargs']
+    args = loads(self.grid_arguments)['kwargs'] if isinstance(self.grid_arguments, bytes) else loads(self.grid_arguments.encode())['kwargs']
     # in any case, the commands have to be converted to str
     retval = {}
     if 'pe_opt' in args:
-- 
GitLab