<div dir="ltr"><div>Hello everyone,<br><br>Thanks Utkarsh for this answer.<br>It works with pvpython.<br>Unfortunately, this does not work with paraview<br></div>I have tested manually from a desktop version of Paraview, with Paraview 4.4 and 5.0 on Windows.<br><div><div>I have this error:<br>NameError: global name 'meta_data' is not defined<br><br></div><div>In fact, I have found another solution to do what I want from Paraview<br></div><div>I declare the new variables as member in the RequestInformationScript (self.data=12) and I use them in the Script (print(self.data))<br></div><div>However,this has some drawbacks. When I update the paraview tree, eg I update the size of an unrelated glyph, the value changes, and consequently breaks my scene<br></div><div><br>Moreover, when I test it with pvpython, it clearly tells me that it is not <br>from paraview.simple import ProgrammableSource<br>from paraview.simple import UpdatePipeline<br><br>>>> p = ProgrammableSource();p.Script = 'print(self.x)';p.RequestInformationScript = 'self.x=12';UpdatePipeline()<br><br>Traceback (most recent call last):<br>  File "<stdin>", line 1, in <module><br>  File "C:\Program Files\ParaView 5.0.0\lib\paraview-5.0\site-packages\paraview\servermanager.py", line 302, in __setattr__    "to add this attribute.")<br>AttributeError: Attribute RequestInformationScript does not exist.  This class does not allow addition of new attributes to avoid mistakes due to typos. Use add_attribute() if you really want to add this attribute.<br><br>p = ProgrammableSource();p.Script = 'print(self.x)';p.add_attribute('x',12);UpdatePipeline()<br></div><div>But, how to use this attribute?<br></div><div>May be I need to play with parameters?<br></div><div><br><br>This finds some echoes here, where apparently the only solution proposed is to ascii write the data to pass to the script.<br><a href="https://cmake.org/pipermail/paraview/2013-May/028291.html">https://cmake.org/pipermail/paraview/2013-May/028291.html</a><br>This is clearly not a solution for me.<br></div><div><br><div class="gmail_extra"><br><div class="gmail_quote">2016-01-04 20:22 GMT+01:00 Utkarsh Ayachit <span dir="ltr"><<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The following works in builtin (non-remote server) mode only.<br>
<br>
global meta_data<br>
meta_data =12<br>
<br>
p = ProgrammableSource()<br>
p.Script="""<br>
global meta_data<br>
print meta_data<br>
"""<br>
<br>
UpdatePipeline()<br>
<br>
--------------------------------------------<br>
Output:<br>
--------------------------------------------<br>
12<br>
<br>
Utkarsh<br>
<div><div class="h5"><br>
On Wed, Dec 30, 2015 at 9:03 AM, Guillaume Jacquenot<br>
<<a href="mailto:guillaume.jacquenot@gmail.com">guillaume.jacquenot@gmail.com</a>> wrote:<br>
> I would like to use Python declared variables inside new scripts from<br>
> ProgrammableSource and/or ProgrammableFilter.<br>
><br>
> Why do I want such a thing? I could simply declared these variables in the<br>
> code of the script.<br>
> But what if these variables are to be used by several scripts from<br>
> ProgrammableSource and/or ProgrammableFilter?<br>
><br>
> Of course, I can serialize variables and pass the serialized data to the<br>
> scripts, taking special care for float. But, what if I have large data, that<br>
> are difficult to serialize?<br>
><br>
> So, here is my question:<br>
> Is there a mechanism to access already defined data inside the scripts of<br>
> ProgrammableSource and/or ProgrammableFilter? For example, a global scope<br>
> dict?<br>
> Do I have to use an external file to store and access data?<br>
> Below is the example of the Python file I would like to run , where I have<br>
> defined a 'data' that I want to access inside the script. If I try to<br>
> directly access 'data', I have a "NameError: global name 'data' is not<br>
> defined"<br>
><br>
> My data are in fact transformation matrices that will be used to move<br>
> objects from a ProgrammableFilter. Using the Animation Keyframes are<br>
> terribly slow.<br>
><br>
> Guillaume<br>
><br>
><br>
><br>
> Python script:<br>
><br>
>     data = ....<br>
><br>
>     script="""<br>
>     instructions to access "data" at run time<br>
>     ...<br>
>     """<br>
><br>
>     scriptRequestInformation="""<br>
>     ...<br>
>     """<br>
><br>
>     source = ProgrammableSource()<br>
>     source.OutputDataSetType = 'vtkStructuredGrid'<br>
>     source.Script = script<br>
>     source.ScriptRequestInformation = scriptRequestInformation<br>
>     source.PythonPath = ''<br>
><br>
</div></div>> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the ParaView Wiki at:<br>
> <a href="http://paraview.org/Wiki/ParaView" rel="noreferrer" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
><br>
> Search the list archives at: <a href="http://markmail.org/search/?q=ParaView" rel="noreferrer" target="_blank">http://markmail.org/search/?q=ParaView</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/paraview" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/paraview</a><br>
><br>
</blockquote></div><br></div></div></div></div>