我正在尝试介绍pre-commit我们的项目。该项目位于单一存储库中,我们希望所有支票也位于同一存储库中。我们有一个flake8插件,我正在尝试配置 flake8 以使用该插件,但是我不知道如何pre-commit从本地存储库安装我们的插件。
我已将其添加到.pre-commit-config.yaml
repos:
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
hooks:
- id: flake8
additional_dependencies:
- ./my_flake8_plugin
Run Code Online (Sandbox Code Playgroud)
但是当我运行时pre-commit run --all我收到此错误:
An unexpected error has occurred: CalledProcessError: command: ('/Users/dtv/.cache/pre-commit/repo0620p39l/py_env-python3.10/bin/python', '-mpip', 'install', '.', './my_flake8_plugin')
Run Code Online (Sandbox Code Playgroud)
我确实意识到我可以指定插件的绝对路径,但这在 CI 或其他开发人员的机器上不起作用。我在文档中找不到有关“变量”或“占位符”的任何内容(例如,人们可以编写类似- $(PROJECT_DIR)/my_flake8_plugin.
除了编写单独的插件之外,还有正确的方法吗pre-commit?
预提交永远不会从被测试的存储库安装——只能从配置文件安装(否则缓存很难处理)
你最好的选择可能是打包你的 flake8 插件并从包索引服务器安装或利用 的flake8功能local-plugins。
例如,如果您的插件存在./sub-dir并提供您可以设置的module.path:Plugin代码:ABC
[flake8:local-plugins]
extension =
ABC = module.path:Plugin
paths = ./sub-dir
Run Code Online (Sandbox Code Playgroud)
在你的 flake8 配置中
免责声明:我创建了预提交,并且我是当前的 flake8 维护者
| 归档时间: |
|
| 查看次数: |
2509 次 |
| 最近记录: |