(no title)
apurtbapurt | 4 years ago
The one big drawback is that the AST for even trivial code patterns has had a history of changing between Python versions. This makes it more annoying than usual to support multiple versions at the same time. Luckily 3.9 and 3.10 hasn't brought any changes that impacted my codebase, as far as I've noticed.
tusharsadhwani|4 years ago
masklinn|4 years ago
The introduction of Constant also deprecated everything it replaced (Str, Num, Bytes, and NameConstant).
There's also the introduction of f-strings (ast'd as JoinedStr), various nodes being duplicated for their async version.
Probably more relevant to automatically discovering signatures would be the addition of positional-only arguments to the `arguments` object.
But messing with the AST is definitely a lot more stable than messing with the bytecode.