Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow excluding entire modules/packages #118

Closed
nedbat opened this issue Feb 5, 2011 · 5 comments
Closed

Allow excluding entire modules/packages #118

nedbat opened this issue Feb 5, 2011 · 5 comments
Labels
enhancement New feature or request run

Comments

@nedbat
Copy link
Owner

nedbat commented Feb 5, 2011

Originally reported by Ram Rachum (Bitbucket: coolrr, GitHub: coolrr)


Allow excluding entire modules/packages from coverage measurement by including some identifiable string in their source, similarly to "pragma: no cover".

Here's a suggestion on how to do this, feel free to suggest alternatives: A line "pragma: no module cover" in a module will cause it not to be measured. A "pragma: no package cover" in an __init__.py file will cause the entire package, (including any submodules, subpackages, etc.) not to be measured.


@nedbat
Copy link
Owner Author

nedbat commented Jan 19, 2015

Issue #300 was marked as a duplicate of this issue.

@nedbat
Copy link
Owner Author

nedbat commented Jul 13, 2016

Original comment by René Fleschenberg (Bitbucket: rfleschenberg, GitHub: rfleschenberg)


Is there a reason why we cannot just use pragma: no cover at module level to exclude the whole module from coverage?

@nedbat
Copy link
Owner Author

nedbat commented Jul 13, 2016

I haven't looked into what it would take to implement this. Ram's original proposal included a new pragma for __init__.py to exclude the whole package. That would need to be different than the pragma for a single module, I think.

@nedbat nedbat removed the 3.4 label Aug 17, 2018
@nedbat nedbat removed the major label Jan 18, 2020
agronholm added a commit to agronholm/coveragepy that referenced this issue Aug 16, 2020
@nedbat nedbat added enhancement New feature or request and removed proposal labels Oct 31, 2021
@nedbat
Copy link
Owner Author

nedbat commented Jul 4, 2024

As of commit 1fe897d, you can do this with a multi-line exclusion regex:

[report]
exclude_also =
    (?s)\A.*# pragma: exclude file.*\Z

and then put the comment # pragma: exclude file in the file somewhere.

@nedbat nedbat closed this as completed Jul 4, 2024
@nedbat
Copy link
Owner Author

nedbat commented Jul 11, 2024

This is now released as part of coverage 7.6.0.

