使用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现代版本的工具。在
这是一个帮助库作者和大型代码库所有者轻松迁移源代码的工具。在
使用
有关详细的使用文档,请参见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 .
- 项目
标签: