On 2009-12-21 10:10 AM, Glyph Lefkowitz wrote: > > On Dec 21, 2009, at 10:20 AM, James Y Knight wrote: > >> On Dec 21, 2009, at 12:03 AM, Jonathan Lange wrote: >>> Now that we no longer support Python 2.3, may we also allow imports in >>> the following style? >>> >>> from very.long.package import ( >>> bar, >>> foo, >>> ) >> >> >> Separating "from X import" and "Y" over a newline totally breaks >> grepping for imported modules. I'd not use it myself, purely because >> of that, except perhaps when the "Y"s are functions in a module, >> rather than modules. > > I'm a fan of this style, because it's easier to read and it involves a lot > less duplication... at the same time, I can see the 'grep' case. Anybody > want to write a tool which uses the AST to look for name imports? This would > generally be handy anyway :).
Done. http://pypi.python.org/pypi/grin https://svn.enthought.com/svn/sandbox/grin/trunk/examples/grinimports.py grin is a mostly general purpose grepping tool that I wrote, slightly specialized for grepping code in VCS checkouts. grinimports.py is an example of using it as a library. It uses the AST to normalize import statements. E.g. from very.long.package import bar, foo import os, sys turns into from very.long.package import bar from very.long.package import foo import os import sys The grep pattern then runs over the normalized text. I find this much more robust than grepping the plain text. With all of the variations in the import syntax, it's difficult to find a grep pattern that gets all of the desired imports and rejects enough of the non-import statements. A side effect is that it's easy to get a nice list of all of the import statements in your codebase. $ grinimports.py --no-color '' -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python