在运行时暂时关闭混合选项卡和空格

时间:2014-04-08 22:17:03

标签: python cpython

有没有办法在运行时关闭(以及之后)这项检查?

我的动机是我需要使用不关心制表符和空格混合的第三方库,从而运行我的代码-t switch发出警告。

(我希望类似的方法可以用于-b切换。)

编辑:我忘了注意,图书馆已将标签和空格混合在一个文件中,这就是我看到警告的原因。

2 个答案:

答案 0 :(得分:0)

限制仅在模块内。将带有制表符缩进的模块和带有空格缩进的模块混合在同一个项目中是完全可以的。

我无法想到您希望在同一文件中混合制表符和空格的情况,因此无法检查它。

答案 1 :(得分:0)

我不知道您描述的运行时切换,但是将库从混合转换为空格并不困难,如果您有可以编辑的副本: 在shell中:

touch temp.py; for x in $(find /path/to/library/ -name '*.py' -print); do expand -it 4 $x > temp.tmp; cat temp.tmp > $x; done; rm temp.tmp

/path/to/library/替换为您的库文件目录的路径。

就个人而言,我更喜欢使用制表符,但这样可以防止警告,并且不会产生许多不可预见的后果。您应该注意的一个结果是,多行字符串文字中的前导标签也将转换为空格

也可以使用unexpand程序将混合或空格转换为制表符。但是,从空格/混合到制表符的转换更难,更容易出错,因为空格在语法上是模糊的。