python Ufmt格式不适用于大小写匹配的Py脚本

bq8i3lrv  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(224)

我知道match case是Python最近才添加的。ufmt(v2.0.1)仍然不使用match case语句格式化文件。有什么解决方法吗?谢谢
下面是我在这样一个文件上运行ufmt format时从终端得到的最后一个结果

libcst._exceptions.ParserSyntaxError: Syntax Error @ 11:19.
Incomplete input. Encountered 'unit', but expected ';', or 'NEWLINE'.

            match unit:
                  ^

尝试对文件运行ufmt format,其中包含match case语句。预期文件将相应地格式化。出现错误,文件未格式化

mnemlml8

mnemlml81#

这是因为µsort(µfmt使用的导入排序器)使用LibCST,这需要启用其原生Rust解析器以支持3.10+语法,包括match语句。
这在最新版本的µfmt(2.1.0)中得到了修复,在格式化时默认启用LibCST本地解析器。
如果您不能(或不愿意)升级µfmt,则可以在运行µfmt或µsort之前在环境中设置LIBCST_PARSER_TYPE=native来解决此问题。

相关问题