【问题标题】:Can Black be configured to ignore imports?可以将黑色配置为忽略导入吗?
【发布时间】:2021-05-21 13:30:34
【问题描述】:

从现在开始,我将在我的所有 Python 项目中改用 Black。到目前为止,我一直使用 autopep8 作为我的自动格式化程序和 isort 来对我的导入进行排序。但是在使用 Black 时,我发现 Black 在格式化我的代码的同时也完成了 isort 的工作。虽然我不介意 Black 对我的导入进行排序的方式,但我仍然想使用 isort 来处理我的导入,并且我希望 Black 只处理我的代码,而不是导入。那么,有没有办法将 Black 配置为仅格式化我的代码而不接触导入?顺便说一句,我正在使用 VS Code,因此有关如何在 VS Code 中应用配置的一些帮助也会有所帮助。谢谢!

【问题讨论】:

  • 能不能先变黑再跑isort?
  • 不幸的是 black 不能做 isort 做的事情,black 只是一个格式化程序(不是 linter)所以运行 black 不能改变 AST。更改导入顺序将更改 AST,因此黑色不能接受。为了实现你想要的,你应该首先使用isort(如果你需要删除未使用的导入,则使用autoflake -r --in-place --remove-unused-variables),然后使用black格式化
  • 我不确定 VS Code 是否可以配置为在我格式化文档时先运行黑色然后自动排序。
  • 实际上应该先运行 isort...

标签: python visual-studio-code autopep8 python-black isort


【解决方案1】:

将这些添加到 vscode 中的作业设置中,它应该可以解决问题

{
    "python.formatting.provider": "black",
    "[python]": {
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
        }
    }
}

【讨论】:

  • 谢谢!它做得很好。
猜你喜欢
  • 2012-08-14
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 2014-03-12
  • 2017-07-07
  • 1970-01-01
  • 2021-11-22
相关资源
最近更新 更多