1
0
Fork 0

return results for multiple jobs

This commit is contained in:
Sean Sube 2024-01-06 15:10:07 -06:00
parent e8e2b92436
commit 9b9a614f44
Signed by: ssube
GPG Key ID: 3EED7B957D362AF1
2 changed files with 19 additions and 13 deletions

1
api/.gitignore vendored
View File

@ -10,6 +10,7 @@ entry.py
.cache/ .cache/
__pycache__/ __pycache__/
dist/ dist/
filter/
htmlcov/ htmlcov/
onnx_env/ onnx_env/
venv/ venv/

View File

@ -110,7 +110,7 @@ def image_reply(
tiles: Progress = None, tiles: Progress = None,
outputs: List[str] = None, outputs: List[str] = None,
metadata: List[ImageMetadata] = None, metadata: List[ImageMetadata] = None,
): ) -> Dict[str, Any]:
if stages is None: if stages is None:
stages = Progress(0, 0) stages = Progress(0, 0)
@ -140,7 +140,7 @@ def image_reply(
data["metadata"] = [m.tojson(server, [o]) for m, o in zip(metadata, outputs)] data["metadata"] = [m.tojson(server, [o]) for m, o in zip(metadata, outputs)]
data["outputs"] = outputs data["outputs"] = outputs
return jsonify([data]) return data
def multi_image_reply(results: Dict[str, Any]): def multi_image_reply(results: Dict[str, Any]):
@ -668,11 +668,12 @@ def job_status(server: ServerContext, pool: DevicePoolExecutor):
if len(job_list) == 0: if len(job_list) == 0:
return error_reply("at least one job name is required") return error_reply("at least one job name is required")
records = []
for job_name in job_list: for job_name in job_list:
job_name = sanitize_name(job_name) job_name = sanitize_name(job_name)
status, progress = pool.status(job_name) status, progress = pool.status(job_name)
# TODO: accumulate results
if progress is not None: if progress is not None:
outputs = None outputs = None
metadata = None metadata = None
@ -681,18 +682,22 @@ def job_status(server: ServerContext, pool: DevicePoolExecutor):
outputs = make_output_names(server, job_name, len(progress.result)) outputs = make_output_names(server, job_name, len(progress.result))
metadata = progress.result.metadata metadata = progress.result.metadata
return image_reply( records.append(
server, image_reply(
job_name, server,
status, job_name,
stages=progress.stages, status,
steps=progress.steps, stages=progress.stages,
tiles=progress.tiles, steps=progress.steps,
outputs=outputs, tiles=progress.tiles,
metadata=metadata, outputs=outputs,
metadata=metadata,
)
) )
else:
records.append(image_reply(server, job_name, status))
return image_reply(server, job_name, status) return jsonify(records)
def register_api_routes(app: Flask, server: ServerContext, pool: DevicePoolExecutor): def register_api_routes(app: Flask, server: ServerContext, pool: DevicePoolExecutor):