head	1.105;
access;
symbols
	pkgsrc-2026Q1:1.99.0.2
	pkgsrc-2026Q1-base:1.99
	pkgsrc-2025Q4:1.88.0.2
	pkgsrc-2025Q4-base:1.88
	pkgsrc-2025Q3:1.76.0.2
	pkgsrc-2025Q3-base:1.76
	pkgsrc-2025Q2:1.66.0.2
	pkgsrc-2025Q2-base:1.66
	pkgsrc-2025Q1:1.59.0.2
	pkgsrc-2025Q1-base:1.59
	pkgsrc-2024Q4:1.49.0.2
	pkgsrc-2024Q4-base:1.49
	pkgsrc-2024Q3:1.37.0.2
	pkgsrc-2024Q3-base:1.37
	pkgsrc-2024Q2:1.25.0.2
	pkgsrc-2024Q2-base:1.25
	pkgsrc-2024Q1:1.17.0.2
	pkgsrc-2024Q1-base:1.17
	pkgsrc-2023Q4:1.5.0.2
	pkgsrc-2023Q4-base:1.5;
locks; strict;
comment	@# @;


1.105
date	2026.04.26.21.01.14;	author wiz;	state Exp;
branches;
next	1.104;
commitid	z2C5Xl63a0fHOvDG;

1.104
date	2026.04.26.10.45.24;	author wiz;	state Exp;
branches;
next	1.103;
commitid	rVSoqiG5u22rpsDG;

1.103
date	2026.04.19.17.28.53;	author wiz;	state Exp;
branches;
next	1.102;
commitid	RKJK9D8y7pNBRACG;

1.102
date	2026.04.15.18.47.35;	author wiz;	state Exp;
branches;
next	1.101;
commitid	Dj2fMGwmx6eMq5CG;

1.101
date	2026.04.05.11.51.59;	author wiz;	state Exp;
branches;
next	1.100;
commitid	5hqGlsxlURd6sLAG;

1.100
date	2026.04.02.19.07.40;	author wiz;	state Exp;
branches;
next	1.99;
commitid	Ailyk03t17lzXpAG;

1.99
date	2026.03.24.13.18.06;	author wiz;	state Exp;
branches;
next	1.98;
commitid	yuGNL3hI5afAjezG;

1.98
date	2026.03.15.13.27.43;	author wiz;	state Exp;
branches;
next	1.97;
commitid	S2lZZ2vRpF9OE4yG;

1.97
date	2026.03.09.17.13.57;	author wiz;	state Exp;
branches;
next	1.96;
commitid	fwjK2LX6Kawo6kxG;

1.96
date	2026.03.02.08.31.08;	author adam;	state Exp;
branches;
next	1.95;
commitid	DbIwfTPNqbyUqnwG;

1.95
date	2026.02.22.14.31.21;	author wiz;	state Exp;
branches;
next	1.94;
commitid	bDi5YfiYCdJvGnvG;

1.94
date	2026.02.16.11.52.56;	author wiz;	state Exp;
branches;
next	1.93;
commitid	SEIRQnsz5iO40BuG;

1.93
date	2026.02.08.22.09.53;	author wiz;	state Exp;
branches;
next	1.92;
commitid	qxpY9Lwdg7PGFCtG;

1.92
date	2026.01.25.23.43.41;	author wiz;	state Exp;
branches;
next	1.91;
commitid	Az9qPeS9AmaMDPrG;

1.91
date	2026.01.19.11.40.24;	author wiz;	state Exp;
branches;
next	1.90;
commitid	jclSRvwN0mMxPZqG;

1.90
date	2026.01.11.08.35.36;	author adam;	state Exp;
branches;
next	1.89;
commitid	tB05zoBDexX14XpG;

1.89
date	2025.12.21.18.02.16;	author wiz;	state Exp;
branches;
next	1.88;
commitid	QQARRNbfKGcoSinG;

1.88
date	2025.12.15.12.26.50;	author adam;	state Exp;
branches;
next	1.87;
commitid	ckCrsngqM5V9dvmG;

1.87
date	2025.12.05.10.09.24;	author adam;	state Exp;
branches;
next	1.86;
commitid	deLwm1mUsapXLclG;

1.86
date	2025.11.29.16.29.54;	author adam;	state Exp;
branches;
next	1.85;
commitid	AOpeYTCxB4vs4tkG;

1.85
date	2025.11.24.10.05.07;	author wiz;	state Exp;
branches;
next	1.84;
commitid	Qze47SXkiH0w6NjG;

1.84
date	2025.11.16.21.08.11;	author wiz;	state Exp;
branches;
next	1.83;
commitid	v3p3HT4s6eNW1PiG;

1.83
date	2025.11.10.09.52.46;	author wiz;	state Exp;
branches;
next	1.82;
commitid	wWAWJQjftZWbuZhG;

1.82
date	2025.11.02.20.15.04;	author wiz;	state Exp;
branches;
next	1.81;
commitid	x7AtD2pK3aOCb1hG;

1.81
date	2025.10.30.13.34.27;	author wiz;	state Exp;
branches;
next	1.80;
commitid	NM4F66eBb7pa4BgG;

1.80
date	2025.10.19.19.12.13;	author wiz;	state Exp;
branches;
next	1.79;
commitid	aqMD8D8ku9XXhdfG;

1.79
date	2025.10.12.18.27.25;	author wiz;	state Exp;
branches;
next	1.78;
commitid	qJDZzlj4tHpxgjeG;

1.78
date	2025.10.03.08.26.37;	author adam;	state Exp;
branches;
next	1.77;
commitid	2PYoTcmiVHOee6dG;

1.77
date	2025.09.25.20.12.50;	author wiz;	state Exp;
branches;
next	1.76;
commitid	jxQFqYDpdO1Ao8cG;

1.76
date	2025.08.31.10.24.01;	author wiz;	state Exp;
branches;
next	1.75;
commitid	UAW6JkVJNowpWR8G;

1.75
date	2025.08.25.18.34.55;	author wiz;	state Exp;
branches;
next	1.74;
commitid	YvB7EHNvQRzLQ88G;

1.74
date	2025.08.20.09.55.53;	author adam;	state Exp;
branches;
next	1.73;
commitid	0G8s6CE4Ijjz8s7G;

1.73
date	2025.08.08.16.50.14;	author adam;	state Exp;
branches;
next	1.72;
commitid	LOIx35fFGadBOW5G;

1.72
date	2025.08.03.10.20.21;	author wiz;	state Exp;
branches;
next	1.71;
commitid	qb6xuVIy7ZLWOg5G;

1.71
date	2025.07.27.09.43.23;	author wiz;	state Exp;
branches;
next	1.70;
commitid	roOd2yJFlJWdQm4G;

1.70
date	2025.07.20.10.31.45;	author wiz;	state Exp;
branches;
next	1.69;
commitid	nf31uAjwnQhKkt3G;

1.69
date	2025.07.13.10.44.42;	author wiz;	state Exp;
branches;
next	1.68;
commitid	VayAp5gyiqC7Dz2G;

1.68
date	2025.07.06.08.57.37;	author wiz;	state Exp;
branches;
next	1.67;
commitid	H7ifq8emzLIkgF1G;

1.67
date	2025.07.01.20.43.20;	author wiz;	state Exp;
branches;
next	1.66;
commitid	A3oGDem8qjYpk51G;

1.66
date	2025.06.09.09.37.41;	author adam;	state Exp;
branches;
next	1.65;
commitid	43Ozzc0XZjWLlcYF;

1.65
date	2025.06.04.10.25.56;	author adam;	state Exp;
branches;
next	1.64;
commitid	KTAfwdG2TZHjMyXF;

1.64
date	2025.05.18.10.21.00;	author wiz;	state Exp;
branches;
next	1.63;
commitid	eCh4Krs6rmdDinVF;

1.63
date	2025.05.09.18.44.49;	author adam;	state Exp;
branches;
next	1.62;
commitid	xBo9lnUfqpGhngUF;

1.62
date	2025.05.04.15.04.28;	author wiz;	state Exp;
branches;
next	1.61;
commitid	gnWJPpQsNvkMjBTF;

1.61
date	2025.04.28.10.54.04;	author wiz;	state Exp;
branches;
next	1.60;
commitid	ZWLFM0Iw8g6P7OSF;

1.60
date	2025.04.20.21.20.04;	author wiz;	state Exp;
branches;
next	1.59;
commitid	ss1peF1qCo0wQPRF;

1.59
date	2025.03.12.06.12.45;	author adam;	state Exp;
branches;
next	1.58;
commitid	8a9CMnoQN83S4KMF;

1.58
date	2025.03.02.20.31.19;	author wiz;	state Exp;
branches;
next	1.57;
commitid	2iQy3ArTw0ms9xLF;

1.57
date	2025.02.23.11.45.54;	author wiz;	state Exp;
branches;
next	1.56;
commitid	yjM26DGeHHE9tAKF;

1.56
date	2025.02.12.06.20.03;	author adam;	state Exp;
branches;
next	1.55;
commitid	S3n4RlBNLEXa19JF;

1.55
date	2025.02.07.07.13.09;	author adam;	state Exp;
branches;
next	1.54;
commitid	pfvoXqgLbkHjtvIF;

1.54
date	2025.01.31.18.40.20;	author wiz;	state Exp;
branches;
next	1.53;
commitid	CYXxY2H4KVtavFHF;

1.53
date	2025.01.16.22.26.18;	author adam;	state Exp;
branches;
next	1.52;
commitid	2G6lBC6wIHHreLFF;

1.52
date	2025.01.12.10.30.06;	author wiz;	state Exp;
branches;
next	1.51;
commitid	iMVlonsprvdRobFF;

1.51
date	2025.01.07.11.55.11;	author adam;	state Exp;
branches;
next	1.50;
commitid	ygAClU9R1BFU1yEF;

1.50
date	2024.12.27.09.08.38;	author wiz;	state Exp;
branches;
next	1.49;
commitid	plZ09aueHQeNs7DF;

1.49
date	2024.12.11.10.41.57;	author wiz;	state Exp;
branches;
next	1.48;
commitid	a8VAIpRAzjPBu4BF;

1.48
date	2024.11.29.08.08.44;	author adam;	state Exp;
branches;
next	1.47;
commitid	aLIqnwaFfcfV1wzF;

1.47
date	2024.11.24.10.52.40;	author wiz;	state Exp;
branches;
next	1.46;
commitid	2a3N9p84KkVb6TyF;

1.46
date	2024.11.17.21.28.21;	author wiz;	state Exp;
branches;
next	1.45;
commitid	NFsAaxZE29YgQ2yF;

1.45
date	2024.11.17.12.49.52;	author adam;	state Exp;
branches;
next	1.44;
commitid	aCHhC2s9MUxqYZxF;

1.44
date	2024.11.17.09.55.01;	author wiz;	state Exp;
branches;
next	1.43;
commitid	nh6TBrvsewQp0ZxF;

1.43
date	2024.11.13.13.32.25;	author jperkin;	state Exp;
branches;
next	1.42;
commitid	loY9SKD45VXTkuxF;

1.42
date	2024.11.11.08.03.47;	author wiz;	state Exp;
branches;
next	1.41;
commitid	FxMUuQbJ17TcAcxF;

1.41
date	2024.11.04.18.08.05;	author wiz;	state Exp;
branches;
next	1.40;
commitid	icYpRP7wiFnq9mwF;

1.40
date	2024.10.24.17.45.57;	author adam;	state Exp;
branches;
next	1.39;
commitid	hqeKE2zEOTtInWuF;

1.39
date	2024.10.17.19.12.26;	author adam;	state Exp;
branches;
next	1.38;
commitid	suDQEb59UZGc53uF;

1.38
date	2024.10.07.14.54.24;	author pin;	state Exp;
branches;
next	1.37;
commitid	efsyq9KXoLxPYJsF;

1.37
date	2024.09.15.08.28.39;	author adam;	state Exp;
branches;
next	1.36;
commitid	kNhqekFe2njdySpF;

1.36
date	2024.09.13.09.53.36;	author wiz;	state Exp;
branches;
next	1.35;
commitid	5yC6OsoCDbBt5DpF;

1.35
date	2024.08.25.10.37.56;	author wiz;	state Exp;
branches;
next	1.34;
commitid	F6Bui0NypjVmWbnF;

1.34
date	2024.08.22.13.33.16;	author wiz;	state Exp;
branches;
next	1.33;
commitid	Nq45ymzzMgdF0PmF;

1.33
date	2024.08.19.21.57.37;	author wiz;	state Exp;
branches;
next	1.32;
commitid	48YRLe5ZUhRFTtmF;

1.32
date	2024.08.11.07.04.13;	author wiz;	state Exp;
branches;
next	1.31;
commitid	q6KnvLJkl5H8dnlF;

1.31
date	2024.08.06.12.52.45;	author wiz;	state Exp;
branches;
next	1.30;
commitid	rx5A31ehEnaEiLkF;

1.30
date	2024.07.28.10.30.08;	author adam;	state Exp;
branches;
next	1.29;
commitid	gQeSyHnGFKMxNAjF;

1.29
date	2024.07.21.09.16.34;	author wiz;	state Exp;
branches;
next	1.28;
commitid	TVj36cofztjnCGiF;

1.28
date	2024.07.20.12.33.45;	author adam;	state Exp;
branches;
next	1.27;
commitid	LG0PjpIx5lTRJziF;

1.27
date	2024.07.16.03.26.02;	author adam;	state Exp;
branches;
next	1.26;
commitid	iQ4ESE5qkLuUP0iF;

1.26
date	2024.07.09.05.36.53;	author wiz;	state Exp;
branches;
next	1.25;
commitid	GPRbrxD9COLVM7hF;

1.25
date	2024.06.08.18.51.10;	author wiz;	state Exp;
branches;
next	1.24;
commitid	MQCkN5fXIDJQaddF;

1.24
date	2024.05.10.11.14.21;	author adam;	state Exp;
branches;
next	1.23;
commitid	FZ6DwCJFO0NaAr9F;

1.23
date	2024.05.05.10.37.32;	author wiz;	state Exp;
branches;
next	1.22;
commitid	sWK9IYhLWBOBxN8F;

1.22
date	2024.04.26.07.26.31;	author adam;	state Exp;
branches;
next	1.21;
commitid	A047kawWoZcVLC7F;

1.21
date	2024.04.19.19.43.58;	author adam;	state Exp;
branches;
next	1.20;
commitid	B9RFgpIYiHUQ4N6F;

1.20
date	2024.04.19.09.12.06;	author adam;	state Exp;
branches;
next	1.19;
commitid	tbfw3sKPD47xzJ6F;

1.19
date	2024.04.13.05.18.10;	author adam;	state Exp;
branches;
next	1.18;
commitid	o13coCS6VLDItW5F;

1.18
date	2024.04.03.07.17.51;	author adam;	state Exp;
branches;
next	1.17;
commitid	lktrfMoS8A2JsF4F;

1.17
date	2024.03.21.20.06.03;	author adam;	state Exp;
branches;
next	1.16;
commitid	LSn4AVQa3qvd843F;

1.16
date	2024.03.17.10.15.37;	author adam;	state Exp;
branches;
next	1.15;
commitid	RjVmkr2quiuAZu2F;

1.15
date	2024.03.11.13.29.54;	author wiz;	state Exp;
branches;
next	1.14;
commitid	ZQIaCZugqOEmgK1F;

1.14
date	2024.03.07.10.52.57;	author adam;	state Exp;
branches;
next	1.13;
commitid	flq9vTQMOEVmwd1F;

1.13
date	2024.03.03.11.59.40;	author wiz;	state Exp;
branches;
next	1.12;
commitid	iom4UhcjQS3k1I0F;

1.12
date	2024.02.18.08.23.00;	author adam;	state Exp;
branches;
next	1.11;
commitid	eccGkQpBbT1IgTYE;

1.11
date	2024.02.09.13.11.13;	author adam;	state Exp;
branches;
next	1.10;
commitid	2CF23ZGXnozB9LXE;

1.10
date	2024.01.31.11.58.28;	author adam;	state Exp;
branches;
next	1.9;
commitid	JCuPpV0YW9jz2BWE;

1.9
date	2024.01.20.08.09.09;	author adam;	state Exp;
branches;
next	1.8;
commitid	uLcIDgvxtryM7aVE;

1.8
date	2024.01.12.18.39.23;	author adam;	state Exp;
branches;
next	1.7;
commitid	SQ8GJunndviYRbUE;

1.7
date	2024.01.07.16.31.38;	author wiz;	state Exp;
branches;
next	1.6;
commitid	IckaByMRaW5ekxTE;

1.6
date	2023.12.30.10.40.49;	author wiz;	state Exp;
branches;
next	1.5;
commitid	Qd5mOTYNNlZPDtSE;

1.5
date	2023.12.17.22.15.04;	author wiz;	state Exp;
branches;
next	1.4;
commitid	TEb5uM8B9k9VTRQE;

1.4
date	2023.12.11.09.35.23;	author wiz;	state Exp;
branches;
next	1.3;
commitid	dSoA4DSW073gT1QE;

1.3
date	2023.11.19.16.26.35;	author wiz;	state Exp;
branches;
next	1.2;
commitid	IXvXFFMcp8C9SeNE;

1.2
date	2023.11.13.11.28.07;	author wiz;	state Exp;
branches;
next	1.1;
commitid	lEwEN0btzxqwprME;

1.1
date	2023.10.29.22.03.03;	author wiz;	state Exp;
branches;
next	;
commitid	vA90rL0f830tpzKE;


desc
@@


1.105
log
@py-ruff: switch to CARGO_GITHUB_CRATES
@
text
@# $NetBSD: Makefile,v 1.104 2026/04/26 10:45:24 wiz Exp $

DISTNAME=	ruff-0.15.12
PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
CATEGORIES=	devel python
MASTER_SITES=	${MASTER_SITE_PYPI:=r/ruff/}

MAINTAINER=	pkgsrc-users@@NetBSD.org
HOMEPAGE=	https://github.com/astral-sh/ruff
COMMENT=	Extremely fast Python linter, written in Rust
LICENSE=	mit

USE_LANGUAGES=	c c++
RUST_REQ=	1.92

# for tikv-jemalloc-sys
USE_TOOLS+=	gmake

CARGO_GITHUB_CRATES+=	astral-sh lsp-types e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c

MAKE_ENV+=	CARGO_NET_OFFLINE=true

post-install:
	${RM} -f ${DESTDIR}${PREFIX}/${PYSITELIB}/ruff/_find_ruff.py.orig
	cd ${DESTDIR}${PREFIX}/bin && \
	${MV} ruff ruff-${PYVERSSUFFIX} || ${TRUE}

