<ServerManagerConfiguration>
  <ProxyGroup name="filters">
    <SourceProxy class="vtkPythonCalculator"
                 label="Python Calculator"
                 name="PythonCalculator">
      <Documentation long_help="This filter evaluates a Python expression"
                     short_help="Evaluates a Python expression">This filter
                     uses Python to calculate an expression. It depends heavily
                     on the numpy and paraview.vtk modules. To use the parallel
                     functions, mpi4py is also necessary. The expression is
                     evaluated and the resulting scalar value or numpy array is
                     added to the output as an array. See numpy and
                     paraview.vtk documentation for the list of available
                     functions. This filter tries to make it easy for the user
                     to write expressions by defining certain variables. The
                     filter tries to assign each array to a variable of the
                     same name. If the name of the array is not a valid Python
                     variable, it has to be accessed through a dictionary
                     called arrays (i.e. arrays['array_name']). The points can
                     be accessed using the points variable.</Documentation>
      <InputProperty clean_command="RemoveAllInputs"
                     command="AddInputConnection"
                     multiple_input="1"
                     name="Input">
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataSet" />
        </DataTypeDomain>
        <Documentation>Set the input of the filter.</Documentation>
      </InputProperty>
      <StringVectorProperty command="SetExpression"
                            name="Expression"
                            number_of_elements="1">
        <Documentation>The Python expression evaluated during
        execution.</Documentation>
      </StringVectorProperty>
      <IntVectorProperty command="SetArrayAssociation"
                         default_values="0"
                         name="ArrayAssociation"
                         number_of_elements="1">
        <EnumerationDomain name="enum">
          <Entry text="Point Data"
                 value="0" />
          <Entry text="Cell Data"
                 value="1" />
        </EnumerationDomain>
        <Documentation>This property controls the association of the output
        array as well as which arrays are defined as variables.</Documentation>
      </IntVectorProperty>
      <StringVectorProperty command="SetArrayName"
                            default_values="result"
                            name="ArrayName"
                            number_of_elements="1">
        <Documentation>The name of the output array.</Documentation>
      </StringVectorProperty>
      <IntVectorProperty animateable="0"
                         command="SetCopyArrays"
                         default_values="1"
                         name="CopyArrays"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>If this property is set to true, all the cell and point
        arrays from first input are copied to the output.</Documentation>
      </IntVectorProperty>
      <!-- End PythonCalculator -->
    </SourceProxy>
    <SourceProxy class="vtkAnnotateGlobalDataFilter"
                 label="Annotate Global Data"
                 name="AnnotateGlobalData">
      <InputProperty clean_command="RemoveAllInputs"
                     command="AddInputConnection"
                     multiple_input="1"
                     name="Input">
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataSet" />
        </DataTypeDomain>
        <InputArrayDomain attribute_type="none"
                          name="input_array"
                          number_of_components="1" />
        <Documentation>Set the input of the filter.</Documentation>
      </InputProperty>
      <StringVectorProperty command="SetFieldArrayName"
                            name="SelectArrays"
                            number_of_elements="1">
        <ArrayListDomain name="array_list">
          <RequiredProperties>
            <Property function="Input"
                      name="Input" />
          </RequiredProperties>
        </ArrayListDomain>
        <Documentation>Choose arrays that is going to be
        displayed</Documentation>
      </StringVectorProperty>
      <StringVectorProperty command="SetPrefix"
                            default_values="Value is: "
                            name="Prefix"
                            number_of_elements="1">
        <Documentation>Text that is used as a prefix to the field
        value</Documentation>
      </StringVectorProperty>
      <Hints>
        <Visibility replace_input="0" />
        <OutputPort index="0"
                    name="Output-0"
                    type="text" />
      </Hints>
      <!-- End AnnotateGlobalData -->
    </SourceProxy>
    <SourceProxy class="vtkPythonAnnotationFilter"
                 label="Python Annotation"
                 name="PythonAnnotation">
      <Documentation long_help="This filter evaluates a Python expression for a text annotation"
                     short_help="Evaluates a Python expression for a text annotation">
                     This filter uses Python to calculate an expression. It
                     depends heavily on the numpy and paraview.vtk modules. To
                     use the parallel functions, mpi4py is also necessary. The
                     expression is evaluated and the resulting scalar value or
                     numpy array is added to the output as an array. See numpy
                     and paraview.vtk documentation for the list of available
                     functions. This filter tries to make it easy for the user
                     to write expressions by defining certain variables. The
                     filter tries to assign each array to a variable of the
                     same name. If the name of the array is not a valid Python
                     variable, it has to be accessed through a dictionary
                     called arrays (i.e. arrays['array_name']).</Documentation>
      <InputProperty clean_command="RemoveAllInputs"
                     command="AddInputConnection"
                     multiple_input="1"
                     name="Input">
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataSet" />
        </DataTypeDomain>
        <Documentation>Set the input of the filter.</Documentation>
      </InputProperty>
      <StringVectorProperty command="SetPythonExpression"
                            name="Expression"
                            number_of_elements="1">
        <Documentation>The Python expression evaluated during execution.
        FieldData arrays are direclty available through their name. Set of
        provided variables [input, t_value, t_steps, t_range, t_index,
        FieldData, PointData, CellData] (i.e.: "Momentum: (%f, %f, %f)" %
        (XMOM[t_index,0], YMOM[t_index,0], ZMOM[t_index,0]) )</Documentation>
      </StringVectorProperty>
      <StringVectorProperty command="GetAnnotationValue"
                            information_only="1"
                            name="AnnotationValue">
        <Documentation>Text that is used as annotation</Documentation>
      </StringVectorProperty>
      <Hints>
        <Visibility replace_input="0" />
        <OutputPort index="0"
                    name="Output-0"
                    type="text" />
      </Hints>
      <!-- End PythonAnnotation -->
    </SourceProxy>
    <SourceProxy class="vtkPythonProgrammableFilter"
                 label="Programmable Filter"
                 name="ProgrammableFilter">
      <Documentation long_help="Executes a user supplied python script on its input dataset to produce an output dataset."
                     short_help="Executes a python script to produce data.">
                     This filter will execute a python script to produce an
                     output dataset. The filter keeps a copy of the python
                     script in Script, and creates Interpretor, a python
                     interpretor to run the script upon the first
                     execution.</Documentation>
      <InputProperty clean_command="RemoveAllInputs"
                     command="AddInputConnection"
                     multiple_input="1"
                     name="Input">
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataObject" />
        </DataTypeDomain>
        <Documentation>This property specifies the input(s) to the programmable
        filter.</Documentation>
      </InputProperty>
      <IntVectorProperty command="SetOutputDataSetType"
                         default_values="8"
                         name="OutputDataSetType"
                         number_of_elements="1"
                         panel_visibility="default">
        <EnumerationDomain name="enum">
          <!-- Values come from vtkType.h-->
          <Entry text="Same as Input"
                 value="8" />
          <!-- text="vtkDataSet" -->
          <Entry text="vtkPolyData"
                 value="0" />
          <!-- <Entry value="1" text="vtkStructuredPoints"/> -->
          <Entry text="vtkStructuredGrid"
                 value="2" />
          <Entry text="vtkRectilinearGrid"
                 value="3" />
          <Entry text="vtkUnstructuredGrid"
                 value="4" />
          <!-- <Entry value="5" text="vtkPiecewiseFunction"/> -->
          <Entry text="vtkImageData"
                 value="6" />
          <!-- <Entry value="7" text="vtkDataObject"/> -->
          <!-- <Entry value="9" text="vtkPointSet"/> -->
          <Entry text="vtkUniformGrid"
                 value="10" />
          <!-- <Entry value="11" text="vtkCompositeDataSet"/> -->
          <Entry text="vtkMultiblockDataSet"
                 value="13" />
          <Entry text="vtkHierarchicalBoxDataSet"
                 value="15" />
          <!-- <Entry value="16" text="vtkGenericDataSet"/> -->
          <!-- <Entry value="17" text="vtkHyperOctree"/> -->
          <!-- <Entry value="18" text="vtkTemporalDataSet"/> -->
          <Entry text="vtkTable"
                 value="19" />
          <!-- <Entry value="20" text="vtkGraph"/> -->
          <!-- <Entry value="21" text="vtkTree"/> -->
        </EnumerationDomain>
        <Documentation>The value of this property determines the dataset type
        for the output of the programmable filter.</Documentation>
      </IntVectorProperty>
      <StringVectorProperty command="SetScript"
                            name="Script"
                            number_of_elements="1"
                            panel_visibility="default">
        <Hints>
          <Widget type="multi_line" />
        </Hints>
        <Documentation>This property contains the text of a python program that
        the programmable filter runs.</Documentation>
      </StringVectorProperty>
      <StringVectorProperty command="SetInformationScript"
                            label="RequestInformation Script"
                            name="InformationScript"
                            number_of_elements="1"
                            panel_visibility="advanced">
        <Hints>
          <Widget type="multi_line" />
        </Hints>
        <Documentation>This property is a python script that is executed during
        the RequestInformation pipeline pass. Use this to provide information
        such as WHOLE_EXTENT to the pipeline downstream.</Documentation>
      </StringVectorProperty>
      <StringVectorProperty command="SetUpdateExtentScript"
                            label="RequestUpdateExtent Script"
                            name="UpdateExtentScript"
                            number_of_elements="1"
                            panel_visibility="advanced">
        <Hints>
          <Widget type="multi_line" />
        </Hints>
        <Documentation>This property is a python script that is executed during
        the RequestUpdateExtent pipeline pass. Use this to modify the update
        extent that your filter ask up stream for.</Documentation>
      </StringVectorProperty>
      <IntVectorProperty animateable="0"
                         command="SetCopyArrays"
                         default_values="0"
                         name="CopyArrays"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>If this property is set to true, all the cell and point
        arrays from first input are copied to the output.</Documentation>
      </IntVectorProperty>
      <StringVectorProperty animateable="0"
                            clean_command="ClearParameters"
                            command="SetParameter"
                            is_internal="1"
                            name="Parameters"
                            number_of_elements_per_command="2"
                            repeat_command="1"></StringVectorProperty>
      <StringVectorProperty command="SetPythonPath"
                            name="PythonPath"
                            number_of_elements="1"
                            panel_visibility="advanced">
        <Documentation>A semi-colon (;) separated list of directories to add to
        the python library search path.</Documentation>
      </StringVectorProperty>
      <!-- End ProgrammableFilter -->
    </SourceProxy>
  </ProxyGroup>
  <!-- =================================================================== -->
  <ProxyGroup name="sources">
    <SourceProxy class="vtkPythonProgrammableFilter"
                 label="Programmable Source"
                 name="ProgrammableSource">
      <Documentation long_help="Executes a user supplied python script to produce an output dataset."
                     short_help="Executes a python script to produce data.">
                     This source will execute a python script to produce an
                     output dataset. The source keeps a copy of the python
                     script in Script, and creates Interpretor, a python
                     interpretor to run the script upon the first
                     execution.</Documentation>
      <IntVectorProperty command="SetOutputDataSetType"
                         default_values="0"
                         name="OutputDataSetType"
                         number_of_elements="1"
                         panel_visibility="default">
        <EnumerationDomain name="enum">
          <!-- Values come from vtkType.h-->
          <!-- <Entry value="8" text="Same as Input"/> -->
          <!-- text="vtkDataSet" -->
          <Entry text="vtkPolyData"
                 value="0" />
          <!-- <Entry value="1" text="vtkStructuredPoints"/> -->
          <Entry text="vtkStructuredGrid"
                 value="2" />
          <Entry text="vtkRectilinearGrid"
                 value="3" />
          <Entry text="vtkUnstructuredGrid"
                 value="4" />
          <!-- <Entry value="5" text="vtkPiecewiseFunction"/> -->
          <Entry text="vtkImageData"
                 value="6" />
          <!-- <Entry value="7" text="vtkDataObject"/> -->
          <!-- <Entry value="9" text="vtkPointSet"/> -->
          <!-- <Entry value="10" text="vtkUniformGrid"/> -->
          <!-- <Entry value="11" text="vtkCompositeDataSet"/> -->
          <!-- <Entry value="12" text="vtkMultigroupDataSet"/> -->
          <Entry text="vtkMultiblockDataSet"
                 value="13" />
          <!-- <Entry value="14" text="vtkHierarchicalDataSet"/> -->
          <Entry text="vtkHierarchicalBoxDataSet"
                 value="15" />
          <!-- <Entry value="16" text="vtkGenericDataSet"/> -->
          <!-- <Entry value="17" text="vtkHyperOctree"/> -->
          <!-- <Entry value="18" text="vtkTemporalDataSet"/> -->
          <Entry text="vtkTable"
                 value="19" />
          <!-- <Entry value="20" text="vtkGraph"/> -->
          <!-- <Entry value="21" text="vtkTree"/> -->
        </EnumerationDomain>
        <Documentation>The value of this property determines the dataset type
        for the output of the programmable source.</Documentation>
      </IntVectorProperty>
      <StringVectorProperty command="SetScript"
                            name="Script"
                            number_of_elements="1"
                            panel_visibility="default">
        <Hints>
          <Widget type="multi_line" />
        </Hints>
        <Documentation>This property contains the text of a python program that
        the programmable source runs.</Documentation>
      </StringVectorProperty>
      <StringVectorProperty command="SetInformationScript"
                            label="Script (RequestInformation)"
                            name="InformationScript"
                            number_of_elements="1"
                            panel_visibility="advanced">
        <Hints>
          <Widget type="multi_line" />
        </Hints>
        <Documentation>This property is a python script that is executed during
        the RequestInformation pipeline pass. Use this to provide information
        such as WHOLE_EXTENT to the pipeline downstream.</Documentation>
      </StringVectorProperty>
      <StringVectorProperty animateable="0"
                            clean_command="ClearParameters"
                            command="SetParameter"
                            is_internal="1"
                            name="Parameters"
                            number_of_elements_per_command="2"
                            repeat_command="1"></StringVectorProperty>
      <StringVectorProperty command="SetPythonPath"
                            name="PythonPath"
                            number_of_elements="1"
                            panel_visibility="advanced">
        <Documentation>A semi-colon (;) separated list of directories to add to
        the python library search path.</Documentation>
      </StringVectorProperty>
      <!-- End ProgrammableSource -->
    </SourceProxy>
  </ProxyGroup>
  <!-- =================================================================== -->
  <ProxyGroup name="animation">
    <Proxy class="vtkPythonAnimationCue"
           name="PythonAnimationCue"
           processes="client">
      <Documentation>Animation cue that can use python script for
      animation.</Documentation>
      <IntVectorProperty command="SetEnabled"
                         default_values="1"
                         name="Enabled"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>Enables this animation cue.</Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetTimeMode"
                         default_values="0"
                         name="TimeMode"
                         number_of_elements="1">
        <EnumerationDomain name="enum">
          <Entry text="Normalized"
                 value="0" />
          <Entry text="Relative"
                 value="1" />
        </EnumerationDomain>
      </IntVectorProperty>
      <DoubleVectorProperty command="SetStartTime"
                            default_values="0"
                            name="StartTime"
                            number_of_elements="1"></DoubleVectorProperty>
      <DoubleVectorProperty command="SetEndTime"
                            default_values="1"
                            name="EndTime"
                            number_of_elements="1"></DoubleVectorProperty>
      <StringVectorProperty command="SetScript"
                            default_values="def start_cue(self): pass&#xa;&#xa;def tick(self): pass&#xa;&#xa;def end_cue(self): pass"
                            name="Script"
                            number_of_elements="1">
        <Hints>
          <Widget type="multi_line" />
        </Hints>
        <Documentation>This property contains the text for the script to
        execute.</Documentation>
      </StringVectorProperty>
      <!-- end of PythonAnimationCue -->
    </Proxy>
  </ProxyGroup>
</ServerManagerConfiguration>
