强制 Python ast 发出不超过 length 的行

Force Python ast to emit lines no longer than length

我写了一个在 ast 级别工作的库。有时生成的输出会超过 linter 行长度限制。

"foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz"

我该如何生成这种代码?

"foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz_"
"foo_bar_can_haz_foo_bar_can_haz_foo_bar_can_haz"

(也对 \ 和带括号的变体感到满意)

我唯一能想到的事情——保留对 3.6、3.7、3.8、3.9 和 3.10a4 的支持——就是为两者做出贡献 astor and the builtin ast.unparse

我最终直接在我的代码生成中添加了自动换行支持:https://github.com/SamuelMarks/doctrans/commit/6147b21e168b66623aa1be95cb38b1969daa5147