mirror of
https://github.com/YosysHQ/sby.git
synced 2025-08-24 05:37:54 +00:00
statusfmt: Skip missing fields in jsonl output
This commit is contained in:
parent
344236af41
commit
190ef86916
1 changed files with 11 additions and 11 deletions
|
@ -525,19 +525,10 @@ def format_status_data_fmtline(row: dict|None, fmt: str = "csv") -> str:
|
||||||
data = None
|
data = None
|
||||||
else:
|
else:
|
||||||
engine = row['data'].get('engine', row['data'].get('source'))
|
engine = row['data'].get('engine', row['data'].get('source'))
|
||||||
try:
|
|
||||||
time = row['status_created'] - row['created']
|
|
||||||
except TypeError:
|
|
||||||
time = 0
|
|
||||||
name = row['hdlname']
|
name = row['hdlname']
|
||||||
depth = row['data'].get('step')
|
depth = row['data'].get('step')
|
||||||
try:
|
|
||||||
trace_path = Path(row['workdir']) / row['path']
|
|
||||||
except TypeError:
|
|
||||||
trace_path = None
|
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"time": round(time, 2),
|
|
||||||
"task_name": row['task_name'],
|
"task_name": row['task_name'],
|
||||||
"mode": row['mode'],
|
"mode": row['mode'],
|
||||||
"engine": engine,
|
"engine": engine,
|
||||||
|
@ -545,14 +536,21 @@ def format_status_data_fmtline(row: dict|None, fmt: str = "csv") -> str:
|
||||||
"location": row['location'],
|
"location": row['location'],
|
||||||
"kind": row['kind'],
|
"kind": row['kind'],
|
||||||
"status": row['status'] or "UNKNOWN",
|
"status": row['status'] or "UNKNOWN",
|
||||||
"trace": trace_path,
|
|
||||||
"depth": depth,
|
"depth": depth,
|
||||||
}
|
}
|
||||||
|
try:
|
||||||
|
data["trace"] = str(Path(row['workdir']) / row['path'])
|
||||||
|
except TypeError:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
data['time'] = round(row['status_created'] - row['created'], 2)
|
||||||
|
except TypeError:
|
||||||
|
pass
|
||||||
if fmt == "csv":
|
if fmt == "csv":
|
||||||
if data is None:
|
if data is None:
|
||||||
csv_line = fmtline_columns
|
csv_line = fmtline_columns
|
||||||
else:
|
else:
|
||||||
csv_line = [data[column] for column in fmtline_columns]
|
csv_line = [data.get(column) for column in fmtline_columns]
|
||||||
def csv_field(value):
|
def csv_field(value):
|
||||||
if value is None:
|
if value is None:
|
||||||
return ""
|
return ""
|
||||||
|
@ -564,6 +562,8 @@ def format_status_data_fmtline(row: dict|None, fmt: str = "csv") -> str:
|
||||||
elif fmt == "jsonl":
|
elif fmt == "jsonl":
|
||||||
if data is None:
|
if data is None:
|
||||||
return ""
|
return ""
|
||||||
|
# field order
|
||||||
|
data = {column: data[column] for column in fmtline_columns if column in data}
|
||||||
return json.dumps(data)
|
return json.dumps(data)
|
||||||
|
|
||||||
def filter_latest_task_ids(all_tasks: dict[int, dict[str]]):
|
def filter_latest_task_ids(all_tasks: dict[int, dict[str]]):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue