import mysteries

David Abrahams dave at boost-consulting.com
Tue Jul 3 18:55:20 EDT 2007


on Thu Jun 21 2007, Peter Otten <__peter__-AT-web.de> wrote:

> David Abrahams wrote:
>
>> I'm pretty comfortable with Python, but recently I'm constantly
>> finding mysterious issues with import.  For example, looking at
>> 
>>   http://genshi.edgewall.org/browser/trunk/genshi/filters/transform.py
>> 
>> the examples use the symbol 'HTML' but it's not defined locally, it's
>> not explicitly imported, and there's no import *.  Yet doctest will
>> test this module and it passes with flying colors.  It turns out HTML
>> is defined in genshi.input.  How do I know that?  I grepped for it.
>> How does it become available to this module?
>
> Explicitly passed, see
>
> http://genshi.edgewall.org/browser/trunk/genshi/filters/tests/transform.py

IIRC I ran doctest on the file I cited, not the one you're pointing
at.  Is there some new magic doctest feature I should know about?

>> Another example: I was recently working on some code that did an
>> import from inside a class method.  That import was failing.  I moved
>> the import to the top of the file (at module scope) and it succeeded.
>> I'm fairly sure that nobody was monkeying around with sys.path in that
>> case.  Can anyone think of a likely explanation?
>
> Too vague, sorry.

  # this will succeed if I do it here
  # import foo.bar

  class X:
        def y():
            import foo.bar # but this fails

  
-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com

The Astoria Seminar ==> http://www.astoriaseminar.com




More information about the Python-list mailing list