Weird scope error

Rory McKinley rorymckinleylists at gmail.com
Sat Apr 5 11:27:52 EDT 2008


Hi

I am trying to use the TidyHTMLTreeBuilder module which is part of 
elementtidy, but I am getting what appears to be some sort of scope 
error and it is scrambling my n00b brain.

The module file (TidyHTMLTreeBuilder.py) tried to import ElementTree by 
doing the following:

from elementtree import ElementTree

This bombed, so after a bit of poking around I replaced it with :

from xml.etree import ElementTree

This appears to have worked. However, when I try and parse a file using 
  the function :
TidyHTMLTreeBuilder.parse('weather_ct.html')

I receive the following error:

Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File 
"/usr/lib/python2.5/site-packages/elementtidy/TidyHTMLTreeBuilder.py", 
line 107, in parse
     return ElementTree.parse(source, TreeBuilder())
NameError: global name 'ElementTree' is not defined


The code producing the error is as follows:

def parse(source):
     return ElementTree.parse(source, TreeBuilder())

Surely, if the from... import has worked, ElementTree is in the global 
scope and should therefore be accessible to the function parse?

Can anybody help?

THanks



More information about the Python-list mailing list