From a4d8de7cc66ef77ac45553ac63323b4d5f078141 Mon Sep 17 00:00:00 2001 From: Harrison Deng Date: Wed, 19 Feb 2025 19:57:15 +0000 Subject: [PATCH] Changing CSV argument to --csv or -o --- src/autobigs/cli/info.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/autobigs/cli/info.py b/src/autobigs/cli/info.py index 9f4404d..b9396ad 100644 --- a/src/autobigs/cli/info.py +++ b/src/autobigs/cli/info.py @@ -27,7 +27,7 @@ def setup_parser(parser: ArgumentParser): ) parser.add_argument( - "--csv-prefix", "-o", + "--csv", "-o", dest="csv_output", required=False, default=None, @@ -39,18 +39,21 @@ def setup_parser(parser: ArgumentParser): async def run(args: Namespace): async with BIGSdbIndex() as bigsdb_index: + if args.list_dbs and len(args.list_bigsdb_schemas) > 0: + print("Cannot specify both database listing and schema listing, please choose one!") + exit(1) + if args.list_dbs: known_seqdef_dbs = await bigsdb_index.get_known_seqdef_dbs(force=False) sorted_seqdef_dbs = [(name, source) for name, source in sorted(known_seqdef_dbs.items())] print("The following are all known BIGS database names, and their source (sorted alphabetically):") print("\n".join(["{0}: {1}".format(name, source) for name, source in sorted_seqdef_dbs])) if args.csv_output: - dbs_csv_path = path.splitext(args.csv_output)[0] + "_" + "dbs.csv" - with open(dbs_csv_path, "w") as csv_out_handle: + with open(args.csv_output, "w") as csv_out_handle: writer = csv.writer(csv_out_handle) writer.writerow(("BIGSdb Names", "Source")) writer.writerows(sorted_seqdef_dbs) - print("\nDatabase output written to {0}".format(dbs_csv_path)) + print("\nDatabase output written to {0}".format(args.csv_output)) for bigsdb_schema_name in args.list_bigsdb_schemas: schemas = await bigsdb_index.get_schemas_for_seqdefdb(bigsdb_schema_name) @@ -58,14 +61,15 @@ async def run(args: Namespace): print("The following are the known schemas for \"{0}\", and their associated IDs:".format(bigsdb_schema_name)) print("\n".join(["{0}: {1}".format(name, id) for name, id in sorted_schemas])) if args.csv_output: - schema_csv_path = path.splitext(args.csv_output)[0] + "_" + "schemas.csv" - with open(schema_csv_path, "w") as csv_out_handle: + with open(args.csv_output, "w") as csv_out_handle: writer = csv.writer(csv_out_handle) writer.writerow(("Name", "ID")) writer.writerows(sorted_schemas) - print("\nSchema list output written to {0}".format(schema_csv_path)) + print("\nSchema list output written to {0}".format(args.csv_output)) + if not (args.list_dbs or len(args.list_bigsdb_schemas) > 0): print("Nothing to do. Try specifying \"-l\" for a list of known databases, or \"-h\" for more information.") + exit(1) def run_asynchronously(args: Namespace): asyncio.run(run(args))