{
  "name": "black",
  "description": "Python code formatter",
  "options": [
    {
      "names": [
        "--code",
        "-c"
      ],
      "description": "Format the code passed in as a string",
      "args": [
        {
          "name": "string"
        }
      ]
    },
    {
      "names": [
        "--line-length",
        "-l"
      ],
      "description": "How many characters per line to allow",
      "args": [
        {
          "name": "line length"
        }
      ]
    },
    {
      "names": [
        "--target-version",
        "-t"
      ],
      "description": "Python versions that should be supported",
      "isRepeatable": -1,
      "args": [
        {
          "name": "python version",
          "suggestions": [
            "py33",
            "py34",
            "py35",
            "py36",
            "py37",
            "py38",
            "py39",
            "py310"
          ]
        }
      ]
    },
    {
      "names": [
        "--pyi"
      ],
      "description": "Format all input files regardless of file extension"
    },
    {
      "names": [
        "--ipynb"
      ],
      "description": "Format all input files like Jupyter Notebooks regardless of file extension"
    },
    {
      "names": [
        "--python-cell-magics"
      ],
      "description": "Add the given magic to the list of known python-magics",
      "isRepeatable": -1,
      "args": [
        {
          "name": "python-magic",
          "suggestions": [
            "python",
            "python3",
            "timeit",
            "prun",
            "time",
            "pypy",
            "capture"
          ]
        }
      ]
    },
    {
      "names": [
        "--skip-string-normalization",
        "-S"
      ],
      "description": "Don't normalize string quotes or prefixes"
    },
    {
      "names": [
        "--skip-magic-trailing-comma",
        "-C"
      ],
      "description": "Don't use trailing commas as a reason to split lines"
    },
    {
      "names": [
        "--preview"
      ],
      "description": "Enable potentially disruptive style changes"
    },
    {
      "names": [
        "--check"
      ],
      "description": "Don't write the files back, just return the status"
    },
    {
      "names": [
        "--diff"
      ],
      "description": "Don't write the files back, just output a diff for each file on stdout"
    },
    {
      "names": [
        "--color"
      ],
      "description": "Show colored diff",
      "exclusiveOn": [
        "--no-color"
      ],
      "dependsOn": [
        "--diff"
      ]
    },
    {
      "names": [
        "--no-color"
      ],
      "description": "Show uncolored diff",
      "exclusiveOn": [
        "--color"
      ],
      "dependsOn": [
        "--diff"
      ]
    },
    {
      "names": [
        "--fast"
      ],
      "description": "Skip temporary sanity checks",
      "exclusiveOn": [
        "--safe"
      ]
    },
    {
      "names": [
        "--safe"
      ],
      "description": "Run temporary sanity checks",
      "exclusiveOn": [
        "--fast"
      ]
    },
    {
      "names": [
        "--required-version"
      ],
      "description": "Require a specific version of Black",
      "args": [
        {
          "name": "version",
          "generators": [
            {
              "script": [
                "gh",
                "release",
                "list",
                "--repo",
                "psf/black"
              ],
              "cache": {
                "ttl": 172800000
              }
            }
          ]
        }
      ]
    },
    {
      "names": [
        "--include"
      ],
      "description": "Regex that matches files and directories that should be included on recursive searches",
      "args": [
        {
          "name": "Regex"
        }
      ]
    },
    {
      "names": [
        "--exclude"
      ],
      "description": "Regex that matches files and directories that should be excluded on recursive searches",
      "args": [
        {
          "name": "Regex"
        }
      ]
    },
    {
      "names": [
        "--extend-exclude"
      ],
      "description": "Additional exlusions",
      "args": [
        {
          "name": "Regex"
        }
      ]
    },
    {
      "names": [
        "--force-exclude"
      ],
      "description": "Exlude matching files and folders even when passed explicitly",
      "args": [
        {
          "name": "Regex"
        }
      ]
    },
    {
      "names": [
        "--stdin-filename"
      ],
      "description": "The name of the file when passing it through stdin",
      "args": [
        {
          "name": "file",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--workers",
        "-W"
      ],
      "description": "Number of parallel workers",
      "args": [
        {
          "name": "integer"
        }
      ]
    },
    {
      "names": [
        "--quiet",
        "-q"
      ],
      "description": "Don't emit non-error messages to stderr"
    },
    {
      "names": [
        "--verbose",
        "-v"
      ],
      "description": "Also emit messages about files that were not changed or were ignored due to exclusion patterns"
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show the version"
    },
    {
      "names": [
        "--config"
      ],
      "description": "Read configuration from filepath",
      "args": [
        {
          "name": "file",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Show usage information"
    }
  ],
  "args": [
    {
      "name": "file or directory",
      "isVariadic": true,
      "template": "filepaths"
    }
  ]
}
