Thanks for the quick answer Thomas! Yes, I will need multiple instances so I will work with the proxy then.
Best, Soren On Tue, Feb 12, 2019 at 9:11 AM Thomas Holder <thomas.hol...@schrodinger.com> wrote: > Hi Soren, > > Very interesting script, thanks for sharing! > > It looks like pymol2.PyMOL() doesn't work with the util module. It would > need to wrap all util functions and pass the "_self" argument with every > function call, just like pymol2.cmd2.Cmd does. > > It works for me if I use pymol2.SingletonPyMOL() instead. That's what we > use with the PyQt interface. This "singleton" version uses the global > pymol.cmd and pymol.util modules as the API. You can only have one instance > of the singleton. > > If you want multiple instances with pymol2.PyMOL(), you'll need to do the > wrapping. For example like this: > > class SelfProxy: > def __init__(self, proxied, _self): > self._self = _self > self.proxied = proxied > def __getattr__(self, key): > v = getattr(self.proxied, key) > def wrapper(*a, **k): > k['_self'] = self._self > return v(*a, **k) > return wrapper > > # and after "self._pymol.start()": > import pymol.util > self._pymol.util = SelfProxy(pymol.util, self._pymol.cmd) > > I've tested this and it works with the color menu. > > Cheers, > Thomas > > > On Feb 12, 2019, at 8:26 AM, Søren Nielsen <soren.skou.niel...@gmail.com> > wrote: > > > > > > Hi, > > > > I am using pymol with a wxpython interface and everything seems to work, > except when I try to change the color of an object using the internal gui, > I get a NameError: name 'util' is not defined error... can you see what is > the problem here? > > > > Best, > > Soren > > -- > Thomas Holder > PyMOL Principal Developer > Schrödinger, Inc. > >
_______________________________________________ PyMOL-users mailing list Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net Unsubscribe: https://sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe