Performance improvements for combining data files, especially when measuring
line coverage. A few different quadratic behaviors were eliminated. In one
extreme case of combining 700+ data files, the time dropped from more than
three hours to seven minutes. Thanks for Kraken Tech for funding the fix.
Performance improvements for generating HTML reports, with a side benefit of
reducing memory use, closing issue 1791_. Thanks to Daniel Diniz for
helping to diagnose the problem.
Fix: nested matches of exclude patterns could exclude too much code, as
reported in issue 1779_. This is now fixed.
Changed: previously, coverage.py would consider a module docstring to be an
executable statement if it appeared after line 1 in the file, but not
executable if it was the first line. Now module docstrings are never counted
as executable statements. This can change coverage.py's count of the number
of statements in a file, which can slightly change the coverage percentage
reported.
In the HTML report, the filter term and "hide covered" checkbox settings are
remembered between viewings, thanks to Daniel Diniz <pull 1776_>_.
Python 3.13.0b1 is supported.
Fix: parsing error handling is improved to ensure bizarre source files are
handled gracefully, and to unblock oss-fuzz fuzzing, thanks to Liam DeVoe <pull 1788_>. Closes issue 1787.
WARNING: ⚡ Imminent v1! ⚡🚀
We are working on v1, and it will come soon, so we recommend that you consider adding an upper bound on Griffe. Version 1 will remove all legacy code! There will be a couple more v0 before so that you get all the deprecation warnings needed to upgrade your code using Griffe before upgrading to v1. See breaking changes and deprecations for v0.46 below.
Breaking Changes
We are still in v0, so no major bump yet.
Calling objects' [has_labels()][griffe.Object.has_labels] method with a labels keyword argument is not supported anymore. The parameter became a variadic positional parameter, so it cannot be used as a keyword argument anymore. Passing a sequence instead of multiple positional arguments still works but will emit a deprecation warning.
Calling the [load_extensions()][griffe.load_extensions] function with an exts keyword argument is not supported anymore. The parameter became a variadic positional parameter, so it cannot be used as a keyword argument anymore. Passing a sequence instead of multiple positional arguments still works but will emit a deprecation warning.
Deprecations
As seen above in the breaking changes section, the only parameters of [Object.has_labels()][griffe.Object.has_labels] and [load_extensions()][griffe.load_extensions] both became variadic positional parameters. Passing a sequence as single argument is deprecated in favor of passing multiple arguments. This is an ergonomic change: I myself often forgot to wrap extensions in a list. Passing sequences of labels (lists, sets, tuples) is also difficult from Jinja templates.
The following methods and properties on objects and aliases are deprecated: [member_is_exported()][griffe.Object.member_is_exported], [is_explicitely_exported][griffe.mixins.ObjectAliasMixin.is_explicitely_exported], [is_implicitely_exported][griffe.mixins.ObjectAliasMixin.is_implicitely_exported]. Use the [is_exported][griffe.mixins.ObjectAliasMixin.is_exported] property instead. See issue 281.
The [is_exported()][griffe.mixins.ObjectAliasMixin.is_exported] and [is_public()][griffe.mixins.ObjectAliasMixin.is_public] methods became properties. They can still be called like methods, but will emit deprecation warnings when doing so. See issue 281.
The ignore_private parameter of the [find_breaking_changes()][griffe.find_breaking_changes] function is now deprecated and unused. With the reworked "exported" and "public" API, this parameter became useless. See issue 281.
Using stats() instead of [Stats][griffe.stats.Stats] will now emit a deprecation warning.
WARNING: ⚡ Imminent v1! ⚡🚀
We are working on v1, and it will come soon, so we recommend that you consider adding an upper bound on Griffe. Version 1 will remove all legacy code! There will be a couple more v0 before so that you get all the deprecation warnings needed to upgrade your code using Griffe before upgrading to v1. See breaking changes and deprecations for v0.46 below.
Breaking Changes
We are still in v0, so no major bump yet.
Calling objects' [has_labels()][griffe.Object.has_labels] method with a labels keyword argument is not supported anymore. The parameter became a variadic positional parameter, so it cannot be used as a keyword argument anymore. Passing a sequence instead of multiple positional arguments still works but will emit a deprecation warning.
Calling the [load_extensions()][griffe.load_extensions] function with an exts keyword argument is not supported anymore. The parameter became a variadic positional parameter, so it cannot be used as a keyword argument anymore. Passing a sequence instead of multiple positional arguments still works but will emit a deprecation warning.
Deprecations
As seen above in the breaking changes section, the only parameters of [Object.has_labels()][griffe.Object.has_labels] and [load_extensions()][griffe.load_extensions] both became variadic positional parameters. Passing a sequence as single argument is deprecated in favor of passing multiple arguments. This is an ergonomic change: I myself often forgot to wrap extensions in a list. Passing sequences of labels (lists, sets, tuples) is also difficult from Jinja templates.
The following methods and properties on objects and aliases are deprecated: [member_is_exported()][griffe.Object.member_is_exported], [is_explicitely_exported][griffe.mixins.ObjectAliasMixin.is_explicitely_exported], [is_implicitely_exported][griffe.mixins.ObjectAliasMixin.is_implicitely_exported]. Use the [is_exported][griffe.mixins.ObjectAliasMixin.is_exported] property instead. See issue 281.
The [is_exported()][griffe.mixins.ObjectAliasMixin.is_exported] and [is_public()][griffe.mixins.ObjectAliasMixin.is_public] methods became properties. They can still be called like methods, but will emit deprecation warnings when doing so. See issue 281.
The ignore_private parameter of the [find_breaking_changes()][griffe.find_breaking_changes] function is now deprecated and unused. With the reworked "exported" and "public" API, this parameter became useless. See issue 281.
Using stats() instead of [Stats][griffe.stats.Stats] will now emit a deprecation warning.
This is the Jinja 3.1.4 security release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes.
The xmlattr filter does not allow keys with / solidus, > greater-than sign, or = equals sign, in addition to disallowing spaces. Regardless of any validation done by Jinja, user input should never be used as keys to this filter, or must be separately validated first. GHSA-h75v-3vvj-5mfj
The xmlattr filter does not allow keys with / solidus, >
greater-than sign, or = equals sign, in addition to disallowing spaces.
Regardless of any validation done by Jinja, user input should never be used
as keys to this filter, or must be separately validated first.
:ghsa:h75v-3vvj-5mfj
Depend on mkdocstrings 0.25 which adds support for parameter once when logging messages (2bc156b by Timothée Mazzucotelli).
Code Refactoring
Set handler's name (a71ab12 by Timothée Mazzucotelli).
Update *.html top-level templates to extend the *.html.jinja base templates (a8c540e by Timothée Mazzucotelli). Issue-151
Update *.html base templates to extend their *.html.jinja counterpart, while overriding the logs block to issue a logging message (info) stating that extending *.html templates is deprecated (e6f1b9c by Timothée Mazzucotelli). Issue-151
Add *.html.jinja top-level (overridable) templates, extending their base counterpart (7c14924 by Timothée Mazzucotelli). Issue-151
Add *.html.jinja base templates, which are copies of *.html templates, with an additional logs block, and using the updated get_template filter (eced9a5 by Timothée Mazzucotelli). Issue-151
Update get_template filter to support both *.html and *.html.jinja templates, logging a message (info) when *.html templates are overridden by users (3546fd7 by Timothée Mazzucotelli). Issue-151
Log a warning when base templates are overridden (26e3d66 by Timothée Mazzucotelli). Issue-151
Depend on mkdocstrings 0.25 which adds support for parameter once when logging messages (2bc156b by Timothée Mazzucotelli).
Code Refactoring
Set handler's name (a71ab12 by Timothée Mazzucotelli).
Update *.html top-level templates to extend the *.html.jinja base templates (a8c540e by Timothée Mazzucotelli). Issue-151
Update *.html base templates to extend their *.html.jinja counterpart, while overriding the logs block to issue a logging message (info) stating that extending *.html templates is deprecated (e6f1b9c by Timothée Mazzucotelli). Issue-151
Add *.html.jinja top-level (overridable) templates, extending their base counterpart (7c14924 by Timothée Mazzucotelli). Issue-151
Add *.html.jinja base templates, which are copies of *.html templates, with an additional logs block, and using the updated get_template filter (eced9a5 by Timothée Mazzucotelli). Issue-151
Update get_template filter to support both *.html and *.html.jinja templates, logging a message (info) when *.html templates are overridden by users (3546fd7 by Timothée Mazzucotelli). Issue-151
Log a warning when base templates are overridden (26e3d66 by Timothée Mazzucotelli). Issue-151
Bumps the dependencies group with 14 updates in the /.config directory:
2024.2.2
2024.6.2
7.5.1
7.5.3
0.44.0
0.46.0
3.1.3
3.1.4
1.8.1
1.9.1
9.5.21
9.5.27
1.10.0
1.10.3
24.0
24.1
2.19.1
2.22.0
4.2.1
4.2.2
8.2.1
8.2.2
2024.4.28
2024.5.15
2.31.0
2.32.3
4.0.0
4.0.1
Updates
certifi
from 2024.2.2 to 2024.6.2Commits
124f4ad
2024.06.02 (#291)c2196ce
--- (#290)fefdeec
Bump actions/checkout from 4.1.4 to 4.1.5 (#289)3c5fb15
Bump actions/download-artifact from 4.1.6 to 4.1.7 (#286)4a9569a
Bump actions/checkout from 4.1.2 to 4.1.4 (#287)1fc8086
Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 (#288)ad52dce
Bump peter-evans/create-pull-request from 6.0.3 to 6.0.4 (#283)651904f
Bump actions/upload-artifact from 4.3.1 to 4.3.3 (#284)84fcfba
Bump actions/download-artifact from 4.1.4 to 4.1.6 (#285)46b8057
Bump peter-evans/create-pull-request from 6.0.2 to 6.0.3 (#282)Updates
coverage
from 7.5.1 to 7.5.3Changelog
Sourced from coverage's changelog.
Commits
f310d7e
docs: sample HTML for 7.5.3a51d52f
docs: prep for 7.5.3b666f3a
perf: it's faster in all versions if we don't cache tokenize #1791a2b4929
docs: changelog entry forcombine
performance improvementsb9aff50
perf: don't read full line_bits table each timec45ebac
perf: cache alias mapping390cb97
perf: avoid quadratic behavior when combining line coveraged3caf53
docs(build): tweaks to howto909e887
build: bump version242adea
build: don't claim pre-alpha-1 in classifiersUpdates
griffe
from 0.44.0 to 0.46.0Release notes
Sourced from griffe's releases.
... (truncated)
Changelog
Sourced from griffe's changelog.
... (truncated)
Commits
cb8b97a
chore: Prepare release 0.46.00bba29d
style: Format changelogbe29c32
fix: Handle partials as functions while inspectinge6d3bb6
style: Formate21eabe
feat: Add docstring attribute to parametersdd954ad
Merge branch 'release-0.45.3'9b37682
chore: Prepare release 0.45.3e5572d2
refactor: Emit deprecation warning when accessingstats
instead ofStats
b327b90
refactor: Rework "exported" and "public" logicb6ddcc4
feat: Provide line numbers for classes and functions when inspectingUpdates
jinja2
from 3.1.3 to 3.1.4Release notes
Sourced from jinja2's releases.
Changelog
Sourced from jinja2's changelog.
Commits
dd4a8b5
release version 3.1.40668239
Merge pull request from GHSA-h75v-3vvj-5mfjd655030
disallow invalid characters in keys to xmlattr filtera7863ba
add ghsa linksb5c98e7
start version 3.1.4da3a9f0
update project files (#1968)0ee5eb4
satisfy formatter, linter, and strict mypy20477c6
update project files (#5457)e491223
update pyyaml dev dependency36f9885
fix pr linkUpdates
markdown-exec
from 1.8.1 to 1.9.1Release notes
Sourced from markdown-exec's releases.
... (truncated)
Changelog
Sourced from markdown-exec's changelog.
Commits
05cc476
chore: Prepare release 1.9.1ae549db
build: Re-include tests folder in source distributions019131b
docs: Fix typobb7d8ca
chore: Force push docsfcd3308
chore: Allow deploying from main repoe458ffc
chore: Disallow override in docs-deploy duty to allow passing -cnone (because...5f70186
chore: Add Pandas dev dep for Plotlyb26d0eb
chore: Prepare release 1.9.025bcbbe
feat: Abort with error when the plugin is configured to require the ANSI extr...6b845e8
chore: Install dependencies with extras (for ANSI support)Updates
mkdocs-material
from 9.5.21 to 9.5.27Release notes
Sourced from mkdocs-material's releases.
Changelog
Sourced from mkdocs-material's changelog.
... (truncated)
Commits
f4adebd
Prepare 9.5.27 release9e1f527
Updated dependenciesf4db9de
Updated Estonian translationsb45c51d
Changed Twitter to X (#7266)4ba7a6d
Add reference to PlantUML Markdown schema (#7260)ccc8d84
Updated dependencies0c54a88
Updated Premium sponsorsf887197
Updated changelog0d5a08c
Prepare 9.5.26 release1cc45d5
Fixed active tab stolen on scroll with linked content tabsUpdates
mkdocstrings-python
from 1.10.0 to 1.10.3Release notes
Sourced from mkdocstrings-python's releases.
Changelog
Sourced from mkdocstrings-python's changelog.
Commits
9c7e304
chore: Prepare release 1.10.364df00b
fix: Don't crash when rendering the source of an object whose lineno is none0b8a3a9
chore: Prepare release 1.10.25668abb
fix: Actually make use of custom .html.jinja templatesf7705ce
chore: Prepare release 1.10.16885009
ci: Remove unused type ignore comment5253358
docs: CorrectPrintOK
doctest examples583b8fe
docs: Document Jinja templatese7f997b
docs: Enable parameter headingscfdccd3
docs: Load Python-Markdown objects inventoryUpdates
packaging
from 24.0 to 24.1Release notes
Sourced from packaging's releases.
Changelog
Sourced from packaging's changelog.
Commits
85442b8
Bump for release3e67fc7
Work aroundplatform.python_version()
returning non PEP 440 compliant versi...32deafe
Bump the github-actions group with 3 updates (#789)e0dda88
Documentmarkers.default_environment()
(#753)cc938f9
Modernise type annotations using FA rules from ruff (#785)757f559
Fix typo in_parser
docstring (#784)ec9f203
Bump the github-actions group with 4 updates (#782)5cbe1e4
Add support for Python 3.13 and drop EOL 3.7 (#783)cb8fd38
pyupgrade/black/isort/flake8 → ruff (#769)e8002b1
Bump for developmentUpdates
pipdeptree
from 2.19.1 to 2.22.0Release notes
Sourced from pipdeptree's releases.