head 1.42; access; symbols pkgsrc-2026Q1:1.39.0.2 pkgsrc-2026Q1-base:1.39 pkgsrc-2025Q4:1.34.0.2 pkgsrc-2025Q4-base:1.34 pkgsrc-2025Q3:1.24.0.2 pkgsrc-2025Q3-base:1.24 pkgsrc-2025Q2:1.18.0.2 pkgsrc-2025Q2-base:1.18 pkgsrc-2025Q1:1.12.0.2 pkgsrc-2025Q1-base:1.12 pkgsrc-2024Q4:1.8.0.2 pkgsrc-2024Q4-base:1.8 pkgsrc-2024Q3:1.5.0.2 pkgsrc-2024Q3-base:1.5 pkgsrc-2024Q2:1.1.0.2 pkgsrc-2024Q2-base:1.1; locks; strict; comment @# @; 1.42 date 2026.04.26.21.01.14; author wiz; state dead; branches; next 1.41; commitid z2C5Xl63a0fHOvDG; 1.41 date 2026.04.26.10.45.24; author wiz; state Exp; branches; next 1.40; commitid rVSoqiG5u22rpsDG; 1.40 date 2026.04.02.19.07.40; author wiz; state Exp; branches; next 1.39; commitid Ailyk03t17lzXpAG; 1.39 date 2026.03.09.17.13.57; author wiz; state Exp; branches; next 1.38; commitid fwjK2LX6Kawo6kxG; 1.38 date 2026.02.16.11.52.56; author wiz; state Exp; branches; next 1.37; commitid SEIRQnsz5iO40BuG; 1.37 date 2026.02.08.22.09.53; author wiz; state Exp; branches; next 1.36; commitid qxpY9Lwdg7PGFCtG; 1.36 date 2026.01.19.11.40.24; author wiz; state Exp; branches; next 1.35; commitid jclSRvwN0mMxPZqG; 1.35 date 2026.01.11.08.35.36; author adam; state Exp; branches; next 1.34; commitid tB05zoBDexX14XpG; 1.34 date 2025.12.15.12.26.51; author adam; state Exp; branches; next 1.33; commitid ckCrsngqM5V9dvmG; 1.33 date 2025.12.05.10.09.24; author adam; state Exp; branches; next 1.32; commitid deLwm1mUsapXLclG; 1.32 date 2025.11.29.16.29.54; author adam; state Exp; branches; next 1.31; commitid AOpeYTCxB4vs4tkG; 1.31 date 2025.11.24.10.05.07; author wiz; state Exp; branches; next 1.30; commitid Qze47SXkiH0w6NjG; 1.30 date 2025.11.10.09.52.46; author wiz; state Exp; branches; next 1.29; commitid wWAWJQjftZWbuZhG; 1.29 date 2025.11.02.20.15.05; author wiz; state Exp; branches; next 1.28; commitid x7AtD2pK3aOCb1hG; 1.28 date 2025.10.30.13.34.27; author wiz; state Exp; branches; next 1.27; commitid NM4F66eBb7pa4BgG; 1.27 date 2025.10.19.19.12.14; author wiz; state Exp; branches; next 1.26; commitid aqMD8D8ku9XXhdfG; 1.26 date 2025.10.03.08.26.37; author adam; state Exp; branches; next 1.25; commitid 2PYoTcmiVHOee6dG; 1.25 date 2025.09.25.20.12.50; author wiz; state Exp; branches; next 1.24; commitid jxQFqYDpdO1Ao8cG; 1.24 date 2025.08.25.18.34.55; author wiz; state Exp; branches; next 1.23; commitid YvB7EHNvQRzLQ88G; 1.23 date 2025.08.20.09.55.53; author adam; state Exp; branches; next 1.22; commitid 0G8s6CE4Ijjz8s7G; 1.22 date 2025.08.08.16.50.14; author adam; state Exp; branches; next 1.21; commitid LOIx35fFGadBOW5G; 1.21 date 2025.07.27.09.43.23; author wiz; state Exp; branches; next 1.20; commitid roOd2yJFlJWdQm4G; 1.20 date 2025.07.06.08.57.37; author wiz; state Exp; branches; next 1.19; commitid H7ifq8emzLIkgF1G; 1.19 date 2025.07.01.20.43.20; author wiz; state Exp; branches; next 1.18; commitid A3oGDem8qjYpk51G; 1.18 date 2025.06.09.09.37.41; author adam; state Exp; branches; next 1.17; commitid 43Ozzc0XZjWLlcYF; 1.17 date 2025.06.04.10.25.56; author adam; state Exp; branches; next 1.16; commitid KTAfwdG2TZHjMyXF; 1.16 date 2025.05.18.10.21.00; author wiz; state Exp; branches; next 1.15; commitid eCh4Krs6rmdDinVF; 1.15 date 2025.05.09.18.44.49; author adam; state Exp; branches; next 1.14; commitid xBo9lnUfqpGhngUF; 1.14 date 2025.05.04.15.04.28; author wiz; state Exp; branches; next 1.13; commitid gnWJPpQsNvkMjBTF; 1.13 date 2025.04.20.21.20.04; author wiz; state Exp; branches; next 1.12; commitid ss1peF1qCo0wQPRF; 1.12 date 2025.03.02.20.31.19; author wiz; state Exp; branches; next 1.11; commitid 2iQy3ArTw0ms9xLF; 1.11 date 2025.02.23.11.45.54; author wiz; state Exp; branches; next 1.10; commitid yjM26DGeHHE9tAKF; 1.10 date 2025.01.07.11.55.11; author adam; state Exp; branches; next 1.9; commitid ygAClU9R1BFU1yEF; 1.9 date 2024.12.27.09.08.38; author wiz; state Exp; branches; next 1.8; commitid plZ09aueHQeNs7DF; 1.8 date 2024.10.24.17.45.57; author adam; state Exp; branches; next 1.7; commitid hqeKE2zEOTtInWuF; 1.7 date 2024.10.17.19.12.26; author adam; state Exp; branches; next 1.6; commitid suDQEb59UZGc53uF; 1.6 date 2024.10.07.14.54.24; author pin; state Exp; branches; next 1.5; commitid efsyq9KXoLxPYJsF; 1.5 date 2024.08.25.10.37.56; author wiz; state Exp; branches; next 1.4; commitid F6Bui0NypjVmWbnF; 1.4 date 2024.08.11.07.04.14; author wiz; state Exp; branches; next 1.3; commitid q6KnvLJkl5H8dnlF; 1.3 date 2024.08.06.12.52.45; author wiz; state Exp; branches; next 1.2; commitid rx5A31ehEnaEiLkF; 1.2 date 2024.07.09.05.36.54; author wiz; state Exp; branches; next 1.1; commitid GPRbrxD9COLVM7hF; 1.1 date 2024.06.08.18.51.10; author wiz; state Exp; branches; next ; commitid MQCkN5fXIDJQaddF; desc @@ 1.42 log @py-ruff: switch to CARGO_GITHUB_CRATES @ text @$NetBSD: patch-Cargo.toml,v 1.41 2026/04/26 10:45:24 wiz Exp $ Depends on unpublished crates. Can't use cargo.mk to fetch it. --- Cargo.toml.orig 2006-07-24 01:21:28.000000000 +0000 +++ Cargo.toml @@@@ -125,7 +125,7 @@@@ lsp-server = { version = "0.7.6" } libcst = { version = "1.8.4", default-features = false } log = { version = "0.4.17" } lsp-server = { version = "0.7.6" } -lsp-types = { git = "https://github.com/astral-sh/lsp-types.git", rev = "e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c", features = [ +lsp-types = { path = "../lsp-types-e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c", features = [ "proposed", ] } matchit = { version = "0.9.0" } @ 1.41 log @py-ruff: update to 0.15.12. Preview features Implement #ruff:file-ignore file-level suppressions (#23599) Implement #ruff:ignore logical-line suppressions (#23404) Revert preview changes to displayed diagnostic severity in LSP (#24789) [airflow] Implement task-branch-as-short-circuit (AIR004) (#23579) [flake8-bugbear] Fix break/continue handling in loop-iterator-mutation (B909) (#24440) [pylint] Fix PLC2701 for type parameter scopes (#24576) Rule changes [pandas-vet] Suggest .array as well in PD011 (#24805) CLI Respect default Unix permissions for cache files (#24794) Documentation [pylint] Fix PLR0124 description not to claim self-comparison always returns the same value (#24749) [pyupgrade] Expand docs on reusable TypeVars and scoping (UP046) (#24153) Improve rules table accessibility (#24711) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.40 2026/04/02 19:07:40 wiz Exp $ @ 1.40 log @py-ruff: update to 0.15.8. Preview features [ruff] New rule unnecessary-if (RUF050) (#24114) [ruff] New rule useless-finally (RUF072) (#24165) [ruff] New rule f-string-percent-format (RUF073): warn when using % operator on an f-string (#24162) [pyflakes] Recognize frozendict as a builtin for Python 3.15+ (#24100) Bug fixes [flake8-async] Use fully-qualified anyio.lowlevel import in autofix (ASYNC115) (#24166) [flake8-bandit] Check tuple arguments for partial paths in S607 (#24080) [pyflakes] Skip undefined-name (F821) for conditionally deleted variables (#24088) E501/W505/formatter: Exclude nested pragma comments from line width calculation (#24071) Fix %foo? parsing in IPython assignment expressions (#24152) analyze graph: resolve string imports that reference attributes, not just modules (#24058) Rule changes [eradicate] ignore ty: ignore comments in ERA001 (#24192) [flake8-bandit] Treat sys.executable as trusted input in S603 (#24106) [flake8-self] Recognize Self annotation and self assignment in SLF001 (#24144) [pyflakes] F507: Fix false negative for non-tuple RHS in %-formatting (#24142) [refurb] Parenthesize generator arguments in FURB142 fixer (#24200) Performance Speed up diagnostic rendering (#24146) Server Warn when Markdown files are skipped due to preview being disabled (#24150) Documentation Clarify extend-ignore and extend-select settings documentation (#24064) Mention AI policy in PR template (#24198) Other changes Use trusted publishing for NPM packages (#24171) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.38 2026/02/16 11:52:56 wiz Exp $ a15 9 @@@@ -153,7 +153,7 @@@@ rustc-stable-hash = { version = "0.1.2" } rustc-hash = { version = "2.0.0" } rustc-stable-hash = { version = "0.1.2" } # When updating salsa, make sure to also update the revision in `fuzz/Cargo.toml` -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "2f687a17ceea8ec7aaa605561ccbde938ccef086", default-features = false, features = [ +salsa = { path = "../salsa-2f687a17ceea8ec7aaa605561ccbde938ccef086", default-features = false, features = [ "compact_str", "macros", "salsa_unstable", @ 1.39 log @py-ruff: update to 0.15.5. Preview features Discover Markdown files by default in preview mode (#23434) [perflint] Extend PERF102 to comprehensions and generators (#23473) [refurb] Fix FURB101 and FURB103 false positives when I/O variable is used later (#23542) [ruff] Add fix for none-not-at-end-of-union (RUF036) (#22829) [ruff] Fix false positive for re.split with empty string pattern (RUF055) (#23634) Bug fixes [fastapi] Handle callable class dependencies with __call__ method (FAST003) (#23553) [pydocstyle] Fix numpy section ordering (D420) (#23685) [pyflakes] Fix false positive for names shadowing re-exports (F811) (#23356) [pyupgrade] Avoid inserting redundant None elements in UP045 (#23459) Documentation Document extension mapping for Markdown code formatting (#23574) Update default Python version examples (#23605) Other changes Publish releases to Astral mirror (#23616) @ text @d7 1 a7 1 @@@@ -127,7 +127,7 @@@@ lsp-server = { version = "0.7.6" } d16 1 a16 1 @@@@ -155,7 +155,7 @@@@ rustc-stable-hash = { version = "0.1.2" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "53421c2fff87426fa0bb51cab06632b87646de13", default-features = false, features = [ +salsa = { path = "../salsa-53421c2fff87426fa0bb51cab06632b87646de13", default-features = false, features = [ @ 1.38 log @py-ruff: update to 0.15.1. Preview features [airflow] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (AIR321) (#22376) [airflow] Third positional parameter not named ti_key should be flagged for BaseOperatorLink.get_link (AIR303) (#22828) [flake8-gettext] Fix false negatives for plural argument of ngettext (INT001, INT002, INT003) (#21078) [pyflakes] Fix infinite loop in preview fix for unused-import (F401) (#23038) [pygrep-hooks] Detect non-existent mock methods in standalone expressions (PGH005) (#22830) [pylint] Allow dunder submodules and improve diagnostic range (PLC2701) (#22804) [pyupgrade] Improve diagnostic range for tuples (UP024) (#23013) [refurb] Check subscripts in tuple do not use lambda parameters in reimplemented-operator (FURB118) (#23079) [ruff] Detect mutable defaults in field calls (RUF008) (#23046) [ruff] Ignore std cmath.inf (RUF069) (#23120) [ruff] New rule float-equality-comparison (RUF069) (#20585) Don't format unlabeled Markdown code blocks (#23106) Markdown formatting support in LSP (#23063) Support Quarto Markdown language markers (#22947) Support formatting pycon Markdown code blocks (#23112) Use extension mapping to select Markdown code block language (#22934) Bug fixes Avoid false positive for undefined variables in FAST001 (#23224) Avoid introducing syntax errors for FAST003 autofix (#23227) Avoid suggesting InitVar for __post_init__ that references PEP 695 type parameters (#23226) Deduplicate type variables in generic functions (#23225) Fix exception handler parenthesis removal for Python 3.14+ (#23126) Fix f-string middle panic when parsing t-strings (#23232) Wrap RUF020 target for multiline fixes (#23210) Wrap UP007 target for multiline fixes (#23208) Fix missing diagnostics for last range suppression in file (#23242) [pyupgrade] Fix syntax error on string with newline escape and comment (UP037) (#22968) Rule changes Use ruff instead of Ruff as the program name in GitHub output format (#23240) [PT006] Fix syntax error when unpacking nested tuples in parametrize fixes (#22441) (#22464) [airflow] Catch deprecated attribute access from context key for Airflow 3.0 (AIR301) (#22850) [airflow] Capture deprecated arguments and a decorator (AIR301) (#23170) [flake8-boolean-trap] Add multiprocessing.Value to excluded functions for FBT003 (#23010) [flake8-bugbear] Add a secondary annotation showing the previous occurrence (B033) (#22634) [flake8-type-checking] Add sub-diagnostic showing the runtime use of an annotation (TC004) (#23091) [isort] Support configurable import section heading comments (#23151) [ruff] Improve the diagnostic for RUF012 (#23202) Formatter Suppress diagnostic output for format --check --silent (#17736) Documentation Add tabbed shell completion documentation (#23169) Explain how to enable Markdown formatting for pre-commit hook (#23077) Fixed import in runtime-evaluated-decorators example (#23187) Update ruff server contributing guide (#23060) Other changes Exclude WASM artifacts from GitHub releases (#23221) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.37 2026/02/08 22:09:53 wiz Exp $ d11 2 a12 2 -lsp-types = { git = "https://github.com/astral-sh/lsp-types.git", rev = "3512a9f", features = [ +lsp-types = { path = "../lsp-types-3512a9f33eadc5402cfab1b8f7340824c8ca1439", features = [ @ 1.37 log @py-ruff: update to 0.15.0. Breaking changes Ruff now formats your code according to the 2026 style guide. See the formatter section below or in the blog post for a detailed list of changes. The linter now supports block suppression comments. For example, to suppress N803 for all parameters in this function: # ruff: disable[N803] def foo( legacyArg1, legacyArg2, legacyArg3, legacyArg4, ): ... # ruff: enable[N803] See the documentation for more details. The ruff:alpine Docker image is now based on Alpine 3.23 (up from 3.21). The ruff:debian and ruff:debian-slim Docker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm." Binaries for the ppc64 (64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed. Ruff now resolves all extended configuration files before falling back on a default Python version. Stabilization The following rules have been stabilized and are no longer in preview: blocking-http-call-httpx-in-async-function (ASYNC212) blocking-path-method-in-async-function (ASYNC240) blocking-input-in-async-function (ASYNC250) map-without-explicit-strict (B912) if-exp-instead-of-or-operator (FURB110) single-item-membership-test (FURB171) missing-maxsplit-arg (PLC0207) unnecessary-lambda (PLW0108) unnecessary-empty-iterable-within-deque-call (RUF037) in-empty-collection (RUF060) legacy-form-pytest-raises (RUF061) non-octal-permissions (RUF064) invalid-rule-code (RUF102) invalid-suppression-comment (RUF103) unmatched-suppression-comment (RUF104) replace-str-enum (UP042) The following behaviors have been stabilized: The --output-format flag is now respected when running Ruff in --watch mode, and the full output format is now used by default, matching the regular CLI output. builtin-attribute-shadowing (A003) now detects the use of shadowed built-in names in additional contexts like decorators, default arguments, and other attribute definitions. duplicate-union-member (PYI016) now considers typing.Optional when searching for duplicate union members. split-static-string (SIM905) now offers an autofix when the maxsplit argument is provided, even without a sep argument. dict-get-with-none-default (SIM910) now applies to more types of key expressions. super-call-with-parameters (UP008) now has a safe fix when it will not delete comments. unnecessary-default-type-args (UP043) now applies to stub (.pyi) files on Python versions before 3.13. Formatter This release introduces the new 2026 style guide, with the following changes: Lambda parameters are now kept on the same line and lambda bodies will be parenthesized to let them break across multiple lines (#21385) Parentheses around tuples of exceptions in except clauses will now be removed on Python 3.14 and later (#20768) A single empty line is now permitted at the beginning of function bodies (#21110) Parentheses are avoided for long as captures in match statements (#21176) Extra spaces between escaped quotes and ending triple quotes can now be omitted (#17216) Blank lines are now enforced before classes with decorators in stub files (#18888) Preview features Apply formatting to Markdown code blocks (#22470, #22990, #22996) See the documentation for more details. Bug fixes Fix suppression indentation matching (#22903) Rule changes Customize where the fix_title sub-diagnostic appears (#23044) [FastAPI] Add sub-diagnostic explaining why a fix was unavailable (FAST002) (#22565) [flake8-annotations] Don't suggest NoReturn for functions raising NotImplementedError (ANN201, ANN202, ANN205, ANN206) (#21311) [pyupgrade] Make fix unsafe if it deletes comments (UP017) (#22873) [pyupgrade] Make fix unsafe if it deletes comments (UP020) (#22872) [pyupgrade] Make fix unsafe if it deletes comments (UP033) (#22871) [refurb] Do not add abc.ABC if already present (FURB180) (#22234) [refurb] Make fix unsafe if it deletes comments (FURB110) (#22768) [ruff] Add sub-diagnostics with permissions (RUF064) (#22972) Server Identify notebooks by LSP didOpen instead of .ipynb file extension (#22810) CLI Add --color CLI option to force colored output (#22806) Documentation Document - stdin convention in CLI help text (#22817) [refurb] Change example to re.search with ^ anchor (FURB167) (#22984) Fix link to Sphinx code block directives (#23041) [pydocstyle] Clarify which quote styles are allowed (D300) (#22825) [flake8-bugbear] Improve docs for no-explicit-stacklevel (B028) (#22538) Other changes Update MSRV to 1.91 (#22874) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.36 2026/01/19 11:40:24 wiz Exp $ d7 1 a7 1 @@@@ -126,7 +126,7 @@@@ lsp-server = { version = "0.7.6" } d16 1 a16 1 @@@@ -154,7 +154,7 @@@@ rustc-stable-hash = { version = "0.1.2" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "e9b9ddd4bec50ac777e9353bbb8f1180e5669d89", default-features = false, features = [ +salsa = { path = "../salsa-e9b9ddd4bec50ac777e9353bbb8f1180e5669d89", default-features = false, features = [ @ 1.36 log @py-ruff: update to 0.14.13. 0.14.13 This is a follow-up release to 0.14.12. Because of an issue publishing the WASM packages, there is no GitHub release or Git tag for 0.14.12, although the package was published to PyPI. The contents of the 0.14.13 release are identical to 0.14.12. 0.14.12 Preview features [flake8-blind-except] Allow more logging methods (BLE001) (#22057) [ruff] Respect lint.pydocstyle.property-decorators in RUF066 (#22515) Bug fixes Fix configuration path in --show-settings (#22478) Respect fmt: skip for multiple statements on the same logical line (#22119) Rule changes [pydocstyle] Update Rust crate imperative to v1.0.7 (D401) (#22519) [isort] Insert imports in alphabetical order (I002) (#22493) Documentation Add llms.txt support for documentation (#22463) Use prek in documentation and CI (#22505) [flake8-pytest-style] Add check parameter example to PT017 docs (#22546) [ruff] Make example error out-of-the-box (RUF103) (#22558) [ruff] document RUF100 trailing comment fix behavior (#22479) Other changes wasm: Require explicit logging initialization (#22587) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.35 2026/01/11 08:35:36 adam Exp $ d5 1 a5 1 --- Cargo.toml.orig 1970-01-01 00:00:00.000000000 +0000 d7 1 a7 1 @@@@ -123,7 +123,7 @@@@ lsp-server = { version = "0.7.6" } d16 1 a16 1 @@@@ -150,7 +150,7 @@@@ rustc-stable-hash = { version = "0.1.2" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "9860ff6ca0f1f8f3a8d6b832020002790b501254", default-features = false, features = [ +salsa = { path = "../salsa-9860ff6ca0f1f8f3a8d6b832020002790b501254", default-features = false, features = [ @ 1.35 log @py-ruff: updated to 0.14.11 0.14.11 Preview features Consolidate diagnostics for matched disable/enable suppression comments Report diagnostics for invalid/unmatched range suppression comments [airflow] Passing positional argument into airflow.lineage.hook.HookLineageCollector.create_asset is not allowed (AIR303) [refurb] Mark FURB192 fix as always unsafe [ruff] Add non-empty-init-module (RUF067) Bug fixes Fix GitHub format for multi-line diagnostics [flake8-unused-arguments] Mark **kwargs in TypeVar as used (ARG001) Rule changes Add help: subdiagnostics for several Ruff rules that can sometimes appear to disagree with ty [pylint] Demote PLW1510 fix to display-only [pylint] Ignore identical members (PLR1714) [pylint] Improve diagnostic range for PLC0206 [ruff] Improve fix title for RUF102 invalid rule code [flake8-simplify]: Avoid unnecessary builtins import for SIM105 Configuration Allow Python 3.15 as valid target-version value in preview Check required-version before parsing rules Include configured src directories when resolving graphs Documentation Update T201 suggestion to not use root logger to satisfy LOG015 Fix iter example in unsafe fixes doc [flake8_print] better suggestion for basicConfig in T201 docs [pylint] Restore the fix safety docs for PLW0133 Fix Jupyter notebook discovery info for editors @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.34 2025/12/15 12:26:51 adam Exp $ d5 1 a5 1 --- Cargo.toml.orig 2006-07-24 01:21:28.000000000 +0000 d7 1 a7 1 @@@@ -121,7 +121,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -146,7 +146,7 @@@@ regex-automata = { version = "0.4.9" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "309c249088fdeef0129606fa34ec2eefc74736ff", default-features = false, features = [ +salsa = { path = "../salsa-309c249088fdeef0129606fa34ec2eefc74736ff", default-features = false, features = [ @ 1.34 log @py-ruff: updated to 0.14.9 0.14.9 Preview features [ruff] New RUF100 diagnostics for unused range suppressions [pylint] Detect subclasses of builtin exceptions (PLW0133) Bug fixes Fix comment placement in lambda parameters Skip over trivia tokens after re-lexing [flake8-bandit] Fix false positive when using non-standard CSafeLoader path (S506). [flake8-bugbear] Accept immutable slice default arguments (B008) Rule changes [pydocstyle] Suppress D417 for parameters with Unpack annotations Performance Use memchr for computing line indexes Documentation Document *.pyw is included by default in preview Document range suppressions, reorganize suppression docs Update mkdocs-material to 9.7.0 (Insiders now free) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.33 2025/12/05 10:09:24 adam Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "55e5e7d32fa3fc189276f35bb04c9438f9aedbd1", default-features = false, features = [ +salsa = { path = "../salsa-55e5e7d32fa3fc189276f35bb04c9438f9aedbd1", default-features = false, features = [ @ 1.33 log @py-ruff: updated to 0.14.8 0.14.8 Preview features [flake8-bugbear] Catch yield expressions within other statements (B901) [flake8-use-pathlib] Mark fixes unsafe for return type changes (PTH104, PTH105, PTH109, PTH115) Bug fixes Fix syntax error false positives for await outside functions [flake8-simplify] Fix truthiness assumption for non-iterable arguments in tuple/list/set calls (SIM222, SIM223) Documentation Suggest using --output-file option in GitLab integration Other changes [syntax-error] Default type parameter followed by non-default type parameter @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.32 2025/11/29 16:29:54 adam Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "59aa1075e837f5deb0d6ffb24b68fedc0f4bc5e0", default-features = false, features = [ +salsa = { path = "../salsa-59aa1075e837f5deb0d6ffb24b68fedc0f4bc5e0", default-features = false, features = [ @ 1.32 log @py-ruff: updated to 0.14.7 0.14.7 Preview features [flake8-bandit] Handle string literal bindings in suspicious-url-open-usage (S310) [pylint] Fix PLR1708 false positives on nested functions [pylint] Fix suppression for empty dict without tuple key annotation (PLE1141) [ruff] Add rule RUF066 to detect unnecessary class properties [ruff] Catch more dummy variable uses (RUF052) Bug fixes [server] Set severity for non-rule diagnostics [flake8-implicit-str-concat] Avoid invalid fix in (ISC003) [parser] Fix panic when parsing IPython escape command expressions CLI Show partial fixability indicator in statistics output @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.31 2025/11/24 10:05:07 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "17bc55d699565e5a1cb1bd42363b905af2f9f3e7", default-features = false, features = [ +salsa = { path = "../salsa-17bc55d699565e5a1cb1bd42363b905af2f9f3e7", default-features = false, features = [ @ 1.31 log @py-ruff: update to 0.14.6. Preview features [flake8-bandit] Support new PySNMP API paths (S508, S509) (#21374) Bug fixes Adjust own-line comment placement between branches (#21185) Avoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (#20418) Fix panic when formatting comments in unary expressions (#21501) Respect fmt: skip for compound statements on a single line (#20633) [refurb] Fix FURB103 autofix (#21454) [ruff] Fix false positive for complex conversion specifiers in logging-eager-conversion (RUF065) (#21464) Rule changes [ruff] Avoid false positive on ClassVar reassignment (RUF012) (#21478) CLI Render hyperlinks for lint errors (#21514) Add a ruff analyze option to skip over imports in TYPE_CHECKING blocks (#21472) Documentation Limit eglot-format hook to eglot-managed Python buffers (#21459) Mention force-exclude in "Configuration > Python file discovery" (#21500) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.30 2025/11/10 09:52:46 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "a885bb4c4c192741b8a17418fef81a71e33d111e", default-features = false, features = [ +salsa = { path = "../salsa-a885bb4c4c192741b8a17418fef81a71e33d111e", default-features = false, features = [ @ 1.30 log @py-ruff: update to 0.14.4. Preview features [formatter] Allow newlines after function headers without docstrings (#21110) [formatter] Avoid extra parentheses for long match patterns with as captures (#21176) [refurb] Expand fix safety for keyword arguments and Decimals (FURB164) (#21259) [refurb] Preserve argument ordering in autofix (FURB103) (#20790) Bug fixes [server] Fix missing diagnostics for notebooks (#21156) [flake8-bugbear] Ignore non-NFKC attribute names in B009 and B010 (#21131) [refurb] Fix false negative for underscores before sign in Decimal constructor (FURB157) (#21190) [ruff] Fix false positives on starred arguments (RUF057) (#21256) Rule changes [airflow] extend deprecated argument concurrency in airflow..DAG (AIR301) (#21220) Documentation Improve extend docs (#21135) [flake8-comprehensions] Fix typo in C416 documentation (#21184) Revise Ruff setup instructions for Zed editor (#20935) Other changes Make ruff analyze graph work with jupyter notebooks (#21161) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.29 2025/11/02 20:15:05 wiz Exp $ d5 1 a5 1 --- Cargo.toml.orig 1970-01-01 00:00:00.000000000 +0000 d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "05a9af7f554b64b8aadc2eeb6f2caf73d0408d09", default-features = false, features = [ +salsa = { path = "../salsa-05a9af7f554b64b8aadc2eeb6f2caf73d0408d09", default-features = false, features = [ @ 1.29 log @py-ruff: update to 0.14.3. Preview features Respect --output-format with --watch (#21097) [pydoclint] Fix false positive on explicit exception re-raising (DOC501, DOC502) (#21011) [pyflakes] Revert to stable behavior if imports for module lie in alternate branches for F401 (#20878) [pylint] Implement stop-iteration-return (PLR1708) (#20733) [ruff] Add support for additional eager conversion patterns (RUF065) (#20657) Bug fixes Fix finding keyword range for clause header after statement ending with semicolon (#21067) Fix syntax error false positive on nested alternative patterns (#21104) [ISC001] Fix panic when string literals are unclosed (#21034) [flake8-django] Apply DJ001 to annotated fields (#20907) [flake8-pyi] Fix PYI034 to not trigger on metaclasses (PYI034) (#20881) [flake8-type-checking] Fix TC003 false positive with future-annotations (#21125) [pyflakes] Fix false positive for __class__ in lambda expressions within class definitions (F821) (#20564) [pyupgrade] Fix false positive for TypeVar with default on Python <3.13 (UP046,UP047) (#21045) Rule changes Add missing docstring sections to the numpy list (#20931) [airflow] Extend airflow.models..Param check (AIR311) (#21043) [airflow] Warn that airflow....DAG.create_dagrun has been removed (AIR301) (#21093) [refurb] Preserve digit separators in Decimal constructor (FURB157) (#20588) Server Avoid sending an unnecessary "clear diagnostics" message for clients supporting pull diagnostics (#21105) Documentation [flake8-bandit] Fix correct example for S308 (#21128) Other changes Clearer error message when line-length goes beyond threshold (#21072) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.28 2025/10/30 13:34:27 wiz Exp $ d7 1 a7 1 @@@@ -119,7 +119,7 @@@@ libc = { version = "0.2.153" } d15 2 a16 2 matchit = { version = "0.8.1" } @@@@ -144,7 +144,7 @@@@ regex-automata = { version = "0.4.9" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "cdd0b85516a52c18b8a6d17a2279a96ed6c3e198", default-features = false, features = [ +salsa = { path = "../salsa-cdd0b85516a52c18b8a6d17a2279a96ed6c3e198", default-features = false, features = [ @ 1.28 log @py-ruff: update to 0.14.2. Preview features [flake8-gettext] Resolve qualified names and built-in bindings (INT001, INT002, INT003) (#19045) Bug fixes Avoid reusing nested, interpolated quotes before Python 3.12 (#20930) Catch syntax errors in nested interpolations before Python 3.12 (#20949) [fastapi] Handle ellipsis defaults in FAST002 autofix (#20810) [flake8-simplify] Skip SIM911 when unknown arguments are present (#20697) [pyupgrade] Always parenthesize assignment expressions in fix for f-string (UP032) (#21003) [pyupgrade] Fix UP032 conversion for decimal ints with underscores (#21022) [fastapi] Skip autofix for keyword and __debug__ path params (FAST003) (#20960) Rule changes [flake8-bugbear] Skip B905 and B912 for fewer than two iterables and no starred arguments (#20998) [ruff] Use DiagnosticTag for more pyflakes and pandas rules (#20801) CLI Improve JSON output from ruff rule (#20168) Documentation Add source to testimonial (#20971) Document when a rule was added (#21035) Other changes [syntax-errors] Name is parameter and global (#20426) [syntax-errors] Alternative match patterns bind different names (#20682) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.27 2025/10/19 19:12:14 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "d38145c29574758de7ffbe8a13cd4584c3b09161", default-features = false, features = [ +salsa = { path = "../salsa-d38145c29574758de7ffbe8a13cd4584c3b09161", default-features = false, features = [ @ 1.27 log @py-ruff: update to 0.14.1. Preview features [formatter] Remove parentheses around multiple exception types on Python 3.14+ (#20768) [flake8-bugbear] Omit annotation in preview fix for B006 (#20877) [flake8-logging-format] Avoid dropping implicitly concatenated pieces in the G004 fix (#20793) [pydoclint] Implement docstring-extraneous-parameter (DOC102) (#20376) [pyupgrade] Extend UP019 to detect typing_extensions.Text (UP019) (#20825) [pyupgrade] Fix false negative for TypeVar with default argument in non-pep695-generic-class (UP046) (#20660) Bug fixes Fix false negatives in Truthiness::from_expr for lambdas, generators, and f-strings (#20704) Fix syntax error false positives for escapes and quotes in f-strings (#20867) Fix syntax error false positives on parenthesized context managers (#20846) [fastapi] Fix false positives for path parameters that FastAPI doesn't recognize (FAST003) (#20687) [flake8-pyi] Fix operator precedence by adding parentheses when needed (PYI061) (#20508) [ruff] Suppress diagnostic for f-string interpolations with debug text (RUF010) (#20525) Rule changes [airflow] Add warning to airflow.datasets.DatasetEvent usage (AIR301) (#20551) [flake8-bugbear] Mark B905 and B912 fixes as unsafe (#20695) Use DiagnosticTag for more rules - changes display in editors (#20758,#20734) Documentation Update Python compatibility from 3.13 to 3.14 in README.md (#20852) Update lint.flake8-type-checking.quoted-annotations docs (#20765) Update setup instructions for Zed 0.208.0+ (#20902) [flake8-datetimez] Clarify docs for several rules (#20778) Fix typo in RUF015 description (#20873) Other changes Reduce binary size (#20863) Improved error recovery for unclosed strings (including f- and t-strings) (#20848) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.26 2025/10/03 08:26:37 adam Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "ef9f9329be6923acd050c8dddd172e3bc93e8051", default-features = false, features = [ +salsa = { path = "../salsa-ef9f9329be6923acd050c8dddd172e3bc93e8051", default-features = false, features = [ @ 1.26 log @py-ruff: updated to 0.13.3 0.13.3 Preview features Display diffs for ruff format --check and add support for different output formats [pyflakes] Handle some common submodule import situations for unused-import (F401) [ruff] Do not flag %r + repr() combinations (RUF065) Bug fixes [cli] Add conflict between --add-noqa and --diff options [pylint] Exempt required imports from PLR0402 [pylint] Fix missing max-nested-blocks in settings display [pyupgrade] Prevent infinite loop with I002 and UP026 Rule changes [flake8-simplify] Improve help message clarity (SIM105) Documentation Add the The Basics title back to CONTRIBUTING.md Fixed documentation for try_consider_else [isort] Clarify dependency between order-by-type and case-sensitive settings [pylint] Clarify fix safety to include left-hand hashability (PLR6201) Other changes [playground] Fix quick fixes for empty ranges in playground @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.25 2025/09/25 20:12:50 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "29ab321b45d00daa4315fa2a06f7207759a8c87e", default-features = false, features = [ +salsa = { path = "../salsa-29ab321b45d00daa4315fa2a06f7207759a8c87e", default-features = false, features = [ @ 1.25 log @py-ruff: update to 0.13.2. 0.13.2 Preview features [flake8-async] Implement blocking-path-method (ASYNC240) (#20264) [flake8-bugbear] Implement map-without-explicit-strict (B912) (#20429) [flake8-bultins] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (A003) (#20178) [ruff] Implement logging-eager-conversion (RUF065) (#19942) Include .pyw files by default when linting and formatting (#20458) Bug fixes Deduplicate input paths (#20105) [flake8-comprehensions] Preserve trailing commas for single-element lists (C409) (#19571) [flake8-pyi] Avoid syntax error from conflict with PIE790 (PYI021) (#20010) [flake8-simplify] Correct fix for positive maxsplit without separator (SIM905) (#20056) [pyupgrade] Fix UP008 not to apply when __class__ is a local variable (#20497) [ruff] Fix B004 to skip invalid hasattr/getattr calls (#20486) [ruff] Replace -nan with nan when using the value to construct a Decimal (FURB164 ) (#20391) Documentation Add 'Finding ways to help' to CONTRIBUTING.md (#20567) Update import path to ruff-wasm-web (#20539) [flake8-bandit] Clarify the supported hashing functions (S324) (#20534) Other changes [playground] Allow hover quick fixes to appear for overlapping diagnostics (#20527) [playground] Fix non‑BMP code point handling in quick fixes and markers (#20526) 0.13.1 Preview features [flake8-simplify] Detect unnecessary None default for additional key expression types (SIM910) (#20343) [flake8-use-pathlib] Add fix for PTH123 (#20169) [flake8-use-pathlib] Fix PTH101, PTH104, PTH105, PTH121 fixes (#20143) [flake8-use-pathlib] Make PTH111 fix unsafe because it can change behavior (#20215) [pycodestyle] Fix E301 to only trigger for functions immediately within a class (#19768) [refurb] Mark single-item-membership-test fix as always unsafe (FURB171) (#20279) Bug fixes Handle t-strings for token-based rules and suppression comments (#20357) [flake8-bandit] Fix truthiness: dict-only ** displays not truthy for shell (S602, S604, S609) (#20177) [flake8-simplify] Fix diagnostic to show correct method name for str.rsplit calls (SIM905) (#20459) [flynt] Use triple quotes for joined raw strings with newlines (FLY002) (#20197) [pyupgrade] Fix false positive when class name is shadowed by local variable (UP008) (#20427) [pyupgrade] Prevent infinite loop with I002 and UP026 (#20327) [ruff] Recognize t-strings, generators, and lambdas in invalid-index-type (RUF016) (#20213) Rule changes [RUF102] Respect rule redirects in invalid rule code detection (#20245) [flake8-bugbear] Mark the fix for unreliable-callable-check as always unsafe (B004) (#20318) [ruff] Allow dataclass attribute value instantiation from nested frozen dataclass (RUF009) (#20352) CLI Add fixes to output-format=sarif (#20300) Treat panics as fatal diagnostics, sort panics last (#20258) Documentation [ruff] Add analyze.string-imports-min-dots to settings (#20375) Update README.md with Albumentations new repository URL (#20415) Other changes Bump MSRV to Rust 1.88 (#20470) Enable inline noqa for multiline strings in playground (#20442) 0.13.0 Breaking changes Several rules can now add from __future__ import annotations automatically TC001, TC002, TC003, RUF013, and UP037 now add from __future__ import annotations as part of their fixes when the lint.future-annotations setting is enabled. This allows the rules to move more imports into TYPE_CHECKING blocks (TC001, TC002, and TC003), use PEP 604 union syntax on Python versions before 3.10 (RUF013), and unquote more annotations (UP037). Full module paths are now used to verify first-party modules Ruff now checks that the full path to a module exists on disk before categorizing it as a first-party import. This change makes first-party import detection more accurate, helping to avoid false positives on local directories with the same name as a third-party dependency, for example. See the FAQ section on import categorization for more details. Deprecated rules must now be selected by exact rule code Ruff will no longer activate deprecated rules selected by their group name or prefix. As noted below, the two remaining deprecated rules were also removed in this release, so this won't affect any current rules, but it will still affect any deprecations in the future. The deprecated macOS configuration directory fallback has been removed Ruff will no longer look for a user-level configuration file at ~/Library/Application Support/ruff/ruff.toml on macOS. This feature was deprecated in v0.5 in favor of using the XDG specification (usually resolving to ~/.config/ruff/ruff.toml), like on Linux. The fallback and accompanying deprecation warning have now been removed. Removed Rules The following rules have been removed: pandas-df-variable-name (PD901) non-pep604-isinstance (UP038) Stabilization The following rules have been stabilized and are no longer in preview: airflow-dag-no-schedule-argument (AIR002) airflow3-removal (AIR301) airflow3-moved-to-provider (AIR302) airflow3-suggested-update (AIR311) airflow3-suggested-to-move-to-provider (AIR312) long-sleep-not-forever (ASYNC116) f-string-number-format (FURB116) os-symlink (PTH211) generic-not-last-base-class (PYI059) redundant-none-literal (PYI061) pytest-raises-ambiguous-pattern (RUF043) unused-unpacked-variable (RUF059) useless-class-metaclass-type (UP050) The following behaviors have been stabilized: assert-raises-exception (B017) now checks for direct calls to unittest.TestCase.assert_raises and pytest.raises instead of only the context manager forms. missing-trailing-comma (COM812) and prohibited-trailing-comma (COM819) now check for trailing commas in PEP 695 type parameter lists. raw-string-in-exception (EM101) now also checks for byte strings in exception messages. invalid-mock-access (PGH005) now checks for AsyncMock methods like not_awaited in addition to the synchronous variants. useless-import-alias (PLC0414) no longer applies to __init__.py files, where it conflicted with one of the suggested fixes for unused-import (F401). bidirectional-unicode (PLE2502) now also checks for U+061C (Arabic Letter Mark). The fix for multiple-with-statements (SIM117) is now marked as always safe. Preview features [pyupgrade] Enable UP043 in stub files (#20027) Bug fixes [pyupgrade] Apply UP008 only when the __class__ cell exists (#19424) [ruff] Fix empty f-string detection in in-empty-collection (RUF060) (#20249) Server Add support for using uv as an alternative formatter backend (#19665) Documentation [pep8-naming] Fix formatting of __all__ (N816) (#20301) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.24 2025/08/25 18:34:55 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "3713cd7eb30821c0c086591832dd6f59f2af7fe7", default-features = false, features = [ +salsa = { path = "../salsa-3713cd7eb30821c0c086591832dd6f59f2af7fe7", default-features = false, features = [ @ 1.24 log @py-ruff: update to 0.12.10. Preview features [flake8-simplify] Implement fix for maxsplit without separator (SIM905) (#19851) [flake8-use-pathlib] Add fixes for PTH102 and PTH103 (#19514) Bug fixes [isort] Handle multiple continuation lines after module docstring (I002) (#19818) [pyupgrade] Avoid reporting __future__ features as unnecessary when they are used (UP010) (#19769) [pyupgrade] Handle nested Optionals (UP045) (#19770) Rule changes [pycodestyle] Make E731 fix unsafe instead of display-only for class assignments (#19700) [pyflakes] Add secondary annotation showing previous definition (F811) (#19900) Documentation Fix description of global config file discovery strategy (#19188) Update outdated links to https://typing.python.org/en/latest/source/stubs.html (#19992) [flake8-annotations] Remove unused import in example (ANN401) (#20000) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.23 2025/08/20 09:55:53 adam Exp $ d7 2 a8 2 @@@@ -118,7 +118,7 @@@@ libc = { version = "0.2.153" } libcst = { version = "1.1.0", default-features = false } d16 1 a16 1 @@@@ -143,7 +143,7 @@@@ regex-automata = { version = "0.4.9" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "a3ffa22cb26756473d56f867aedec3fd907c4dd9", default-features = false, features = [ +salsa = { path = "../salsa-a3ffa22cb26756473d56f867aedec3fd907c4dd9", default-features = false, features = [ @ 1.23 log @py-ruff: updated to 0.12.9 0.12.9 Preview features [airflow] Add check for airflow.secrets.cache.SecretCache (AIR301) [ruff] Offer a safe fix for multi-digit zeros (RUF064) Bug fixes [flake8-blind-except] Fix BLE001 false-positive on raise ... from None [flake8-comprehensions] Fix false positive for C420 with attribute, subscript, or slice assignment targets [flake8-simplify] Fix handling of U+001C..U+001F whitespace (SIM905) Rule changes [pylint] Use lowercase hex characters to match the formatter (PLE2513) Documentation Fix lint.future-annotations link Other changes Build riscv64 binaries for release Add rule code to error description in GitLab output Improve rendering of the full output format @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.22 2025/08/08 16:50:14 adam Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "918d35d873b2b73a0237536144ef4d22e8d57f27", default-features = false, features = [ +salsa = { path = "../salsa-918d35d873b2b73a0237536144ef4d22e8d57f27", default-features = false, features = [ @ 1.22 log @py-ruff: updated to 0.12.8 0.12.8 Preview features [flake8-use-pathlib] Expand PTH201 to check all PurePath subclasses Bug fixes [flake8-blind-except] Change BLE001 to correctly parse exception tuples [flake8-errmsg] Exclude typing.cast from EM101 [flake8-simplify] Fix raw string handling in SIM905 for embedded quotes [flake8-import-conventions] Avoid false positives for NFKC-normalized __debug__ import aliases in ICN001 [isort] Fix syntax error after docstring ending with backslash (I002) [pylint] Mark PLC0207 fixes as unsafe when *args unpacking is present [pyupgrade] Prevent infinite loop with I002 (UP010, UP035) [ruff] Parenthesize generator expressions in f-strings (RUF010) Rule changes [eradicate] Don't flag pyrefly pragmas as unused code (ERA001) Documentation Replace "associative" with "commutative" in docs for RUF036 Fix copy and line separator colors in dark mode Fix link to typing documentation [refurb] Make more examples error out-of-the-box Other changes Include column numbers in GitLab output format Always expand tabs to four spaces in diagnostics Update pre-commit's ruff id @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.21 2025/07/27 09:43:23 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "b121ee46c4483ba74c19e933a3522bd548eb7343", default-features = false, features = [ +salsa = { path = "../salsa-b121ee46c4483ba74c19e933a3522bd548eb7343", default-features = false, features = [ @ 1.21 log @py-ruff: update to 0.12.5. Preview features [flake8-use-pathlib] Add autofix for PTH101, PTH104, PTH105, PTH121 (#19404) [ruff] Support byte strings (RUF055) (#18926) Bug fixes Fix unreachable panic in parser (#19183) [flake8-pyi] Skip fix if all Union members are None (PYI016) (#19416) [perflint] Parenthesize generator expressions (PERF401) (#19325) [pylint] Handle empty comments after line continuation (PLR2044) (#19405) Rule changes [pep8-naming] Fix N802 false positives for CGIHTTPRequestHandler and SimpleHTTPRequestHandler (#19432) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.20 2025/07/06 08:57:37 wiz Exp $ d7 1 a7 1 @@@@ -116,7 +116,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -141,7 +141,7 @@@@ regex-automata = { version = "0.4.9" } d20 5 a24 5 -salsa = { git = "https://github.com/salsa-rs/salsa", rev = "dba66f1a37acca014c2402f231ed5b361bd7d8fe" } +salsa = { path = "../salsa-dba66f1a37acca014c2402f231ed5b361bd7d8fe" } schemars = { version = "0.8.16" } seahash = { version = "4.1.0" } serde = { version = "1.0.197", features = ["derive"] } @ 1.20 log @py-ruff: update to 0.12.2. Preview features [flake8-pyi] Expand Optional[A] to A | None (PYI016) (#18572) [pyupgrade] Mark UP008 fix safe if no comments are in range (#18683) Bug fixes [flake8-comprehensions] Fix C420 to prepend whitespace when needed (#18616) [perflint] Fix PERF403 panic on attribute or subscription loop variable (#19042) [pydocstyle] Fix D413 infinite loop for parenthesized docstring (#18930) [pylint] Fix PLW0108 autofix introducing a syntax error when the lambda's body contains an assignment expression (#18678) [refurb] Fix false positive on empty tuples (FURB168) (#19058) [ruff] Allow more field calls from attrs (RUF009) (#19021) [ruff] Fix syntax error introduced for an empty string followed by a u-prefixed string (UP025) (#18899) Rule changes [flake8-executable] Allow uvx in shebang line (EXE003) (#18967) [pandas] Avoid flagging PD002 if pandas is not imported (#18963) [pyupgrade] Avoid PEP-604 unions with typing.NamedTuple (UP007, UP045) (#18682) Documentation Document link between import-outside-top-level (PLC0415) and lint.flake8-tidy-imports.banned-module-level-imports (#18733) Fix description of the format.skip-magic-trailing-comma example (#19095) [airflow] Make AIR302 example error out-of-the-box (#18988) [airflow] Make AIR312 example error out-of-the-box (#18989) [flake8-annotations] Make ANN401 example error out-of-the-box (#18974) [flake8-async] Make ASYNC100 example error out-of-the-box (#18993) [flake8-async] Make ASYNC105 example error out-of-the-box (#19002) [flake8-async] Make ASYNC110 example error out-of-the-box (#18975) [flake8-async] Make ASYNC210 example error out-of-the-box (#18977) [flake8-async] Make ASYNC220, ASYNC221, and ASYNC222 examples error out-of-the-box (#18978) [flake8-async] Make ASYNC251 example error out-of-the-box (#18990) [flake8-bandit] Make S201 example error out-of-the-box (#19017) [flake8-bandit] Make S604 and S609 examples error out-of-the-box (#19049) [flake8-bugbear] Make B028 example error out-of-the-box (#19054) [flake8-bugbear] Make B911 example error out-of-the-box (#19051) [flake8-datetimez] Make DTZ011 example error out-of-the-box (#19055) [flake8-datetimez] Make DTZ901 example error out-of-the-box (#19056) [flake8-pyi] Make PYI032 example error out-of-the-box (#19061) [flake8-pyi] Make example error out-of-the-box (PYI014, PYI015) (#19097) [flake8-pyi] Make example error out-of-the-box (PYI042) (#19101) [flake8-pyi] Make example error out-of-the-box (PYI059) (#19080) [flake8-pyi] Make example error out-of-the-box (PYI062) (#19079) [flake8-pytest-style] Make example error out-of-the-box (PT023) (#19104) [flake8-pytest-style] Make example error out-of-the-box (PT030) (#19105) [flake8-quotes] Make example error out-of-the-box (Q003) (#19106) [flake8-simplify] Make example error out-of-the-box (SIM110) (#19113) [flake8-simplify] Make example error out-of-the-box (SIM113) (#19109) [flake8-simplify] Make example error out-of-the-box (SIM401) (#19110) [pyflakes] Fix backslash in docs (F621) (#19098) [pylint] Fix PLC0415 example (#18970) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.19 2025/07/01 20:43:20 wiz Exp $ d7 1 a7 1 @@@@ -112,7 +112,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -137,7 +137,7 @@@@ regex-automata = { version = "0.4.9" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa", rev = "fc00eba89e5dcaa5edba51c41aa5f309b5cb126b" } +salsa = { path = "../salsa-fc00eba89e5dcaa5edba51c41aa5f309b5cb126b" } @ 1.19 log @py-ruff: update to 0.12.1. 0.12.1 Preview features [flake8-errmsg] Extend EM101 to support byte strings (#18867) [flake8-use-pathlib] Add autofix for PTH202 (#18763) [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005) (#18547) [pylint] Ignore __init__.py files in (PLC0414) (#18400) [ruff] Trigger RUF037 for empty string and byte strings (#18862) [formatter] Fix missing blank lines before decorated classes in .pyi files (#18888) Bug fixes Avoid generating diagnostics with per-file ignores (#18801) Handle parenthesized arguments in remove_argument (#18805) [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014) (#18737) [flake8-pytest-style] Enforce pytest import for decorators (#18779) [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator (#18792) [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator (#18782) [flake8-raise] Make fix unsafe if it deletes comments (RSE102) (#18788) [flake8-simplify] Fix SIM911 autofix creating a syntax error (#18793) [flake8-simplify] Fix false negatives for shadowed bindings (SIM910, SIM911) (#18794) [flake8-simplify] Preserve original behavior for except () and bare except (SIM105) (#18213) [flake8-pyi] Fix PYI041's fix causing TypeError with None | None | ... (#18637) [perflint] Fix PERF101 autofix creating a syntax error and mark autofix as unsafe if there are comments in the list call expr (#18803) [perflint] Fix false negative in PERF401 (#18866) [pylint] Avoid flattening nested min/max when outer call has single argument (PLW3301) (#16885) [pylint] Fix PLC2801 autofix creating a syntax error (#18857) [pylint] Mark PLE0241 autofix as unsafe if there's comments in the base classes (#18832) [pylint] Suppress PLE2510/PLE2512/PLE2513/PLE2514/PLE2515 autofix if the text contains an odd number of backslashes (#18856) [refurb] Detect more exotic float literals in FURB164 (#18925) [refurb] Fix FURB163 autofix creating a syntax error for yield expressions (#18756) [refurb] Mark FURB129 autofix as unsafe if there's comments in the readlines call (#18858) [ruff] Fix false positives and negatives in RUF010 (#18690) Fix casing of analyze.direction variant names (#18892) Rule changes Fix f-string interpolation escaping in generated fixes (#18882) [flake8-return] Mark RET501 fix unsafe if comments are inside (#18780) [flake8-async] Fix detection for large integer sleep durations in ASYNC116 rule (#18767) [flake8-async] Mark autofix for ASYNC115 as unsafe if the call expression contains comments (#18753) [flake8-bugbear] Mark autofix for B004 as unsafe if the hasattr call expr contains comments (#18755) [flake8-comprehension] Mark autofix for C420 as unsafe if there's comments inside the dict comprehension (#18768) [flake8-comprehensions] Handle template strings for comprehension fixes (#18710) [flake8-future-annotations] Add autofix (FA100) (#18903) [pyflakes] Mark F504/F522/F523 autofix as unsafe if there's a call with side effect (#18839) [pylint] Allow fix with comments and document performance implications (PLW3301) (#18936) [pylint] Detect more exotic NaN literals in PLW0177 (#18630) [pylint] Fix PLC1802 autofix creating a syntax error and mark autofix as unsafe if there's comments in the len call (#18836) [pyupgrade] Extend version detection to include sys.version_info.major (UP036) (#18633) [ruff] Add lint rule RUF064 for calling chmod with non-octal integers (#18541) [ruff] Added cls.__dict__.get('__annotations__') check (RUF063) (#18233) [ruff] Frozen dataclass default should be valid (RUF009) (#18735) Server Consider virtual path for various server actions (#18910) Documentation Add fix safety sections (#18940,#18841,#18802,#18837,#18800,#18415,#18853,#18842) Use updated pre-commit id (#18718) [perflint] Small docs improvement to PERF401 (#18786) [pyupgrade]: Use super(), not __super__ in error messages (UP008) (#18743) [flake8-pie] Small docs fix to PIE794 (#18829) [flake8-pyi] Correct collections-named-tuple example to use PascalCase assignment (#16884) [flake8-pie] Add note on type checking benefits to unnecessary-dict-kwargs (PIE804) (#18666) [pycodestyle] Clarify PEP 8 relationship to whitespace-around-operator rules (#18870) Other changes Disallow newlines in format specifiers of single quoted f- or t-strings (#18708) [flake8-logging] Add fix safety section to LOG002 (#18840) [pyupgrade] Add fix safety section to UP010 (#18838) 0.12.0 Release Notes Check out the blog post for a migration guide and overview of the changes! Breaking changes Detection of more syntax errors Ruff now detects version-related syntax errors, such as the use of the match statement on Python versions before 3.10, and syntax errors emitted by CPython's compiler, such as irrefutable match patterns before the final case arm. New default Python version handling for syntax errors Ruff will default to the latest supported Python version (3.13) when checking for the version-related syntax errors mentioned above to prevent false positives in projects without a Python version configured. The default in all other cases, like applying lint rules, is unchanged and remains at the minimum supported Python version (3.9). Updated f-string formatting Ruff now formats multi-line f-strings with format specifiers to avoid adding a line break after the format specifier. This addresses a change to the Python grammar in version 3.13.4 that made such a line break a syntax error. rust-toolchain.toml is no longer included in source distributions The rust-toolchain.toml is used to specify a higher Rust version than Ruff's minimum supported Rust version (MSRV) for development and building release artifacts. However, when present in source distributions, it would also cause downstream package maintainers to pull in the same Rust toolchain, even if their available toolchain was MSRV-compatible. Removed Rules The following rules have been removed: suspicious-xmle-tree-usage (S320) Deprecated Rules The following rules have been deprecated: pandas-df-variable-name Stabilization The following rules have been stabilized and are no longer in preview: for-loop-writes (FURB122) check-and-remove-from-set (FURB132) verbose-decimal-constructor (FURB157) fromisoformat-replace-z (FURB162) int-on-sliced-str (FURB166) exc-info-outside-except-handler (LOG014) import-outside-top-level (PLC0415) unnecessary-dict-index-lookup (PLR1733) nan-comparison (PLW0177) eq-without-hash (PLW1641) pytest-parameter-with-default-argument (PT028) pytest-warns-too-broad (PT030) pytest-warns-with-multiple-statements (PT031) invalid-formatter-suppression-comment (RUF028) dataclass-enum (RUF049) class-with-mixed-type-vars (RUF053) unnecessary-round (RUF057) starmap-zip (RUF058) non-pep604-annotation-optional (UP045) non-pep695-generic-class (UP046) non-pep695-generic-function (UP047) private-type-parameter (UP049) The following behaviors have been stabilized: collection-literal-concatenation (RUF005) now recognizes slices, in addition to list literals and variables. The fix for readlines-in-for (FURB129) is now marked as always safe. if-else-block-instead-of-if-exp (SIM108) will now further simplify expressions to use or instead of an if expression, where possible. unused-noqa (RUF100) now checks for file-level noqa comments as well as inline comments. subprocess-without-shell-equals-true (S603) now accepts literal strings, as well as lists and tuples of literal strings, as trusted input. boolean-type-hint-positional-argument (FBT001) now applies to types that include bool, like bool | int or typing.Optional[bool], in addition to plain bool annotations. non-pep604-annotation-union (UP007) has now been split into two rules. UP007 now applies only to typing.Union, while non-pep604-annotation-optional (UP045) checks for use of typing.Optional. UP045 has also been stabilized in this release, but you may need to update existing include, ignore, or noqa settings to accommodate this change. Preview features [ruff] Check for non-context-manager use of pytest.raises, pytest.warns, and pytest.deprecated_call (RUF061) (#17368) [syntax-errors] Raise unsupported syntax error for template strings prior to Python 3.14 (#18664) Bug fixes Add syntax error when conversion flag does not immediately follow exclamation mark (#18706) Add trailing space around readlines (#18542) Fix \r and \r\n handling in t- and f-string debug texts (#18673) Hug closing } when f-string expression has a format specifier (#18704) [flake8-pyi] Avoid syntax error in the case of starred and keyword arguments (PYI059) (#18611) [flake8-return] Fix RET504 autofix generating a syntax error (#18428) [pep8-naming] Suppress fix for N804 and N805 if the recommended name is already used (#18472) [pycodestyle] Avoid causing a syntax error in expressions spanning multiple lines (E731) (#18479) [pyupgrade] Suppress UP008 if super is shadowed (#18688) [refurb] Parenthesize lambda and ternary expressions (FURB122, FURB142) (#18592) [ruff] Handle extra arguments to deque (RUF037) (#18614) [ruff] Preserve parentheses around deque in fix for unnecessary-empty-iterable-within-deque-call (RUF037) (#18598) [ruff] Validate arguments before offering a fix (RUF056) (#18631) [ruff] Skip fix for RUF059 if dummy name is already bound (#18509) [pylint] Fix PLW0128 to check assignment targets in square brackets and after asterisks (#18665) Rule changes Fix false positive on mutations in return statements (B909) (#18408) Treat ty: comments as pragma comments (#18532) [flake8-pyi] Apply custom-typevar-for-self to string annotations (PYI019) (#18311) [pyupgrade] Don't offer a fix for Optional[None] (UP007, UP045) (#18545) [pyupgrade] Fix super(__class__, self) detection (UP008) (#18478) [refurb] Make the fix for FURB163 unsafe for log2, log10, *args, and deleted comments (#18645) Server Support cancellation requests (#18627) Documentation Drop confusing second * from glob pattern example for per-file-target-version (#18709) Update Neovim configuration examples (#18491) [pylint] De-emphasize __hash__ = Parent.__hash__ (PLW1641) ([#18613](https... @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.18 2025/06/09 09:37:41 adam Exp $ d7 1 a7 1 @@@@ -106,7 +106,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -131,7 +131,7 @@@@ regex-automata = { version = "0.4.9" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "09627e450566f894956710a3fd923dc80462ae6d" } +salsa = { path = "../salsa-09627e450566f894956710a3fd923dc80462ae6d" } @ 1.18 log @py-ruff: updated to 0.11.13 0.11.13 Preview features [airflow] Add unsafe fix for module moved cases (AIR301,AIR311,AIR312,AIR302) [refurb] Add coverage of set and frozenset calls (FURB171) [refurb] Mark FURB180 fix unsafe when class has bases Bug fixes [perflint] Fix missing parentheses for lambda and ternary conditions (PERF401, PERF403) [pyupgrade] Apply UP035 only on py313+ for get_type_hints() [pyupgrade] Make fix unsafe if it deletes comments (UP004,UP050) Rule changes [fastapi] Avoid false positive for class dependencies (FAST003) Documentation Update editor setup docs for Neovim and Vim Other changes Support Python 3.14 template strings (t-strings) in formatter and parser @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.17 2025/06/04 10:25:56 adam Exp $ d7 1 a7 1 @@@@ -105,7 +105,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -129,7 +129,7 @@@@ regex = { version = "1.10.2" } d20 2 a21 2 -salsa = { git = "https://github.com/carljm/salsa.git", rev = "0f6d406f6c309964279baef71588746b8c67b4a3" } +salsa = { path = "../salsa-0f6d406f6c309964279baef71588746b8c67b4a3" } @ 1.17 log @py-ruff: updated to 0.11.12 0.11.12 Preview features [airflow] Revise fix titles (AIR3) [pylint] Implement missing-maxsplit-arg (PLC0207) [pyupgrade] New rule UP050 (useless-class-metaclass-type) [flake8-use-pathlib] Replace os.symlink with Path.symlink_to (PTH211) Bug fixes [flake8-bugbear] Ignore __debug__ attribute in B010 [flake8-async] Fix anyio.sleep argument name (ASYNC115, ASYNC116) [refurb] Fix FURB129 autofix generating invalid syntax Rule changes [flake8-implicit-str-concat] Add autofix for ISC003 [pycodestyle] Improve the diagnostic message for E712 [flake8-2020] Fix diagnostic message for != comparisons (YTT201) [pyupgrade] Make fix unsafe if it deletes comments (UP010) Documentation Simplify rules table to improve readability Update editor integrations link in README [flake8-bugbear] Add fix safety section (B006) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.16 2025/05/18 10:21:00 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "4818b15f3b7516555d39f5a41cb75970448bee4c" } +salsa = { path = "../salsa-4818b15f3b7516555d39f5a41cb75970448bee4c" } @ 1.16 log @py-ruff: update to 0.11.10. Preview features [ruff] Implement a recursive check for RUF060 (#17976) [airflow] Enable autofixes for AIR301 and AIR311 (#17941) [airflow] Apply try catch guard to all AIR3 rules (#17887) [airflow] Extend AIR311 rules (#17913) Bug fixes [flake8-bugbear] Ignore B028 if skip_file_prefixes is present (#18047) [flake8-pie] Mark autofix for PIE804 as unsafe if the dictionary contains comments (#18046) [flake8-simplify] Correct behavior for str.split/rsplit with maxsplit=0 (SIM905) (#18075) [flake8-simplify] Fix SIM905 autofix for rsplit creating a reversed list literal (#18045) [flake8-use-pathlib] Suppress diagnostics for all os.* functions that have the dir_fd parameter (PTH) (#17968) [refurb] Mark autofix as safe only for number literals (FURB116) (#17692) Rule changes [flake8-bandit] Skip S608 for expressionless f-strings (#17999) [flake8-pytest-style] Don't recommend usefixtures for parametrize values (PT019) (#17650) [pyupgrade] Add resource.error as deprecated alias of OSError (UP024) (#17933) CLI Disable jemalloc on Android (#18033) Documentation Update Neovim setup docs (#18108) [flake8-simplify] Add fix safety section (SIM103) (#18086) [flake8-simplify] Add fix safety section (SIM112) (#18099) [pylint] Add fix safety section (PLC0414) (#17802) [pylint] Add fix safety section (PLE4703) (#17824) [pylint] Add fix safety section (PLW1514) (#17932) [pylint] Add fix safety section (PLW3301) (#17878) [ruff] Add fix safety section (RUF007) (#17755) [ruff] Add fix safety section (RUF033) (#17760) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.15 2025/05/09 18:44:49 adam Exp $ d7 1 a7 1 @@@@ -103,7 +103,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -127,7 +127,7 @@@@ regex = { version = "1.10.2" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "7edce6e248f35c8114b4b021cdb474a3fb2813b3" } +salsa = { path = "../salsa-7edce6e248f35c8114b4b021cdb474a3fb2813b3" } @ 1.15 log @py-ruff: updated to 0.11.9 0.11.9 Preview features Default to latest supported Python version for version-related syntax errors Implement deferred annotations for Python 3.14 [airflow] Fix SQLTableCheckOperator typo (AIR302) [airflow] Remove airflow.utils.dag_parsing_context.get_parsing_context (AIR301) [airflow] Skip attribute check in try catch block (AIR301) [flake8-bandit] Mark tuples of string literals as trusted input in S603 [isort] Check full module path against project root(s) when categorizing first-party imports [ruff] Add new rule in-empty-collection (RUF060) Bug fixes Fix missing combine call for lint.typing-extensions setting [flake8-async] Fix module name in ASYNC110, ASYNC115, and ASYNC116 fixes [pyupgrade] Add spaces between tokens as necessary to avoid syntax errors in UP018 autofix [refurb] Fix false positive for float and complex numbers in FURB116 [parser] Flag single unparenthesized generator expr with trailing comma in arguments. Documentation Add instructions on how to upgrade to a newer Rust version Update code of conduct email address Add fix safety sections to PLC2801, PLR1722, and RUF013 Add link to check-typed-exception from S110 and S112 Other changes Allow passing a virtual environment to ruff analyze graph @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.14 2025/05/04 15:04:28 wiz Exp $ d7 1 a7 1 @@@@ -101,7 +101,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 2 @@@@ -124,7 +124,7 @@@@ rayon = { version = "1.10.0" } regex = { version = "1.10.2" } d18 1 @ 1.14 log @py-ruff: update to 0.11.8. Preview features [airflow] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR302, AIR311) (#17553, #17570, #17571) [airflow] Extend AIR301 rule (#17598) [airflow] Update existing AIR302 rules with better suggestions (#17542) [refurb] Mark fix as safe for readlines-in-for (FURB129) (#17644) [syntax-errors] nonlocal declaration at module level (#17559) [syntax-errors] Detect single starred expression assignment x = *y (#17624) Bug fixes [flake8-pyi] Ensure Literal[None,] | Literal[None,] is not autofixed to None | None (PYI061) (#17659) [flake8-use-pathlib] Avoid suggesting Path.iterdir() for os.listdir with file descriptor (PTH208) (#17715) [flake8-use-pathlib] Fix PTH104 false positive when rename is passed a file descriptor (#17712) [flake8-use-pathlib] Fix PTH116 false positive when stat is passed a file descriptor (#17709) [flake8-use-pathlib] Fix PTH123 false positive when open is passed a file descriptor from a function call (#17705) [pycodestyle] Fix duplicated diagnostic in E712 (#17651) [pylint] Detect global declarations in module scope (PLE0118) (#17411) [syntax-errors] Make async-comprehension-in-sync-comprehension more specific (#17460) Configuration Add option to disable typing_extensions imports (#17611) Documentation Fix example syntax for the lint.pydocstyle.ignore-var-parameters option (#17740) Add fix safety sections (ASYNC116, FLY002, D200, RUF005, RUF017, RUF027, RUF028, RUF057) (#17497, #17496, #17502, #17484, #17480, #17485, #17722, #17483) Other changes Add Python 3.14 to configuration options (#17647) Make syntax error for unparenthesized except tuples version specific to before 3.14 (#17660) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.13 2025/04/20 21:20:04 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "42f15835c0005c4b37aaf5bc1a15e3e1b3df14b7" } +salsa = { path = "../salsa-42f15835c0005c4b37aaf5bc1a15e3e1b3df14b7" } @ 1.13 log @py-ruff: update to 0.11.6. Lots of changes. @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.12 2025/03/02 20:31:19 wiz Exp $ d7 1 a7 1 @@@@ -100,7 +100,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -123,7 +123,7 @@@@ rayon = { version = "1.10.0" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "87bf6b6c2d5f6479741271da73bd9d30c2580c26" } +salsa = { path = "../salsa-87bf6b6c2d5f6479741271da73bd9d30c2580c26" } @ 1.12 log @py-ruff: update to 0.9.9. 0.9.9 Preview features Fix caching of unsupported-syntax errors (#16425) Bug fixes Only show unsupported-syntax errors in editors when preview mode is enabled (#16429) 0.9.8 Release Notes Preview features Start detecting version-related syntax errors in the parser (#16090) Rule changes [pylint] Mark fix unsafe (PLW1507) (#16343) [pylint] Catch case np.nan/case math.nan in match statements (PLW0177) (#16378) [ruff] Add more Pydantic models variants to the list of default copy semantics (RUF012) (#16291) Server Avoid indexing the project if configurationPreference is editorOnly (#16381) Avoid unnecessary info at non-trace server log level (#16389) Expand ruff.configuration to allow inline config (#16296) Notify users for invalid client settings (#16361) Configuration Add per-file-target-version option (#16257) Bug fixes [refurb] Do not consider docstring(s) (FURB156) (#16391) [flake8-self] Ignore attribute accesses on instance-like variables (SLF001) (#16149) [pylint] Fix false positives, add missing methods, and support positional-only parameters (PLE0302) (#16263) [flake8-pyi] Mark PYI030 fix unsafe when comments are deleted (#16322) Documentation Fix example for S611 (#16316) Normalize inconsistent markdown headings in docstrings (#16364) Document MSRV policy (#16384) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.11 2025/02/23 11:45:54 wiz Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "99be5d9917c3dd88e19735a82ef6bf39ba84bd7e" } +salsa = { path = "../salsa-99be5d9917c3dd88e19735a82ef6bf39ba84bd7e" } @ 1.11 log @py-ruff: update to 0.9.7. Preview features Consider __new__ methods as special function type for enforcing class method or static method rules (#13305) [airflow] Improve the internal logic to differentiate deprecated symbols (AIR303) (#16013) [refurb] Manual timezone monkeypatching (FURB162) (#16113) [ruff] Implicit class variable in dataclass (RUF045) (#14349) [ruff] Skip singleton starred expressions for incorrectly-parenthesized-tuple-in-subscript (RUF031) (#16083) [refurb] Check for subclasses includes subscript expressions (FURB189) (#16155) Rule changes [flake8-comprehensions]: Handle trailing comma in C403 fix (#16110) [flake8-debugger] Also flag sys.breakpointhook and sys.__breakpointhook__ (T100) (#16191) [pydocstyle] Handle arguments with the same names as sections (D417) (#16011) [pylint] Correct ordering of arguments in fix for if-stmt-min-max (PLR1730) (#16080) [pylint] Do not offer fix for raw strings (PLE251) (#16132) [pyupgrade] Do not upgrade functional TypedDicts with private field names to the class-based syntax (UP013) (#16219) [pyupgrade] Handle micro version numbers correctly (UP036) (#16091) [pyupgrade] Unwrap unary expressions correctly (UP018) (#15919) [ruff] Skip RUF001 diagnostics when visiting string type definitions (#16122) [flake8-pyi] Avoid flagging custom-typevar-for-self on metaclass methods (PYI019) (#16141) [pycodestyle] Exempt site.addsitedir(...) calls (E402) (#16251) Formatter Fix unstable formatting of trailing end-of-line comments of parenthesized attribute values (#16187) Server Fix handling of requests received after shutdown message (#16262) Ignore source.organizeImports.ruff and source.fixAll.ruff code actions for a notebook cell (#16154) Include document specific debug info for ruff.printDebugInformation (#16215) Update server to return the debug info as string with ruff.printDebugInformation (#16214) CLI Warn on invalid noqa even when there are no diagnostics (#16178) Better error messages while loading configuration extends (#15658) Bug fixes [refurb] Correctly handle lengths of literal strings in slice-to-remove-prefix-or-suffix (FURB188) (#16237) Documentation Add FAQ entry for source.* code actions in Notebook (#16212) Add SECURITY.md (#16224) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.10 2025/01/07 11:55:11 adam Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "351d9cf0037be949d17800d0c7b4838e533c2ed6" } +salsa = { path = "../salsa-351d9cf0037be949d17800d0c7b4838e533c2ed6" } @ 1.10 log @py-ruff: updated to 0.8.6 0.8.6 Preview features [format]: Preserve multiline implicit concatenated strings in docstring positions [ruff] Add rule to detect empty literal in deque call (RUF025) [ruff] Avoid reporting when ndigits is possibly negative (RUF057) Rule changes [flake8-todos] remove issue code length restriction (TD003) [pyflakes] Ignore errors in @@no_type_check string annotations (F722, F821) CLI Show errors for attempted fixes only when passed --verbose Bug fixes [ruff] Avoid syntax error when removing int over multiple lines (RUF046) [pyupgrade] Revert "Add all PEP-585 names to UP006 rule" @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.9 2024/12/27 09:08:38 wiz Exp $ d7 1 a7 1 @@@@ -96,7 +96,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -119,7 +119,7 @@@@ rayon = { version = "1.10.0" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "88a1d7774d78f048fbd77d40abca9ebd729fd1f0" } +salsa = { path = "../salsa-88a1d7774d78f048fbd77d40abca9ebd729fd1f0" } @ 1.9 log @py-ruff: update to 0.8.4. 0.8.4 Preview features [airflow] Extend AIR302 with additional functions and classes (#15015) [airflow] Implement moved-to-provider-in-3 for modules that has been moved to Airflow providers (AIR303) (#14764) [flake8-use-pathlib] Extend check for invalid path suffix to include the case "." (PTH210) (#14902) [perflint] Fix panic in PERF401 when list variable is after the for loop (#14971) [perflint] Simplify finding the loop target in PERF401 (#15025) [pylint] Preserve original value format (PLR6104) (#14978) [ruff] Avoid false positives for RUF027 for typing context bindings (#15037) [ruff] Check for ambiguous pattern passed to pytest.raises() (RUF043) (#14966) Rule changes [flake8-bandit] Check S105 for annotated assignment (#15059) [flake8-pyi] More autofixes for redundant-none-literal (PYI061) (#14872) [pydocstyle] Skip leading whitespace for D403 (#14963) [ruff] Skip SQLModel base classes for mutable-class-default (RUF012) (#14949) Bug [perflint] Parenthesize walrus expressions in autofix for manual-list-comprehension (PERF401) (#15050) Server Check diagnostic refresh support from client capability which enables dynamic configuration for various editors (#15014) 0.8.3 Preview features Fix fstring formatting removing overlong implicit concatenated string in expression part (#14811) [airflow] Add fix to remove deprecated keyword arguments (AIR302) (#14887) [airflow]: Extend rule to include deprecated names for Airflow 3.0 (AIR302) (#14765 and #14804) [flake8-bugbear] Improve error messages for except* (B025, B029, B030, B904) (#14815) [flake8-bugbear] itertools.batched() without explicit strict (B911) (#14408) [flake8-use-pathlib] Dotless suffix passed to Path.with_suffix() (PTH210) (#14779) [pylint] Include parentheses and multiple comparators in check for boolean-chained-comparison (PLR1716) (#14781) [ruff] Do not simplify round() calls (RUF046) (#14832) [ruff] Don't emit used-dummy-variable on function parameters (RUF052) (#14818) [ruff] Implement if-key-in-dict-del (RUF051) (#14553) [ruff] Mark autofix for RUF052 as always unsafe (#14824) [ruff] Teach autofix for used-dummy-variable about TypeVars etc. (RUF052) (#14819) Rule changes [flake8-bugbear] Offer unsafe autofix for no-explicit-stacklevel (B028) (#14829) [flake8-pyi] Skip all type definitions in string-or-bytes-too-long (PYI053) (#14797) [pyupgrade] Do not report when a UTF-8 comment is followed by a non-UTF-8 one (UP009) (#14728) [pyupgrade] Mark fixes for convert-typed-dict-functional-to-class and convert-named-tuple-functional-to-class as unsafe if they will remove comments (UP013, UP014) (#14842) Bug fixes Raise syntax error for mixing except and except* (#14895) [flake8-bugbear] Fix B028 to allow stacklevel to be explicitly assigned as a positional argument (#14868) [flake8-bugbear] Skip B028 if warnings.warn is called with *args or **kwargs (#14870) [flake8-comprehensions] Skip iterables with named expressions in unnecessary-map (C417) (#14827) [flake8-pyi] Also remove self and cls's annotation (PYI034) (#14801) [flake8-pytest-style] Fix pytest-parametrize-names-wrong-type (PT006) to edit both argnames and argvalues if both of them are single-element tuples/lists (#14699) [perflint] Improve autofix for PERF401 (#14369) [pylint] Fix PLW1508 false positive for default string created via a mult operation (#14841) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.8 2024/10/24 17:45:57 adam Exp $ d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "3c7f1694c9efba751dbeeacfbc93b227586e316a" } +salsa = { path = "../salsa-3c7f1694c9efba751dbeeacfbc93b227586e316a" } @ 1.8 log @py-ruff: updated to 0.7.1 0.7.1 Preview features Fix E221 and E222 to flag missing or extra whitespace around == operator Formatter: Alternate quotes for strings inside f-strings in preview Formatter: Join implicit concatenated strings when they fit on a line [pylint] Restrict iteration-over-set to only work on sets of literals (PLC0208) Rule changes [flake8-type-checking] Support auto-quoting when annotations contain quotes Server Avoid indexing the workspace for single-file mode Bug fixes Make ARG002 compatible with EM101 when raising NotImplementedError Other changes Introduce more Docker tags for Ruff (similar to uv) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.7 2024/10/17 19:12:26 adam Exp $ d7 1 a7 1 @@@@ -94,7 +94,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 2 @@@@ -116,7 +116,7 @@@@ rand = { version = "0.8.5" } rayon = { version = "1.10.0" } d19 3 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "254c749b02cde2fd29852a7463a33e800b771758" } +salsa = { path = "../salsa-254c749b02cde2fd29852a7463a33e800b771758" } @ 1.7 log @py-ruff: updated to 0.7.0 0.7.0 Breaking changes The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments The useless-try-except rule (in our tryceratops category) has been recoded from TRY302 to TRY203 The lint.allow-unused-imports setting has been removed Formatter preview style Normalize implicit concatenated f-string quotes per part Preview linter features [refurb] implement hardcoded-string-charset (FURB156) [refurb] Count codepoints not bytes for slice-to-remove-prefix-or-suffix (FURB188) Rule changes [pylint] Mark PLE1141 fix as unsafe [flake8-async] Consider async generators to be "checkpoints" for cancel-scope-no-checkpoint (ASYNC100) [flake8-bugbear] Do not suggest setting parameter strict= to False in B905 diagnostic message [flake8-todos] Only flag the word "TODO", not words starting with "todo" (TD006) [pycodestyle] Fix whitespace-related false positives and false negatives inside type-parameter lists (E231, E251) [flake8-simplify] Stabilize preview behavior for SIM115 so that the rule can detect files being opened from a wider range of standard-library functions CLI Add explanation of fixable in --statistics command Bug fixes [pyflakes] Allow ipytest cell magic (F401) [flake8-use-pathlib] Fix PTH123 false positive when open is passed a file descriptor [flake8-bandit] Detect patterns from multi line SQL statements (S608) [flake8-pyi] - Fix dropped expressions in PYI030 autofix @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.6 2024/10/07 14:54:24 pin Exp $ d5 1 a5 1 --- Cargo.toml.orig 2024-10-17 19:06:38.571109842 +0000 d7 1 a7 1 @@@@ -93,7 +93,7 @@@@ libc = { version = "0.2.153" } d12 1 a12 1 +lsp-types = { path = "lsp-types-3512a9f33eadc5402cfab1b8f7340824c8ca1439", features = [ d16 2 a17 1 @@@@ -117,7 +117,7 @@@@ rayon = { version = "1.10.0" } a18 1 rstest = { version = "0.22.0", default-features = false } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "b14be5c0392f4c55eca60b92e457a35549372382" } +salsa = { path = "../salsa-b14be5c0392f4c55eca60b92e457a35549372382" } @ 1.6 log @devel/py-ruff: update to 0.6.9 ## 0.6.9 ### Preview features - Fix codeblock dynamic line length calculation for indented docstring examples ([#13523](https://github.com/astral-sh/ruff/pull/13523)) - \[`refurb`\] Mark `FURB118` fix as unsafe ([#13613](https://github.com/astral-sh/ruff/pull/13613)) ### Rule changes - \[`pydocstyle`\] Don't raise `D208` when last line is non-empty ([#13372](https://github.com/astral-sh/ruff/pull/13372)) - \[`pylint`\] Preserve trivia (i.e. comments) in `PLR5501` autofix ([#13573](https://github.com/astral-sh/ruff/pull/13573)) ### Configuration - \[`pyflakes`\] Add `allow-unused-imports` setting for `unused-import` rule (`F401`) ([#13601](https://github.com/astral-sh/ruff/pull/13601)) ### Bug fixes - Support ruff discovery in pip build environments ([#13591](https://github.com/astral-sh/ruff/pull/13591)) - \[`flake8-bugbear`\] Avoid short circuiting `B017` for multiple context managers ([#13609](https://github.com/astral-sh/ruff/pull/13609)) - \[`pylint`\] Do not offer an invalid fix for `PLR1716` when the comparisons contain parenthesis ([#13527](https://github.com/astral-sh/ruff/pull/13527)) - \[`pyupgrade`\] Fix `UP043` to apply to `collections.abc.Generator` and `collections.abc.AsyncGenerator` ([#13611](https://github.com/astral-sh/ruff/pull/13611)) - \[`refurb`\] Fix handling of slices in tuples for `FURB118`, e.g., `x[:, 1]` ([#13518](https://github.com/astral-sh/ruff/pull/13518)) ### Documentation - Update GitHub Action link to `astral-sh/ruff-action` ([#13551](https://github.com/astral-sh/ruff/pull/13551)) ## 0.6.8 ### Preview features - Remove unnecessary parentheses around `match case` clauses ([#13510](https://github.com/astral-sh/ruff/pull/13510)) - Parenthesize overlong `if` guards in `match..case` clauses ([#13513](https://github.com/astral-sh/ruff/pull/13513)) - Detect basic wildcard imports in `ruff analyze graph` ([#13486](https://github.com/astral-sh/ruff/pull/13486)) - \[`pylint`\] Implement `boolean-chained-comparison` (`R1716`) ([#13435](https://github.com/astral-sh/ruff/pull/13435)) ### Rule changes - \[`lake8-simplify`\] Detect `SIM910` when using variadic keyword arguments, i.e., `**kwargs` ([#13503](https://github.com/astral-sh/ruff/pull/13503)) - \[`pyupgrade`\] Avoid false negatives with non-reference shadowed bindings of loop variables (`UP028`) ([#13504](https://github.com/astral-sh/ruff/pull/13504)) ### Bug fixes - Detect tuples bound to variadic positional arguments i.e. `*args` ([#13512](https://github.com/astral-sh/ruff/pull/13512)) - Exit gracefully on broken pipe errors ([#13485](https://github.com/astral-sh/ruff/pull/13485)) - Avoid panic when analyze graph hits broken pipe ([#13484](https://github.com/astral-sh/ruff/pull/13484)) ### Performance - Reuse `BTreeSets` in module resolver ([#13440](https://github.com/astral-sh/ruff/pull/13440)) - Skip traversal for non-compound statements ([#13441](https://github.com/astral-sh/ruff/pull/13441)) ## 0.6.7 ### Preview features - Add Python version support to ruff analyze CLI ([#13426](https://github.com/astral-sh/ruff/pull/13426)) - Add `exclude` support to `ruff analyze` ([#13425](https://github.com/astral-sh/ruff/pull/13425)) - Fix parentheses around return type annotations ([#13381](https://github.com/astral-sh/ruff/pull/13381)) ### Rule changes - \[`pycodestyle`\] Fix: Don't autofix if the first line ends in a question mark? (D400) ([#13399](https://github.com/astral-sh/ruff/pull/13399)) ### Bug fixes - Respect `lint.exclude` in ruff check `--add-noqa` ([#13427](https://github.com/astral-sh/ruff/pull/13427)) ### Performance - Avoid tracking module resolver files in Salsa ([#13437](https://github.com/astral-sh/ruff/pull/13437)) - Use `forget` for module resolver database ([#13438](https://github.com/astral-sh/ruff/pull/13438)) ## 0.6.6 ### Preview features - \[`refurb`\] Skip `slice-to-remove-prefix-or-suffix` (`FURB188`) when non-trivial slice steps are present ([#13405](https://github.com/astral-sh/ruff/pull/13405)) - Add a subcommand to generate dependency graphs ([#13402](https://github.com/astral-sh/ruff/pull/13402)) ### Formatter - Fix placement of inline parameter comments ([#13379](https://github.com/astral-sh/ruff/pull/13379)) ### Server - Fix off-by one error in the `LineIndex::offset` calculation ([#13407](https://github.com/astral-sh/ruff/pull/13407)) ### Bug fixes - \[`fastapi`\] Respect FastAPI aliases in route definitions ([#13394](https://github.com/astral-sh/ruff/pull/13394)) - \[`pydocstyle`\] Respect word boundaries when detecting function signature in docs ([#13388](https://github.com/astral-sh/ruff/pull/13388)) ### Documentation - Add backlinks to rule overview linter ([#13368](https://github.com/astral-sh/ruff/pull/13368)) - Fix documentation for editor vim plugin ALE ([#13348](https://github.com/astral-sh/ruff/pull/13348)) - Fix rendering of `FURB188` docs ([#13406](https://github.com/astral-sh/ruff/pull/13406)) @ text @d1 1 a1 1 $NetBSD$ d5 1 a5 1 --- Cargo.toml.orig 2024-10-06 15:30:31.988148241 +0000 d7 1 a7 1 @@@@ -89,7 +89,7 @@@@ libc = { version = "0.2.153" } d13 1 a13 1 "proposed", d16 1 a16 2 @@@@ -112,7 +112,7 @@@@ rand = { version = "0.8.5" } rayon = { version = "1.10.0" } d18 1 d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "4a7c955255e707e64e43f3ce5eabb771ae067768" } +salsa = { path = "../salsa-4a7c955255e707e64e43f3ce5eabb771ae067768" } @ 1.5 log @py-ruff: update to 0.6.2. Release Notes Preview features [flake8-simplify] Extend open-file-with-context-handler to work with other standard-library IO modules (SIM115) (#12959) [ruff] Avoid unused-async for functions with FastAPI route decorator (RUF029) (#12938) [ruff] Ignore fstring-missing-syntax (RUF027) for fastAPI paths (#12939) [ruff] Implement check for Decimal called with a float literal (RUF032) (#12909) Rule changes [flake8-bugbear] Update diagnostic message when expression is at the end of function (B015) (#12944) [flake8-pyi] Skip type annotations in string-or-bytes-too-long (PYI053) (#13002) [flake8-type-checking] Always recognise relative imports as first-party (#12994) [flake8-unused-arguments] Ignore unused arguments on stub functions (ARG001) (#12966) [pylint] Ignore augmented assignment for self-cls-assignment (PLW0642) (#12957) Server Show full context in error log messages (#13029) Bug fixes [pep8-naming] Don't flag from imports following conventional import names (N817) (#12946) [pylint] - Allow __new__ methods to have cls as their first argument even if decorated with @@staticmethod for bad-staticmethod-argument (PLW0211) (#12958) Documentation Add hyperfine installation instructions; update hyperfine code samples (#13034) Expand note to use Ruff with other language server in Kate (#12806) Update example for PT001 as per the new default behavior (#13019) [perflint] Improve docs for try-except-in-loop (PERF203) (#12947) [pydocstyle] Add reference to lint.pydocstyle.ignore-decorators setting to rule docs (#12996) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.4 2024/08/11 07:04:14 wiz Exp $ d3 1 a3 1 Depends on an unpublished crate. Can't use cargo.mk to fetch it. d5 1 a5 3 salsa is not really used yet and automatic pkgsrc fetching fails for it. --- Cargo.toml.orig 1970-01-01 00:00:00.000000000 +0000 d7 1 a7 1 @@@@ -85,7 +85,7 @@@@ libc = { version = "0.2.153" } d16 1 a16 1 @@@@ -108,7 +108,7 @@@@ rand = { version = "0.8.5" } d20 2 a21 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "f608ff8b24f07706492027199f51132244034f29" } +#salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "f608ff8b24f07706492027199f51132244034f29" } @ 1.4 log @py-ruff: update to 0.5.7. Preview features [flake8-comprehensions] Account for list and set comprehensions in unnecessary-literal-within-tuple-call (C409) (#12657) [flake8-pyi] Add autofix for future-annotations-in-stub (PYI044) (#12676) [flake8-return] Avoid syntax error when auto-fixing RET505 with mixed indentation (space and tabs) (#12740) [pydoclint] Add docstring-missing-yields (DOC402) and docstring-extraneous-yields (DOC403) (#12538) [pydoclint] Avoid DOC201 if docstring begins with "Return", "Returns", "Yield", or "Yields" (#12675) [pydoclint] Deduplicate collected exceptions after traversing function bodies (DOC501) (#12642) [pydoclint] Ignore DOC errors for stub functions (#12651) [pydoclint] Teach rules to understand reraised exceptions as being explicitly raised (DOC501, DOC502) (#12639) [ruff] Implement incorrectly-parenthesized-tuple-in-subscript (RUF031) (#12480) [ruff] Mark RUF023 fix as unsafe if __slots__ is not a set and the binding is used elsewhere (#12692) Rule changes [refurb] Add autofix for implicit-cwd (FURB177) (#12708) [ruff] Add autofix for zip-instead-of-pairwise (RUF007) (#12663) [tryceratops] Add BaseException to raise-vanilla-class rule (TRY002) (#12620) Server Ignore non-file workspace URL; Ruff will display a warning notification in this case (#12725) CLI Fix cache invalidation for nested pyproject.toml files (#12727) Bug fixes [flake8-async] Fix false positives with multiple async with items (ASYNC100) (#12643) [flake8-bandit] Avoid false-positives for list concatenations in SQL construction (S608) (#12720) [flake8-bugbear] Treat return as equivalent to break (B909) (#12646) [flake8-comprehensions] Set comprehensions not a violation for sum in unnecessary-comprehension-in-call (C419) (#12691) [flake8-simplify] Parenthesize conditions based on precedence when merging if arms (SIM114) (#12737) [pydoclint] Try both 'Raises' section styles when convention is unspecified (DOC501) (#12649) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.3 2024/08/06 12:52:45 wiz Exp $ d22 2 a23 2 -salsa = { git = "https://github.com/MichaReiser/salsa.git", tag = "red-knot-0.0.1" } +#salsa = { git = "https://github.com/MichaReiser/salsa.git", tag = "red-knot-0.0.1" } @ 1.3 log @py-ruff: update to 0.5.6. Release Notes Ruff 0.5.6 automatically enables linting and formatting of notebooks in preview mode. You can opt-out of this behavior by adding *.ipynb to the extend-exclude setting. [tool.ruff] extend-exclude = ["*.ipynb"] Preview features Enable notebooks by default in preview mode (#12621) [flake8-builtins] Implement import, lambda, and module shadowing (#12546) [pydoclint] Add docstring-missing-returns (DOC201) and docstring-extraneous-returns (DOC202) (#12485) Rule changes [flake8-return] Exempt cached properties and other property-like decorators from explicit return rule (RET501) (#12563) Server Make server panic hook more error resilient (#12610) Use $/logTrace for server trace logs in Zed and VS Code (#12564) Keep track of deleted cells for reorder change request (#12575) Configuration [flake8-implicit-str-concat] Always allow explicit multi-line concatenations when implicit concatenations are banned (#12532) Bug fixes [flake8-async] Avoid flagging asyncio.timeouts as unused when the context manager includes asyncio.TaskGroup (#12605) [flake8-slots] Avoid recommending __slots__ for classes that inherit from more than namedtuple (#12531) [isort] Avoid marking required imports as unused (#12537) [isort] Preserve trailing inline comments on import-from statements (#12498) [pycodestyle] Add newlines before comments (E305) (#12606) [pycodestyle] Don't attach comments with mismatched indents (#12604) [pyflakes] Fix preview-mode bugs in F401 when attempting to autofix unused first-party submodule imports in an __init__.py file (#12569) [pylint] Respect start index in unnecessary-list-index-lookup (#12603) [pyupgrade] Avoid recommending no-argument super in slots=True dataclasses (#12530) [pyupgrade] Use colon rather than dot formatting for integer-only types (#12534) Fix NFKC normalization bug when removing unused imports (#12571) Other changes Consider more stdlib decorators to be property-like (#12583) Improve handling of metaclasses in various linter rules (#12579) Improve consistency between linter rules in determining whether a function is property (#12581) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.2 2024/07/09 05:36:54 wiz Exp $ d9 1 a9 1 @@@@ -84,7 +84,7 @@@@ libc = { version = "0.2.153" } d18 1 a18 1 @@@@ -107,7 +107,7 @@@@ rand = { version = "0.8.5" } d22 2 a23 2 -salsa = { git = "https://github.com/MichaReiser/salsa.git", rev = "0cae5c52a3240172ef0be5c9d19e63448c53397c" } +#salsa = { git = "https://github.com/MichaReiser/salsa.git", rev = "0cae5c52a3240172ef0be5c9d19e63448c53397c" } @ 1.2 log @py-ruff: update to 0.5.1. 0.5.1 Preview features [flake8-bugbear] Implement mutable-contextvar-default (B039) (#12113) [pycodestyle] Whitespace after decorator (E204) (#12140) [pytest] Reverse PT001 and PT0023 defaults (#12106) Rule changes Enable token-based rules on source with syntax errors (#11950) [flake8-bandit] Detect httpx for S113 (#12174) [numpy] Update NPY201 to include exception deprecations (#12065) [pylint] Generate autofix for duplicate-bases (PLE0241) (#12105) Server Avoid syntax error notification for source code actions (#12148) Consider the content of the new cells during notebook sync (#12203) Fix replacement edit range computation (#12171) Bug fixes Disable auto-fix when source has syntax errors (#12134) Fix cache key collisions for paths with separators (#12159) Make requires-python inference robust to == (#12091) Use char-wise width instead of str-width (#12135) [pycodestyle] Avoid E275 if keyword followed by comma (#12136) [pycodestyle] Avoid E275 if keyword is followed by a semicolon (#12095) [pylint] Skip dummy variables for PLR1704 (#12190) Performance Remove allocation in parse_identifier (#12103) Use CompactString for Identifier AST node (#12101) 0.5.0 Breaking changes See also, the "Remapped rules" section which may result in disabled rules. Follow the XDG specification to discover user-level configurations on macOS (same as on other Unix platforms) Selecting ALL now excludes deprecated rules The released archives now include an extra level of nesting, which can be removed with --strip-components=1 when untarring. The release artifact's file name no longer includes the version tag. This enables users to install via /latest URLs on GitHub. The diagnostic ranges for some flake8-bandit rules were modified (#10667). Deprecations The following rules are now deprecated: syntax-error (E999): Syntax errors are now always shown Remapped rules The following rules have been remapped to new rule codes: blocking-http-call-in-async-function: ASYNC100 to ASYNC210 open-sleep-or-subprocess-in-async-function: ASYNC101 split into ASYNC220, ASYNC221, ASYNC230, and ASYNC251 blocking-os-call-in-async-function: ASYNC102 has been merged into ASYNC220 and ASYNC221 trio-timeout-without-await: TRIO100 to ASYNC100 trio-sync-call: TRIO105 to ASYNC105 trio-async-function-with-timeout: TRIO109 to ASYNC109 trio-unneeded-sleep: TRIO110 to ASYNC110 trio-zero-sleep-call: TRIO115 to ASYNC115 repeated-isinstance-calls: PLR1701 to SIM101 Stabilization The following rules have been stabilized and are no longer in preview: mutable-fromkeys-value (RUF024) default-factory-kwarg (RUF026) django-extra (S610) manual-dict-comprehension (PERF403) print-empty-string (FURB105) readlines-in-for (FURB129) if-expr-min-max (FURB136) bit-count (FURB161) redundant-log-base (FURB163) regex-flag-alias (FURB167) isinstance-type-none (FURB168) type-none-comparison (FURB169) implicit-cwd (FURB177) hashlib-digest-hex (FURB181) list-reverse-copy (FURB187) bad-open-mode (PLW1501) empty-comment (PLR2044) global-at-module-level (PLW0604) misplaced-bare-raise (PLE0744) non-ascii-import-name (PLC2403) non-ascii-name (PLC2401) nonlocal-and-global (PLE0115) potential-index-error (PLE0643) redeclared-assigned-name (PLW0128) redefined-argument-from-local (PLR1704) repeated-keyword-argument (PLE1132) super-without-brackets (PLW0245) unnecessary-list-index-lookup (PLR1736) useless-exception-statement (PLW0133) useless-with-lock (PLW2101) The following behaviors have been stabilized: is-literal (F632) now warns for identity checks against list, set or dictionary literals needless-bool (SIM103) now detects if expressions with implicit else branches module-import-not-at-top-of-file (E402) now allows os.environ modifications between import statements type-comparison (E721) now allows idioms such as type(x) is int yoda-condition (SIM300) now flags a wider range of expressions Removals The following deprecated settings have been removed: output-format=text; use output-format=concise or output-format=full tab-size; use indent-width The following deprecated CLI options have been removed: --show-source; use --output-format=full --no-show-source; use --output-format=concise The following deprecated CLI commands have been removed: ruff ; use ruff check ruff --clean; use ruff clean ruff --generate-shell-completion; use ruff generate-shell-completion Preview features [ruff] Add assert-with-print-message rule (#11981) CLI Use rule name rather than message in --statistics (#11697) Use the output format full by default (#12010) Don't log syntax errors to the console (#11902) Rule changes [ruff] Fix false positives if gettext is imported using an alias (RUF027) (#12025) [numpy] Update trapz and in1d deprecation (NPY201) (#11948) [flake8-bandit] Modify diagnostic ranges for shell-related rules (#10667) Server Closing an untitled, unsaved notebook document no longer throws an error (#11942) Support the usage of tildes and environment variables in logFile (#11945) Add option to configure whether to show syntax errors (#12059) Bug fixes [pycodestyle] Avoid E203 for f-string debug expression (#12024) [pep8-naming] Match import-name ignores against both name and alias (N812, N817) (#12033) [pyflakes] Detect assignments that shadow definitions (F811) (#11961) Parser Emit a syntax error for an empty type parameter list (#12030) Avoid consuming the newline for unterminated strings (#12067) Do not include the newline in the unterminated string range (#12017) Use the correct range to highlight line continuation errors (#12016) Consider 2-character EOL before line continuations (#12035) Consider line continuation character for re-lexing (#12008) Other changes Upgrade the Unicode table used for measuring the line-length (#11194) Remove the deprecation error message for the nursery selector (#10172) 0.4.10 Changes Parser Implement re-lexing logic for better error recovery (#11845) Rule changes [flake8-copyright] Update CPY001 to check the first 4096 bytes instead of 1024 (#11927) [pycodestyle] Update E999 to show all syntax errors instead of just the first one (#11900) Server Add tracing setup guide to Helix documentation (#11883) Add tracing setup guide to Neovim documentation (#11884) Defer notebook cell deletion to avoid an error message (#11864) Security Guard against malicious ecosystem comment artifacts (#11879) @ text @d1 1 a1 1 $NetBSD: patch-Cargo.toml,v 1.1 2024/06/08 18:51:10 wiz Exp $ d9 1 a9 1 @@@@ -86,7 +86,7 @@@@ libc = { version = "0.2.153" } d18 1 a18 1 @@@@ -108,7 +108,7 @@@@ rand = { version = "0.8.5" } d22 2 a23 2 -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "a1bf3a613f451af7fc0a59411c56abc47fe8e8e1" } +#salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "a1bf3a613f451af7fc0a59411c56abc47fe8e8e1" } @ 1.1 log @py-ruff: update to 0.4.8. With help from pin@@, thanks! v0.4.8 Changes Performance Linter performance has been improved by around 10% on some microbenchmarks by refactoring the lexer and parser to maintain synchronicity between them (#11457) Preview features [flake8-bugbear] Implement return-in-generator (B901) (#11644) [flake8-pyi] Implement PYI063 (#11699) [pygrep_hooks] Check blanket ignores via file-level pragmas (PGH004) (#11540) Rule changes [pyupgrade] Update UP035 for Python 3.13 and the latest version of typing_extensions (#11693) [numpy] Update NPY001 rule for NumPy 2.0 (#11735) Server Formatting a document with syntax problems no longer spams a visible error popup (#11745) CLI Add RDJson support for --output-format flag (#11682) Bug fixes [pyupgrade] Write empty string in lieu of panic when fixing UP032 (#11696) [flake8-simplify] Simplify double negatives in SIM103 (#11684) Ensure the expression generator adds a newline before type statements (#11720) Respect per-file ignores for blanket and redirected noqa rules (#11728) v0.4.7 Changes Preview features [flake8-pyi] Implement PYI064 (#11325) [flake8-pyi] Implement PYI066 (#11541) [flake8-pyi] Implement PYI057 (#11486) [pyflakes] Enable F822 in __init__.py files by default (#11370) Formatter Fix incorrect placement of trailing stub function comments (#11632) Server Respect file exclusions in ruff server (#11590) Add support for documents not exist on disk (#11588) Add Vim and Kate setup guide for ruff server (#11615) Bug fixes Avoid removing newlines between docstring headers and rST blocks (#11609) Infer indentation with imports when logical indent is absent (#11608) Use char index rather than position for indent slice (#11645) [flake8-comprehension] Strip parentheses around generators in C400 (#11607) Mark repeated-isinstance-calls as unsafe on Python 3.10 and later (#11622) v0.4.6 Changes Breaking changes Use project-relative paths when calculating GitLab fingerprints (#11532) Preview features [flake8-async] Sleep with >24 hour interval should usually sleep forever (ASYNC116) (#11498) Rule changes [numpy] Add missing functions to NumPy 2.0 migration rule (#11528) [mccabe] Consider irrefutable pattern similar to if .. else for C901 (#11565) Consider match-case statements for C901, PLR0912, and PLR0915 (#11521) Remove empty strings when converting to f-string (UP032) (#11524) [flake8-bandit] request-without-timeout should warn for requests.request (#11548) [flake8-self] Ignore sunder accesses in flake8-self rules (#11546) [pyupgrade] Lint for TypeAliasType usages (UP040) (#11530) Server Respect excludes in ruff server configuration discovery (#11551) Use default settings if initialization options is empty or not provided (#11566) ruff server correctly treats .pyi files as stub files (#11535) ruff server searches for configuration in parent directories (#11537) ruff server: An empty code action filter no longer returns notebook source actions (#11526) Bug fixes [flake8-logging-format] Fix autofix title in logging-warn (G010) (#11514) [refurb] Avoid recommending operator.itemgetter with dependence on lambda arguments (#11574) [flake8-simplify] Avoid recommending context manager in __enter__ implementations (#11575) Create intermediary directories for --output-file (#11550) Propagate reads on global variables (#11584) Treat all singledispatch arguments as runtime-required (#11523) v0.4.5 Changes Ruff's language server is now in Beta v0.4.5 marks the official Beta release of ruff server, an integrated language server built into Ruff. ruff server supports the same feature set as ruff-lsp, powering linting, formatting, and code fixes in Ruff's editor integrations -- but with superior performance and no installation required. We'd love your feedback! You can enable ruff server in the VS Code extension today. Rule changes [flake8-future-annotations] Reword future-rewritable-type-annotation (FA100) message (#11381) [pycodestyle] Consider soft keywords for E27 rules (#11446) [pyflakes] Recommend adding unused import bindings to __all__ (#11314) [pyflakes] Update documentation and deprecate ignore_init_module_imports (#11436) [pyupgrade] Mark quotes as unnecessary for non-evaluated annotations (#11485) Formatter Avoid multiline quotes warning with quote-style = preserve (#11490) Server Support Jupyter Notebook files (#11206) Support noqa comment code actions (#11276) Fix automatic configuration reloading (#11492) Fix several issues with configuration in Neovim and Helix (#11497) CLI Add --output-format as a CLI option for ruff config (#11438) Bug fixes Avoid PLE0237 for property with setter (#11377) Avoid TCH005 for if stmt with elif/else block (#11376) Avoid flagging __future__ annotations as required for non-evaluated type annotations (#11414) Check for ruff executable in 'bin' directory as installed by 'pip install --target'. (#11450) Sort edits prior to deduplicating in quotation fix (#11452) Treat escaped newline as valid sequence (#11465) [flake8-pie] Preserve parentheses in unnecessary-dict-kwargs (#11372) [pylint] Ignore __slots__ with dynamic values (#11488) [pylint] Remove try body from branch counting (#11487) [refurb] Respect operator precedence in FURB110 (#11464) Documentation Add --preview to the README (#11395) Add Python 3.13 to list of allowed Python versions (#11411) Simplify Neovim setup documentation (#11489) Update CONTRIBUTING.md to reflect the new parser (#11434) Update server documentation with new migration guide (#11499) [pycodestyle] Clarify motivation for E713 and E714 (#11483) [pyflakes] Update docs to describe WAI behavior (F541) (#11362) [pylint] Clearly indicate what is counted as a branch (#11423) @ text @d1 1 a1 1 $NetBSD$ d5 3 a7 1 --- Cargo.toml.orig 2024-06-08 12:11:01.018391496 +0000 d9 1 a9 1 @@@@ -79,7 +79,7 @@@@ libc = { version = "0.2.153" } d13 4 a16 2 -lsp-types = { git = "https://github.com/astral-sh/lsp-types.git", rev = "3512a9f", features = ["proposed"] } +lsp-types = { path = "lsp-types-3512a9f33eadc5402cfab1b8f7340824c8ca1439", features = ["proposed"] } d18 9 a26 2 memchr = { version = "2.7.1" } mimalloc = { version = "0.1.39" } @