<div dir="ltr"><div>Very cool, Shuhao. Thanks for sharing this with the ParaView community!<br><br></div>Cory<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 14, 2018 at 2:39 PM, Shuhao Wu <span dir="ltr"><<a href="mailto:shuhao@shuhaowu.com" target="_blank">shuhao@shuhaowu.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello all,<br>
<br>
I hope this is not too spammy/self promoting, but I wanted to share a small library that I created to wrap such that you create Python Programmable Filters with custom property panel options from a regular python file. The work is inspired by this blog post[1].<br>
<br>
The library based system allows you to write your programmable filter such that it will work outside of paraview so you can possibly mock the inputs/outputs and run unit tests on then, while also allowing easy export into a XML plugins to feed into Paraview for execution. This should allow one to create higher quality, reusable filters. The library is available at: <a href="https://github.com/shuhaowu/pvpyfilter" rel="noreferrer" target="_blank">https://github.com/shuhaowu/pv<wbr>pyfilter</a>. If there is enough interest in this, and once I get to test it more, I can release this onto PyPI for easier access.<br>
<br>
A short example of this in action (longer one available in the repository, complete with screenshots):<br>
<br>
class ViscosityType(Enum):<br>
  Kinematic = 1<br>
  Dynamic   = 2<br>
<br>
class MyFilter(ProgrammableFilter):<br>
  label = "My Filter"<br>
  input_data_type  = "vtkPolyData"<br>
<br>
  nu = Double("Viscousity", default=1.53e-5, slider=[0, 1e-4], help="...")<br>
  nu_type = IntegerEnum("Type", default=ViscosityType.Kinemati<wbr>c, enum=ViscosityType)<br>
<br>
  @staticmethod<br>
  def request_data(inputs, outputs, nu, nu_type):<br>
    print(nu)<br>
    print(nu_type)<br>
<br>
[1]: <a href="https://blog.kitware.com/easy-customization-of-the-paraview-python-programmable-filter-property-panel/" rel="noreferrer" target="_blank">https://blog.kitware.com/easy-<wbr>customization-of-the-paraview-<wbr>python-programmable-filter-pro<wbr>perty-panel/</a> --  I cannot find the script download from that link and had to get it from somewhere else on the internet.<br>
<br>
Shuhao<br>
______________________________<wbr>_________________<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 <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView" rel="noreferrer" target="_blank">http://paraview.org/Wiki/ParaV<wbr>iew</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=<wbr>ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/paraview" rel="noreferrer" target="_blank">https://public.kitware.com/mai<wbr>lman/listinfo/paraview</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Cory Quammen<br>Staff R&D Engineer<br>Kitware, Inc.</div>
</div>