【问题标题】:Add custom fixer to lib2to3 after fixer has been written编写修复程序后将自定义修复程序添加到 lib2to3
【发布时间】:2015-02-09 22:13:34
【问题描述】:

我正在为lib2to3 编写自定义修复程序,不是将代码迁移到 Python 3,而是利用 lib2to3 的源代码解析功能,而不是使用正则表达式等手动解析源代码。

此时我已经编写了一个基本的修复程序,但我不确定如何将它实际添加到 lib2to3。我只想使用单个修复程序,我不打算将任何代码迁移到 Python 3。这应该不是问题,因为可以指定只使用显式传递的修复程序:

2to3 -f fixer_name.py example.py

我当然可以将修复程序添加到修复程序路径:

lib2to3/fixes/

但该脚本旨在作为一种工具分发,供用户迁移使用已弃用导入格式的旧源代码。不幸的是,缺少 lib2to3 的文档,我发现的 only writeup 建议使用已弃用的 distribute 包。

欢迎提出建议,谢谢。

【问题讨论】:

    标签: python parsing abstract-syntax-tree python-2to3


    【解决方案1】:

    下面的问题在这里回答(基本上是复制2to3驱动代码并传入你自己的包路径):

    How to launch own 2to3 fixer?

    我的2to3:

    #!/usr/bin/env python2.7
    import sys
    from lib2to3.main import main
    
    sys.path.append('path/to/my_own_package')
    sys.exit(main('my_own_package.contained_fixers'))
    

    把fix_my_fixer.py放到包目录下运行

    ./my2to3 -f my_fixer -w 项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 2013-09-09
      • 1970-01-01
      相关资源
      最近更新 更多