mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Improved handling of creating job JSONs as well as better handle loading saved JSONs
This commit is contained in:
@@ -45,7 +45,9 @@ class RenderJob:
|
||||
try:
|
||||
job_dict = self.__dict__.copy()
|
||||
job_dict['status'] = self.render_status().value
|
||||
job_dict['time_elapsed'] = self.time_elapsed() if type(self.time_elapsed) != str else self.time_elapsed
|
||||
job_dict['file_hash'] = self.file_hash if self.file_hash and isinstance(self.file_hash, str) else self.file_hash()
|
||||
job_dict['file_list'] = self.file_list()
|
||||
job_dict['worker'] = self.worker.__dict__.copy()
|
||||
job_dict['worker']['status'] = job_dict['status']
|
||||
|
||||
@@ -75,17 +77,35 @@ class RenderJob:
|
||||
self.worker.stop()
|
||||
|
||||
def time_elapsed(self):
|
||||
|
||||
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 = 'Unknown'
|
||||
elapsed_time = None
|
||||
start_time = self.worker.start_time
|
||||
end_time = self.worker.end_time
|
||||
|
||||
if start_time:
|
||||
if end_time:
|
||||
elapsed_time = str(end_time - start_time)
|
||||
elapsed_time = end_time - start_time
|
||||
elif self.render_status() == RenderStatus.RUNNING:
|
||||
elapsed_time = str(datetime.now() - start_time)
|
||||
return elapsed_time
|
||||
elapsed_time = datetime.now() - start_time
|
||||
|
||||
elapsed_time_string = strfdelta(elapsed_time) if elapsed_time else "Unknown"
|
||||
return elapsed_time_string
|
||||
|
||||
def frame_count(self):
|
||||
return self.worker.total_frames
|
||||
|
||||
Reference in New Issue
Block a user