mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Misc Cleanup
This commit is contained in:
@@ -54,7 +54,8 @@ def index():
|
||||
def job_detail(job_id):
|
||||
found_job = RenderQueue.job_with_id(job_id)
|
||||
if found_job:
|
||||
table_html = json2html.json2html.convert(json=found_job.json(), table_attributes='class="table is-narrow is-striped"')
|
||||
table_html = json2html.json2html.convert(json=found_job.json(),
|
||||
table_attributes='class="table is-narrow is-striped"')
|
||||
media_url = None
|
||||
if found_job.file_list():
|
||||
media_basename = os.path.basename(found_job.file_list()[0])
|
||||
@@ -230,11 +231,12 @@ def add_job_handler():
|
||||
elif request.form.get('json', None):
|
||||
jobs_list = json.loads(request.form['json'])
|
||||
else:
|
||||
form_dict = dict(request.form)
|
||||
# Cleanup flat form data into nested structure
|
||||
form_dict = {k: v for k, v in dict(request.form).items() if v}
|
||||
args = {}
|
||||
arg_keys = [k for k in form_dict.keys() if '-arg_' in k]
|
||||
for key in arg_keys:
|
||||
if form_dict['renderer'] in key:
|
||||
if form_dict['renderer'] in key or 'AnyRenderer' in key:
|
||||
cleaned_key = key.split('-arg_')[-1]
|
||||
args[cleaned_key] = form_dict[key]
|
||||
form_dict.pop(key)
|
||||
@@ -285,7 +287,6 @@ def add_job_handler():
|
||||
|
||||
|
||||
def add_job(job_params, remove_job_dir_on_failure=False):
|
||||
|
||||
def remove_job_dir():
|
||||
if remove_job_dir_on_failure and job_dir and os.path.exists(job_dir):
|
||||
logger.debug(f"Removing job dir: {job_dir}")
|
||||
@@ -298,7 +299,7 @@ def add_job(job_params, remove_job_dir_on_failure=False):
|
||||
output_path = job_params.get("output_path", None)
|
||||
priority = int(job_params.get('priority', 2))
|
||||
args = job_params.get('args', {})
|
||||
client = job_params.get('client', RenderQueue.host_name)
|
||||
client = job_params.get('client', None) or RenderQueue.host_name
|
||||
force_start = job_params.get('force_start', False)
|
||||
custom_id = None
|
||||
job_dir = None
|
||||
@@ -448,4 +449,3 @@ def renderer_info():
|
||||
def upload_file_page():
|
||||
return render_template('upload.html', render_clients=RenderQueue.render_clients,
|
||||
supported_renderers=RenderWorkerFactory.supported_renderers())
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ class RenderJob:
|
||||
|
||||
def json(self):
|
||||
"""Converts RenderJob into JSON-friendly dict"""
|
||||
import numbers
|
||||
job_dict = None
|
||||
try:
|
||||
job_dict = self.__dict__.copy()
|
||||
@@ -91,6 +90,9 @@ class RenderJob:
|
||||
def frame_count(self):
|
||||
return self.worker.total_frames
|
||||
|
||||
def work_path(self):
|
||||
return os.path.dirname(self.worker.output_path)
|
||||
|
||||
def file_list(self):
|
||||
job_dir = os.path.dirname(self.worker.output_path)
|
||||
return glob.glob(os.path.join(job_dir, '*'))
|
||||
|
||||
@@ -39,8 +39,6 @@ class RenderQueue:
|
||||
cls.job_queue.append(render_job)
|
||||
if force_start:
|
||||
cls.start_job(render_job)
|
||||
else:
|
||||
cls.evaluate_queue()
|
||||
else:
|
||||
# todo: implement client rendering
|
||||
logger.warning('remote client rendering not implemented yet')
|
||||
@@ -88,35 +86,37 @@ class RenderQueue:
|
||||
cls.render_clients = saved_state.get('clients', {})
|
||||
|
||||
for job in saved_state.get('jobs', []):
|
||||
try:
|
||||
render_job = RenderJob(renderer=job['renderer'], input_path=job['worker']['input_path'],
|
||||
output_path=job['worker']['output_path'], args=job['worker']['args'],
|
||||
priority=job['priority'], client=job['client'])
|
||||
|
||||
render_job = RenderJob(renderer=job['renderer'], input_path=job['worker']['input_path'],
|
||||
output_path=job['worker']['output_path'], args=job['worker']['args'],
|
||||
priority=job['priority'], client=job['client'])
|
||||
# Load Worker values
|
||||
for key, val in job['worker'].items():
|
||||
if val and key in ['start_time', 'end_time']: # convert date strings back into date objects
|
||||
render_job.worker.__dict__[key] = datetime.fromisoformat(val)
|
||||
else:
|
||||
render_job.worker.__dict__[key] = val
|
||||
|
||||
# Load Worker values
|
||||
for key, val in job['worker'].items():
|
||||
if val and key in ['start_time', 'end_time']: # convert date strings back into date objects
|
||||
render_job.worker.__dict__[key] = datetime.fromisoformat(val)
|
||||
else:
|
||||
render_job.worker.__dict__[key] = val
|
||||
render_job.worker.status = RenderStatus[job['status'].upper()]
|
||||
job.pop('worker', None)
|
||||
|
||||
render_job.worker.status = RenderStatus[job['status'].upper()]
|
||||
job.pop('worker', None)
|
||||
# Create RenderJob with re-created Renderer object
|
||||
for key, val in job.items():
|
||||
if key in ['date_created']: # convert date strings back to datetime objects
|
||||
render_job.__dict__[key] = datetime.fromisoformat(val)
|
||||
else:
|
||||
render_job.__dict__[key] = val
|
||||
render_job.__delattr__('status')
|
||||
|
||||
# Create RenderJob with re-created Renderer object
|
||||
for key, val in job.items():
|
||||
if key in ['date_created']: # convert date strings back to datetime objects
|
||||
render_job.__dict__[key] = datetime.fromisoformat(val)
|
||||
else:
|
||||
render_job.__dict__[key] = val
|
||||
render_job.__delattr__('status')
|
||||
# Handle older loaded jobs that were cancelled before closing
|
||||
if render_job.render_status() == RenderStatus.RUNNING:
|
||||
render_job.worker.status = RenderStatus.CANCELLED
|
||||
|
||||
# Handle older loaded jobs that were cancelled before closing
|
||||
if render_job.render_status() == RenderStatus.RUNNING:
|
||||
render_job.worker.status = RenderStatus.CANCELLED
|
||||
|
||||
# finally add back to render queue
|
||||
cls.job_queue.append(render_job)
|
||||
# finally add back to render queue
|
||||
cls.job_queue.append(render_job)
|
||||
except Exception as e:
|
||||
logger.error(f"Unable to load job: {job} - {e}")
|
||||
|
||||
cls.last_saved_counts = cls.job_counts()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user