使用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第三方库


热门话题
JAVAexists()方法始终返回false   java SNMP4J v2c陷阱发送速度非常慢   java计算给定单词中字母的频率   在java中执行curl命令获取异常   java按下按钮时,应显示一个数字,并在日期选择器处计数   java递归将括号设置为字符串字符   节点。java中AWS IOT按钮的js Lambda函数   删除ArrayList中的所有空格。JAVA   java我可以在eclipse中定义一个显示html文件的视图吗?   java为什么RestController公开Crudepository中的所有操作?   春季3.2。使用java8的x   java迭代器如何使用构造函数   java Jersey客户端关闭InputStream响应它真的有效吗?   Java从剪贴板检索XML(Excel)电子表格   java线程被卡住,因为在运行中有一个永无止境的函数   基于Java编程的Amazon云开发