[Python-Dev] packaging backport (original) (raw)
Joe Amenta amentajo at msu.edu
Tue Jun 21 15:37:05 CEST 2011
- Previous message: [Python-Dev] packaging backport
- Next message: [Python-Dev] packaging backport
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Jun 21, 2011 at 9:27 AM, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
On Tue, Jun 21, 2011 at 3:12 PM, R. David Murray <rdmurray at bitdance.com> wrote: > On Tue, 21 Jun 2011 13:42:05 +0200, =?ISO-8859-1?Q?TarekZiad=E9?= <_ _ziade.tarek at gmail.com> wrote: >> Before I start to write my own refactoring tool, I was wondering if >> anyone here had some experience in this, and could give me some hints. > > Coul you could just write a 3to2 fixer? I don't know how hard it is to > run just a selected set of fixers (so that you could use it to generate > python3 code), but it seems to me that renaming modules is something > that 3to2 (and 2to3, of course) should be good at.
The one thing rope is good at is to find where a given variable name is used, and rename all occurrences recursively. So basically, when you rename an import, it renames all the code that uses it. I don't really know how 2to3/3to2 work but I assumed that it does not do this, but simply give you a hook for every visited node. IOW that looking for dependencies is to be done Cheers Tarek > > -- > R. David Murray http://www.bitdance.com >
-- Tarek Ziadé | http://ziade.org
Yes, 2to3/3to2 does not do anything fancy like that. The tools are purely concerned with syntax, whereas renaming imports is semantic. The good news is that this line:
import packaging as _myPackaging
can be replaced by:
import distutils2 as _myPackaging
and code that uses _myPackaging will work. I've attached a fixer that can go into your lib3to2/fixes folder. You should also edit fix_imports.py and add the line:
"packaging" : "distutils2",
to the MAPPING dictionary near the top, then you can run 3to2 like this:
3to2 -fpackaging -fimports files_to_fix.py
(-w option to write changes to the files modified)
Hope this helps, --Joe Amenta -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20110621/665d043b/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: fix_packaging.py Type: application/octet-stream Size: 358 bytes Desc: not available URL: <http://mail.python.org/pipermail/python-dev/attachments/20110621/665d043b/attachment.obj>
- Previous message: [Python-Dev] packaging backport
- Next message: [Python-Dev] packaging backport
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]