[twill] TypeError: Cannot create MRO
John Lee
jjl at pobox.com
Wed Jan 10 13:38:00 PST 2007
On Wed, 10 Jan 2007, Michele Simionato wrote:
>> On Wed, Jan 03, 2007 at 04:37:44AM -0800, Sohrab Sepehri wrote:
[...]
>> -> TypeError: Error when calling the metaclass bases
>> -> Cannot create a consistent method resolution
>> -> order (MRO) for bases response_seek_wrapper, httperror_seek_wrapper
>
> This is a rare error due to multiple inheritance conflicts (see
> http://www.python.org/download/releases/2.3/mro). It happens at class
> definition time. Where is the class httperror_seek_wrapper? Could you
> provide module and line number? Which version of twill are you using?
> I don't find it in my twill installation.
It's in mechanize/_response.py, line 417 in SVN HEAD (of mechanize).
Looks like twill 0.8.5 contains an older mechanize that does not contain
that hack, so I guess the OP must have the darcs version (which I don't
have).
I am indeed playing some highly unpleasant tricks here. Here's why:
http://article.gmane.org/gmane.comp.python.wwwsearch.general/783
http://article.gmane.org/gmane.comp.python.wwwsearch.general/784
An httperror_seek_wrapper class should be created every time you get a
non-200 response, so for example opening a URL that does not exist should
trigger this (unless twill does something funny here to suppress the
error). I don't seen the reported issue when I try this, though:
>>> br = mechanize.Browser()
>>> br.open("http://wwwsearch.sf.net/doesnotexist")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/home/john/lib/python/mechanize/_mechanize.py", line 156, in open
return self._mech_open(url, data)
File "/home/john/lib/python/mechanize/_mechanize.py", line 207, in _mech_open
raise response
mechanize._response.httperror_seek_wrapper: HTTP Error 404: Not Found
>>>
Do you see what the problem is, Michele? If you can suggest a way out of
this mess without changing public interfaces, that would be even better
:-)
John
More information about the twill
mailing list