Update most test/lint dependencies - #16459
Open
renovate[bot] wants to merge 2 commits into
Open
renovate[bot] wants to merge 2 commits into
renovate[bot] wants to merge 2 commits into
Conversation
Contributor
|
According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉 |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.15.20→v0.16.8v0.16.9==2.3.0→==2.3.1==26.2→==26.37.3.0→7.4.1==1.3.0.dev1→==1.3.11.3.20.38.0→0.38.2==0.15.20→==0.16.80.16.9==0.15.0→==0.15.1==0.0.59→==0.0.830.0.84==0.11.26→==0.12.180.12.21(+2)v1.29.0→v1.30.1Note: The
pre-commitmanager in Renovate is not supported by thepre-commitmaintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.Release Notes
astral-sh/ruff-pre-commit (astral-sh/ruff-pre-commit)
v0.16.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.8
v0.16.7Compare Source
v0.16.6Compare Source
v0.16.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.5
v0.16.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.4
v0.16.3Compare Source
v0.16.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.2
v0.16.1Compare Source
v0.16.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.0
v0.15.22Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.22
v0.15.21Compare Source
python/mypy (mypy)
v2.3.1Compare Source
pypa/packaging (packaging)
v26.3Compare Source
What's Changed
Features
VersionRangeAPI andSpecifierSet.to_range(), representing the versions a specifier set accepts as an interval set that supports intersection, union, difference, complement, set relations, membership tests, and filtering.VersionRange.to_specifier_set()converts a range back to aSpecifierSetwhere a PEP 440 form exists. (#1267, #1270, #1298)Metadata-Version: 2.6. (#1194)limitargument toparse_tag()for compressed tag sets. (#1220)prefer_sdist_predicateargument toPylock.select()to prefer source distributions over wheels for selected packages. (#1334)pure_python_tags()to generate the pure-Python tags for a Python version without touching the running platform. (#1346)SpecifierSet.is_subset(),SpecifierSet.is_superset(), andSpecifierSet.is_disjoint(), which compare the versions two specifier sets accept. (#1313)Behavior adaptations
linux_*platform tags overmanylinuxandmusllinuxtags on Linux. (#160)Fixes for versions and specifiers
InvalidVersioninstead ofTypeErrorwhenVersionis given a non-string. (#1319)InvalidVersionfor non-string pre-release letters passed toVersion.from_parts. (#1241)AttributeErrorwhen hashing internally trimmed versions. (#1242)SpecifierSet.is_unsatisfiablefor post-release boundary intersections. (#1257)Fixes for requirements and markers
Requirement.__hash__consistent with__eq__for trailing-zero-equivalent specifiers (e.g.foo==1.0.0andfoo==1.0.0.0), so equal requirements hash equal and deduplicate in sets and dicts. (#1232)Requirement's specifierprereleasesoverride across a pickle round trip. (#1204)InvalidRequirementinstead ofInvalidSpecifierwhen a requirement contains an invalid specifier. (#1332)==1.0.post1.*. (#1299)extraanddependency_groupsvalues in nested markers at parse time. (#1246, #1310)UndefinedComparisonwhen a set-valued variable likeextrasis used outside the membership form. (#1265)UndefinedEnvironmentName(aKeyErrorsubclass) for missing environment keys during marker evaluation. (#1276)InvalidMarker/InvalidRequirementinstead of leaking a low-level error. (#1249)Fixes for metadata and licenses
from_emailvalidation errors into oneExceptionGroupinstead of raising the first. (#1268)Description-Content-Typevalues. (#1329){field}placeholders in error messages. (#1327)unparsedinstead of asserting. (#1247)InvalidMetadataandCyclicDependencyGrouppicklable. (#1328)str.splitlinesrecognizes when writing a header withRFC822Message. (#1356)InvalidLicenseExpressionfor misplacedWITHclauses and emptyLicenseRef-names. (#1266)InvalidLicenseExpressioninstead ofKeyErrorfor aLicenseRef-with a+suffix. (#1219)Fixes for tags and filenames
InvalidTagfromparse_tag()for tags with the wrong number of components. (#1238)parse_wheel_filename()andparse_tag(). (#1234)is_normalized_namenow rejects names with collapsed double hyphens likea--b. (#1230)abi3ttags. (#1245)warnargument togeneric_tags()insys_tags(). (#1264)SystemErrorfor an empty or malformed CPythonEXT_SUFFIX. (#1271, #1301)fat3architecture name (wasfat32). (#1199)Fixes for pylock, direct URLs, and dependency groups
pylockartifact file names derived from aurlso that local versions (e.g. a wheel with2.12.1+cu130encoded as2.12.1%2Bcu130) yield a valid file name. (#1314)tagssequence inPylock.select()instead of falling back tosys_tags(). (#1349)Pylock.select()on Python builds that report a non-PEP 440python_full_version(e.g.3.15.0+). (#1179)pylockfiles. (#1244)PylockSelectErrortopackaging.pylock.__all__. (#1202)DirectUrlcredential stripping for passwords containing@. (#1218)direct_url. (#1240)direct_url. (#1297)InvalidRequirementerrors while resolving dependency groups instead of leaking them. (#1302)Performance
SpecifierandSpecifierSetfiltering with the new range engine. (#1120, #1259)_manylinuxmodule lookup process-wide. (#1254)__slots__toRequirementand the token classes. (#1320, #1258)parse_tag(), and skipplatform.mac_ver()when the version and arch are given. (#1253, #1256, #1236, #1255)Documentation
packaging.pylock. (#1339)packaging.metadatafields are validated. (#1342)RFC822Policyin the low-levelpackaging.metadatainterface. (#1222)versionadded/versionchangeddirectives and many small docstring fixes across the API reference. (#1205, #1207, #1208, #1209, #1211, #1216, #1217, #1223, #1272, #1273, #1274, #1291, #1300, #1303, #1317, #1344)Internal
New Contributors
Full Changelog: pypa/packaging@26.2...26.3
pycqa/flake8 (pycqa/flake8)
v7.4.1Compare Source
v7.4.0Compare Source
python-jsonschema/check-jsonschema (python-jsonschema/check-jsonschema)
v0.38.2Compare Source
clickdeclared as a dependencyv0.38.1Compare Source
compose-spec, dependabot, github-actions, github-workflows, gitlab-ci, mergify,
renovate, taskfile, travis, woodpecker-ci (2026-09-20)
check-jsonschemanow has a logo. Thanks toMylah Birdie <https://www.instagram.com/mylahbirdie>__!astral-sh/ruff (ruff)
v0.16.8Compare Source
Released on 2026-09-16.
Bug fixes
TypedDictkeyword arguments correctly (#28584)flake8-simplify] Detect nestedasync withunder sync parent (SIM117) (#27821)flake8-simplify] Preserve operand order inSIM109fix (#27824)pyupgrade] Preserve required parentheses in multilineUP040fixes (#28164)pyupgrade] SkipTypeVarTupleandParamSpecconversions with bounds or constraints (UP040,UP046,UP047) (#28505)Rule changes
__lazy_modules__(#28459)TypedDictclass keywords (#28533)typing.TypeForm(#28507)__lazy_modules__(#28491)flake8-type-checking] Prefer lazy imports overTYPE_CHECKINGon Python 3.15 and later (TC001,TC002,TC003) (#28541)pyupgrade] Make the fix forUP040always unsafe (#28526)pyupgrade] Stop recommending deprecatedByteStringaliases (UP035) (#28498)ruff,flake8-use-pathlib] Recognize theparent_modeargument (RUF064,PTH103) (#28528)ruff] Detect\Zinpytest.raises()match patterns (RUF043) (#28598)CLI
Configuration
flake8-tidy-imports] Addextend-banned-api(#28644)Contributors
v0.16.7Compare Source
Released on 2026-09-10.
Preview features
ruff] Add rule for default values on method receivers (RUF077) (#26700)ruff] Recognizere.prefixmatch(RUF039,RUF055) (#28311)Bug fixes
flake8-implicit-str-concat] Mark fix unsafe when it creates a docstring (ISC003) (#27981)flake8-tidy-imports] Skip fixes for multi-member imports (TID254) (#26584)pylint] GateImportCycleErroron Python 3.15 (PLW0133) (#28310)Rule changes
D211andD203rule conflict diagnostic (#28444)sliceandfrozendictgenerics (#28477)__cached__for Python 3.15 (#28476)pyupgrade] Stop recommending removedtyping.no_type_check_decorator(UP035) (#28475)Performance
Documentation
line-lengthpath in--configexample (#28392)Other changes
Contributors
v0.16.6Compare Source
Released on 2026-09-03.
Preview features
pytest-fixture-autouseto therestrictioncategory (#28219)flake8-pytest-style] Add an autofix forPT020(#27993)flake8-tidy-imports] Prevent fix loop betweenTID254andTID255(#28262)isort] Exclude pragma comments from line length calculation (I001) (#27313)Bug fixes
flake8-async,pylint] Recognizebuiltins.open(ASYNC230,PLW1514) (#28021)flake8-bugbear] Fix panic onmatchsubjects (B031) (#27781)flake8-datetimez] Rejecttzinfo=Nonefordatetimebounds (DTZ901) (#28022)flake8-pytest-style] Avoid duplicatePT017diagnostics (#27918)ruff] Removelint.externalhint for Ruff-specific suppressions (RUF102) (#27923)Rule changes
flake8-use-pathlib] Add display-only fix foros.listdir(PTH208) (#28027)Documentation
lint.per-file-ignores(#28106)flake8-async] Document thread offloading (ASYNC240) (#28008)pyupgrade] Clarify defaultencodingargument handling (UP012) (#27315)Other changes
Contributors
v0.16.5Compare Source
Released on 2026-08-27.
Preview features
Bug fixes
flake8-async] Detect blocking generic HTTP requests (ASYNC210) (#28024)flake8-datetimez] Allow timezone-safestrptimechains (DTZ007) (#28023)flake8-simplify] Respect side effects inlambdadefaults (SIM401) (#28000)Server
ClientOptionsdoc comment (#27978)Documentation
Contributors
v0.16.4Compare Source
Released on 2026-08-20.
Preview features
flake8-use-pathlib] Add autofix forPTH116(#26460)refurb] Restrictdelete-full-sliceto lists (FURB131) (#27711)refurb] SkipFURB101andFURB103when theopenargument is a file descriptor (#27643)Bug fixes
InvalidInstructionon Windows CPUs that do not supportPOPCNT(#27803)pyflakes] Emit semantic syntax errors in string type definitions asF722(#27835)pylint] Allowos._exitimports inimport-private-name(PLC2701) (#27738)Rule changes
ruff] Addctypes.LittleEndianStructureand related types to existing exception (RUF012) (#27753)nonlocal(#27628)Server
Documentation
Other changes
Contributors
v0.16.3Compare Source
Released on 2026-08-13.
Preview features
pylint] Fix false negatives on negative numbers (PLR6104) (#27251)pyupgrade] Add rule to replacewhile 1withwhile True(UP048) (#27190)Bug fixes
flake8-bandit] Also check keyword arguments (S602,S603,S607,S609) (#27687)pylint] Allowcontinueinfinallyon Python 3.8 (#27626)pylint] FixPLE1307false positive with bools (#27651)pylint] Fix false positives and negatives with%bformat character (PLE1300,PLE1307) (#27560)pylint] Improve handling of concatenated strings (PLE1300) (#27659)Rule changes
numpy] Makenp.chararrayautofix backwards-compatible (NPY201) (#27527)Performance
Exprsize to 64 bytes (#27591)CLI
ruff check --statisticsoutput (#27646)Documentation
ruff] Also suggestasyncio.TaskGroup(RUF006) (#27461)Other changes
Contributors
v0.16.2Compare Source
Released on 2026-08-06.
Bug fixes
flake8-pyi] Avoid false positives onsingledispatchfunctions (PYI041) (#27335)Server
Contributors
v0.16.1Compare Source
Released on 2026-07-30.
Preview features
flake8-pytest-style] Make fixes safe by default and unsafe only when comments are present (PT018) (#27201)pyupgrade] Skip fix when a defaultedTypeVarprecedes a non-defaulted one (UP040,UP046,UP047) (#27133)ruff] Fix false positive with unpacked arguments (RUF065) (#26959)Bug fixes
gen-lsp-typesto gracefully handle unknown enumeration values in LSP messages (#27230)flake8-bugbear] Markrangeas immutable (B008) (#27247)flake8-comprehensions] NFKC-normalize keyword names inC408fix (#26813)flake8-return] Fix false positive when variable is read infinallyclause (RET504) (#25441)pydocstyle] Skip section detection inside RST directive bodies (D214,D405,D413) (#23635)refurb] Parenthesizeyieldarguments in theFURB192fix (#27192)Rule changes
flake8-pytest-style] MarkPT022fixes as unsafe (#26440)refurb] Mark fixes that remove unknown separators as unsafe (FURB105) (#27200)Server
Documentation
pyconMarkdown formatting (#27153)flake8-bandit] DocumentTYPE_CHECKINGexception (S101) (#27004)flake8-import-conventions] Document thatextend-aliasescan override default aliases (#27191)pylint] Add missing fix safety gotchas fornon-augmented-assignment(PLR6104) (#27250)Other changes
Contributors
v0.16.0Compare Source
Released on 2026-07-23.
Check out the blog post for a migration
guide and overview of the changes!
Breaking changes
Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for
more details and the new Default Rules page for a
full listing of the enabled rules.
Ruff can now format Python code blocks in Markdown files and will do this by default. See the
documentation for more details.
Ruff now supports
ruff: ignorecomments at the ends of lines, likenoqacomments, or on the line preceding a diagnostic. For example, these both suppress anunused-import(F401) diagnostic:Fixes are now shown in
checkandformat --checkoutput:This example also shows off the Markdown formatting.
format --checknow supports the same output formats as the linter, including thegithubandgitlaboutputs for rendering annotations in CI:See the CLI help or documentation for the
full list of supported formats.
The
filename,location,end_location,fix.edits[].location, andfix.edits[].end_locationfields in the JSON output format may now be
nullrather than defaulting to the empty string androw 1, column 1, respectively.
Stabilization
The following rules have been stabilized and are no longer in preview:
airflow3-incompatible-function-signature(
AIR303)missing-copyright-notice(
CPY001)unnecessary-from-float(FURB164)sorted-min-max(FURB192)implicit-string-concatenation-in-collection-literal(
ISC004)log-exception-outside-except-handler(
LOG004)invalid-bool-return-type(
PLE0304)too-many-positional-arguments(
PLR0917)stop-iteration-return(PLR1708)none-not-at-end-of-union(
RUF036)access-annotations-from-class-dict(
RUF063)duplicate-entry-in-dunder-all(
RUF068)The following behaviors have been stabilized:
blind-except(BLE001) is now suppressed whenthe exception is logged via
loggingmethods other thancritical,errorandexception.future-required-type-annotation(
FA102) now checks for additional PEP 585-compatibleAPIs, such as those from
collections.abc.f-string-in-get-text-func-call(
INT001),format-in-get-text-func-call(
INT002), andprintf-in-get-text-func-call(
INT003) now check for additional common ways of using thegettextmodule, such as assigningit to
builtins._.suspicious-url-open-usage(
S310) now resolves local string literal bindings to avoid more false positives.snmp-insecure-version(S508) andsnmp-weak-cryptography(S509) nowsupport the recommended API from newer versions of PySNMP.
typing-text-str-alias(UP019) nowrecognizes
typing_extensions.Textin addition totyping.Text.Preview features
pyupgrade] Fix false positive withTypeVardefault before Python 3.13 (UP040) (#26888)Bug fixes
ruff] Fix missing check on unrecognized early bound (RUF016) (#26986)Rule changes
Performance
pyupgrade] Speed upunnecessary-future-import(UP010) (#27047)Documentation
ruff] Add missing period in "Why is this bad?" section (RUF200) (#26930)flake8-simplify] Clarifyos.environbehavior on Windows (SIM112) (#26972)pydocstyle] Document fix safety (D400) (#26971)Contributors
v0.15.22Compare Source
Release Notes
Released on 2026-07-16.
Preview features
pycodestyle] Add an autofix forE402(#22212)refurb] Allow subclassing builtins in stub files (FURB189) (#26812)ruff] Add rule to replacenoqacomments withruff:ignore(RUF105) (#26423)ruff] Add rule to use human-readable names inruff:ignorecomments (RUF106) (#26682)ruff] Add rule to use human-readable names in configuration selectors (RUF201) (#26772)Bug fixes
flake8-pyi] Fix false positive in__all__(PYI053) (#26872)Rule changes
pylint] Ignore mutable type updates inredefined-loop-name(PLW2901) (#25733)Performance
Documentation
flake8-datetimez] Clarify naming guidance fordatetime.today(DTZ002) (#26658)pycodestyle] DocumentE731fix safety (#26847)ruff] Clarify intentional async contexts forunused-async(RUF029) (#26641)Contributors
Install ruff 0.15.22
Install prebuilt binaries via shell script
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.22/ruff-installer.ps1 | iex"Download ruff 0.15.22