On Feb 1, 2012, at 3:35 PM, Arnaud Delobelle wrote:
> On Feb 1, 2012 9:01 PM, "Russell E. Owen" <ro...@uw.edu> wrote:
> >
> > I have an odd and very intermittent problem in Python script.
> > Occasionally it fails with this error:
> >
> > Traceback (most recent call last):
> > File
> > "/Applications/APO/TTUI.app/Contents/Resources/lib/python2.7/TUI/Base/Bas
> > eFocusScript.py", line 884, in run
> > File
> > "/Applications/APO/TTUI.app/Contents/Resources/lib/python2.7/TUI/Base/Bas
> > eFocusScript.py", line 1690, in initAll
> > TypeError: unbound method initAll() must be called with BaseFocusScript
> > instance as first argument (got ScriptClass instance instead)
> > self=<ScriptClass object at 0x2066b410>; class hierarchy=[(<class
> > 'TUI.Base.BaseFocusScript.ImagerFocusScript'>, (<class
> > 'TUI.Base.BaseFocusScript.BaseFocusScript'>,)), [(<class 'ScriptClass'>,
> > (<class 'TUI.Base.BaseFocusScript.ImagerFocusScript'>,))]]
> >
>
> Looks like you have loaded the same module twice. So you have two versions
> of your class hierarchies. You can check by printing the ids of your classes.
> You will get classes with the same name but different ids.
>
> Arnaud
>
Yes! I was reloading BaseFocusScript. Oops.
In detail: script files are dynamically loaded when first requested and can be
reloaded for debugging. I think that's safe because script files are
self-contained (e.g. the classes in them are never subclassed or anything like
that). But I went too far: I had my focus scripts reload BaseFocusScript, which
is shared code, so that I could tweak BaseFocusScript while debugging focus
scripts.
Thank you very much!
-- Russell
--
http://mail.python.org/mailman/listinfo/python-list