Ruff v0.0.281 ships with a 2-3x faster lexer achieved through cache-friendly data structures, fewer allocations, and ASCII optimizations. The release adds eight new lint rules: four for type stubs (unused private TypeVar, Protocol, TypeAlias, TypedDict), one for unsupported method calls on __all__, self-assigning variable detection, unsafe subprocess.Popen preexec_fn usage, and pathlib-based replacements for os.sep.split and glob. End-of-line file-level noqa suppression comments are now warned about and ignored.
Table of contents
Ruff's lexer is 2-3x faster #End-of-line # ruff: noqa comments are now ignored #New rule: unused-private-type-var ( PYI018 ) #New rule: unused-private-protocol ( PYI046 ) #New rule: unused-private-type-alias ( PYI047 ) #New rule: unused-private-typed-dict ( PYI049 ) #New rule: unsupported-method-call-on-all ( PYI056 ) #New rule: self-assigning-variable ( PLW0127 ) #New rule: subprocess-popen-preexec-fn ( PLW1509 ) #New rule: os-sep-split ( PTH206 ) #New rule: glob ( PTH207 ) #Sort: