/usr/share/doc/libxdmf-dev/examples/Python/XdmfReader.py is in libxdmf-dev 3.0+git20160803-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #!/bin/env python
"""Reader for XDMF Grids"""
from __future__ import print_function
from Xdmf import *
from vtk import *
from libvtkXdmfPython import *
import string
class XdmfReader :
def __init__( self, DOM, Node ) :
self.DOM = DOM
self.Node = Node
self.GridDOM = None
self.GridNode = None
self.Reader = vtkXdmfReader()
# self.Reader.DebugOn()
# Set the Input XML
FileName = DOM.Get( Node, "FileName" )
if FileName == None :
FileName = DOM.Get( Node, "Input" )
if FileName == None :
FileName = DOM.Get( Node, "InputFileName" )
if FileName == None :
FileName = DOM.Get( Node, "File" )
if FileName == None :
print ('No FileName set')
return
print ('SetInputFileName(' + FileName + ')')
self.Reader.SetInputFileName( FileName )
# Which Grid ?
GridName = DOM.Get( Node, "Grid" )
if GridName == None :
GridName = DOM.Get( Node, "GridName" )
if GridName :
self.Reader.SetGridName(GridName)
# Parse the XML
self.Reader.Initialize()
# Set Up Attributes
Nparam = DOM.FindNumberOfElements( 'Parameter', Node )
if Nparam > 0 :
# print ('Setting %d Parameters' % Nparam)
DOMHandle = self.Reader.GetXdmfDOMHandle()
RDOM = HandleToXdmfDOM(DOMHandle)
for i in range( Nparam) :
PNode = DOM.FindElement( 'Parameter', i, Node )
Name = DOM.Get( PNode, "Name" )
Value = DOM.Get( PNode, "CurrentIndex" )
if not Value :
Value = DOM.Get( PNode, "Value" )
pnode = 1
j = 0
while pnode :
pnode = RDOM.FindElement('Parameter', j, None)
if pnode :
pName = RDOM.Get(pnode, 'Name')
if pName == Name :
RDOM.Set(pnode, 'CurrentIndex', Value)
j += 1
pnode = RDOM.FindElement('Parameter', j, None)
# Set Up Attributes
Nattr = DOM.FindNumberOfElements( 'Attribute', Node )
print ('Reading %d Attributes' % Nattr)
if Nattr > 0 :
self.Reader.SetAllAttributeStatusOff()
for i in range( Nattr ) :
ANode = DOM.FindElement( 'Attribute', i, Node )
Name = DOM.Get( ANode, "Name" )
self.Reader.SetAttributeStatusOn( Name )
def Update(self) :
print ('Updating Grid')
self.Reader.Update()
return( self.Reader )
def GetOutput(self) :
return( self.Reader.GetOutput() )
|