Cat*_*cob 4 python svn pre-commit-hook
如果解释的文件具有不一致的选项卡用法,则可以启动Python解释器-tt以引发TabError异常.
我正在尝试为SVN编写一个预提交挂钩,拒绝引发此异常的文件.我可以传递提交的文件python -tt但我的问题是文件也被执行,除了被检查.有没有办法告诉Python"只分析文件,不运行它"?或者也许其他一些方法可以更好地完成我想要的东西.
您可以使用该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钩子很方便地测试返回.