Skip to content

Commit 073f4cd

Browse files
Clean and formatting
1 parent b98b49e commit 073f4cd

7 files changed

Lines changed: 38 additions & 57 deletions

File tree

geos-mesh/src/geos/mesh/utils/multiblockModifiers.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# SPDX-FileCopyrightText: Copyright 2023-2024 TotalEnergies.
3-
# SPDX-FileContributor: Martin Lemay, Paloma Martinez
3+
# SPDX-FileContributor: Martin Lemay, Paloma Martinez, Jacques Franc
44
from typing import Union
55
import logging
6-
# import re
76

87
from vtkmodules.vtkCommonDataModel import ( vtkCompositeDataSet, vtkDataObjectTreeIterator, vtkMultiBlockDataSet,
98
vtkUnstructuredGrid, vtkDataSet )
@@ -37,10 +36,10 @@ def mergeBlocks(
3736
Defaults to None, an internal logger is used.
3837
3938
Returns:
40-
vtkUnstructuredGrid: Merged dataset or input mesh if it's already a single block
39+
vtkUnstructuredGrid: Merged dataset or input mesh if it's already a single block.
4140
4241
Raises:
43-
geos.utilsVTKError ():
42+
geos.utils.VTKError (): Error raised during call of VTK function
4443
4544
.. Note::
4645
Default filling values:
@@ -52,27 +51,31 @@ def mergeBlocks(
5251
5352
"""
5453
if logger is None:
55-
logger: Logger = getLogger( "mergeBlocks", True )
54+
logger = getLogger( "mergeBlocks", True )
5655

5756
vtkLogger.SetStderrVerbosity( vtkLogger.VERBOSITY_TRACE )
5857
logger.addFilter( RegexExceptionFilter() ) # will raise VTKError if captured VTK Error
58+
59+
logCurrentLevel: int = logger.getEffectiveLevel()
5960
logger.setLevel( logging.DEBUG )
6061

6162
# Fill the partial attributes with default values to keep them during the merge.
6263
if keepPartialAttributes and not fillAllPartialAttributes( inputMesh, logger ):
6364
logger.warning( "Failed to fill partial attributes. Merging without keeping partial attributes." )
6465

66+
outputMesh: vtkUnstructuredGrid
67+
6568
if Version( vtk.__version__ ) >= Version( "9.5" ):
6669
filter: vtkMergeBlocks = vtkMergeBlocks()
6770
filter.SetInputData( inputMesh )
6871
filter.Update()
6972

70-
outputMesh: vtkUnstructuredGrid = filter.GetOutputDataObject( 0 )
73+
outputMesh = filter.GetOutputDataObject( 0 )
7174

7275
else:
7376
if inputMesh.IsA( "vtkDataSet" ):
7477
logger.warning( "Input mesh is already a single block." )
75-
outputMesh = inputMesh
78+
outputMesh = vtkUnstructuredGrid.SafeDownCast( inputMesh )
7679
else:
7780
with VTKCaptureLog() as captured_log:
7881

@@ -87,10 +90,12 @@ def mergeBlocks(
8790
af.AddInputData( block )
8891
iterator.GoToNextItem()
8992
af.Update()
90-
captured_log.seek( 0 ) #be kind let's just rewind
93+
captured_log.seek( 0 )
9194
captured = captured_log.read().decode()
9295

9396
logger.debug( captured.strip() )
94-
outputMesh: vtkUnstructuredGrid = af.GetOutputDataObject( 0 )
97+
outputMesh = af.GetOutputDataObject( 0 )
98+
99+
logger.setLevel( logCurrentLevel )
95100

96101
return outputMesh

geos-mesh/tests/conftest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,6 @@ def _get_dataset( datasetType: str ) -> Union[ vtkMultiBlockDataSet, vtkPolyData
165165
vtkFilename = "data/displacedFaultempty.vtm"
166166
elif datasetType == "multiblockGeosOutput":
167167
# adapted from example GEOS/inputFiles/compositionalMultiphaseWell/simpleCo2InjTutorial_smoke.xml
168-
reader: vtkXMLMultiBlockDataReader = vtkXMLMultiBlockDataReader()
169168
vtkFilename = "data/simpleReservoirViz_small_000478.vtm"
170169
elif datasetType == "fracture":
171170
vtkFilename = "data/fracture_res5_id.vtu"

geos-mesh/tests/test_multiblockModifiers.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,22 @@
33
# SPDX-FileContributor: Paloma Martinez
44
# SPDX-License-Identifier: Apache 2.0
55
# ruff: noqa: E402 # disable Module level import not at top of file
6+
# mypy: disable-error-code="operator"
67
import pytest
78

89
from vtkmodules.vtkCommonDataModel import vtkMultiBlockDataSet, vtkUnstructuredGrid
910
from geos.mesh.utils import multiblockModifiers
1011

1112

12-
@pytest.mark.parametrize( "keepPartialAttributes, nb_pt_attributes, nb_cell_attributes, nb_field_attributes", [
13+
@pytest.mark.parametrize( "keepPartialAttributes, nbPointAttributes, nbCellAttributes, nbFieldAttributes", [
1314
( False, 0, 16, 1 ),
1415
( True, 2, 30, 1 ),
1516
] )
1617
def test_mergeBlocks(
1718
dataSetTest: vtkMultiBlockDataSet,
18-
nb_pt_attributes: int,
19-
nb_cell_attributes: int,
20-
nb_field_attributes: int,
19+
nbPointAttributes: int,
20+
nbCellAttributes: int,
21+
nbFieldAttributes: int,
2122
keepPartialAttributes: bool,
2223
) -> None:
2324
"""Test the merging of a multiblock."""
@@ -27,10 +28,10 @@ def test_mergeBlocks(
2728
dataset = multiblockModifiers.mergeBlocks( vtkMultiBlockDataSetTest, keepPartialAttributes )
2829

2930
assert dataset.GetCellData().GetNumberOfArrays(
30-
) == nb_cell_attributes, f"Expected {nb_cell_attributes} cell attributes after the merge, not {dataset.GetCellData().GetNumberOfArrays()}."
31+
) == nbCellAttributes, f"Expected {nbCellAttributes} cell attributes after the merge, not {dataset.GetCellData().GetNumberOfArrays()}."
3132

3233
assert dataset.GetPointData().GetNumberOfArrays(
33-
) == nb_pt_attributes, f"Expected {nb_pt_attributes} point attributes after the merge, not {dataset.GetPointData().GetNumberOfArrays()}."
34+
) == nbPointAttributes, f"Expected {nbPointAttributes} point attributes after the merge, not {dataset.GetPointData().GetNumberOfArrays()}."
3435

3536
assert dataset.GetFieldData().GetNumberOfArrays(
36-
) == nb_field_attributes, f"Expected {nb_field_attributes} field attributes after the merge, not {dataset.GetFieldData().GetNumberOfArrays()}."
37+
) == nbFieldAttributes, f"Expected {nbFieldAttributes} field attributes after the merge, not {dataset.GetFieldData().GetNumberOfArrays()}."

geos-posp/src/PVplugins/PVMohrCirclePlot.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -805,7 +805,6 @@ def createMohrCirclesAtTimeStep(
805805
"""
806806
# get mesh and merge if needed
807807
meshMerged: vtkUnstructuredGrid = mergeBlocks( mesh )
808-
# assert meshMerged is not None, "Input data is undefined"
809808

810809
stressArray: npt.NDArray[ np.float64 ] = getArrayInObject( meshMerged,
811810
GeosMeshOutputsEnum.STRESS_EFFECTIVE.attributeName,

geos-posp/src/geos_posp/filters/GeosBlockMerge.py

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -145,22 +145,10 @@ def RequestData(
145145

146146
# initialize output objects -- TODO: separate it as soon as we are sure not to alter behavior
147147
self.m_output = self.GetOutputData( outInfoVec, 0 ) # type: ignore[no-untyped-call]
148-
# assert self.m_input is not None, "Input object is null."
149-
# assert self.m_output is not None, "Output object is null."
150148

151149
self.doMerge()
152-
# except (AssertionError, ValueError, TypeError) as e:
153-
# mess: str = "Geos block merge failed due to:"
154-
# self.m_logger.error( mess )
155-
# self.m_logger.error( e, exc_info=True )
156-
# return 0
157-
except ( ValueError, TypeError ) as e:
158-
mess0: str = "Geos block merge failed due to:"
159-
self.m_logger.critical( mess0 )
160-
self.m_logger.critical( e, exc_info=True )
161-
return 0
162-
except RuntimeError as e:
163-
self.m_logger.critical( "Geos block merge failed due to" )
150+
except ( ValueError, TypeError, RuntimeError ) as e:
151+
self.m_logger.critical( "Geos block merge failed due to:" )
164152
self.m_logger.critical( e, exc_info=True )
165153
return 0
166154
else:
@@ -191,12 +179,7 @@ def doMerge( self: Self ) -> int:
191179
self.mergeRankBlocks()
192180
if self.m_convertFaultToSurface:
193181
self.convertFaultsToSurfaces()
194-
# assert self.m_outputMesh is not None, "Output mesh in null."
195-
# except AssertionError as e:
196-
# mess: str = "Block merge failed due to:"
197-
# self.m_logger.error( mess )
198-
# self.m_logger.error( e, exc_info=True )
199-
# return 0
182+
200183
self.m_output.ShallowCopy( self.m_outputMesh )
201184
return 1
202185

geos-pv/src/geos/pv/plugins/PVMergeBlocksEnhanced.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ def RequestData(
114114
inputMesh: Union[ vtkMultiBlockDataSet, vtkCompositeDataSet ] = self.GetInputData( inInfoVec, 0, 0 )
115115
outputMesh: vtkUnstructuredGrid = self.GetOutputData( outInfoVec, 0 )
116116

117-
# assert inputMesh is not None, "Input mesh is null."
118-
# assert outputMesh is not None, "Output pipeline is null."
117+
assert inputMesh is not None, "Input mesh is null."
118+
assert outputMesh is not None, "Output pipeline is null."
119119

120120
filter: MergeBlockEnhanced = MergeBlockEnhanced( inputMesh, True )
121121

@@ -124,16 +124,10 @@ def RequestData(
124124

125125
try:
126126
filter.applyFilter()
127-
except ( ValueError, TypeError ) as e:
128-
filter.logger.error( f"MergeBlock failed due to {e}",
129-
exc_info=True ) #no critical as there is no reason to crash here
130-
return 0
131-
except RuntimeError as e:
132-
filter.logger.error( f"MergeBlock failed due to {e}",
133-
exc_info=True ) #no critical as there is no reason to crash here
127+
except ( ValueError, TypeError, RuntimeError ) as e:
128+
filter.logger.error( f"MergeBlock failed due to {e}", exc_info=True )
134129
return 0
135130
else:
136131
outputMesh.ShallowCopy( filter.getOutput() )
137132
outputMesh.Modified()
138-
139133
return 1

geos-utils/src/geos/utils/Logger.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# SPDX-FileCopyrightText: Copyright 2023-2024 TotalEnergies.
3-
# SPDX-FileContributor: Martin Lemay
3+
# SPDX-FileContributor: Martin Lemay, Romain Baville, Jacques Franc
44
import logging
55
from typing import Any, Union, Generator
66
from typing_extensions import Self
@@ -44,7 +44,7 @@
4444
class RegexExceptionFilter( logging.Filter ):
4545
"""Class to regexp VTK messages rethrown into logger by VTKCaptureLog."""
4646

47-
pattern: str = r"ERR" #pattern captured that will raise a vtkError
47+
pattern: str = r'\bERR\|\b' # Pattern captured that will raise a vtkError
4848

4949
def __init__( self ) -> None:
5050
"""Init filter with class based pattern as this is patch to logging logic."""
@@ -71,27 +71,27 @@ def VTKCaptureLog() -> Generator[ Any, Any, Any ]:
7171
"""Hard way of adapting C-like vtkLogger to logging class by throwing in stderr and reading back from it.
7272
7373
Returns:
74-
Generator: buffering os stderr.
74+
Generator: Buffering os stderr.
7575
7676
"""
7777
#equiv to pyvista's
7878
# from pyvista.utilities import VtkErrorCatcher
7979
# with VtkErrorCatcher() as err:
8080
# append_filter.Update()
8181
# print(err)
82-
# original_stderr_fd = sys.stderr.fileno()
83-
original_stderr_fd = 2
84-
saved_stderr_fd = os.dup( original_stderr_fd )
82+
# originalStderrFd = sys.stderr.fileno()
83+
originalStderrFd = 2
84+
savedStderrFd = os.dup( originalStderrFd )
8585

8686
# Create a temporary file to capture stderr
8787
with tempfile.TemporaryFile( mode='w+b' ) as tmp:
88-
os.dup2( tmp.fileno(), original_stderr_fd )
88+
os.dup2( tmp.fileno(), originalStderrFd )
8989
try:
9090
yield tmp
9191
finally:
9292
# Restore original stderr
93-
os.dup2( saved_stderr_fd, original_stderr_fd )
94-
os.close( saved_stderr_fd )
93+
os.dup2( savedStderrFd, originalStderrFd )
94+
os.close( savedStderrFd )
9595

9696

9797
class CountWarningHandler( logging.Handler ):

0 commit comments

Comments
 (0)