Skip to content

unused-function-argument not silenced by prefixed underscore if variable name is "ๆฌก"ย #28721

Closed

Description

@hunterhogan

Summary

In a lambda function or a FunctionDef, a "variable is intentionally defined-but-not-used [and] ... prefixed with an underscore," but Ruff emits unused-lambda-argument (ARG005) or unused-function-argument (ARG001).

The variable name is ๆฌก. If I change the name to ci or a, the underscore prevents the diagnostic emission.

from operator import sub

from fraction import Fraction


def difference(previous: tuple[Fraction, ...], _ๆฌก: int) -> tuple[Fraction, ...]:
    return tuple(map(sub, previous[1:], previous[:-1]))

q = lambda previous, _ๆฌก: tuple(map(sub, previous[1:], previous[:-1]))

def differenceLatin(previous: tuple[Fraction, ...], _ci: int) -> tuple[Fraction, ...]:
    return tuple(map(sub, previous[1:], previous[:-1]))

qLatin = lambda previous, _ci: tuple(map(sub, previous[1:], previous[:-1]))
preview = false
builtins = []
target-version = "py310"
line-length = 88
indent-width = 4

[lint]
allowed-confusables = []
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
extend-select = []
extend-fixable = []
external = []
ignore = []
select = [ "ARG", "ASYNC100", "ASYNC105", "ASYNC115", "ASYNC116", "ASYNC210", "ASYNC220", "ASYNC221", "ASYNC222", "ASYNC230", "ASYNC251", "B002", "B003", "B004", "B005", "B006", "B008", "B009", "B010", "B012", "B013", "B014", "B015", "B016", "B017", "B018", "B019", "B020", "B021", "B022", "B023", "B025", "B026", "B029", "B030", "B031", "B032", "B033", "B035", "B039", "BLE001", "C400", "C401", "C402", "C403", "C404", "C405", "C406", "C408", "C409", "C410", "C411", "C413", "C414", "C415", "C417", "C418", "C419", "D419", "DTZ001", "DTZ002", "DTZ003", "DTZ004", "DTZ005", "DTZ006", "DTZ007", "DTZ011", "DTZ012", "DTZ901", "E722", "E902", "EXE001", "EXE002", "EXE004", "EXE005", "F401", "F402", "F404", "F407", "F501", "F502", "F503", "F504", "F505", "F506", "F507", "F508", "F509", "F521", "F522", "F523", "F524", "F525", "F541", "F601", "F602", "F621", "F622", "F631", "F632", "F633", "F634", "F701", "F702", "F704", "F706", "F707", "F811", "F821", "F822", "F823", "F841", "F842", "F901", "FA100", "FA102", "FLY002", "FURB105", "FURB122", "FURB129", "FURB132", "FURB136", "FURB157", "FURB161", "FURB162", "FURB163", "FURB166", "FURB167", "FURB168", "FURB169", "FURB177", "FURB181", "FURB188", "FURB192", "G010", "G101", "G201", "G202", "I001", "INT001", "INT002", "INT003", "ISC004", "LOG001", "LOG002", "LOG009", "LOG014", "LOG015", "N999", "PERF101", "PERF102", "PERF402", "PGH005", "PIE790", "PIE794", "PIE796", "PIE800", "PIE804", "PIE807", "PIE808", "PIE810", "PLC0105", "PLC0131", "PLC0132", "PLC0205", "PLC0206", "PLC0208", "PLC0414", "PLC3002", "PLE0100", "PLE0101", "PLE0115", "PLE0116", "PLE0117", "PLE0118", "PLE0303", "PLE0304", "PLE0305", "PLE0307", "PLE0308", "PLE0309", "PLE0604", "PLE0605", "PLE0643", "PLE0704", "PLE1132", "PLE1142", "PLE1205", "PLE1206", "PLE1300", "PLE1307", "PLE1310", "PLE1507", "PLE1519", "PLE1520", "PLE1700", "PLE2502", "PLE2510", "PLE2512", "PLE2513", "PLE2514", "PLE2515", "PLR0124", "PLR0133", "PLR0206", "PLR0402", "PLR1704", "PLR1708", "PLR1711", "PLR1716", "PLR1722", "PLR1730", "PLR1733", "PLR1736", "PLR2044", "PLW0120", "PLW0127", "PLW0128", "PLW0129", "PLW0131", "PLW0133", "PLW0177", "PLW0211", "PLW0245", "PLW0406", "PLW0602", "PLW0604", "PLW0642", "PLW0711", "PLW1501", "PLW1507", "PLW1508", "PLW1509", "PLW1510", "PLW2101", "PT010", "PT014", "PT020", "PT025", "PT026", "PT031", "PTH124", "PTH210", "PYI001", "PYI002", "PYI003", "PYI004", "PYI005", "PYI006", "PYI007", "PYI008", "PYI009", "PYI010", "PYI012", "PYI013", "PYI015", "PYI016", "PYI017", "PYI018", "PYI019", "PYI020", "PYI025", "PYI026", "PYI029", "PYI030", "PYI032", "PYI033", "PYI034", "PYI035", "PYI036", "PYI041", "PYI042", "PYI043", "PYI044", "PYI045", "PYI046", "PYI047", "PYI048", "PYI049", "PYI050", "PYI052", "PYI055", "PYI057", "PYI058", "PYI059", "PYI061", "PYI062", "PYI063", "PYI064", "PYI066", "RET501", "RUF007", "RUF008", "RUF009", "RUF010", "RUF012", "RUF013", "RUF015", "RUF016", "RUF017", "RUF018", "RUF019", "RUF020", "RUF022", "RUF023", "RUF024", "RUF026", "RUF028", "RUF030", "RUF032", "RUF033", "RUF034", "RUF040", "RUF041", "RUF046", "RUF048", "RUF049", "RUF051", "RUF053", "RUF057", "RUF058", "RUF059", "RUF063", "RUF068", "RUF100", "RUF101", "RUF200", "S102", "S110", "S112", "SIM101", "SIM102", "SIM103", "SIM107", "SIM113", "SIM114", "SIM115", "SIM117", "SIM118", "SIM201", "SIM202", "SIM208", "SIM210", "SIM211", "SIM220", "SIM221", "SIM222", "SIM223", "SIM401", "SIM905", "SIM911", "T100", "TC004", "TC005", "TC007", "TC010", "TRY002", "TRY004", "TRY201", "TRY203", "TRY401", "UP001", "UP003", "UP004", "UP005", "UP006", "UP007", "UP008", "UP009", "UP010", "UP011", "UP012", "UP014", "UP017", "UP018", "UP019", "UP020", "UP021", "UP022", "UP023", "UP024", "UP025", "UP026", "UP028", "UP029", "UP030", "UP031", "UP032", "UP033", "UP034", "UP035", "UP036", "UP037", "UP039", "UP040", "UP041", "UP043", "UP044", "UP045", "UP046", "UP047", "UP049", "UP050", "W605", "YTT101", "YTT102", "YTT103", "YTT201", "YTT202", "YTT203", "YTT204", "YTT301", "YTT302", "YTT303" ]

[format]
indent-style = "space"
quote-style = "double"

Playground

Version

ruff 0.16.8 (62914c4 2026-09-16)

Activity

  1. added
    bugAn issue describing something that isn't working, or a PR that fixes a bug
    ruleImplementing or modifying a lint rule
    on Sep 19, 2026
  2. MichaReiser commented on Sep 19, 2026

    @MichaReiser
    Member

    The issue is that our default Regex only matches ASCII identifiers

  3. added a commit that references this issue on Sep 22, 2026
    318f696
  4. AlexWaygood commented on Sep 22, 2026

    @AlexWaygood
    Member

    fixed in #28722

  5. added 3 commits that reference this issue on Sep 25, 2026
    519ac57
    7e3f53c
    a37c6c9
  6. added 2 commits that reference this issue on Oct 9, 2026
    9b5d790
    4776a20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAn issue describing something that isn't working, or a PR that fixes a bugruleImplementing or modifying a lint rule

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions