Proposal: Inline Import

Thomas Heller theller at python.net
Sat Dec 10 13:51:41 EST 2005


Shane Hathaway <shane at hathawaymix.org> writes:

> Xavier Morel wrote:
>> Shane Hathaway wrote:
>>
>>>Thoughts?
>>  >>> import re; name_expr = re.compile('[a-zA-Z]+')
>>  >>> name_expr
>> <_sre.SRE_Pattern object at 0x00F9D338>
>>  >>>
>> the import statement can be called anywhere in the code, why would
>> you add strange syntactic sugar that doesn't actually bring anything?
>
> That syntax is verbose and avoided by most coders because of the speed
> penalty.  It doesn't replace the idiom of importing everything at the
> top of the module.
>
> What's really got me down is the level of effort required to move code
> between modules.  After I cut 100 lines from a 500 line module and
> paste them to a different 500 line module, I have to examine every
> import in both modules as well as examine the code I moved for missing
> imports. And I still miss a lot of cases.  My test suite catches a lot
> of the mistakes, but it can't catch everything.

I understand this use case.

You can use pychecker to find NameErrors without actually running the
code.  Unfortunately, it doesn't (at least not always) find imports
which are not needed.

Thomas



More information about the Python-list mailing list