* Sat Aug 31 2024 Dirk Müller - update to 7.6.1: * Fix: coverage used to fail when measuring code using :func:`runpy.run_path ` with a :class:`Path ` argument. This is now fixed, thanks to Ask Hjorth Larsen. * Fix: backslashes preceding a multi-line backslashed string could confuse the HTML report. This is now fixed, thanks to LiuYinCarl. * Now we publish wheels for Python 3.13, both regular and free- threaded. * Exclusion patterns can now be multi-line, thanks to Daniel Diniz. This enables many interesting exclusion use-cases, including those requested in issues 118 (entire files), 996 (multiple lines only when appearing together), 1741 (remainder of a function), and 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 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. * If you attempt to combine statement coverage data with branch coverage data, coverage.py used to fail with the message \"Can\'t combine arc data with line data\" or its reverse, \"Can\'t combine line data with arc data.\" These messages used internal terminology, making it hard for people to understand the problem. They are now changed to mention \"branch coverage data\" and \"statement coverage data.\" * Fixed a minor branch coverage problem with wildcard match/case cases using names or guard clauses. * Started testing on 3.13 free-threading (nogil) builds of Python. I\'m not claiming full support yet. Closes issue 1799. * Thu Jun 06 2024 Dirk Müller - update to 7.5.3: * 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. * 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. Closes issue 1787. * Fri May 10 2024 Steve Kowalik - Update to 7.5.1: * Fix: a pragma comment on the continuation lines of a multi-line statement now excludes the statement and its body, the same as if the pragma is on the first line. * Fix: very complex source files could cause a maximum recursion error when creating an HTML report. * HTML report improvements: + Support files (JavaScript and CSS) referenced by the HTML report now have hashes added to their names to ensure updated files are used instead of stale cached copies. + Missing branch coverage explanations that said \"the condition was never false\" now read \"the condition was always true\" because it\'s easier to understand. + Column sort order is remembered better as you move between the index pages. * Added initial support for function and class reporting in the HTML report. * Other HTML report improvements: + There is now a \"hide covered\" checkbox to filter out 100% files. + The index page is always sorted by one of its columns, with clearer indications of the sorting. + The \"previous file\" shortcut key didn\'t work on the index page, but now it does. * The debug output showing which configuration files were tried now shows absolute paths to help diagnose problems where settings aren\'t taking effect, and is renamed from \"attempted_config_files\" to the more logical \"config_files_attempted.\" * Fix: in some cases, even with [run] relative_files=True, a data file could be created with absolute path names. When combined with other relative data files, it was random whether the absolute file names would be made relative or not. If they weren\'t, then a file would be listed twice in reports. * Fix: the last case of a match/case statement had an incorrect message if the branch was missed. It said the pattern never matched, when actually the branch is missed if the last case always matched. * Fix: clicking a line number in the HTML report now positions more accurately. * Fix: the report:format setting was defined as a boolean, but should be a string. * Fix: in some cases, coverage could fail with a RuntimeError: \"Set changed size during iteration.\" * Fix: setting COVERAGE_CORE=sysmon no longer errors on 3.11 and lower. * Fix: the JSON report now includes an explicit format version number. * Fix: the change for multi-line signature exclusions in 7.3.3 broke other forms of nested clauses being excluded properly. * Fix: in the HTML report, selecting code for copying won\'t select the line numbers also. Thanks, `Robert Harris `_. * Fix: function definitions with multi-line signatures can now be excluded by matching any of the lines. * Fix: XML reports could fail with a TypeError if files had numeric components that were duplicates except for leading zeroes, like file1.py and file001.py. * The coverage annotate command used to announce that it would be removed in a future version. Enough people got in touch to say that they use it, so it will stay. Don\'t expect it to keep up with other new features though.- Set COVERAGE_CORE, so we no longer need to skip the ctrace tests, it will be handled for us.- Skip two tests that assert PYTHONPATH is empty, which it can\'t be. * Tue Nov 28 2023 Dirk Müller - update to 7.3.2: * The ``coverage lcov`` command ignored the ``[report] exclude_lines`` and ``[report] exclude_also`` settings * Sometimes SQLite will create journal files alongside the coverage.py database files. These are ephemeral, but could be mistakenly included when combining data files. * On Python 3.12+, we now disable SQLite writing journal files, which should be a little faster. * The new 3.12 soft keyword ``type`` is properly bolded in HTML reports. * Removed the \"fullcoverage\" feature used by CPython to measure the coverage of early-imported standard library modules. * Mon Sep 18 2023 Dirk Müller - update to 7.3.1: * The semantics of stars in file patterns has been clarified in the docs. A leading or trailing star matches any number of path components, like a double star would. This is different than the behavior of a star in the middle of a pattern. * Mon Aug 14 2023 Matthias Fehring - specfile * fix build on Leap 15 by moving sle15_python_module_pythons macro to the top * Mon Aug 14 2023 Arun Persaud - specfile: * require python 3.8- update to version 7.3.0: * Added a Coverage.collect() context manager to start and stop coverage data collection. * Dropped support for Python 3.7. * Fix: in unusual circumstances, SQLite cannot be set to asynchronous mode. Coverage.py would fail with the error Safety level may not be changed inside a transaction. This is now avoided, closing issue 1646. Thanks to Michael Bell for the detailed bug report. * Docs: examples of configuration files now include separate examples for the different syntaxes: .coveragerc, pyproject.toml, setup.cfg, and tox.ini. * Fix: added nosemgrep comments to our JavaScript code so that semgrep-based SAST security checks won’t raise false alarms about security problems that aren’t problems. * Added a CITATION.cff file, thanks to Ken Schackart. * Thu Aug 10 2023 Arun Persaud - specfile: * removed fix-tests.patch, included upstream- update to version 7.2.7: * Fix: reverted a change from 6.4.3 that helped Cython, but also increased the size of data files when using dynamic contexts, as described in the now-fixed issue 1586. The problem is now avoided due to a recent change (issue 1538). Thanks to Anders Kaseorg and David Szotten for persisting with problem reports and detailed diagnoses. * Wheels are now provided for CPython 3.12.- changes from version 7.2.6: * Fix: the lcov command could raise an IndexError exception if a file is translated to Python but then executed under its own name. Jinja2 does this when rendering templates. Fixes issue 1553. * Python 3.12 beta 1 now inlines comprehensions. Previously they were compiled as invisible functions and coverage.py would warn you if they weren’t completely executed. This no longer happens under Python 3.12. * Fix: the coverage debug sys command includes some environment variables in its output. This could have included sensitive data. Those values are now hidden with asterisks, closing issue 1628. * Wed May 10 2023 Daniel Garcia - Add fix-tests.patch gh#nedbat/coveragepyAATT3fdda7d017ff- Update to 7.2.5: * Fix: html_report() could fail with an AttributeError on isatty if run in an unusual environment where sys.stdout had been replaced. This is now fixed.- 7.2.4: * Fix: with relative_files = true, specifying a specific file to include or omit wouldn\'t work correctly (issue 1604). This is now fixed, with testing help by Marc Gibbons. * Fix: the XML report would have an incorrect