使用Python的强大功能转换代码

ast-refactor的Python项目详细描述


ast重构

可以轻松地将结构化迁移应用到现有的python源代码。在

这是用来从旧代码模式迁移的 给现代人的支持。在

对于库作者,这有助于提供迁移工具,以便 用户可以更容易地迁移到库的更新版本。在

如果运行ast重构器修改源代码,因此请确保 在没有未签入代码的存储库上运行它。在

为什么?在

在处理大型代码库时,经常会遇到以不推荐的方式使用库的代码 (或删除)在这些库的更新版本中。在

例如,下面的代码使用了旧版本的pandas(<;0.17)

df=pd.DataFrame({"A":["foo","foo","foo","foo","foo","bar","bar","bar","bar"],"B":["one","one","one","two","two","one","one","two","two"],"C":["small","large","large","small","small","large","small","small","large"],"D":[1,2,2,3,3,4,5,6,7],"E":[2,4,5,5,6,6,8,9,9]})table=(pd.pivot_table(df,rows=['A','B'],cols=['C'],values='D',aggfunc=np.sum).sort("large"))

第二个语句使用了两个pandas函数和不推荐使用的关键字参数。显然,您可以手动修复此问题,但如果您有大量的代码,这将是乏味和容易出错的。在

ast-refactor为您提供了自动将第二个语句转换为适用于pandas现代版本的工具。在

^{pr2}$

这是一个帮助库作者和大型代码库所有者轻松迁移源代码的工具。在

使用

有关详细的使用文档,请参见usage docs和 ^{和a2}

作为python cli

安装此工具的最简单方法是使用 pipx。在

$ pipx install \
    ast-refactor

$ ast-refactor run some/path/or/file

作为docker容器

或者,您可以从docker容器运行它

$ docker run \
    -e UID=$(id -u)\
    -e GID=$(id -u)\
    -v /some/path/or/file:/work \
    flatironhealth/ast-refactor \
    run \
    /work

建筑

局部

$ pip install .
$ ast-refactor some/path/or/file

docker

docker build -t ast-refactor .

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java GridBagLayout不填充区域   java Memozied Fibonacci未运行与常规Fibonacci解决方案   Java Web启动未启动问题   Java中异常和if-then的区别   java从命令提示符运行批处理文件获取错误   socket在Java中验证SSL证书的公共名称   如何在JAVA中检查字符串数组中的相等字   用java语言将音频文件转换成文本文件的语音识别   java为什么foo(1,2,3)没有传递给varargs方法foo(对象…)作为整数[]   java通过蓝牙将奇怪的数据从Arduino传输到Android   java ContainerRequestFilter获取空entitystream   java如何从安卓 studio中删除不兼容类型错误   基本Java错误   在Spring引导中使用REST API时发生java错误   javascript通过从SQL查询派生的URL打开页面