diff --git a/src/gambit/results.py b/src/gambit/results.py index bd76a8e..c0af9db 100644 --- a/src/gambit/results.py +++ b/src/gambit/results.py @@ -11,7 +11,7 @@ from gambit.util.io import FilePath, maybe_open import gambit.util.json as gjson -from gambit.query import QueryResults, QueryResultItem, QueryInput +from gambit.query import QueryResults, QueryResultItem from gambit.db import ReferenceGenomeSet, Taxon, AnnotatedGenome, Genome @@ -84,8 +84,9 @@ class CSVResultsExporter(AbstractResultsExporter): """ format_opts: dict[str, Any] + # Pairs of column name and QueryResultItem attribute COLUMNS = [ - ('query', 'input.label'), + ('query', 'label'), ('predicted.name', 'report_taxon.name'), ('predicted.rank', 'report_taxon.rank'), ('predicted.ncbi_id', 'report_taxon.ncbi_id'), @@ -140,20 +141,15 @@ def _results_to_json(self, results: QueryResults): @to_json.register(QueryResultItem) def _item_to_json(self, item: QueryResultItem): return dict( - query=item.input, + query=dict( + name=item.label, + path=item.file, + ), predicted_taxon=item.report_taxon, next_taxon=item.classifier_result.next_taxon, closest_genomes=item.closest_genomes, ) - @to_json.register(QueryInput) - def _input_to_json(self, input: QueryInput): - return dict( - name=input.label, - path=None if input.file is None else input.file.path, - format=None if input.file is None else input.file.format, - ) - @to_json.register(ReferenceGenomeSet) def _genomeset_to_json(self, gset: ReferenceGenomeSet): return _todict(gset, ['id', 'key', 'version', 'name', 'description']) diff --git a/tests/results.py b/tests/results.py index 11491ba..1f3d0d1 100644 --- a/tests/results.py +++ b/tests/results.py @@ -269,7 +269,7 @@ def check_csv_results(file: TextIO, results: QueryResults, strict: bool = False) assert len(rows) == len(results.items) for item, row in zip(results.items, rows): - assert row['query'] == item.input.label + assert row['query'] == item.label cmp_csv_taxon(row, item.report_taxon, 'predicted') cmp_csv_taxon(row, item.classifier_result.next_taxon, 'next') diff --git a/tests/test_results.py b/tests/test_results.py index b739042..60e6930 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -2,7 +2,7 @@ import pytest -from gambit.query import QueryResults, QueryResultItem, QueryInput, QueryParams +from gambit.query import QueryResults, QueryResultItem, QueryParams from gambit.classify import ClassifierResult, GenomeMatch from gambit.db import ReferenceGenomeSet, Genome from gambit.sigs import SignaturesMeta @@ -77,14 +77,15 @@ def results(session): for i, cr in enumerate(classifier_results): predicted = cr.predicted_taxon items.append(QueryResultItem( - input=QueryInput(f'query-{i}', SequenceFile(f'query-{i}.fasta', 'fasta')), + f'query-{i}', classifier_result=cr, + file=f'query-{i}.fasta', report_taxon=None if predicted is None else predicted.parent if i % 4 == 0 else predicted, closest_genomes=[cr.closest_match], )) - # Set one input file to None - items[-1].input.file = None + # Set one file to None + items[-1].file = None return QueryResults( items=items,