标签: pre-commit

RuntimeError:无法找到内置发现 python_spec='python3.1' 的解释器

描述。

在尝试使用预提交挂钩时,我遇到了一些困难,包括Intel在 Conda 环境中以格式包形式发布的最新 Lava-nc 。.tar.gz pip

微量元素

environment.yaml使用以下 Conda文件:

# This file is to automatically configure your environment. It allows you to
# run the code with a single command without having to install anything
# (extra).

# First run:: conda env create --file environment.yml
# If you change this file, run: conda env update --file environment.yml

# Instructions for this networkx-to-lava-nc repository only. First time usage
# On Ubuntu (this is needed for lava-nc): …
Run Code Online (Sandbox Code Playgroud)

pre-commit pre-commit-hook conda pre-commit.com

2
推荐指数
1
解决办法
9166
查看次数

pyproject.toml :toml 解析器不可用,请使用 toml extra 重新安装

我正在配置我的 pyproject.toml 以便 bandit 排除测试文件,但它给了我错误 ERROR pyproject.toml : toml parser not available, reinstall with toml extra

这是我的 pyproject.toml

[tool.bandit]
exclude_dirs = ["*/test/*"]
tests = ["B201", "B301"]
skips = ["B101", "B601"]

[tool.pre-commit-hooks.bandit]
exclude = ["test*"]
Run Code Online (Sandbox Code Playgroud)

我运行以下命令:bandit -c pyproject.toml -r .

pre-commit bandit pre-commit.com pyproject.toml bandit-python

2
推荐指数
1
解决办法
1063
查看次数

SVN - 如何在预提交时拦截,更改或添加文件?

首先,我不确定这是否可行,但我需要知道如何做到这一点,如果不是为什么不呢?

我想创建一个C#应用程序,它在subversion存储库的提交过程中运行(我相信预提交),然后添加另一个要提交的文件.

例如,我对Program.cs和Main.cs进行了更改,但没有对 AssemblyInfo.cs 进行更改.我希望能够强制更改AssemblyInfo.cs或任何文件.

我使用SharpSVN编写了一个控制台应用程序,它在post-commit上触发,然后替换了一个文件,但这导致了修订版本号的增加.显然这并不理想.

然后我发现SharpSVN中的SvnLookClient在预提交时运行并且已经开始写一些东西,但是当我意识到CopyFromPath并不意味着我的期望时,我遇到了死胡同:

    using (SvnLookClient client = new SvnLookClient())
    {
        SvnLookOrigin o = new SvnLookOrigin(@"\\server\repository");
        SvnChangedArgs changedArgs = new SvnChangedArgs();
        Collection<SvnChangedEventArgs> changeList;
        client.GetChanged(o, changedArgs, out changeList);
    }
Run Code Online (Sandbox Code Playgroud)

或者,我会决定在C#之外执行此操作,但理想情况下我想在C#控制台应用程序中执行此操作,以便我也可以告诉我的存储库服务器执行其他任务,例如在数据库脚本中运行等.

svn pre-commit sharpsvn

1
推荐指数
1
解决办法
1071
查看次数

SVN对于始终"更改"且无变化的文件的最佳做法

我们有一个引用Common-directory中文件的项目.无论何时打开或编译该项目,都会复制这些文件.由于时间戳更改,Subversion将其视为更改.我只想提交常规Common目录的新更改,或项目中的实际更改.不是编译器为我执行的自动复制.

如何将目录和文件保留在SVN中,但是防止这些不变更被视为变更?是否有一些处理这种情况的"最佳实践"或"首选"方式?

svn visualsvn pre-commit

1
推荐指数
1
解决办法
236
查看次数

是否可以列出受预提交运行影响的文件?

在使用预提交时,有时我只想知道文件名将被传递到挂钩,只是为了验证--from-refto-ref是否正确。例如,我正在运行:

pre-commit run flake8  --from-ref $(git merge-base master HEAD) --to-ref HEAD
Run Code Online (Sandbox Code Playgroud)

我不确定哪些文件传递给了我的flake8钩子,添加--verbose没有帮助,因为flake8也不会输出文件名。

那么有什么方法可以告诉pre-commit只输出文件名列表而不运行实际的钩子?

pre-commit pre-commit-hook pre-commit.com

1
推荐指数
1
解决办法
2236
查看次数

带有 .toml 配置和预提交钩子的 Flakehell

我正在尝试将 flakehell 作为预提交钩子运行。

我的 .pre-commit-config.yaml:

repos:
-   repo: local
    hooks:             
    -   id: flakehell
        name: flakehell
        entry: flakehell lint project/
        language: python
        pass_filenames: true
        stages: [push, commit]
        verbose: true
Run Code Online (Sandbox Code Playgroud)

