[kepler-dev] Python actor as class issue
cxh at eecs.berkeley.edu
Thu May 29 14:59:32 PDT 2008
I can replicate the problem of using the Python actor inside an
actor oriented class.
I've attached a Ptolemy specific test case, which is now in the tree
Usually, these problems are caused by cloning bugs. We've been
discussing these bugs lately and I have tests checked in that
identify PythonScript._model as not properly being cloned.
ptolemy/configs/test/allConfigs.tcl runs the Configuration.check()
method which checks the actors in the configuration.
One of the errors is:
The _class org.python.core.PyClass field the clone of
"ptolemy.actor.lib.python.PythonScript" does not point to an object
distinct from the master.
The clone(Workspace) method should have a line like:
newObject._class = (ptolemy.actor.lib.python.PythonScript)newObject
/* Get the object method or null? */ _class;
Unfortunately, my test above is not complete, since not just _class,
but other private variables need to be added to
However, when I add all the private variables, then the
test passes. So, if you do a cvs update of ptII, the problem
should be fixed
Thanks for pointing this out. I'm working on the other clone
problems, but there are plenty of them and I'm still refining
Once I get the test working, it will be easy to run it on the Kepler
actors via the about:copyright facility. Then we can identify
Kepler actors that need clone(Workspace) methods. The only
real problem caused by an incomplete clone(Workspace) method
is that Actor Oriented Classes become disoriented :-)
Chad Berkley wrote:
> Hey Norbert,
> I have no experience with the jython actor, so I guess I'm not the guy
> to ask. I know dan higgins (higgins at nceas.ucsb.edu) has done a bunch
> with it. He might know.
> Norbert Podhorszki wrote:
>> Hi Christopher and Chad,
>> I am seemingly getting used to the jython actor. I have now two of them.
>> I have tried to make a class from a jython actor and to use instances
>> in the
>> workflow but it seems not to work: only one of them (the latest instance)
>> works. Here is a simple pass-it-on actor made to be a class with two
>> instances. You will see that only the second instance produces output.
>> If you change the PN director to SDF, you get exception for the buffer
>> at the first instance, so it looks it is not fired by SDF at all.
>> Do you have any idea why the "classification" does not work with
>> Currently, I have copies of the actor in the workflow and it works
>> that way.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 12097 bytes
Desc: not available
Url : http://mercury.nceas.ucsb.edu/ecoinformatics/pipermail/kepler-dev/attachments/20080529/8e370556/attachment-0001.xml
More information about the Kepler-dev