Skip to content

Commit 5ac352c

Browse files
committed
Merge branch 'mypy1.1' into development
2 parents 208b829 + a5a74ef commit 5ac352c

File tree

2 files changed

+42
-43
lines changed

2 files changed

+42
-43
lines changed

python/damask/_geomgrid.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,9 @@ def origin(self,
169169
@property
170170
def initial_conditions(self) -> Dict[str,np.ndarray]:
171171
"""Fields of initial conditions."""
172-
self._ic = dict(zip(self._ic.keys(), # type: ignore
172+
self._ic = dict(zip(self._ic.keys(), # type: ignore
173173
[v if isinstance(v,np.ndarray) else
174-
np.broadcast_to(v,self.cells) for v in self._ic.values()])) # type: ignore
174+
np.broadcast_to(v,self.cells) for v in self._ic.values()])) # type: ignore
175175
return self._ic
176176

177177
@initial_conditions.setter
@@ -214,7 +214,7 @@ def _load(fname: Union[str, Path], label: str) -> 'GeomGrid':
214214
215215
"""
216216
v = VTK.load(fname if str(fname).endswith('.vti') else str(fname)+'.vti')
217-
cells = np.array(v.vtk_data.GetDimensions())-1
217+
cells = np.array(v.vtk_data.GetDimensions())-1 # type: ignore
218218
bbox = np.array(v.vtk_data.GetBounds()).reshape(3,2).T
219219
ic = {l:v.get(l).reshape(cells,order='F') for l in set(v.labels['Cell Data']) - {label}}
220220

@@ -307,7 +307,7 @@ def load_Neper(fname: Union[str, Path]) -> 'GeomGrid':
307307
308308
"""
309309
v = VTK.load(fname,'ImageData')
310-
cells = np.array(v.vtk_data.GetDimensions())-1
310+
cells = np.array(v.vtk_data.GetDimensions())-1 # type: ignore
311311
bbox = np.array(v.vtk_data.GetBounds()).reshape(3,2).T
312312

