Thank you for the confirmation Daniel
> BTW, lists of decorators and particles are automatically inter-converted, so you can just to > IMP.container.ListSingletonContainer(rigidChains.values())
Are you sure this works with Version 1.0 ? I tried it, but it would not run, neither than replacing lsc.add_particle(rb.get_particle()) by lsc.add_particle(rb)
both result in the following error message :
Traceback (most recent call last): File "/Users/schwarz/Dev/IMPstuff/src/tests/fit_with_restraints_test/fitWithRestraints.py", line 117, in <module> lsc = IMP.container.ListSingletonContainer(rigidChains.values()) File "/usr/local/lib/python2.6/site-packages/IMP/container/__init__.py", line 425, in __init__ this = _IMP_container.new_ListSingletonContainer(*args) NotImplementedError: Wrong number of arguments for overloaded function 'new_ListSingletonContainer'. Possible C/C++ prototypes are: IMP::container::ListSingletonContainer(IMP::Particles const &,std::string) IMP::container::ListSingletonContainer(IMP::Particles const &) IMP::container::ListSingletonContainer(std::string) IMP::container::ListSingletonContainer() IMP::container::ListSingletonContainer(char const *)
In fact, I intuitively expected the behavior you describe since in the few implementations of the Decorator design pattern I have seen to this date, the Decorator always inherited from the "decorated". According to the doc, in IMP this seems not to be the case : unless I missed the point; a XYZ or a RigidBody is not a Particle.
--Ben