有一个广泛使用 zope 组件的代码库(Py 2.6 的东西),并且需要可以分析源代码的工具。该工具应该分析来源;比如寻找一些受限制的类/对象/接口等的使用。基本上,扫描源中的每个语句,同时了解语句的上下文(它在哪个类/方法/函数中,哪个模块等)并分析它具体模式。
将源读入文本缓冲区和匹配模式的方法似乎根本不是一种可靠的方法。
出现的另一种方法是使用inspect,但inspect 似乎被破坏并且似乎无法处理我们的代码库(多次尝试,所有这些都崩溃了 inspect)。我可能不得不放弃这一点,因为现在检查似乎有出路。
现在,我能想到的其他选项是使用pylint或使用AST(并对其进行大量后处理)。我不确定pylint的可扩展程度;在分析源语句时,pylint 是否可以知道上下文(即,哪个类定义/函数/方法具有此语句等)对于这样一个微不足道的目的,使用AST似乎太过分了。
您会在这里建议什么合适的方法?以前有其他人必须处理过这样的问题吗?
请建议。