Skip to main content

build status pre-commit.ci status

covdefaults

A coverage plugin to provide sensible default settings

installation

pip install covdefaults

usage

to enable the plugin, add covdefaults to your coverage plugins

in .coveragerc:

[run]
plugins = covdefaults

in setup.cfg / tox.ini:

[coverage:run]
plugins = covdefaults

in pyproject.toml:

[tool.coverage.run]
plugins = ["covdefaults"]

default settings

[coverage:run]

branch = True
source = .
omit =
    */__main__.py
    */setup.py

[coverage:report]

show_missing = True
skip_covered = True
fail_under = 100
exclude_lines =
    # a more strict default pragma
    \# pragma: no cover\b

    # allow defensive code
    ^\s*raise AssertionError\b
    ^\s*raise NotImplementedError\b
    ^\s*return NotImplemented\b
    ^\s*raise$

    # typing-related code
    ^\s*if (False|TYPE_CHECKING):
    : \.\.\.(\s*#.*)?$
    ^ +\.\.\.$
    -> ['"]?NoReturn['"]?:

    # non-runnable code
    if __name__ == ['"]__main__['"]:$

    # additional platform related pragmas (see below)
    # additional version related pragmas (see below)
partial_branches =
    # a more strict default pragma
    \# pragma: no cover\b

    # out platform pragmas
    \# pragma: (nt|posix|cygwin|darwin|linux|msys|win32|cpython|pypy) (no )?cover\b

    # our version pragmas
    \# pragma: (>=?|<=?|==|!=)\d+\.\d+ cover\b

platform specific # pragma: no cover

several # pragma: no cover tags will be added automatically based on the platform and implementation.

these will be in the form of:

# pragma: TAG no cover

or

# pragma: TAG cover

these tags will be generated by the following values:

  • os.name
    • nt (windows)
    • posix (linux, macOs, cygwin, etc.)
  • sys.platform
    • cygwin
    • darwin (macOs)
    • linux
    • msys
    • win32
  • sys.implementation.name
    • cpython
    • pypy

for every tag which does not match, you can use negation. here's an example:

if sys.platform == 'win32':  # pragma: win32 cover
    bin_dir = 'Scripts'
else:  # pragma: win32 no cover
    bin_dir = 'bin'

note here that # pragma: win32 cover will become a "no cover" for everything which is not win32 -- whereas the # pragma: win32 no cover will be a "no cover" only on win32.

version specific # pragma: no cover

several # pragma: no cover tags will be added automatically based on the platform and implementation.

these will be in the form of:

# pragma: >=#.# cover

where the comparison operator is one of >, >=, <, <=, ==, !=

for example:

if sys.version_info >= (3, 9):  # pragma: >=3.9 cover
    print('3.9+')
else:  # pragma: <3.9 cover
    print('old')

overriding options

several of the options can be overridden / extended in your coverage configuration. the examples below assume .coveragerc however any of the files coverage supports work as well.

run:omit

[run]
omit =
    pre_commit/resources/*

this will result in the pre_commit/resources/* being omitted in addition to the defaults provided by covdefaults.

[covdefaults]
subtract_omit = */__main__.py

this will result in */__main__.py not being omitted (*/__main__.py is among the defaults provided by covdefaults).

run:source

[run]
source = $PWD

covdefaults will not override this value to . if it is set manually.

report:exclude_lines

[report]
exclude_lines =
    ^if MYPY:$

this will result in lines matching ^if MYPY:$ to additionally be excluded from coverage in addition to the defaults provided by covdefaults.

report:fail_under

[report]
fail_under = 90

covdefaults will not change the value if you provide one for fail_under

Release files for covdefaults 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for covdefaults 2.3.0
File Size Uploaded
covdefaults-2.3.0.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for covdefaults 2.3.0
File Interpreter ABI Platform
covdefaults-2.3.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 10.0 kB

Release files / covdefaults-2.3.0.tar.gz

Download URL covdefaults-2.3.0.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4e99f679f12d792bc62e5510fa3eb59546ed47bd569e36e4fddc4081c9c3ebf7
BLAKE2b-256 checksum
How to use checksums
44ee9a6f2611f72e4c5657ae5542a510cf4164d2c673687c0ea73bb1cbd85b4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / covdefaults-2.3.0-py2.py3-none-any.whl

Download URL covdefaults-2.3.0-py2.py3-none-any.whl
Size 5.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
2832961f6ffcfe4b57c338bc3418a3526f495c26fb9c54565409c5532f7c41be
BLAKE2b-256 checksum
How to use checksums
764c823bc951445aa97e5a1b7e337690db3abf85212c8d138e170922e7916ac8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release history Release notifications | RSS feed

This release

2.3.0 This release

2 release files

2.2.2

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page