From e2f19acd5a9a95fc8303769f4b928fdadfa36d85 Mon Sep 17 00:00:00 2001 From: Harrison Deng Date: Tue, 18 Feb 2025 16:33:08 +0000 Subject: [PATCH] Updated CLI to follow APIs specified by the 0.12.0 engine --- .devcontainer/devcontainer.json | 2 +- .gitignore | 1 + pyproject.toml | 2 +- requirements.txt | 2 +- src/autobigs/cli/info.py | 4 +++- src/autobigs/cli/st.py | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 0c8c058..3934211 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -12,7 +12,7 @@ // "forwardPorts": [], // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "pip3 install --user -r requirements.txt", + "postCreateCommand": "pip3 install --user -r requirements.txt && pip install -e .", "customizations": { "vscode": { "extensions": [ diff --git a/.gitignore b/.gitignore index a31886c..eda8c45 100644 --- a/.gitignore +++ b/.gitignore @@ -212,3 +212,4 @@ pyrightconfig.json # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) +out.csv diff --git a/pyproject.toml b/pyproject.toml index 4c50581..aaf389d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ dynamic = ["version"] readme = "README.md" license = {file = "LICENSE"} dependencies = [ - "autoBIGS-engine==0.11.*" + "autoBIGS-engine==0.12.*" ] requires-python = ">=3.12" description = "A CLI tool to rapidly fetch fetch MLST profiles given sequences for various diseases." diff --git a/requirements.txt b/requirements.txt index fad55b5..7b54436 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,4 @@ pytest-cov build twine setuptools_scm -autoBIGS.engine==0.11.* +autoBIGS.engine diff --git a/src/autobigs/cli/info.py b/src/autobigs/cli/info.py index a990a46..c653c89 100644 --- a/src/autobigs/cli/info.py +++ b/src/autobigs/cli/info.py @@ -31,15 +31,17 @@ async def run(args: Namespace): async with BIGSdbIndex() as bigsdb_index: if args.list_dbs: known_seqdef_dbs = await bigsdb_index.get_known_seqdef_dbs(force=False) + print("The following are all known BIGS database names (sorted alphabetically):") print("\n".join(sorted(known_seqdef_dbs.keys()))) for bigsdb_schema_name in args.list_bigsdb_schemas: schemas = await bigsdb_index.get_schemas_for_seqdefdb(bigsdb_schema_name) + print("The following are the known schemas for \"{0}\", and their associated IDs:".format(bigsdb_schema_name)) for schema_desc, schema_id in schemas.items(): print(f"{schema_desc}: {schema_id}") if not (args.list_dbs or len(args.list_bigsdb_schemas) > 0): - print("Nothing to do. Try specifying \"-l\".") + print("Nothing to do. Try specifying \"-l\" for a list of known databases, or \"-h\" for more information.") def run_asynchronously(args: Namespace): asyncio.run(run(args)) diff --git a/src/autobigs/cli/st.py b/src/autobigs/cli/st.py index c4f2112..9edec5a 100644 --- a/src/autobigs/cli/st.py +++ b/src/autobigs/cli/st.py @@ -53,7 +53,7 @@ async def run(args: Namespace): mlst_profiles = mlst_profiler.profile_multiple_strings(gen_strings) failed = await write_mlst_profiles_as_csv(mlst_profiles, args.out) if len(failed) > 0: - print(f"A total of {len(failed)} IDs failed:\n{"\n".join(failed)}") + print(f"A total of {len(failed)} IDs failed (no profile found):\n{"\n".join(failed)}") print(f"Completed fetching MLSTs for {len(args.fastas)} sequences.") def run_asynchronously(args):