diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 28f0840..88d6cd6 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -27,7 +27,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install flake8 pytest + python -m pip install flake8 pytest mypy if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Install package run: | @@ -40,4 +40,7 @@ jobs: flake8 . --count --exit-zero --statistics - name: Test with pytest run: | - pytest + python -m pytest + - name: Type check with mypy + run: | + python -m mypy src/ diff --git a/src/fqfa/fastq/fastq.py b/src/fqfa/fastq/fastq.py index af5037c..1d2b294 100644 --- a/src/fqfa/fastq/fastq.py +++ b/src/fqfa/fastq/fastq.py @@ -37,7 +37,8 @@ def parse_fastq_reads(handle: TextIO) -> Generator[FastqRead, None, None]: raise ValueError("incomplete FASTQ record") else: lines = [x.rstrip() for x in lines] # remove trailing newlines - yield FastqRead(*lines) + # TODO: figure out why mypy doesn't like this + yield FastqRead(*lines) # type: ignore[arg-type] def parse_fastq_pe_reads( @@ -80,9 +81,9 @@ def parse_fastq_pe_reads( for fwd, rev in zip_longest(fwd_generator, rev_generator, fillvalue=None): if None in (fwd, rev): raise ValueError("mismatched FASTQ file lengths") - elif fwd.header.split()[0] != rev.header.split()[0]: + elif fwd.header.split()[0] != rev.header.split()[0]: # type: ignore[union-attr] raise ValueError("forward and reverse read headers do not match") else: if revcomp: - rev.reverse_complement() - yield fwd, rev + rev.reverse_complement() # type: ignore[union-attr] + yield fwd, rev # type: ignore[misc]