-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Insights: astral-sh/ruff
Overview
7 Releases published by 1 person
308 Pull requests merged by 37 people
-
[syntax-errors] Irrefutable case pattern before final case
#16905 merged
Mar 26, 2025 -
[
airflow
] refactor: remove unnecessarySome
incheck_method
,check_class_attribute
(AIR302
)#16975 merged
Mar 26, 2025 -
[red-knot] A
FunctionType
can be a subtype ofCallable
(but never the other way around)#16970 merged
Mar 25, 2025 -
Update dependency vite to v6.2.3
#16972 merged
Mar 25, 2025 -
[red-knot] Use
web-time
instead ofFileTime::now
#16967 merged
Mar 25, 2025 -
[red-knot] Fix panic on cyclic
*
imports#16958 merged
Mar 24, 2025 -
[red-knot] Fix gradual equivalence for callable types
#16887 merged
Mar 24, 2025 -
[red-knot] simplify "removing" in UnionBuilder::add
#16947 merged
Mar 24, 2025 -
[red-knot] Add initial support for
*
imports#16923 merged
Mar 24, 2025 -
[red-knot] Default playground to Python 3.13 for real
#16956 merged
Mar 24, 2025 -
[red-knot] Add more tests for
*
imports#16955 merged
Mar 24, 2025 -
[red-knot] Default playground to Python 3.13
#16952 merged
Mar 24, 2025 -
Update Rust crate getrandom to v0.3.2
#16939 merged
Mar 24, 2025 -
Update PyO3/maturin-action digest to 22fe573
#16932 merged
Mar 24, 2025 -
[red-knot] Demote the
negation_reverses_subtype_order
test back to flaky#16951 merged
Mar 24, 2025 -
[airflow] refactor: combine similar case condition (AIR302)
#16944 merged
Mar 24, 2025 -
Update astral-sh/setup-uv digest to 2269511
#16937 merged
Mar 24, 2025 -
Update taiki-e/install-action digest to 914ac1e
#16938 merged
Mar 24, 2025 -
[syntax-errors] Fix false positive for parenthesized tuple index
#16948 merged
Mar 24, 2025 -
[red-knot] Add settings support to playground
#16929 merged
Mar 24, 2025 -
Update actions/cache digest to 5a3ec84
#16934 merged
Mar 24, 2025 -
Update actions/upload-artifact digest to ea165f8
#16936 merged
Mar 24, 2025 -
Update Rust crate tempfile to v3.19.1
#16941 merged
Mar 24, 2025 -
Update Rust crate mimalloc to v0.1.44
#16940 merged
Mar 24, 2025 -
Update actions/download-artifact digest to 95815c3
#16935 merged
Mar 24, 2025 -
Update Swatinem/rust-cache digest to 9d47c6a
#16933 merged
Mar 24, 2025 -
Fixing more spelling errors
#16926 merged
Mar 23, 2025 -
[red-knot] Do not emit
invalid-return-type
for abstract functions#16900 merged
Mar 23, 2025 -
[
refurb
] Document whyUserDict
,UserList
,UserString
are preferred overdict
,list
,str
(FURB189
)#16927 merged
Mar 23, 2025 -
[red-knot] Disambiguate display for intersection types
#16914 merged
Mar 23, 2025 -
Fix typos
#16908 merged
Mar 23, 2025 -
[red-knot] fix ordering of
ClassDef
semantic index building#16915 merged
Mar 23, 2025 -
[
pylint
] Fix typo in documentation of PLC1802#16920 merged
Mar 23, 2025 -
Fixing various spelling errors
#16924 merged
Mar 23, 2025 -
[red-knot] Log sys-prefix origin for easier debugging
#16921 merged
Mar 23, 2025 -
[red-knot] Support calling a
typing.Callable
#16888 merged
Mar 22, 2025 -
[red-knot] Check assignability for two callable types
#16845 merged
Mar 22, 2025 -
[red-knot] Fix disambiguate display for union types
#16907 merged
Mar 22, 2025 -
[red-knot] Add line number to mdtest panic message about language tag mismatch
#16906 merged
Mar 22, 2025 -
[syntax-errors] Duplicate type parameter names
#16858 merged
Mar 21, 2025 -
[syntax-errors] Start detecting compile-time syntax errors
#16106 merged
Mar 21, 2025 -
Update replacement paths for AIR302
#16876 merged
Mar 21, 2025 -
[red-knot] Avoid false-positive diagnostics on
*
import statements#16899 merged
Mar 21, 2025 -
[red-knot] Add failing tests for
*
imports#16873 merged
Mar 21, 2025 -
[red-knot] Break up call binding into two phases
#16546 merged
Mar 21, 2025 -
Bump 0.11.2
#16896 merged
Mar 21, 2025 -
Use the common
OperatorPrecedence
for the parser#16747 merged
Mar 21, 2025 -
[red-knot] Check subtype relation between callable types
#16804 merged
Mar 21, 2025 -
[red-knot] Check whether two callable types are equivalent
#16698 merged
Mar 21, 2025 -
[red-knot] Ban most
Type::Instance
types in type expressions#16872 merged
Mar 20, 2025 -
Special-case value-expression inference of special form subscriptions
#16877 merged
Mar 20, 2025 -
[syntax-errors] Fix star annotation before Python 3.11
#16878 merged
Mar 20, 2025 -
Recognize
SyntaxError:
as an error code for ecosystem checks#16879 merged
Mar 20, 2025 -
[red-knot] add test cases result in false positive errors
#16856 merged
Mar 20, 2025 -
Bump 0.11.1
#16871 merged
Mar 20, 2025 -
Allow discovery of venv in VIRTUAL_ENV env variable
#16853 merged
Mar 20, 2025 -
Split git pathspecs in change determination onto separate lines
#16869 merged
Mar 20, 2025 -
Use the correct base commit for change determination
#16857 merged
Mar 20, 2025 -
Separate
BitXorOr
intoBitXor
andBitOr
precedence#16844 merged
Mar 20, 2025 -
Server: Allow
FixAll
action in presence of version-specific syntax errors#16848 merged
Mar 20, 2025 -
[
refurb
] Fix starred expressions fix (FURB161
)#16550 merged
Mar 19, 2025 -
[
flake8-executable
] Add pytest and uv run to help message forshebang-missing-python
(EXE003
)#16855 merged
Mar 19, 2025 -
Show more precise messages in invalid type expressions
#16850 merged
Mar 19, 2025 -
[
flake8-executables
] Allowuv run
in shebang line forshebang-missing-python
(EXE003
)#16849 merged
Mar 19, 2025 -
Add --exit-non-zero-on-format
#16009 merged
Mar 19, 2025 -
[red-knot] Ban list literals in most contexts in type expressions
#16847 merged
Mar 19, 2025 -
[red-knot] Make' Type::in_type_expression()' exhaustive for Type::KnownInstance
#16836 merged
Mar 19, 2025 -
[red-knot] Minor cleanup to
infer_parameterized_known_instance_type_expression
#16846 merged
Mar 19, 2025 -
[internal] Return
Message
s fromcheck_path
#16837 merged
Mar 19, 2025 -
Use the Depot Ubuntu runners instead of GitHub for release workflows
#16843 merged
Mar 19, 2025 -
Allow dirty files in
cargo-dist
for action pins#16842 merged
Mar 19, 2025 -
[red-knot] Add missing space between error message and lint code in playground
#16840 merged
Mar 19, 2025 -
[playground] Avoid concurrent deployments
#16834 merged
Mar 18, 2025 -
[red-knot] Infer
lambda
return type asUnknown
#16695 merged
Mar 18, 2025 -
[red-knot] Move
name
field on parameter kind#16830 merged
Mar 18, 2025 -
[playground] Use cursor for clickable elements
#16833 merged
Mar 18, 2025 -
[red-knot] Deploy playground on main
#16832 merged
Mar 18, 2025 -
Red Knot Playground
#12681 merged
Mar 18, 2025 -
[syntax-errors] PEP 701 f-strings before Python 3.12
#16543 merged
Mar 18, 2025 -
[red-knot] Refactor
property_tests.rs
intoproperty_tests
module structure#16827 merged
Mar 18, 2025 -
[red-knot] Simplify
IterationError
andContextManagerError
#16820 merged
Mar 18, 2025 -
[red-knot] Improve property test performance by cloning db instead of holding
MutexGuard
#16823 merged
Mar 18, 2025 -
[playground] Upgrade dependencies
#16825 merged
Mar 18, 2025 -
[playground] Extract shared components
#16819 merged
Mar 18, 2025 -
[ruff] Fix
--statistics
reporting for unsafe fixes#16756 merged
Mar 18, 2025 -
[
airflow
] Addchain
,chain_linear
andcross_downstream
forAIR302
#16647 merged
Mar 18, 2025 -
Update Ruff tutorial to avoid non-existent fix in
__init__.py
#16818 merged
Mar 18, 2025 -
[refactor] Convert playground to an NPM workspace
#16806 merged
Mar 17, 2025 -
[ci] Remove MichaReiser as
red_knot_python_semantic
code owner#16817 merged
Mar 17, 2025 -
[red-knot] replace old diagnostic renderer with the new
#16812 merged
Mar 17, 2025 -
github: include
/.github/
in ripgrep searches by default#16814 merged
Mar 17, 2025 -
Update pre-commit dependencies
#16813 merged
Mar 17, 2025 -
Add dcreager as red-knot CODEOWNER
#16807 merged
Mar 17, 2025 -
[
flake8-gettext
] Swapformat-
andprintf-in-get-text-func-call
examples (INT002
,INT003
)#16769 merged
Mar 17, 2025 -
[red-knot] Handle unions of callables better
#16716 merged
Mar 17, 2025 -
[red-knot] Fix fully static check for callable type
#16803 merged
Mar 17, 2025 -
[syntax-errors] Parenthesized context managers before Python 3.9
#16523 merged
Mar 17, 2025 -
[ci]: Disable wheel testing on
ppc64le
#16793 merged
Mar 17, 2025 -
[red-knot] Stabilize
negation_reverses_subtype_order
property test#16801 merged
Mar 17, 2025 -
[ci] Use
git diff
instead ofchanged-files
GH action#16796 merged
Mar 17, 2025 -
[syntax-errors] Improve error message and range for pre-PEP-614 decorator syntax errors
#16581 merged
Mar 17, 2025 -
[
flake8-bandit
] Allow raw strings insuspicious-mark-safe-usage
(S308
) #16702#16770 merged
Mar 17, 2025 -
[
refurb
] Avoid panickingunwrap
inverbose-decimal-constructor
(FURB157
)#16777 merged
Mar 17, 2025 -
[red-knot] Add
--color
CLI option#16758 merged
Mar 17, 2025 -
[internal]: Upgrade salsa
#16794 merged
Mar 17, 2025 -
Pin dependencies
#16791 merged
Mar 17, 2025 -
[internal]: Update indirect dependencies
#16792 merged
Mar 17, 2025 -
[ci]: Fixup codspeed upgrade
#16790 merged
Mar 17, 2025 -
Update Rust crate compact_str to 0.9.0
#16785 merged
Mar 17, 2025 -
Update Rust crate clap to v4.5.32
#16778 merged
Mar 17, 2025 -
Update Rust crate codspeed-criterion-compat to v2.9.1
#16784 merged
Mar 17, 2025 -
Update Rust crate quote to v1.0.40
#16782 merged
Mar 17, 2025 -
Update Rust crate ordermap to v0.5.6
#16781 merged
Mar 17, 2025 -
Update cloudflare/wrangler-action action to v3.14.1
#16783 merged
Mar 17, 2025 -
Update Rust crate env_logger to v0.11.7
#16779 merged
Mar 17, 2025 -
Update Rust crate libc to v0.2.171
#16780 merged
Mar 17, 2025 -
Update Rust crate etcetera to 0.10.0
#16786 merged
Mar 17, 2025 -
Update Rust crate indexmap to v2.8.0
#16787 merged
Mar 17, 2025 -
Instruct Renovate to pin GitHub Actions based on SHA
#16789 merged
Mar 17, 2025 -
[ci]: Remove changed files actions
#16788 merged
Mar 17, 2025 -
[red-knot] LSP: only emit WARN logs from non-red-knot sources
#16760 merged
Mar 15, 2025 -
Sync vendored typeshed stubs
#16762 merged
Mar 15, 2025 -
[red-knot] Extend ecosystem checks
#16761 merged
Mar 14, 2025 -
[red-knot] Use
try_call_dunder
for augmented assignment#16717 merged
Mar 14, 2025 -
[red-knot] Document current state of attribute assignment diagnostics
#16746 merged
Mar 14, 2025 -
[red-knot] Case sensitive module resolver
#16521 merged
Mar 14, 2025 -
[red-knot] Very minor simplification of the render tests
#16759 merged
Mar 14, 2025 -
[syntax-errors] Unparenthesized assignment expressions in sets and indexes
#16404 merged
Mar 14, 2025 -
ruff_db: add new diagnostic renderer
#16711 merged
Mar 14, 2025 -
[red-knot] add support for
--output-format={full,concise}
#16749 merged
Mar 14, 2025 -
[syntax-errors] Star annotations before Python 3.11
#16545 merged
Mar 14, 2025 -
[syntax-errors] Star expression in index before Python 3.11
#16544 merged
Mar 14, 2025 -
Ruff 0.11.0
#16723 merged
Mar 14, 2025 -
[red-knot] Preliminary tests for typing.Final
#15917 merged
Mar 14, 2025 -
[red-knot] fix: improve type inference for binary ops on tuples
#16725 merged
Mar 14, 2025 -
[red-knot] Assignments to attributes
#16705 merged
Mar 14, 2025 -
[
pygrep-hooks
]: Detect file-level suppressions comments without rul…#16720 merged
Mar 14, 2025 -
Fallback to requires-python in certain cases when target-version is not found
#16721 merged
Mar 14, 2025 -
[syntax-errors] Tuple unpacking in
for
statement iterator clause before Python 3.9#16558 merged
Mar 13, 2025 -
Ruff v0.10 Release
#16708 merged
Mar 13, 2025 -
Update BREAKING_CHANGES.md
#16714 merged
Mar 13, 2025 -
Add new
noqa
specification to the docs#16703 merged
Mar 13, 2025 -
describe requires-python fallback in docs
#16704 merged
Mar 13, 2025 -
[red-knot] handle cycles in MRO/bases resolution
#16693 merged
Mar 13, 2025 -
[red-knot] Auto generate statement nodes
#16645 merged
Mar 13, 2025 -
Ruff 0.10
#16600 merged
Mar 13, 2025 -
[
pygrep-hooks
]: Detect file-level suppressions comments without rule codes (PGH004
)#16699 merged
Mar 13, 2025 -
[ruff] Fix
last_tag
/commits_since_last_tag
forversion
command#16686 merged
Mar 13, 2025 -
Fallback to
requires-python
in certain cases whentarget-version
is not found#16319 merged
Mar 13, 2025 -
[
pylint
] Better inference forstr.strip
(PLE310
)#16671 merged
Mar 13, 2025 -
[
pylint
] Improverepeated-equality-comparison
fix to use aset
when all elements are hashable (PLR1714
)#16685 merged
Mar 13, 2025 -
[
flake8-pyi
] Stabilize fix forunused-private-type-var
(PYI018
)#16682 merged
Mar 13, 2025 -
[
flake8-bandit
] Deprecatesuspicious-xmle-tree-usage
(S320
)#16680 merged
Mar 13, 2025 -
[
flake8-simplify
] Avoid double negation in fixes (SIM103
)#16684 merged
Mar 13, 2025 -
[
pyupgrade
]: Improve diagnostic range forredundant-open-mode
(UP015
)#16672 merged
Mar 13, 2025 -
Consider all
TYPE_CHECKING
symbols for type-checking blocks#16669 merged
Mar 13, 2025 -
[
pep8-naming
]: Ignore methods decorated with@typing.override
(invalid-argument-name
)#16667 merged
Mar 13, 2025 -
Stabilize FURB169 preview behavior
#16666 merged
Mar 13, 2025 -
[
pylint
] Detect invalid default value type foros.environ.get
(PLW1508
)#16674 merged
Mar 13, 2025 -
[
flake8-pytest-style
] Allow for loops with empty bodies (PT012
,PT031
)#16678 merged
Mar 13, 2025 -
[
pyupgrade
]: Deprecatenon-pep604-isinstance
(UP038
)#16681 merged
Mar 13, 2025 -
[red-knot] Check gradual equivalence between callable types
#16634 merged
Mar 13, 2025 -
[red-knot] Add
CallableTypeFromFunction
special form#16683 merged
Mar 13, 2025 -
[
flake8-type-checking
] Stabilizeruntime-cast-value
(TC006
)#16637 merged
Mar 12, 2025 -
[
flake8-bandit
] Stabilizeunsafe-markup-use
(S704
)#16643 merged
Mar 12, 2025 -
[
flake8-datetimez
] Stabilizedatetime-min-max
(DTZ901
)#16635 merged
Mar 12, 2025 -
Use inline snapshots in
# noqa
unit tests#16687 merged
Mar 12, 2025 -
[
ruff
] Stabilizeunnecessary-nested-literal
(RUF041
)#16648 merged
Mar 12, 2025 -
[
flake8-use-pathlib
] Stabilizeinvalid-pathlib-with-suffix
(PTH210
)#16656 merged
Mar 12, 2025 -
[red-knot] Add mypy_primer usage documentation
#16679 merged
Mar 12, 2025 -
Add missing unit tests for
# noqa: A
-like cases#16677 merged
Mar 12, 2025 -
[red-knot] fix red-knot fuzzing
#16675 merged
Mar 12, 2025 -
[red-knot] Support custom
__getattr__
methods#16668 merged
Mar 12, 2025 -
[red-knot] use fixpoint iteration for all cycles
#14029 merged
Mar 12, 2025 -
[
ruff
] Stabilizeif-key-in-dict-del
(RUF051
)#16658 merged
Mar 12, 2025 -
[
flake8-bugbear
] Stabilizebatched-without-explicit-strict
(B911
)#16655 merged
Mar 12, 2025 -
[
flake8-logging
] Stabilizeroot-logger-call
(LOG015
)#16654 merged
Mar 12, 2025 -
[
ruff
] Stabilizemap-int-version-parsing
(RUF048
)#16653 merged
Mar 12, 2025 -
[red-knot] Attribute access on intersection types
#16665 merged
Mar 12, 2025 -
[
ruff
] Stabilizeunnecessary-cast-to-int
(RUF046
)#16649 merged
Mar 12, 2025 -
[red-knot] Improve is_disjoint for two intersections
#16636 merged
Mar 12, 2025 -
[
ruff
] Stabilizeinvalid-assert-message-literal-argument
(RUF040
)#16646 merged
Mar 12, 2025 -
[
flake8-use-pathlib
] Stabilizeos-listdir
(PTH208
)#16642 merged
Mar 12, 2025 -
[
flake8-type-checking
] Stabilizeunquoted-type-alias
(TC007
)#16638 merged
Mar 12, 2025 -
Add missing unit tests for
# noqa:
-like cases#16659 merged
Mar 12, 2025 -
[red-knot] Restructure attribute-access and descriptor-protocol test suites.
#16664 merged
Mar 12, 2025 -
[red-knot] Minor optimization/cleanup in member lookup
#16663 merged
Mar 12, 2025 -
[red-knot] Binary operator inference for union types
#16601 merged
Mar 12, 2025 -
[red-knot] Check if callable type is fully static
#16633 merged
Mar 12, 2025 -
[red-knot] Callable member lookup, meta type impl
#16618 merged
Mar 12, 2025 -
[red-knot] remove redundant sentence in test
#16660 merged
Mar 12, 2025 -
[red-knot] detect invalid return type
#16540 merged
Mar 12, 2025 -
Make noqa parsing consistent and more robust
#16483 merged
Mar 11, 2025 -
[red-knot] Support multiple overloads when binding parameters at call sites
#16568 merged
Mar 11, 2025 -
[
flake8-builtins
] Default to non-strict checking (A005
)#16125 merged
Mar 11, 2025 -
[
pyupgrade
] Stabilizenon-pep646-unpack
(UP044
)#16632 merged
Mar 11, 2025 -
[
flake8-simplify
] Stabilizesplit-static-string
(SIM905
)#16631 merged
Mar 11, 2025 -
[red-knot] Rework
Type::to_instance()
to returnOption<Type>
#16428 merged
Mar 11, 2025 -
[ruff-0.10] [
flake8-pyi
] Stabilize preview-mode behaviours forcustom-type-var-for-self
(PYI019
)#16607 merged
Mar 11, 2025 -
[
pylint
] Stabilizelen-test
(PLC1802
)#16626 merged
Mar 11, 2025 -
[
pylint
] Stabilizeshallow-copy-environ
(PLW1507
)#16627 merged
Mar 11, 2025 -
[
FastAPI
] Stabilizefast-api-unused-path-parameter
(FAST003
)#16625 merged
Mar 11, 2025 -
[
flake8-comprehensions
] Stabilizeunnecessary-dict-comprehension-for-iterable
(C420
)#16624 merged
Mar 11, 2025 -
[red-knot] Handle gradual intersection types in assignability
#16611 merged
Mar 11, 2025 -
[
flake8-builtins
] Removebuiltins-
prefix from option names#16092 merged
Mar 11, 2025 -
[
flake8-bandit
] Moveunsafe-markup-use
fromRUF035
toS704
#15957 merged
Mar 11, 2025 -
[red-knot] mypy_primer: split installation and execution
#16622 merged
Mar 11, 2025 -
[red-knot] mypy_primer: pipeline improvements
#16620 merged
Mar 11, 2025 -
Server: Remove log notification for
printDebugInformation
command#16617 merged
Mar 11, 2025 -
[red-knot] Infer
lambda
expression#16547 merged
Mar 11, 2025 -
[formatter] Stabilize fix for single-with-item formatting with trailing comment
#16603 merged
Mar 10, 2025 -
[red-knot] mypy_primer: strip ANSI codes
#16604 merged
Mar 10, 2025 -
Bump alpine default tag to 3.21
#16456 merged
Mar 10, 2025 -
[red-knot] mypy_primer: comment on PRs
#16599 merged
Mar 10, 2025 -
[red-knot] Add support for calling
type[…]
#16597 merged
Mar 10, 2025 -
Update migration guide with the new
ruff.configuration
#16567 merged
Mar 10, 2025 -
[red-knot] Add 'mypy_primer' workflow
#16554 merged
Mar 10, 2025 -
Update Rust crate indoc to v2.0.6
#16585 merged
Mar 10, 2025 -
Update Rust crate syn to v2.0.100
#16590 merged
Mar 10, 2025 -
Update Rust crate thiserror to v2.0.12
#16591 merged
Mar 10, 2025 -
Update Rust crate serde_json to v1.0.140
#16589 merged
Mar 10, 2025 -
Update Rust crate quote to v1.0.39
#16587 merged
Mar 10, 2025 -
Update Rust crate serde to v1.0.219
#16588 merged
Mar 10, 2025 -
Update Rust crate proc-macro2 to v1.0.94
#16586 merged
Mar 10, 2025 -
Update Rust crate anyhow to v1.0.97
#16584 merged
Mar 10, 2025 -
Update dependency ruff to v0.9.10
#16593 merged
Mar 10, 2025 -
Update Rust crate unicode-ident to v1.0.18
#16592 merged
Mar 10, 2025 -
[red-knot] Do not ignore typeshed stubs for 'venv' module
#16596 merged
Mar 10, 2025 -
[red-knot] Reduce Salsa lookups in
Type::find_name_in_mro
#16582 merged
Mar 10, 2025 -
Fix broken red-knot property tests
#16574 merged
Mar 9, 2025 -
[red-knot] Consistent spelling of "metaclass" and "meta-type"
#16576 merged
Mar 9, 2025 -
[red-knot] Understand
typing.Callable
#16493 merged
Mar 8, 2025 -
[red-knot] Support unpacking
with
target#16469 merged
Mar 8, 2025 -
[red-knot] Attribute access and the descriptor protocol
#16416 merged
Mar 7, 2025 -
[
pep8-naming
] Add links toignore-names
options in various rules' documentation#16557 merged
Mar 7, 2025 -
[red-knot] avoid inferring types if unpacking fails
#16530 merged
Mar 7, 2025 -
[flake8-bandit] Fix mixed-case hash algorithm names (S324)
#16552 merged
Mar 7, 2025 -
Bump 0.9.10
#16556 merged
Mar 7, 2025 -
Assert that formatted code doesn't introduce any new unsupported syntax errors
#16549 merged
Mar 7, 2025 -
print MDTEST_TEST_FILTER value in single-quotes (and escaped)
#16548 merged
Mar 7, 2025 -
[syntax-errors] Parenthesized keyword argument names after Python 3.8
#16482 merged
Mar 6, 2025 -
[syntax-errors] Tuple unpacking in
return
andyield
before Python 3.8#16485 merged
Mar 6, 2025 -
[red-knot] Never is callable and iterable. Arbitrary attributes can be accessed.
#16533 merged
Mar 6, 2025 -
Clarify that D417 only checks docstrings with an arguments section
#16494 merged
Mar 6, 2025 -
Add
OsSystem
support to mdtests#16518 merged
Mar 6, 2025 -
Add tests for case-sensitive module resolution
#16517 merged
Mar 6, 2025 -
[red-knot] Several failing tests for generics
#16509 merged
Mar 5, 2025 -
[red-knot] support empty TypeInference with fallback type
#16510 merged
Mar 5, 2025 -
[syntax-errors] Named expressions in decorators before Python 3.9
#16386 merged
Mar 5, 2025 -
[syntax-errors] Positional-only parameters before Python 3.8
#16481 merged
Mar 5, 2025 -
Auto generate ast expression nodes
#16285 merged
Mar 5, 2025 -
[red-knot] Add new
Diagnostic
data type#16503 merged
Mar 5, 2025 -
[syntax-errors] Type parameter lists before Python 3.12
#16479 merged
Mar 5, 2025 -
[red-knot] De-duplicate symbol table query
#16515 merged
Mar 5, 2025 -
[red-knot] Add rule
invalid-type-checking-constant
#16501 merged
Mar 4, 2025 -
[syntax-errors]
type
statements before Python 3.12#16478 merged
Mar 4, 2025 -
Formatter: Fix syntax error location in notebooks
#16499 merged
Mar 4, 2025 -
[syntax-errors] Type parameter defaults before Python 3.13
#16447 merged
Mar 4, 2025 -
[syntax-errors] Limit
except*
range to*
#16473 merged
Mar 4, 2025 -
[red-knot] respect
TYPE_CHECKING
even if not imported from typing#16468 merged
Mar 4, 2025 -
Pull in fonts from a CDN
#16498 merged
Mar 4, 2025 -
Document
LinterResult::has_syntax_error
and addParsed::has_no_errors
#16443 merged
Mar 4, 2025 -
[
pyupgrade
] Do not offer fix when at least one target isglobal
/nonlocal
(UP028
)#16451 merged
Mar 4, 2025 -
Escape template filenames in glob patterns
#16407 merged
Mar 3, 2025 -
[pylint] Fix convert a code keyword argument to a positional argument (PLR1722)
#16424 merged
Mar 3, 2025 -
[red-knot] Add support for
knot check <paths>
#16375 merged
Mar 3, 2025 -
[flake8-builtins] Ignore variables matching module attribute names (A001)
#16454 merged
Mar 3, 2025 -
Add new rule RUF059: Unused unpacked assignment
#16449 merged
Mar 3, 2025 -
Upgrade to Tailwind4
#16471 merged
Mar 3, 2025 -
Upgrade to ESlint 9
#16470 merged
Mar 3, 2025 -
Update NPM Development dependencies
#16466 merged
Mar 3, 2025 -
Update dependency ruff to v0.9.9
#16464 merged
Mar 3, 2025 -
Update pre-commit dependencies
#16465 merged
Mar 3, 2025 -
Update Rust crate globset to v0.4.16
#16461 merged
Mar 3, 2025 -
Update Rust crate clap to v4.5.31
#16459 merged
Mar 3, 2025 -
Update Rust crate chrono to v0.4.40
#16458 merged
Mar 3, 2025 -
Update Rust crate codspeed-criterion-compat to v2.8.1
#16460 merged
Mar 3, 2025 -
Update Rust crate schemars to v0.8.22
#16463 merged
Mar 3, 2025 -
Update Rust crate insta to v1.42.2
#16462 merged
Mar 3, 2025 -
Update Rust crate bitflags to v2.9.0
#16467 merged
Mar 3, 2025 -
[syntax-errors]
except*
before Python 3.11#16446 merged
Mar 2, 2025 -
Sync vendored typeshed stubs
#16448 merged
Mar 1, 2025 -
Detect assignment expressions before Python 3.8
#16383 merged
Feb 28, 2025 -
[red-knot] Don't use separate ID types for each alist
#16415 merged
Feb 28, 2025 -
[red-knot] treat annotated assignments without RHS in stubs as bindings
#16409 merged
Feb 28, 2025 -
Exempt unittest context methods for SIM115 rule
#16439 merged
Feb 28, 2025 -
[red-knot] Reject HTML comments in mdtest unless they are
snapshot-diagnostics
or are explicitly allowlisted#16441 merged
Feb 28, 2025 -
Move rule code from
description
tocheck_name
in GitLab output serializer#16437 merged
Feb 28, 2025 -
[red-knot] Switch to a handwritten parser for mdtest error assertions
#16422 merged
Feb 28, 2025 -
[red-knot] Disallow more invalid type expressions
#16427 merged
Feb 28, 2025 -
Bump version to Ruff 0.9.9
#16434 merged
Feb 28, 2025 -
Check
LinterSettings::preview
for version-related syntax errors#16429 merged
Feb 28, 2025 -
Avoid caching files with unsupported syntax errors
#16425 merged
Feb 28, 2025 -
Prioritize "bug" label for changelog sections
#16433 merged
Feb 28, 2025 -
[
flake8-copyright
] Add links to applicable options (CPY001
)#16421 merged
Feb 28, 2025 -
Fix string-length limit in documentation for PYI054
#16432 merged
Feb 28, 2025 -
Show version-related syntax errors in the playground
#16419 merged
Feb 27, 2025 -
Allow passing
ParseOptions
to inline tests#16357 merged
Feb 27, 2025 -
Bump version to 0.9.8
#16414 merged
Feb 27, 2025 -
Notify users for invalid client settings
#16361 merged
Feb 27, 2025 -
Avoid indexing the project if
configurationPreference
iseditorOnly
#16381 merged
Feb 27, 2025 -
[red-knot] unify LoopState and saved_break_states
#16406 merged
Feb 26, 2025 -
[
pylint
] Also reportscase np.nan
/case math.nan
(PLW0177
)#16378 merged
Feb 26, 2025
34 Pull requests opened by 23 people
-
[flake8-bugbear] Add async-lru and aiocache decorators to the B019 rule checker
#16450 opened
Mar 1, 2025 -
[Ruff] Fix RUF054
#16452 opened
Mar 1, 2025 -
Add new rule InEmptyCollection
#16480 opened
Mar 3, 2025 -
[red-knot] Add `__init__` arguments check when doing `try_call` on a class literal
#16512 opened
Mar 5, 2025 -
Create `TypeVarInstance` type for legacy typevars
#16538 opened
Mar 6, 2025 -
Fix `useless-try-except (TRY203)` false negative
#16564 opened
Mar 8, 2025 -
[`isort`] Only infer subpackages of namespace packages as first-party
#16565 opened
Mar 8, 2025 -
[flake8-bandit] Update insecure hash functions (S324)
#16580 opened
Mar 9, 2025 -
[red-knot] Factor out shared unpacking logic
#16595 opened
Mar 10, 2025 -
[perflint] implement quick-fix for manual-dict-comprehension (PERF403)
#16719 opened
Mar 14, 2025 -
[red-knot] Add custom `__setattr__` support
#16748 opened
Mar 14, 2025 -
[`flake8-tidy-imports`] Implement `relative-sibling-imports` (`TID254`)
#16772 opened
Mar 15, 2025 -
[`ruff`] implement `IfKeyNotInDictAssign` rule (RUF060)
#16775 opened
Mar 16, 2025 -
[red-knot] detect unreachable attribute assignments
#16852 opened
Mar 19, 2025 -
[red-knot] Introduce `ArbitraryRule` for property tests
#16862 opened
Mar 20, 2025 -
[pep8-naming] Flag variables bound in match patterns (N806/N815/N816)
#16882 opened
Mar 21, 2025 -
[ruff] Detect mutable defaults in dataclass `field` calls (`RUF008`)
#16883 opened
Mar 21, 2025 -
docs: Correct collections-named-tuple example to use PascalCase assignment
#16884 opened
Mar 21, 2025 -
[pylint] Avoid flattening nested min/max when outer call has single argument (PLW3301)
#16885 opened
Mar 21, 2025 -
[red-knot] Goto type definition
#16901 opened
Mar 21, 2025 -
Implement flat width limits for comprehensions
#16902 opened
Mar 21, 2025 -
[red-knot] fix eager nested scopes handling
#16916 opened
Mar 22, 2025 -
[red-knot] Discover local venv folder in cli
#16917 opened
Mar 22, 2025 -
[syntax-errors] Multiple assignments in `case` pattern
#16957 opened
Mar 24, 2025 -
[red-knot] Make every type a subtype of object
#16960 opened
Mar 25, 2025 -
[airflow] add autofix to AIR302 check_name
#16965 opened
Mar 25, 2025 -
[airflow] fix missing or wrong test cases (AIR302)
#16968 opened
Mar 25, 2025 -
Check `pyproject.toml` correctly when it is passed via stdin
#16971 opened
Mar 25, 2025 -
[red-knot] support narrowing on constants in matches
#16974 opened
Mar 26, 2025 -
[airflow] add autofix to AIR302 check_method
#16976 opened
Mar 26, 2025 -
[airflow] add autofix to AIR302 check_class_attribute
#16977 opened
Mar 26, 2025 -
[airflow] move AIR301 to AIR201
#16978 opened
Mar 26, 2025 -
[`flake8-type-checking`] Treat type statement value as typing references
#16981 opened
Mar 26, 2025
147 Issues closed by 36 people
-
F821 (undefined name) incorrectly flags Python 3.11 forward references
#16982 closed
Mar 26, 2025 -
Consider promoting platform.system over sys.platform and os.name
#5622 closed
Mar 26, 2025 -
Weird N805 functionality when using `aenum`
#16942 closed
Mar 25, 2025 -
Red Knot playground panics when `knot.json` has a path specified
#16966 closed
Mar 25, 2025 -
Daily property test run failed on Sat Mar 22 2025
#16913 closed
Mar 24, 2025 -
False positive for starred arguments with Python 3.10
#16943 closed
Mar 24, 2025 -
[playground] Drag-and-drop inserts `$0`
#16946 closed
Mar 24, 2025 -
Configuring for Neovim - invalid client settings
#16945 closed
Mar 24, 2025 -
[red-knot] Confusing Intersection revealed type
#16911 closed
Mar 24, 2025 -
[red-knot] Protocol method return type is always inferred as `None`
#16895 closed
Mar 23, 2025 -
PLC1802 documentation
#16797 closed
Mar 23, 2025 -
[red-knot] Disambiguate display for intersection types
#16912 closed
Mar 23, 2025 -
Will be there any refactoring features in ruff lsp ?
#16897 closed
Mar 23, 2025 -
Add support for configuring indent-width from user settings in VSCode
#15741 closed
Mar 23, 2025 -
Build fails
#16910 closed
Mar 23, 2025 -
Question about fonts?
#16918 closed
Mar 22, 2025 -
[red-knot] Disambiguate display for union types
#16893 closed
Mar 22, 2025 -
[red-knot] Add line number to mdtest panic message about language tag mismatch
#16898 closed
Mar 22, 2025 -
Ruff fails to detect duplicate type parameter names
#11119 closed
Mar 21, 2025 -
No syntax error for `[(a := ...) for a in b]`
#14395 closed
Mar 21, 2025 -
[red-knot] match arguments to parameters before inferring argument types
#15460 closed
Mar 21, 2025 -
Unify `OperatorPrecedence` enums
#16071 closed
Mar 21, 2025 -
Cannot use star annotation false hit
#16891 closed
Mar 21, 2025 -
[red-knot] Recursive type aliases cause a panic
#16889 closed
Mar 21, 2025 -
[red-knot] Ban most `Type::Instance` types in type expressions
#16851 closed
Mar 20, 2025 -
Incorrect SyntaxError for `*` in strings in annotations (e.g. `Annotated`, `Literal`)
#16874 closed
Mar 20, 2025 -
Add rule to flag when a documented argument does not exist
#16875 closed
Mar 20, 2025 -
Organize imports not working due to version-specific syntax errors
#16841 closed
Mar 20, 2025 -
EXE003 and uv run?
#13021 closed
Mar 19, 2025 -
Add an `--exit-non-zero-on-fix` equivalent to the formatter.
#8191 closed
Mar 19, 2025 -
[red-knot] Make `Type::in_type_expression()` exhaustive
#15048 closed
Mar 19, 2025 -
ruff check error output with ascii only characters
#16831 closed
Mar 19, 2025 -
Whitelist rule patterns to avoid "Invalid rule code provided to `# noqa`"
#16835 closed
Mar 18, 2025 -
Emit diagnostics for new syntax as per the target Python version
#6591 closed
Mar 18, 2025 -
[red-knot] LSP test framework
#16737 closed
Mar 18, 2025 -
`ruff` LSP code auto-completion
#16413 closed
Mar 18, 2025 -
Can i set a default config file path?
#16621 closed
Mar 18, 2025 -
Organize Imports code action silently does nothing when `# noqa` is present
#16774 closed
Mar 18, 2025 -
`# noqa` doesn't stop import sorting (I001: `unsorted-imports`)
#13871 closed
Mar 18, 2025 -
`ruff check --statistics` shows unsafe fixes as fixable
#16751 closed
Mar 18, 2025 -
Tutorial uses `__init__.py` fix that is no longer active by default
#16805 closed
Mar 18, 2025 -
TC003 + pydantic.BaseModel
#16821 closed
Mar 17, 2025 -
[red-knot] Replace the old diagnostic renderer with the new one.
#16808 closed
Mar 17, 2025 -
SWAP flake8-gettext (INT)
#16735 closed
Mar 17, 2025 -
ruff is using a compromised tj-actions/changed-files GitHub actio
#16768 closed
Mar 17, 2025 -
[red-knot] Raise "invalid type expression" error for literal types
#16532 closed
Mar 17, 2025 -
[S308] `mark_safe` for HTML constants
#16702 closed
Mar 17, 2025 -
FURB157 fix panics on `Decimal(float("\x2dnan"))`
#16771 closed
Mar 17, 2025 -
E262 separation of "too many" "not enough"
#16766 closed
Mar 17, 2025 -
FA102 errors eventhough requires-python in pyproject.toml is ">=3.12"
#10299 closed
Mar 17, 2025 -
New C420 code triggers on cases that cannot allow for `fromkeys`
#16776 closed
Mar 16, 2025 -
Treatment of obsolete items
#16763 closed
Mar 16, 2025 -
blind-except (BLE001) is not active at all
#16767 closed
Mar 15, 2025 -
[red-knot] add ecosystem check
#15697 closed
Mar 14, 2025 -
[red-knot] Avoid running ecosystem checks when not necessary
#16522 closed
Mar 14, 2025 -
Daily property test run failed on Wed Mar 12 2025
#16670 closed
Mar 14, 2025 -
F841 not reporting unused var in for loops
#16754 closed
Mar 14, 2025 -
F841 unpacked vars from function call not reported as unused
#16753 closed
Mar 14, 2025 -
[red-knot] Panics on self-referential generic class definition
#14333 closed
Mar 13, 2025 -
[new-rule] Autofix deprecated imports
#16709 closed
Mar 13, 2025 -
UP038 rewrites code to make it slower and more verbose
#7871 closed
Mar 13, 2025 -
`unused-noqa` (`RUF100`) - false negatives and strange behavior with multiple codes
#15682 closed
Mar 13, 2025 -
Rename `flake8-builtins` options to remove the "builtins" prefix
#15368 closed
Mar 13, 2025 -
Suggest a colon in certain cases for file-level suppressions in `PGH004`
#16707 closed
Mar 13, 2025 -
Field `requires-python` is disregarded when config lives outside `pyproject.toml`
#16662 closed
Mar 13, 2025 -
F821 not recognizing `requires-python` in `pyproject.toml`
#14813 closed
Mar 13, 2025 -
ruff format: allow disabling "Pragma comments are ignored when computing line width"
#16697 closed
Mar 13, 2025 -
PYI026 only in stub?
#16701 closed
Mar 13, 2025 -
Document and establish new MSRV policy
#16370 closed
Mar 13, 2025 -
SIM108 not raised for instance variables
#16542 closed
Mar 13, 2025 -
No way to autofix F401 errors in __init__.py
#16609 closed
Mar 13, 2025 -
`S113` for requests.Session
#16619 closed
Mar 12, 2025 -
[red-knot] support classes defining __getattr__
#16614 closed
Mar 12, 2025 -
[red-knot] Panics on recursive type alias definition
#14672 closed
Mar 12, 2025 -
[red-knot] circular references in class definitions panic
#13792 closed
Mar 12, 2025 -
[red-knot] Detect functions where the returned values aren't assignable to the annotated return type
#16248 closed
Mar 12, 2025 -
`DOC502` weird functionality
#16578 closed
Mar 11, 2025 -
[red-knot] Decide if `Type::to_instance` should return a `Result`
#16302 closed
Mar 11, 2025 -
[red-knot] (Gradual) intersection types are not handled in assignability
#14899 closed
Mar 11, 2025 -
Please implement SIM905
#6661 closed
Mar 11, 2025 -
Ruff assuming python v 3.9 - syntax error on 'match'
#16610 closed
Mar 11, 2025 -
Formatter can insert mysterious extraneous parentheses in `with` statements
#14001 closed
Mar 11, 2025 -
Remove log notification for server debug info
#16225 closed
Mar 11, 2025 -
[red-knot] PEP 561 compliant module resolver
#11653 closed
Mar 10, 2025 -
Bump MSRV
#16312 closed
Mar 10, 2025 -
[red-knot] Rule request: check for consistent base class ordering
#16583 closed
Mar 9, 2025 -
Daily property test run failed on Sat Mar 08 2025
#16566 closed
Mar 9, 2025 -
Port Pylint's `missing-raises-doc`
#16573 closed
Mar 9, 2025 -
Daily property test run failed on Sun Mar 09 2025
#16575 closed
Mar 9, 2025 -
do you plan to add completuon and navigation to ruff server ?
#16563 closed
Mar 8, 2025 -
ruff format of single and multiline string different than in black
#16562 closed
Mar 8, 2025 -
[red-knot] Add support for unpacking targets in `with` statement
#16365 closed
Mar 8, 2025 -
[red-knot] Distinguish static-member lookup with and without instance variables
#16367 closed
Mar 7, 2025 -
[red-knot] Descriptor protocol
#15966 closed
Mar 7, 2025 -
Allow custom exceptions to N806, N815, N816
#16551 closed
Mar 7, 2025 -
[red-knot] Avoid inferring types in error case during unpacking
#15199 closed
Mar 7, 2025 -
S324 false negative on mixed-case hash algorithm names
#16525 closed
Mar 7, 2025 -
Ruff vs code extension down
#16526 closed
Mar 7, 2025 -
B905 not being raised when "B" rules enabled
#16541 closed
Mar 7, 2025 -
use named expressions in conditions
#16535 closed
Mar 6, 2025 -
Reimplement popular Mypy plugins
#15828 closed
Mar 6, 2025 -
F821: False positive with Pydantic's `BaseModel.model_fields`
#16527 closed
Mar 6, 2025 -
TC does not detect imports used only for type annotations
#16529 closed
Mar 6, 2025 -
Global indent width setting
#11228 closed
Mar 6, 2025 -
uv sort imports mistakenly separated `tomllib` from standard library group
#16405 closed
Mar 6, 2025 -
New rule to format `match` on its own line with `pytest.warns` or `pytest.raises`
#16524 closed
Mar 5, 2025 -
[red-knot] define new `Diagnostic` type for representing our diagnostic data model in code
#16505 closed
Mar 5, 2025 -
Ruff server pegs CPU and blocks VSCode when changing many files
#13686 closed
Mar 5, 2025 -
[red-knot] design how we want to use sub-diagnostics
#16241 closed
Mar 4, 2025 -
Ruff's VSCode extension doesn't recongnize terminal command executions in jupyter notebooks
#16484 closed
Mar 4, 2025 -
Make `UP028` always fixable again
#16496 closed
Mar 4, 2025 -
[Formatter panic]
#16476 closed
Mar 4, 2025 -
Invalid syntax error location for Notebook with `ruff format`
#11453 closed
Mar 4, 2025 -
[red-knot] respect `TYPE_CHECKING` even if not imported from `typing`
#15722 closed
Mar 4, 2025 -
Is the license really MIT when Alliance™ font family by Degarism Studio is a used font in the css
#16486 closed
Mar 4, 2025 -
[pydocstyle]: d417 being ignored with convention=google
#16477 closed
Mar 4, 2025 -
UP028 false positive when a target variable is global or nonlocal
#16445 closed
Mar 4, 2025 -
collections-named-tuple (PYI024): Potential for an unsafe autofix using `Any`
#16491 closed
Mar 4, 2025 -
linter for a subclass changing the asyncio "color" of a method
#16489 closed
Mar 4, 2025 -
New rule request: unused function
#16488 closed
Mar 4, 2025 -
[red-knot] Missing `invalid-assignment` diagnostics
#15669 closed
Mar 3, 2025 -
VsCode extension: Dublicates lines on save
#16390 closed
Mar 3, 2025 -
Ignore trailing commas not working for function arguments
#16475 closed
Mar 3, 2025 -
`ruff format` or `ruff check` returns "nested alternate groups are not allowed" error
#9381 closed
Mar 3, 2025 -
PLR1722 should convert a `code` keyword argument to a positional argument
#16396 closed
Mar 3, 2025 -
[red-knot] Add support for path arguments to the CLI
#14193 closed
Mar 3, 2025 -
F841 preview changes to tuple unpacking
#8884 closed
Mar 3, 2025 -
Upgrade ESLint to version 9
#12723 closed
Mar 3, 2025 -
Suggestion: Add release dates in changelog
#16442 closed
Feb 28, 2025 -
[red-knot] annotated assignments without RHS in stubs should still be bindings
#16264 closed
Feb 28, 2025 -
SIM115 should exempt `unittest.TestCase.enterContext()` and `enterClassContext()`
#16438 closed
Feb 28, 2025 -
[red-knot] Make it easier to avoid typos in `<!-- snapshot-diagnostics -->` mdtest HTML comments
#16352 closed
Feb 28, 2025 -
Excludes match against parent directories outside of the project when formatting through the language server
#16282 closed
Feb 28, 2025 -
ruff check --output-format=gitlab is missing required property "check_name"
#16435 closed
Feb 28, 2025 -
PYI054 documentation states the wrong maximum length
#16423 closed
Feb 28, 2025 -
`ruff server`: Write snapshot tests for project + editor settings resolution
#11112 closed
Feb 28, 2025 -
`ruff server`: Implement snapshot tests for linting
#11912 closed
Feb 28, 2025 -
`ruff server`: Implement snapshot tests for code actions
#11913 closed
Feb 28, 2025 -
Allow CPY001 (missing-copyright-notice) to ignore empty files
#16420 closed
Feb 27, 2025 -
RUF010 Maybe the other way round?
#16372 closed
Feb 27, 2025 -
Avoid indexing the project if config preference is `editorOnly`
#16267 closed
Feb 27, 2025 -
Do not match-case against np.nan
#16374 closed
Feb 26, 2025
141 Issues opened by 73 people
-
[red-knot] Calling system specific methods and possibly unbound
#16983 opened
Mar 26, 2025 -
SIM102 should be disabled for os.name and platform.system() checks (in addition to sys.platform)
#16980 opened
Mar 26, 2025 -
[red-knot] support Protocols
#16979 opened
Mar 26, 2025 -
Request: Autofix for `stub-body-multiple-statements (PYI048)` with elipsis / pass
#16973 opened
Mar 26, 2025 -
`F841 and F811` On match-case expression
#16969 opened
Mar 25, 2025 -
document side effect of FURB192
#16964 opened
Mar 25, 2025 -
`FIX` rules with expire date or deadlines
#16963 opened
Mar 25, 2025 -
Multilingual support for rules D400 and D415
#16962 opened
Mar 25, 2025 -
Adapt `DOC501` and `DOC502` to handle exception groups
#16961 opened
Mar 25, 2025 -
[red-knot] walrus expressions in a comprehension scope "leak" into the comprehension's enclosing scope
#16954 opened
Mar 24, 2025 -
[red-knot] Implement subtyping between different callable objects
#16953 opened
Mar 24, 2025 -
`pyproject.toml` is ignored when passed via stdin
#16950 opened
Mar 24, 2025 -
Ensure generator used with `contextlib.contextmanager` yields only once
#16949 opened
Mar 24, 2025 -
Ensure properties in Google-style docstrings start the correct way
#16931 opened
Mar 23, 2025 -
Ensure Google-style docstring lines end in a correct character
#16930 opened
Mar 23, 2025 -
[red-knot] detect implicit instance attributes in a generic method
#16928 opened
Mar 23, 2025 -
RET503 reported for method returning None only
#16925 opened
Mar 23, 2025 -
PyUpgrade rule UP007 should be disabled on older Pythons
#16922 opened
Mar 22, 2025 -
[red-knot] Provide context on why an assignment failed
#16919 opened
Mar 22, 2025 -
Catch string format requires a mapping
#16909 opened
Mar 22, 2025 -
SIM110: Recommend proper usage of `all` and `any`
#16904 opened
Mar 21, 2025 -
[Panic] ruff crashes when executed from a deleted folder on mac
#16903 opened
Mar 21, 2025 -
[red-knot] Support narrowing on attribute and subscript expressions
#16894 opened
Mar 21, 2025 -
Disable private-member-access in the tests folder
#16892 opened
Mar 21, 2025 -
[red-knot] Playknot crashes when Red-knot panics
#16890 opened
Mar 21, 2025 -
Types assigned to a type alias should be moved under type checking block
#16886 opened
Mar 21, 2025 -
[red-knot] Explore alternate implementation for callable type equivalence
#16881 opened
Mar 21, 2025 -
[red-knot] enforce Liskov on subclasses
#16880 opened
Mar 20, 2025 -
[red-knot] enforce type of `ClassVar` in subclasses
#16870 opened
Mar 20, 2025 -
non-unique-enums (PIE796): false positive
#16868 opened
Mar 20, 2025 -
Stabilize `PLR0917`
#16867 opened
Mar 20, 2025 -
Consider using `bitflags` or otherwise unify booleans on `LinterResult` and `Parsed`
#16866 opened
Mar 20, 2025 -
B909 misses dict.keys() deletion
#16865 opened
Mar 20, 2025 -
SQLAlchemy lint rules
#16864 opened
Mar 20, 2025 -
How to check 'missing type annotation for function arguments' only for public functions?
#16863 opened
Mar 20, 2025 -
Check for missing arguments
#16860 opened
Mar 19, 2025 -
RUF009 misses function call in dataclass default
#16859 opened
Mar 19, 2025 -
SWAP and MISSING flake8-annotations (ANN)
#16854 opened
Mar 19, 2025 -
F821 (E0601) False negative
#16839 opened
Mar 19, 2025 -
[red-knot] type context (bidirectional checking)
#16838 opened
Mar 19, 2025 -
Server: Support format on type capability
#16829 opened
Mar 18, 2025 -
[red-knot] Change range for `unresolved-attribute` error to attribute
#16828 opened
Mar 18, 2025 -
[red-knot] Show type on hover
#16826 opened
Mar 18, 2025 -
`signature-in-docstring` (`D402`) - false positive on usage example
#16824 opened
Mar 18, 2025 -
E402 ignores dunder variables between imports
#16815 opened
Mar 17, 2025 -
inconsistent behavior regarding asyncio-dangling-task (RUF006)
#16811 opened
Mar 17, 2025 -
Rule request: __format__ without __str__
#16810 opened
Mar 17, 2025 -
[red-knot] Refactor Red Knot to use the new `Diagnostic` type. Delete "old" diagnostic code.
#16809 opened
Mar 17, 2025 -
[Infinite loop] I002 and UP035
#16802 opened
Mar 17, 2025 -
Expansion to PLC1802 for `len(iterable) == 0` and `>0`
#16798 opened
Mar 17, 2025 -
FAST003 does not handle aliased path parameters when defined in another file
#16795 opened
Mar 17, 2025 -
RUF040 misses list literal
#16773 opened
Mar 16, 2025 -
[IMPROVEMENT] Make `--select` other CLI short hands more lenient with whitespace
#16755 opened
Mar 14, 2025 -
F841 does not have branch analysis
#16752 opened
Mar 14, 2025 -
uuid.UUID should be considered immutable by default
#16750 opened
Mar 14, 2025 -
[red-knot] Multi-span diagnostics in the LSP
#16745 opened
Mar 14, 2025 -
[red-knot] Discovery of local venv
#16744 opened
Mar 14, 2025 -
[red-knot] Use publish diagnostics
#16743 opened
Mar 14, 2025 -
[red-knot] Provide basic intelli-sense and diagnostics for non-project files
#16742 opened
Mar 14, 2025 -
[red-knot] Open file or project level diagnostics
#16741 opened
Mar 14, 2025 -
[red-knot] LSP client settings
#16740 opened
Mar 14, 2025 -
[red-knot] Review used APIs in the LSP
#16739 opened
Mar 14, 2025 -
[red-knot] Watch for changed files in LSP
#16738 opened
Mar 14, 2025 -
[red-knot] Multi-workspace sessions
#16736 opened
Mar 14, 2025 -
[red-knot] Code completion
#16734 opened
Mar 14, 2025 -
[red-knot] Go to definition
#16733 opened
Mar 14, 2025 -
[red-knot] VS Code extension
#16732 opened
Mar 14, 2025 -
[red-knot] Notebook support
#16731 opened
Mar 14, 2025 -
[red-knot] `ALL` rule selector
#16730 opened
Mar 14, 2025 -
[red-knot]: Hierarchical configuration
#16729 opened
Mar 14, 2025 -
[red-knot]: Support file inclusion and exclusion
#16728 opened
Mar 14, 2025 -
[red-knot] `terminal` configuration section
#16727 opened
Mar 14, 2025 -
[red-knot]: File-level configuration
#16726 opened
Mar 14, 2025 -
[red-knot] Consider allowing globs for `src.root` or `environment.extra-paths`
#16724 opened
Mar 14, 2025 -
Rule request: G: Require {} in log format
#16715 opened
Mar 13, 2025 -
Better diagnostics for `RUF039`
#16713 opened
Mar 13, 2025 -
Package not identified as first party when name has a dash
#16712 opened
Mar 13, 2025 -
Disallow str.split("\n") in favour of str.splitlines()
#16710 opened
Mar 13, 2025 -
PGH004: Check for missing colons in file-level suppression comments
#16706 opened
Mar 13, 2025 -
[red-knot] Return type checking for `Never`/`NoReturn`
#16700 opened
Mar 13, 2025 -
[red-knot] Infer `lambda` expression based on the surrounding context
#16696 opened
Mar 13, 2025 -
Ignoring `import-private-name` (`PLC2701`) for first party module imports
#16694 opened
Mar 13, 2025 -
Allow banned-api to detect re-exports
#16692 opened
Mar 12, 2025 -
[new-rule] Private module entities
#16691 opened
Mar 12, 2025 -
Consider adding a fix for `pytest-raises-ambiguous-pattern` (`RUF043`)
#16690 opened
Mar 12, 2025 -
Resolve `escape` and possibly auto-fix `unsafe-markup-use` (`S704`)
#16689 opened
Mar 12, 2025 -
False positives for `quoted-type-alias` (`TC008`)
#16688 opened
Mar 12, 2025 -
S3*: Rules now also report non-function calls
#16673 opened
Mar 12, 2025 -
[red-knot] special-case returning NotImplemented
#16661 opened
Mar 12, 2025 -
[red-knot] handle types inheriting Any in assignability
#16652 opened
Mar 11, 2025 -
[red-knot] support dataclasses
#16651 opened
Mar 11, 2025 -
[red-knot] support enums
#16650 opened
Mar 11, 2025 -
Unexpected space in docstring near escaped quote
#16640 opened
Mar 11, 2025 -
Add flake8-annoations argument called respect-type-ignore
#16630 opened
Mar 11, 2025 -
`ignore-one-line-docstrings` is not respected for `D401`
#16629 opened
Mar 11, 2025 -
`D417` only triggering when I have no `convention`
#16628 opened
Mar 11, 2025 -
Noise vscode error card every time I open a new window
#16623 opened
Mar 11, 2025 -
[red-knot] support properties
#16616 opened
Mar 10, 2025 -
[red-knot] support `super`
#16615 opened
Mar 10, 2025 -
[red-knot] support `py.typed` with `partial`
#16613 opened
Mar 10, 2025 -
[red-knot] support -stubs packages in module resolver
#16612 opened
Mar 10, 2025 -
Autofix non-contextmanager use of `pytest.raises` & friends
#16605 opened
Mar 10, 2025 -
[F811] Allow importing fixtures
#16602 opened
Mar 10, 2025 -
Allow `ruff analyze` to be run across a uv workspace packages
#16598 opened
Mar 10, 2025 -
Many fixes normalize string literals unnecessarily
#16579 opened
Mar 9, 2025 -
`E501` and `W505` compatibility?
#16577 opened
Mar 9, 2025 -
S324 false negatives for synonyms of insecure algorithm names
#16572 opened
Mar 8, 2025 -
Error trying to open the project in devcontainer in vscode
#16594 opened
Mar 8, 2025 -
`FURB140 `: `reimplemented-starmap` and static type analysis
#16570 opened
Mar 8, 2025 -
Rule proposal: `in-empty-collection`
#16569 opened
Mar 8, 2025 -
`useless-try-except (TRY203)` false negative?
#16561 opened
Mar 8, 2025 -
Partial unpacking in `return`, `yield`, and `for` before Python 3.9
#16560 opened
Mar 7, 2025 -
FURB164 fix does not consistently simplify expressions containing non-finite float strings
#16559 opened
Mar 7, 2025 -
D1** not detecting names made public via import/__all__ idiom
#16553 opened
Mar 7, 2025 -
mutable-dataclass-default (RUF008) not detecting mutable_default field
#16539 opened
Mar 6, 2025 -
F841 treats `except` bindings differently from all other bindings
#16537 opened
Mar 6, 2025 -
NamedTuple should be considered immutable (B008)
#16536 opened
Mar 6, 2025 -
Detect not executed iterators
#16528 opened
Mar 6, 2025 -
Flag starred expressions in `return` and `yield`
#16520 opened
Mar 5, 2025 -
TD003 error in regex or misleading error message
#16519 opened
Mar 5, 2025 -
[red-knot] Duplicate diagnostics in unpacking targets
#16514 opened
Mar 5, 2025 -
[red-knot] Check `__init__` arguments when doing `try_call` on a class literal
#16511 opened
Mar 5, 2025 -
Auto-fixes for PD `use-of` rules
#16508 opened
Mar 4, 2025 -
Prevent non-new-variable `for` loop targets
#16507 opened
Mar 4, 2025 -
[red-knot] tracking issue for diagnostic overhaul
#16504 opened
Mar 4, 2025 -
N806, N815, and N816 ignore case patterns
#16502 opened
Mar 4, 2025 -
`C416` triggers leads to `C409` bad preview behavior - false positive
#16500 opened
Mar 4, 2025 -
Server: Improve notification message for invalid config
#16497 opened
Mar 4, 2025 -
ruff-mutable-default (RUF008) not not catching mutable default passed to attrs.field.
#16495 opened
Mar 4, 2025 -
collections-named-tuple (PYI024): Documented fix is not equivalent
#16492 opened
Mar 4, 2025 -
TC004 diagnostics/docs should clarify that type hints can be executed at run-time
#16490 opened
Mar 4, 2025 -
outdated-version-block (UP036): Flag assignments (or any outdated `sys.version_info`)
#16487 opened
Mar 4, 2025 -
[red-knot] Verify file watching with windows UNC paths
#16474 opened
Mar 3, 2025 -
FURB116 has false positives and unsafe fixes
#16472 opened
Mar 3, 2025 -
FURB161 fix should be marked unsafe in some contexts
#16457 opened
Mar 2, 2025 -
Many fixes change behavior when applied in `case` patterns
#16453 opened
Mar 1, 2025 -
cached-instance-method (B019) for async_lru and aiocache
#16436 opened
Feb 28, 2025 -
Add test infrastructure for the language server
#16430 opened
Feb 28, 2025 -
Default Python version and version detection
#16418 opened
Feb 27, 2025 -
[`flake8-type-checking`] TC004 is too strict for SQLAlchemy's `Mapped`
#16412 opened
Feb 27, 2025 -
`pep484-style-positional-only-parameter` (`PYI063`) - false negative on `__new__` method
#16410 opened
Feb 27, 2025
104 Unresolved conversations
Sometimes conversations happen on old items that aren’t yet closed. Here is a list of all the Issues and Pull Requests with unresolved conversations.
-
[`refurb`] Add coverage for using set(...) in `single-item-membership-test` (`FURB171`)
#15793 commented on
Mar 17, 2025 • 3 new comments -
[ruff] Resolve type alias for annotations (RUF012)
#16210 commented on
Mar 3, 2025 • 1 new comment -
[red-knot] support type aliases (PEP 695, typing.TypeAlias, and bare/implicit)
#15384 commented on
Mar 22, 2025 • 0 new comments -
Rewrite `os.environ.get` as `os.getenv`
#3608 commented on
Mar 22, 2025 • 0 new comments -
Consider removing PD901
#7710 commented on
Mar 21, 2025 • 0 new comments -
Pyspark Linting Rules
#7272 commented on
Mar 21, 2025 • 0 new comments -
How to avoid checking for problems in VSCODE interactive
#14820 commented on
Mar 21, 2025 • 0 new comments -
[red-knot] Non-deferred self-references in annotations
#16341 commented on
Mar 20, 2025 • 0 new comments -
`D102` for "inherited" docstrings.
#2413 commented on
Mar 20, 2025 • 0 new comments -
Implement ANN402
#4460 commented on
Mar 20, 2025 • 0 new comments -
Add `--selector` option for `ruff rule`
#16030 commented on
Mar 20, 2025 • 0 new comments -
pyproject.toml in excluded subdir is not excluded when passed explicitly (=pre-commit)
#9585 commented on
Mar 19, 2025 • 0 new comments -
Feature request: numpydoc rules
#8425 commented on
Mar 19, 2025 • 0 new comments -
[red-knot] Improve memory usage
#15621 commented on
Mar 19, 2025 • 0 new comments -
Server setting to enable code actions / formatting on save
#11756 commented on
Mar 19, 2025 • 0 new comments -
Multi-file analysis
#7447 commented on
Mar 19, 2025 • 0 new comments -
`flake8-boolean-trap.extend-allowed-calls` don't resolve class types
#11264 commented on
Mar 19, 2025 • 0 new comments -
False-positive TCH002 for runtime-required type annotations
#14140 commented on
Mar 18, 2025 • 0 new comments -
Attempting to use `ruff check` with includes, but without specifying a directory, picks up nested projects
#9019 commented on
Mar 18, 2025 • 0 new comments -
[meta][feature] more of `isort`
#6190 commented on
Mar 17, 2025 • 0 new comments -
Support heading setting for isort
#6371 commented on
Mar 17, 2025 • 0 new comments -
Third-party namespace packages can be incorrectly considered first-party packages by `isort` rules
#12984 commented on
Mar 17, 2025 • 0 new comments -
UP032: detect more cases
#2031 commented on
Mar 16, 2025 • 0 new comments -
Relative import management
#1014 commented on
Mar 15, 2025 • 0 new comments -
Feature request: Allow Configurable Quote Styling for f-Strings in Python 3.12+
#14118 commented on
Mar 15, 2025 • 0 new comments -
[red-knot] simplify across intersections in a union
#15023 commented on
Mar 15, 2025 • 0 new comments -
[red-knot] complete expression type inference
#12701 commented on
Mar 15, 2025 • 0 new comments -
Fixes for unnecessary-dunder-call (PLC2801)
#16216 commented on
Mar 9, 2025 • 0 new comments -
New rule in flake8-tidy-imports for banning specific function calls
#16204 commented on
Mar 7, 2025 • 0 new comments -
[`flake8-comprehensions`] Report and fix even when there are multiple iterables (`C417`)
#15876 commented on
Mar 17, 2025 • 0 new comments -
[red-knot] Ensure that `bool | AlwaysFalsy` is considered equivalent to `Literal[True] | AlwaysFalsy`
#15784 commented on
Mar 14, 2025 • 0 new comments -
[`flake8-tidy-imports`] Allow banning global symbols (`TID251`)
#15736 commented on
Mar 6, 2025 • 0 new comments -
[`flake8-type-checking`] Allows TC001-004 to quote more expressions
#14787 commented on
Mar 18, 2025 • 0 new comments -
[`pydoclint`] Add `docstring-missing-parameter` and `docstring-extraneous-parameter` (`DOC101`, `DOC102`)
#13280 commented on
Mar 18, 2025 • 0 new comments -
isort: Don't infer namespace packages as first-party (only subpackages of namespace packages)
#12987 commented on
Mar 1, 2025 • 0 new comments -
Flag `B018` for strings and f-strings which aren't docstrings
#11302 commented on
Mar 14, 2025 • 0 new comments -
☂️ Syntax errors raised by the compiler
#11934 commented on
Mar 26, 2025 • 0 new comments -
C0103/N815: Constant names are not checked against UPPER_CASE naming convention
#2964 commented on
Mar 26, 2025 • 0 new comments -
[red-knot] Configuration
#15491 commented on
Mar 26, 2025 • 0 new comments -
[red-knot] instance attributes
#14164 commented on
Mar 26, 2025 • 0 new comments -
Airflow 3.0 deprecations
#14626 commented on
Mar 26, 2025 • 0 new comments -
Dependency Dashboard
#10578 commented on
Mar 26, 2025 • 0 new comments -
Cannot find ruff when used in a venv with --system-site-packages
#15630 commented on
Mar 25, 2025 • 0 new comments -
Implement Pylint
#970 commented on
Mar 25, 2025 • 0 new comments -
DTZ007 - arguably a false positive
#13359 commented on
Mar 25, 2025 • 0 new comments -
D417 Argument descriptions only required if there is an "Args" section
#2310 commented on
Mar 25, 2025 • 0 new comments -
[red-knot] support * imports
#14169 commented on
Mar 24, 2025 • 0 new comments -
Implement flake8-broken-line
#3465 commented on
Mar 24, 2025 • 0 new comments -
Request: Autofix for `redundant-numeric-union`/`PYI041` & `redundant-literal-union`/`PYI051`
#14185 commented on
Mar 24, 2025 • 0 new comments -
Rule to enforce import module only
#3045 commented on
Mar 24, 2025 • 0 new comments -
Seeking improved pytest rules, as `flake8-pytest-style` doesn't align with best practices
#8796 commented on
Mar 24, 2025 • 0 new comments -
[red-knot] Support callable types and `typing.Callable`
#15382 commented on
Mar 22, 2025 • 0 new comments -
Allow newlines after block open (or not)
#9745 commented on
Mar 5, 2025 • 0 new comments -
3.14 deferred evaluation of annotations
#15100 commented on
Mar 4, 2025 • 0 new comments -
Add support for Quarto notebooks
#6140 commented on
Mar 4, 2025 • 0 new comments -
Implement `flake8-cognitive-complexity`
#2418 commented on
Mar 4, 2025 • 0 new comments -
New lint rules for Strength Reduction optimizations
#14636 commented on
Mar 4, 2025 • 0 new comments -
RUF012 triggers many false positives (are they really? they are correct) in some projects
#5243 commented on
Mar 4, 2025 • 0 new comments -
UP036 multiple conditions false negative
#12093 commented on
Mar 4, 2025 • 0 new comments -
Formatter: `string_processing` preview style
#6936 commented on
Mar 4, 2025 • 0 new comments -
Add a rule-specific equivalent of the `--ignore-noqa` flag
#13341 commented on
Mar 3, 2025 • 0 new comments -
Server setting to run subset of rules for "Fix All" code action
#12709 commented on
Mar 3, 2025 • 0 new comments -
A001 and A003 should ignore variables like `__doc__`
#16373 commented on
Mar 3, 2025 • 0 new comments -
Add a new `configurationPreference` value `filesystemOnly`
#16209 commented on
Mar 3, 2025 • 0 new comments -
Investigate list parsing for possible performance improvement
#10847 commented on
Mar 3, 2025 • 0 new comments -
Add option to remove elements from default exclusion
#8627 commented on
Mar 2, 2025 • 0 new comments -
Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT
#7055 commented on
Mar 2, 2025 • 0 new comments -
[Feature Request] Add pre-commit rules.
#4073 commented on
Mar 2, 2025 • 0 new comments -
[red-knot] Bare `ClassVar` annotations
#15767 commented on
Mar 1, 2025 • 0 new comments -
RUF054 checks only the first form feed on a physical line
#16139 commented on
Mar 1, 2025 • 0 new comments -
[red-knot] Inconsistency between unbound and undeclared symbols
#14297 commented on
Feb 28, 2025 • 0 new comments -
Autofix for flake8-logging-format (G) rules
#15555 commented on
Feb 28, 2025 • 0 new comments -
B023 False positive when there is a list comprehension with the same variable name in a loop.
#15716 commented on
Feb 28, 2025 • 0 new comments -
ruff formatter: one call per line for chained method calls
#8598 commented on
Feb 28, 2025 • 0 new comments -
Logging which files were changed when running `ruff format .` ?
#8953 commented on
Feb 28, 2025 • 0 new comments -
Implement `pydoclint`
#12434 commented on
Feb 27, 2025 • 0 new comments -
Unified command for linting and formatting
#8232 commented on
Feb 27, 2025 • 0 new comments -
Allow configuration to be defined on a file-scoped basis
#7696 commented on
Feb 27, 2025 • 0 new comments -
Revisit unicode-to-unicode confusables in `RUF001`, `RUF002`, `RUF003`
#14433 commented on
Mar 15, 2025 • 0 new comments -
[red-knot] Path handling on non-case sensitive systems
#16400 commented on
Mar 14, 2025 • 0 new comments -
New Rule to rewrite `pathlib.Path().joinpath` with `/`
#4864 commented on
Mar 13, 2025 • 0 new comments -
red-knot panics found by the `py-fuzzer` fuzzer
#14737 commented on
Mar 13, 2025 • 0 new comments -
Rule S320 should be removed
#13707 commented on
Mar 12, 2025 • 0 new comments -
[red-knot] cyclic control flow for loops
#14160 commented on
Mar 12, 2025 • 0 new comments -
RUF045 added in Ruff 0.9.7 should ignore `ClassVar` fields
#16297 commented on
Mar 12, 2025 • 0 new comments -
[Feature request] Support Github output for `ruff format`
#10430 commented on
Mar 12, 2025 • 0 new comments -
Import detection and resolution via Python resolver for pylint
#9103 commented on
Mar 11, 2025 • 0 new comments -
New rule for str.join usage simplification
#15468 commented on
Mar 11, 2025 • 0 new comments -
Create rule to prefer class based syntax over functional syntax for Enums
#12417 commented on
Mar 11, 2025 • 0 new comments -
Support for refurb
#1348 commented on
Mar 11, 2025 • 0 new comments -
[red-knot] Consider `__all__` for re-export convention
#16159 commented on
Mar 10, 2025 • 0 new comments -
[red-knot] add `Type::SubclassOf` support to `Type::try_call`
#15948 commented on
Mar 10, 2025 • 0 new comments -
[red-knot] How should we handle unreachable code?
#15797 commented on
Mar 10, 2025 • 0 new comments -
Audit how we determine whether a file is a "Python source file"
#13691 commented on
Mar 10, 2025 • 0 new comments -
Include `.pyw` files by default
#13246 commented on
Mar 10, 2025 • 0 new comments -
RUF045 on dataclass method assignment
#16360 commented on
Mar 10, 2025 • 0 new comments -
☂️ Error recovery improvements for the new parser
#10653 commented on
Mar 8, 2025 • 0 new comments -
[Proposal] Mirror isort's float-to-top feature to autofix simple cases of E402
#6514 commented on
Mar 7, 2025 • 0 new comments -
F841 "Undefined name" false positive in exception-nested-closure
#6878 commented on
Mar 7, 2025 • 0 new comments -
[red-knot] support @typing.overload and overloaded callable types
#15383 commented on
Mar 7, 2025 • 0 new comments -
Apply `ruff` to `markdown` code blocks
#3792 commented on
Mar 7, 2025 • 0 new comments -
C409 now makes code slower
#12912 commented on
Mar 7, 2025 • 0 new comments -
[red-knot] generic classes
#14163 commented on
Mar 6, 2025 • 0 new comments -
[red-knot] generic functions
#14162 commented on
Mar 6, 2025 • 0 new comments