问题标签 [pre-commit.com]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - flake8 e999 在 python2 中使用 fstrings (with future_fstrings)
我在 python2 中使用 fstrings,pip install future-fstrings
如下所示:
但是,将这样的文件提交到我的项目时,我得到:
为什么会发生这种情况,我该如何解决?
# noqa E999
没有帮助...
python - 在 Docker 映像的预提交挂钩中为 python 2.7 和 3.7 运行 pylint
我正在尝试使用 CircleCI 运行一个预提交挂钩,该挂钩为 Python 2.7 和 3.7 运行 pylint。
.circleci/config.yml
为 Python 2 和 Python 3 运行预提交:
除其他外,预提交运行 pylint:
这里的问题是没有与 Python 2.7 和 3.7 兼容的 pylint 版本:Python 2.7 需要 pylint 1.x,而 Python 3.7 需要 pylint 2.x。
如何让 Circle CI 使用不同版本的 pylint 运行两个 linting 作业?
我正在考虑几种选择:
- 在预提交配置中添加 pylint 两次(使用不同的别名)并在作业定义中
禁用其中一个或另一个
- 似乎 pre-commit在查看变量之前
SKIP
尝试安装依赖项,因此 Python 2.7 运行无论如何都会尝试安装 pylint 2,并且出现错误ERROR: Could not find a version that satisfies the requirement pylint==2.3.1 (from pre-commit-dummy-package==0.0.0)
- 似乎 pre-commit在查看变量之前
- 使用具有两个 Python 版本的 Docker 映像,并在钩子级别
设置 Python 版本
- 这需要构建我自己的 Docker 镜像
- 在其中一项 linting 工作中跳过 pylint
- 放弃 2.7 或 3.7 支持
git - 如果检测到匹配的文件,则运行一次 pre-commit.com 挂钩(不是针对每个文件)
我有一个钩子,可以从源文件生成文档文件,使用pre-commit.com 框架构建。在该挂钩中调用的函数没有文件参数,因此它只是为目录中的所有源文件创建文档。钩子是一个system
钩子,即只是一个 bash 脚本,我在其中调用该函数来创建文档。但是,在 pre-commit.com 框架中,文件被传递给钩子,逻辑是在每个文件上执行一个钩子,这在大多数情况下是有意义的(例如,分别对每个文件进行 lint)。所以我的问题是:如果有任何源文件发生更改,我如何确保文档挂钩运行一次,而不是在单个文件上多次运行(并行或顺序)?具体来说,我的钩子正在生成 R 文档,roxygen2::roxygenize()
可以在这里找到。
python - Autopep8 和预提交不遵守 --global-config
我正在尝试将 pre-commit 与运行命令的 autopep8 一起使用pre-commit run --all-files
。我的树和文件如下:
在.pre-commit-config.yaml
:
在.flake8
:
但是,当我运行时pre-commit run --all-files
,我的 .flake8 文件没有被拾取,所以我尝试将 --global-config 添加到 .flake8:
但这只会导致错误:
我究竟做错了什么?
我的预提交版本是 1.18.2。
jupyterhub - pre-commit run 路径python3.6(来自--python=python3.6)不存在
我正在尝试关注JupyterHub 的贡献文档,并且在运行时遇到错误pre-commit run
该错误与我的 python 版本有关。3.6
即使所有东西都是用 Python 安装的,出于某种原因,它仍然存在3.7.3
。这是运行命令的输出:
如果我检查日志,这就是它所说的:
我试图清除缓存,因为它看起来像是在引用我使用 python 3.6 时可能已经存在的缓存
但它根本没有改变错误或日志。
有谁知道这是什么吗?如果没有,希望我能尽快弄清楚并在我这样做时添加答案...... :)
python-3.x - Python 项目的预提交挂钩失败
我有一个Python
项目,当我尝试(通过 miniconda)提交时:
我得到以下失败:
最后一行失败。
关于如何解决这个问题的任何想法?
谢谢!
python - 如何在预提交挂钩之前运行 shell 脚本
在 python 项目中,我有 pre-commit-config.yaml 和黑色和 mypy 检查器。目标是在检查错误之前先运行 black 。和 mypy ./ 修复可能的错误,然后运行钩子。
python - 运行预提交运行时出错
我已经安装并配置了预提交。运行时,pre-commit run
我收到此信息,后跟一条错误消息:
我使用 anaconda bash 从 Windows 运行它。我将 git 放在路径上,以便 pre-commit 找到 repo。我已经尝试从外部 anaconda 环境运行它,但即使停用它并再次安装预提交,错误仍然存在。我也尝试过运行pre-commit clean
,它已经解决了以前的问题(起初它找不到我的“pre-commit-hooks.yaml”文件”),但这个错误仍然存在。
push - 尝试使用预提交设置预推送挂钩
我正在尝试使用 pre-commit https://pre-commit.com/设置一个 pre-push 钩子, 当我制作一个 pre-commit 钩子时,它工作正常,就像在提交所有检查工作之前一样,但如果没有推送钩子运行这就是我的 .pre-commit-config-yaml 在推送的情况下的样子
有谁知道做错了什么?