From 40a7a68b3112633f0a840928a0de0f22a1a0f06a Mon Sep 17 00:00:00 2001
From: Jeremy Auguste <jeremy.auguste@lis-lab.fr>
Date: Wed, 24 Oct 2018 15:21:40 +0200
Subject: [PATCH] Changed karma to be queue based and added better printing of
 timeleft

---
 oarstats.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/oarstats.py b/oarstats.py
index 8e78f68..828b910 100644
--- a/oarstats.py
+++ b/oarstats.py
@@ -8,13 +8,14 @@ import subprocess
 from collections import defaultdict
 import re
 import time
+import datetime
 
 
 class Owner:
     def __init__(self, name):
         self.name = name
         self.queues = defaultdict(list)
-        self.karma = 0.0
+        self.karma = defaultdict(float)
         self.timeleft = 0
         self.running = defaultdict(int)
         self.resources = defaultdict(int)
@@ -22,8 +23,8 @@ class Owner:
 
     def add_job(self, job):
         self.queues[job.queue].append(job)
-        if job.karma > self.karma:
-            self.karma = job.karma
+        if job.karma > self.karma[job.queue]:
+            self.karma[job.queue] = job.karma
         self.timeleft += job.wall_time - job.elapsed_time
         self.resources[job.queue] += job.resources
         if job.elapsed_time != 0:
@@ -32,9 +33,9 @@ class Owner:
             self.gpu[job.queue] += job.resources
 
     def print_info(self):
-        print("User {} :: Timeleft: {}, Karma: {}".format(self.name, self.timeleft, self.karma))
+        print("User {} :: Timeleft: {}".format(self.name, datetime.timedelta(seconds=self.timeleft)))
         for queue in self.queues.keys():
-            print("\t{} - Running {}, Resources: {}, GPUs: {}".format(queue, self.running[queue], self.resources[queue], self.gpu[queue]))
+            print("\t{} - Running {}, Resources: {}, GPUs: {}, Karma: {}".format(queue, self.running[queue], self.resources[queue], self.gpu[queue], self.karma[queue]))
 
 
 class Job:
-- 
GitLab