SVN预提交挂钩,用于拒绝具有不一致的选项卡使用情况的Python文件

Cat*_*cob 4 python svn pre-commit-hook

如果解释的文件具有不一致的选项卡用法,则可以启动Python解释器-tt以引发TabError异常.

我正在尝试为SVN编写一个预提交挂钩,拒绝引发此异常的文件.我可以传递提交的文件python -tt但我的问题是文件也被执行,除了被检查.有没有办法告诉Python"只分析文件,不运行它"?或者也许其他一些方法可以更好地完成我想要的东西.

Gre*_*ill 6

您可以使用该py_compile模块执行此操作:

$ python -tt -c "import py_compile; py_compile.compile('test.py', doraise=True)"
Run Code Online (Sandbox Code Playgroud)

doraise=True会引发异常,并以非零退出代码,你可以在你的pre-commit钩子很方便地测试返回.