我想自己格式化 pylint 的输出,所以我直接调用 pylint.lint.Run,并接收对我的 add_message 方法的回调。过程非常顺利,但我需要消息的列偏移量来构建我的输出(我正在突出显示违规行的部分)。
pylint 在适当的情况下报告每条消息的行号。但是,pylint 似乎没有报告任何偏移信息 - 因此它没有报告检测到问题的位置。在底层 pylint 使用来自 logilab 的另一个库,称为 astng,它是对 python _ast 的更新。_ast 解析节点包含偏移信息,但这似乎没有在 astng 中复制。