Skip to main content

Dear all, 

 

I am facing the following issue - sounds very simple : I have a 2-column table that gives a mapping oldname->newname that I store in a dictionnary inside a PythonCaller ; in another PythonCaller, I need to use this dictionary.

So far, I am doing the following : 

1) in Python Start-up script, I define a global variable

global mydict
mydict = {}

2) in the 1st PythonCaller : I populate a dictionary in the `input`function and then in the `close`function , I update the value of the global`all_progs` 

class FeatureProcessor(object):
    def __init__(self):
        tmpdict={}
        pass
    def input(self,feature):
        # do something like :
        tmpdictÂ'oldname'] = 'newname'
 
    def close(self):
        mydict = tmpdict
        pass

3) in the 2nd PythonCaller I would like to use this dictionary ; but when I try iterating over the dict `mydict` in the 2nd PythonCaller, it looks empty...

 

What am I doing wrong ? How could I pass the values from a PythonCaller to another ? 

 

Should I put something in the part "Attributes to Expose" for updating a global Python variable ? (I've tried several things, but sofar without success...)

 

Thanks in advance for any suggestion

Try something like this:

    class FeatureProcessor(object):
        def __init__(self):
            pass
 
        def input(self,feature):
            global mydict
            mydictÂ'oldname'] = 'newname'
     
        def close(self):
            pass

 


Reply