Oh, ok, I can see where this is:

relax> relax_disp.cpmg_frq(spectrum_id='800_1000.in', cpmg_frq=1000.0)
debug> GUI interpreter:  Applying the relax_disp.cpmg_frq user
function for synchronous execution.
The spectrum ID '800_1000.in' CPMG frequency is set to 1000.0 Hz.
debug> Observer: 'gui_uf' notifying the 'spin count - relax_disp (Wed
Apr 23 13:39:46 2014)' method update_spin_count().
debug> Observer: 'gui_uf' notifying the 'clusters - relax_disp (Wed
Apr 23 13:39:46 2014)' method update_clusters().
debug> Observer: 'gui_uf' notifying the 'spectra list: 0' method
build_element().
debug> Observer: 'gui_uf' notifying the 'relax_disp.cpmg_frq' method
update_args().
debug> Observer: 'gui_uf' unregistering 'relax_disp.cpmg_frq'.
debug> Observer: 'gui_uf' unregistering 'relax_disp.cpmg_frq'.
debug> The key 'relax_disp.cpmg_frq' does not exist.
debug> Observer: 'gui_uf' unregistering 'relax_disp.cpmg_frq'.
debug> The key 'relax_disp.cpmg_frq' does not exist.
debug> Observer: 'gui_uf' registering the 'relax_disp.cpmg_frq' method
update_args().
debug> Observer: 'gui_uf' unregistering 'relax_disp.cpmg_frq'.

