From eca684036139fd897f479a5873c8a0f6c815952a Mon Sep 17 00:00:00 2001 From: Daniel McDonald Date: Fri, 19 Jul 2024 16:04:45 -0700 Subject: [PATCH 1/3] Minor stability update --- micov/tests/test_cov.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/micov/tests/test_cov.py b/micov/tests/test_cov.py index 23176bf..dbe1ea7 100644 --- a/micov/tests/test_cov.py +++ b/micov/tests/test_cov.py @@ -1,7 +1,7 @@ import unittest from micov._cov import compress, coverage_percent from micov._constants import (BED_COV_SCHEMA, COLUMN_GENOME_ID, - GENOME_LENGTH_SCHEMA, + GENOME_LENGTH_SCHEMA, COLUMN_START, GENOME_COVERAGE_SCHEMA) import polars as pl import polars.testing as plt @@ -28,7 +28,7 @@ def test_compress(self): ['G456', 400, 500]], orient='row', schema=BED_COV_SCHEMA.dtypes_flat) - obs = compress(data).sort(COLUMN_GENOME_ID) + obs = compress(data).sort(COLUMN_GENOME_ID).sort(COLUMN_START) plt.assert_frame_equal(obs, exp) def test_coverage_percent(self): From 424a7fb7fbf8cb07901e88711e73d2229cedac62 Mon Sep 17 00:00:00 2001 From: Daniel McDonald Date: Mon, 7 Oct 2024 12:53:49 -0700 Subject: [PATCH 2/3] Assert support for stdin --- Makefile | 2 +- cli_test.sh | 8 ++++++++ micov/cli.py | 3 +-- micov/tests/test_data/test.sam.xz | Bin 0 -> 48236 bytes 4 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 cli_test.sh create mode 100644 micov/tests/test_data/test.sam.xz diff --git a/Makefile b/Makefile index fd56909..e8be927 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ test: pytest micov - + bash cli_test.sh lint: ruff check micov setup.py check-manifest diff --git a/cli_test.sh b/cli_test.sh new file mode 100644 index 0000000..7e51311 --- /dev/null +++ b/cli_test.sh @@ -0,0 +1,8 @@ +#!/bin/bash +xzcat micov/tests/test_data/test.sam.xz | micov compress > from_stdin +micov compress --data micov/tests/test_data/test.sam.xz > from_args +cmp --silent <(sort from_stdin) <(sort from_args) +if [[ $? -ne 0 ]]; then + echo "Files are different" + exit 1 +fi diff --git a/micov/cli.py b/micov/cli.py index 542c8e9..d77b2fb 100644 --- a/micov/cli.py +++ b/micov/cli.py @@ -6,7 +6,6 @@ import os import io import sys -import tqdm from glob import glob from ._io import (parse_genome_lengths, parse_taxonomy, set_taxonomy_as_id, parse_qiita_coverages, parse_sam_to_df, write_qiita_cov, @@ -105,7 +104,7 @@ def compress(data, output, disable_compression, lengths, taxonomy): if taxonomy is not None: taxonomy = parse_taxonomy(taxonomy) - if os.path.isdir(data): + if data is not None and os.path.isdir(data): file_list = (glob(data + "/*.sam") + glob(data + '/*.sam.xz') + glob(data + '/*.sam.gz')) diff --git a/micov/tests/test_data/test.sam.xz b/micov/tests/test_data/test.sam.xz new file mode 100644 index 0000000000000000000000000000000000000000..e2dcf8418d7d073ae0913da78bb7802410a14e3c GIT binary patch literal 48236 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 ASO5S3 literal 0 HcmV?d00001 From 59749da9fad15931f82a3ee7de50311e4874d962 Mon Sep 17 00:00:00 2001 From: Daniel McDonald Date: Mon, 7 Oct 2024 12:58:10 -0700 Subject: [PATCH 3/3] lint --- MANIFEST.in | 1 + micov/tests/test_data/__init__.py | 0 2 files changed, 1 insertion(+) create mode 100644 micov/tests/test_data/__init__.py diff --git a/MANIFEST.in b/MANIFEST.in index c186307..9ecb498 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,6 +3,7 @@ include LICENSE include ChangeLog.md include Makefile include pyproject.toml +include cli_test.sh graft micov graft ci diff --git a/micov/tests/test_data/__init__.py b/micov/tests/test_data/__init__.py new file mode 100644 index 0000000..e69de29