Hi Jared,

The extend function must set an attribute "my_func" on cmd. You can test
for that with hasattr:

while not hasattr(cmd, "my_func"):
    # wait some more

Hope it helps,

Tsjerk
On Feb 16, 2016 20:07, "Sampson, Jared M." <jms2...@cumc.columbia.edu>
wrote:

> To my previous message I should add that it works fine if I do:
>
> ```
> import pmg_tk.startup.my_plugin as mp
> mp.my_func()
> ```
>
> but I'd like to use the `cmd.my_func()` version, so that `my_func` will
> work in a .pml script.
>
> From `help(cmd)` I found `cmd.kw_list`, but this apparently doesn't
> include "extended" functions, even after the function is loaded.
>
> ```
> PyMOL>print 'ray' in cmd.kw_list
> True
> PyMOL>print 'my_func' in cmd.kw_list
> False
> ```
>
> Looking forward to any suggestions.  Thanks!
>
> Cheers,
> Jared
>
> --
> Jared Sampson
> Columbia University
>
> On Feb 16, 2016, at 1:50 PM, Sampson, Jared M. <jms2...@cumc.columbia.edu>
> wrote:
>
> Hi PyMOLers -
>
> Maybe some more experienced users/developers can help me out here.  I'm
> trying to write some automated test scripts for the plugin I'm writing, but
> the test functions end up running before the plugin is loaded.  Is there a
> way to tell if a plugin has been loaded from within a .pml or .py script?
> For example, if the plugin makes commands available via
> `cmd.extend('my_func', my_func)`, how can I run `cmd.myfunc()` from a
> script and not have it execute before the plugin finishes loading?
>
> I've tried something like this:
>
> ```
> import time
> from pymol import cmd
> loaded = 0
> while not loaded:
>     try:
>         cmd.my_func()  # if it's loaded no exception will be raised
>         loaded = 1
>     except:
>         time.sleep(0.5)
> ```
>
> But this just hangs, as apparently `time.sleep()` halts the execution of
> all threads, so the plugin won't ever be loaded.
>
> Thanks,
> Jared
>
> --
> Jared Sampson
> Columbia University
>
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
>
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140_______________________________________________
> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
>
>
>
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> _______________________________________________
> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
>
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net

Reply via email to