.include "cargo-depends.mk"

.include "../../devel/py-maturin/tool.mk"
.include "../../lang/python/wheel.mk"
.include "../../lang/rust/cargo.mk"
.include "../../mk/bsd.pkg.mk"
@


1.104
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: Makefile,v 1.103 2026/04/19 17:28:53 wiz Exp $
d19 1
a19 6
# Depends on an unpublished crate. Can't use cargo.mk to fetch it.
LSP_TYPES_REV=	e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c
DISTFILES=	${DEFAULT_DISTFILES}
DISTFILES+=	lsp-types-${LSP_TYPES_REV}.tar.gz

SITES.lsp-types-${LSP_TYPES_REV}.tar.gz+=	-${MASTER_SITE_GITHUB:=astral-sh/}lsp-types/archive/${LSP_TYPES_REV}.tar.gz
@


1.103
log
@py-ruff: update to 0.15.11.

Preview features

    [ruff] Ignore RUF029 when function is decorated with asynccontextmanager (#24642)
    [airflow] Implement airflow-xcom-pull-in-template-string (AIR201) (#23583)
    [flake8-bandit] Fix S103 false positives and negatives in mask analysis (#24424)

Bug fixes

    [flake8-async] Omit overridden methods for ASYNC109 (#24648)

Documentation

    [flake8-async] Add override mention to ASYNC109 docs (#24666)
    Update Neovim config examples to use vim.lsp.config (#24577)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.102 2026/04/15 18:47:35 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.11
a20 1
SALSA_REV=	2f687a17ceea8ec7aaa605561ccbde938ccef086
a22 1
DISTFILES+=	salsa-${SALSA_REV}.tar.gz
a24 1
SITES.salsa-${SALSA_REV}.tar.gz+=		-${MASTER_SITE_GITHUB:=salsa-rs/}salsa/archive/${SALSA_REV}.tar.gz
@


1.102
log
@py-ruff: update to 0.15.10.

Preview features

    [flake8-logging] Allow closures in except handlers (LOG004) (#24464)
    [flake8-self] Make SLF diagnostics robust to non-self-named variables (#24281)
    [flake8-simplify] Make the fix for collapsible-if safe in preview (SIM102) (#24371)

Bug fixes

    Avoid emitting multi-line f-string elements before Python 3.12 (#24377)
    Avoid syntax error from E502 fixes in f-strings and t-strings (#24410)
    Strip form feeds from indent passed to dedent_to (#24381)
    [pyupgrade] Fix panic caused by handling of octals (UP012) (#24390)
    Reject multi-line f-string elements before Python 3.12 (#24355)

Rule changes

    [ruff] Treat f-string interpolation as potential side effect (RUF019) (#24426)

Server

    Add support for custom file extensions (#24463)

Documentation

    Document adding fixes in CONTRIBUTING.md (#24393)
    Fix JSON typo in settings example (#24517)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.101 2026/04/05 11:51:59 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.10
@


1.101
log
@py-ruff: update to 0.15.9.

Preview features

    [pyflakes] Flag annotated variable redeclarations as F811 in preview mode (#24244)
    [ruff] Allow dunder-named assignments in non-strict mode for RUF067 (#24089)

Bug fixes

    [flake8-errmsg] Avoid shadowing existing msg in fix for EM101 (#24363)
    [flake8-simplify] Ignore pre-initialization references in SIM113 (#24235)
    [pycodestyle] Fix W391 fixes for consecutive empty notebook cells (#24236)
    [pyupgrade] Fix UP008 nested class matching (#24273)
    [pyupgrade] Ignore strings with string-only escapes (UP012) (#16058)
    [ruff] RUF072: skip formfeeds on dedent (#24308)
    [ruff] Avoid re-using symbol in RUF024 fix (#24316)
    [ruff] Parenthesize expression in RUF050 fix (#24234)
    Disallow starred expressions as values of starred expressions (#24280)

Rule changes

    [flake8-simplify] Suppress SIM105 for except* before Python 3.12 (#23869)
    [pyflakes] Extend F507 to flag %-format strings with zero placeholders (#24215)
    [pyupgrade] UP018 should detect more unnecessarily wrapped literals (UP018) (#24093)
    [pyupgrade] Fix UP008 callable scope handling to support lambdas (#24274)
    [ruff] RUF010: Mark fix as unsafe when it deletes a comment (#24270)

Formatter

    Add nested-string-quote-style formatting option (#24312)

Documentation

    [flake8-bugbear] Clarify RUF071 fix safety for non-path string comparisons (#24149)
    [flake8-type-checking] Clarify import cycle wording for TC001/TC002/TC003 (#24322)

Other changes

    Avoid rendering fix lines with trailing whitespace after | (#24343)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.100 2026/04/02 19:07:40 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.9
@


1.100
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: Makefile,v 1.99 2026/03/24 13:18:06 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.8
@


1.99
log
@py-ruff: update to 0.15.7.

Leaf package.

Preview features

    Display output severity in preview (#23845)
    Don't show noqa hover for non-Python documents (#24040)

Rule changes

    [pycodestyle] Recognize pyrefly: as a pragma comment (E501) (#24019)

Server

    Don't return code actions for non-Python documents (#23905)

Documentation

    Add company AI policy to contributing guide (#24021)
    Document editor features for Markdown code formatting (#23924)
    [pylint] Improve phrasing (PLC0208) (#24033)

Other changes

    Use PEP 639 license information (#19661)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.98 2026/03/15 13:27:43 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.7
d14 1
a14 1
RUST_REQ=	1.91
d21 1
a21 1
SALSA_REV=	53421c2fff87426fa0bb51cab06632b87646de13
@


1.98
log
@py-ruff: update to 0.15.6.

Preview features

    Add support for lazy import parsing (#23755)
    Add support for star-unpacking of comprehensions (PEP 798) (#23788)
    Reject semantic syntax errors for lazy imports (#23757)
    Drop a few rules from the preview default set (#23879)
    [airflow] Flag Variable.get() calls outside of task execution context (AIR003) (#23584)
    [airflow] Flag runtime-varying values in DAG/task constructor arguments (AIR304) (#23631)
    [flake8-bugbear] Implement delattr-with-constant (B043) (#23737)
    [flake8-tidy-imports] Add TID254 to enforce lazy imports (#23777)
    [flake8-tidy-imports] Allow users to ban lazy imports with TID254 (#23847)
    [isort] Retain lazy keyword when sorting imports (#23762)
    [pyupgrade] Add from __future__ import annotations automatically (UP006) (#23260)
    [refurb] Support newline parameter in FURB101 for Python 3.13+ (#23754)
    [ruff] Add os-path-commonprefix (RUF071) (#23814)
    [ruff] Add unsafe fix for os-path-commonprefix (RUF071) (#23852)
    [ruff] Limit RUF036 to typing contexts; make it unsafe for non-typing-only (#23765)
    [ruff] Use starred unpacking for RUF017 in Python 3.15+ (#23789)

Bug fixes

    Fix --add-noqa creating unwanted leading whitespace (#23773)
    Fix --add-noqa breaking shebangs (#23577)
    [formatter] Fix lambda body formatting for multiline calls and subscripts (#23866)
    [formatter] Preserve required annotation parentheses in annotated assignments (#23865)
    [formatter] Preserve type-expression parentheses in the formatter (#23867)
    [flake8-annotations] Fix stack overflow in ANN401 on quoted annotations with escape sequences (#23912)
    [pep8-naming] Check naming conventions in match pattern bindings (N806, N815, N816) (#23899)
    [perflint] Fix comment duplication in fixes (PERF401, PERF403) (#23729)
    [pyupgrade] Properly trigger super change in nested class (UP008) (#22677)
    [ruff] Avoid syntax errors in RUF036 fixes (#23764)

Rule changes

    [flake8-bandit] Flag S501 with requests.request (#23873)
    [flake8-executable] Fix WSL detection in non-Docker containers (#22879)
    [flake8-print] Ignore pprint calls with stream= (#23787)

Documentation

    Update docs for Markdown code block formatting (#23871)
    [flake8-bugbear] Fix misleading description for B904 (#23731)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.97 2026/03/09 17:13:57 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.6
@


1.97
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
@d1 1
a1 1
# $NetBSD: Makefile,v 1.96 2026/03/02 08:31:08 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.5
@


1.96
log
@py-ruff: updated to 0.15.4

0.15.4

Bug fixes

Fix panic on access to definitions after analyzing definitions
[pyflakes] Suppress false positive in F821 for names used before del in stub files

Documentation

Clarify first-party import detection in Ruff
Fix incorrect import-heading example
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.95 2026/02/22 14:31:21 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.4
d20 1
a20 1
LSP_TYPES_REV=	3512a9f33eadc5402cfab1b8f7340824c8ca1439
@


1.95
log
@py-ruff: update to 0.15.2.

Preview features

    Expand the default rule set (#23385)

    In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:
        multiple-imports-on-one-line (E401)
        module-import-not-at-top-of-file (E402)
        module-import-not-at-top-of-file (E701)
        multiple-statements-on-one-line-semicolon (E702)
        useless-semicolon (E703)
        none-comparison (E711)
        true-false-comparison (E712)
        not-in-test (E713)
        not-is-test (E714)
        type-comparison (E721)
        lambda-assignment (E731)
        ambiguous-variable-name (E741)
        ambiguous-class-name (E742)
        ambiguous-function-name (E743)
        undefined-local-with-import-star (F403)
        undefined-local-with-import-star-usage (F405)
        undefined-local-with-nested-import-star-usage (F406)
        forward-annotation-syntax-error (F722)

    If you use preview and prefer the old defaults, you can restore them with configuration like:

    # ruff.toml

    [lint]
    select = ["E4", "E7", "E9", "F"]

    # pyproject.toml

    [tool.ruff.lint]
    select = ["E4", "E7", "E9", "F"]

    If you do give them a try, feel free to share your feedback in the GitHub discussion!

    [flake8-pyi] Also check string annotations (PYI041) (#19023)

Bug fixes

    [flake8-async] Fix in_async_context logic (#23426)
    [ruff] Fix for RUF102 should delete entire comment (#23380)
    [ruff] Suppress diagnostic for strings with backslashes in interpolations before Python 3.12 (RUF027) (#21069)
    [flake8-bugbear] Fix B023 false positive for immediately-invoked lambdas (#23294)
    [parser] Fix false syntax error for match-like annotated assignments (#23297)
    [parser] Fix indentation tracking after line continuations (#23417)

Rule changes

    [flake8-executable] Allow global flags in uv shebangs (EXE003) (#22582)
    [pyupgrade] Fix handling of typing.{io,re} (UP035) (#23131)
    [ruff] Detect PLC0207 on chained str.split() calls (#23275)

CLI

    Remove invalid inline noqa warning (#23270)

Configuration

    Add extension mapping to configuration file options (#23384)

Documentation

    Add Q004 to the list of conflicting rules (#23340)
    [ruff] Expand lint.external docs and add sub-diagnostic (RUF100, RUF102) (#23268)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.94 2026/02/16 11:52:56 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.2
d32 1
a32 1
	${RM} -f ${DESTDIR}${PREFIX}/${PYSITELIB}/ruff/__main__.py.orig
@


1.94
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: Makefile,v 1.93 2026/02/08 22:09:53 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.1
@


1.93
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: Makefile,v 1.92 2026/01/25 23:43:41 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.15.0
d21 1
a21 1
SALSA_REV=	e9b9ddd4bec50ac777e9353bbb8f1180e5669d89
@


1.92
log
@py-ruff: update to 0.14.14.

Preview features

    Preserve required parentheses in lambda bodies (#22747)
    Combine range suppression code diagnostics (#22613)
    [airflow] Second positional argument to Asset/Dataset should not be a dictionary (AIR303) (#22453)
    [ruff] Detect duplicate entries in __all__ (RUF068) (#22114)

Bug fixes

    [pyupgrade] Allow shadowing non-builtin bindings (UP029) (#22749)
    [pyupgrade] Apply UP045 to string arguments of typing.cast (#22320)
    [flake8-pie] Detect duplicated declared class fields in PIE794 (#22717)

Rule changes

    [flake8-pyi] Fix inconsistent handling of forward references for __new__, __enter__, __aenter__ in PYI034 (#22798)
    [flake8-pytest-style] Support check parameter in PT011 (#22725)
    [ruff] Add exception for ctypes.Structure._fields_ (RUF012) (#22559)
    Many fixes are now marked unsafe if they would remove comments:
        [flake8-bugbear] B009, B010, B013, B014, B033
        [flake8-simplify] SIM910, SIM911
        [pyupgrade] UP007, UP039, UP041, UP045
        [refurb] FURB105, FURB116, FURB136, FURB140, FURB145, FURB154, FURB157, FURB164,FURB181, FURB188
        [ruff] RUF019, RUF020

Documentation

    Add --exit-non-zero-on-format to formatter exit codes section (#22761)
    Update contributing guide for adding a new rule (#22779)
    [FastAPI] Document fix safety for FAST001 (#22655)
    [flake8-async] Tweak explanation to focus on latency/efficiency tradeoff (ASYNC110) (#22715)
    [pandas-vet] Make example error out-of-the-box (PD002) (#22561)
    [refurb] Make the example work out of box (FURB101) (#22770)
    [refurb] Make the example work out of box (FURB103) (#22769)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.91 2026/01/19 11:40:24 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.14
d14 1
a14 1
RUST_REQ=	1.90
d21 1
a21 1
SALSA_REV=	9860ff6ca0f1f8f3a8d6b832020002790b501254
@


1.91
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: Makefile,v 1.90 2026/01/11 08:35:36 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.13
@


1.90
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: Makefile,v 1.89 2025/12/21 18:02:16 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.11
d21 1
a21 1
SALSA_REV=	309c249088fdeef0129606fa34ec2eefc74736ff
@


1.89
log
@py-ruff: update to 0.14.10.

Preview features

    [formatter] Fluent formatting of method chains (#21369)
    [formatter] Keep lambda parameters on one line and parenthesize the body if it expands (#21385)
    [flake8-implicit-str-concat] New rule to prevent implicit string concatenation in collections (ISC004) (#21972)
    [flake8-use-pathlib] Make fixes unsafe when types change in compound statements (PTH104, PTH105, PTH109, PTH115) (#22009)
    [refurb] Extend support for Path.open (FURB101, FURB103) (#21080)

Bug fixes

    [pyupgrade] Fix parsing named Unicode escape sequences (UP032) (#21901)

Rule changes

    [eradicate] Ignore ruff:disable and ruff:enable comments in ERA001 (#22038)
    [flake8-pytest-style] Allow match and check keyword arguments without an expected exception type (PT010) (#21964)
    [syntax-errors] Annotated name cannot be global (#20868)

Documentation

    Add uv and ty to the Ruff README (#21996)
    Document known lambda formatting deviations from Black (#21954)
    Update setup.md (#22024)
    [flake8-bandit] Fix broken link (S704) (#22039)

Other changes

    Fix playground Share button showing "Copied!" before clipboard copy completes (#21942)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.88 2025/12/15 12:26:50 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.10
d14 1
a14 1
RUST_REQ=	1.89
d21 1
a21 1
SALSA_REV=	55e5e7d32fa3fc189276f35bb04c9438f9aedbd1
@


1.88
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: Makefile,v 1.87 2025/12/05 10:09:24 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.9
@


1.87
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: Makefile,v 1.86 2025/11/29 16:29:54 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.8
d21 1
a21 1
SALSA_REV=	59aa1075e837f5deb0d6ffb24b68fedc0f4bc5e0
@


1.86
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: Makefile,v 1.85 2025/11/24 10:05:07 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.7
d21 1
a21 1
SALSA_REV=	17bc55d699565e5a1cb1bd42363b905af2f9f3e7
@


1.85
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: Makefile,v 1.84 2025/11/16 21:08:11 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.6
d14 1
a14 1
RUST_REQ=	1.88
d21 1
a21 1
SALSA_REV=	a885bb4c4c192741b8a17418fef81a71e33d111e
@


1.84
log
@py-ruff: update to 0.14.5.

Preview features

    [flake8-simplify] Apply SIM113 when index variable is of type int (#21395)
    [pydoclint] Fix false positive when Sphinx directives follow a "Raises" section (DOC502) (#20535)
    [pydoclint] Support NumPy-style comma-separated parameters (DOC102) (#20972)
    [refurb] Auto-fix annotated assignments (FURB101) (#21278)
    [ruff] Ignore str() when not used for simple conversion (RUF065) (#21330)

Bug fixes

    Fix syntax error false positive on alternative match patterns (#21362)
    [flake8-simplify] Fix false positive for iterable initializers with generator arguments (SIM222) (#21187)
    [pyupgrade] Fix false positive on relative imports from local .builtins module (UP029) (#21309)
    [pyupgrade] Consistently set the deprecated tag (UP035) (#21396)

Rule changes

    [refurb] Detect empty f-strings (FURB105) (#21348)

CLI

    Add option to provide a reason to --add-noqa (#21294)
    Add upstream linter URL to ruff linter --output-format=json (#21316)
    Add color to --help (#21337)

Documentation

    Add a new "Opening a PR" section to the contribution guide (#21298)
    Added the PyScripter IDE to the list of "Who is using Ruff?" (#21402)
    Update PyCharm setup instructions (#21409)
    [flake8-annotations] Add link to allow-star-arg-any option (ANN401) (#21326)

Other changes

    [configuration] Improve error message when line-length exceeds u16::MAX (#21329)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.83 2025/11/10 09:52:46 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.5
d21 1
a21 1
SALSA_REV=	05a9af7f554b64b8aadc2eeb6f2caf73d0408d09
@


1.83
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: Makefile,v 1.82 2025/11/02 20:15:04 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.4
@


1.82
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: Makefile,v 1.81 2025/10/30 13:34:27 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.3
d21 1
a21 1
SALSA_REV=	cdd0b85516a52c18b8a6d17a2279a96ed6c3e198
@


1.81
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: Makefile,v 1.80 2025/10/19 19:12:13 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.2
d21 1
a21 1
SALSA_REV=	d38145c29574758de7ffbe8a13cd4584c3b09161
@


1.80
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: Makefile,v 1.79 2025/10/12 18:27:25 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.1
d21 1
a21 1
SALSA_REV=	ef9f9329be6923acd050c8dddd172e3bc93e8051
@


1.79
log
@py-ruff: update to 0.14.0.

Breaking changes

    Update default and latest Python versions for 3.14 (#20725)

Preview features

    [flake8-bugbear] Include certain guaranteed-mutable expressions: tuples, generators, and assignment expressions (B006) (#20024)
    [refurb] Add fixes for FURB101 and FURB103 (#20520)
    [ruff] Extend FA102 with listed PEP 585-compatible APIs (#20659)

Bug fixes

    [flake8-annotations] Fix return type annotations to handle shadowed builtin symbols (ANN201, ANN202, ANN204, ANN205, ANN206) (#20612)
    [flynt] Fix f-string quoting for mixed quote joiners (FLY002) (#20662)
    [isort] Fix inserting required imports before future imports (I002) (#20676)
    [ruff] Handle argfile expansion errors gracefully (#20691)
    [ruff] Skip RUF051 if else/elif block is present (#20705)
    [ruff] Improve handling of intermixed comments inside from-imports (#20561)

Documentation

    [flake8-comprehensions] Clarify fix safety documentation (C413) (#20640)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.78 2025/10/03 08:26:37 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.14.0
d21 1
a21 1
SALSA_REV=	29ab321b45d00daa4315fa2a06f7207759a8c87e
@


1.78
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: Makefile,v 1.77 2025/09/25 20:12:50 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.13.3
@


1.77
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: Makefile,v 1.76 2025/08/31 10:24:01 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.13.2
d14 1
a14 2

RUST_REQ=	1.87
d21 1
a21 1
SALSA_REV=	3713cd7eb30821c0c086591832dd6f59f2af7fe7
@


1.76
log
@py-ruff: update to 0.12.11.

Release Notes

Preview features

    [airflow] Extend AIR311 and AIR312 rules (#20082)
    [airflow] Replace wrong path airflow.io.storage with airflow.io.store (AIR311) (#20081)
    [flake8-async] Implement blocking-http-call-httpx-in-async-function (ASYNC212) (#20091)
    [flake8-logging-format] Add auto-fix for f-string logging calls (G004) (#19303)
    [flake8-use-pathlib] Add autofix for PTH211 (#20009)
    [flake8-use-pathlib] Make PTH100 fix unsafe because it can change behavior (#20100)

Bug fixes

    [pyflakes, pylint] Fix false positives caused by __class__ cell handling (F841, PLE0117) (#20048)
    [pyflakes] Fix allowed-unused-imports matching for top-level modules (F401) (#20115)
    [ruff] Fix false positive for t-strings in default-factory-kwarg (RUF026) (#20032)
    [ruff] Preserve relative whitespace in multi-line expressions (RUF033) (#19647)

Rule changes

    [ruff] Handle empty t-strings in unnecessary-empty-iterable-within-deque-call (RUF037) (#20045)

Documentation

    Fix incorrect D413 links in docstrings convention FAQ (#20089)
    [flake8-use-pathlib] Update links to the table showing the correspondence between os and pathlib (#20103)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.75 2025/08/25 18:34:55 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.11
d22 1
a22 1
SALSA_REV=	a3ffa22cb26756473d56f867aedec3fd907c4dd9
@


1.75
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: Makefile,v 1.74 2025/08/20 09:55:53 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.10
@


1.74
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: Makefile,v 1.73 2025/08/08 16:50:14 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.9
d15 2
d22 1
a22 1
SALSA_REV=	918d35d873b2b73a0237536144ef4d22e8d57f27
@


1.73
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: Makefile,v 1.72 2025/08/03 10:20:21 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.8
d20 1
a20 1
SALSA_REV=	b121ee46c4483ba74c19e933a3522bd548eb7343
@


1.72
log
@py-ruff: update to 0.12.7.

0.12.7

This is a follow-up release to 0.12.6. Because of an issue in the
package metadata, 0.12.6 failed to publish fully to PyPI and has
been yanked. Similarly, there is no GitHub release or Git tag for
0.12.6. The contents of the 0.12.7 release are identical to 0.12.6,
except for the updated metadata.

0.12.6 Release Notes

Preview features

    [flake8-commas] Add support for trailing comma checks in type parameter lists (COM812, COM819) (#19390)
    [pylint] Implement auto-fix for missing-maxsplit-arg (PLC0207) (#19387)
    [ruff] Offer fixes for RUF039 in more cases (#19065)

Bug fixes

    Support .pyi files in ruff analyze graph (#19611)
    [flake8-pyi] Preserve inline comment in ellipsis removal (PYI013) (#19399)
    [perflint] Ignore rule if target is global or nonlocal (PERF401) (#19539)
    [pyupgrade] Fix UP030 to avoid modifying double curly braces in format strings (#19378)
    [refurb] Ignore decorated functions for FURB118 (#19339)
    [refurb] Mark int and bool cases for Decimal.from_float as safe fixes (FURB164) (#19468)
    [ruff] Fix RUF033 for named default expressions (#19115)

Rule changes

    [flake8-blind-except] Change BLE001 to permit logging.critical(..., exc_info=True) (#19520)

Performance

    Add support for specifying minimum dots in detected string imports (#19538)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.71 2025/07/27 09:43:23 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.7
d20 1
a20 1
SALSA_REV=	dba66f1a37acca014c2402f231ed5b361bd7d8fe
@


1.71
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: Makefile,v 1.70 2025/07/20 10:31:45 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.5
@


1.70
log
@py-ruff: update to 0.12.4.

Preview features

    [flake8-type-checking, pyupgrade, ruff] Add from __future__ import annotations when it would allow new fixes (TC001, TC002, TC003, UP037, RUF013) (#19100)
    [flake8-use-pathlib] Add autofix for PTH109 (#19245)
    [pylint] Detect indirect pathlib.Path usages for unspecified-encoding (PLW1514) (#19304)

Bug fixes

    [flake8-bugbear] Fix B017 false negatives for keyword exception arguments (#19217)
    [flake8-use-pathlib] Fix false negative on direct Path() instantiation (PTH210) (#19388)
    [flake8-django] Fix DJ008 false positive for abstract models with type-annotated abstract field (#19221)
    [isort] Fix I002 import insertion after docstring with multiple string statements (#19222)
    [isort] Treat form feed as valid whitespace before a semicolon (#19343)
    [pydoclint] Fix SyntaxError from fixes with line continuations (D201, D202) (#19246)
    [refurb] FURB164 fix should validate arguments and should usually be marked unsafe (#19136)

Rule changes

    [flake8-use-pathlib] Skip single dots for invalid-pathlib-with-suffix (PTH210) on versions >= 3.14 (#19331)
    [pep8_naming] Avoid false positives on standard library functions with uppercase names (N802) (#18907)
    [pycodestyle] Handle brace escapes for t-strings in logical lines (#19358)
    [pylint] Extend invalid string character rules to include t-strings (#19355)
    [ruff] Allow strict kwarg when checking for starmap-zip (RUF058) in Python 3.14+ (#19333)

Documentation

    [flake8-type-checking] Make TC010 docs example more realistic (#19356)
    Make more documentation examples error out-of-the-box (#19288,#19272,#19291,#19296,#19292,#19295,#19297,#19309)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.69 2025/07/13 10:44:42 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.4
d20 1
a20 1
SALSA_REV=	fc00eba89e5dcaa5edba51c41aa5f309b5cb126b
@


1.69
log
@py-ruff: update to 0.12.3.

Preview features

    [flake8-bugbear] Support non-context-manager calls in B017 (#19063)
    [flake8-use-pathlib] Add autofixes for PTH100, PTH106, PTH107, PTH108, PTH110, PTH111, PTH112, PTH113, PTH114, PTH115, PTH117, PTH119, PTH120 (#19213)
    [flake8-use-pathlib] Add autofixes for PTH203, PTH204, PTH205 (#18922)

Bug fixes

    [flake8-return] Fix false-positive for variables used inside nested functions in RET504 (#18433)
    Treat form feed as valid whitespace before a line continuation (#19220)
    [flake8-type-checking] Fix syntax error introduced by fix (TC008) (#19150)
    [pyupgrade] Keyword arguments in super should suppress the UP008 fix (#19131)

Documentation

    [flake8-pyi] Make example error out-of-the-box (PYI007, PYI008) (#19103)
    [flake8-simplify] Make example error out-of-the-box (SIM116) (#19111)
    [flake8-type-checking] Make example error out-of-the-box (TC001) (#19151)
    [flake8-use-pathlib] Make example error out-of-the-box (PTH210) (#19189)
    [pycodestyle] Make example error out-of-the-box (E272) (#19191)
    [pycodestyle] Make example not raise unnecessary SyntaxError (E114) (#19190)
    [pydoclint] Make example error out-of-the-box (DOC501) (#19218)
    [pylint, pyupgrade] Fix syntax errors in examples (PLW1501, UP028) (#19127)
    [pylint] Update missing-maxsplit-arg docs and error to suggest proper usage (PLC0207) (#18949)
    [flake8-bandit] Make example error out-of-the-box (S412) (#19241)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.68 2025/07/06 08:57:37 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.3
@


1.68
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: Makefile,v 1.67 2025/07/01 20:43:20 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.2
@


1.67
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: Makefile,v 1.66 2025/06/09 09:37:41 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.12.1
d20 1
a20 1
SALSA_REV=	09627e450566f894956710a3fd923dc80462ae6d
@


1.66
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: Makefile,v 1.65 2025/06/04 10:25:56 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.11.13
d20 1
a20 1
SALSA_REV=	0f6d406f6c309964279baef71588746b8c67b4a3
@


1.65
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: Makefile,v 1.64 2025/05/18 10:21:00 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.11.12
d20 1
a20 1
SALSA_REV=	4818b15f3b7516555d39f5a41cb75970448bee4c
@


1.64
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: Makefile,v 1.63 2025/05/09 18:44:49 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.11.10
d20 1
a20 1
SALSA_REV=	7edce6e248f35c8114b4b021cdb474a3fb2813b3
@


1.63
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: Makefile,v 1.62 2025/05/04 15:04:28 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.11.9
@


1.62
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: Makefile,v 1.61 2025/04/28 10:54:04 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.11.8
d20 1
a20 1
SALSA_REV=	42f15835c0005c4b37aaf5bc1a15e3e1b3df14b7
@


1.61
log
@py-ruff: update to 0.11.7.

Preview features

    [airflow] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR301) (#17355)
    [perflint] Implement fix for manual-dict-comprehension (PERF403) (#16719)
    [syntax-errors] Make duplicate parameter names a semantic error (#17131)

Bug fixes

    [airflow] Fix typos in provider package names (AIR302, AIR312) (#17574)
    [flake8-type-checking] Visit keyword arguments in checks involving typing.cast/typing.NewType arguments (#17538)
    [pyupgrade] Preserve parenthesis when fixing native literals containing newlines (UP018) (#17220)
    [refurb] Mark the FURB161 fix unsafe except for integers and booleans (#17240)

Rule changes

    [perflint] Allow list function calls to be replaced with a comprehension (PERF401) (#17519)
    [pycodestyle] Auto-fix redundant boolean comparison (E712) (#17090)
    [pylint] make fix unsafe if delete comments (PLR1730) (#17459)

Documentation

    Add fix safety sections to docs for several rules (#17410,#17440,#17441,#17443,#17444)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.60 2025/04/20 21:20:04 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.11.7
d20 1
a20 1
SALSA_REV=	87bf6b6c2d5f6479741271da73bd9d30c2580c26
@


1.60
log
@py-ruff: update to 0.11.6.

Lots of changes.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.59 2025/03/12 06:12:45 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.11.6
@


1.59
log
@py-ruff: updated to 0.9.10

0.9.10

Preview features

[ruff] Add new rule RUF059: Unused unpacked assignment
[syntax-errors] Detect assignment expressions before Python 3.8
[syntax-errors] Named expressions in decorators before Python 3.9
[syntax-errors] Parenthesized keyword argument names after Python 3.8
[syntax-errors] Positional-only parameters before Python 3.8
[syntax-errors] Tuple unpacking in return and yield before Python 3.8
[syntax-errors] Type parameter defaults before Python 3.13
[syntax-errors] Type parameter lists before Python 3.12
[syntax-errors] except* before Python 3.11
[syntax-errors] type statements before Python 3.12

Bug fixes

Escape template filenames in glob patterns in configuration
[flake8-simplify] Exempt unittest context methods for SIM115 rule
Formatter: Fix syntax error location in notebooks
[pyupgrade] Do not offer fix when at least one target is global/nonlocal (UP028)
[flake8-builtins] Ignore variables matching module attribute names (A001)
[pylint] Convert code keyword argument to a positional argument in fix for (PLR1722)

CLI

Move rule code from description to check_name in GitLab output serializer

Documentation

[pydocstyle] Clarify that D417 only checks docstrings with an arguments section
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.58 2025/03/02 20:31:19 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.10
d20 1
a20 1
SALSA_REV=	99be5d9917c3dd88e19735a82ef6bf39ba84bd7e
@


1.58
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: Makefile,v 1.57 2025/02/23 11:45:54 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.9
@


1.57
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: Makefile,v 1.56 2025/02/12 06:20:03 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.7
d20 1
a20 1
SALSA_REV=	351d9cf0037be949d17800d0c7b4838e533c2ed6
@


1.56
log
@py-ruff: updated to 0.9.6

0.9.6

Preview features

[airflow] Add external_task.{ExternalTaskMarker, ExternalTaskSensor} for AIR302
[flake8-builtins] Make strict module name comparison optional (A005)
[flake8-pyi] Extend fix to Python <= 3.9 for redundant-none-literal (PYI061)
[pylint] Also report when the object isn't a literal (PLE1310)
[ruff] Implement indented-form-feed (RUF054)
[ruff] Skip type definitions for missing-f-string-syntax (RUF027)

Rule changes

[flake8-annotations] Correct syntax for typing.Union in suggested return type fixes for ANN20x rules
[flake8-builtins] Match upstream module name comparison (A005)
[flake8-comprehensions] Detect overshadowed list/set/dict, ignore variadics and named expressions (C417)
[flake8-pie] Remove following comma correctly when the unpacked dictionary is empty (PIE800)
[flake8-simplify] Only trigger SIM401 on known dictionaries
[pylint] Do not report calls when object type and argument type mismatch, remove custom escape handling logic (PLE1310)
[pyupgrade] Comments within parenthesized value ranges should not affect applicability (UP040)
[pyupgrade] Don't introduce invalid syntax when upgrading old-style type aliases with parenthesized multiline values (UP040)
[pyupgrade] Ensure we do not rename two type parameters to the same name (UP049)
[pyupgrade] [ruff] Don't apply renamings if the new name is shadowed in a scope of one of the references to the binding (UP049, RUF052)
[ruff] Update RUF009 to behave similar to B008 and ignore attributes with immutable types

Server

Root exclusions in the server to project root

Bug fixes

[flake8-datetime] Ignore .replace() calls while looking for .astimezone
[flake8-type-checking] Avoid TC004 false positive where the runtime definition is provided by __getattr__

Documentation

Improve ruff-lsp migration document
Undeprecate ruff.nativeServer
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.55 2025/02/07 07:13:09 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.6
d20 1
a20 1
SALSA_REV=	88a1d7774d78f048fbd77d40abca9ebd729fd1f0
@


1.55
log
@py-ruff: updated to 0.9.5

0.9.5

Preview features

Recognize all symbols named TYPE_CHECKING for in_type_checking_block
[flake8-comprehensions] Handle builtins at top of file correctly for unnecessary-dict-comprehension-for-iterable (C420)
[flake8-logging] .exception() and exc_info= outside exception handlers (LOG004, LOG014)
[flake8-pyi] Fix incorrect behaviour of custom-typevar-return-type preview-mode autofix if typing was already imported (PYI019)
[flake8-pyi] Fix more complex cases (PYI019)
[flake8-pyi] Make PYI019 autofixable for .py files in preview mode as well as stubs
[flake8-pyi] Remove type parameter correctly when it is the last (PYI019)
[pylint] Fix missing parens in unsafe fix for unnecessary-dunder-call (PLC2801)
[pyupgrade] Better messages and diagnostic range (UP015)
[pyupgrade] Rename private type parameters in PEP 695 generics (UP049)
[refurb] Also report non-name expressions (FURB169)
[refurb] Mark fix as unsafe if there are comments (FURB171)
[ruff] Classes with mixed type variable style (RUF053)
[airflow] BashOperator has been moved to airflow.providers.standard.operators.bash.BashOperator (AIR302)
[flake8-pyi] Add autofix for unused-private-type-var (PYI018)
[flake8-pyi] Significantly improve accuracy of PYI019 if preview mode is enabled

Rule changes

Preserve triple quotes and prefixes for strings
[flake8-comprehensions] Skip when TypeError present from too many (kw)args for C410,C411, and C418
[flake8-pyi] Rename PYI019 and improve its diagnostic message
[pep8-naming] Ignore @@override methods (N803)
[pyupgrade] Reuse replacement logic from UP046 and UP047 to preserve more comments (UP040)
[ruff] Analyze deferred annotations before enforcing mutable-(data)class-default and function-call-in-dataclass-default-argument (RUF008,RUF009,RUF012)
[pycodestyle] Exempt sys.path += ... calls (E402)

Configuration

Config error only when flake8-import-conventions alias conflicts with isort.required-imports bound name
Workaround Even Better TOML crash related to allOf

Bug fixes

[flake8-comprehensions] Unnecessary list comprehension (rewrite as a set comprehension) (C403) - Handle extraneous parentheses around list comprehension
[flake8-comprehensions] Handle trailing comma in fixes for unnecessary-generator-list/set (C400,C401)
[flake8-pyi] Fix several correctness issues with custom-type-var-return-type (PYI019)
[pep8-naming] Consider any number of leading underscore for N801
[pyflakes] Visit forward annotations in TypeAliasType as types (F401)
[pylint] Correct min/max auto-fix and suggestion for (PL1730)
[refurb] Handle unparenthesized tuples correctly (FURB122, FURB142)
[refurb] Avoid None | None as well as better detection and fix (FURB168)

Documentation

Add deprecation warning for ruff-lsp related settings
Docs (linter.md): clarify that Python files are always searched for in subdirectories
Fix a typo in non_pep695_generic_class.rs
Improve Docs: Pylint subcategories' codes
Remove non-existing lint.extendIgnore editor setting
Update black deviations
Mention UP049 in UP046 and UP047, add See also section to UP040
Add instance variable examples to RUF012
Explain precedence for ignore and select config
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.54 2025/01/31 18:40:20 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.5
@


1.54
log
@py-ruff: update to 0.9.4.

0.9.4

Preview features

    [airflow] Extend airflow context parameter check for BaseOperator.execute (AIR302) (#15713)
    [airflow] Update AIR302 to check for deprecated context keys (#15144)
    [flake8-bandit] Permit suspicious imports within stub files (S4) (#15822)
    [pylint] Do not trigger PLR6201 on empty collections (#15732)
    [refurb] Do not emit diagnostic when loop variables are used outside loop body (FURB122) (#15757)
    [ruff] Add support for more re patterns (RUF055) (#15764)
    [ruff] Check for shadowed map before suggesting fix (RUF058) (#15790)
    [ruff] Do not emit diagnostic when all arguments to zip() are variadic (RUF058) (#15744)
    [ruff] Parenthesize fix when argument spans multiple lines for unnecessary-round (RUF057) (#15703)

Rule changes

    Preserve quote style in generated code (#15726, #15778, #15794)
    [flake8-bugbear] Exempt NewType calls where the original type is immutable (B008) (#15765)
    [pylint] Honor banned top-level imports by TID253 in PLC0415. (#15628)
    [pyupgrade] Ignore is_typeddict and TypedDict for deprecated-import (UP035) (#15800)

CLI

    Fix formatter warning message for flake8-quotes option (#15788)
    Implement tab autocomplete for ruff config (#15603)

Bug fixes

    [flake8-comprehensions] Do not emit unnecessary-map diagnostic when lambda has different arity (C417) (#15802)
    [flake8-comprehensions] Parenthesize sorted when needed for unnecessary-call-around-sorted (C413) (#15825)
    [pyupgrade] Handle end-of-line comments for quoted-annotation (UP037) (#15824)

Documentation

    Add missing config docstrings (#15803)
    Add references to trio.run_process and anyio.run_process (#15761)
    Use uv init --lib in tutorial (#15718)

0.9.3

Preview features

    [airflow] Argument fail_stop in DAG has been renamed as fail_fast (AIR302) (#15633)
    [airflow] Extend AIR303 with more symbols (#15611)
    [flake8-bandit] Report all references to suspicious functions (S3) (#15541)
    [flake8-pytest-style] Do not emit diagnostics for empty for loops (PT012, PT031) (#15542)
    [flake8-simplify] Avoid double negations (SIM103) (#15562)
    [pyflakes] Fix infinite loop with unused local import in __init__.py (F401) (#15517)
    [pylint] Do not report methods with only one EM101-compatible raise (PLR6301) (#15507)
    [pylint] Implement redefined-slots-in-subclass (W0244) (#9640)
    [pyupgrade] Add rules to use PEP 695 generics in classes and functions (UP046, UP047) (#15565, #15659)
    [refurb] Implement for-loop-writes (FURB122) (#10630)
    [ruff] Implement needless-else clause (RUF047) (#15051)
    [ruff] Implement starmap-zip (RUF058) (#15483)

Rule changes

    [flake8-bugbear] Do not raise error if keyword argument is present and target-python version is less or equals than 3.9 (B903) (#15549)
    [flake8-comprehensions] strip parentheses around generators in unnecessary-generator-set (C401) (#15553)
    [flake8-pytest-style] Rewrite references to .exception (PT027) (#15680)
    [flake8-simplify] Mark fixes as unsafe (SIM201, SIM202) (#15626)
    [flake8-type-checking] Fix some safe fixes being labeled unsafe (TC006,TC008) (#15638)
    [isort] Omit trailing whitespace in unsorted-imports (I001) (#15518)
    [pydoclint] Allow ignoring one line docstrings for DOC rules (#13302)
    [pyflakes] Apply redefinition fixes by source code order (F811) (#15575)
    [pyflakes] Avoid removing too many imports in redefined-while-unused (F811) (#15585)
    [pyflakes] Group redefinition fixes by source statement (F811) (#15574)
    [pylint] Include name of base class in message for redefined-slots-in-subclass (W0244) (#15559)
    [ruff] Update fix for RUF055 to use var == value (#15605)

Formatter

    Fix bracket spacing for single-element tuples in f-string expressions (#15537)
    Fix unstable f-string formatting for expressions containing a trailing comma (#15545)

Performance

    Avoid quadratic membership check in import fixes (#15576)

Server

    Allow unsafe-fixes settings for code actions (#15666)

Bug fixes

    [flake8-bandit] Add missing single-line/dotall regex flag (S608) (#15654)
    [flake8-import-conventions] Fix infinite loop between ICN001 and I002 (ICN001) (#15480)
    [flake8-simplify] Do not emit diagnostics for expressions inside string type annotations (SIM222, SIM223) (#15405)
    [pyflakes] Treat arguments passed to the default= parameter of TypeVar as type expressions (F821) (#15679)
    [pyupgrade] Avoid syntax error when the iterable is a non-parenthesized tuple (UP028) (#15543)
    [ruff] Exempt NewType calls where the original type is immutable (RUF009) (#15588)
    Preserve raw string prefix and escapes in all codegen fixes (#15694)

Documentation

    Generate documentation redirects for lowercase rule codes (#15564)
    TRY300: Add some extra notes on not catching exceptions you didn't expect (#15036)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.53 2025/01/16 22:26:18 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.4
@


1.53
log
@py-ruff: updated to 0.9.2

0.9.2

Preview features

[airflow] Fix typo "security_managr" to "security_manager" (AIR303)
[airflow] extend and fix AIR302 rules
[fastapi] Handle parameters with Depends correctly (FAST003)
[flake8-pytest-style] Implement pytest.warns diagnostics (PT029, PT030, PT031)
[flake8-pytest-style] Test function parameters with default arguments (PT028)
[flake8-type-checking] Avoid false positives for | in TC008

Rule changes

[flake8-todos] Allow VSCode GitHub PR extension style links in missing-todo-link (TD003)
[pyflakes] Show syntax error message for F722

Formatter

Fix curly bracket spacing around f-string expressions containing curly braces
Fix joining of f-strings with different quotes when using quote style Preserve

Server

Avoid indexing the same workspace multiple times
Display context for ruff.configuration errors

Configuration

Remove flatten to improve deserialization error messages

Bug fixes

Parse triple-quoted string annotations as if parenthesized
[fastapi] Update Annotated fixes (FAST002)
[flake8-bandit] Check for builtins instead of builtin (S102, PTH123)
[flake8-pathlib] Fix --select for os-path-dirname (PTH120)
[ruff] Fix false positive on global keyword (RUF052)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.52 2025/01/12 10:30:06 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.2
@


1.52
log
@py-ruff: update to 0.9.1.

0.9.1

Preview features

    [pycodestyle] Run too-many-newlines-at-end-of-file on each cell in notebooks (W391) (#15308)
    [ruff] Omit diagnostic for shadowed private function parameters in used-dummy-variable (RUF052) (#15376)

Rule changes

    [flake8-bugbear] Improve assert-raises-exception message (B017) (#15389)

Formatter

    Preserve trailing end-of line comments for the last string literal in implicitly concatenated strings (#15378)

Server

    Fix a bug where the server and client notebooks were out of sync after reordering cells (#15398)

Bug fixes

    [flake8-pie] Correctly remove wrapping parentheses (PIE800) (#15394)
    [pyupgrade] Handle comments and multiline expressions correctly (UP037) (#15337)

0.9.0

Breaking changes

Ruff now formats your code according to the 2025 style guide. As a result, your code might now get formatted differently. See the formatter section for a detailed list of changes.

This release doesn’t remove or remap any existing stable rules.

Stabilization

The following rules have been stabilized and are no longer in preview:

    stdlib-module-shadowing (A005).
    This rule has also been renamed: previously, it was called builtin-module-shadowing.
    builtin-lambda-argument-shadowing (A006)
    slice-to-remove-prefix-or-suffix (FURB188)
    boolean-chained-comparison (PLR1716)
    decimal-from-float-literal (RUF032)
    post-init-default (RUF033)
    useless-if-else (RUF034)

The following behaviors have been stabilized:

    pytest-parametrize-names-wrong-type (PT006): Detect pytest.parametrize calls outside decorators and calls with keyword arguments.
    module-import-not-at-top-of-file (E402): Ignore pytest.importorskip calls between import statements.
    mutable-dataclass-default (RUF008) and function-call-in-dataclass-default-argument (RUF009): Add support for attrs.
    bad-version-info-comparison (PYI006): Extend the rule to check non-stub files.

The following fixes or improvements to fixes have been stabilized:

    redundant-numeric-union (PYI041)
    duplicate-union-members (PYI016)

Formatter

This release introduces the new 2025 stable style (#13371), stabilizing the following changes:

    Format expressions in f-string elements (#7594)
    Alternate quotes for strings inside f-strings (#13860)
    Preserve the casing of hex codes in f-string debug expressions (#14766)
    Choose the quote style for each string literal in an implicitly concatenated f-string rather than for the entire string (#13539)
    Automatically join an implicitly concatenated string into a single string literal if it fits on a single line (#9457)
    Remove the ISC001 incompatibility warning (#15123)
    Prefer parenthesizing the assert message over breaking the assertion expression (#9457)
    Automatically parenthesize over-long if guards in match case clauses (#13513)
    More consistent formatting for match case patterns (#6933)
    Avoid unnecessary parentheses around return type annotations (#13381)
    Keep the opening parentheses on the same line as the if keyword for comprehensions where the condition has a leading comment (#12282)
    More consistent formatting for with statements with a single context manager for Python 3.8 or older (#10276)
    Correctly calculate the line-width for code blocks in docstrings when using max-doc-code-line-length = "dynamic" (#13523)

Preview features

    [flake8-bugbear] Implement class-as-data-structure (B903) (#9601)
    [flake8-type-checking] Apply quoted-type-alias more eagerly in TYPE_CHECKING blocks and ignore it in stubs (TC008) (#15180)
    [pylint] Ignore eq-without-hash in stub files (PLW1641) (#15310)
    [pyupgrade] Split UP007 into two individual rules: UP007 for Union and UP045 for Optional (UP007, UP045) (#15313)
    [ruff] New rule that detects classes that are both an enum and a dataclass (RUF049) (#15299)
    [ruff] Recode RUF025 to RUF037 (RUF037) (#15258)

Rule changes

    [flake8-builtins] Ignore stdlib-module-shadowing in stub files(A005) (#15350)
    [flake8-return] Add support for functions returning typing.Never (RET503) (#15298)

Server

    Improve the observability by removing the need for the "trace" value to turn on or off logging. The server logging is solely controlled using the logLevel server setting
    which defaults to info. This addresses the issue where users were notified about an error and told to consult the log, but it didn’t contain any messages. (#15232)
    Ignore diagnostics from other sources for code action requests (#15373)

CLI

    Improve the error message for --config key=value when the key is for a table and it’s a simple value

Bug fixes

    [eradicate] Ignore metadata blocks directly followed by normal blocks (ERA001) (#15330)
    [flake8-django] Recognize other magic methods (DJ012) (#15365)
    [pycodestyle] Avoid false positives related to type aliases (E252) (#15356)
    [pydocstyle] Avoid treating newline-separated sections as sub-sections (D405) (#15311)
    [pyflakes] Remove call when removing final argument from format (F523) (#15309)
    [refurb] Mark fix as unsafe when the right-hand side is a string (FURB171) (#15273)
    [ruff] Treat ) as a regex metacharacter (RUF043, RUF055) (#15318)
    [ruff] Parenthesize the int-call argument when removing the int call would change semantics (RUF046) (#15277)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.51 2025/01/07 11:55:11 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.9.1
@


1.51
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: Makefile,v 1.50 2024/12/27 09:08:38 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.8.6
@


1.50
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: Makefile,v 1.49 2024/12/11 10:41:57 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.8.4
d20 1
a20 1
SALSA_REV=	3c7f1694c9efba751dbeeacfbc93b227586e316a
@


1.49
log
@py-ruff: update to 0.8.2.

Preview features

    [airflow] Avoid deprecated values (AIR302) (#14582)
    [airflow] Extend removed names for AIR302 (#14734)
    [ruff] Extend unnecessary-regular-expression to non-literal strings (RUF055) (#14679)
    [ruff] Implement used-dummy-variable (RUF052) (#14611)
    [ruff] Implement unnecessary-cast-to-int (RUF046) (#14697)

Rule changes

    [airflow] Check AIR001 from builtin or providers operators module (#14631)
    [flake8-pytest-style] Remove @@ in pytest.mark.parametrize rule messages (#14770)
    [pandas-vet] Skip rules if the panda module hasn't been seen (#14671)
    [pylint] Fix false negatives for ascii and sorted in len-as-condition (PLC1802) (#14692)
    [refurb] Guard hashlib imports and mark hashlib-digest-hex fix as safe (FURB181) (#14694)

Configuration

    [flake8-import-conventions] Improve syntax check for aliases supplied in configuration for unconventional-import-alias (ICN001) (#14745)

Bug fixes

    Revert: [pyflakes] Avoid false positives in @@no_type_check contexts (F821, F722) (#14615) (#14726)
    [pep8-naming] Avoid false positive for class Bar(type(foo)) (N804) (#14683)
    [pycodestyle] Handle f-strings properly for invalid-escape-sequence (W605) (#14748)
    [pylint] Ignore @@overload in PLR0904 (#14730)
    [refurb] Handle non-finite decimals in verbose-decimal-constructor (FURB157) (#14596)
    [ruff] Avoid emitting assignment-in-assert when all references to the assigned variable are themselves inside asserts (RUF018) (#14661)

Documentation

    Improve docs for flake8-use-pathlib rules (#14741)
    Improve error messages and docs for flake8-comprehensions rules (#14729)
    [flake8-type-checking] Expands TC006 docs to better explain itself (#14749)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.48 2024/11/29 08:08:44 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.8.2
d20 1
a20 1
SALSA_REV=	254c749b02cde2fd29852a7463a33e800b771758
@


1.48
log
@py-ruff: updated to 0.8.1

0.8.1

Preview features

Formatter: Avoid invalid syntax for format-spec with quotes for all Python versions
Formatter: Consider quotes inside format-specs when choosing the quotes for an f-string
Formatter: Do not consider f-strings with escaped newlines as multiline
Formatter: Fix f-string formatting in assignment statement
Formatter: Fix unnecessary space around power operator (**) in overlong f-string expressions
[airflow] Avoid implicit schedule argument to DAG and @@dag (AIR301)
[flake8-builtins] Exempt private built-in modules (A005)
[flake8-pytest-style] Fix pytest.mark.parametrize rules to check calls instead of decorators
[flake8-type-checking] Implement runtime-cast-value (TC006)
[flake8-type-checking] Implement unquoted-type-alias (TC007) and quoted-type-alias (TC008)
[flake8-use-pathlib] Recommend Path.iterdir() over os.listdir() (PTH208)
[pylint] Extend invalid-envvar-default to detect os.environ.get (PLW1508)
[pylint] Implement len-test (PLC1802)
[refurb] Fix bug where methods defined using lambdas were flagged by FURB118
[ruff] Auto-add r prefix when string has no backslashes for unraw-re-pattern (RUF039)
[ruff] Implement invalid-assert-message-literal-argument (RUF040)
[ruff] Implement unnecessary-nested-literal (RUF041)
[ruff] Implement unnecessary-regular-expression (RUF055)

Rule changes

Ignore more rules for stub files
[pep8-naming] Eliminate false positives for single-letter names (N811, N814)
[pyflakes] Avoid false positives in @@no_type_check contexts (F821, F722)
[ruff] Detect redirected-noqa in file-level comments (RUF101)
[ruff] Mark fixes for unsorted-dunder-all and unsorted-dunder-slots as unsafe when there are complex comments in the sequence (RUF022, RUF023)

Bug fixes

Avoid fixing code to None | None for redundant-none-literal (PYI061) and never-union (RUF020)
[flake8-bugbear] Fix mutable-contextvar-default to resolve annotated function calls properly (B039)
[flake8-pyi, ruff] Fix traversal of nested literals and unions (PYI016, PYI051, PYI055, PYI062, RUF041)
[flake8-pyi] Avoid rewriting invalid type expressions in unnecessary-type-union (PYI055)
[flake8-type-checking] Avoid syntax errors and type checking problem for quoted annotations autofix (TC003, TC006)
[pylint] Do not wrap function calls in parentheses in the fix for unnecessary-dunder-call (PLC2801)
[ruff] Handle attrs's auto_attribs correctly (RUF009)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.47 2024/11/24 10:52:40 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.8.1
@


1.47
log
@py-ruff: update to 0.8.0.

Breaking changes

See also, the "Remapped rules" section which may result in disabled rules.

    Default to Python 3.9

    Ruff now defaults to Python 3.9 instead of 3.8 if no explicit Python version is configured using ruff.target-version or project.requires-python (#13896)

    Changed location of pydoclint diagnostics

    pydoclint diagnostics now point to the first-line of the problematic docstring. Previously, this was not the case.

    If you've opted into these preview rules but have them suppressed using
    noqa comments in
    some places, this change may mean that you need to move the noqa suppression
    comments. Most users should be unaffected by this change.

    Use XDG (i.e. ~/.local/bin) instead of the Cargo home directory in the standalone installer

    Previously, Ruff's installer used $CARGO_HOME or ~/.cargo/bin for its target install directory. Now, Ruff will be installed into $XDG_BIN_HOME, $XDG_DATA_HOME/../bin, or ~/.local/bin (in that order).

    This change is only relevant to users of the standalone Ruff installer (using the shell or PowerShell script). If you installed Ruff using uv or pip, you should be unaffected.

    Changes to the line width calculation

    Ruff now uses a new version of the unicode-width Rust crate to calculate the line width. In very rare cases, this may lead to lines containing Unicode characters being reformatted, or being considered too long when they were not before (E501).

Removed Rules

The following deprecated rules have been removed:

    missing-type-self (ANN101)
    missing-type-cls (ANN102)
    syntax-error (E999)
    pytest-missing-fixture-name-underscore (PT004)
    pytest-incorrect-fixture-name-underscore (PT005)
    unpacked-list-comprehension (UP027)

Remapped rules

The following rules have been remapped to new rule codes:

    flake8-type-checking: TCH to TC

Stabilization

The following rules have been stabilized and are no longer in preview:

    builtin-import-shadowing (A004)
    mutable-contextvar-default (B039)
    fast-api-redundant-response-model (FAST001)
    fast-api-non-annotated-dependency (FAST002)
    dict-index-missing-items (PLC0206)
    pep484-style-positional-only-parameter (PYI063)
    redundant-final-literal (PYI064)
    bad-version-info-order (PYI066)
    parenthesize-chained-operators (RUF021)
    unsorted-dunder-all (RUF022)
    unsorted-dunder-slots (RUF023)
    assert-with-print-message (RUF030)
    unnecessary-default-type-args (UP043)

The following behaviors have been stabilized:

    ambiguous-variable-name (E741): Violations in stub files are now ignored. Stub authors typically don't control variable names.
    printf-string-formatting (UP031): Report all printf-like usages even if no autofix is available

The following fixes have been stabilized:

    zip-instead-of-pairwise (RUF007)

Preview features

    [flake8-datetimez] Exempt min.time() and max.time() (DTZ901) (#14394)
    [flake8-pie] Mark fix as unsafe if the following statement is a string literal (PIE790) (#14393)
    [flake8-pyi] New rule redundant-none-literal (PYI061) (#14316)
    [flake8-pyi] Add autofix for redundant-numeric-union (PYI041) (#14273)
    [ruff] New rule map-int-version-parsing (RUF048) (#14373)
    [ruff] New rule redundant-bool-literal (RUF038) (#14319)
    [ruff] New rule unraw-re-pattern (RUF039) (#14446)
    [pycodestyle] Exempt pytest.importorskip() calls (E402) (#14474)
    [pylint] Autofix suggests using sets when possible (PLR1714) (#14372)

Rule changes

    invalid-pyproject-toml (RUF200): Updated to reflect the provisionally accepted PEP 639.
    [flake8-pyi] Avoid panic in unfixable case (PYI041) (#14402)
    [flake8-type-checking] Correctly handle quotes in subscript expression when generating an autofix (#14371)
    [pylint] Suggest correct autofix for __contains__ (PLC2801) (#14424)

Configuration

    Ruff now emits a warning instead of an error when a configuration ignores a rule that has been removed (#14435)
    Ruff now validates that lint.flake8-import-conventions.aliases only uses valid module names and aliases (#14477)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.46 2024/11/17 21:28:21 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.8.0
@


1.46
log
@py-ruff: bump PKGREVISION for previous
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.45 2024/11/17 12:49:52 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.7.4
a4 1
PKGREVISION=	1
@


1.45
log
@py-ruff: find Ruff binary with Python version suffix
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.44 2024/11/17 09:55:01 wiz Exp $
d5 1
@


1.44
log
@py-ruff: update to 0.7.4.

Preview features

    [flake8-datetimez] Detect usages of datetime.max/datetime.min (DTZ901) (#14288)
    [flake8-logging] Implement root-logger-calls (LOG015) (#14302)
    [flake8-no-pep420] Detect empty implicit namespace packages (INP001) (#14236)
    [flake8-pyi] Add "replace with Self" fix (PYI019) (#14238)
    [perflint] Implement quick-fix for manual-list-comprehension (PERF401) (#13919)
    [pylint] Implement shallow-copy-environ (W1507) (#14241)
    [ruff] Implement none-not-at-end-of-union (RUF036) (#14314)
    [ruff] Implementation unsafe-markup-call from flake8-markupsafe plugin (RUF035) (#14224)
    [ruff] Report problems for attrs dataclasses (RUF008, RUF009) (#14327)

Rule changes

    [flake8-boolean-trap] Exclude dunder methods that define operators (FBT001) (#14203)
    [flake8-pyi] Add "replace with Self" fix (PYI034) (#14217)
    [flake8-pyi] Always autofix duplicate-union-members (PYI016) (#14270)
    [flake8-pyi] Improve autofix for nested and mixed type unions for unnecessary-type-union (PYI055) (#14272)
    [flake8-pyi] Mark fix as unsafe when type annotation contains comments for duplicate-literal-member (PYI062) (#14268)

Server

    Use the current working directory to resolve settings from ruff.configuration (#14352)

Bug fixes

    Avoid conflicts between PLC014 (useless-import-alias) and I002 (missing-required-import) by considering lint.isort.required-imports for PLC014 (#14287)
    [flake8-type-checking] Skip quoting annotation if it becomes invalid syntax (TCH001)
    [flake8-pyi] Avoid using typing.Self in stub files pre-Python 3.11 (PYI034) (#14230)
    [flake8-pytest-style] Flag pytest.raises call with keyword argument expected_exception (PT011) (#14298)
    [flake8-simplify] Infer "unknown" truthiness for literal iterables whose items are all unpacks (SIM222) (#14263)
    [flake8-type-checking] Fix false positives for typing.Annotated (TCH001) (#14311)
    [pylint] Allow await at the top-level scope of a notebook (PLE1142) (#14225)
    [pylint] Fix miscellaneous issues in await-outside-async detection (PLE1142) (#14218)
    [pyupgrade] Avoid applying PEP 646 rewrites in invalid contexts (UP044) (#14234)
    [pyupgrade] Detect permutations in redundant open modes (UP015) (#14255)
    [refurb] Avoid triggering hardcoded-string-charset for reordered sets (FURB156) (#14233)
    [refurb] Further special cases added to verbose-decimal-constructor (FURB157) (#14216)
    [refurb] Use UserString instead of non-existent UserStr (FURB189) (#14209)
    [ruff] Avoid treating lowercase letters as # noqa codes (RUF100) (#14229)
    [ruff] Do not report when Optional has no type arguments (RUF013) (#14181)

Documentation

    Add "Notebook behavior" section for F704, PLE1142 (#14266)
    Document comment policy around fix safety (#14300)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.43 2024/11/13 13:32:25 jperkin Exp $
d31 1
@


1.43
log
@*: Switch to py-maturin's tool.mk
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.42 2024/11/11 08:03:47 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.7.3
@


1.42
log
@py-ruff: update to 0.7.3.

Preview features

    Formatter: Disallow single-line implicit concatenated strings (#13928)
    [flake8-pyi] Include all Python file types for PYI006 and PYI066 (#14059)
    [flake8-simplify] Implement split-of-static-string (SIM905) (#14008)
    [refurb] Implement subclass-builtin (FURB189) (#14105)
    [ruff] Improve diagnostic messages and docs (RUF031, RUF032, RUF034) (#14068)

Rule changes

    Detect items that hash to same value in duplicate sets (B033, PLC0208) (#14064)
    [eradicate] Better detection of IntelliJ language injection comments (ERA001) (#14094)
    [flake8-pyi] Add autofix for docstring-in-stub (PYI021) (#14150)
    [flake8-pyi] Update duplicate-literal-member (PYI062) to alawys provide an autofix (#14188)
    [pyflakes] Detect items that hash to same value in duplicate dictionaries (F601) (#14065)
    [ruff] Fix false positive for decorators (RUF028) (#14061)

Bug fixes

    Avoid parsing joint rule codes as distinct codes in # noqa (#12809)
    [eradicate] ignore # language= in commented-out-code rule (ERA001) (#14069)
    [flake8-bugbear] - do not run mutable-argument-default on stubs (B006) (#14058)
    [flake8-builtins] Skip lambda expressions in builtin-argument-shadowing (A002) (#14144)
    [flake8-comprehension] Also remove trailing comma while fixing C409 and C419 (#14097)
    [flake8-simplify] Allow open without context manager in return statement (SIM115) (#14066)
    [pylint] Respect hash-equivalent literals in iteration-over-set (PLC0208) (#14063)
    [pylint] Update known dunder methods for Python 3.13 (PLW3201) (#14146)
    [pyupgrade] - ignore kwarg unpacking for UP044 (#14053)
    [refurb] Parse more exotic decimal strings in verbose-decimal-constructor (FURB157) (#14098)

Documentation

    Add links to missing related options within rule documentations (#13971)
    Add rule short code to mkdocs tags to allow searching via rule codes (#14040)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.41 2024/11/04 18:08:05 wiz Exp $
a12 2
TOOL_DEPENDS+=	${PYPKGPREFIX}-maturin>=1.7.1:../../devel/py-maturin

d36 1
@


1.41
log
@py-ruff: update to 0.7.2.

Preview features

    Fix formatting of single with-item with trailing comment (#14005)
    [pyupgrade] Add PEP 646 Unpack conversion to * with fix (UP044) (#13988)

Rule changes

    Regenerate known_stdlibs.rs with stdlibs 2024.10.25 (#13963)
    [flake8-no-pep420] Skip namespace package enforcement for PEP 723 scripts (INP001) (#13974)

Server

    Fix server panic when undoing an edit (#14010)

Bug fixes

    Fix issues in discovering ruff in pip build environments (#13881)
    [flake8-type-checking] Fix false positive for singledispatchmethod (TCH003) (#13941)
    [flake8-type-checking] Treat return type of singledispatch as runtime-required (TCH003) (#13957)

Documentation

    [flake8-simplify] Include caveats of enabling if-else-block-instead-of-if-exp (SIM108) (#14019)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.40 2024/10/24 17:45:57 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.7.2
@


1.40
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: Makefile,v 1.39 2024/10/17 19:12:26 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.7.1
@


1.39
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: Makefile,v 1.38 2024/10/07 14:54:24 pin Exp $
d3 1
a3 1
DISTNAME=	ruff-0.7.0
d22 1
a22 1
SALSA_REV=	b14be5c0392f4c55eca60b92e457a35549372382
a31 3
post-extract:
	${MV} ${WRKDIR}/lsp-types* ${WRKSRC}

@


1.38
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: Makefile,v 1.37 2024/09/15 08:28:39 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.6.9
d22 1
a22 1
SALSA_REV=	4a7c955255e707e64e43f3ce5eabb771ae067768
@


1.37
log
@py-ruff: updated to 0.6.5

0.6.5

Preview features

[pydoclint] Ignore DOC201 when function name is "new"
[refurb] Implement slice-to-remove-prefix-or-suffix (FURB188)

Rule changes

[eradicate] Ignore script-comments with multiple end-tags (ERA001)
[pyflakes] Improve error message for UndefinedName when a builtin was added in a newer version than specified in Ruff config (F821)

Server

Add support for extensionless Python files for server
Fix configuration inheritance for configurations specified in the LSP settings

Bug fixes

[ruff] Handle unary operators in decimal-from-float-literal (RUF032)

CLI

Only include rules with diagnostics in SARIF metadata

Playground

Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML"
Fix errors not shown for restored snippet on page load
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.36 2024/09/13 09:53:36 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.6.5
d22 1
d25 1
d28 1
@


1.36
log
@py-ruff: update to 0.6.4.

0.6.4

Preview features

    [flake8-builtins] Use dynamic builtins list based on Python version (#13172)
    [pydoclint] Permit yielding None in DOC402 and DOC403 (#13148)
    [pylint] Update diagnostic message for PLW3201 (#13194)
    [ruff] Implement post-init-default (RUF033) (#13192)
    [ruff] Implement useless if-else (RUF034) (#13218)

Rule changes

    [flake8-pyi] Respect pep8_naming.classmethod-decorators settings when determining if a method is a classmethod in custom-type-var-return-type (PYI019) (#13162)
    [flake8-pyi] Teach various rules that annotations might be stringized (#12951)
    [pylint] Avoid no-self-use for attrs-style validators (#13166)
    [pylint] Recurse into subscript subexpressions when searching for list/dict lookups (PLR1733, PLR1736) (#13186)
    [pyupgrade] Detect aiofiles.open calls in UP015 (#13173)
    [pyupgrade] Mark sys.version_info[0] < 3 and similar comparisons as outdated (UP036) (#13175)

CLI

    Enrich messages of SARIF results (#13180)
    Handle singular case for incompatible rules warning in ruff format output (#13212)

Bug fixes

    [pydocstyle] Improve heuristics for detecting Google-style docstrings (#13142)
    [refurb] Treat sep arguments with effects as unsafe removals (FURB105) (#13165)

0.6.3

Preview features

    [flake8-simplify] Extend open-file-with-context-handler to work with dbm.sqlite3 (SIM115) (#13104)
    [pycodestyle] Disable E741 in stub files (.pyi) (#13119)
    [pydoclint] Avoid DOC201 on explicit returns in functions that only return None (#13064)

Rule changes

    [flake8-async] Disable check for asyncio before Python 3.11 (ASYNC109) (#13023)

Bug fixes

    [FastAPI] Avoid introducing invalid syntax in fix for fast-api-non-annotated-dependency (FAST002) (#13133)
    [flake8-implicit-str-concat] Normalize octals before merging concatenated strings in single-line-implicit-string-concatenation (ISC001) (#13118)
    [flake8-pytest-style] Improve help message for pytest-incorrect-mark-parentheses-style (PT023) (#13092)
    [pylint] Avoid autofix for calls that aren't min or max as starred expression (PLW3301) (#13089)
    [ruff] Add datetime.time, datetime.tzinfo, and datetime.timezone as immutable function calls (RUF009) (#13109)
    [ruff] Extend comment deletion for RUF100 to include trailing text from noqa directives while preserving any following comments on the same line, if any (#13105)
    Fix dark theme on initial page load for the Ruff playground (#13077)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.35 2024/08/25 10:37:56 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.6.4
d21 4
a24 3
LSP_TYPES_REV=					3512a9f33eadc5402cfab1b8f7340824c8ca1439
DISTFILES=					${DEFAULT_DISTFILES}
DISTFILES+=					lsp-types-${LSP_TYPES_REV}.tar.gz
@


1.35
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: Makefile,v 1.34 2024/08/22 13:33:16 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.6.2
@


1.34
log
@py-ruff: adapt for py-maturin change

Bump PKGREVISION.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.33 2024/08/19 21:57:37 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.6.1
a4 1
PKGREVISION=	1
a27 2
PYTHON_VERSIONS_INCOMPATIBLE=	27

@


1.33
log
@py-ruff: update to 0.6.1.

0.6.1

This is a hotfix release to address an issue with ruff-pre-commit.
In v0.6, Ruff changed its behavior to lint and format Jupyter
notebooks by default; however, due to an oversight, these files
were still excluded by default if Ruff was run via pre-commit,
leading to inconsistent behavior. This has now been fixed.

0.6.0

Breaking changes

See also, the "Remapped rules" section which may result in disabled rules.

    Lint and format Jupyter Notebook by default (#12878).
    Detect imports in src layouts by default for isort rules (#12848)
    The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments (#12838).

Deprecations

The following rules are now deprecated:

    pytest-missing-fixture-name-underscore (PT004)
    pytest-incorrect-fixture-name-underscore (PT005)
    unpacked-list-comprehension (UP027)

Remapped rules

The following rules have been remapped to new rule codes:

    unnecessary-dict-comprehension-for-iterable: RUF025 to C420

Stabilization

The following rules have been stabilized and are no longer in preview:

    singledispatch-method (PLE1519)
    singledispatchmethod-function (PLE1520)
    bad-staticmethod-argument (PLW0211)
    if-stmt-min-max (PLR1730)
    invalid-bytes-return-type (PLE0308)
    invalid-hash-return-type (PLE0309)
    invalid-index-return-type (PLE0305)
    invalid-length-return-type (E303)
    self-or-cls-assignment (PLW0642)
    byte-string-usage (PYI057)
    duplicate-literal-member (PYI062)
    redirected-noqa (RUF101)

The following behaviors have been stabilized:

    cancel-scope-no-checkpoint (ASYNC100): Support asyncio and anyio context mangers.
    async-function-with-timeout (ASYNC109): Support asyncio and anyio context mangers.
    async-busy-wait (ASYNC110): Support asyncio and anyio context mangers.
    async-zero-sleep (ASYNC115): Support anyio context mangers.
    long-sleep-not-forever (ASYNC116): Support anyio context mangers.

The following fixes have been stabilized:

    superfluous-else-return (RET505)
    superfluous-else-raise (RET506)
    superfluous-else-continue (RET507)
    superfluous-else-break (RET508)

Preview features

    [flake8-simplify] Further simplify to binary in preview for (SIM108) (#12796)
    [pyupgrade] Show violations without auto-fix (UP031) (#11229)

Rule changes

    [flake8-import-conventions] Add xml.etree.ElementTree to default conventions (#12455)
    [flake8-pytest-style] Add a space after comma in CSV output (PT006) (#12853)

Server

    Show a message for incorrect settings (#12781)

Bug fixes

    [flake8-async] Do not lint yield in context manager (ASYNC100) (#12896)
    [flake8-comprehensions] Do not lint async for comprehensions (C419) (#12895)
    [flake8-return] Only add return None at end of a function (RET503) (#11074)
    [flake8-type-checking] Avoid treating dataclasses.KW_ONLY as typing-only (TCH003) (#12863)
    [pep8-naming] Treat type(Protocol) et al as metaclass base (N805) (#12770)
    [pydoclint] Don't enforce returns and yields in abstract methods (DOC201, DOC202) (#12771)
    [ruff] Skip tuples with slice expressions in (RUF031) (#12768)
    [ruff] Ignore unparenthesized tuples in subscripts when the subscript is a type annotation or type alias (RUF031) (#12762)
    [ruff] Ignore template strings passed to logging and builtins._() calls (RUF027) (#12889)
    [ruff] Do not remove parens for tuples with starred expressions in Python <=3.10 (RUF031) (#12784)
    Evaluate default parameter values for a function in that function's enclosing scope (#12852)

Other changes

    Respect VS Code cell metadata when detecting the language of Jupyter Notebook cells (#12864)
    Respect kernelspec notebook metadata when detecting the preferred language for a Jupyter Notebook (#12875)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.32 2024/08/11 07:04:13 wiz Exp $
d5 1
d14 1
a14 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-maturin>=1.0:../../devel/py-maturin
@


1.32
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: Makefile,v 1.31 2024/08/06 12:52:45 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.5.7
@


1.31
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: Makefile,v 1.30 2024/07/28 10:30:08 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.5.6
@


1.30
log
@py-ruff: updated to 0.5.5

0.5.5

Preview features

[fastapi] Implement fastapi-redundant-response-model (FAST001) and fastapi-non-annotated-dependency(FAST002)
[pydoclint] Implement docstring-missing-exception (DOC501) and docstring-extraneous-exception (DOC502)

Rule changes

[numpy] Fix NumPy 2.0 rule for np.alltrue and np.sometrue
[numpy] Ignore NPY201 inside except blocks for compatibility with older numpy versions
[pep8-naming] Avoid applying ignore-names to self and cls function names (N804, N805)

Formatter

Fix incorrect placement of leading function comment with type params

Server

Do not bail code action resolution when a quick fix is requested

Bug fixes

Fix Ord implementation of cmp_fix
Raise syntax error for unparenthesized generator expression in multi-argument call
[pydoclint] Fix panic in DOC501 reported
[flake8-bugbear] Allow singleton tuples with starred expressions in B013

Documentation

Add Eglot setup guide for Emacs editor
Add note about the breaking change in nvim-lspconfig
Add note to include notebook files for native server
Add setup docs for Zed editor
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.29 2024/07/21 09:16:34 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.5.5
@


1.29
log
@py-ruff: update to 0.5.4.

Rule changes

    [ruff] Rename RUF007 to zip-instead-of-pairwise (#12399)

Bug fixes

    [flake8-builtins] Avoid shadowing diagnostics for @@override methods (#12415)
    [flake8-comprehensions] Insert parentheses for multi-argument generators (#12422)
    [pydocstyle] Handle escaped docstrings within docstring (D301) (#12192)

Documentation

    Fix GitHub link to Neovim setup (#12410)
    Fix output-format default in settings reference (#12409)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.28 2024/07/20 12:33:45 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.5.4
@


1.28
log
@py-ruff: updated to 0.5.3

0.5.3

Preview features

Formatter: Insert empty line between suite and alternative branch after function/class definition
[pyupgrade] Implement unnecessary-default-type-args (UP043)

Rule changes

[flake8-bugbear] Detect enumerate iterations in loop-iterator-mutation (B909)
[flake8-bugbear] Remove discard, remove, and pop allowance for loop-iterator-mutation (B909)
[pylint] Allow repeated-equality-comparison for mixed operations (PLR1714)
[pylint] Ignore self and cls when counting arguments (PLR0913)
[pylint] Use UTF-8 as default encoding in unspecified-encoding fix (PLW1514)

Server

Build settings index in parallel for the native server
Use fallback settings when indexing the project
Consider --preview flag for server subcommand for the linter and formatter

Bug fixes

[flake8-comprehensions] Allow additional arguments for sum and max comprehensions (C419)
[pylint] Avoid dropping extra boolean operations in repeated-equality-comparison (PLR1714)
[pylint] Consider expression before statement when determining binding kind (PLR1704)

Documentation

Add docs for Ruff language server
Migrate to standalone docs repo
Update versioning policy for editor integration

Other changes

Publish Wasm API to npm
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.27 2024/07/16 03:26:02 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.5.3
@


1.27
log
@py-ruff: updated to 0.5.2

0.5.2

Preview features

Use space separator before parenthesized expressions in comprehensions with leading comments
[flake8-async] Update ASYNC100 to include anyio and asyncio
[flake8-async] Update ASYNC109 to include anyio and asyncio
[flake8-async] Update ASYNC110 to include anyio and asyncio
[flake8-async] Update ASYNC115 to include anyio and asyncio
[flake8-async] Update ASYNC116 to include anyio and asyncio

Rule changes

[flake8-return] Exempt properties from explicit return rule (RET501)
[numpy] Add np.NAN-to-np.nan diagnostic
[refurb] Make list-reverse-copy an unsafe fix

Server

Consider include and extend-include settings in native server
Include nested configurations in settings reloading

CLI

Omit code frames for fixes with empty ranges
Warn about formatter incompatibility for D203

Bug fixes

Make cache-write failures non-fatal on Windows
Treat not operations as boolean tests
[flake8-bandit] Avoid S310 violations for HTTP-safe f-strings
[flake8-bandit] Support explicit string concatenations in S310 HTTP detection
[flake8-bandit] fix S113 false positive for httpx without timeout argument
[pycodestyle] Remove "non-obvious" allowance for E721
[pyflakes] Consider with blocks as single-item branches for redefinition analysis
[refurb] Restrict forwarding for newline argument in open() calls to Python versions >= 3.10

Documentation

Update help and documentation to reflect --output-format full default

Performance

Use more threads when discovering Python files
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.26 2024/07/09 05:36:53 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.5.2
@


1.26
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 <path>; use ruff check <path>
    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: Makefile,v 1.25 2024/06/08 18:51:10 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.5.1
d31 1
a31 1
	mv ${WRKDIR}/lsp-types* ${WRKSRC}
@


1.25
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: Makefile,v 1.24 2024/05/10 11:14:21 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.4.8
d21 4
a24 4
LSP_TYPES_REV=	3512a9f33eadc5402cfab1b8f7340824c8ca1439
DISTFILES=	${DEFAULT_DISTFILES}
DISTFILES+=	lsp-types-${LSP_TYPES_REV}.tar.gz
SITES.lsp-types-${LSP_TYPES_REV}.tar.gz+= -${MASTER_SITE_GITHUB:=astral-sh/}lsp-types/archive/${LSP_TYPES_REV}.tar.gz
@


1.24
log
@py-ruff: updated to 0.4.4

v0.4.4

Preview features

[pycodestyle] Ignore end-of-line comments when determining blank line rules
[pylint] Detect pathlib.Path.open calls in unspecified-encoding (PLW1514)
[flake8-pyi] Implement PYI059 (generic-not-last-base-class)
[flake8-pyi] Implement PYI062 (duplicate-literal-member)

Rule changes

[flake8-boolean-trap] Allow passing booleans as positional-only arguments in code such as set(True)
[flake8-bugbear] Ignore enum classes in cached-instance-method (B019)

Server

Expand tildes when resolving Ruff server configuration file
Fix ruff server hanging after Neovim closes
Editor settings are used by default if no file-based configuration exists

Bug fixes

[pylint] Consider with statements for too-many-branches (PLR0912)
[flake8-blind-except, tryceratops] Respect logged and re-raised expressions in nested statements (BLE001, TRY201)
Recognise assignments such as __all__ = builtins.list(["foo", "bar"]) as valid __all__ definitions
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.23 2024/05/05 10:37:32 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.4.4
d15 2
d20 6
d30 3
@


1.23
log
@py-ruff: update to 0.4.3.

Enhancements

    Add support for PEP 696 syntax (#11120)

Preview features

    [refurb] Use function range for reimplemented-operator diagnostics (#11271)
    [refurb] Ignore methods in reimplemented-operator (FURB118) (#11270)
    [refurb] Implement fstring-number-format (FURB116) (#10921)
    [ruff] Implement redirected-noqa (RUF101) (#11052)
    [pyflakes] Distinguish between first-party and third-party imports for fix suggestions (#11168)

Rule changes

    [flake8-bugbear] Ignore non-abstract class attributes when enforcing B024 (#11210)
    [flake8-logging] Include inline instantiations when detecting loggers (#11154)
    [pylint] Also emit PLR0206 for properties with variadic parameters (#11200)
    [ruff] Detect duplicate codes as part of unused-noqa (RUF100) (#10850)

Formatter

    Avoid multiline expression if format specifier is present (#11123)

LSP

    Write ruff server setup guide for Helix (#11183)
    ruff server no longer hangs after shutdown (#11222)
    ruff server reads from a configuration TOML file in the user configuration directory if no local configuration exists (#11225)
    ruff server respects per-file-ignores configuration (#11224)
    ruff server: Support a custom TOML configuration file (#11140)
    ruff server: Support setting to prioritize project configuration over editor configuration (#11086)

Bug fixes

    Avoid debug assertion around NFKC renames (#11249)
    [pyflakes] Prioritize redefined-while-unused over unused-import (#11173)
    [ruff] Respect async expressions in comprehension bodies (#11219)
    [pygrep_hooks] Fix blanket-noqa panic when last line has noqa with no newline (PGH004) (#11108)
    [perflint] Ignore list-copy recommendations for async for loops (#11250)
    [pyflakes] Improve invalid-print-syntax documentation (#11171)

Performance

    Avoid allocations for isort module names (#11251)
    Build a separate ARM wheel for macOS (#11149)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.22 2024/04/26 07:26:31 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.4.3
@


1.22
log
@py-ruff: updated to 0.4.2

v0.4.2

Rule changes

[flake8-pyi] Allow for overloaded __exit__ and __aexit__ definitions (PYI036)
[pyupgrade] Catch usages of "%s" % var and provide an unsafe fix (UP031)
[refurb] Implement new rule that suggests min/max over sorted() (FURB192)

Server

Fix an issue with missing diagnostics for Neovim and Helix
Implement hover documentation for noqa codes
Introduce common Ruff configuration options with new server settings

Bug fixes

Use macos-12 for building release wheels to enable macOS 11 compatibility
[flake8-blind-expect] Allow raise from in BLE001
[flake8-pyi] Allow simple assignments to None in enum class scopes (PYI026)
[flake8-simplify] Avoid raising SIM911 for non-zip attribute calls
[refurb] Avoid operator.itemgetter suggestion for single-item tuple
[ruff] Respect per-file-ignores for RUF100 with no other diagnostics
[ruff] Fix async comprehension false positive (RUF029)

Documentation

[flake8-bugbear] Document explicitly disabling strict zip (B905)
[flake8-type-checking] Mention lint.typing-modules in TCH001, TCH002, and TCH003
[isort] Improve documentation around custom isort sections
[pylint] Fix documentation oversight for invalid-X-returns

Performance

Use matchit to resolve per-file settings
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.21 2024/04/19 19:43:58 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.4.2
@


1.21
log
@py-ruff: updated to 0.4.1

v0.4.1

Changes

Preview features

[pylint] Implement invalid-hash-returned (PLE0309)
[pylint] Implement invalid-index-returned (PLE0305)

Bug fixes

[pylint] Allow NoReturn-like functions for __str__, __len__, etc. (PLE0307)
Parser: Use empty range when there's "gap" in token source
[ruff] Ignore stub functions in unused-async (RUF029)
Parser: Expect indented case block instead of match stmt
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.20 2024/04/19 09:12:06 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.4.1
@


1.20
log
@py-ruff: updated to 0.4.0

0.4.0

A new, hand-written parser

Ruff's new parser is >2x faster, which translates to a 20-40% speedup for all linting and formatting invocations. There's a lot to say about this exciting change, so check out the blog post for more details!

A new language server in Rust

With this release, we also want to highlight our new language server. ruff server is a Rust-powered language server that comes built-in with Ruff. It can be used with any editor that supports the Language Server Protocol (LSP). It uses a multi-threaded, lock-free architecture inspired by rust-analyzer and it will open the door for a lot of exciting features. It’s also faster than our previous Python-based language server -- but you probably guessed that already.

ruff server is only in alpha, but it has a lot of features that you can try out today:

Lints Python files automatically and shows quick-fixes when available
Formats Python files, with support for range formatting
Comes with commands for quickly performing actions: ruff.applyAutofix, ruff.applyFormat, and ruff.applyOrganizeImports
Supports source.fixAll and source.organizeImports source actions
Automatically reloads your project configuration when you change it
To setup ruff server with your editor, refer to the README.md.

Preview features

[pycodestyle] Do not trigger E3 rules on defs following a function/method with a dummy body
[pylint] Implement invalid-bytes-returned (E0308)
[pylint] Implement invalid-length-returned (E0303)
[pylint] Implement self-cls-assignment (W0642)
[pylint] Omit stubs from invalid-bool and invalid-str-return-type
[ruff] New rule unused-async (RUF029) to detect unneeded async keywords on functions

Rule changes

[flake8-bandit] Allow urllib.request.urlopen calls with static Request argument (S310)
[flake8-bugbear] Treat raise NotImplemented-only bodies as stub functions (B006)
[flake8-slots] Respect same-file Enum subclasses (SLOT000)
[pylint] Support inverted comparisons (PLR1730)

Linter

Improve handling of builtin symbols in linter rules
Improve display of rules in --show-settings
Improve inference capabilities of the BuiltinTypeChecker
Resolve classes and functions relative to script name
Improve performance of RuleTable::any_enabled

Server

This section is devoted to updates for our new language server, written in Rust.

Enable ruff-specific source actions
Refreshes diagnostics for open files when file configuration is changed
Important errors are now shown as popups
Introduce settings for directly configuring the linter and formatter
Resolve configuration for each document individually
Write a setup guide for Neovim

Configuration

Add RUFF_OUTPUT_FILE environment variable support

Bug fixes

Avoid non-augmented-assignment for reversed, non-commutative operators (PLR6104)
Limit commutative non-augmented-assignments to primitive data types (PLR6104)
Respect per-file-ignores for RUF100 on blanket # noqa
Consider if expression for parenthesized with items parsing
Consider binary expr for parenthesized with items parsing
Reset FOR_TARGET context for all kinds of parentheses
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.19 2024/04/13 05:18:10 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.4.0
@


1.19
log
@py-ruff: updated to 0.3.7

0.3.7

Preview features

[flake8-bugbear] Implement loop-iterator-mutation (B909)
[pylint] Implement rule to prefer augmented assignment (PLR6104)

Bug fixes

Avoid TOCTOU errors in cache initialization
[pylint] Recode nan-comparison rule to W0177
[pylint] Reverse min-max logic in if-stmt-min-max


0.3.6

Preview features

[pylint] Implement bad-staticmethod-argument (PLW0211)
[pylint] Implement if-stmt-min-max (PLR1730, PLR1731)
[pyupgrade] Replace str,Enum multiple inheritance with StrEnum UP042
[refurb] Implement if-expr-instead-of-or-operator (FURB110)
[refurb] Implement int-on-sliced-str (FURB166)
[refurb] Implement write-whole-file (FURB103)
[refurb] Support itemgetter in reimplemented-operator (FURB118)
[flake8_comprehensions] Add sum/min/max to unnecessary comprehension check (C419)

Rule changes

[pydocstyle] Require capitalizing docstrings where the first sentence is a single word (D403)
[pycodestyle] Ignore annotated lambdas in class scopes (E731)
[flake8-pyi] Various improvements to PYI034
[flake8-slots] Flag subclasses of call-based typing.NamedTuples as well as subclasses of collections.namedtuple() (SLOT002)
[pyflakes] Allow forward references in class bases in stub files (F821)
[pygrep-hooks] Improve blanket-noqa error message (PGH004)

CLI

Support FORCE_COLOR env var

Configuration

Support negated patterns in [extend-]per-file-ignores

Bug fixes

[flake8-import-conventions] Accept non-aliased (but correct) import in unconventional-import-alias (ICN001)
[flake8-quotes] Add semantic model flag when inside f-string replacement field
[pep8-naming] Recursively resolve TypeDicts for N815 violations
[flake8-quotes] Respect Q00* ignores in flake8-quotes rules
[flake8-simplify] Show negated condition in needless-bool diagnostics (SIM103)
[ruff] Use within-scope shadowed bindings in asyncio-dangling-task (RUF006)
[flake8-pytest-style] Fix single-tuple conversion in pytest-parametrize-values-wrong-type (PT007)
[flake8-return] Ignore assignments to annotated variables in unnecessary-assign (RET504)
[refurb] Do not allow any keyword arguments for read-whole-file in rb mode (FURB101)
[pylint] Don't recommend decorating staticmethods with @@singledispatch (PLE1519, PLE1520)
[pydocstyle] Use section name range for all section-related docstring diagnostics
Respect # noqa directives on __all__ openers
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.18 2024/04/03 07:17:51 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.3.7
@


1.18
log
@py-ruff: updated to 0.3.5

0.3.5

Preview features

[pylint] Implement modified-iterating-set (E4703)
[refurb] Implement for-loop-set-mutations (FURB142)
[refurb] Implement unnecessary-from-float (FURB164)
[refurb] Implement verbose-decimal-constructor (FURB157)

Rule changes

[flake8-comprehensions] Handled special case for C401 which also matches C416
[flake8-pyi] Mark unaliased-collections-abc-set-import fix as "safe" for more cases in stub files (PYI025)
[numpy] Add row_stack to NumPy 2.0 migration rule
[pycodestyle] Allow cell magics before an import (E402)
[pycodestyle] Avoid blank line rules for the first logical line in cell

Configuration

Respected nested namespace packages
[flake8-boolean-trap] Add setting for user defined allowed boolean trap

Bug fixes

Correctly handle references in __all__ definitions when renaming symbols in autofixes
Track ranges of names inside __all__ definitions
[flake8-bugbear] Avoid false positive for usage after continue (B031)
[flake8-copyright] Accept commas in default copyright pattern
[flake8-datetimez] Allow f-strings with %z for DTZ007
[flake8-pytest-style] Fix PT014 autofix for last item in list
[flake8-quotes] Ignore Q000, Q001 when string is inside forward ref
[isort] Always place non-relative imports after relative imports
[isort] Respect Unicode characters in import sorting
[pyflakes] Fix F821 false negatives when from __future__ import annotations is active (attempt 2)
[pyflakes] Make unnecessary-lambda an always-unsafe fix
[pylint] Fixed false-positive on the rule PLW1641 (eq-without-hash)
[ruff] Fix panic in unused # noqa removal with multi-byte space (RUF100)

Documentation

Add PR title format to CONTRIBUTING.md
Fix list markup to include blank lines required
Put flake8-logging next to the other flake8 plugins in registry
[flake8-bandit] Update warning message for rule S305 to address insecure block cipher mode use
[flake8-bugbear] Document use of anonymous assignment in useless-expression
[flake8-datetimez] Clarify error messages and docs for DTZ rules
[pycodestyle] Use same before vs. after numbers for space-around-operator
[ruff] Change quadratic-list-summation docs to use iadd consistently
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.17 2024/03/21 20:06:03 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.3.5
@


1.17
log
@py-ruff: updated to 0.3.4

0.3.4

Preview features

[flake8-simplify] Detect implicit else cases in needless-bool (SIM103)
[pylint] Implement nan-comparison (PLW0117)
[pylint] Implement nonlocal-and-global (E115)
[pylint] Implement singledispatchmethod-function (PLE5120)
[refurb] Implement list-reverse-copy (FURB187)

Rule changes

[flake8-pytest-style] Add automatic fix for pytest-parametrize-values-wrong-type (PT007)
[pycodestyle] Allow SPDX license headers to exceed the line length (E501)

Formatter

Fix unstable formatting for trailing subscript end-of-line comment

Bug fixes

Avoid code comment detection in PEP 723 script tags
Avoid incorrect tuple transformation in single-element case (C409)
Bug fix: Prevent fully defined links name from being reformatted
Consider raw source code for W605
Docs: Link inline settings when not part of options section
Don't treat annotations as redefinitions in .pyi files
Fix E231 bug: Inconsistent catch compared to pycodestyle, such as when dict nested in list
Fix pylint upstream categories not showing in docs
Add missing Options references to blank line docs
'Revert "F821: Fix false negatives in .py files when from __future__ import annotations is active
Apply NFKC normalization to unicode identifiers in the lexer
Avoid failures due to non-deterministic binding ordering
[flake8-bugbear] Allow tuples of exceptions (B030)
[flake8-quotes] Avoid syntax errors due to invalid quotes (Q000, Q002)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.16 2024/03/17 10:15:37 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.3.4
@


1.16
log
@py-ruff: updated to 0.3.3

0.3.3

Preview features

[flake8-bandit]: Implement S610 rule
[pycodestyle] Implement blank-line-at-end-of-file (W391)
[pycodestyle] Implement redundant-backslash (E502)
[pylint] - implement redeclared-assigned-name (W0128)

Rule changes

[flake8_comprehensions] Handled special case for C400 which also matches C416
[flake8-bandit] Implement upstream updates for S311, S324 and S605
[pyflakes] Remove F401 fix for __init__ imports by default and allow opt-in to unsafe fix
[pylint] Implement invalid-bool-return-type (E304)
[pylint] Include builtin warnings in useless-exception-statement (PLW0133)

CLI

Add message on success to ruff check

Bug fixes

[PIE970] Allow trailing ellipsis in typing.TYPE_CHECKING
Avoid TRIO115 if the argument is a variable
[F811] Avoid removing shadowed imports that point to different symbols
Fix F821 and F822 false positives in .pyi files
Fix F821 false negatives in .py files when from __future__ import annotations is active
Fix case where Indexer fails to identify continuation preceded by newline
Sort hash maps in Settings display
Track conditional deletions in the semantic model
[C413] Wrap expressions in parentheses when negating
[pycodestyle] Do not ignore lines before the first logical line in blank lines rules.
[pycodestyle] Do not trigger E225 and E275 when the next token is a ')'
[pylint] Avoid false-positive slot non-assignment for __dict__ (PLE0237)
Gate f-string struct size test for Rustc < 1.76

Documentation

Use ruff.toml format in README
[RUF008] Make it clearer that a mutable default in a dataclass is only valid if it is typed as a ClassVar
[pylint] Extend docs and test in invalid-str-return-type (E307)
Remove . from check and format commands
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.15 2024/03/11 13:29:54 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.3.3
@


1.15
log
@py-ruff: update to 0.3.2.

Preview features

    Improve single-with item formatting for Python 3.8 or older (#10276)

Rule changes

    [pyupgrade] Allow fixes for f-string rule regardless of line length (UP032) (#10263)
    [pycodestyle] Include actual conditions in E712 diagnostics (#10254)

Bug fixes

    Fix trailing kwargs end of line comment after slash (#10297)
    Fix unstable with items formatting (#10274)
    Avoid repeating function calls in f-string conversions (#10265)
    Fix E203 false positive for slices in format strings (#10280)
    Fix incorrect Parameter range for *args and **kwargs (#10283)
    Treat typing.Annotated subscripts as type definitions (#10285)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.14 2024/03/07 10:52:57 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.3.2
@


1.14
log
@py-ruff: updated to 0.3.1

v0.3.1

Preview features

[pycodestyle] Fix E301 not triggering on decorated methods.
[pycodestyle] Respect isort settings in blank line rules (E3*)
[pycodestyle] Make blank lines in typing stub files optional (E3*)
[pylint] Implement singledispatch-method (E1519)
[pylint] Implement useless-exception-statement (W0133)

Rule changes

[flake8-debugger] Check for use of debugpy and ptvsd debug modules
[pyupgrade] Generate diagnostic for all valid f-string conversions regardless of line length (UP032)
[pep8_naming] Add fixes for N804 and N805

CLI

Colorize the output of ruff format --diff
Make --config and --isolated global flags
Correctly expand tildes and environment variables in paths passed to --config

Configuration

Accept a PEP 440 version specifier for required-version
Implement isort's default-section setting

Bug fixes

Remove trailing space from CapWords message
Respect external codes in file-level exemptions
[flake8-raise] Avoid false-positives for parens-on-raise with future.exception() (RSE102)
[pylint] Add fix for unary expressions in PLC2801
[ruff] Fix RUF028 not allowing # fmt: skip on match cases
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.13 2024/03/03 11:59:40 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.3.1
@


1.13
log
@py-ruff: update to 0.3.0.

This release introduces the new Ruff formatter 2024.2 style and
adds a new lint rule to detect invalid formatter suppression
comments.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.12 2024/02/18 08:23:00 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.3.0
@


1.12
log
@py-ruff: updated to 0.2.2

0.2.2

Highlights include:

Initial support formatting f-strings (in --preview).
Support for overriding arbitrary configuration options via the CLI through an expanded --config argument (e.g., --config "lint.isort.combine-as-imports=false").
Significant performance improvements in Ruff's lexer, parser, and lint rules.

Preview features

Implement minimal f-string formatting
[pycodestyle] Add blank line(s) rules (E301, E302, E303, E304, E305, E306)
[refurb] Implement readlines_in_for (FURB129)

Rule changes

[ruff] Ensure closing parentheses for multiline sequences are always on their own line (RUF022, RUF023)
[numpy] Add missing deprecation violations (NPY002)
[flake8-bandit] Detect mark_safe usages in decorators
[ruff] Expand asyncio-dangling-task (RUF006) to include new_event_loop
[flake8-pyi] Ignore 'unused' private type dicts in class scopes

Formatter

Docstring formatting: Preserve tab indentation when using indent-style=tabs
Disable top-level docstring formatting for notebooks
Stabilize quote-style's preserve mode

CLI

Allow arbitrary configuration options to be overridden via the CLI

Bug fixes

Make show-settings filters directory-agnostic
Respect duplicates when rewriting type aliases
Respect tuple assignments in typing analyzer
Use atomic write when persisting cache
Use non-parenthesized range for DebugText
[flake8-simplify] Avoid false positive with async for loops (SIM113)
[flake8-trio] Respect async with in timeout-without-await
[perflint] Catch a wider range of mutations in PERF101
[pycodestyle] Fix E30X panics on blank lines with trailing white spaces
[pydocstyle] Allow using parameters as a subsection header (D405)
[pydocstyle] Fix blank-line docstring rules for module-level docstrings
[pylint] Accept 0.0 and 1.0 as common magic values (PLR2004)
[pylint] Avoid suggesting set rewrites for non-hashable types
[ruff] Avoid false negatives with string literals inside of method calls (RUF027)
[ruff] Fix panic on with f-string detection (RUF027)
[ruff] Ignore builtins when detecting missing f-strings

Performance

Use memchr for string lexing
Use memchr for tab-indentation detection
Reduce Result<Tok, LexicalError> size by using Box<str> instead of String
Reduce size of Expr from 80 to 64 bytes
Improve trailing comma rule performance
Remove unnecessary string cloning from the parser
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2024/02/09 13:11:13 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.2.2
@


1.11
log
@py-ruff: updated to 0.2.1

0.2.1

This release includes support for range formatting (i.e., the ability to format specific lines within a source file).

Preview features

[refurb] Implement missing-f-string-syntax (RUF027)
Format module-level docstrings
Formatter

Add --range option to ruff format
Don't trim last empty line in docstrings

Bug fixes

Skip empty lines when determining base indentation
Drop __get__ and __set__ from unnecessary-dunder-call
Respect generic Protocol in ellipsis removal
Revert "Use publicly available Apple Silicon runners

Performance

Skip LibCST parsing for standard dedent adjustments
Remove CST-based fixer for C408
Add our own ignored-names abstractions
Remove CST-based fixers for C400, C401, C410, and C418
Use AhoCorasick to speed up quote match
Remove CST-based fixers for C405 and C409
Add fast-path for comment detection
Invert order of checks in zero-sleep-call
Short-circuit typing matches based on imports
Run dunder method rule on methods directly
Track top-level module imports in the semantic model
Slight speed-up for lowercase and uppercase identifier checks
Remove LibCST-based fixer for C403

Documentation

Update max-pos-args example to max-positional-args
Fixed example code in weak_cryptographic_key.rs
Fix references to deprecated ANN rules in changelog
Fix default for max-positional-args
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2024/01/31 11:58:28 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.2.1
@


1.10
log
@py-ruff: updated to 0.1.15

0.1.15

Preview features

Error when NURSERY selector is used with --preview
Preserve indentation around multiline strings in formatter
[flake8-return] Add fixes for all rules (RET505, RET506, RET507, RET508)
[flake8-simplify] Add fix for if-with-same-arms (SIM114)
[pycodestyle] Add fix for multiple-imports-on-one-line (E401)
[pylint] Add fix for collapsible-else-if (PLR5501)
[pylint] Add fix for useless-else-on-loop (PLW0120)
[pylint] Implement assigning-non-slot (E0237)
[pylint] Implement potential-index-error (PLE0643)
[pylint] Implement too-many-nested-blocks (PLR1702)
[ruff] Add rule to sort __slots__ and __match_args__
[ruff] Detect unnecessary dict comprehensions for iterables (RUF025)
[ruff] Guard against use of default_factory as a keyword argument (RUF026)
[ruff] Implement mutable-fromkeys-value (RUF024)

CLI

Enable auto-wrapping of --help output

Bug fixes

Avoid rendering display-only rules as fixable
Detect automagic-like assignments in notebooks
Generate custom JSON schema for dynamic setting
[flake8-no-pep420] Include global --config when determining namespace packages
[flake8-pie] Omit bound tuples passed to .startswith or .endswith
[flake8-return] Avoid panic when fixing inlined else blocks
[flake8-return] Consider exception suppression in unnecessary assignment
[flake8-return] Take NoReturn annotation into account when analyzing implicit returns
[flake8-simplify] Support inverted returns in needless-bool (SIM103)
[flake8-type-checking] Add Pydantic's BaseConfig to default-copy list
[flake8-type-checking] Avoid marking InitVar as a typing-only annotation
[pycodestyle] Allow dtype comparisons in type-comparison
[pydocstyle] Re-implement last-line-after-section (D413)

Documentation

[flake8-pytest-style] Add fix safety documentation for duplicate-parameterize-test-cases
[pylint] Document literal-membership fix safety conditions
[isort] Fix reference to isort rule code
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2024/01/20 08:09:09 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.15
@


1.9
log
@py-ruff: updated to 0.1.14

v0.1.14

Changes

Preview features

[flake8-bugbear] Add fix for duplicate-value (B033)
[flake8-simplify] Implement enumerate-for-loop (SIM113)
[pygrep_hooks] Add fix for deprecated-log-warn (PGH002)
[pylint] Implement import-private-name (C2701)
[refurb] Implement regex-flag-alias with fix (FURB167)
[ruff] Add rule and fix to sort contents of __all__ (RUF022)
[tryceratops] Add fix for error-instead-of-exception (TRY400)

Rule changes

[flake8-pyi] Fix PYI047 false negatives on PEP-695 type aliases
[flake8-pyi] Fix PYI049 false negatives on call-based TypedDicts
[pylint] Exclude self and cls when counting method arguments (PLR0917)

CLI

--show-settings displays active settings in a far more readable format
Add --extension support to the formatter

Configuration

Ignore preview status for fixable and unfixable selectors
[pycodestyle] Use the configured tab size when expanding indents

Bug fixes

Recursively visit deferred AST nodes
Visit deferred lambdas before type definitions
[flake8-simplify] Avoid some more enumerate-for-loop false positives (SIM113)
[pandas-vet] Limit inplace diagnostics to methods that accept inplace
[pylint] Add the __prepare__ method to the list of recognized dunder method
[pylint] Ignore unnecessary dunder calls within dunder definitions
[refurb] Avoid bailing when reimplemented-operator is called on function (FURB118)
[ruff] Avoid treating named expressions as static keys (RUF011)

Documentation

Add instructions on using noqa with isort rules
Documentation update for URL giving 'page not found'
Fix admonition in dark mode
Update contributing docs to use cargo bench -p ruff_benchmark
Update emacs integration section to include emacs-ruff-format
[flake8-blind-except] Document exceptions to blind-except rule
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2024/01/12 18:39:23 adam Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.14
d13 1
a13 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-maturin>=0.14.10:../../devel/py-maturin
d23 2
a24 1
	cd ${DESTDIR}${PREFIX}/bin && ${MV} ruff ruff-${PYVERSSUFFIX}
@


1.8
log
@py-ruff: updated to 0.1.13

0.1.13

Bug fixes

Include base pyproject when initializing cache settings
[flake8-simplify] Account for possibly-empty f-string values in truthiness logic
[pylint] Add the missing period in unnecessary-dunder-call
[pylint] Fix __aenter__ message in unnecessary-dunder-call


0.1.12

Preview features

Formatter: Hug multiline-strings in preview style
[flake8-bandit] Add ssl-with-no-version (S504)
[flake8-bandit] Implement ssl-insecure-version (S502)
[flake8-bandit] Implement ssl-with-bad-defaults (S503)
[flake8-bandit] Implement suspicious import rules (S4XX)
[flake8-simplify] Implement zip-dict-keys-and-values (SIM911)
[pyflakes] Add a fix for redefined-while-unused (F811)
[pylint] Implement unnecessary-dunder-call (C2801)
[ruff] Add parenthesize-chained-operators (RUF021) to enforce parentheses in a or b and c

Rule changes

[flake8-boolean-trap] Allow Boolean positional arguments in setters
[flake8-builtins] Restrict builtin-attribute-shadowing (A003) to actual shadowed references
[flake8-pyi] Add fix for generator-return-from-iter-method (PYI058)
[pyflakes] Don't flag redefined-while-unused (F811) in if branches
[pyupgrade] Add some additional Python 3.12 typing members to deprecated-import
[ruff] Add fix for parenthesize-chained-operators (RUF021)
[ruff] Include subscripts and attributes in static key rule (RUF011)
[ruff] Support variable keys in static dictionary key rule (RUF011)

Formatter

Generate deterministic IDs when formatting notebooks
Allow # fmt: skip with interspersed same-line comments
Parenthesize breaking named expressions in match guards

Bug fixes

Add cell indexes to all diagnostics
Avoid infinite loop in constant vs. None comparisons
Handle raises with implicit alternate branches
Ignore trailing quotes for unclosed l-brace errors
Respect multi-segment submodule imports when resolving qualified names
Use DisplayParseError for stdin parser errors
Use comment_ranges for isort directive extraction
Use transformed source code for diagnostic locations
[flake8-pyi] Exclude warnings.deprecated and typing_extensions.deprecated arguments
[flake8-pyi] Fix false negative for unused-private-protocol (PYI046) with unused generic protocols
[pydocstyle] Disambiguate argument descriptors from section headers
[pylint] Homogenize PLR0914 message to match other PLR09XX rules
[ruff] Allow Hashable = None in type annotations (RUF013)

Documentation

Fix admonition hyperlink colouring
Add missing preview link
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2024/01/07 16:31:38 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.13
@


1.7
log
@py-ruff: update to 0.1.11.

v0.1.11

Changes

Preview features

    [pylint] Implement super-without-brackets (W0245) (#9257)

Bug fixes

    Check path string properly in python -m ruff invocations (#9367)

Documentation

    Tweak relative-imports message (#9365)
    Add fix safety note for yield-in-for-loop (#9364)


v0.1.10

Changes

Preview features

    Improve dummy_implementations preview style formatting (#9240)
    Normalise Hex and unicode escape sequences in strings (#9280)
    Parenthesize long type annotations in annotated assignments (#9210)
    Parenthesize multi-context managers in with statements (#9222)
    [flake8-pyi] Implement generator-return-from-iter-method (PYI058) (#9313)
    [pylint] Implement empty-comment (PLR2044) (#9174)
    [refurb] Implement bit-count (FURB161) (#9265)
    [ruff] Add never-union rule to detect redundant typing.NoReturn and typing.Never (#9217)

CLI

    Add paths to TOML parse errors (#9358)
    Add row and column numbers to formatter parse errors (#9321)
    Improve responsiveness when invoked via Python (#9315)
    Short rule messages should not end with a period (#9345)

Configuration

    Respect runtime-required decorators on functions (#9317)

Bug fixes

    Avoid asyncio-dangling-task for nonlocal and global bindings (#9263)
    Escape trailing placeholders in rule documentation (#9301)
    Fix continuation detection following multi-line strings (#9332)
    Fix scoping for generators in named expressions in classes (#9248)
    Port from obsolete wsl crate to is-wsl (#9356)
    Remove special pre-visit for module docstrings (#9261)
    Respect __str__ definitions from super classes (#9338)
    Respect unused-noqa via per-file-ignores (#9300)
    Respect attribute chains when resolving builtin call paths (#9309)
    Treat all typing_extensions members as typing aliases (#9335)
    Use Display for formatter parse errors (#9316)
    Wrap subscripted dicts in parens for f-string conversion (#9238)
    [flake8-annotations] Avoid adding return types to stub methods (#9277)
    [flake8-annotations] Respect mixed return and raise cases in return-type analysis (#9310)
    [flake8-bandit] Don't report violations when SafeLoader is imported from yaml.loader (S506) (#9299)
    [pylint] Avoid panic when comment is preceded by Unicode (#9331)
    [pylint] Change PLR0917 error message to match other PLR09XX messages (#9308)
    [refurb] Avoid false positives for math-constant (FURB152) (#9290)

Documentation

    Expand target name for better rule documentation (#9302)
    Fix typos found by codespell (#9346)
    [perflint] Document PERF102 fix un-safety (#9351)
    [pyupgrade] Document UP007 fix un-safety (#9306)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2023/12/30 10:40:49 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.11
@


1.6
log
@py-ruff: update to 0.1.9.

Changes

Breaking changes

    Add site-packages to default exclusions (#9188)

Preview features

    Fix: Avoid parenthesizing subscript targets and values (#9209)
    [pylint] Implement too-many-locals (PLR0914) (#9163)
    Implement reimplemented_operator (FURB118) (#9171)
    Add a rule to detect string members in runtime-evaluated unions (#9143)
    Implement no_blank_line_before_class_docstring preview style (#9154)

Rule changes

    CONSTANT_CASE variables are improperly flagged for yoda violation (SIM300) (#9164)
    [flake8-pyi] Cover ParamSpecs and TypeVarTuples (PYI018) (#9198)
    [flake8-bugbear] Add fix for zip-without-explicit-strict (B905) (#9176)
    Add fix to automatically remove print and pprint statements (T201, T203) (#9208)
    Prefer Never to NoReturn in auto-typing in Python >= 3.11 (ANN201) (#9213)

Formatter

    can_omit_optional_parentheses: Exit early for unparenthesized expressions (#9125)
    Fix dynamic mode with doctests so that it doesn't exceed configured line width (#9129)
    Fix can_omit_optional_parentheses for expressions with a right most fstring (#9124)
    Add target_version to formatter options (#9220)

CLI

    Update ruff format --check to display message for already formatted files (#9153)

Bug fixes

    Reverse order of arguments for operator.contains (#9192)
    Iterate over lambdas in deferred type annotations (#9175)
    Fix panic in D208 with multibyte indent (#9147)
    Add support for NoReturn in auto-return-typing (#9206)
    Allow removal of typing from exempt-modules (#9214)
    Avoid mutable-class-default violations for Pydantic subclasses (#9187)
    Fix dropped union expressions for piped non-types in PYI055 autofix (#9161)
    Enable annotation quoting for multi-line expressions (#9142)
    Deduplicate edits when quoting annotations (#9140)
    Prevent invalid utf8 indexing in cell magic detection (#9146)
    Avoid nested quotations in auto-quoting fix (#9168)
    Add base-class inheritance detection to flake8-django rules (#9151)
    Avoid asyncio-dangling-task violations on shadowed bindings (#9215)

Documentation

    Fix blog post URL in changelog (#9119)
    Add error suppression hint for multi-line strings (#9205)
    Fix typo in SemanticModel.parent_expression docstring (#9167)
    Document link between import sorting and formatter (#9117)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2023/12/17 22:15:04 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.9
@


1.5
log
@py-ruff: update to 0.1.8.

v0.1.8

Changes

This release includes opt-in support for formatting Python snippets within docstrings via the docstring-code-format setting. Check out the blog post for more details!

Preview features

    Add "preserve" quote-style to mimic Black's skip-string-normalization (#8822)
    Implement prefer_splitting_right_hand_side_of_assignments preview style (#8943)
    [pycodestyle] Add fix for unexpected-spaces-around-keyword-parameter-equals (#9072)
    [pycodestyle] Add fix for comment-related whitespace rules (#9075)
    [pycodestyle] Allow sys.path modifications between imports (#9047)
    [refurb] Implement hashlib-digest-hex (FURB181) (#9077)

Rule changes

    Allow flake8-type-checking rules to automatically quote runtime-evaluated references (#6001)
    Allow transparent cell magics in Jupyter Notebooks (#8911)
    [flake8-annotations] Avoid ANN2xx fixes for abstract methods with empty bodies (#9034)
    [flake8-self] Ignore underscore references in type annotations (#9036)
    [pep8-naming] Allow class names when apps.get_model is a non-string (#9065)
    [pycodestyle] Allow matplotlib.use calls to intersperse imports (#9094)
    [pyflakes] Support fixing unused assignments in tuples by renaming variables (F841) (#9107)
    [pylint] Add fix for subprocess-run-without-check (PLW1510) (#6708)

Formatter

    Add docstring-code-format knob to enable docstring snippet formatting (#8854)
    Use double quotes for all docstrings, including single-quoted docstrings (#9020)
    Implement "dynamic" line width mode for docstring code formatting (#9098)
    Support reformatting Markdown code blocks (#9030)
    add support for formatting reStructuredText code snippets (#9003)
    Avoid trailing comma for single-argument with positional separator (#9076)
    Fix handling of trailing target comment (#9051)

CLI

    Hide unsafe fix suggestions when explicitly disabled (#9095)
    Add SARIF support to --output-format (#9078)

Bug fixes

    Apply unnecessary index rule prior to enumerate rewrite (#9012)
    [flake8-err-msg] Allow EM fixes even if msg variable is defined (#9059)
    [flake8-pie] Prevent keyword arguments duplication (#8450)
    [flake8-pie] Respect trailing comma in unnecessary-dict-kwargs (PIE804) (#9015)
    [flake8-raise] Avoid removing parentheses on ctypes.WinError (#9027)
    [isort] Avoid invalid combination of force-sort-within-types and lines-between-types (#9041)
    [isort] Ensure that from-style imports are always ordered first in __future__ (#9039)
    [pycodestyle] Allow tab indentation before keyword (#9099)
    [pylint] Ignore @@overrides and @@overloads for too-many-positional (#9000)
    [pyupgrade] Enable printf-string-formatting fix with comments on right-hand side (#9037)
    [refurb] Make math-constant (FURB152) rule more targeted (#9054)
    [refurb] Support floating-point base in redundant-log-base (FURB163) (#9100)
    [ruff] Detect unused-asyncio-dangling-task (RUF006) on unused assignments (#9060)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2023/12/11 09:35:23 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.8
@


1.4
log
@py-ruff: update to 0.1.7.

v0.1.7

Changes

Preview features

    Implement multiline dictionary and list hugging for preview style (#8293)
    Implement the fix_power_op_line_length preview style (#8947)
    Use Python version to determine typing rewrite safety (#8919)
    [flake8-annotations] Enable auto-return-type involving Optional and Union annotations (#8885)
    [flake8-bandit] Implement django-raw-sql (S611) (#8651)
    [flake8-bandit] Implement tarfile-unsafe-members (S202) (#8829)
    [flake8-pyi] Implement fix for unnecessary-literal-union (PYI030) (#7934)
    [flake8-simplify] Extend dict-get-with-none-default (SIM910) to non-literals (#8762)
    [pylint] - add unnecessary-list-index-lookup (PLR1736) + autofix (#7999)
    [pylint] - implement R0202 and R0203 with autofixes (#8335)
    [pylint] Implement repeated-keyword (PLE1132) (#8706)
    [pylint] Implement too-many-positional (PLR0917) (#8995)
    [pylint] Implement unnecessary-dict-index-lookup (PLR1733) (#8036)
    [refurb] Implement redundant-log-base (FURB163) (#8842)

Rule changes

    [flake8-boolean-trap] Allow booleans in @@override methods (#8882)
    [flake8-bugbear] Avoid B015,B018 for last expression in a cell (#8815)
    [flake8-pie] Allow ellipses for enum values in stub files (#8825)
    [flake8-pyi] Check PEP 695 type aliases for snake-case-type-alias and t-suffixed-type-alias (#8966)
    [flake8-pyi] Check for kwarg and vararg NoReturn type annotations (#8948)
    [flake8-simplify] Omit select context managers from SIM117 (#8801)
    [pep8-naming] Allow Django model loads in non-lowercase-variable-in-function (N806) (#8917)
    [pycodestyle] Avoid E703 for last expression in a cell (#8821)
    [pycodestyle] Update E402 to work at cell level for notebooks (#8872)
    [pydocstyle] Avoid D100 for Jupyter Notebooks (#8816)
    [pylint] Implement fix for unspecified-encoding (PLW1514) (#8928)

Formatter

    Avoid unstable formatting in ellipsis-only body with trailing comment (#8984)
    Inline trailing comments for type alias similar to assignments (#8941)
    Insert trailing comma when function breaks with single argument (#8921)

CLI

    Update ruff check and ruff format to default to the current directory (#8791)
    Stop at the first resolved parent configuration (#8864)

Configuration

    [pylint] Default max-positional-args to max-args (#8998)
    [pylint] Add allow-dunder-method-names setting for bad-dunder-method-name (PLW3201) (#8812)
    [isort] Add support for from-first setting (#8663)
    [isort] Add support for length-sort settings (#8841)

Bug fixes

    Add support for @@functools.singledispatch (#8934)
    Avoid off-by-one error in stripping noqa following multi-byte char (#8979)
    Avoid off-by-one error in with-item named expressions (#8915)
    Avoid syntax error via invalid ur string prefix (#8971)
    Avoid underflow in get_model matching (#8965)
    Avoid unnecessary index diagnostics when value is modified (#8970)
    Convert over-indentation rule to use number of characters (#8983)
    Detect implicit returns in auto-return-types (#8952)
    Fix start >= end error in over-indentation (#8982)
    Ignore @@overload and @@override methods for too-many-arguments checks (#8954)
    Lexer start of line is false only for Mode::Expression (#8880)
    Mark pydantic_settings.BaseSettings as having default copy semantics (#8793)
    Respect dictionary unpacking in NamedTuple assignments (#8810)
    Respect local subclasses in flake8-type-checking (#8768)
    Support type alias statements in simple statement positions (#8916)
    [flake8-annotations] Avoid filtering out un-representable types in return annotation (#8881)
    [flake8-pie] Retain extra ellipses in protocols and abstract methods (#8769)
    [flake8-pyi] Respect local enum subclasses in simple-defaults (PYI052) (#8767)
    [flake8-trio] Use correct range for TRIO115 fix (#8933)
    [flake8-trio] Use full arguments range for zero-sleep-call (#8936)
    [isort] fix: mark __main__ as first-party import (#8805)
    [pep8-naming] Avoid N806 errors for type alias statements (#8785)
    [perflint] Avoid PERF101 if there's an append in loop body (#8809)
    [pycodestyle] Allow space-before-colon after end-of-slice (#8838)
    [pydocstyle] Avoid non-character breaks in over-indentation (D208) (#8866)
    [pydocstyle] Ignore underlines when determining docstring logical lines (#8929)
    [pylint] Extend self-assigning-variable to multi-target assignments (#8839)
    [tryceratops] Avoid repeated triggers in nested tryceratops diagnostics (#8772)

Documentation

    Add advice for fixing RUF008 when mutability is not desired (#8853)
    Added the command to run ruff using pkgx to the installation.md (#8955)
    Document fix safety for flake8-comprehensions and some pyupgrade rules (#8918)
    Fix doc formatting for zero-sleep-call (#8937)
    Remove duplicate imports from os-stat documentation (#8930)
    Replace generated reference to MkDocs (#8806)
    Update Arch Linux package URL in installation.md (#8802)
    [flake8-pyi] Fix error in t-suffixed-type-alias (PYI043) example (#8963)
    [flake8-pyi] Improve motivation for custom-type-var-return-type (PYI019) (#8766)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2023/11/19 16:26:35 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.7
@


1.3
log
@py-ruff: update to 0.1.6.

0.1.6

Preview features

    [flake8-boolean-trap] Extend boolean-type-hint-positional-argument (FBT001) to include booleans in unions (#7501)
    [flake8-pie] Extend reimplemented-list-builtin (PIE807) to dict reimplementations (#8608)
    [flake8-pie] Extend unnecessary-pass (PIE790) to include ellipses (...) (#8641)
    [flake8-pie] Implement fix for unnecessary-spread (PIE800) (#8668)
    [flake8-quotes] Implement unnecessary-escaped-quote (Q004) (#8630)
    [pycodestyle] Implement fix for multiple-spaces-after-keyword (E271) and multiple-spaces-before-keyword (E272) (#8622)
    [pycodestyle] Implement fix for multiple-spaces-after-operator (E222) and multiple-spaces-before-operator (E221) (#8623)
    [pyflakes] Extend is-literal (F632) to include comparisons against mutable initializers (#8607)
    [pylint] Implement redefined-argument-from-local (PLR1704) (#8159)
    [pylint] Implement fix for unnecessary-lambda (PLW0108) (#8621)
    [refurb] Implement if-expr-min-max (FURB136) (#8664)
    [refurb] Implement math-constant (FURB152) (#8727)

Rule changes

    [flake8-annotations] Add autotyping-like return type inference for annotation rules (#8643)
    [flake8-future-annotations] Implement fix for future-required-type-annotation (FA102) (#8711)
    [flake8-implicit-namespace-package] Avoid missing namespace violations in scripts with shebangs (#8710)
    [pydocstyle] Update over-indentation (D208) to preserve indentation offsets when fixing overindented lines (#8699)
    [pyupgrade] Refine timeout-error-alias (UP041) to remove false positives (#8587)

Formatter

    Fix instability in await formatting with fluent style (#8676)
    Compare formatted and unformatted ASTs during formatter tests (#8624)
    Preserve trailing semicolon for Notebooks (#8590)

CLI

    Improve debug printing for resolving origin of config settings (#8729)
    Write unchanged, excluded files to stdout when read via stdin (#8596)

Configuration

    [isort] Support disabling sections with no-sections = true (#8657)
    [pep8-naming] Support local and dynamic class- and static-method decorators (#8592)
    [pydocstyle] Allow overriding pydocstyle convention rules (#8586)

Bug fixes

    Avoid syntax error via importing trio.lowlevel (#8730)
    Omit unrolled augmented assignments in PIE794 (#8634)
    Slice source code instead of generating it for EM fixes (#7746)
    Allow whitespace around colon in slices for whitespace-before-punctuation (E203) (#8654)
    Use function range for no-self-use (#8637)
    F-strings doesn't contain bytes literal for PLW0129 (#8675)
    Improve detection of TYPE_CHECKING blocks imported from typing_extensions or _typeshed (#8429)
    Treat display as a builtin in IPython (#8707)
    Avoid FURB113 autofix if comments are present (#8494)
    Consider the new f-string tokens for flake8-commas (#8582)
    Remove erroneous bad-dunder-name reference (#8742)
    Avoid recommending Self usages in metaclasses (#8639)
    Detect runtime-evaluated base classes defined in the current file (#8572)
    Avoid inserting trailing commas within f-strings (#8574)
    Remove incorrect deprecation label for stdout and stderr (#8743)
    Fix unnecessary parentheses in UP007 fix (#8610)
    Remove repeated and erroneous scoped settings headers in docs (#8670)
    Trim trailing empty strings when converting to f-strings (#8712)
    Fix ordering for force-sort-within-sections (#8665)
    Run unicode prefix rule over tokens (#8709)
    Update UP032 to unescape curly braces in literal parts of converted strings (#8697)
    List all ipython builtins (#8719)

Documentation

    Document conventions in the FAQ (#8638)
    Redirect from rule codes to rule pages in docs (#8636)
    Fix permalink to convention setting (#8575)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2023/11/13 11:28:07 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.6
@


1.2
log
@py-ruff: update to 0.1.5.

0.1.5

Preview features

    [flake8-bandit] Implement mako-templates (S702) (#8533)
    [flake8-trio] Implement TRIO105 (#8490)
    [flake8-trio] Implement TRIO109 (#8534)
    [flake8-trio] Implement TRIO110 (#8537)
    [flake8-trio] Implement TRIO115 (#8486)
    [refurb] Implement type-none-comparison (FURB169) (#8487)
    Flag all comparisons against builtin types in E721 (#8491)
    Make SIM118 fix as safe when the expression is a known dictionary (#8525)

Formatter

    Fix multiline lambda expression statement formatting (#8466)

CLI

    Add hidden --extension to override inference of source type from file extension (#8373)

Configuration

    Account for selector specificity when merging extend_unsafe_fixes and override extend_safe_fixes (#8444)
    Add support for disabling cache with RUFF_NO_CACHE environment variable (#8538)

Bug fixes

    [E721] Flag comparisons to memoryview (#8485)
    Allow collapsed-ellipsis bodies in other statements (#8499)
    Avoid D301 autofix for u prefixed strings (#8495)
    Only flag flake8-trio rules when trio import is present (#8550)
    Reject more syntactically invalid Python programs (#8524)
    Avoid raising TRIO115 violations for trio.sleep(...) calls with non-number values (#8532)
    Fix F841 false negative on assignment to multiple variables (#8489)

Documentation

    Fix link to isort known-first-party (#8562)
    Add notes on fix safety to a few rules (#8500)
    Add missing toml config tabs (#8512)
    Add instructions for configuration of Emacs (#8488)
    Improve detail link contrast in dark mode (#8548)
    Fix typo in example (#8506)
    Added tabs for configuration files in the documentation (#8480)
    Recommend project.requires-python over target-version (#8513)
    Add singleton escape hatch to B008 documentation (#8501)
    Fix tab configuration docs (#8502)

0.1.4

Preview features

    [flake8-trio] Implement timeout-without-await (TRIO001) (#8439)
    [numpy] Implement NumPy 2.0 migration rule (NPY200) (#7702)
    [pylint] Implement bad-open-mode (W1501) (#8294)
    [pylint] Implement import-outside-toplevel (C0415) rule (#5180)
    [pylint] Implement useless-with-lock (W2101) (#8321)
    [pyupgrade] Implement timeout-error-alias (UP041) (#8476)
    [refurb] Implement isinstance-type-none (FURB168) (#8308)
    Detect confusable Unicode-to-Unicode units in RUF001, RUF002, and RUF003 (#4430)
    Add newline after module docstrings in preview style (#8283)

Formatter

    Add a note on line-too-long to the formatter docs (#8314)
    Preserve trailing statement semicolons when using fmt: skip (#8273)
    Preserve trailing semicolons when using fmt: off (#8275)
    Avoid duplicating linter-formatter compatibility warnings (#8292)
    Avoid inserting a newline after function docstrings (#8375)
    Insert newline between docstring and following own line comment (#8216)
    Split tuples in return positions by comma first (#8280)
    Avoid treating byte strings as docstrings (#8350)
    Add --line-length option to format command (#8363)
    Avoid parenthesizing unsplittable because of comments (#8431)

CLI

    Add --output-format to ruff rule and ruff linter (#8203)

Bug fixes

    Respect --force-exclude in lint.exclude and format.exclude (#8393)
    Respect --extend-per-file-ignores on the CLI (#8329)
    Extend bad-dunder-method-name to permit __index__ (#8300)
    Fix panic with 8 in octal escape (#8356)
    Avoid raising D300 when both triple quote styles are present (#8462)
    Consider unterminated f-strings in FStringRanges (#8154)
    Avoid including literal shell=True for truthy, non-True diagnostics (#8359)
    Avoid triggering single-element test for starred expressions (#8433)
    Detect and ignore Jupyter automagics (#8398)
    Fix invalid E231 error with f-strings (#8369)
    Avoid triggering NamedTuple rewrite with starred annotation (#8434)
    Avoid un-setting bracket flag in logical lines (#8380)
    Place 'r' prefix before 'f' for raw format strings (#8464)
    Remove trailing periods from NumPy 2.0 code actions (#8475)
    Fix bug where PLE1307 was raised when formatting %c with characters (#8407)
    Remove unicode flag from comparable (#8440)
    Improve B015 message (#8295)
    Use fixedOverflowWidgets for playground popover (#8458)
    Mark byte_bounds as a non-backwards-compatible NumPy 2.0 change (#8474)

Internals

    Add a dedicated cache directory per Ruff version (#8333)
    Allow selective caching for --fix and --diff (#8316)
    Improve performance of comment parsing (#8193)
    Improve performance of string parsing (#8227)
    Use a dedicated sort key for isort import sorting (#7963)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2023/10/29 22:03:03 wiz Exp $
d3 1
a3 1
DISTNAME=	ruff-0.1.5
d9 1
a9 1
HOMEPAGE=	https://github.com/charliermarsh/ruff
@


1.1
log
@devel/py-ruff: import py-ruff-0.1.3

Ruff is an extremely fast Python linter, written in Rust.

Ruff aims to be orders of magnitude faster than alternative tools
while integrating more functionality behind a single, common
interface.

Ruff can be used to replace Flake8 (plus dozens of plugins), isort,
pydocstyle, yesqa, eradicate, pyupgrade, and autoflake, all while
executing tens or hundreds of times faster than any individual
tool.
@
text
@d1 1
a1 1
# $NetBSD$
d3 1
a3 1
DISTNAME=	ruff-0.1.3
a13 2
#TOOL_DEPENDS+=	${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel
TOOL_DEPENDS+=	rust-[0-9]*:../../lang/rust
@

