Skip to content

Commit 0bf14e2

Browse files
committed
mypy: add lcovreport.py
1 parent 3760b98 commit 0bf14e2

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

coverage/lcovreport.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,34 @@
33

44
"""LCOV reporting for coverage.py."""
55

6+
from __future__ import annotations
7+
68
import sys
79
import base64
810
from hashlib import md5
911

12+
from typing import IO, Iterable, Optional, TYPE_CHECKING
13+
14+
from coverage.plugin import FileReporter
1015
from coverage.report import get_analysis_to_report
1116
from coverage.results import Analysis, Numbers
17+
from coverage.types import TMorf
18+
19+
if TYPE_CHECKING:
20+
from coverage import Coverage
21+
from coverage.data import CoverageData
1222

1323

1424
class LcovReporter:
1525
"""A reporter for writing LCOV coverage reports."""
1626

1727
report_type = "LCOV report"
1828

19-
def __init__(self, coverage):
29+
def __init__(self, coverage: Coverage) -> None:
2030
self.coverage = coverage
2131
self.total = Numbers(self.coverage.config.precision)
2232

23-
def report(self, morfs, outfile=None):
33+
def report(self, morfs: Optional[Iterable[TMorf]], outfile: IO[str]) -> float:
2434
"""Renders the full lcov report.
2535
2636
'morfs' is a list of modules or filenames
@@ -36,7 +46,7 @@ def report(self, morfs, outfile=None):
3646

3747
return self.total.n_statements and self.total.pc_covered
3848

39-
def get_lcov(self, fr, analysis, outfile=None):
49+
def get_lcov(self, fr: FileReporter, analysis: Analysis, outfile: IO[str]) -> None:
4050
"""Produces the lcov data for a single file.
4151
4252
This currently supports both line and branch coverage,

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ setenv =
9797
{[testenv]setenv}
9898
C__B=coverage/__init__.py coverage/__main__.py coverage/annotate.py coverage/bytecode.py
9999
C_CE=coverage/config.py coverage/context.py coverage/control.py coverage/data.py coverage/disposition.py coverage/exceptions.py
100-
C_FN=coverage/files.py coverage/inorout.py coverage/jsonreport.py coverage/multiproc.py coverage/numbits.py
100+
C_FN=coverage/files.py coverage/inorout.py coverage/jsonreport.py coverage/lcovreport.py coverage/multiproc.py coverage/numbits.py
101101
C_OP=coverage/parser.py coverage/phystokens.py coverage/plugin.py coverage/python.py
102102
C_QZ=coverage/report.py coverage/results.py coverage/sqldata.py coverage/tomlconfig.py coverage/types.py coverage/version.py
103103
T_AN=tests/test_api.py tests/goldtest.py tests/helpers.py tests/test_html.py

0 commit comments

Comments
 (0)