【问题标题】:Working directory when initialise the pre-commit envs初始化预提交环境时的工作目录
【发布时间】:2021-06-30 15:48:49
【问题描述】:

我正在使用预提交来管理我的预提交和预推送挂钩。

我有两个钩子(mypy 和 pylint),我需要将要求安装到 virtual-env。

我的目录结构:

- project
  - .pre-commit-config.yaml
  - path
    - to
      - my
        - requierment.txt
- repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.812
    hooks:
      - id: mypy
        stages: [ "push" ]
        args: [ "--config-file", "mypy.ini" ]
        additional_dependencies: [ "-rpath/to/my/requirements.txt" ]

  - repo: https://github.com/PyCQA/pylint
    rev: v2.8.3
    hooks:
      - id: pylint
        stages: [ "push" ]
        args: [ "--rcfile=.pylintrc" ]
        additional_dependencies: [ "-rpath/to/my/requirements.txt" ]

当我尝试这个(请按照附加依赖项)时,预提交找不到文件。

我该如何解决?使用相对路径。

谢谢:)


更新:

我刚刚找到了我的问题的另一个解决方案,使用我的系统 python 解释器,使用 language 属性和系统 option

- repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.812
    hooks:
      - id: mypy
        language: system
        stages: [ "push" ]
        args: [ "--config-file", "mypy.ini" ]

  - repo: https://github.com/PyCQA/pylint
    rev: v2.8.3
    hooks:
      - id: pylint
        language: system
        stages: [ "push" ]
        args: [ "--rcfile=.pylintrc" ]

【问题讨论】:

    标签: pre-commit.com


    【解决方案1】:

    pre-commit 永远不会从被测试的存储库中安装,只有配置(否则缓存是难以处理的)

    安装过程中的工作目录是实现细节,不可自定义,它是预提交缓存中钩子存储库本身的根

    对于像 pylint 这样需要动态分析和直接访问您的代码库和依赖项的东西,建议使用非托管 repo: local 挂钩(或在 additional_dependencies 中枚举您的依赖项


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

    【讨论】:

    • 感谢您的回答。我实际上找到了另一种解决方案,只需使用我的系统 python 解释器。使用它:语言:系统
    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 2012-09-19
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2016-07-21
    相关资源
    最近更新 更多