Benjamin Peterson <[EMAIL PROTECTED]> added the comment: On Tue, Nov 25, 2008 at 5:10 PM, Martin v. Löwis <[EMAIL PROTECTED]> wrote: > > Martin v. Löwis <[EMAIL PROTECTED]> added the comment: > >> I'm not sure what you mean about MAPPING being compiled in. It is >> regenerated every time 2to3 is run. > > This code does not work: > > from lib2to3.fixes import fix_imports > del fix_imports.MAPPING['commands'] > > when followed by an attempt to actually run the fixer. Instead, I need > to write > > from lib2to3.fixes import fix_imports > del fix_imports.MAPPING['commands'] > fix_imports.FixImports.PATTERN="|".join(fix_imports.build_pattern())
This is true of many fixers. What is the use case? > >> Anyway, I fixed the replacement problem in r67386. > > Thanks! It still transforms > > def g(): > import commands > def f(): > commands = foo() > commands.sort() > > but I think this is ok; people just shouldn't write such code in the > first place (and the resulting code does work correctly - just with > a strangely-renamed local variable). This also won't work: def f(): commands.call() # This fails to be fixed. import commands Is that reasonable also? Scoping isn't something that 2to3 does well, and we'd probably have to add a whole symtable analyzer to fix a few obscure bugs like above. _______________________________________ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue4423> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com