跳转到主要内容

flake8, isort 和 eslint 的 Git 钩

项目描述

# precog 在你犯罪之前阻止你的犯罪。

安装

要从PyPI安装,运行pip install precog。要安装git钩子,运行precog。这将尝试写入你的pre-commit文件(.git/hooks/pre-commit),如果它已经存在,则会中止,所以如果你想使用precog,请将其移动或删除。

用法

安装 precog 后,您的提交将进行检查以确保其符合规范。默认情况下,如果 flake8isorteslint 中的任何一个没有干净地退出,则会中止提交,但不会尝试修复任何问题。pre-commit 文件包含选项的默认值,但在提交时可以通过环境变量覆盖行为,或者如果您可以编辑 pre-commit 文件中的默认值。

示例

要完全跳过所有检查,例如对于工作进度提交:`STRICT="" git commit -m "wip"` 这将仍然打印问题,但允许提交完成。

仅跳过 isort:`ISORT_STRICT="" git commit -m "wip - todo: fix imports"`

ISORT_FORCE 选项

这个选项有点疯狂。因为 isort 知道如何修复它发现的问题(而 flake8eslint 则不知道),而不是向您抱怨,这个选项告诉 precog 调整您的更改文件以符合 isort 检查。虽然这有点令人害怕,但默认情况下是禁用的。

在这种情况下,如果整个文件都排入待提交,则相当简单:precog 将仅在该文件上运行 isort,然后再次添加它以包括这些更改在提交中。但如果只有部分文件排入待提交,则我们不希望添加整个文件。因此,我们使用 git stash-k 选项来仅存储未提交的更改。然后我们运行 isort,添加文件,然后弹出存储。

这里几乎肯定存在边缘情况,如果它搞砸了您的提交,那么我非常抱歉。在您的悲伤中,可以通过 PR/issue 来防止它再次发生。

eslint 的集成

为了检查您的 JavaScript,precog 将在所有更改的 .js 文件上调用 eslint。因为它不是 Python 依赖项,安装 precog 不会尝试安装 eslint,但会尝试在 node_modules/.bin/eslint 中找到它。如果没有找到它,它将假设它是全局安装的。如果您找不到它,您可以设置 ESLINT_PATH 环境变量 - 如果是这样,您可能希望在 pre-commit 文件中将其设置为默认值。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

precog-0.0.2.tar.gz (10.7 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面