Removed dependency on googleapis-common-protos in favor of internal
frequenz.api.common.v1.types.Decimal, advising updates to dependencies for
users previously relying on Google's types.
Renamed voltage and current metrics for clarity and introduced new metrics,
including line-to-line voltages and Total Harmonic Distortion (THD) metrics,
with updated naming conventions for simplicity and precision.
Upgrading
The dependency on googleapis-common-protos / googleapis/googleapis was
removed, now the built-in frequenz.api.common.v1.types.Decimal is used
internally instead. This is compatible with Google's type, but if you
depended indirectly on Google's submodule or python packages, you may need to
update your dependencies.
Nevertheless it is strongly recommended to remove the dependency on Google
repos and use the built-in frequenz.api.common.v1.types.Decimal instead if
your project only uses the Decimal type from it too.
Voltage metrics have been renamed from METRIC_VOLTAGE_PHASE_[1|2|3] to
METRIC_VOLTAGE_PHASE_[1|2|3]_N.
The variants in the enum Metric have been renumberd due to the addition of
line-to-line voltages.
Current metrics have been renamed:
METRIC_AC_APPARENT_CURRENT -> METRIC_AC_CURRENTMETRIC_AC_APPARENT_CURRENT_PHASE_[1|2|3] -> METRIC_AC_CURRENT_PHASE_[1|2|3]
Metrics for Total Harmonic Distortion have been un-abbreviated:
METRIC_AC_THD_CURRENT -> METRIC_AC_TOTAL_HARMONIC_DISTORTION_CURRENTMETRIC_AC_THD_CURRENT_PHASE_[1|2|3] -> METRIC_AC_TOTAL_HARMONIC_DISTORTION_CURRENT_PHASE_[1|2|3]
Renamed SimpleMetricSample to SimpleMetricValue, because it does not
contain a timestamp, so it does not represent a sample but a value.
Renamed AggregatedMetricSample to AggregatedMetricValue, because it does not
contain a timestamp, so it does not represent a sample but a value.
Renamed MetricSampleVariant to MetricValueVariant.
Rename MetricSample.sample to MetricSample.value.
Rename SensorMetricSample.sample to SensorMetricSample.value.
... (truncated)
Commits
08538ce Cleanup release notes for release v0.6.0 (#212)
This release is a milestone: it fixes Black's first CVE security vulnerability. If you
run Black on untrusted input, or if you habitually put thousands of leading tab
characters in your docstrings, you are strongly encouraged to upgrade immediately to fix
CVE-2024-21503.
This release also fixes a bug in Black's AST safety check that allowed Black to make
incorrect changes to certain f-strings that are valid in Python 3.12 and higher.
Stable style
Don't move comments along with delimiters, which could cause crashes (#4248)
Strengthen AST safety check to catch more unsafe changes to strings. Previous versions
of Black would incorrectly format the contents of certain unusual f-strings containing
nested strings with the same quote type. Now, Black will crash on such strings until
support for the new f-string syntax is implemented. (#4270)
Fix a bug where line-ranges exceeding the last code line would not work as expected
(#4273)
Performance
Fix catastrophic performance on docstrings that contain large numbers of leading tab
characters. This fixes
CVE-2024-21503.
(#4278)
Documentation
Note what happens when --check is used with --quiet (#4236)
This release is a milestone: it fixes Black's first CVE security vulnerability. If you
run Black on untrusted input, or if you habitually put thousands of leading tab
characters in your docstrings, you are strongly encouraged to upgrade immediately to fix
CVE-2024-21503.
This release also fixes a bug in Black's AST safety check that allowed Black to make
incorrect changes to certain f-strings that are valid in Python 3.12 and higher.
Stable style
Don't move comments along with delimiters, which could cause crashes (#4248)
Strengthen AST safety check to catch more unsafe changes to strings. Previous versions
of Black would incorrectly format the contents of certain unusual f-strings containing
nested strings with the same quote type. Now, Black will crash on such strings until
support for the new f-string syntax is implemented. (#4270)
Fix a bug where line-ranges exceeding the last code line would not work as expected
(#4273)
Performance
Fix catastrophic performance on docstrings that contain large numbers of leading tab
characters. This fixes
CVE-2024-21503.
(#4278)
Documentation
Note what happens when --check is used with --quiet (#4236)
All postprocessors are now run on heading content.
Footnote references are now stripped from heading content. Fixes #660.
A more robust striptags is provided to convert headings to plain text.
Unlike, the markupsafe implementation, HTML entities are not unescaped.
The plain text name, rich html, and unescaped raw data-toc-label are
saved to toc_tokens, allowing users to access the full rich text content of
the headings directly from toc_tokens.
The value of data-toc-label is sanitized separate from heading content
before being written to name. This fixes a bug which allowed markup through
in certain circumstances. To access the raw unsanitized data, retrieve the
value from token['data-toc-label'] directly.
An html.unescape call is made just prior to calling slugify so that
slugify only operates on Unicode characters. Note that html.unescape is
not run on name, html, or data-toc-label.
The functions get_name and stashedHTML2text defined in the toc extension
are both deprecated. Instead, third party extensions should use some
combination of the new functions run_postprocessors, render_inner_html and
striptags.
Fixed
Include scripts/*.py in the generated source tarballs (#1430).
Ensure lines after heading in loose list are properly detabbed (#1443).
Give smarty tree processor higher priority than toc (#1440).
Permit carets (^) and square brackets (]) but explicitly exclude
backslashes (\) from abbreviations (#1444).
In attribute lists (attr_list, fenced_code), quoted attribute values are
now allowed to contain curly braces (}) (#1414).
All postprocessors are now run on heading content.
Footnote references are now stripped from heading content. Fixes #660.
A more robust striptags is provided to convert headings to plain text.
Unlike, the markupsafe implementation, HTML entities are not unescaped.
The plain text name, rich html, and unescaped raw data-toc-label are
saved to toc_tokens, allowing users to access the full rich text content of
the headings directly from toc_tokens.
The value of data-toc-label is sanitized separate from heading content
before being written to name. This fixes a bug which allowed markup through
in certain circumstances. To access the raw unsanitized data, retrieve the
value from token['data-toc-label'] directly.
An html.unescape call is made just prior to calling slugify so that
slugify only operates on Unicode characters. Note that html.unescape is
not run on name, html, or data-toc-label.
The functions get_name and stashedHTML2text defined in the toc extension
are both deprecated. Instead, third party extensions should use some
combination of the new functions run_postprocessors, render_inner_html and
striptags.
Fixed
Include scripts/*.py in the generated source tarballs (#1430).
Ensure lines after heading in loose list are properly detabbed (#1443).
Give smarty tree processor higher priority than toc (#1440).
Permit carets (^) and square brackets (]) but explicitly exclude
backslashes (\) from abbreviations (#1444).
In attribute lists (attr_list, fenced_code), quoted attribute values are
now allowed to contain curly braces (}) (#1414).
We’ve just uploaded mypy 1.9 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
python3 -m pip install -U mypy
You can read the full documentation for this release on Read the Docs.
Breaking Changes
Because the version of typeshed we use in mypy 1.9 doesn't support 3.7, neither does mypy 1.9. (Jared Hance, PR 16883)
We are planning to enable
local partial types (enabled via the
--local-partial-types flag) later this year by default. This change
was announced years ago, but now it's finally happening. This is a
major backward-incompatible change, so we'll probably include it as
part of the upcoming mypy 2.0 release. This makes daemon and
non-daemon mypy runs have the same behavior by default.
Local partial types can also be enabled in the mypy config file:
local_partial_types = True
We are looking at providing a tool to make it easier to migrate
projects to use --local-partial-types, but it's not yet clear whether
this is practical. The migration usually involves adding some
explicit type annotations to module-level and class-level variables.
Basic Support for Type Parameter Defaults (PEP 696)
This release contains new experimental support for type parameter
defaults (PEP 696). Please try it
out! This feature was contributed by Marc Mueller.
Since this feature will be officially introduced in the next Python
feature release (3.13), you will need to import TypeVar, ParamSpec
or TypeVarTuple from typing_extensions to use defaults for now.
This example adapted from the PEP defines a default for BotT:
from typing import Generic
from typing_extensions import TypeVar
This release is not a usual bug fix release -- it contains features and improvements, being a follow up
to 8.1.0, which has been yanked from PyPI.
:::
Features
#11475: Added the new consider_namespace_packages{.interpreted-text role="confval"} configuration option, defaulting to False.
If set to True, pytest will attempt to identify modules that are part of namespace packages when importing modules.
#11653: Added the new verbosity_test_cases{.interpreted-text role="confval"} configuration option for fine-grained control of test execution verbosity.
See Fine-grained verbosity <pytest.fine_grained_verbosity>{.interpreted-text role="ref"} for more details.
Improvements
#10865: pytest.warns{.interpreted-text role="func"} now validates that warnings.warn{.interpreted-text role="func"} was called with a [str]{.title-ref} or a [Warning]{.title-ref}.
Currently in Python it is possible to use other types, however this causes an exception when warnings.filterwarnings{.interpreted-text role="func"} is used to filter those warnings (see [CPython #103577](python/cpython#103577) for a discussion).
While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.
#11311: When using --override-ini for paths in invocations without a configuration file defined, the current working directory is used
as the relative directory.
Previoulsy this would raise an AssertionError{.interpreted-text role="class"}.
#11475: --import-mode=importlib <import-mode-importlib>{.interpreted-text role="ref"} now tries to import modules using the standard import mechanism (but still without changing :pysys.path{.interpreted-text role="data"}), falling back to importing modules directly only if that fails.
This means that installed packages will be imported under their canonical name if possible first, for example app.core.models, instead of having the module name always be derived from their path (for example .env310.lib.site_packages.app.core.models).
#11801: Added the iter_parents() <_pytest.nodes.Node.iter_parents>{.interpreted-text role="func"} helper method on nodes.
It is similar to listchain <_pytest.nodes.Node.listchain>{.interpreted-text role="func"}, but goes from bottom to top, and returns an iterator, not a list.
#11850: Added support for sys.last_exc{.interpreted-text role="data"} for post-mortem debugging on Python>=3.12.
#11962: In case no other suitable candidates for configuration file are found, a pyproject.toml (even without a [tool.pytest.ini_options] table) will be considered as the configuration file and define the rootdir.
#11978: Add --log-file-mode option to the logging plugin, enabling appending to log-files. This option accepts either "w" or "a" and defaults to "w".
Previously, the mode was hard-coded to be "w" which truncates the file before logging.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Updates the requirements on frequenz-api-common, black, markdown, mkdocs-material, mypy, types-markdown and pytest to permit the latest version. Updates
frequenz-api-common
to 0.6.0Release notes
Sourced from frequenz-api-common's releases.
... (truncated)
Commits
08538ce
Cleanup release notes for release v0.6.0 (#212)4978931
Cleanup release notes for release v0.6.0af97c70
Rename[Simple|Aggregated]MetricSample
to[Simple|Aggregated]MetricValue
...9ccb5b6
RenameSensorMetricSample.sample
toSensorMetricSample.value
5c0214d
RenameMetricSample.sample
toMetricSample.value
fbcc68b
RenameMetricSampleVariant
toMetricValueVariant
cb6cc75
RenameAggregatedMetricSample
toAggregatedMetricValue
56ed231
RenameSimpleMetricSample
toSimpleMetricValue
3a396c0
UnabbreviateTHD
in the Metric enum (#209)8f06c7b
UnabbreviateTHD
in the Metric enumUpdates
black
from 24.2.0 to 24.3.0Release notes
Sourced from black's releases.
Changelog
Sourced from black's changelog.
Commits
552baf8
Prepare release 24.3.0 (#4279)f000936
Fix catastrophic performance in lines_with_leading_tabs_expanded() (#4278)7b5a657
Fix --line-ranges behavior when ranges are at EOF (#4273)1abcffc
Use regex where we ignore case on windows (#4252)719e674
Fix 4227: Improve documentation for --quiet --check (#4236)e5510af
update plugin url for Thonny (#4259)6af7d11
Fix AST safety check false negative (#4270)f03ee11
Ensureblib2to3.pygram
is initialized before use (#4224)e4bfedb
fix: Don't move comments while splitting delimiters (#4248)d0287e1
Make trailing comma logic more concise (#4202)Updates
markdown
from 3.5.2 to 3.6Release notes
Sourced from markdown's releases.
Changelog
Sourced from markdown's changelog.
Commits
e524b8f
Bump version to 3.63d8afc6
Allow attr_list quoted values to contain curly braces9edba85
Refactor abbr escapinge4ab4a6
Refactor TOC sanitationa18765c
Explicitly omit carot and backslash from abbr421f1e8
Give smarty tree processor higher priority than tocc334a3e
Ensure lines after heading in loose list are properly detabbedea92856
Update the license template so GitHub can detect ita2effd6
Disable mkdocstrings show_symbol_type_toc option to work around searching iss...91f9a12
Restore Attribute symbol type in mkdocstrings templateUpdates
mkdocs-material
from 9.5.12 to 9.5.17Release notes
Sourced from mkdocs-material's releases.
Changelog
Sourced from mkdocs-material's changelog.
... (truncated)
Commits
570161a
Prepare 9.5.17 release78e93ac
Improved keyboard interactions for palette togglea3655e8
Updated Serbian translations1041766
Fixed time sneaking into default post format stringe741f80
Documentation7e13ae6
Fix typos7d6d8d7
Updated slugify documentatione71f00b
Fixed backporting of social plugin font loading logic8956524
Updated Insiders changelog0db4e66
Updated changelogUpdates
mypy
from 1.8.0 to 1.9.0Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
5ff46f8
Remove +dev.155909a
[Release 1.9] Unsupport targetting 3.7. (#16883) (#16900)6615cab
[Release 1.9] Stubtest: ignore a new protocol dunder (#16895) (#16899)b956e6a
stubtest: Private parameters can be omitted (#16507)ede0b20
Bump ruff to 0.2.0 (#16870)7bdd61f
stubgen: Fix crash on star unpack of TypeVarTuple (#16869)8c2ef9d
Update hashes in sync-typeshed.py following recent typeshed sync0dd4b6f
Revert use ofParamSpec
forfunctools.wraps
dd12a2d
Revert typeshed ctypes changed132999
Revert sum literal integer change (#13961)Updates
types-markdown
from 3.5.0.20240129 to 3.6.0.20240316Commits
Updates
pytest
from 8.0.2 to 8.1.1Release notes
Sourced from pytest's releases.
... (truncated)
Commits
81653ee
Adjust changelog manually for 8.1.1e60b4b9
Prepare release version 8.1.115fbe57
[8.1.x] Revert legacy path removals (#12093)86c3aab
[8.1.x] Do not import duplicated modules with --importmode=importlib (#12077)5b82b0c
[8.1.x] Yank version 8.1.0 (#12076)0a53681
Merge pull request #12054 from pytest-dev/release-8.1.0b9a167f
Prepare release version 8.1.000043f7
Merge pull request #12038 from bluetech/fixtures-rm-arg2indexf4e1025
Merge pull request #12048 from bluetech/fixture-teardown-excgroup43492f5
Merge pull request #12051 from jakkdl/test_debugging_pythonbreakpointDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show