1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-09-06 21:28:42 +02:00

Change 'results' command to use csv writer instead of formatting csv as string

This commit is contained in:
2024-06-17 20:11:37 +02:00
parent bf99bf257e
commit 46895095fa

View File

@@ -6130,9 +6130,27 @@ Please submit there instead, or use --nodevelproject to force direct submission.
else:
# csv formatting
if opts.format is None:
opts.format = '%(repository)s|%(arch)s|%(state)s|%(dirty)s|%(code)s|%(details)s'
results = [r for r, _ in result_xml_to_dicts(xml)]
print('\n'.join(format_results(results, opts.format)))
columns = ["repository", "arch", "package", "state", "dirty", "code", "details"]
else:
# split columns by colon, semicolon or pipe
columns = opts.format.split(",")
supported_columns = ["project", "package", "repository", "arch", "state", "dirty", "code", "details"]
unknown_columns = sorted(set(columns) - set(supported_columns))
if unknown_columns:
self.argparser.error(f"Unknown format fields: {''.join(unknown_columns)}")
f = io.StringIO()
writer = csv.writer(f, dialect="unix")
rows = [r for r, _ in result_xml_to_dicts(xml)]
for row in rows:
writer.writerow([row[i] for i in columns])
f.seek(0)
print(f.read(), end="")
else:
kwargs['verbose'] = opts.verbose
kwargs['wait'] = opts.watch