github-merge-queue bot pushed a commit to rustymotors/server that referenced this issue Jul 11, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [coverage](https://github.com/nedbat/coveragepy) | `==7.5.4` ->
`==7.6.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/coverage/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/coverage/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/coverage/7.5.4/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/coverage/7.5.4/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nedbat/coveragepy (coverage)</summary>

###
[`v7.6.0`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-760--2024-07-11)

[Compare
Source](https://github.com/nedbat/coveragepy/compare/7.5.4...7.6.0)

- Exclusion patterns can now be multi-line, thanks to `Daniel Diniz
<pull
1807_>`*. This enables many interesting exclusion use-cases, including
those
requested in issues `118 <issue 118_>`* (entire files), `996 <issue
996_>`\_ (multiple lines only when appearing together), `1741 <issue
1741_>`\_ (remainder of a function), and `1803 <issue 1803_>`\_
(arbitrary sequence of marked lines). See the :ref:`multi_line_exclude`
    section of the docs for more details and examples.

- The JSON report now includes per-function and per-class coverage
information.
Thanks to `Daniel Diniz <pull 1809_>`\_ for getting the work started.
This
    closes `issue 1793`\_ and `issue 1532`\_.

- Fixed an incorrect calculation of "(no class)" lines in the HTML
classes
    report.

-   Python 3.13.0b3 is supported.

.. \_issue
118:[nedbat/coveragepy#118
.. \_issue
996[nedbat/coveragepy#996
.. \_issue
153[nedbat/coveragepy#1532
.. \_issue
17[nedbat/coveragepy#1741
.. \_issue
1[nedbat/coveragepy#1793
.. \_issue
[nedbat/coveragepy#1803
..
\_pull[nedbat/coveragepy#1807
..
\_pul[nedbat/coveragepy#1809

.. \_changes\_7-5-4:

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/rustymotors/server).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovate bot added a commit to allenporter/flux-local that referenced this issue Jul 11, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [coverage](https://github.com/nedbat/coveragepy) | `==7.5.4` ->
`==7.6.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/coverage/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/coverage/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/coverage/7.5.4/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/coverage/7.5.4/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nedbat/coveragepy (coverage)</summary>

###
[`v7.6.0`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-760--2024-07-11)

[Compare
Source](https://github.com/nedbat/coveragepy/compare/7.5.4...7.6.0)

- Exclusion patterns can now be multi-line, thanks to `Daniel Diniz
<pull
1807_>`*. This enables many interesting exclusion use-cases, including
those
requested in issues `118 <issue 118_>`* (entire files), `996 <issue
996_>`\_ (multiple lines only when appearing together), `1741 <issue
1741_>`\_ (remainder of a function), and `1803 <issue 1803_>`\_
(arbitrary sequence of marked lines). See the :ref:`multi_line_exclude`
    section of the docs for more details and examples.

- The JSON report now includes per-function and per-class coverage
information.
Thanks to `Daniel Diniz <pull 1809_>`\_ for getting the work started.
This
    closes `issue 1793`\_ and `issue 1532`\_.

- Fixed an incorrect calculation of "(no class)" lines in the HTML
classes
    report.

-   Python 3.13.0b3 is supported.

.. \_issue
118:[nedbat/coveragepy#118
.. \_issue
996[nedbat/coveragepy#996
.. \_issue
153[nedbat/coveragepy#1532
.. \_issue
17[nedbat/coveragepy#1741
.. \_issue
1[nedbat/coveragepy#1793
.. \_issue
[nedbat/coveragepy#1803
..
\_pull[nedbat/coveragepy#1807
..
\_pul[nedbat/coveragepy#1809

.. \_changes\_7-5-4:

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/allenporter/flux-local).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
jooola pushed a commit to hetznercloud/hcloud-python that referenced this issue Jul 12, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [coverage](https://github.com/nedbat/coveragepy) | `>=7.5,<7.6` ->
`>=7.6,<7.7` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/coverage/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/coverage/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/coverage/7.5.4/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/coverage/7.5.4/7.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nedbat/coveragepy (coverage)</summary>

###
[`v7.6.0`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-760--2024-07-11)

[Compare
Source](https://github.com/nedbat/coveragepy/compare/7.5.4...7.6.0)

- Exclusion patterns can now be multi-line, thanks to `Daniel Diniz
<pull
1807_>`*. This enables many interesting exclusion use-cases, including
those
requested in issues `118 <issue 118_>`* (entire files), `996 <issue
996_>`\_ (multiple lines only when appearing together), `1741 <issue
1741_>`\_ (remainder of a function), and `1803 <issue 1803_>`\_
(arbitrary sequence of marked lines). See the :ref:`multi_line_exclude`
    section of the docs for more details and examples.

- The JSON report now includes per-function and per-class coverage
information.
Thanks to `Daniel Diniz <pull 1809_>`\_ for getting the work started.
This
    closes `issue 1793`\_ and `issue 1532`\_.

- Fixed an incorrect calculation of "(no class)" lines in the HTML
classes
    report.

-   Python 3.13.0b3 is supported.

.. \_issue
118:[nedbat/coveragepy#118
.. \_issue
996[nedbat/coveragepy#996
.. \_issue
153[nedbat/coveragepy#1532
.. \_issue
17[nedbat/coveragepy#1741
.. \_issue
1[nedbat/coveragepy#1793
.. \_issue
[nedbat/coveragepy#1803
..
\_pull[nedbat/coveragepy#1807
..
\_pul[nedbat/coveragepy#1809

.. \_changes\_7-5-4:

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/hetznercloud/hcloud-python).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request run
Projects
None yet
Development

No branches or pull requests

1 participant