mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Break get_time_elapsed into misc_helper (#10)
This commit is contained in:
14
dashboard.py
14
dashboard.py
@@ -19,6 +19,7 @@ from rich.tree import Tree
|
|||||||
|
|
||||||
from lib.render_workers.base_worker import RenderStatus, string_to_status
|
from lib.render_workers.base_worker import RenderStatus, string_to_status
|
||||||
from lib.server.server_proxy import RenderServerProxy
|
from lib.server.server_proxy import RenderServerProxy
|
||||||
|
from lib.utilities.misc_helper import get_time_elapsed
|
||||||
from start_server import start_server
|
from start_server import start_server
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -133,19 +134,14 @@ def create_jobs_table(all_server_data) -> Table:
|
|||||||
if job_status == RenderStatus.ERROR and job['errors']:
|
if job_status == RenderStatus.ERROR and job['errors']:
|
||||||
job_text = job_text + "\n" + "\n".join(job['errors'])
|
job_text = job_text + "\n" + "\n".join(job['errors'])
|
||||||
|
|
||||||
# calculate elapsed time
|
|
||||||
elapsed_time = job['time_elapsed']
|
|
||||||
if job['start_time'] and job_status == RenderStatus.RUNNING:
|
|
||||||
start_time = datetime.datetime.fromisoformat(job['start_time'])
|
|
||||||
elapsed_time = str(datetime.datetime.now() - start_time)
|
|
||||||
|
|
||||||
# Project name
|
# Project name
|
||||||
project_name = job_color + job['name']
|
project_name = job_color + (job['name'] or os.path.basename(job['input_path']))
|
||||||
|
elapsed_time = get_time_elapsed(datetime.datetime.fromisoformat(job['start_time']),
|
||||||
|
datetime.datetime.fromisoformat(job['end_time']))
|
||||||
|
|
||||||
if job_status == RenderStatus.RUNNING:
|
if job_status == RenderStatus.RUNNING:
|
||||||
job_text = f"{job_color}[bold]Running - {float(job['percent_complete']) * 100:.1f}%"
|
job_text = f"{job_color}[bold]Running - {float(job['percent_complete']) * 100:.1f}%"
|
||||||
delta = datetime.datetime.now() - datetime.datetime.fromisoformat(job['start_time'])
|
elapsed_time = "[bold]" + elapsed_time
|
||||||
elapsed_time = "[bold]" + str(delta)
|
|
||||||
project_name = "[bold]" + project_name
|
project_name = "[bold]" + project_name
|
||||||
elif job_status == RenderStatus.CANCELLED or job_status == RenderStatus.ERROR:
|
elif job_status == RenderStatus.CANCELLED or job_status == RenderStatus.ERROR:
|
||||||
project_name = "[strike]" + project_name
|
project_name = "[strike]" + project_name
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
import threading
|
import threading
|
||||||
@@ -9,7 +10,7 @@ from PIL import Image, ImageTk
|
|||||||
from lib.client.new_job_window import NewJobWindow
|
from lib.client.new_job_window import NewJobWindow
|
||||||
from lib.server.server_proxy import RenderServerProxy
|
from lib.server.server_proxy import RenderServerProxy
|
||||||
from lib.server.zeroconf_server import ZeroconfServer
|
from lib.server.zeroconf_server import ZeroconfServer
|
||||||
from lib.utilities.misc_helper import launch_url, file_exists_in_mounts
|
from lib.utilities.misc_helper import launch_url, file_exists_in_mounts, get_time_elapsed
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
||||||
@@ -300,7 +301,8 @@ class DashboardWindow:
|
|||||||
job['renderer'] + "-" + job['renderer_version'],
|
job['renderer'] + "-" + job['renderer_version'],
|
||||||
job['priority'],
|
job['priority'],
|
||||||
display_status,
|
display_status,
|
||||||
job['time_elapsed'],
|
get_time_elapsed(datetime.datetime.fromisoformat(job['start_time']),
|
||||||
|
datetime.datetime.fromisoformat(job['end_time'])),
|
||||||
job['total_frames'],
|
job['total_frames'],
|
||||||
job['date_created'],
|
job['date_created'],
|
||||||
job['owner'])
|
job['owner'])
|
||||||
|
|||||||
@@ -9,8 +9,9 @@ import glob
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
from sqlalchemy import Column, Integer, String, DateTime, JSON, event
|
from sqlalchemy import Column, Integer, String, DateTime
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
|
from lib.utilities.misc_helper import get_time_elapsed
|
||||||
|
|
||||||
import psutil
|
import psutil
|
||||||
|
|
||||||
@@ -273,35 +274,7 @@ class BaseRenderWorker(Base):
|
|||||||
raise NotImplementedError("_parse_stdout not implemented")
|
raise NotImplementedError("_parse_stdout not implemented")
|
||||||
|
|
||||||
def time_elapsed(self):
|
def time_elapsed(self):
|
||||||
|
return get_time_elapsed(self.start_time, self.end_time)
|
||||||
from string import Template
|
|
||||||
|
|
||||||
class DeltaTemplate(Template):
|
|
||||||
delimiter = "%"
|
|
||||||
|
|
||||||
def strfdelta(tdelta, fmt='%H:%M:%S'):
|
|
||||||
d = {"D": tdelta.days}
|
|
||||||
hours, rem = divmod(tdelta.seconds, 3600)
|
|
||||||
minutes, seconds = divmod(rem, 60)
|
|
||||||
d["H"] = '{:02d}'.format(hours)
|
|
||||||
d["M"] = '{:02d}'.format(minutes)
|
|
||||||
d["S"] = '{:02d}'.format(seconds)
|
|
||||||
t = DeltaTemplate(fmt)
|
|
||||||
return t.substitute(**d)
|
|
||||||
|
|
||||||
# calculate elapsed time
|
|
||||||
elapsed_time = None
|
|
||||||
start_time = self.start_time
|
|
||||||
end_time = self.end_time
|
|
||||||
|
|
||||||
if start_time:
|
|
||||||
if end_time:
|
|
||||||
elapsed_time = end_time - start_time
|
|
||||||
elif self.status == RenderStatus.RUNNING:
|
|
||||||
elapsed_time = datetime.now() - start_time
|
|
||||||
|
|
||||||
elapsed_time_string = strfdelta(elapsed_time) if elapsed_time else "Unknown"
|
|
||||||
return elapsed_time_string
|
|
||||||
|
|
||||||
def file_list(self):
|
def file_list(self):
|
||||||
job_dir = os.path.dirname(self.output_path)
|
job_dir = os.path.dirname(self.output_path)
|
||||||
@@ -322,7 +295,6 @@ class BaseRenderWorker(Base):
|
|||||||
'start_time': self.start_time,
|
'start_time': self.start_time,
|
||||||
'end_time': self.end_time,
|
'end_time': self.end_time,
|
||||||
'status': self.status.value,
|
'status': self.status.value,
|
||||||
'time_elapsed': self.time_elapsed(),
|
|
||||||
'file_hash': self.file_hash,
|
'file_hash': self.file_hash,
|
||||||
'percent_complete': self.percent_complete(),
|
'percent_complete': self.percent_complete(),
|
||||||
'file_count': len(self.file_list()),
|
'file_count': len(self.file_list()),
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
||||||
@@ -55,3 +56,33 @@ def file_exists_in_mounts(filepath):
|
|||||||
possible_mount_path = os.path.join(root, mount, filepath.split(component)[-1].lstrip('/'))
|
possible_mount_path = os.path.join(root, mount, filepath.split(component)[-1].lstrip('/'))
|
||||||
if os.path.exists(possible_mount_path):
|
if os.path.exists(possible_mount_path):
|
||||||
return possible_mount_path
|
return possible_mount_path
|
||||||
|
|
||||||
|
|
||||||
|
def get_time_elapsed(start_time=None, end_time=None):
|
||||||
|
|
||||||
|
from string import Template
|
||||||
|
|
||||||
|
class DeltaTemplate(Template):
|
||||||
|
delimiter = "%"
|
||||||
|
|
||||||
|
def strfdelta(tdelta, fmt='%H:%M:%S'):
|
||||||
|
d = {"D": tdelta.days}
|
||||||
|
hours, rem = divmod(tdelta.seconds, 3600)
|
||||||
|
minutes, seconds = divmod(rem, 60)
|
||||||
|
d["H"] = '{:02d}'.format(hours)
|
||||||
|
d["M"] = '{:02d}'.format(minutes)
|
||||||
|
d["S"] = '{:02d}'.format(seconds)
|
||||||
|
t = DeltaTemplate(fmt)
|
||||||
|
return t.substitute(**d)
|
||||||
|
|
||||||
|
# calculate elapsed time
|
||||||
|
elapsed_time = None
|
||||||
|
|
||||||
|
if start_time:
|
||||||
|
if end_time:
|
||||||
|
elapsed_time = end_time - start_time
|
||||||
|
else:
|
||||||
|
elapsed_time = datetime.now() - start_time
|
||||||
|
|
||||||
|
elapsed_time_string = strfdelta(elapsed_time) if elapsed_time else None
|
||||||
|
return elapsed_time_string
|
||||||
|
|||||||
Reference in New Issue
Block a user