pyproject.toml:

[tool.flakehell]
exclude = ["README.md"]
format = "colored"
show_source = true

[tool.flakehell.plugins]
flake8-bandit = ["+*", "-S322"]
flake8-bugbear = ["+*"]
flake8-builtins = ["+*"]
flake8-comprehensions = ["+*"]
flake8-darglint = ["+*"]
flake8-docstrings = ["+*"]
flake8-eradicate = ["+*"]
flake8-isort = ["+*"]
flake8-mutable = ["+*"]
flake8-pytest-style = ["+*"]
flake8-spellcheck = ["+*"]
mccabe = ["+*"]
pep8-naming = ["+*"] …
Run Code Online (Sandbox Code Playgroud)

python git pre-commit pre-commit.com

1
推荐指数
1
解决办法
487
查看次数

在詹金斯管道中预提交(工具),初始化并停止构建?

预提交是一个很棒的工具,我喜欢将其合并到詹金斯管道中,以确保有人在提交到存储库期间不会尝试跳过它。

所以我的问题是:

  • 初始化预提交的最佳实践是什么?(就像我在存储库中那样初始化它?该网站提供了一些其他 CI 集成的示例,但没有 jenkins)
  • 如果预提交执行的任何测试失败,我该如何告诉詹金斯停止构建?(退出代码?哪个是successfail

pre-commit jenkins jenkins-pipeline pre-commit.com

1
推荐指数
1
解决办法
3012
查看次数

在 Windows 中运行预提交 python 包会出现 ExecutableNotFoundError: Executable `/bin/sh`

我正在开发一个pre-commit==2.15.0已添加到 python 需求文件中的项目。我安装了要求。现在,当我尝试执行以下操作时,git commit出现以下错误:

An unexpected error has occurred: ExecutableNotFoundError: Executable `/bin/sh` not found
Check the log at C:\Users\username\.cache\pre-commit\pre-commit.log
Run Code Online (Sandbox Code Playgroud)

在我的预提交日志中,我有:

pre-commit version: 2.15.0
sys.version:
    3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]
sys.executable: c:\users\username\appdata\local\programs\python\python39\python.exe
os.name: nt
sys.platform: win32

Traceback (most recent call last):
  File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\error_handler.py", line 65, in error_handler
    yield
  File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\main.py", line 368, in main
    return hook_impl(
  File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\commands\hook_impl.py", line 231, in hook_impl
    retv, stdin = _run_legacy(hook_type, hook_dir, args)
  File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\commands\hook_impl.py", line …
Run Code Online (Sandbox Code Playgroud)

python pre-commit pre-commit-hook python-3.x pre-commit.com

1
推荐指数
1
解决办法
4661
查看次数

如何让 Flake8 忽略字符串中的语法?

我突然收到字符串中语法的 flake8 错误。

例如,对于以下代码行:

    tags.append(f'error_type:{error.get("name")}')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:E231 missing whitespace after ':'

我不想忽略所有E231错误,因为当它们不引用字符串中的文本时我会关心它们。

我也不想# noqa为每个字符串添加注释。

我尝试将我的 flake8 版本固定到6.0.0(这是之前没有引发这些错误的版本)。

我正在运行 flake8 并进行预提交(如果相关的话)。

为什么我突然收到这些字符串错误以及如何将其关闭?

我还应该提到,这种情况尤其发生在 Github Actions 中。

python pre-commit flake8

1
推荐指数
1
解决办法
499
查看次数

设置svnperms预提交钩子

我正在尝试将svnperms实现到存储库中,但是我遇到了一些困难:

预提交具有执行权限:

-rwxrwxr-x   1 svnadm     svn           3018 May 27 10:11 pre-commit
Run Code Online (Sandbox Code Playgroud)

这是我在预提交中对svnperms的调用:

# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
SVNPERMS=/usr/local/svn/scripts/svnperms.py
$SVNPERMS -r $REPOS -t $TXN || exit 1
Run Code Online (Sandbox Code Playgroud)

我在指定的位置安装了svnperms.py:

# ls -l /usr/local/svn/scripts
total 24
-rwxrwxr-x   1 svnadm     svn          11840 May 25 07:48 svnperms.py
Run Code Online (Sandbox Code Playgroud)

svnperms.py是UNIX格式 - 没有^ M行结尾.

TortoiseSVN回归:

Command: Commit  
Modified: C:\projects\Sandbox\Trunk\Test.txt  
Sending content: C:\projects\Sandbox\Trunk\Test.txt  
Error: Commit failed (details follow):  
Error: 'pre-commit' hook …
Run Code Online (Sandbox Code Playgroud)

python unix svn pre-commit

0
推荐指数
1
解决办法
3046
查看次数