These are just messages from the status singleton object.  This is
specifically the status.observers.gui_uf observer object for the GUI
user functions (https://en.wikipedia.org/wiki/Observer_pattern).  You
will see that 'relax_disp.cpmg_frq' is registered in this object
earlier on and it is removed or unregistered here.  The problem is
that is it unregistered 3 times.  This is to avoid bugs, by
unregistering it from multiple code locations, but it results in these
messages when in debug mode.  It is better to have such a situation
than to somehow have it remain registered - that will result in fatal
wxPython segfaults.

If you're interested, this observer design pattern is used to keep
everything up to date.  In the case of the relax_disp.cpmg_frq user
function, this will make sure that the spectrum ID string list is
always up to date.  For example if you leave the user function window
open and then run the spectrum.read_intensities user function (or it
could be run from a script or something else in the background).  The
list of spectrum IDs will have changed.  The spectrum.read_intensities
user function will notify status.observers.gui_uf when complete (as
all GUI user functions do).  As relax_disp.cpmg_frq has the
update_args() method registered with status.observers.gui_uf, that
method will be run and the relax_disp.cpmg_frq user function window
spectrum ID string list will be updated.  The observer object is a
very common method for keeping things up to date and synchronised in a
GUI - well, it is pretty much essential.  It is used everywhere in the
GUI.  For example the pipe editor window to make sure all data pipes
are listed (or removed from the list), that the spin editor window
always shows the correct molecule, residue and spin structure, etc.
If you notice that some GUI element contains the wrong information or
is not updated, then that's the time we need to look at modifying the
observer objects of the status singleton object.

Regards,

Edward


On 23 April 2014 13:15, Troels Emtekær Linnet <tlin...@nmr-relax.com> wrote:
> It passes fine.
>
> But I just saw these messages, and thought something is wrong?
>
> Best
> troels
>
>
> 2014-04-23 13:09 GMT+02:00 Edward d'Auvergne <edw...@nmr-relax.com>:
>
>> Hi,
>>
>> Does this GUI test not pass on your system?  Or have you modified the
>> test and it now no longer works?
>>
>> Cheers,
>>
>> Edward
>>
>>
>>
>> On 23 April 2014 12:46, Troels Emtekær Linnet <tlin...@nmr-relax.com>
>> wrote:
>> > Hi Edward.
>> >
>> > I see some errors:
>> >
>> > The key 'relax_disp.cpmg_frq' does not exist.
>> >
>> > it is from this block.
>> >
>> >         if status.relax_mode != 'gui' and wx.version() != '2.9.4.1 gtk2
>> > (classic)':
>> >             analysis.peak_intensity.action_relax_disp_cpmg_frq(item=4)
>> >             uf_store['relax_disp.cpmg_frq'].wizard._go_next()
>> >             interpreter.flush()
>> >             analysis.peak_intensity.action_relax_disp_exp_type(item=5)
>> >             uf_store['relax_disp.exp_type'].wizard._go_next()
>> >             interpreter.flush()
>> >             analysis.peak_intensity.action_relax_disp_relax_time(item=0)
>> >             uf_store['relax_disp.relax_time'].wizard._go_next()
>> >             interpreter.flush()
>> >             analysis.peak_intensity.action_spectrometer_frq(item=10)
>> >             uf_store['spectrometer.frequency'].wizard._go_next()
>> >             interpreter.flush()
>> >
>> >
>> > Best
>> > Troels
>> >
>> >
>> > 2014-04-23 11:29 GMT+02:00 Edward d'Auvergne <edw...@nmr-relax.com>:
>> >>
>> >> Awesome!  That's exactly the change I would have made.
>> >>
>> >> I would also suggest to try to increase the system test coverage of
>> >> this to make sure it works in all cases, as well as to make sure that
>> >> any future code refactorisation or expansion doesn't break this.  The
>> >> easiest way is to simply add more checks to an already existing test.
>> >> But the only one possible is the Relax_disp.test_hansen_trunc_data GUI
>> >> test as I mentioned at
>> >> http://thread.gmane.org/gmane.science.nmr.relax.devel/5302/focus=5307.
>> >>  Would you like to add a couple of self.assertEqual() checks to that
>> >> test, just after the peak height error analysis, to make sure that the
>> >> code works when variance averaging over different SD values is
>> >> preformed?  Such checks would really make the code robust to future
>> >> changes.
>> >>
>> >> Cheers,
>> >>
>> >> Edward
>> >>
>> >>
>> >> On 23 April 2014 10:37,  <tlin...@nmr-relax.com> wrote:
>> >> > Author: tlinnet
>> >> > Date: Wed Apr 23 10:37:58 2014
>> >> > New Revision: 22835
>> >> >
>> >> > URL: http://svn.gna.org/viewcvs/relax?rev=22835&view=rev
>> >> > Log:
>> >> > Fix for bug. The variances used to calculated std, should only be
>> >> > taken
>> >> > from those which are defined in the subset.
>> >> >
>> >> > Regarding bug #21954, (https://gna.org/bugs/index.php?21954) - Order
>> >> > of
>> >> > spectrum.error_analysis is important.
>> >> >
>> >> > Modified:
>> >> >     trunk/pipe_control/spectrum.py
>> >> >
>> >> > Modified: trunk/pipe_control/spectrum.py
>> >> > URL:
>> >> >
>> >> > http://svn.gna.org/viewcvs/relax/trunk/pipe_control/spectrum.py?rev=22835&r1=22834&r2=22835&view=diff
>> >> >
>> >> >
>> >> > ==============================================================================
>> >> > --- trunk/pipe_control/spectrum.py      (original)
>> >> > +++ trunk/pipe_control/spectrum.py      Wed Apr 23 10:37:58 2014
>> >> > @@ -183,6 +183,10 @@
>> >> >
>> >> >          # Loop over all time points.
>> >> >          for id in cdp.var_I.keys():
>> >> > +            # Only use id's defined in subset
>> >> > +            if id not in subset:
>> >> > +                continue
>> >> > +
>> >> >              # Single spectrum (or extraordinarily accurate NMR
>> >> > spectra!).
>> >> >              if cdp.var_I[id] == 0.0:
>> >> >                  continue
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > relax (http://www.nmr-relax.com)
>> >> >
>> >> > This is the relax-commits mailing list
>> >> > relax-comm...@gna.org
>> >> >
>> >> > To unsubscribe from this list, get a password
>> >> > reminder, or change your subscription options,
>> >> > visit the list information page at
>> >> > https://mail.gna.org/listinfo/relax-commits
>> >>
>> >> _______________________________________________
>> >> relax (http://www.nmr-relax.com)
>> >>
>> >> This is the relax-devel mailing list
>> >> relax-devel@gna.org
>> >>
>> >>
>> >> To unsubscribe from this list, get a password
>> >> reminder, or change your subscription options,
>> >> visit the list information page at
>> >> https://mail.gna.org/listinfo/relax-devel
>> >
>> >
>
>

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@gna.org

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to