我正在改进一些旧的Python代码以添加PyType注释。我通过在每个函数的顶部添加打印语句来机械地执行此操作
Sub test()
Dim id_col As Long
id_col = Rows(8).Find("ID", LookAt:=xlWhole).Column
Dim target_col As Range
If id_col <> vbNullString Then
Set target_col = Columns(id_col)
With target_col
.TextToColumns , DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
End With
End If
End Sub
并相应更新。
有什么能帮助自动化这个过程吗?
答案 0 :(得分:7)
当然,有一些项目可以提供帮助。
MonkeyType
tool来获取运行时类型信息。它们作为存根文件输出,但您可以使用包含的工具将这些工具应用于源文件作为内联注释,或使用retype
project执行相同操作。pyannotate
的类似工具;此工具仅生成Python 2类型提示注释,而不是注释。这两个项目都不会产生完美的类型提示;总是把他们的输出作为起点,而不是权威的最终注释。引用MonkeyType
自述文件:
使用MonkeyType,可以很容易地添加反映您在运行时使用的具体类型的注释,但这些注释可能并不总是与函数的完整预期功能相匹配。例如,add能够处理比整数更多的类型。类似地,MonkeyType可以生成具体的List注释,其中抽象Sequence或Iterable更合适。 MonkeyType的注释是一个信息丰富的初稿,由开发人员检查和纠正。
但请阅读Instagram engineering blog post on MonkeyType
;它有助于在Instagram代码库中添加类型注释。
免责声明:MonkeyType和retype都是Facebook同事的项目。我自己没有对这些工具有任何意见。
答案 1 :(得分:0)
如果您正在寻找“半”自动类型注释,我发现 https://stackoverflow.com/a/44102211/1686377 很有用。特别是它是一个静态分析器,它不会运行您的代码来确定类型。