313313
return GeomGrid(material = v.get('MaterialId').reshape(cells,order='F').astype('int32',casting='unsafe'),

python/damask/_vtk.py

+38-39
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
from typing import Optional, Union, Literal, List, Sequence
55

66
import numpy as np
7+
8+
from vtkmodules.vtkIOXML import vtkXMLReader, vtkXMLWriter
9+
710
from vtkmodules.vtkCommonCore import (
811
vtkPoints,
912
vtkStringArray,
@@ -79,7 +82,7 @@ def __init__(self,
7982
vtkPolyData, and vtkRectilinearGrid.
8083
8184
"""
82-
self.vtk_data = vtk_data
85+
self.vtk_data: vtkDataSet = vtk_data
8386

8487

8588
def __repr__(self) -> str:
@@ -89,7 +92,7 @@ def __repr__(self) -> str:
8992
Give short, human-readable summary.
9093
9194
"""
92-
info = [self.vtk_data.__vtkname__]
95+
info = [self.vtk_data.__vtkname__] # type: ignore
9396

9497
for data in ['Cell Data', 'Point Data']:
9598
if data == 'Cell Data': info.append(f'\n# cells: {self.N_cells}')
@@ -351,39 +354,34 @@ def load(fname: Union[str, Path],
351354
if not Path(fname).expanduser().is_file(): # vtk has a strange error handling
352355
raise FileNotFoundError(f'file "{fname}" not found')
353356
if (ext := Path(fname).suffix) == '.vtk' or dataset_type is not None:
354-
reader = vtkGenericDataObjectReader()
355-
reader.SetFileName(str(Path(fname).expanduser()))
357+
vtk_reader = vtkGenericDataObjectReader()
358+
vtk_reader.SetFileName(str(Path(fname).expanduser()))
356359
if dataset_type is None:
357360
raise TypeError('dataset type for *.vtk file not given')
358-
elif dataset_type.lower().endswith(('imagedata','image_data')):
359-
reader.Update()
360-
vtk_data = reader.GetStructuredPointsOutput()
361-
elif dataset_type.lower().endswith(('unstructuredgrid','unstructured_grid')):
362-
reader.Update()
363-
vtk_data = reader.GetUnstructuredGridOutput()
364-
elif dataset_type.lower().endswith(('polydata','poly_data')):
365-
reader.Update()
366-
vtk_data = reader.GetPolyDataOutput()
367-
elif dataset_type.lower().endswith(('rectilineargrid','rectilinear_grid')):
368-
reader.Update()
369-
vtk_data = reader.GetRectilinearGridOutput()
361+
vtk_reader.Update()
362+
if dataset_type.lower().endswith(('imagedata', 'image_data')):
363+
vtk_data = vtk_reader.GetStructuredPointsOutput()
364+
elif dataset_type.lower().endswith(('unstructuredgrid', 'unstructured_grid')):
365+
vtk_data = vtk_reader.GetUnstructuredGridOutput()
366+
elif dataset_type.lower().endswith(('polydata', 'poly_data')):
367+
vtk_data = vtk_reader.GetPolyDataOutput()
368+
elif dataset_type.lower().endswith(('rectilineargrid', 'rectilinear_grid')):
369+
vtk_data = vtk_reader.GetRectilinearGridOutput()
370370
else:
371371
raise TypeError(f'unknown dataset type "{dataset_type}" for vtk file')
372372
else:
373-
if ext == '.vti':
374-
reader = vtkXMLImageDataReader()
375-
elif ext == '.vtu':
376-
reader = vtkXMLUnstructuredGridReader()
377-
elif ext == '.vtp':
378-
reader = vtkXMLPolyDataReader()
379-
elif ext == '.vtr':
380-
reader = vtkXMLRectilinearGridReader()
381-
else:
373+
xml_reader: Optional[vtkXMLReader] = (
374+
vtkXMLImageDataReader() if ext == '.vti' else
375+
vtkXMLUnstructuredGridReader() if ext == '.vtu' else
376+
vtkXMLPolyDataReader() if ext == '.vtp' else
377+
vtkXMLRectilinearGridReader() if ext == '.vtr' else
378+
None
379+
)
380+
if xml_reader is None:
382381
raise TypeError(f'unknown file extension "{ext}"')
383-
384-
reader.SetFileName(str(Path(fname).expanduser()))
385-
reader.Update()
386-
vtk_data = reader.GetOutput()
382+
xml_reader.SetFileName(str(Path(fname).expanduser()))
383+
xml_reader.Update()
384+
vtk_data = xml_reader.GetOutputAsDataSet()
387385

388386
return VTK(vtk_data)
389387

@@ -421,14 +419,15 @@ def save(self,
421419
Compress with zlib algorithm. Defaults to True.
422420
423421
"""
424-
if isinstance(self.vtk_data,vtkImageData):
425-
writer = vtkXMLImageDataWriter()
426-
elif isinstance(self.vtk_data,vtkUnstructuredGrid):
427-
writer = vtkXMLUnstructuredGridWriter()
428-
elif isinstance(self.vtk_data,vtkPolyData):
429-
writer = vtkXMLPolyDataWriter()
430-
elif isinstance(self.vtk_data,vtkRectilinearGrid):
431-
writer = vtkXMLRectilinearGridWriter()
422+
writer: Optional[vtkXMLWriter] = (
423+
vtkXMLImageDataWriter() if isinstance(self.vtk_data, vtkImageData) else
424+
vtkXMLUnstructuredGridWriter() if isinstance(self.vtk_data, vtkUnstructuredGrid) else
425+
vtkXMLPolyDataWriter() if isinstance(self.vtk_data, vtkPolyData) else
426+
vtkXMLRectilinearGridWriter() if isinstance(self.vtk_data, vtkRectilinearGrid) else
427+
None
428+
)
429+
if writer is None:
430+
raise TypeError(f'unknown vtk_data type "{type(self.vtk_data)}"')
432431

433432
default_ext = '.'+writer.GetDefaultFileExtension()
434433
ext = Path(fname).suffix
@@ -656,8 +655,8 @@ def show(self,
656655
for i,c in enumerate(colormap_.colors):
657656
lut.SetTableValue(i,c if len(c)==4 else np.append(c,1.0))
658657
lut.Build()
659-
660-
self.vtk_data.GetCellData().SetActiveScalars(label)
658+
if label is not None:
659+
self.vtk_data.GetCellData().SetActiveScalars(label)
661660
mapper = vtkDataSetMapper()
662661
mapper.SetInputData(self.vtk_data)
663662
mapper.SetLookupTable(lut)

0 commit comments

Comments
 (0)