{
  "name": "ruff",
  "description": "Ruff: An extremely fast Python linter",
  "options": [
    {
      "names": [
        "-v",
        "--verbose"
      ],
      "description": "Enable verbose logging",
      "isPersistent": true
    },
    {
      "names": [
        "-q",
        "--quiet"
      ],
      "description": "Print diagnostics, but nothing else",
      "isPersistent": true
    },
    {
      "names": [
        "-s",
        "--silent"
      ],
      "description": "Disable all logging (but still exit with status code \"1\" upon detecting diagnostics)",
      "isPersistent": true
    },
    {
      "names": [
        "--config"
      ],
      "description": "Path to the `pyproject.toml` or `ruff.toml` file to use for configuration",
      "isPersistent": true,
      "args": [
        {
          "name": "config",
          "isOptional": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--isolated"
      ],
      "description": "Ignore all configuration files",
      "isPersistent": true
    },
    {
      "names": [
        "--help"
      ],
      "description": "Print help",
      "isPersistent": true
    }
  ],
  "subcommands": [
    {
      "name": "check",
      "description": "Run Ruff on the given files or directories",
      "options": [
        {
          "names": [
            "--fix"
          ],
          "description": "Apply fixes to resolve lint violations"
        },
        {
          "names": [
            "--unsafe-fixes"
          ],
          "description": "Include fixes that may not retain the original intent of the code"
        },
        {
          "names": [
            "--show-fixes"
          ],
          "description": "Show an enumeration of all fixed lint violations"
        },
        {
          "names": [
            "--diff"
          ],
          "description": "Avoid writing any fixed files back; instead, output a diff for each changed file to stdout, and exit 0 if there are no diffs. Implies `--fix-only`"
        },
        {
          "names": [
            "-w",
            "--watch"
          ],
          "description": "Run in watch mode by re-running whenever files change"
        },
        {
          "names": [
            "--fix-only"
          ],
          "description": "Apply fixes to resolve lint violations, but don't report on, or exit non-zero for, leftover violations. Implies `--fix`"
        },
        {
          "names": [
            "--ignore-noqa"
          ],
          "description": "Ignore any `# noqa` comments"
        },
        {
          "names": [
            "--output-format"
          ],
          "description": "Output serialization format for violations. The default serialization format is 'full'",
          "args": [
            {
              "name": "output_format",
              "isOptional": true,
              "suggestions": [
                "concise",
                "full",
                "json",
                "json-lines",
                "junit",
                "grouped",
                "github",
                "gitlab",
                "pylint",
                "rdjson",
                "azure",
                "sarif"
              ]
            }
          ]
        },
        {
          "names": [
            "-o",
            "--output-file"
          ],
          "description": "Specify file to write the linter output to (default: stdout)",
          "args": [
            {
              "name": "output_file",
              "isOptional": true,
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--target-version"
          ],
          "description": "The minimum Python version that should be supported",
          "args": [
            {
              "name": "target_version",
              "isOptional": true,
              "suggestions": [
                "py37",
                "py38",
                "py39",
                "py310",
                "py311",
                "py312",
                "py313"
              ]
            }
          ]
        },
        {
          "names": [
            "--preview"
          ],
          "description": "Enable preview mode; checks will include unstable rules and fixes"
        },
        {
          "names": [
            "--extension"
          ],
          "description": "List of mappings from file extension to language (one of `python`, `ipynb`, `pyi`). For example, to treat `.ipy` files as IPython notebooks, use `--extension ipy:ipynb`",
          "args": [
            {
              "name": "extension",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--statistics"
          ],
          "description": "Show counts for every rule with at least one violation"
        },
        {
          "names": [
            "--add-noqa"
          ],
          "description": "Enable automatic additions of `noqa` directives to failing lines"
        },
        {
          "names": [
            "--show-files"
          ],
          "description": "See the files Ruff will be run against with the current settings"
        },
        {
          "names": [
            "--show-settings"
          ],
          "description": "See the settings Ruff will use to lint a given Python file"
        },
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print help"
        },
        {
          "names": [
            "--select"
          ],
          "description": "Comma-separated list of rule codes to enable (or ALL, to enable all rules)",
          "args": [
            {
              "name": "select",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--ignore"
          ],
          "description": "Comma-separated list of rule codes to disable",
          "args": [
            {
              "name": "ignore",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--extend-select"
          ],
          "description": "Like --select, but adds additional rule codes on top of the selected ones",
          "args": [
            {
              "name": "extend_select",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--per-file-ignores"
          ],
          "description": "List of mappings from file pattern to code to exclude",
          "args": [
            {
              "name": "per_file_ignores",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--extend-per-file-ignores"
          ],
          "description": "Like `--per-file-ignores`, but adds additional ignores on top of those already specified",
          "args": [
            {
              "name": "extend_per_file_ignores",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--fixable"
          ],
          "description": "List of rule codes to treat as eligible for fix. Only applicable when fix itself is enabled (e.g., via `--fix`)",
          "args": [
            {
              "name": "fixable",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--unfixable"
          ],
          "description": "List of rule codes to treat as ineligible for fix. Only applicable when fix itself is enabled (e.g., via `--fix`)",
          "args": [
            {
              "name": "unfixable",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--extend-fixable"
          ],
          "description": "Like --fixable, but adds additional rule codes on top of those already specified",
          "args": [
            {
              "name": "extend_fixable",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "List of paths, used to omit files and/or directories from analysis",
          "args": [
            {
              "name": "exclude",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--extend-exclude"
          ],
          "description": "Like --exclude, but adds additional files and directories on top of those already excluded",
          "args": [
            {
              "name": "extend_exclude",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--respect-gitignore"
          ],
          "description": "Respect file exclusions via `.gitignore` and other standard ignore files"
        },
        {
          "names": [
            "--force-exclude"
          ],
          "description": "Enforce exclusions, even for paths passed to Ruff directly on the command-line"
        },
        {
          "names": [
            "-n",
            "--no-cache"
          ],
          "description": "Disable cache reads"
        },
        {
          "names": [
            "--cache-dir"
          ],
          "description": "Path to the cache directory",
          "args": [
            {
              "name": "cache_dir",
              "isOptional": true,
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--stdin-filename"
          ],
          "description": "The name of the file when passing it through stdin",
          "args": [
            {
              "name": "stdin_filename",
              "isOptional": true,
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "-e",
            "--exit-zero"
          ],
          "description": "Exit with status code \"0\", even upon detecting lint violations"
        },
        {
          "names": [
            "--exit-non-zero-on-fix"
          ],
          "description": "Exit with a non-zero status code if any files were modified via fix, even if no lint violations remain"
        }
      ],
      "args": [
        {
          "name": "Path",
          "description": "The path to use for the project/script",
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "rule",
      "description": "Explain a rule (or all rules)",
      "options": [
        {
          "names": [
            "--all"
          ],
          "description": "Explain all rules"
        },
        {
          "names": [
            "--output-format"
          ],
          "description": "Output format [default: text]",
          "args": [
            {
              "name": "output-format",
              "suggestions": [
                "text",
                "json"
              ]
            }
          ]
        }
      ],
      "args": [
        {
          "name": "rule",
          "description": "Rule(s) to explain",
          "suggestions": [
            "F401",
            "F402",
            "F403",
            "F404",
            "F405",
            "F406",
            "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",
            "F722",
            "F811",
            "F821",
            "F822",
            "F823",
            "F841",
            "F842",
            "F901",
            "E101",
            "E111",
            "E112",
            "E113",
            "E114",
            "E115",
            "E116",
            "E117",
            "E201",
            "E202",
            "E203",
            "E204",
            "E211",
            "E221",
            "E222",
            "E223",
            "E224",
            "E225",
            "E226",
            "E227",
            "E228",
            "E231",
            "E241",
            "E242",
            "E251",
            "E252",
            "E261",
            "E262",
            "E265",
            "E266",
            "E271",
            "E272",
            "E273",
            "E274",
            "E275",
            "E301",
            "E302",
            "E303",
            "E304",
            "E305",
            "E306",
            "E401",
            "E402",
            "E501",
            "E502",
            "E701",
            "E702",
            "E703",
            "E711",
            "E712",
            "E713",
            "E714",
            "E721",
            "E722",
            "E731",
            "E741",
            "E742",
            "E743",
            "E902",
            "W191",
            "W291",
            "W292",
            "W293",
            "W391",
            "W505",
            "W605",
            "C901",
            "N801",
            "N802",
            "N803",
            "N804",
            "N805",
            "N806",
            "N807",
            "N811",
            "N812",
            "N813",
            "N814",
            "N815",
            "N816",
            "N817",
            "N818",
            "N999",
            "D100",
            "D101",
            "D102",
            "D103",
            "D104",
            "D105",
            "D106",
            "D107",
            "D200",
            "D201",
            "D202",
            "D203",
            "D204",
            "D205",
            "D206",
            "D207",
            "D208",
            "D209",
            "D210",
            "D211",
            "D212",
            "D213",
            "D214",
            "D215",
            "D300",
            "D301",
            "D400",
            "D401",
            "D402",
            "D403",
            "D404",
            "D405",
            "D406",
            "D407",
            "D408",
            "D409",
            "D410",
            "D411",
            "D412",
            "D413",
            "D414",
            "D415",
            "D416",
            "D417",
            "D418",
            "D419",
            "I001",
            "I002",
            "UP001",
            "UP003",
            "UP004",
            "UP005",
            "UP006",
            "UP007",
            "UP008",
            "UP009",
            "UP010",
            "UP011",
            "UP012",
            "UP013",
            "UP014",
            "UP015",
            "UP017",
            "UP018",
            "UP019",
            "UP020",
            "UP021",
            "UP022",
            "UP023",
            "UP024",
            "UP025",
            "UP026",
            "UP027",
            "UP028",
            "UP029",
            "UP030",
            "UP031",
            "UP032",
            "UP033",
            "UP034",
            "UP035",
            "UP036",
            "UP037",
            "UP038",
            "UP039",
            "UP040",
            "UP041",
            "UP042",
            "UP043",
            "UP044",
            "YTT101",
            "YTT102",
            "YTT103",
            "YTT201",
            "YTT202",
            "YTT203",
            "YTT204",
            "YTT301",
            "YTT302",
            "YTT303",
            "ANN001",
            "ANN002",
            "ANN003",
            "ANN201",
            "ANN202",
            "ANN204",
            "ANN205",
            "ANN206",
            "ANN401",
            "ASYNC100",
            "ASYNC105",
            "ASYNC109",
            "ASYNC110",
            "ASYNC115",
            "ASYNC116",
            "ASYNC210",
            "ASYNC220",
            "ASYNC221",
            "ASYNC222",
            "ASYNC230",
            "ASYNC251",
            "S101",
            "S102",
            "S103",
            "S104",
            "S105",
            "S106",
            "S107",
            "S108",
            "S110",
            "S112",
            "S113",
            "S201",
            "S202",
            "S301",
            "S302",
            "S303",
            "S304",
            "S305",
            "S306",
            "S307",
            "S308",
            "S310",
            "S311",
            "S312",
            "S313",
            "S314",
            "S315",
            "S316",
            "S317",
            "S318",
            "S319",
            "S320",
            "S321",
            "S323",
            "S324",
            "S401",
            "S402",
            "S403",
            "S404",
            "S405",
            "S406",
            "S407",
            "S408",
            "S409",
            "S410",
            "S411",
            "S412",
            "S413",
            "S415",
            "S501",
            "S502",
            "S503",
            "S504",
            "S505",
            "S506",
            "S507",
            "S508",
            "S509",
            "S601",
            "S602",
            "S603",
            "S604",
            "S605",
            "S606",
            "S607",
            "S608",
            "S609",
            "S610",
            "S611",
            "S612",
            "S701",
            "S702",
            "BLE001",
            "B002",
            "B003",
            "B004",
            "B005",
            "B006",
            "B007",
            "B008",
            "B009",
            "B010",
            "B011",
            "B012",
            "B013",
            "B014",
            "B015",
            "B016",
            "B017",
            "B018",
            "B019",
            "B020",
            "B021",
            "B022",
            "B023",
            "B024",
            "B025",
            "B026",
            "B027",
            "B028",
            "B029",
            "B030",
            "B031",
            "B032",
            "B033",
            "B034",
            "B035",
            "B039",
            "B901",
            "B904",
            "B905",
            "B909",
            "FBT001",
            "FBT002",
            "FBT003",
            "A001",
            "A002",
            "A003",
            "A004",
            "A005",
            "A006",
            "COM812",
            "COM818",
            "COM819",
            "CPY001",
            "C400",
            "C401",
            "C402",
            "C403",
            "C404",
            "C405",
            "C406",
            "C408",
            "C409",
            "C410",
            "C411",
            "C413",
            "C414",
            "C415",
            "C416",
            "C417",
            "C418",
            "C419",
            "C420",
            "DTZ001",
            "DTZ002",
            "DTZ003",
            "DTZ004",
            "DTZ005",
            "DTZ006",
            "DTZ007",
            "DTZ011",
            "DTZ012",
            "DTZ901",
            "DJ001",
            "DJ003",
            "DJ006",
            "DJ007",
            "DJ008",
            "DJ012",
            "DJ013",
            "EM101",
            "EM102",
            "EM103",
            "EXE001",
            "EXE002",
            "EXE003",
            "EXE004",
            "EXE005",
            "FA100",
            "FA102",
            "ISC001",
            "ISC002",
            "ISC003",
            "ICN001",
            "ICN002",
            "ICN003",
            "LOG001",
            "LOG002",
            "LOG007",
            "LOG009",
            "LOG015",
            "G001",
            "G002",
            "G003",
            "G004",
            "G010",
            "G101",
            "G201",
            "G202",
            "INP001",
            "PIE790",
            "PIE794",
            "PIE796",
            "PIE800",
            "PIE804",
            "PIE807",
            "PIE808",
            "PIE810",
            "T201",
            "T203",
            "PYI001",
            "PYI002",
            "PYI003",
            "PYI004",
            "PYI005",
            "PYI006",
            "PYI007",
            "PYI008",
            "PYI009",
            "PYI010",
            "PYI011",
            "PYI012",
            "PYI013",
            "PYI014",
            "PYI015",
            "PYI016",
            "PYI017",
            "PYI018",
            "PYI019",
            "PYI020",
            "PYI021",
            "PYI024",
            "PYI025",
            "PYI026",
            "PYI029",
            "PYI030",
            "PYI032",
            "PYI033",
            "PYI034",
            "PYI035",
            "PYI036",
            "PYI041",
            "PYI042",
            "PYI043",
            "PYI044",
            "PYI045",
            "PYI046",
            "PYI047",
            "PYI048",
            "PYI049",
            "PYI050",
            "PYI051",
            "PYI052",
            "PYI053",
            "PYI054",
            "PYI055",
            "PYI056",
            "PYI057",
            "PYI058",
            "PYI059",
            "PYI061",
            "PYI062",
            "PYI063",
            "PYI064",
            "PYI066",
            "PT001",
            "PT002",
            "PT003",
            "PT004",
            "PT005",
            "PT006",
            "PT007",
            "PT008",
            "PT009",
            "PT010",
            "PT011",
            "PT012",
            "PT013",
            "PT014",
            "PT015",
            "PT016",
            "PT017",
            "PT018",
            "PT019",
            "PT020",
            "PT021",
            "PT022",
            "PT023",
            "PT024",
            "PT025",
            "PT026",
            "PT027",
            "Q000",
            "Q001",
            "Q002",
            "Q003",
            "Q004",
            "RSE102",
            "RET501",
            "RET502",
            "RET503",
            "RET504",
            "RET505",
            "RET506",
            "RET507",
            "RET508",
            "SLF001",
            "SLOT000",
            "SLOT001",
            "SLOT002",
            "SIM101",
            "SIM102",
            "SIM103",
            "SIM105",
            "SIM107",
            "SIM108",
            "SIM109",
            "SIM110",
            "SIM112",
            "SIM113",
            "SIM114",
            "SIM115",
            "SIM116",
            "SIM117",
            "SIM118",
            "SIM201",
            "SIM202",
            "SIM208",
            "SIM210",
            "SIM211",
            "SIM212",
            "SIM220",
            "SIM221",
            "SIM222",
            "SIM223",
            "SIM300",
            "SIM401",
            "SIM905",
            "SIM910",
            "SIM911",
            "TID251",
            "TID252",
            "TID253",
            "TC001",
            "TC002",
            "TC003",
            "TC004",
            "TC005",
            "TC006",
            "TC007",
            "TC008",
            "TC010",
            "INT001",
            "INT002",
            "INT003",
            "ARG001",
            "ARG002",
            "ARG003",
            "ARG004",
            "ARG005",
            "PTH100",
            "PTH101",
            "PTH102",
            "PTH103",
            "PTH104",
            "PTH105",
            "PTH106",
            "PTH107",
            "PTH108",
            "PTH109",
            "PTH110",
            "PTH111",
            "PTH112",
            "PTH113",
            "PTH114",
            "PTH115",
            "PTH116",
            "PTH117",
            "PTH118",
            "PTH119",
            "PTH120",
            "PTH121",
            "PTH122",
            "PTH123",
            "PTH124",
            "PTH201",
            "PTH202",
            "PTH203",
            "PTH204",
            "PTH205",
            "PTH206",
            "PTH207",
            "PTH208",
            "TD001",
            "TD002",
            "TD003",
            "TD004",
            "TD005",
            "TD006",
            "TD007",
            "FIX001",
            "FIX002",
            "FIX003",
            "FIX004",
            "ERA001",
            "PD002",
            "PD003",
            "PD004",
            "PD007",
            "PD008",
            "PD009",
            "PD010",
            "PD011",
            "PD012",
            "PD013",
            "PD015",
            "PD101",
            "PD901",
            "PGH001",
            "PGH002",
            "PGH003",
            "PGH004",
            "PGH005",
            "PLC0105",
            "PLC0131",
            "PLC0132",
            "PLC0205",
            "PLC0206",
            "PLC0208",
            "PLC0414",
            "PLC0415",
            "PLC1802",
            "PLC1901",
            "PLC2401",
            "PLC2403",
            "PLC2701",
            "PLC2801",
            "PLC3002",
            "PLE0100",
            "PLE0101",
            "PLE0115",
            "PLE0116",
            "PLE0117",
            "PLE0118",
            "PLE0237",
            "PLE0241",
            "PLE0302",
            "PLE0303",
            "PLE0304",
            "PLE0305",
            "PLE0307",
            "PLE0308",
            "PLE0309",
            "PLE0604",
            "PLE0605",
            "PLE0643",
            "PLE0704",
            "PLE1132",
            "PLE1141",
            "PLE1142",
            "PLE1205",
            "PLE1206",
            "PLE1300",
            "PLE1307",
            "PLE1310",
            "PLE1507",
            "PLE1519",
            "PLE1520",
            "PLE1700",
            "PLE2502",
            "PLE2510",
            "PLE2512",
            "PLE2513",
            "PLE2514",
            "PLE2515",
            "PLE4703",
            "PLR0124",
            "PLR0133",
            "PLR0202",
            "PLR0203",
            "PLR0206",
            "PLR0402",
            "PLR0904",
            "PLR0911",
            "PLR0912",
            "PLR0913",
            "PLR0914",
            "PLR0915",
            "PLR0916",
            "PLR0917",
            "PLR1701",
            "PLR1702",
            "PLR1704",
            "PLR1706",
            "PLR1711",
            "PLR1714",
            "PLR1716",
            "PLR1722",
            "PLR1730",
            "PLR1733",
            "PLR1736",
            "PLR2004",
            "PLR2044",
            "PLR5501",
            "PLR6104",
            "PLR6201",
            "PLR6301",
            "PLW0108",
            "PLW0120",
            "PLW0127",
            "PLW0128",
            "PLW0129",
            "PLW0131",
            "PLW0133",
            "PLW0177",
            "PLW0211",
            "PLW0245",
            "PLW0406",
            "PLW0602",
            "PLW0603",
            "PLW0604",
            "PLW0642",
            "PLW0711",
            "PLW1501",
            "PLW1507",
            "PLW1508",
            "PLW1509",
            "PLW1510",
            "PLW1514",
            "PLW1641",
            "PLW2101",
            "PLW2901",
            "PLW3201",
            "PLW3301",
            "TRY002",
            "TRY003",
            "TRY004",
            "TRY200",
            "TRY201",
            "TRY203",
            "TRY300",
            "TRY301",
            "TRY400",
            "TRY401",
            "FLY002",
            "NPY001",
            "NPY002",
            "NPY003",
            "NPY201",
            "FAST001",
            "FAST002",
            "FAST003",
            "AIR001",
            "AIR301",
            "AIR302",
            "PERF101",
            "PERF102",
            "PERF203",
            "PERF401",
            "PERF402",
            "PERF403",
            "FURB101",
            "FURB103",
            "FURB105",
            "FURB110",
            "FURB113",
            "FURB116",
            "FURB118",
            "FURB129",
            "FURB131",
            "FURB132",
            "FURB136",
            "FURB140",
            "FURB142",
            "FURB145",
            "FURB148",
            "FURB152",
            "FURB154",
            "FURB156",
            "FURB157",
            "FURB161",
            "FURB163",
            "FURB164",
            "FURB166",
            "FURB167",
            "FURB168",
            "FURB169",
            "FURB171",
            "FURB177",
            "FURB180",
            "FURB181",
            "FURB187",
            "FURB188",
            "FURB189",
            "FURB192",
            "DOC201",
            "DOC202",
            "DOC402",
            "DOC403",
            "DOC501",
            "DOC502",
            "RUF001",
            "RUF002",
            "RUF003",
            "RUF005",
            "RUF006",
            "RUF007",
            "RUF008",
            "RUF009",
            "RUF010",
            "RUF011",
            "RUF012",
            "RUF013",
            "RUF015",
            "RUF016",
            "RUF017",
            "RUF018",
            "RUF019",
            "RUF020",
            "RUF021",
            "RUF022",
            "RUF023",
            "RUF024",
            "RUF026",
            "RUF027",
            "RUF028",
            "RUF029",
            "RUF030",
            "RUF031",
            "RUF032",
            "RUF033",
            "RUF034",
            "RUF035",
            "RUF036",
            "RUF038",
            "RUF039",
            "RUF040",
            "RUF041",
            "RUF046",
            "RUF048",
            "RUF052",
            "RUF055",
            "RUF100",
            "RUF101",
            "RUF200",
            "--all"
          ]
        }
      ]
    },
    {
      "name": "config",
      "description": "List or describe the available configuration options",
      "options": [
        {
          "names": [
            "--output-format"
          ],
          "description": "Output format [default: text]",
          "args": [
            {
              "name": "output-format",
              "suggestions": [
                "text",
                "json"
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "linter",
      "description": "List all supported upstream linters",
      "options": [
        {
          "names": [
            "--output-format"
          ],
          "description": "Output format",
          "args": [
            {
              "name": "output-format",
              "suggestions": [
                "text",
                "json"
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "clean",
      "description": "Clear any caches in the current directory and any subdirectories"
    },
    {
      "name": "format",
      "description": "Run the Ruff formatter on the given files or directories",
      "options": [
        {
          "names": [
            "--check"
          ],
          "description": "Avoid writing any formatted files back; instead, exit with a non-zero status code if any files would have been modified, and zero otherwise"
        },
        {
          "names": [
            "--diff"
          ],
          "description": "Avoid writing any formatted files back; instead, exit with a non-zero status code and the difference between the current file and how the formatted file would look like"
        },
        {
          "names": [
            "--extension"
          ],
          "description": "List of mappings from file extension to language (one of `python`, `ipynb`, `pyi`). For example, to treat `.ipy` files as IPython notebooks, use `--extension ipy:ipynb`",
          "args": [
            {
              "name": "extension",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--target-version"
          ],
          "description": "The minimum Python version that should be supported",
          "args": [
            {
              "name": "target_version",
              "isOptional": true,
              "suggestions": [
                "py37",
                "py38",
                "py39",
                "py310",
                "py311",
                "py312",
                "py313"
              ]
            }
          ]
        },
        {
          "names": [
            "--preview"
          ],
          "description": "Enable preview mode; enables unstable formatting. Use `--no-preview` to disable"
        },
        {
          "names": [
            "-n",
            "--no-cache"
          ],
          "description": "Disable cache reads (env: RUFF_NO_CACHE=)"
        },
        {
          "names": [
            "--cache-dir"
          ],
          "description": "Path to the cache directory (env: RUFF_CACHE_DIR=)",
          "args": [
            {
              "name": "cache_dir",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--stdin-filename"
          ],
          "description": "The name of the file when passing it through stdin",
          "args": [
            {
              "name": "stdin_filename",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--respect-gitignore"
          ],
          "description": "Respect file exclusions via `.gitignore` and other standard ignore files"
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "List of paths, used to omit files and/or directories from analysis",
          "args": [
            {
              "name": "exclude",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--force-exclude"
          ],
          "description": "Enforce exclusions, even for paths passed to Ruff directly on the command-line"
        },
        {
          "names": [
            "--line-length"
          ],
          "description": "Set the line-length",
          "args": [
            {
              "name": "line_length",
              "isOptional": true
            }
          ]
        },
        {
          "names": [
            "--range"
          ],
          "description": "When specified, Ruff will try to only format the code in the given range",
          "args": [
            {
              "name": "range",
              "isOptional": true
            }
          ]
        }
      ],
      "args": [
        {
          "name": "Path",
          "description": "List of files or directories to format [default: .]",
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "server",
      "description": "Run the language server",
      "options": [
        {
          "names": [
            "--preview"
          ],
          "description": "Enable preview mode. Use `--no-preview` to disable"
        },
        {
          "names": [
            "--no-preview"
          ],
          "description": "Disable preview mode"
        }
      ]
    },
    {
      "name": "analyze",
      "description": "Run analysis over Python source code",
      "subcommands": [
        {
          "name": "graph",
          "description": "Generate a map of Python file dependencies or dependents",
          "options": [
            {
              "names": [
                "--direction"
              ],
              "description": "The direction of the import map. By default, generates a dependency map, i.e., a map from file to files that it depends on. Use `--direction dependents` to generate a map from file to files that depend on it",
              "args": [
                {
                  "name": "DIRECTION",
                  "suggestions": [
                    "dependencies",
                    "dependents"
                  ]
                }
              ]
            },
            {
              "names": [
                "--detect-string-imports"
              ],
              "description": "Attempt to detect imports from string literals"
            },
            {
              "names": [
                "--preview"
              ],
              "description": "Enable preview mode. Use `--no-preview` to disable"
            },
            {
              "names": [
                "--no-preview"
              ],
              "description": "Disable preview mode"
            },
            {
              "names": [
                "--target-version"
              ],
              "description": "The minimum Python version that should be supported",
              "args": [
                {
                  "name": "TARGET_VERSION",
                  "suggestions": [
                    "py37",
                    "py38",
                    "py39",
                    "py310",
                    "py311",
                    "py312",
                    "py313"
                  ]
                }
              ]
            }
          ],
          "args": [
            {
              "name": "Path",
              "description": "The path to use for the project/script",
              "isVariadic": true,
              "template": "filepaths"
            }
          ]
        }
      ]
    },
    {
      "name": "version",
      "description": "Display Ruff's version",
      "options": [
        {
          "names": [
            "--output-format"
          ],
          "description": "Output format",
          "args": [
            {
              "name": "output-format",
              "suggestions": [
                "text",
                "json"
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "help",
      "description": "Print this message or the help of the given subcommand(s)"
    }
  ]
}
