一段时间以来,我一直试图围绕Cellebrite物理分析器,Python shell编写脚本。 PA的shell文档不完整,我相信API的全面文档可以使编码更加容易。几个星期前,我意识到我内置的help()
函数会给我我需要的大部分信息,但它受限于它对shell的束缚等等。
我最近完成了一个脚本,它将每个帮助条目(以及一些其他信息)保存到桌面上目录中的txt文件中。我想将这些文件转换为类存根,我可以使用它们来创建更清晰的文档,并在IDE中促进类型提示。
以下是问题: 我不知道如何解析帮助文件。我可以编写一系列复杂的正则表达式,但我的程序已经足够混乱了。
有没有人知道将帮助文档翻译成存根的简单方法?
P.S。
by stub我的意思是这样的:
帮助:
| C(Stream baseStream, long offset, long length)
|
|
| Data and other attributes defined here:
|
| Equals(...)
| bool Equals(self, C other)
存根:
class C(object):
"""
No Documentation
"""
def __init__(self, baseStream, offset, length):
"""
No Documentation
:type baseStream: Stream
:type offset: long
:type length: long
:rtype: C
"""
pass
def Equals(self, other):
"""
No Documentation
:type other: C
:rtype: bool
"""
pass
python'不是我的语言,所以请原谅上面的任何语法错误。
修改 我真的很想回到家里,因为python 不是我的语言,如果你看到这个问题并想想,那么,他一定已经尝试过了#34;我可能已经没有了#34;吨
EDIT2: 这是我到目前为止的剧本:
https://drive.google.com/file/d/0B-5Y1OoryQYuczE4REpDR1FiRWc/view?usp=sharing
原谅可怕的语法。整个事情嵌套在if True:
中,因为除非它是缩进的,否则shell会在第二行中断,我需要以某种方式开始该块。我在二进制模式下写入文件的原因是,如果我尝试做文本,那就会出错。其余的可能就在我身上。
EDIT3: 帮助示例:https://drive.google.com/file/d/0B-5Y1OoryQYuSjJrOGFLeVU3RWc/view?usp=sharing
如果这太宽泛,我不明白什么没有得到充分的解释。我会很感激任何关于它太模糊的指示。
答案 0 :(得分:0)
您不需要解析帮助数据以执行您想要的操作。
相反,您可以直接使用标准python库来反省该类。
例如,试试这个:
import inspect
print inspect.getmembers(C)
您应该能够轻松地重新创建存根,而无需解析帮助文本。