1

我当前的钩子看起来像这样:

-   repo: local
    hooks:
    -   id: jupytext
        name: jupytext
        entry: jupytext
        language: conda
        files: '^notebooks/(.*\.py|.*\.ipynb)$'
        args: [--sync, --pipe, black]

目录结构是这样的:

.
├── notebooks
│   └── dataset-exploration
│       └── 01-amplitude-exploration
│           └── amplitude_exploration.ipynb
├── [other folders]*

*.ipynb.gitignore文件中有,这意味着笔记本被忽略(由于 git 大小问题),但我希望预先提交以在每次提交中自动创建/同步 python 脚本及其配对笔记本。但显然是因为我的钩子没有按预期工作,并且没有*.py从我的文件生成(或同步)*.ipynb文件。

4

1 回答 1

2

pre-commit只对签入的文件进行操作——因为你的文件是 gitignored,你需要找到其他方法来同步它们

一个想法是列出要明确同步的笔记本always_run: truepass_filenames: false

-   repo: local
    hooks:
    -   id: jupytext
        name: jupytext
        entry: jupytext --sync --pipe black notebooks/foo.ipynb notebooks/bar.ipynb
        language: conda
        always_run: true
        pass_filenames: false

虽然这种方式违背了框架的目的(你总是会一直运行缓慢的操作)


免责声明:我创建了预提交

于 2021-11-10T14:52:35.637 回答