2023-01-26T12:38:47.2161427Z ============================= test session starts ============================== 2023-01-26T12:38:47.2162670Z platform linux -- Python 3.8.16, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 2023-01-26T12:38:47.2212271Z rootdir: /home/runner/work/HYDROLIB-core/HYDROLIB-core, configfile: pyproject.toml 2023-01-26T12:38:47.2212803Z plugins: cov-2.12.1, anyio-3.6.2 2023-01-26T12:38:47.2213099Z collected 961 items / 3 deselected / 958 selected 2023-01-26T12:38:47.2213290Z 2023-01-26T12:38:48.2009136Z Exception ignored in: 2023-01-26T12:38:48.2009527Z Traceback (most recent call last): 2023-01-26T12:38:48.2020039Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:48.2020915Z self._deallocate_state() 2023-01-26T12:38:48.2021728Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:48.2022201Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:48.2022632Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:48.2023026Z Exception ignored in: 2023-01-26T12:38:48.2023367Z Traceback (most recent call last): 2023-01-26T12:38:48.2024286Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:48.2024732Z self._deallocate_state() 2023-01-26T12:38:48.2025408Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:48.2025885Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:48.2026301Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:48.2026690Z Exception ignored in: 2023-01-26T12:38:48.2027027Z Traceback (most recent call last): 2023-01-26T12:38:48.2027673Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:48.2028097Z self._deallocate_state() 2023-01-26T12:38:48.2028773Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:48.2029240Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:48.2029660Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:48.7692333Z Exception ignored in: 2023-01-26T12:38:48.7693212Z Traceback (most recent call last): 2023-01-26T12:38:48.7694592Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:48.7697101Z self._deallocate_state() 2023-01-26T12:38:48.7697965Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:48.7699858Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:48.7753170Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:48.7756528Z Exception ignored in: 2023-01-26T12:38:48.7759332Z Traceback (most recent call last): 2023-01-26T12:38:48.7762632Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:48.7771322Z self._deallocate_state() 2023-01-26T12:38:48.7774457Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:48.7777018Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:48.7779510Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:49.3737643Z Exception ignored in: 2023-01-26T12:38:49.3738023Z Traceback (most recent call last): 2023-01-26T12:38:49.3744312Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:49.3744854Z self._deallocate_state() 2023-01-26T12:38:49.3745671Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:49.3746140Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:49.3746582Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:49.3746979Z Exception ignored in: 2023-01-26T12:38:49.3747686Z Traceback (most recent call last): 2023-01-26T12:38:49.3748341Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:49.3748789Z self._deallocate_state() 2023-01-26T12:38:49.3764888Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:49.3765424Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:49.3765931Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:49.3766327Z Exception ignored in: 2023-01-26T12:38:49.3766670Z Traceback (most recent call last): 2023-01-26T12:38:49.3767363Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:49.3767792Z self._deallocate_state() 2023-01-26T12:38:49.3768487Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:49.3768962Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:49.3769389Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:49.8948738Z Exception ignored in: 2023-01-26T12:38:49.8949117Z Traceback (most recent call last): 2023-01-26T12:38:49.8950120Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:49.8950584Z self._deallocate_state() 2023-01-26T12:38:49.8955784Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:49.8956315Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:49.8956832Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:49.8957243Z Exception ignored in: 2023-01-26T12:38:49.8957577Z Traceback (most recent call last): 2023-01-26T12:38:49.8958259Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:49.8958714Z self._deallocate_state() 2023-01-26T12:38:49.8959734Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:49.8960222Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:49.8960632Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:49.8961028Z Exception ignored in: 2023-01-26T12:38:49.8961366Z Traceback (most recent call last): 2023-01-26T12:38:49.8964754Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:49.8965254Z self._deallocate_state() 2023-01-26T12:38:49.8965986Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:49.8966466Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:49.8966882Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:50.4731943Z Exception ignored in: 2023-01-26T12:38:50.4732369Z Traceback (most recent call last): 2023-01-26T12:38:50.4733390Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:50.4733850Z self._deallocate_state() 2023-01-26T12:38:50.4734541Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:50.4735378Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:50.4735811Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:50.4736188Z Exception ignored in: 2023-01-26T12:38:50.4736524Z Traceback (most recent call last): 2023-01-26T12:38:50.4737177Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:50.4737623Z self._deallocate_state() 2023-01-26T12:38:50.4738287Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:50.4738754Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:50.4739174Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:51.0176327Z Exception ignored in: 2023-01-26T12:38:51.0176702Z Traceback (most recent call last): 2023-01-26T12:38:51.0181468Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:51.0181976Z self._deallocate_state() 2023-01-26T12:38:51.0182751Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:51.0183221Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:51.0183962Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:51.0184375Z Exception ignored in: 2023-01-26T12:38:51.0184723Z Traceback (most recent call last): 2023-01-26T12:38:51.0185375Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:51.0185818Z self._deallocate_state() 2023-01-26T12:38:51.0186493Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:51.0186974Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:51.0187385Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:51.0187774Z Exception ignored in: 2023-01-26T12:38:51.0188109Z Traceback (most recent call last): 2023-01-26T12:38:51.0189075Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:51.0189507Z self._deallocate_state() 2023-01-26T12:38:51.0190184Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:51.0190650Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:51.0191074Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:51.6056783Z Exception ignored in: 2023-01-26T12:38:51.6057248Z Traceback (most recent call last): 2023-01-26T12:38:51.6058194Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:51.6058661Z self._deallocate_state() 2023-01-26T12:38:51.6059340Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:51.6059832Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:51.6060264Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:51.6060656Z Exception ignored in: 2023-01-26T12:38:51.6060985Z Traceback (most recent call last): 2023-01-26T12:38:51.6061637Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:51.6072994Z self._deallocate_state() 2023-01-26T12:38:51.6092768Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:51.6093320Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:51.6093853Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:52.1273415Z Exception ignored in: 2023-01-26T12:38:52.1273820Z Traceback (most recent call last): 2023-01-26T12:38:52.1274849Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:52.1275312Z self._deallocate_state() 2023-01-26T12:38:52.1276001Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:52.1276484Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:52.1276925Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:52.1277302Z Exception ignored in: 2023-01-26T12:38:52.1277641Z Traceback (most recent call last): 2023-01-26T12:38:52.1278294Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:52.1278729Z self._deallocate_state() 2023-01-26T12:38:52.1279392Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:52.1279860Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:52.1280282Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:52.1280651Z Exception ignored in: 2023-01-26T12:38:52.1280992Z Traceback (most recent call last): 2023-01-26T12:38:52.1281637Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:52.1282077Z self._deallocate_state() 2023-01-26T12:38:52.1282752Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:52.1283210Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:52.1283630Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:52.7115595Z Exception ignored in: 2023-01-26T12:38:52.7116012Z Traceback (most recent call last): 2023-01-26T12:38:52.7116935Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:52.7117401Z self._deallocate_state() 2023-01-26T12:38:52.7118098Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:52.7118591Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:52.7119004Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:52.7119395Z Exception ignored in: 2023-01-26T12:38:52.7119733Z Traceback (most recent call last): 2023-01-26T12:38:52.7120390Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:52.7120828Z self._deallocate_state() 2023-01-26T12:38:52.7121504Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:52.7121982Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:52.7122405Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:53.3232900Z Exception ignored in: 2023-01-26T12:38:53.3234093Z Traceback (most recent call last): 2023-01-26T12:38:53.3235347Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:53.3237394Z self._deallocate_state() 2023-01-26T12:38:53.3238295Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:53.3291390Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:53.3291900Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:53.3292305Z Exception ignored in: 2023-01-26T12:38:53.3292611Z Traceback (most recent call last): 2023-01-26T12:38:53.3293209Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:53.3293606Z self._deallocate_state() 2023-01-26T12:38:53.3294196Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:53.3294634Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:53.3294994Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:53.3295338Z Exception ignored in: 2023-01-26T12:38:53.3295633Z Traceback (most recent call last): 2023-01-26T12:38:53.3296203Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:53.3296578Z self._deallocate_state() 2023-01-26T12:38:53.3297169Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:53.3297630Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:53.3298136Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:53.4181480Z tests/test_basemodel.py ..FFFFFFFFFFFFFFFFFFFFFFFFFFF................... [ 5%] 2023-01-26T12:38:53.4557866Z .................... [ 7%] 2023-01-26T12:38:53.7942501Z tests/test_docker.py FF [ 7%] 2023-01-26T12:38:53.9469814Z Exception ignored in: 2023-01-26T12:38:53.9470210Z Traceback (most recent call last): 2023-01-26T12:38:53.9471469Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:53.9471955Z self._deallocate_state() 2023-01-26T12:38:53.9472661Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:53.9473148Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:53.9473559Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:53.9473959Z Exception ignored in: 2023-01-26T12:38:53.9474296Z Traceback (most recent call last): 2023-01-26T12:38:53.9474950Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:53.9475376Z self._deallocate_state() 2023-01-26T12:38:53.9476045Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:53.9476518Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:53.9476944Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:53.9477320Z Exception ignored in: 2023-01-26T12:38:53.9477658Z Traceback (most recent call last): 2023-01-26T12:38:53.9478296Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:53.9478844Z self._deallocate_state() 2023-01-26T12:38:53.9479503Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:53.9479969Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:53.9480395Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:54.6314195Z Exception ignored in: 2023-01-26T12:38:54.6314568Z Traceback (most recent call last): 2023-01-26T12:38:54.6315416Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:54.6315814Z self._deallocate_state() 2023-01-26T12:38:54.6316549Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:54.6317179Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:54.6317630Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:54.6318022Z Exception ignored in: 2023-01-26T12:38:54.6318397Z Traceback (most recent call last): 2023-01-26T12:38:54.6319085Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:54.6319547Z self._deallocate_state() 2023-01-26T12:38:54.6320187Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:54.6320685Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:54.6321140Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:55.2206210Z Exception ignored in: 2023-01-26T12:38:55.2206962Z Traceback (most recent call last): 2023-01-26T12:38:55.2208100Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:55.2208979Z self._deallocate_state() 2023-01-26T12:38:55.2209871Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:55.2210545Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:55.2211193Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:55.2212230Z Exception ignored in: 2023-01-26T12:38:55.2212814Z Traceback (most recent call last): 2023-01-26T12:38:55.2213690Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:55.2214272Z self._deallocate_state() 2023-01-26T12:38:55.2215162Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:55.2215892Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:55.2216443Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:55.2217018Z Exception ignored in: 2023-01-26T12:38:55.2217530Z Traceback (most recent call last): 2023-01-26T12:38:55.2218411Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:55.2219099Z self._deallocate_state() 2023-01-26T12:38:55.2219943Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:55.2220603Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:55.2221182Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:55.6256430Z Exception ignored in: 2023-01-26T12:38:55.6257739Z Traceback (most recent call last): 2023-01-26T12:38:55.6259051Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:55.6259755Z self._deallocate_state() 2023-01-26T12:38:55.6260681Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:55.6261354Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:55.6262046Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:55.6262838Z Exception ignored in: 2023-01-26T12:38:55.6264138Z Traceback (most recent call last): 2023-01-26T12:38:55.6265059Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:55.6265705Z self._deallocate_state() 2023-01-26T12:38:55.6266612Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:55.6267321Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:55.6267931Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:55.6268502Z Exception ignored in: 2023-01-26T12:38:55.6268967Z Traceback (most recent call last): 2023-01-26T12:38:55.6269874Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:55.6270495Z self._deallocate_state() 2023-01-26T12:38:55.6271348Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:55.6272013Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:55.6272662Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.0632319Z Exception ignored in: 2023-01-26T12:38:56.0633299Z Traceback (most recent call last): 2023-01-26T12:38:56.0634932Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.0638114Z self._deallocate_state() 2023-01-26T12:38:56.0639443Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.0641743Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.0642548Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.0643351Z Exception ignored in: 2023-01-26T12:38:56.0643927Z Traceback (most recent call last): 2023-01-26T12:38:56.0645049Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.0647982Z self._deallocate_state() 2023-01-26T12:38:56.0648968Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.0651288Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.0652054Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.0652803Z Exception ignored in: 2023-01-26T12:38:56.0653330Z Traceback (most recent call last): 2023-01-26T12:38:56.0654282Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.0654958Z self._deallocate_state() 2023-01-26T12:38:56.0655789Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.0795358Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.0851813Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.3275393Z tests/test_model.py F.....FF.F.................................FFFFFFFFF [ 12%] 2023-01-26T12:38:56.5194850Z Exception ignored in: 2023-01-26T12:38:56.5195251Z Traceback (most recent call last): 2023-01-26T12:38:56.5196209Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.5196670Z self._deallocate_state() 2023-01-26T12:38:56.5197369Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.5197858Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.5198294Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.5198693Z Exception ignored in: 2023-01-26T12:38:56.5199041Z Traceback (most recent call last): 2023-01-26T12:38:56.5199694Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.5200147Z self._deallocate_state() 2023-01-26T12:38:56.5200817Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.5201293Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.5201721Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.9770743Z Exception ignored in: 2023-01-26T12:38:56.9771149Z Traceback (most recent call last): 2023-01-26T12:38:56.9772069Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.9772562Z self._deallocate_state() 2023-01-26T12:38:56.9773263Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.9773751Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.9774169Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.9774564Z Exception ignored in: 2023-01-26T12:38:56.9775255Z Traceback (most recent call last): 2023-01-26T12:38:56.9775961Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.9776397Z self._deallocate_state() 2023-01-26T12:38:56.9777073Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.9777549Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.9777986Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:56.9778365Z Exception ignored in: 2023-01-26T12:38:56.9778709Z Traceback (most recent call last): 2023-01-26T12:38:56.9779351Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:56.9779792Z self._deallocate_state() 2023-01-26T12:38:56.9780466Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:56.9780943Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:56.9781366Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:57.4231581Z Exception ignored in: 2023-01-26T12:38:57.4232004Z Traceback (most recent call last): 2023-01-26T12:38:57.4233326Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:57.4233792Z self._deallocate_state() 2023-01-26T12:38:57.4234476Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:57.4234968Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:57.4235398Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:57.4235804Z Exception ignored in: 2023-01-26T12:38:57.4236135Z Traceback (most recent call last): 2023-01-26T12:38:57.4236792Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:57.4237240Z self._deallocate_state() 2023-01-26T12:38:57.4237919Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:57.4238392Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:57.4238819Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:57.4239212Z Exception ignored in: 2023-01-26T12:38:57.4239557Z Traceback (most recent call last): 2023-01-26T12:38:57.4240200Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:57.4240646Z self._deallocate_state() 2023-01-26T12:38:57.4241318Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:57.4241791Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:57.4242208Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:57.7759086Z FFFFFFFFF........................ [ 16%] 2023-01-26T12:38:57.9221943Z Exception ignored in: 2023-01-26T12:38:57.9222362Z Traceback (most recent call last): 2023-01-26T12:38:57.9223287Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:57.9224395Z self._deallocate_state() 2023-01-26T12:38:57.9225459Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:57.9225961Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:57.9226393Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:57.9226792Z Exception ignored in: 2023-01-26T12:38:57.9227138Z Traceback (most recent call last): 2023-01-26T12:38:57.9227800Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:57.9228248Z self._deallocate_state() 2023-01-26T12:38:57.9228930Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:57.9229409Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:57.9229833Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:57.9230213Z Exception ignored in: 2023-01-26T12:38:57.9230565Z Traceback (most recent call last): 2023-01-26T12:38:57.9231221Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:57.9231666Z self._deallocate_state() 2023-01-26T12:38:57.9232322Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:57.9232922Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:57.9233350Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:57.9686458Z tests/test_utils.py .F......... [ 17%] 2023-01-26T12:38:58.0780008Z tests/dflowfm/test_bc.py ............................................... [ 22%] 2023-01-26T12:38:58.1194316Z .................. [ 24%] 2023-01-26T12:38:58.1813417Z tests/dflowfm/test_crosssection.py ............................ [ 27%] 2023-01-26T12:38:58.2924088Z tests/dflowfm/test_ext.py .............................................. [ 31%] 2023-01-26T12:38:58.3165926Z ............ [ 33%] 2023-01-26T12:38:58.3406140Z tests/dflowfm/test_friction.py ........... [ 34%] 2023-01-26T12:38:58.3474977Z tests/dflowfm/test_gui.py .... [ 34%] 2023-01-26T12:38:58.4230789Z tests/dflowfm/test_inifield.py .......................... [ 37%] 2023-01-26T12:38:58.7799743Z tests/dflowfm/test_mdu.py FF. [ 37%] 2023-01-26T12:38:58.8586138Z Exception ignored in: 2023-01-26T12:38:58.8586540Z Traceback (most recent call last): 2023-01-26T12:38:58.8587478Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:58.8587966Z self._deallocate_state() 2023-01-26T12:38:58.8588662Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:58.8589135Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:58.8589572Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:58.8589970Z Exception ignored in: 2023-01-26T12:38:58.8590309Z Traceback (most recent call last): 2023-01-26T12:38:58.8590962Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:58.8591409Z self._deallocate_state() 2023-01-26T12:38:58.8592084Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:58.8592564Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:58.8593312Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:58.8593722Z Exception ignored in: 2023-01-26T12:38:58.8594068Z Traceback (most recent call last): 2023-01-26T12:38:58.8594722Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:58.8595166Z self._deallocate_state() 2023-01-26T12:38:58.8595846Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:58.8596321Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:58.8596748Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.1862155Z Exception ignored in: 2023-01-26T12:38:59.1862554Z Traceback (most recent call last): 2023-01-26T12:38:59.1863502Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.1864270Z self._deallocate_state() 2023-01-26T12:38:59.1864969Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.1865469Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.1865906Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.1866649Z Exception ignored in: 2023-01-26T12:38:59.1866984Z Traceback (most recent call last): 2023-01-26T12:38:59.1867648Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.1868098Z self._deallocate_state() 2023-01-26T12:38:59.1868779Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.1869243Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.1869677Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.1870068Z Exception ignored in: 2023-01-26T12:38:59.1870411Z Traceback (most recent call last): 2023-01-26T12:38:59.1871045Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.1871496Z self._deallocate_state() 2023-01-26T12:38:59.1872167Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.1872646Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.1873059Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.1873451Z Exception ignored in: 2023-01-26T12:38:59.1873803Z Traceback (most recent call last): 2023-01-26T12:38:59.1874456Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.1874885Z self._deallocate_state() 2023-01-26T12:38:59.1875554Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.1876033Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.1876459Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.1876835Z Exception ignored in: 2023-01-26T12:38:59.1877576Z Traceback (most recent call last): 2023-01-26T12:38:59.1878292Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.1878739Z self._deallocate_state() 2023-01-26T12:38:59.1879546Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.1880028Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.1880457Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.5661029Z Exception ignored in: 2023-01-26T12:38:59.5661416Z Traceback (most recent call last): 2023-01-26T12:38:59.5662356Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.5662823Z self._deallocate_state() 2023-01-26T12:38:59.5663508Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.5664380Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.5664828Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.5665221Z Exception ignored in: 2023-01-26T12:38:59.5665566Z Traceback (most recent call last): 2023-01-26T12:38:59.5666210Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.5666659Z self._deallocate_state() 2023-01-26T12:38:59.5667337Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.5668166Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.5668583Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.5668979Z Exception ignored in: 2023-01-26T12:38:59.5669322Z Traceback (most recent call last): 2023-01-26T12:38:59.5669981Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.5670410Z self._deallocate_state() 2023-01-26T12:38:59.5671082Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.5671552Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.5671980Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.5672363Z Exception ignored in: 2023-01-26T12:38:59.5672697Z Traceback (most recent call last): 2023-01-26T12:38:59.5673345Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.5673783Z self._deallocate_state() 2023-01-26T12:38:59.5674439Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.5674917Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.5675341Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.9250193Z Exception ignored in: 2023-01-26T12:38:59.9250615Z Traceback (most recent call last): 2023-01-26T12:38:59.9251548Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.9252017Z self._deallocate_state() 2023-01-26T12:38:59.9252712Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.9253199Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.9253630Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.9254013Z Exception ignored in: 2023-01-26T12:38:59.9254358Z Traceback (most recent call last): 2023-01-26T12:38:59.9255354Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.9255822Z self._deallocate_state() 2023-01-26T12:38:59.9256508Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.9256996Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.9257426Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:38:59.9257821Z Exception ignored in: 2023-01-26T12:38:59.9258149Z Traceback (most recent call last): 2023-01-26T12:38:59.9258802Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:38:59.9259251Z self._deallocate_state() 2023-01-26T12:38:59.9259923Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:38:59.9260457Z self.lib.mkernel_deallocate_state, 2023-01-26T12:38:59.9260887Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:39:00.4098376Z Exception ignored in: 2023-01-26T12:39:00.4099195Z Traceback (most recent call last): 2023-01-26T12:39:00.4100857Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:39:00.4101903Z self._deallocate_state() 2023-01-26T12:39:00.4102883Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:39:00.4103622Z self.lib.mkernel_deallocate_state, 2023-01-26T12:39:00.4105338Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:39:00.4106066Z Exception ignored in: 2023-01-26T12:39:00.4106697Z Traceback (most recent call last): 2023-01-26T12:39:00.4107588Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:39:00.4108327Z self._deallocate_state() 2023-01-26T12:39:00.4109191Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:39:00.4109847Z self.lib.mkernel_deallocate_state, 2023-01-26T12:39:00.4110405Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:39:00.4110894Z Exception ignored in: 2023-01-26T12:39:00.4111339Z Traceback (most recent call last): 2023-01-26T12:39:00.4112090Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:39:00.4112634Z self._deallocate_state() 2023-01-26T12:39:00.4113398Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:39:00.4113958Z self.lib.mkernel_deallocate_state, 2023-01-26T12:39:00.4114459Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:39:00.6210041Z tests/dflowfm/test_net.py FFFFFFFFFFFFF....FFFF. [ 39%] 2023-01-26T12:39:00.6405470Z tests/dflowfm/test_obs.py ......... [ 40%] 2023-01-26T12:39:00.6637198Z tests/dflowfm/test_obscrosssection.py ........... [ 42%] 2023-01-26T12:39:00.6774638Z tests/dflowfm/test_onedfield.py ...... [ 42%] 2023-01-26T12:39:00.6791837Z tests/dflowfm/test_parser.py . [ 42%] 2023-01-26T12:39:00.7452478Z tests/dflowfm/test_polyfile.py ......................................... [ 47%] 2023-01-26T12:39:00.8415306Z ..................................................... [ 52%] 2023-01-26T12:39:00.8637221Z tests/dflowfm/test_storagenode.py ............ [ 53%] 2023-01-26T12:39:00.9519856Z tests/dflowfm/test_structure.py ........................................ [ 58%] 2023-01-26T12:39:01.0752283Z ........................................................................ [ 65%] 2023-01-26T12:39:01.2260737Z ........................................................................ [ 73%] 2023-01-26T12:39:01.2313603Z ... [ 73%] 2023-01-26T12:39:01.2365340Z tests/dflowfm/test_xyz.py .. [ 73%] 2023-01-26T12:39:01.3100509Z tests/dflowfm/ini/test_ini.py .......................................... [ 77%] 2023-01-26T12:39:01.4526078Z ........................................................................ [ 85%] 2023-01-26T12:39:01.5162311Z .................................. [ 89%] 2023-01-26T12:39:01.5617805Z tests/dflowfm/ini/test_util.py ............................. [ 92%] 2023-01-26T12:39:01.5712265Z tests/dimr/test_dimr.py .... [ 92%] 2023-01-26T12:39:03.1634117Z tests/rr/test_fnm.py .....................F [ 94%] 2023-01-26T12:39:03.9073701Z tests/rr/meteo/test_bui.py ............................ [ 97%] 2023-01-26T12:39:03.9193314Z tests/rr/topology/test_link.py ...... [ 98%] 2023-01-26T12:39:03.9595126Z tests/rr/topology/test_node.py .......... [ 99%] 2023-01-26T12:39:03.9663589Z tests/rr/topology/test_parser.py .... [ 99%] 2023-01-26T12:39:05.6236487Z tests/rr/topology/test_serializer.py .. [100%] 2023-01-26T12:39:05.6237070Z 2023-01-26T12:39:05.6238457Z =================================== FAILURES =================================== 2023-01-26T12:39:05.6239012Z __ TestFileModel.test_loading_a_file_twice_returns_different_model_instances ___ 2023-01-26T12:39:05.6239517Z 2023-01-26T12:39:05.6241295Z self = 2023-01-26T12:39:05.6241660Z 2023-01-26T12:39:05.6242271Z def test_loading_a_file_twice_returns_different_model_instances(self) -> None: 2023-01-26T12:39:05.6242840Z # If the same source file is read multiple times, we expect that 2023-01-26T12:39:05.6243340Z # multiple (deep) copies are returned, and not references to the 2023-01-26T12:39:05.6243748Z # same object. 2023-01-26T12:39:05.6244051Z 2023-01-26T12:39:05.6244355Z test_file = ( 2023-01-26T12:39:05.6244671Z test_input_dir 2023-01-26T12:39:05.6244995Z / "e02" 2023-01-26T12:39:05.6245435Z / "c11_korte-woerden-1d" 2023-01-26T12:39:05.6245797Z / "dimr_model" 2023-01-26T12:39:05.6246158Z / "dimr_config.xml" 2023-01-26T12:39:05.6246466Z ) 2023-01-26T12:39:05.6246758Z 2023-01-26T12:39:05.6247083Z > model_a = DIMR(test_file) 2023-01-26T12:39:05.6247329Z 2023-01-26T12:39:05.6247541Z tests/test_basemodel.py:58: 2023-01-26T12:39:05.6247927Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6248308Z hydrolib/core/basemodel.py:743: in __init__ 2023-01-26T12:39:05.6248739Z self._post_init_load() 2023-01-26T12:39:05.6249151Z hydrolib/core/dimr/models.py:323: in _post_init_load 2023-01-26T12:39:05.6249607Z comp.model = comp.get_model()(filepath=comp.filepath) 2023-01-26T12:39:05.6250026Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6250412Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6250802Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6251161Z super().__init__(**data) 2023-01-26T12:39:05.6251859Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6252266Z ??? 2023-01-26T12:39:05.6252652Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6253033Z ??? 2023-01-26T12:39:05.6253452Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6253862Z ??? 2023-01-26T12:39:05.6254272Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6254686Z ??? 2023-01-26T12:39:05.6255091Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6255503Z ??? 2023-01-26T12:39:05.6255950Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6256372Z ??? 2023-01-26T12:39:05.6256740Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6257138Z return super().validate(value) 2023-01-26T12:39:05.6257574Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6257959Z ??? 2023-01-26T12:39:05.6258303Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6258685Z super().__init__(**data) 2023-01-26T12:39:05.6259105Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6259463Z ??? 2023-01-26T12:39:05.6259835Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6260189Z ??? 2023-01-26T12:39:05.6260584Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6261102Z ??? 2023-01-26T12:39:05.6261522Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6261930Z ??? 2023-01-26T12:39:05.6262349Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6262755Z ??? 2023-01-26T12:39:05.6263183Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6263616Z ??? 2023-01-26T12:39:05.6264159Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6264555Z return super().validate(value) 2023-01-26T12:39:05.6264995Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6265401Z ??? 2023-01-26T12:39:05.6265747Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6266136Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6266528Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6266896Z super().__init__(**data) 2023-01-26T12:39:05.6267324Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6267698Z ??? 2023-01-26T12:39:05.6268065Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6268421Z ??? 2023-01-26T12:39:05.6268819Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6269221Z ??? 2023-01-26T12:39:05.6269578Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6270024Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6270785Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6271309Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6271695Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6271956Z 2023-01-26T12:39:05.6272580Z self = 2023-01-26T12:39:05.6273485Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6274073Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6274464Z winmode = None 2023-01-26T12:39:05.6274690Z 2023-01-26T12:39:05.6274940Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6275339Z use_errno=False, 2023-01-26T12:39:05.6275833Z use_last_error=False, 2023-01-26T12:39:05.6276209Z winmode=None): 2023-01-26T12:39:05.6276555Z self._name = name 2023-01-26T12:39:05.6276885Z flags = self._func_flags_ 2023-01-26T12:39:05.6277224Z if use_errno: 2023-01-26T12:39:05.6277582Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6277940Z if use_last_error: 2023-01-26T12:39:05.6278314Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6278705Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6279137Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6279681Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6280241Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6280713Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6281106Z """ 2023-01-26T12:39:05.6281487Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6281913Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6282286Z if _os.name == "nt": 2023-01-26T12:39:05.6282640Z if winmode is not None: 2023-01-26T12:39:05.6283006Z mode = winmode 2023-01-26T12:39:05.6283326Z else: 2023-01-26T12:39:05.6283609Z import nt 2023-01-26T12:39:05.6283993Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6284577Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6285003Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6285443Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6285793Z 2023-01-26T12:39:05.6286122Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6286461Z _flags_ = flags 2023-01-26T12:39:05.6286813Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6287189Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6287497Z 2023-01-26T12:39:05.6287802Z if handle is None: 2023-01-26T12:39:05.6288193Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6289081Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6289593Z 2023-01-26T12:39:05.6289889Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6290411Z ______ TestFileModel.test_save_model_without_recurse_only_saves_the_model ______ 2023-01-26T12:39:05.6290733Z 2023-01-26T12:39:05.6291007Z self = 2023-01-26T12:39:05.6291318Z 2023-01-26T12:39:05.6291587Z def test_save_model_without_recurse_only_saves_the_model(self): 2023-01-26T12:39:05.6292036Z > model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6292300Z 2023-01-26T12:39:05.6292486Z tests/test_basemodel.py:64: 2023-01-26T12:39:05.6292873Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6293272Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6293656Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6294040Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6294412Z super().__init__(**data) 2023-01-26T12:39:05.6294818Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6295205Z ??? 2023-01-26T12:39:05.6295574Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6295949Z ??? 2023-01-26T12:39:05.6296363Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6296767Z ??? 2023-01-26T12:39:05.6297293Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6297658Z ??? 2023-01-26T12:39:05.6298100Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6298472Z ??? 2023-01-26T12:39:05.6298862Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6299244Z ??? 2023-01-26T12:39:05.6299565Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6299902Z return super().validate(value) 2023-01-26T12:39:05.6300286Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6300633Z ??? 2023-01-26T12:39:05.6300920Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6301218Z super().__init__(**data) 2023-01-26T12:39:05.6301588Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6301920Z ??? 2023-01-26T12:39:05.6302249Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6302573Z ??? 2023-01-26T12:39:05.6302931Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6303282Z ??? 2023-01-26T12:39:05.6303763Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6308004Z ??? 2023-01-26T12:39:05.6308290Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6308579Z ??? 2023-01-26T12:39:05.6308893Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6309185Z ??? 2023-01-26T12:39:05.6309532Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6309801Z return super().validate(value) 2023-01-26T12:39:05.6310092Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6310361Z ??? 2023-01-26T12:39:05.6310589Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6310853Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6311098Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6311348Z super().__init__(**data) 2023-01-26T12:39:05.6311639Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6311881Z ??? 2023-01-26T12:39:05.6312133Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6312388Z ??? 2023-01-26T12:39:05.6312655Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6312930Z ??? 2023-01-26T12:39:05.6313168Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6313483Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6314097Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6314475Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6314734Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6314876Z 2023-01-26T12:39:05.6315337Z self = 2023-01-26T12:39:05.6316030Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6316457Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6316718Z winmode = None 2023-01-26T12:39:05.6316832Z 2023-01-26T12:39:05.6316974Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6317245Z use_errno=False, 2023-01-26T12:39:05.6317478Z use_last_error=False, 2023-01-26T12:39:05.6317698Z winmode=None): 2023-01-26T12:39:05.6317916Z self._name = name 2023-01-26T12:39:05.6318141Z flags = self._func_flags_ 2023-01-26T12:39:05.6318347Z if use_errno: 2023-01-26T12:39:05.6318575Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6318805Z if use_last_error: 2023-01-26T12:39:05.6319036Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6319385Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6319686Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6320057Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6320388Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6320733Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6320998Z """ 2023-01-26T12:39:05.6321235Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6321529Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6321776Z if _os.name == "nt": 2023-01-26T12:39:05.6321993Z if winmode is not None: 2023-01-26T12:39:05.6322218Z mode = winmode 2023-01-26T12:39:05.6322420Z else: 2023-01-26T12:39:05.6322606Z import nt 2023-01-26T12:39:05.6322863Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6323192Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6323461Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6323767Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6323997Z 2023-01-26T12:39:05.6324209Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6324428Z _flags_ = flags 2023-01-26T12:39:05.6324732Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6324979Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6325173Z 2023-01-26T12:39:05.6325365Z if handle is None: 2023-01-26T12:39:05.6325622Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6326284Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6326650Z 2023-01-26T12:39:05.6326834Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6327367Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile0-flat-hierarchy-True] _ 2023-01-26T12:39:05.6327624Z 2023-01-26T12:39:05.6327792Z self = 2023-01-26T12:39:05.6328211Z paths_relative_to_parent = True, netfile = PosixPath('FlowFM_net.nc') 2023-01-26T12:39:05.6328600Z structuresfile = PosixPath('structures.ini') 2023-01-26T12:39:05.6328988Z roughness_channel = PosixPath('roughness-Channels.ini') 2023-01-26T12:39:05.6329362Z roughness_main = PosixPath('roughness-Main.ini') 2023-01-26T12:39:05.6329740Z roughness_sewer = PosixPath('roughness-Sewers.ini') 2023-01-26T12:39:05.6330102Z extforcefile = PosixPath('FM_model_bnd.ext') 2023-01-26T12:39:05.6330492Z forcingfile = PosixPath('FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6330677Z 2023-01-26T12:39:05.6330791Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6331051Z "paths_relative_to_parent", 2023-01-26T12:39:05.6331282Z [True, False], 2023-01-26T12:39:05.6331465Z ) 2023-01-26T12:39:05.6331675Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6331895Z ( 2023-01-26T12:39:05.6332070Z "netfile", 2023-01-26T12:39:05.6332284Z "structuresfile", 2023-01-26T12:39:05.6332514Z "roughness_channel", 2023-01-26T12:39:05.6332728Z "roughness_main", 2023-01-26T12:39:05.6332952Z "roughness_sewer", 2023-01-26T12:39:05.6333172Z "extforcefile", 2023-01-26T12:39:05.6333359Z ), 2023-01-26T12:39:05.6333540Z [ 2023-01-26T12:39:05.6333740Z pytest.param( 2023-01-26T12:39:05.6333960Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6334208Z Path("structures.ini"), 2023-01-26T12:39:05.6334542Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6334876Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6335257Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6335525Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6335820Z id="flat-hierarchy", 2023-01-26T12:39:05.6336024Z ), 2023-01-26T12:39:05.6336229Z pytest.param( 2023-01-26T12:39:05.6336473Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6336728Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6337098Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6337465Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6337817Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6338104Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6338447Z id="relative paths", 2023-01-26T12:39:05.6338647Z ), 2023-01-26T12:39:05.6338853Z pytest.param( 2023-01-26T12:39:05.6339112Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6339395Z _external_path / "structures.ini", 2023-01-26T12:39:05.6339748Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6340112Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6340477Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6340754Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6341009Z id="absolute paths", 2023-01-26T12:39:05.6341285Z ), 2023-01-26T12:39:05.6341458Z ], 2023-01-26T12:39:05.6341638Z ) 2023-01-26T12:39:05.6341850Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6342071Z "forcingfile", 2023-01-26T12:39:05.6342270Z [ 2023-01-26T12:39:05.6342523Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6342833Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6343171Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6343441Z ], 2023-01-26T12:39:05.6343619Z ) 2023-01-26T12:39:05.6354070Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6354319Z self, 2023-01-26T12:39:05.6354545Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6354771Z netfile: Path, 2023-01-26T12:39:05.6354995Z structuresfile: Path, 2023-01-26T12:39:05.6355236Z roughness_channel: Path, 2023-01-26T12:39:05.6355465Z roughness_main: Path, 2023-01-26T12:39:05.6355700Z roughness_sewer: Path, 2023-01-26T12:39:05.6355933Z extforcefile: Path, 2023-01-26T12:39:05.6356146Z forcingfile: Path, 2023-01-26T12:39:05.6356351Z ): 2023-01-26T12:39:05.6356603Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6356783Z 2023-01-26T12:39:05.6356876Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6357136Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6357412Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6357672Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6357919Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6358166Z super().__init__(**data) 2023-01-26T12:39:05.6358455Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6358700Z ??? 2023-01-26T12:39:05.6358952Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6359206Z ??? 2023-01-26T12:39:05.6359476Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6359749Z ??? 2023-01-26T12:39:05.6360038Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6360307Z ??? 2023-01-26T12:39:05.6360596Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6360874Z ??? 2023-01-26T12:39:05.6361173Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6361588Z ??? 2023-01-26T12:39:05.6361836Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6362097Z return super().validate(value) 2023-01-26T12:39:05.6362406Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6362671Z ??? 2023-01-26T12:39:05.6362897Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6363130Z super().__init__(**data) 2023-01-26T12:39:05.6363425Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6363681Z ??? 2023-01-26T12:39:05.6366854Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6367115Z ??? 2023-01-26T12:39:05.6367398Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6367660Z ??? 2023-01-26T12:39:05.6367947Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6368236Z ??? 2023-01-26T12:39:05.6368510Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6368790Z ??? 2023-01-26T12:39:05.6369102Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6369391Z ??? 2023-01-26T12:39:05.6369616Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6369877Z return super().validate(value) 2023-01-26T12:39:05.6370187Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6370530Z ??? 2023-01-26T12:39:05.6370757Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6371018Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6371261Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6371510Z super().__init__(**data) 2023-01-26T12:39:05.6371797Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6372039Z ??? 2023-01-26T12:39:05.6372289Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6372540Z ??? 2023-01-26T12:39:05.6372810Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6373086Z ??? 2023-01-26T12:39:05.6373325Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6373638Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6374248Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6374627Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6374889Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6375030Z 2023-01-26T12:39:05.6375482Z self = 2023-01-26T12:39:05.6376218Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6376651Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6376914Z winmode = None 2023-01-26T12:39:05.6377026Z 2023-01-26T12:39:05.6377174Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6377443Z use_errno=False, 2023-01-26T12:39:05.6377676Z use_last_error=False, 2023-01-26T12:39:05.6377894Z winmode=None): 2023-01-26T12:39:05.6378116Z self._name = name 2023-01-26T12:39:05.6378345Z flags = self._func_flags_ 2023-01-26T12:39:05.6378552Z if use_errno: 2023-01-26T12:39:05.6378780Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6379013Z if use_last_error: 2023-01-26T12:39:05.6379244Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6379521Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6379816Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6380279Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6380603Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6380945Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6381209Z """ 2023-01-26T12:39:05.6381442Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6381736Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6381991Z if _os.name == "nt": 2023-01-26T12:39:05.6382212Z if winmode is not None: 2023-01-26T12:39:05.6382439Z mode = winmode 2023-01-26T12:39:05.6382646Z else: 2023-01-26T12:39:05.6382834Z import nt 2023-01-26T12:39:05.6383091Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6383420Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6383805Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6384099Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6384327Z 2023-01-26T12:39:05.6384538Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6388640Z _flags_ = flags 2023-01-26T12:39:05.6388880Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6389125Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6389314Z 2023-01-26T12:39:05.6389509Z if handle is None: 2023-01-26T12:39:05.6389867Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6390544Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6390906Z 2023-01-26T12:39:05.6391083Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6391611Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile0-flat-hierarchy-False] _ 2023-01-26T12:39:05.6391872Z 2023-01-26T12:39:05.6392043Z self = 2023-01-26T12:39:05.6392466Z paths_relative_to_parent = False, netfile = PosixPath('FlowFM_net.nc') 2023-01-26T12:39:05.6392852Z structuresfile = PosixPath('structures.ini') 2023-01-26T12:39:05.6393244Z roughness_channel = PosixPath('roughness-Channels.ini') 2023-01-26T12:39:05.6393633Z roughness_main = PosixPath('roughness-Main.ini') 2023-01-26T12:39:05.6394002Z roughness_sewer = PosixPath('roughness-Sewers.ini') 2023-01-26T12:39:05.6394366Z extforcefile = PosixPath('FM_model_bnd.ext') 2023-01-26T12:39:05.6394758Z forcingfile = PosixPath('FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6394954Z 2023-01-26T12:39:05.6395052Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6395303Z "paths_relative_to_parent", 2023-01-26T12:39:05.6395529Z [True, False], 2023-01-26T12:39:05.6395709Z ) 2023-01-26T12:39:05.6395919Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6396140Z ( 2023-01-26T12:39:05.6396315Z "netfile", 2023-01-26T12:39:05.6396531Z "structuresfile", 2023-01-26T12:39:05.6396759Z "roughness_channel", 2023-01-26T12:39:05.6396970Z "roughness_main", 2023-01-26T12:39:05.6397192Z "roughness_sewer", 2023-01-26T12:39:05.6397409Z "extforcefile", 2023-01-26T12:39:05.6397600Z ), 2023-01-26T12:39:05.6397778Z [ 2023-01-26T12:39:05.6397984Z pytest.param( 2023-01-26T12:39:05.6398218Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6398453Z Path("structures.ini"), 2023-01-26T12:39:05.6398786Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6399119Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6403182Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6403461Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6403768Z id="flat-hierarchy", 2023-01-26T12:39:05.6404101Z ), 2023-01-26T12:39:05.6404316Z pytest.param( 2023-01-26T12:39:05.6404562Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6404820Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6405185Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6405559Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6405915Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6406206Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6406457Z id="relative paths", 2023-01-26T12:39:05.6406670Z ), 2023-01-26T12:39:05.6406861Z pytest.param( 2023-01-26T12:39:05.6407111Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6407388Z _external_path / "structures.ini", 2023-01-26T12:39:05.6407739Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6408106Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6408470Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6408749Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6409000Z id="absolute paths", 2023-01-26T12:39:05.6409211Z ), 2023-01-26T12:39:05.6409383Z ], 2023-01-26T12:39:05.6409561Z ) 2023-01-26T12:39:05.6409773Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6410064Z "forcingfile", 2023-01-26T12:39:05.6410259Z [ 2023-01-26T12:39:05.6410513Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6410821Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6411155Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6411415Z ], 2023-01-26T12:39:05.6411596Z ) 2023-01-26T12:39:05.6411820Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6412058Z self, 2023-01-26T12:39:05.6412286Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6412516Z netfile: Path, 2023-01-26T12:39:05.6412741Z structuresfile: Path, 2023-01-26T12:39:05.6412981Z roughness_channel: Path, 2023-01-26T12:39:05.6413200Z roughness_main: Path, 2023-01-26T12:39:05.6413431Z roughness_sewer: Path, 2023-01-26T12:39:05.6413661Z extforcefile: Path, 2023-01-26T12:39:05.6413873Z forcingfile: Path, 2023-01-26T12:39:05.6414079Z ): 2023-01-26T12:39:05.6414327Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6414511Z 2023-01-26T12:39:05.6414604Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6418656Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6418932Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6419190Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6419434Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6419687Z super().__init__(**data) 2023-01-26T12:39:05.6420020Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6420265Z ??? 2023-01-26T12:39:05.6420517Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6420768Z ??? 2023-01-26T12:39:05.6421034Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6421310Z ??? 2023-01-26T12:39:05.6421597Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6421870Z ??? 2023-01-26T12:39:05.6422155Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6422433Z ??? 2023-01-26T12:39:05.6422738Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6423039Z ??? 2023-01-26T12:39:05.6423278Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6423552Z return super().validate(value) 2023-01-26T12:39:05.6424033Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6424300Z ??? 2023-01-26T12:39:05.6424522Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6424760Z super().__init__(**data) 2023-01-26T12:39:05.6425043Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6425299Z ??? 2023-01-26T12:39:05.6425534Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6425781Z ??? 2023-01-26T12:39:05.6426065Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6426326Z ??? 2023-01-26T12:39:05.6426613Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6426898Z ??? 2023-01-26T12:39:05.6427165Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6427449Z ??? 2023-01-26T12:39:05.6427759Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6428063Z ??? 2023-01-26T12:39:05.6428275Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6428532Z return super().validate(value) 2023-01-26T12:39:05.6428835Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6429082Z ??? 2023-01-26T12:39:05.6429307Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6429560Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6429806Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6433990Z super().__init__(**data) 2023-01-26T12:39:05.6434281Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6434526Z ??? 2023-01-26T12:39:05.6434780Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6435034Z ??? 2023-01-26T12:39:05.6435305Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6435586Z ??? 2023-01-26T12:39:05.6435828Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6436146Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6436748Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6437123Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6437388Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6437545Z 2023-01-26T12:39:05.6437982Z self = 2023-01-26T12:39:05.6438677Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6439111Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6439373Z winmode = None 2023-01-26T12:39:05.6439487Z 2023-01-26T12:39:05.6439637Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6439904Z use_errno=False, 2023-01-26T12:39:05.6440134Z use_last_error=False, 2023-01-26T12:39:05.6440353Z winmode=None): 2023-01-26T12:39:05.6440574Z self._name = name 2023-01-26T12:39:05.6440800Z flags = self._func_flags_ 2023-01-26T12:39:05.6441007Z if use_errno: 2023-01-26T12:39:05.6441234Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6441470Z if use_last_error: 2023-01-26T12:39:05.6441700Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6441977Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6442271Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6442651Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6442968Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6443381Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6443649Z """ 2023-01-26T12:39:05.6443884Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6444177Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6444428Z if _os.name == "nt": 2023-01-26T12:39:05.6444645Z if winmode is not None: 2023-01-26T12:39:05.6444872Z mode = winmode 2023-01-26T12:39:05.6448849Z else: 2023-01-26T12:39:05.6449058Z import nt 2023-01-26T12:39:05.6449301Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6449647Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6449939Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6450234Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6450468Z 2023-01-26T12:39:05.6450679Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6450897Z _flags_ = flags 2023-01-26T12:39:05.6451138Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6451386Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6451580Z 2023-01-26T12:39:05.6451776Z if handle is None: 2023-01-26T12:39:05.6452032Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6452695Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6453139Z 2023-01-26T12:39:05.6453320Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6453838Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile0-relative paths-True] _ 2023-01-26T12:39:05.6454084Z 2023-01-26T12:39:05.6454258Z self = 2023-01-26T12:39:05.6454692Z paths_relative_to_parent = True, netfile = PosixPath('net/FlowFM_net.nc') 2023-01-26T12:39:05.6455094Z structuresfile = PosixPath('struc/structures.ini') 2023-01-26T12:39:05.6455512Z roughness_channel = PosixPath('channels/roughness-Channels.ini') 2023-01-26T12:39:05.6455937Z roughness_main = PosixPath('channels/roughness-Main.ini') 2023-01-26T12:39:05.6456338Z roughness_sewer = PosixPath('channels/roughness-Sewers.ini') 2023-01-26T12:39:05.6456715Z extforcefile = PosixPath('ext/FM_model_bnd.ext') 2023-01-26T12:39:05.6457114Z forcingfile = PosixPath('FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6457313Z 2023-01-26T12:39:05.6457411Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6457665Z "paths_relative_to_parent", 2023-01-26T12:39:05.6457892Z [True, False], 2023-01-26T12:39:05.6458076Z ) 2023-01-26T12:39:05.6458289Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6458505Z ( 2023-01-26T12:39:05.6458679Z "netfile", 2023-01-26T12:39:05.6458891Z "structuresfile", 2023-01-26T12:39:05.6459123Z "roughness_channel", 2023-01-26T12:39:05.6459347Z "roughness_main", 2023-01-26T12:39:05.6459555Z "roughness_sewer", 2023-01-26T12:39:05.6459775Z "extforcefile", 2023-01-26T12:39:05.6459977Z ), 2023-01-26T12:39:05.6460143Z [ 2023-01-26T12:39:05.6460339Z pytest.param( 2023-01-26T12:39:05.6464470Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6464722Z Path("structures.ini"), 2023-01-26T12:39:05.6465077Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6465415Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6465734Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6466002Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6466298Z id="flat-hierarchy", 2023-01-26T12:39:05.6466506Z ), 2023-01-26T12:39:05.6466714Z pytest.param( 2023-01-26T12:39:05.6466959Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6467312Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6467686Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6468060Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6468431Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6468705Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6468955Z id="relative paths", 2023-01-26T12:39:05.6469171Z ), 2023-01-26T12:39:05.6469364Z pytest.param( 2023-01-26T12:39:05.6469617Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6469892Z _external_path / "structures.ini", 2023-01-26T12:39:05.6470245Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6470613Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6470978Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6471258Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6471513Z id="absolute paths", 2023-01-26T12:39:05.6471723Z ), 2023-01-26T12:39:05.6471909Z ], 2023-01-26T12:39:05.6472077Z ) 2023-01-26T12:39:05.6472291Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6472527Z "forcingfile", 2023-01-26T12:39:05.6472712Z [ 2023-01-26T12:39:05.6472963Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6473354Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6473677Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6473935Z ], 2023-01-26T12:39:05.6474116Z ) 2023-01-26T12:39:05.6474340Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6474584Z self, 2023-01-26T12:39:05.6474811Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6475039Z netfile: Path, 2023-01-26T12:39:05.6475265Z structuresfile: Path, 2023-01-26T12:39:05.6479289Z roughness_channel: Path, 2023-01-26T12:39:05.6479524Z roughness_main: Path, 2023-01-26T12:39:05.6479761Z roughness_sewer: Path, 2023-01-26T12:39:05.6479996Z extforcefile: Path, 2023-01-26T12:39:05.6480213Z forcingfile: Path, 2023-01-26T12:39:05.6480426Z ): 2023-01-26T12:39:05.6480677Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6480846Z 2023-01-26T12:39:05.6480954Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6481209Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6481480Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6481722Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6481979Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6482224Z super().__init__(**data) 2023-01-26T12:39:05.6482496Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6482751Z ??? 2023-01-26T12:39:05.6483009Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6483244Z ??? 2023-01-26T12:39:05.6483522Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6483794Z ??? 2023-01-26T12:39:05.6484081Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6484352Z ??? 2023-01-26T12:39:05.6484638Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6484918Z ??? 2023-01-26T12:39:05.6485214Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6485516Z ??? 2023-01-26T12:39:05.6485754Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6486014Z return super().validate(value) 2023-01-26T12:39:05.6486317Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6486579Z ??? 2023-01-26T12:39:05.6486788Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6487125Z super().__init__(**data) 2023-01-26T12:39:05.6487416Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6487654Z ??? 2023-01-26T12:39:05.6487908Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6488156Z ??? 2023-01-26T12:39:05.6488433Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6488691Z ??? 2023-01-26T12:39:05.6488980Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6489265Z ??? 2023-01-26T12:39:05.6489536Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6489817Z ??? 2023-01-26T12:39:05.6490128Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6490423Z ??? 2023-01-26T12:39:05.6498565Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6498842Z return super().validate(value) 2023-01-26T12:39:05.6499138Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6499401Z ??? 2023-01-26T12:39:05.6499625Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6499872Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6500132Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6500377Z super().__init__(**data) 2023-01-26T12:39:05.6500661Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6501003Z ??? 2023-01-26T12:39:05.6501257Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6501508Z ??? 2023-01-26T12:39:05.6501775Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6502050Z ??? 2023-01-26T12:39:05.6502290Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6502600Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6503199Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6503572Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6503913Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6504069Z 2023-01-26T12:39:05.6504524Z self = 2023-01-26T12:39:05.6505220Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6505649Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6505900Z winmode = None 2023-01-26T12:39:05.6506025Z 2023-01-26T12:39:05.6506171Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6506437Z use_errno=False, 2023-01-26T12:39:05.6506666Z use_last_error=False, 2023-01-26T12:39:05.6506886Z winmode=None): 2023-01-26T12:39:05.6507103Z self._name = name 2023-01-26T12:39:05.6507329Z flags = self._func_flags_ 2023-01-26T12:39:05.6507532Z if use_errno: 2023-01-26T12:39:05.6507759Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6507991Z if use_last_error: 2023-01-26T12:39:05.6508224Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6508500Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6508795Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6509161Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6509489Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6509829Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6510083Z """ 2023-01-26T12:39:05.6510316Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6510692Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6510949Z if _os.name == "nt": 2023-01-26T12:39:05.6511165Z if winmode is not None: 2023-01-26T12:39:05.6511390Z mode = winmode 2023-01-26T12:39:05.6511592Z else: 2023-01-26T12:39:05.6511776Z import nt 2023-01-26T12:39:05.6512035Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6512369Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6512639Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6512944Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6513181Z 2023-01-26T12:39:05.6513376Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6521512Z _flags_ = flags 2023-01-26T12:39:05.6521775Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6522033Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6522226Z 2023-01-26T12:39:05.6522419Z if handle is None: 2023-01-26T12:39:05.6522675Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6523349Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6523709Z 2023-01-26T12:39:05.6523891Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6524505Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile0-relative paths-False] _ 2023-01-26T12:39:05.6524750Z 2023-01-26T12:39:05.6524919Z self = 2023-01-26T12:39:05.6525349Z paths_relative_to_parent = False, netfile = PosixPath('net/FlowFM_net.nc') 2023-01-26T12:39:05.6525753Z structuresfile = PosixPath('struc/structures.ini') 2023-01-26T12:39:05.6526171Z roughness_channel = PosixPath('channels/roughness-Channels.ini') 2023-01-26T12:39:05.6526578Z roughness_main = PosixPath('channels/roughness-Main.ini') 2023-01-26T12:39:05.6526992Z roughness_sewer = PosixPath('channels/roughness-Sewers.ini') 2023-01-26T12:39:05.6527370Z extforcefile = PosixPath('ext/FM_model_bnd.ext') 2023-01-26T12:39:05.6527765Z forcingfile = PosixPath('FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6527948Z 2023-01-26T12:39:05.6528059Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6528316Z "paths_relative_to_parent", 2023-01-26T12:39:05.6528541Z [True, False], 2023-01-26T12:39:05.6528720Z ) 2023-01-26T12:39:05.6528928Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6529143Z ( 2023-01-26T12:39:05.6529316Z "netfile", 2023-01-26T12:39:05.6529529Z "structuresfile", 2023-01-26T12:39:05.6529755Z "roughness_channel", 2023-01-26T12:39:05.6529966Z "roughness_main", 2023-01-26T12:39:05.6530188Z "roughness_sewer", 2023-01-26T12:39:05.6530406Z "extforcefile", 2023-01-26T12:39:05.6530594Z ), 2023-01-26T12:39:05.6530771Z [ 2023-01-26T12:39:05.6530967Z pytest.param( 2023-01-26T12:39:05.6538884Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6539153Z Path("structures.ini"), 2023-01-26T12:39:05.6539502Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6539823Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6540157Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6540418Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6540707Z id="flat-hierarchy", 2023-01-26T12:39:05.6540910Z ), 2023-01-26T12:39:05.6541114Z pytest.param( 2023-01-26T12:39:05.6541353Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6541604Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6541962Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6542412Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6542774Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6543060Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6543306Z id="relative paths", 2023-01-26T12:39:05.6543504Z ), 2023-01-26T12:39:05.6543796Z pytest.param( 2023-01-26T12:39:05.6544049Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6544320Z _external_path / "structures.ini", 2023-01-26T12:39:05.6544687Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6545053Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6545414Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6545745Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6545999Z id="absolute paths", 2023-01-26T12:39:05.6546210Z ), 2023-01-26T12:39:05.6546381Z ], 2023-01-26T12:39:05.6546558Z ) 2023-01-26T12:39:05.6546770Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6546994Z "forcingfile", 2023-01-26T12:39:05.6547188Z [ 2023-01-26T12:39:05.6547438Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6547745Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6548076Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6548415Z ], 2023-01-26T12:39:05.6548582Z ) 2023-01-26T12:39:05.6548817Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6549055Z self, 2023-01-26T12:39:05.6549278Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6549501Z netfile: Path, 2023-01-26T12:39:05.6549726Z structuresfile: Path, 2023-01-26T12:39:05.6549964Z roughness_channel: Path, 2023-01-26T12:39:05.6550180Z roughness_main: Path, 2023-01-26T12:39:05.6550410Z roughness_sewer: Path, 2023-01-26T12:39:05.6550642Z extforcefile: Path, 2023-01-26T12:39:05.6550857Z forcingfile: Path, 2023-01-26T12:39:05.6551059Z ): 2023-01-26T12:39:05.6551306Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6551488Z 2023-01-26T12:39:05.6551580Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6551837Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6552112Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6552361Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6552619Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6552865Z super().__init__(**data) 2023-01-26T12:39:05.6553153Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6561185Z ??? 2023-01-26T12:39:05.6561456Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6561708Z ??? 2023-01-26T12:39:05.6561979Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6562255Z ??? 2023-01-26T12:39:05.6562546Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6562817Z ??? 2023-01-26T12:39:05.6563102Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6563381Z ??? 2023-01-26T12:39:05.6563681Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6563988Z ??? 2023-01-26T12:39:05.6564228Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6564490Z return super().validate(value) 2023-01-26T12:39:05.6564797Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6565058Z ??? 2023-01-26T12:39:05.6565282Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6565516Z super().__init__(**data) 2023-01-26T12:39:05.6565799Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6566050Z ??? 2023-01-26T12:39:05.6566385Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6566641Z ??? 2023-01-26T12:39:05.6566917Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6567175Z ??? 2023-01-26T12:39:05.6567461Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6567744Z ??? 2023-01-26T12:39:05.6568020Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6568301Z ??? 2023-01-26T12:39:05.6568612Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6568903Z ??? 2023-01-26T12:39:05.6569131Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6569391Z return super().validate(value) 2023-01-26T12:39:05.6569681Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6569942Z ??? 2023-01-26T12:39:05.6570168Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6570426Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6570669Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6578699Z super().__init__(**data) 2023-01-26T12:39:05.6578984Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6579226Z ??? 2023-01-26T12:39:05.6579478Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6579727Z ??? 2023-01-26T12:39:05.6580132Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6580404Z ??? 2023-01-26T12:39:05.6580642Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6580951Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6581551Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6581923Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6582184Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6582326Z 2023-01-26T12:39:05.6582771Z self = 2023-01-26T12:39:05.6583458Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6583976Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6584240Z winmode = None 2023-01-26T12:39:05.6584353Z 2023-01-26T12:39:05.6584501Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6584766Z use_errno=False, 2023-01-26T12:39:05.6585000Z use_last_error=False, 2023-01-26T12:39:05.6585215Z winmode=None): 2023-01-26T12:39:05.6585433Z self._name = name 2023-01-26T12:39:05.6585657Z flags = self._func_flags_ 2023-01-26T12:39:05.6585865Z if use_errno: 2023-01-26T12:39:05.6586093Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6586326Z if use_last_error: 2023-01-26T12:39:05.6586554Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6586831Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6587128Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6587509Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6587828Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6588172Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6588428Z """ 2023-01-26T12:39:05.6588660Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6588953Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6589202Z if _os.name == "nt": 2023-01-26T12:39:05.6589502Z if winmode is not None: 2023-01-26T12:39:05.6589732Z mode = winmode 2023-01-26T12:39:05.6589935Z else: 2023-01-26T12:39:05.6590120Z import nt 2023-01-26T12:39:05.6590374Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6590703Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6590987Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6591278Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6591513Z 2023-01-26T12:39:05.6591723Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6591938Z _flags_ = flags 2023-01-26T12:39:05.6592176Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6592420Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6592611Z 2023-01-26T12:39:05.6592805Z if handle is None: 2023-01-26T12:39:05.6593059Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6601485Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6601856Z 2023-01-26T12:39:05.6602037Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6602558Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile0-absolute paths-True] _ 2023-01-26T12:39:05.6602901Z 2023-01-26T12:39:05.6603071Z self = 2023-01-26T12:39:05.6603362Z paths_relative_to_parent = True 2023-01-26T12:39:05.6603931Z netfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FlowFM_net.nc') 2023-01-26T12:39:05.6604687Z structuresfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/structures.ini') 2023-01-26T12:39:05.6605489Z roughness_channel = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Channels.ini') 2023-01-26T12:39:05.6606250Z roughness_main = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Main.ini') 2023-01-26T12:39:05.6607027Z roughness_sewer = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Sewers.ini') 2023-01-26T12:39:05.6607787Z extforcefile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_bnd.ext') 2023-01-26T12:39:05.6608328Z forcingfile = PosixPath('FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6608526Z 2023-01-26T12:39:05.6608641Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6608882Z "paths_relative_to_parent", 2023-01-26T12:39:05.6609113Z [True, False], 2023-01-26T12:39:05.6609307Z ) 2023-01-26T12:39:05.6609506Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6609725Z ( 2023-01-26T12:39:05.6609914Z "netfile", 2023-01-26T12:39:05.6610114Z "structuresfile", 2023-01-26T12:39:05.6610347Z "roughness_channel", 2023-01-26T12:39:05.6610576Z "roughness_main", 2023-01-26T12:39:05.6610784Z "roughness_sewer", 2023-01-26T12:39:05.6611008Z "extforcefile", 2023-01-26T12:39:05.6611211Z ), 2023-01-26T12:39:05.6611376Z [ 2023-01-26T12:39:05.6611578Z pytest.param( 2023-01-26T12:39:05.6611808Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6612042Z Path("structures.ini"), 2023-01-26T12:39:05.6612373Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6612706Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6613022Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6613362Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6613663Z id="flat-hierarchy", 2023-01-26T12:39:05.6613867Z ), 2023-01-26T12:39:05.6614071Z pytest.param( 2023-01-26T12:39:05.6614313Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6614580Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6614926Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6615297Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6615663Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6615935Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6616182Z id="relative paths", 2023-01-26T12:39:05.6616393Z ), 2023-01-26T12:39:05.6624479Z pytest.param( 2023-01-26T12:39:05.6624743Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6625027Z _external_path / "structures.ini", 2023-01-26T12:39:05.6625386Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6625757Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6626122Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6626411Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6626651Z id="absolute paths", 2023-01-26T12:39:05.6626864Z ), 2023-01-26T12:39:05.6627165Z ], 2023-01-26T12:39:05.6627332Z ) 2023-01-26T12:39:05.6627547Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6627783Z "forcingfile", 2023-01-26T12:39:05.6627965Z [ 2023-01-26T12:39:05.6630007Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6630330Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6630652Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6630918Z ], 2023-01-26T12:39:05.6631104Z ) 2023-01-26T12:39:05.6631329Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6631567Z self, 2023-01-26T12:39:05.6631791Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6632016Z netfile: Path, 2023-01-26T12:39:05.6632238Z structuresfile: Path, 2023-01-26T12:39:05.6632479Z roughness_channel: Path, 2023-01-26T12:39:05.6632714Z roughness_main: Path, 2023-01-26T12:39:05.6632937Z roughness_sewer: Path, 2023-01-26T12:39:05.6633168Z extforcefile: Path, 2023-01-26T12:39:05.6633397Z forcingfile: Path, 2023-01-26T12:39:05.6633587Z ): 2023-01-26T12:39:05.6633834Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6634021Z 2023-01-26T12:39:05.6634126Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6634371Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6634639Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6634900Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6635146Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6635393Z super().__init__(**data) 2023-01-26T12:39:05.6635677Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6635933Z ??? 2023-01-26T12:39:05.6636174Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6636425Z ??? 2023-01-26T12:39:05.6636726Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6636990Z ??? 2023-01-26T12:39:05.6637277Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6637666Z ??? 2023-01-26T12:39:05.6637992Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6638508Z ??? 2023-01-26T12:39:05.6638932Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6639267Z ??? 2023-01-26T12:39:05.6648107Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6648484Z return super().validate(value) 2023-01-26T12:39:05.6648821Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6649177Z ??? 2023-01-26T12:39:05.6649543Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6649823Z super().__init__(**data) 2023-01-26T12:39:05.6650189Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6650543Z ??? 2023-01-26T12:39:05.6650821Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6651186Z ??? 2023-01-26T12:39:05.6696083Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6696376Z ??? 2023-01-26T12:39:05.6696680Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6696977Z ??? 2023-01-26T12:39:05.6697253Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6697547Z ??? 2023-01-26T12:39:05.6697869Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6698174Z ??? 2023-01-26T12:39:05.6698389Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6698647Z return super().validate(value) 2023-01-26T12:39:05.6698952Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6699200Z ??? 2023-01-26T12:39:05.6699425Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6699879Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6700127Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6700376Z super().__init__(**data) 2023-01-26T12:39:05.6700666Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6700911Z ??? 2023-01-26T12:39:05.6701166Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6701418Z ??? 2023-01-26T12:39:05.6701687Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6701961Z ??? 2023-01-26T12:39:05.6702198Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6702522Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6703163Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6703535Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6703926Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6704084Z 2023-01-26T12:39:05.6712293Z self = 2023-01-26T12:39:05.6712988Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6713428Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6713694Z winmode = None 2023-01-26T12:39:05.6713825Z 2023-01-26T12:39:05.6713958Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6714225Z use_errno=False, 2023-01-26T12:39:05.6714456Z use_last_error=False, 2023-01-26T12:39:05.6714549Z winmode=None): 2023-01-26T12:39:05.6714628Z self._name = name 2023-01-26T12:39:05.6714729Z flags = self._func_flags_ 2023-01-26T12:39:05.6714817Z if use_errno: 2023-01-26T12:39:05.6714927Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6715018Z if use_last_error: 2023-01-26T12:39:05.6715137Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6715267Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6715392Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6715608Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6715877Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6716048Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6716125Z """ 2023-01-26T12:39:05.6716262Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6716394Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6716489Z if _os.name == "nt": 2023-01-26T12:39:05.6716580Z if winmode is not None: 2023-01-26T12:39:05.6716671Z mode = winmode 2023-01-26T12:39:05.6716753Z else: 2023-01-26T12:39:05.6716840Z import nt 2023-01-26T12:39:05.6716977Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6717150Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6717295Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6717422Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6717495Z 2023-01-26T12:39:05.6717604Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6717692Z _flags_ = flags 2023-01-26T12:39:05.6717805Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6717905Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6717974Z 2023-01-26T12:39:05.6718052Z if handle is None: 2023-01-26T12:39:05.6718179Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6718766Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6718776Z 2023-01-26T12:39:05.6718953Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6719263Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile0-absolute paths-False] _ 2023-01-26T12:39:05.6719271Z 2023-01-26T12:39:05.6719444Z self = 2023-01-26T12:39:05.6719555Z paths_relative_to_parent = False 2023-01-26T12:39:05.6719980Z netfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FlowFM_net.nc') 2023-01-26T12:39:05.6728242Z structuresfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/structures.ini') 2023-01-26T12:39:05.6728738Z roughness_channel = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Channels.ini') 2023-01-26T12:39:05.6729178Z roughness_main = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Main.ini') 2023-01-26T12:39:05.6729638Z roughness_sewer = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Sewers.ini') 2023-01-26T12:39:05.6730071Z extforcefile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_bnd.ext') 2023-01-26T12:39:05.6730303Z forcingfile = PosixPath('FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6730313Z 2023-01-26T12:39:05.6730427Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6730537Z "paths_relative_to_parent", 2023-01-26T12:39:05.6730624Z [True, False], 2023-01-26T12:39:05.6730695Z ) 2023-01-26T12:39:05.6730805Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6730866Z ( 2023-01-26T12:39:05.6730948Z "netfile", 2023-01-26T12:39:05.6731046Z "structuresfile", 2023-01-26T12:39:05.6731143Z "roughness_channel", 2023-01-26T12:39:05.6731233Z "roughness_main", 2023-01-26T12:39:05.6731327Z "roughness_sewer", 2023-01-26T12:39:05.6731494Z "extforcefile", 2023-01-26T12:39:05.6731559Z ), 2023-01-26T12:39:05.6731633Z [ 2023-01-26T12:39:05.6731727Z pytest.param( 2023-01-26T12:39:05.6731833Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6731942Z Path("structures.ini"), 2023-01-26T12:39:05.6732137Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6732313Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6732478Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6732591Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6732742Z id="flat-hierarchy", 2023-01-26T12:39:05.6732821Z ), 2023-01-26T12:39:05.6732916Z pytest.param( 2023-01-26T12:39:05.6733029Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6733152Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6733350Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6733550Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6733754Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6733872Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6733973Z id="relative paths", 2023-01-26T12:39:05.6734050Z ), 2023-01-26T12:39:05.6734142Z pytest.param( 2023-01-26T12:39:05.6734251Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6734437Z _external_path / "structures.ini", 2023-01-26T12:39:05.6734652Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6734847Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6735051Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6735175Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6735275Z id="absolute paths", 2023-01-26T12:39:05.6735355Z ), 2023-01-26T12:39:05.6735415Z ], 2023-01-26T12:39:05.6735491Z ) 2023-01-26T12:39:05.6735604Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6735690Z "forcingfile", 2023-01-26T12:39:05.6735764Z [ 2023-01-26T12:39:05.6735910Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6736048Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6744074Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6744165Z ], 2023-01-26T12:39:05.6744239Z ) 2023-01-26T12:39:05.6744386Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6744463Z self, 2023-01-26T12:39:05.6744578Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6744657Z netfile: Path, 2023-01-26T12:39:05.6744760Z structuresfile: Path, 2023-01-26T12:39:05.6744862Z roughness_channel: Path, 2023-01-26T12:39:05.6744959Z roughness_main: Path, 2023-01-26T12:39:05.6745059Z roughness_sewer: Path, 2023-01-26T12:39:05.6745161Z extforcefile: Path, 2023-01-26T12:39:05.6745256Z forcingfile: Path, 2023-01-26T12:39:05.6745314Z ): 2023-01-26T12:39:05.6745466Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6745475Z 2023-01-26T12:39:05.6745582Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6745704Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6745831Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6745941Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6746062Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6746156Z super().__init__(**data) 2023-01-26T12:39:05.6746302Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6746374Z ??? 2023-01-26T12:39:05.6746522Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6746596Z ??? 2023-01-26T12:39:05.6746857Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6746935Z ??? 2023-01-26T12:39:05.6747122Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6747181Z ??? 2023-01-26T12:39:05.6747368Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6747439Z ??? 2023-01-26T12:39:05.6747652Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6747728Z ??? 2023-01-26T12:39:05.6747865Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6747973Z return super().validate(value) 2023-01-26T12:39:05.6748123Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6748194Z ??? 2023-01-26T12:39:05.6748317Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6748411Z super().__init__(**data) 2023-01-26T12:39:05.6748567Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6748638Z ??? 2023-01-26T12:39:05.6748790Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6748859Z ??? 2023-01-26T12:39:05.6749023Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6749093Z ??? 2023-01-26T12:39:05.6749278Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6749350Z ??? 2023-01-26T12:39:05.6749535Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6749699Z ??? 2023-01-26T12:39:05.6749911Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6749970Z ??? 2023-01-26T12:39:05.6750095Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6750203Z return super().validate(value) 2023-01-26T12:39:05.6750366Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6750438Z ??? 2023-01-26T12:39:05.6750560Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6750669Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6750776Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6750871Z super().__init__(**data) 2023-01-26T12:39:05.6751027Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6751098Z ??? 2023-01-26T12:39:05.6751247Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6751321Z ??? 2023-01-26T12:39:05.6751496Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6751557Z ??? 2023-01-26T12:39:05.6751693Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6751857Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6752250Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6752358Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6760230Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6760241Z 2023-01-26T12:39:05.6760704Z self = 2023-01-26T12:39:05.6761083Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6761238Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6761314Z winmode = None 2023-01-26T12:39:05.6761320Z 2023-01-26T12:39:05.6761464Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6761565Z use_errno=False, 2023-01-26T12:39:05.6761670Z use_last_error=False, 2023-01-26T12:39:05.6761766Z winmode=None): 2023-01-26T12:39:05.6761857Z self._name = name 2023-01-26T12:39:05.6761960Z flags = self._func_flags_ 2023-01-26T12:39:05.6762103Z if use_errno: 2023-01-26T12:39:05.6762218Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6762309Z if use_last_error: 2023-01-26T12:39:05.6762427Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6762554Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6762692Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6762911Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6763076Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6763223Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6763298Z """ 2023-01-26T12:39:05.6763435Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6763565Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6763658Z if _os.name == "nt": 2023-01-26T12:39:05.6763759Z if winmode is not None: 2023-01-26T12:39:05.6763856Z mode = winmode 2023-01-26T12:39:05.6763920Z else: 2023-01-26T12:39:05.6764006Z import nt 2023-01-26T12:39:05.6764141Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6764307Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6764452Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6764589Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6764718Z 2023-01-26T12:39:05.6764814Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6764905Z _flags_ = flags 2023-01-26T12:39:05.6765018Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6765118Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6765188Z 2023-01-26T12:39:05.6765278Z if handle is None: 2023-01-26T12:39:05.6765408Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6765913Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6765936Z 2023-01-26T12:39:05.6766103Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6766423Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile1-flat-hierarchy-True] _ 2023-01-26T12:39:05.6766435Z 2023-01-26T12:39:05.6766607Z self = 2023-01-26T12:39:05.6766847Z paths_relative_to_parent = True, netfile = PosixPath('FlowFM_net.nc') 2023-01-26T12:39:05.6767039Z structuresfile = PosixPath('structures.ini') 2023-01-26T12:39:05.6767262Z roughness_channel = PosixPath('roughness-Channels.ini') 2023-01-26T12:39:05.6767465Z roughness_main = PosixPath('roughness-Main.ini') 2023-01-26T12:39:05.6767673Z roughness_sewer = PosixPath('roughness-Sewers.ini') 2023-01-26T12:39:05.6775587Z extforcefile = PosixPath('FM_model_bnd.ext') 2023-01-26T12:39:05.6775872Z forcingfile = PosixPath('ext/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6775881Z 2023-01-26T12:39:05.6775997Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6776112Z "paths_relative_to_parent", 2023-01-26T12:39:05.6776198Z [True, False], 2023-01-26T12:39:05.6776270Z ) 2023-01-26T12:39:05.6776383Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6776464Z ( 2023-01-26T12:39:05.6776534Z "netfile", 2023-01-26T12:39:05.6776627Z "structuresfile", 2023-01-26T12:39:05.6776725Z "roughness_channel", 2023-01-26T12:39:05.6776817Z "roughness_main", 2023-01-26T12:39:05.6776911Z "roughness_sewer", 2023-01-26T12:39:05.6777002Z "extforcefile", 2023-01-26T12:39:05.6777075Z ), 2023-01-26T12:39:05.6777133Z [ 2023-01-26T12:39:05.6777230Z pytest.param( 2023-01-26T12:39:05.6777336Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6777518Z Path("structures.ini"), 2023-01-26T12:39:05.6777714Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6777888Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6778072Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6778170Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6778320Z id="flat-hierarchy", 2023-01-26T12:39:05.6778397Z ), 2023-01-26T12:39:05.6778494Z pytest.param( 2023-01-26T12:39:05.6778611Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6778737Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6778948Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6779131Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6779337Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6779457Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6779560Z id="relative paths", 2023-01-26T12:39:05.6779638Z ), 2023-01-26T12:39:05.6779731Z pytest.param( 2023-01-26T12:39:05.6779853Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6779965Z _external_path / "structures.ini", 2023-01-26T12:39:05.6780175Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6780367Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6780629Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6780756Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6780857Z id="absolute paths", 2023-01-26T12:39:05.6780933Z ), 2023-01-26T12:39:05.6780994Z ], 2023-01-26T12:39:05.6781065Z ) 2023-01-26T12:39:05.6781177Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6781265Z "forcingfile", 2023-01-26T12:39:05.6781339Z [ 2023-01-26T12:39:05.6781486Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6781638Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6781783Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6781855Z ], 2023-01-26T12:39:05.6781927Z ) 2023-01-26T12:39:05.6782063Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6782142Z self, 2023-01-26T12:39:05.6782254Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6782347Z netfile: Path, 2023-01-26T12:39:05.6782435Z structuresfile: Path, 2023-01-26T12:39:05.6782536Z roughness_channel: Path, 2023-01-26T12:39:05.6782630Z roughness_main: Path, 2023-01-26T12:39:05.6782728Z roughness_sewer: Path, 2023-01-26T12:39:05.6782822Z extforcefile: Path, 2023-01-26T12:39:05.6782915Z forcingfile: Path, 2023-01-26T12:39:05.6782985Z ): 2023-01-26T12:39:05.6783122Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6783144Z 2023-01-26T12:39:05.6783235Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6783352Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6791737Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6791851Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6791976Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6792072Z super().__init__(**data) 2023-01-26T12:39:05.6792240Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6792301Z ??? 2023-01-26T12:39:05.6792454Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6792532Z ??? 2023-01-26T12:39:05.6792716Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6792788Z ??? 2023-01-26T12:39:05.6792976Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6793049Z ??? 2023-01-26T12:39:05.6793312Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6793390Z ??? 2023-01-26T12:39:05.6793604Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6793677Z ??? 2023-01-26T12:39:05.6793816Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6793927Z return super().validate(value) 2023-01-26T12:39:05.6794092Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6794154Z ??? 2023-01-26T12:39:05.6794281Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6794377Z super().__init__(**data) 2023-01-26T12:39:05.6794535Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6794608Z ??? 2023-01-26T12:39:05.6794759Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6794832Z ??? 2023-01-26T12:39:05.6794996Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6795072Z ??? 2023-01-26T12:39:05.6795260Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6795330Z ??? 2023-01-26T12:39:05.6795517Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6795590Z ??? 2023-01-26T12:39:05.6795803Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6795877Z ??? 2023-01-26T12:39:05.6796053Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6796163Z return super().validate(value) 2023-01-26T12:39:05.6796327Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6796400Z ??? 2023-01-26T12:39:05.6796526Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6796634Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6796757Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6796839Z super().__init__(**data) 2023-01-26T12:39:05.6797000Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6797076Z ??? 2023-01-26T12:39:05.6797227Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6797300Z ??? 2023-01-26T12:39:05.6797480Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6797554Z ??? 2023-01-26T12:39:05.6797678Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6797842Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6798241Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6798352Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6798473Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6798482Z 2023-01-26T12:39:05.6798936Z self = 2023-01-26T12:39:05.6799317Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6799471Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6807293Z winmode = None 2023-01-26T12:39:05.6807307Z 2023-01-26T12:39:05.6807455Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6807564Z use_errno=False, 2023-01-26T12:39:05.6807674Z use_last_error=False, 2023-01-26T12:39:05.6807772Z winmode=None): 2023-01-26T12:39:05.6807865Z self._name = name 2023-01-26T12:39:05.6807966Z flags = self._func_flags_ 2023-01-26T12:39:05.6808053Z if use_errno: 2023-01-26T12:39:05.6808150Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6808243Z if use_last_error: 2023-01-26T12:39:05.6808363Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6808560Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6808704Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6808933Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6809095Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6809257Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6809325Z """ 2023-01-26T12:39:05.6809463Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6809594Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6809688Z if _os.name == "nt": 2023-01-26T12:39:05.6809790Z if winmode is not None: 2023-01-26T12:39:05.6809876Z mode = winmode 2023-01-26T12:39:05.6809953Z else: 2023-01-26T12:39:05.6810027Z import nt 2023-01-26T12:39:05.6810167Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6810338Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6810484Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6810622Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6810696Z 2023-01-26T12:39:05.6810804Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6810879Z _flags_ = flags 2023-01-26T12:39:05.6811052Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6811158Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6811231Z 2023-01-26T12:39:05.6811323Z if handle is None: 2023-01-26T12:39:05.6811453Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6811979Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6811988Z 2023-01-26T12:39:05.6812172Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6812484Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile1-flat-hierarchy-False] _ 2023-01-26T12:39:05.6812507Z 2023-01-26T12:39:05.6812665Z self = 2023-01-26T12:39:05.6812908Z paths_relative_to_parent = False, netfile = PosixPath('FlowFM_net.nc') 2023-01-26T12:39:05.6813104Z structuresfile = PosixPath('structures.ini') 2023-01-26T12:39:05.6813329Z roughness_channel = PosixPath('roughness-Channels.ini') 2023-01-26T12:39:05.6813530Z roughness_main = PosixPath('roughness-Main.ini') 2023-01-26T12:39:05.6813738Z roughness_sewer = PosixPath('roughness-Sewers.ini') 2023-01-26T12:39:05.6813923Z extforcefile = PosixPath('FM_model_bnd.ext') 2023-01-26T12:39:05.6814147Z forcingfile = PosixPath('ext/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6814169Z 2023-01-26T12:39:05.6814272Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6814383Z "paths_relative_to_parent", 2023-01-26T12:39:05.6814472Z [True, False], 2023-01-26T12:39:05.6814546Z ) 2023-01-26T12:39:05.6814659Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6814734Z ( 2023-01-26T12:39:05.6814818Z "netfile", 2023-01-26T12:39:05.6814902Z "structuresfile", 2023-01-26T12:39:05.6815001Z "roughness_channel", 2023-01-26T12:39:05.6815100Z "roughness_main", 2023-01-26T12:39:05.6815195Z "roughness_sewer", 2023-01-26T12:39:05.6815288Z "extforcefile", 2023-01-26T12:39:05.6823141Z ), 2023-01-26T12:39:05.6823205Z [ 2023-01-26T12:39:05.6823303Z pytest.param( 2023-01-26T12:39:05.6823414Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6823526Z Path("structures.ini"), 2023-01-26T12:39:05.6823802Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6824064Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6824249Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6824361Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6824500Z id="flat-hierarchy", 2023-01-26T12:39:05.6824578Z ), 2023-01-26T12:39:05.6824673Z pytest.param( 2023-01-26T12:39:05.6824788Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6824943Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6825159Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6825356Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6825546Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6825664Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6825766Z id="relative paths", 2023-01-26T12:39:05.6825843Z ), 2023-01-26T12:39:05.6825938Z pytest.param( 2023-01-26T12:39:05.6826063Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6826190Z _external_path / "structures.ini", 2023-01-26T12:39:05.6826387Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6826584Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6826786Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6826912Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6827082Z id="absolute paths", 2023-01-26T12:39:05.6827159Z ), 2023-01-26T12:39:05.6827233Z ], 2023-01-26T12:39:05.6827293Z ) 2023-01-26T12:39:05.6827406Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6827495Z "forcingfile", 2023-01-26T12:39:05.6827569Z [ 2023-01-26T12:39:05.6827716Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6827867Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6828029Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6828090Z ], 2023-01-26T12:39:05.6828162Z ) 2023-01-26T12:39:05.6828296Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6828372Z self, 2023-01-26T12:39:05.6828483Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6828575Z netfile: Path, 2023-01-26T12:39:05.6828675Z structuresfile: Path, 2023-01-26T12:39:05.6828764Z roughness_channel: Path, 2023-01-26T12:39:05.6828865Z roughness_main: Path, 2023-01-26T12:39:05.6828964Z roughness_sewer: Path, 2023-01-26T12:39:05.6829062Z extforcefile: Path, 2023-01-26T12:39:05.6829159Z forcingfile: Path, 2023-01-26T12:39:05.6829230Z ): 2023-01-26T12:39:05.6829378Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6829387Z 2023-01-26T12:39:05.6829487Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6829593Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6829722Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6829828Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6829951Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6830045Z super().__init__(**data) 2023-01-26T12:39:05.6830205Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6830281Z ??? 2023-01-26T12:39:05.6830419Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6830496Z ??? 2023-01-26T12:39:05.6830675Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6830746Z ??? 2023-01-26T12:39:05.6830932Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6831004Z ??? 2023-01-26T12:39:05.6831190Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6839028Z ??? 2023-01-26T12:39:05.6839342Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6839419Z ??? 2023-01-26T12:39:05.6839562Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6839672Z return super().validate(value) 2023-01-26T12:39:05.6839838Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6839910Z ??? 2023-01-26T12:39:05.6840018Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6840113Z super().__init__(**data) 2023-01-26T12:39:05.6840272Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6840345Z ??? 2023-01-26T12:39:05.6840495Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6840571Z ??? 2023-01-26T12:39:05.6840749Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6840807Z ??? 2023-01-26T12:39:05.6840994Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6841068Z ??? 2023-01-26T12:39:05.6841256Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6841328Z ??? 2023-01-26T12:39:05.6841538Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6841610Z ??? 2023-01-26T12:39:05.6841736Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6841831Z return super().validate(value) 2023-01-26T12:39:05.6841993Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6842125Z ??? 2023-01-26T12:39:05.6842249Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6842358Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6842480Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6842575Z super().__init__(**data) 2023-01-26T12:39:05.6842718Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6842791Z ??? 2023-01-26T12:39:05.6842940Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6843019Z ??? 2023-01-26T12:39:05.6843197Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6843270Z ??? 2023-01-26T12:39:05.6843409Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6843555Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6843938Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6844051Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6844171Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6844180Z 2023-01-26T12:39:05.6844632Z self = 2023-01-26T12:39:05.6845007Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6845163Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6845250Z winmode = None 2023-01-26T12:39:05.6845258Z 2023-01-26T12:39:05.6845404Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6845490Z use_errno=False, 2023-01-26T12:39:05.6845593Z use_last_error=False, 2023-01-26T12:39:05.6845688Z winmode=None): 2023-01-26T12:39:05.6845780Z self._name = name 2023-01-26T12:39:05.6845885Z flags = self._func_flags_ 2023-01-26T12:39:05.6845974Z if use_errno: 2023-01-26T12:39:05.6846083Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6846162Z if use_last_error: 2023-01-26T12:39:05.6846280Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6846410Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6846549Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6846823Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6846989Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6854956Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6855044Z """ 2023-01-26T12:39:05.6855172Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6855305Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6855406Z if _os.name == "nt": 2023-01-26T12:39:05.6855508Z if winmode is not None: 2023-01-26T12:39:05.6855601Z mode = winmode 2023-01-26T12:39:05.6855681Z else: 2023-01-26T12:39:05.6855769Z import nt 2023-01-26T12:39:05.6855893Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6856070Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6856215Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6856358Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6856432Z 2023-01-26T12:39:05.6856540Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6856632Z _flags_ = flags 2023-01-26T12:39:05.6856736Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6856837Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6856907Z 2023-01-26T12:39:05.6857000Z if handle is None: 2023-01-26T12:39:05.6857210Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6857732Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6857742Z 2023-01-26T12:39:05.6857925Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6858242Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile1-relative paths-True] _ 2023-01-26T12:39:05.6858251Z 2023-01-26T12:39:05.6858423Z self = 2023-01-26T12:39:05.6858658Z paths_relative_to_parent = True, netfile = PosixPath('net/FlowFM_net.nc') 2023-01-26T12:39:05.6858866Z structuresfile = PosixPath('struc/structures.ini') 2023-01-26T12:39:05.6859110Z roughness_channel = PosixPath('channels/roughness-Channels.ini') 2023-01-26T12:39:05.6859334Z roughness_main = PosixPath('channels/roughness-Main.ini') 2023-01-26T12:39:05.6859569Z roughness_sewer = PosixPath('channels/roughness-Sewers.ini') 2023-01-26T12:39:05.6859764Z extforcefile = PosixPath('ext/FM_model_bnd.ext') 2023-01-26T12:39:05.6860002Z forcingfile = PosixPath('ext/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6860010Z 2023-01-26T12:39:05.6860122Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6860216Z "paths_relative_to_parent", 2023-01-26T12:39:05.6860304Z [True, False], 2023-01-26T12:39:05.6860378Z ) 2023-01-26T12:39:05.6860492Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6860567Z ( 2023-01-26T12:39:05.6860651Z "netfile", 2023-01-26T12:39:05.6860732Z "structuresfile", 2023-01-26T12:39:05.6860834Z "roughness_channel", 2023-01-26T12:39:05.6860927Z "roughness_main", 2023-01-26T12:39:05.6861022Z "roughness_sewer", 2023-01-26T12:39:05.6861114Z "extforcefile", 2023-01-26T12:39:05.6861194Z ), 2023-01-26T12:39:05.6861267Z [ 2023-01-26T12:39:05.6861347Z pytest.param( 2023-01-26T12:39:05.6861453Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6861564Z Path("structures.ini"), 2023-01-26T12:39:05.6861755Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6861933Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6862112Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6862222Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6862459Z id="flat-hierarchy", 2023-01-26T12:39:05.6862527Z ), 2023-01-26T12:39:05.6862621Z pytest.param( 2023-01-26T12:39:05.6862737Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6862860Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6863075Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6871145Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6871362Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6871469Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6871573Z id="relative paths", 2023-01-26T12:39:05.6871652Z ), 2023-01-26T12:39:05.6871748Z pytest.param( 2023-01-26T12:39:05.6871872Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6872001Z _external_path / "structures.ini", 2023-01-26T12:39:05.6872216Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6872400Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6872605Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6872731Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6872839Z id="absolute paths", 2023-01-26T12:39:05.6872916Z ), 2023-01-26T12:39:05.6872993Z ], 2023-01-26T12:39:05.6873067Z ) 2023-01-26T12:39:05.6873271Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6873359Z "forcingfile", 2023-01-26T12:39:05.6873435Z [ 2023-01-26T12:39:05.6873580Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6873731Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6873888Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6873963Z ], 2023-01-26T12:39:05.6874022Z ) 2023-01-26T12:39:05.6874161Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6874239Z self, 2023-01-26T12:39:05.6874354Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6874444Z netfile: Path, 2023-01-26T12:39:05.6874549Z structuresfile: Path, 2023-01-26T12:39:05.6874654Z roughness_channel: Path, 2023-01-26T12:39:05.6874737Z roughness_main: Path, 2023-01-26T12:39:05.6874839Z roughness_sewer: Path, 2023-01-26T12:39:05.6874939Z extforcefile: Path, 2023-01-26T12:39:05.6875039Z forcingfile: Path, 2023-01-26T12:39:05.6875113Z ): 2023-01-26T12:39:05.6875265Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6875274Z 2023-01-26T12:39:05.6875380Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6875504Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6875617Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6875723Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6875882Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6875979Z super().__init__(**data) 2023-01-26T12:39:05.6876136Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6876208Z ??? 2023-01-26T12:39:05.6876358Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6876418Z ??? 2023-01-26T12:39:05.6876597Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6876668Z ??? 2023-01-26T12:39:05.6876859Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6876930Z ??? 2023-01-26T12:39:05.6877115Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6877186Z ??? 2023-01-26T12:39:05.6877385Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6877456Z ??? 2023-01-26T12:39:05.6877592Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6877766Z return super().validate(value) 2023-01-26T12:39:05.6877933Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6878005Z ??? 2023-01-26T12:39:05.6878127Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6878208Z super().__init__(**data) 2023-01-26T12:39:05.6878360Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6878433Z ??? 2023-01-26T12:39:05.6878581Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6878654Z ??? 2023-01-26T12:39:05.6878830Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6878904Z ??? 2023-01-26T12:39:05.6879074Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6879147Z ??? 2023-01-26T12:39:05.6887154Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6887234Z ??? 2023-01-26T12:39:05.6887456Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6887531Z ??? 2023-01-26T12:39:05.6887657Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6887769Z return super().validate(value) 2023-01-26T12:39:05.6887917Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6887992Z ??? 2023-01-26T12:39:05.6888118Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6888225Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6888439Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6888537Z super().__init__(**data) 2023-01-26T12:39:05.6888695Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6888756Z ??? 2023-01-26T12:39:05.6888905Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6888981Z ??? 2023-01-26T12:39:05.6889159Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6889232Z ??? 2023-01-26T12:39:05.6889371Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6889537Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6889911Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6890021Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6890143Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6890154Z 2023-01-26T12:39:05.6890604Z self = 2023-01-26T12:39:05.6890985Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6891138Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6891224Z winmode = None 2023-01-26T12:39:05.6891234Z 2023-01-26T12:39:05.6891382Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6891484Z use_errno=False, 2023-01-26T12:39:05.6891573Z use_last_error=False, 2023-01-26T12:39:05.6891668Z winmode=None): 2023-01-26T12:39:05.6891759Z self._name = name 2023-01-26T12:39:05.6891862Z flags = self._func_flags_ 2023-01-26T12:39:05.6891949Z if use_errno: 2023-01-26T12:39:05.6892058Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6892154Z if use_last_error: 2023-01-26T12:39:05.6892258Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6892388Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6892526Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6892742Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6892903Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6893131Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6893213Z """ 2023-01-26T12:39:05.6893352Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6893469Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6893564Z if _os.name == "nt": 2023-01-26T12:39:05.6893666Z if winmode is not None: 2023-01-26T12:39:05.6893760Z mode = winmode 2023-01-26T12:39:05.6893841Z else: 2023-01-26T12:39:05.6893931Z import nt 2023-01-26T12:39:05.6894067Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6894223Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6894370Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6894509Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6894583Z 2023-01-26T12:39:05.6894693Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6894783Z _flags_ = flags 2023-01-26T12:39:05.6894901Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6894989Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6895061Z 2023-01-26T12:39:05.6895157Z if handle is None: 2023-01-26T12:39:05.6903073Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6903609Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6903796Z 2023-01-26T12:39:05.6903982Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6904304Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile1-relative paths-False] _ 2023-01-26T12:39:05.6904313Z 2023-01-26T12:39:05.6904487Z self = 2023-01-26T12:39:05.6904741Z paths_relative_to_parent = False, netfile = PosixPath('net/FlowFM_net.nc') 2023-01-26T12:39:05.6904932Z structuresfile = PosixPath('struc/structures.ini') 2023-01-26T12:39:05.6905177Z roughness_channel = PosixPath('channels/roughness-Channels.ini') 2023-01-26T12:39:05.6905400Z roughness_main = PosixPath('channels/roughness-Main.ini') 2023-01-26T12:39:05.6905633Z roughness_sewer = PosixPath('channels/roughness-Sewers.ini') 2023-01-26T12:39:05.6905827Z extforcefile = PosixPath('ext/FM_model_bnd.ext') 2023-01-26T12:39:05.6906068Z forcingfile = PosixPath('ext/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6906076Z 2023-01-26T12:39:05.6906190Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6906300Z "paths_relative_to_parent", 2023-01-26T12:39:05.6906373Z [True, False], 2023-01-26T12:39:05.6906448Z ) 2023-01-26T12:39:05.6906560Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6906638Z ( 2023-01-26T12:39:05.6906724Z "netfile", 2023-01-26T12:39:05.6906827Z "structuresfile", 2023-01-26T12:39:05.6906912Z "roughness_channel", 2023-01-26T12:39:05.6907005Z "roughness_main", 2023-01-26T12:39:05.6907102Z "roughness_sewer", 2023-01-26T12:39:05.6907195Z "extforcefile", 2023-01-26T12:39:05.6907270Z ), 2023-01-26T12:39:05.6907343Z [ 2023-01-26T12:39:05.6907435Z pytest.param( 2023-01-26T12:39:05.6907527Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6907642Z Path("structures.ini"), 2023-01-26T12:39:05.6907830Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6908007Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6908186Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6908296Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6908448Z id="flat-hierarchy", 2023-01-26T12:39:05.6908525Z ), 2023-01-26T12:39:05.6908605Z pytest.param( 2023-01-26T12:39:05.6908790Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6908918Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6909132Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6909330Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6909535Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6909653Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6909747Z id="relative paths", 2023-01-26T12:39:05.6909825Z ), 2023-01-26T12:39:05.6909918Z pytest.param( 2023-01-26T12:39:05.6910041Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6910168Z _external_path / "structures.ini", 2023-01-26T12:39:05.6910380Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6910576Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6910767Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6910892Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6910994Z id="absolute paths", 2023-01-26T12:39:05.6911070Z ), 2023-01-26T12:39:05.6911145Z ], 2023-01-26T12:39:05.6911218Z ) 2023-01-26T12:39:05.6911332Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6911406Z "forcingfile", 2023-01-26T12:39:05.6919285Z [ 2023-01-26T12:39:05.6919529Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6919682Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6919842Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6919919Z ], 2023-01-26T12:39:05.6919990Z ) 2023-01-26T12:39:05.6920115Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6920192Z self, 2023-01-26T12:39:05.6920307Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6920398Z netfile: Path, 2023-01-26T12:39:05.6920504Z structuresfile: Path, 2023-01-26T12:39:05.6920610Z roughness_channel: Path, 2023-01-26T12:39:05.6920709Z roughness_main: Path, 2023-01-26T12:39:05.6920795Z roughness_sewer: Path, 2023-01-26T12:39:05.6920895Z extforcefile: Path, 2023-01-26T12:39:05.6920992Z forcingfile: Path, 2023-01-26T12:39:05.6921065Z ): 2023-01-26T12:39:05.6921216Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6921228Z 2023-01-26T12:39:05.6921332Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6921451Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6921579Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6921672Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6921795Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6921894Z super().__init__(**data) 2023-01-26T12:39:05.6922057Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6922133Z ??? 2023-01-26T12:39:05.6922283Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6922360Z ??? 2023-01-26T12:39:05.6922525Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6922604Z ??? 2023-01-26T12:39:05.6922792Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6922866Z ??? 2023-01-26T12:39:05.6923056Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6923129Z ??? 2023-01-26T12:39:05.6923341Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6923399Z ??? 2023-01-26T12:39:05.6923536Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6923645Z return super().validate(value) 2023-01-26T12:39:05.6923808Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6923880Z ??? 2023-01-26T12:39:05.6924061Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6924161Z super().__init__(**data) 2023-01-26T12:39:05.6924305Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6924378Z ??? 2023-01-26T12:39:05.6924528Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6924600Z ??? 2023-01-26T12:39:05.6924777Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6924853Z ??? 2023-01-26T12:39:05.6925039Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6925098Z ??? 2023-01-26T12:39:05.6925283Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6925357Z ??? 2023-01-26T12:39:05.6925567Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6925643Z ??? 2023-01-26T12:39:05.6925770Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6925882Z return super().validate(value) 2023-01-26T12:39:05.6926046Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6926105Z ??? 2023-01-26T12:39:05.6926229Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6926335Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6926460Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6926556Z super().__init__(**data) 2023-01-26T12:39:05.6926773Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6926847Z ??? 2023-01-26T12:39:05.6926984Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6927058Z ??? 2023-01-26T12:39:05.6927236Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6927313Z ??? 2023-01-26T12:39:05.6927450Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6935381Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6935774Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6935871Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6935994Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6936004Z 2023-01-26T12:39:05.6936455Z self = 2023-01-26T12:39:05.6936841Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6936998Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6937085Z winmode = None 2023-01-26T12:39:05.6937091Z 2023-01-26T12:39:05.6937237Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6937337Z use_errno=False, 2023-01-26T12:39:05.6937443Z use_last_error=False, 2023-01-26T12:39:05.6937523Z winmode=None): 2023-01-26T12:39:05.6937617Z self._name = name 2023-01-26T12:39:05.6937717Z flags = self._func_flags_ 2023-01-26T12:39:05.6937805Z if use_errno: 2023-01-26T12:39:05.6937915Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6938009Z if use_last_error: 2023-01-26T12:39:05.6938132Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6938251Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6938389Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6938608Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6938768Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6938932Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6939009Z """ 2023-01-26T12:39:05.6939224Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6939364Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6939445Z if _os.name == "nt": 2023-01-26T12:39:05.6939546Z if winmode is not None: 2023-01-26T12:39:05.6939639Z mode = winmode 2023-01-26T12:39:05.6939719Z else: 2023-01-26T12:39:05.6939808Z import nt 2023-01-26T12:39:05.6939945Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6940121Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6940253Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6940391Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6940464Z 2023-01-26T12:39:05.6940573Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6940662Z _flags_ = flags 2023-01-26T12:39:05.6940779Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6940886Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6940942Z 2023-01-26T12:39:05.6941035Z if handle is None: 2023-01-26T12:39:05.6941168Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6941685Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6941694Z 2023-01-26T12:39:05.6941937Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6942251Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile1-absolute paths-True] _ 2023-01-26T12:39:05.6942260Z 2023-01-26T12:39:05.6942429Z self = 2023-01-26T12:39:05.6942542Z paths_relative_to_parent = True 2023-01-26T12:39:05.6942975Z netfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FlowFM_net.nc') 2023-01-26T12:39:05.6951399Z structuresfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/structures.ini') 2023-01-26T12:39:05.6951924Z roughness_channel = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Channels.ini') 2023-01-26T12:39:05.6952384Z roughness_main = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Main.ini') 2023-01-26T12:39:05.6952844Z roughness_sewer = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Sewers.ini') 2023-01-26T12:39:05.6953281Z extforcefile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_bnd.ext') 2023-01-26T12:39:05.6953527Z forcingfile = PosixPath('ext/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6953539Z 2023-01-26T12:39:05.6953653Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6953763Z "paths_relative_to_parent", 2023-01-26T12:39:05.6953852Z [True, False], 2023-01-26T12:39:05.6953926Z ) 2023-01-26T12:39:05.6954021Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6954097Z ( 2023-01-26T12:39:05.6954182Z "netfile", 2023-01-26T12:39:05.6954283Z "structuresfile", 2023-01-26T12:39:05.6954386Z "roughness_channel", 2023-01-26T12:39:05.6954480Z "roughness_main", 2023-01-26T12:39:05.6954576Z "roughness_sewer", 2023-01-26T12:39:05.6954654Z "extforcefile", 2023-01-26T12:39:05.6954729Z ), 2023-01-26T12:39:05.6954802Z [ 2023-01-26T12:39:05.6954896Z pytest.param( 2023-01-26T12:39:05.6955004Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6955198Z Path("structures.ini"), 2023-01-26T12:39:05.6955396Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6955558Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6955740Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6955852Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6956004Z id="flat-hierarchy", 2023-01-26T12:39:05.6956083Z ), 2023-01-26T12:39:05.6956178Z pytest.param( 2023-01-26T12:39:05.6956301Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6956412Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6956625Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6956822Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6957026Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6957148Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6957254Z id="relative paths", 2023-01-26T12:39:05.6957333Z ), 2023-01-26T12:39:05.6957414Z pytest.param( 2023-01-26T12:39:05.6957537Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6957665Z _external_path / "structures.ini", 2023-01-26T12:39:05.6957878Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6958073Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6958365Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6958492Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6958595Z id="absolute paths", 2023-01-26T12:39:05.6958657Z ), 2023-01-26T12:39:05.6958732Z ], 2023-01-26T12:39:05.6958806Z ) 2023-01-26T12:39:05.6958920Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6959009Z "forcingfile", 2023-01-26T12:39:05.6959082Z [ 2023-01-26T12:39:05.6959216Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6959369Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6959529Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6959605Z ], 2023-01-26T12:39:05.6959679Z ) 2023-01-26T12:39:05.6959815Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6959895Z self, 2023-01-26T12:39:05.6959994Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6967825Z netfile: Path, 2023-01-26T12:39:05.6967939Z structuresfile: Path, 2023-01-26T12:39:05.6968045Z roughness_channel: Path, 2023-01-26T12:39:05.6968144Z roughness_main: Path, 2023-01-26T12:39:05.6968244Z roughness_sewer: Path, 2023-01-26T12:39:05.6968343Z extforcefile: Path, 2023-01-26T12:39:05.6968425Z forcingfile: Path, 2023-01-26T12:39:05.6968499Z ): 2023-01-26T12:39:05.6968651Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.6968661Z 2023-01-26T12:39:05.6968769Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.6968890Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6969017Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6969128Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6969250Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6969331Z super().__init__(**data) 2023-01-26T12:39:05.6969489Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6969567Z ??? 2023-01-26T12:39:05.6969719Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6969795Z ??? 2023-01-26T12:39:05.6969975Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6970047Z ??? 2023-01-26T12:39:05.6970220Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6970294Z ??? 2023-01-26T12:39:05.6970560Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6970641Z ??? 2023-01-26T12:39:05.6970854Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6970929Z ??? 2023-01-26T12:39:05.6971067Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.6971162Z return super().validate(value) 2023-01-26T12:39:05.6971327Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6971406Z ??? 2023-01-26T12:39:05.6971528Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6971625Z super().__init__(**data) 2023-01-26T12:39:05.6971781Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6971854Z ??? 2023-01-26T12:39:05.6971989Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.6972063Z ??? 2023-01-26T12:39:05.6972241Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.6972314Z ??? 2023-01-26T12:39:05.6972504Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.6972579Z ??? 2023-01-26T12:39:05.6972764Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.6972837Z ??? 2023-01-26T12:39:05.6973036Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.6973113Z ??? 2023-01-26T12:39:05.6973239Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.6973439Z return super().validate(value) 2023-01-26T12:39:05.6973604Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.6973678Z ??? 2023-01-26T12:39:05.6973803Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.6973895Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.6974016Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.6974111Z super().__init__(**data) 2023-01-26T12:39:05.6974273Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.6974348Z ??? 2023-01-26T12:39:05.6974498Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.6974572Z ??? 2023-01-26T12:39:05.6974734Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.6974808Z ??? 2023-01-26T12:39:05.6974944Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.6975108Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.6975490Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.6975605Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.6975726Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.6975735Z 2023-01-26T12:39:05.6976221Z self = 2023-01-26T12:39:05.6976587Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.6976741Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.6976828Z winmode = None 2023-01-26T12:39:05.6976835Z 2023-01-26T12:39:05.6976980Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.6977079Z use_errno=False, 2023-01-26T12:39:05.6977189Z use_last_error=False, 2023-01-26T12:39:05.6977283Z winmode=None): 2023-01-26T12:39:05.6977374Z self._name = name 2023-01-26T12:39:05.6977459Z flags = self._func_flags_ 2023-01-26T12:39:05.6977549Z if use_errno: 2023-01-26T12:39:05.6977658Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.6977752Z if use_last_error: 2023-01-26T12:39:05.6977871Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.6978057Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.6978202Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.6978408Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.6978570Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.6978732Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.6978812Z """ 2023-01-26T12:39:05.6978952Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.6979082Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.6979178Z if _os.name == "nt": 2023-01-26T12:39:05.6979283Z if winmode is not None: 2023-01-26T12:39:05.6979360Z mode = winmode 2023-01-26T12:39:05.6979439Z else: 2023-01-26T12:39:05.6979527Z import nt 2023-01-26T12:39:05.6979667Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.6979839Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.6979985Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.6980123Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.6980181Z 2023-01-26T12:39:05.6980290Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.6980380Z _flags_ = flags 2023-01-26T12:39:05.6980495Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.6980665Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.6980737Z 2023-01-26T12:39:05.6980829Z if handle is None: 2023-01-26T12:39:05.6980944Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.6981463Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.6981472Z 2023-01-26T12:39:05.6981657Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.6981974Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile1-absolute paths-False] _ 2023-01-26T12:39:05.6981983Z 2023-01-26T12:39:05.6982154Z self = 2023-01-26T12:39:05.6982264Z paths_relative_to_parent = False 2023-01-26T12:39:05.6990594Z netfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FlowFM_net.nc') 2023-01-26T12:39:05.6991064Z structuresfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/structures.ini') 2023-01-26T12:39:05.6991552Z roughness_channel = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Channels.ini') 2023-01-26T12:39:05.6992012Z roughness_main = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Main.ini') 2023-01-26T12:39:05.6992473Z roughness_sewer = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Sewers.ini') 2023-01-26T12:39:05.6992903Z extforcefile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_bnd.ext') 2023-01-26T12:39:05.6993150Z forcingfile = PosixPath('ext/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.6993159Z 2023-01-26T12:39:05.6993274Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6993383Z "paths_relative_to_parent", 2023-01-26T12:39:05.6993474Z [True, False], 2023-01-26T12:39:05.6993548Z ) 2023-01-26T12:39:05.6993659Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6993733Z ( 2023-01-26T12:39:05.6993804Z "netfile", 2023-01-26T12:39:05.6993988Z "structuresfile", 2023-01-26T12:39:05.6994092Z "roughness_channel", 2023-01-26T12:39:05.6994184Z "roughness_main", 2023-01-26T12:39:05.6994280Z "roughness_sewer", 2023-01-26T12:39:05.6994371Z "extforcefile", 2023-01-26T12:39:05.6994446Z ), 2023-01-26T12:39:05.6994506Z [ 2023-01-26T12:39:05.6994599Z pytest.param( 2023-01-26T12:39:05.6994706Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.6994821Z Path("structures.ini"), 2023-01-26T12:39:05.6995014Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.6995190Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.6995374Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.6995470Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.6995621Z id="flat-hierarchy", 2023-01-26T12:39:05.6995700Z ), 2023-01-26T12:39:05.6995795Z pytest.param( 2023-01-26T12:39:05.6995913Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.6996039Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.6996255Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.6996441Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.6996647Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.6996766Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.6996939Z id="relative paths", 2023-01-26T12:39:05.6997017Z ), 2023-01-26T12:39:05.6997112Z pytest.param( 2023-01-26T12:39:05.6997235Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.6997350Z _external_path / "structures.ini", 2023-01-26T12:39:05.6997565Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.6997765Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.6997970Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.6998095Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.6998198Z id="absolute paths", 2023-01-26T12:39:05.6998277Z ), 2023-01-26T12:39:05.6998338Z ], 2023-01-26T12:39:05.6998413Z ) 2023-01-26T12:39:05.6998525Z @pytest.mark.parametrize( 2023-01-26T12:39:05.6998613Z "forcingfile", 2023-01-26T12:39:05.6998688Z [ 2023-01-26T12:39:05.6998836Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6998990Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.6999134Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.6999211Z ], 2023-01-26T12:39:05.6999284Z ) 2023-01-26T12:39:05.6999419Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.6999498Z self, 2023-01-26T12:39:05.6999610Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.6999700Z netfile: Path, 2023-01-26T12:39:05.6999791Z structuresfile: Path, 2023-01-26T12:39:05.6999896Z roughness_channel: Path, 2023-01-26T12:39:05.6999995Z roughness_main: Path, 2023-01-26T12:39:05.7000096Z roughness_sewer: Path, 2023-01-26T12:39:05.7000194Z extforcefile: Path, 2023-01-26T12:39:05.7000288Z forcingfile: Path, 2023-01-26T12:39:05.7000362Z ): 2023-01-26T12:39:05.7000497Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7000521Z 2023-01-26T12:39:05.7000613Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.7000734Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7000860Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7000968Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7001091Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7001189Z super().__init__(**data) 2023-01-26T12:39:05.7001410Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7001475Z ??? 2023-01-26T12:39:05.7001628Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7001702Z ??? 2023-01-26T12:39:05.7001887Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7001984Z ??? 2023-01-26T12:39:05.7002173Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7002248Z ??? 2023-01-26T12:39:05.7002423Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7002497Z ??? 2023-01-26T12:39:05.7002709Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7002785Z ??? 2023-01-26T12:39:05.7002922Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7003032Z return super().validate(value) 2023-01-26T12:39:05.7003196Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7003256Z ??? 2023-01-26T12:39:05.7003386Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7003482Z super().__init__(**data) 2023-01-26T12:39:05.7003639Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7003713Z ??? 2023-01-26T12:39:05.7003862Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7003935Z ??? 2023-01-26T12:39:05.7004114Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7011942Z ??? 2023-01-26T12:39:05.7012139Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7012213Z ??? 2023-01-26T12:39:05.7012401Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7012475Z ??? 2023-01-26T12:39:05.7012687Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7012761Z ??? 2023-01-26T12:39:05.7012876Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7012989Z return super().validate(value) 2023-01-26T12:39:05.7013156Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7013228Z ??? 2023-01-26T12:39:05.7013356Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7013464Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7013588Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7013669Z super().__init__(**data) 2023-01-26T12:39:05.7013832Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7013906Z ??? 2023-01-26T12:39:05.7014056Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7014131Z ??? 2023-01-26T12:39:05.7014310Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7014382Z ??? 2023-01-26T12:39:05.7014508Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7014670Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7015053Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7015163Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7015285Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7015294Z 2023-01-26T12:39:05.7015744Z self = 2023-01-26T12:39:05.7016128Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7016281Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7016368Z winmode = None 2023-01-26T12:39:05.7016376Z 2023-01-26T12:39:05.7016506Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7016607Z use_errno=False, 2023-01-26T12:39:05.7016767Z use_last_error=False, 2023-01-26T12:39:05.7016868Z winmode=None): 2023-01-26T12:39:05.7016962Z self._name = name 2023-01-26T12:39:05.7017063Z flags = self._func_flags_ 2023-01-26T12:39:05.7017151Z if use_errno: 2023-01-26T12:39:05.7017247Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7017340Z if use_last_error: 2023-01-26T12:39:05.7017459Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7017594Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7017734Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7017957Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7018121Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7018281Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7018345Z """ 2023-01-26T12:39:05.7018486Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7018620Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7018714Z if _os.name == "nt": 2023-01-26T12:39:05.7018817Z if winmode is not None: 2023-01-26T12:39:05.7018909Z mode = winmode 2023-01-26T12:39:05.7018988Z else: 2023-01-26T12:39:05.7019062Z import nt 2023-01-26T12:39:05.7019199Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7019426Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7019572Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7019709Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7019781Z 2023-01-26T12:39:05.7019890Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7019966Z _flags_ = flags 2023-01-26T12:39:05.7020081Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7020188Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7020260Z 2023-01-26T12:39:05.7020352Z if handle is None: 2023-01-26T12:39:05.7020483Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7020996Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7021005Z 2023-01-26T12:39:05.7021188Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7021499Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile2-flat-hierarchy-True] _ 2023-01-26T12:39:05.7021523Z 2023-01-26T12:39:05.7021682Z self = 2023-01-26T12:39:05.7021923Z paths_relative_to_parent = True, netfile = PosixPath('FlowFM_net.nc') 2023-01-26T12:39:05.7022116Z structuresfile = PosixPath('structures.ini') 2023-01-26T12:39:05.7022343Z roughness_channel = PosixPath('roughness-Channels.ini') 2023-01-26T12:39:05.7022544Z roughness_main = PosixPath('roughness-Main.ini') 2023-01-26T12:39:05.7022753Z roughness_sewer = PosixPath('roughness-Sewers.ini') 2023-01-26T12:39:05.7022939Z extforcefile = PosixPath('FM_model_bnd.ext') 2023-01-26T12:39:05.7023432Z forcingfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.7023443Z 2023-01-26T12:39:05.7023543Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7023753Z "paths_relative_to_parent", 2023-01-26T12:39:05.7023845Z [True, False], 2023-01-26T12:39:05.7023918Z ) 2023-01-26T12:39:05.7024031Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7024106Z ( 2023-01-26T12:39:05.7024193Z "netfile", 2023-01-26T12:39:05.7024275Z "structuresfile", 2023-01-26T12:39:05.7024373Z "roughness_channel", 2023-01-26T12:39:05.7024530Z "roughness_main", 2023-01-26T12:39:05.7024632Z "roughness_sewer", 2023-01-26T12:39:05.7024724Z "extforcefile", 2023-01-26T12:39:05.7024798Z ), 2023-01-26T12:39:05.7024873Z [ 2023-01-26T12:39:05.7024956Z pytest.param( 2023-01-26T12:39:05.7025065Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.7025177Z Path("structures.ini"), 2023-01-26T12:39:05.7025379Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.7025557Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.7025739Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.7025849Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.7025985Z id="flat-hierarchy", 2023-01-26T12:39:05.7026063Z ), 2023-01-26T12:39:05.7026161Z pytest.param( 2023-01-26T12:39:05.7026277Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.7026405Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.7026619Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.7026818Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.7027007Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.7027126Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.7027228Z id="relative paths", 2023-01-26T12:39:05.7027306Z ), 2023-01-26T12:39:05.7027460Z pytest.param( 2023-01-26T12:39:05.7027586Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.7027714Z _external_path / "structures.ini", 2023-01-26T12:39:05.7027914Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.7028111Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.7028311Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.7028438Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.7028543Z id="absolute paths", 2023-01-26T12:39:05.7028619Z ), 2023-01-26T12:39:05.7028695Z ], 2023-01-26T12:39:05.7028769Z ) 2023-01-26T12:39:05.7028871Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7028960Z "forcingfile", 2023-01-26T12:39:05.7029035Z [ 2023-01-26T12:39:05.7029182Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7029332Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7029498Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.7029572Z ], 2023-01-26T12:39:05.7029633Z ) 2023-01-26T12:39:05.7029766Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.7029844Z self, 2023-01-26T12:39:05.7029958Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.7030050Z netfile: Path, 2023-01-26T12:39:05.7030153Z structuresfile: Path, 2023-01-26T12:39:05.7030263Z roughness_channel: Path, 2023-01-26T12:39:05.7030348Z roughness_main: Path, 2023-01-26T12:39:05.7030449Z roughness_sewer: Path, 2023-01-26T12:39:05.7030547Z extforcefile: Path, 2023-01-26T12:39:05.7030642Z forcingfile: Path, 2023-01-26T12:39:05.7030716Z ): 2023-01-26T12:39:05.7030867Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7030877Z 2023-01-26T12:39:05.7030981Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.7031092Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7031219Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7031324Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7031447Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7031542Z super().__init__(**data) 2023-01-26T12:39:05.7039479Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7039557Z ??? 2023-01-26T12:39:05.7039765Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7039842Z ??? 2023-01-26T12:39:05.7040023Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7040095Z ??? 2023-01-26T12:39:05.7040285Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7040362Z ??? 2023-01-26T12:39:05.7040550Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7040612Z ??? 2023-01-26T12:39:05.7040827Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7040901Z ??? 2023-01-26T12:39:05.7041039Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7041149Z return super().validate(value) 2023-01-26T12:39:05.7041314Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7041387Z ??? 2023-01-26T12:39:05.7041510Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7041595Z super().__init__(**data) 2023-01-26T12:39:05.7041752Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7041825Z ??? 2023-01-26T12:39:05.7041975Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7042049Z ??? 2023-01-26T12:39:05.7042227Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7042298Z ??? 2023-01-26T12:39:05.7042470Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7042605Z ??? 2023-01-26T12:39:05.7042792Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7042867Z ??? 2023-01-26T12:39:05.7043077Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7043151Z ??? 2023-01-26T12:39:05.7043277Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7043372Z return super().validate(value) 2023-01-26T12:39:05.7043538Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7043610Z ??? 2023-01-26T12:39:05.7043735Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7043840Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7043964Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7044058Z super().__init__(**data) 2023-01-26T12:39:05.7044201Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7044274Z ??? 2023-01-26T12:39:05.7044426Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7044499Z ??? 2023-01-26T12:39:05.7044678Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7044752Z ??? 2023-01-26T12:39:05.7044888Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7045035Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7045426Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7045538Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7045660Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7045670Z 2023-01-26T12:39:05.7046118Z self = 2023-01-26T12:39:05.7046497Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7046651Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7046740Z winmode = None 2023-01-26T12:39:05.7046748Z 2023-01-26T12:39:05.7046892Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7046976Z use_errno=False, 2023-01-26T12:39:05.7047081Z use_last_error=False, 2023-01-26T12:39:05.7047177Z winmode=None): 2023-01-26T12:39:05.7047323Z self._name = name 2023-01-26T12:39:05.7047426Z flags = self._func_flags_ 2023-01-26T12:39:05.7047514Z if use_errno: 2023-01-26T12:39:05.7047625Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7047704Z if use_last_error: 2023-01-26T12:39:05.7047825Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7047954Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7048097Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7048320Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7048482Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7048643Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7048723Z """ 2023-01-26T12:39:05.7048847Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7048982Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7049076Z if _os.name == "nt": 2023-01-26T12:39:05.7049180Z if winmode is not None: 2023-01-26T12:39:05.7049272Z mode = winmode 2023-01-26T12:39:05.7049352Z else: 2023-01-26T12:39:05.7049440Z import nt 2023-01-26T12:39:05.7049563Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7049733Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7049941Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7050079Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7050153Z 2023-01-26T12:39:05.7050261Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7050352Z _flags_ = flags 2023-01-26T12:39:05.7050454Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7050559Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7050630Z 2023-01-26T12:39:05.7050726Z if handle is None: 2023-01-26T12:39:05.7050857Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7051375Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7051384Z 2023-01-26T12:39:05.7051568Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7051899Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile2-flat-hierarchy-False] _ 2023-01-26T12:39:05.7051907Z 2023-01-26T12:39:05.7052078Z self = 2023-01-26T12:39:05.7052309Z paths_relative_to_parent = False, netfile = PosixPath('FlowFM_net.nc') 2023-01-26T12:39:05.7052500Z structuresfile = PosixPath('structures.ini') 2023-01-26T12:39:05.7060424Z roughness_channel = PosixPath('roughness-Channels.ini') 2023-01-26T12:39:05.7060630Z roughness_main = PosixPath('roughness-Main.ini') 2023-01-26T12:39:05.7060839Z roughness_sewer = PosixPath('roughness-Sewers.ini') 2023-01-26T12:39:05.7061027Z extforcefile = PosixPath('FM_model_bnd.ext') 2023-01-26T12:39:05.7061513Z forcingfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.7061523Z 2023-01-26T12:39:05.7061639Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7061738Z "paths_relative_to_parent", 2023-01-26T12:39:05.7061826Z [True, False], 2023-01-26T12:39:05.7061902Z ) 2023-01-26T12:39:05.7062014Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7062090Z ( 2023-01-26T12:39:05.7062177Z "netfile", 2023-01-26T12:39:05.7062273Z "structuresfile", 2023-01-26T12:39:05.7062359Z "roughness_channel", 2023-01-26T12:39:05.7062455Z "roughness_main", 2023-01-26T12:39:05.7062650Z "roughness_sewer", 2023-01-26T12:39:05.7062747Z "extforcefile", 2023-01-26T12:39:05.7062824Z ), 2023-01-26T12:39:05.7062900Z [ 2023-01-26T12:39:05.7062998Z pytest.param( 2023-01-26T12:39:05.7063091Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.7063203Z Path("structures.ini"), 2023-01-26T12:39:05.7063398Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.7063575Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.7063846Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.7063958Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.7064111Z id="flat-hierarchy", 2023-01-26T12:39:05.7064176Z ), 2023-01-26T12:39:05.7064271Z pytest.param( 2023-01-26T12:39:05.7064389Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.7064513Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.7064732Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.7064932Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.7065139Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.7065242Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.7065348Z id="relative paths", 2023-01-26T12:39:05.7065429Z ), 2023-01-26T12:39:05.7065523Z pytest.param( 2023-01-26T12:39:05.7065649Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.7065848Z _external_path / "structures.ini", 2023-01-26T12:39:05.7066061Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.7066259Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.7066448Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.7066575Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.7066678Z id="absolute paths", 2023-01-26T12:39:05.7066759Z ), 2023-01-26T12:39:05.7066834Z ], 2023-01-26T12:39:05.7066909Z ) 2023-01-26T12:39:05.7067023Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7067098Z "forcingfile", 2023-01-26T12:39:05.7067174Z [ 2023-01-26T12:39:05.7067321Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7067473Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7067631Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.7067710Z ], 2023-01-26T12:39:05.7067787Z ) 2023-01-26T12:39:05.7067909Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.7067992Z self, 2023-01-26T12:39:05.7068106Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.7068198Z netfile: Path, 2023-01-26T12:39:05.7068301Z structuresfile: Path, 2023-01-26T12:39:05.7068406Z roughness_channel: Path, 2023-01-26T12:39:05.7068506Z roughness_main: Path, 2023-01-26T12:39:05.7068596Z roughness_sewer: Path, 2023-01-26T12:39:05.7068694Z extforcefile: Path, 2023-01-26T12:39:05.7068790Z forcingfile: Path, 2023-01-26T12:39:05.7068863Z ): 2023-01-26T12:39:05.7069014Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7069022Z 2023-01-26T12:39:05.7069128Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.7069255Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7069372Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7069482Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7069606Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7069702Z super().__init__(**data) 2023-01-26T12:39:05.7069862Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7069937Z ??? 2023-01-26T12:39:05.7070089Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7070150Z ??? 2023-01-26T12:39:05.7070387Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7070467Z ??? 2023-01-26T12:39:05.7070656Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7070730Z ??? 2023-01-26T12:39:05.7070914Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7070988Z ??? 2023-01-26T12:39:05.7071201Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7071262Z ??? 2023-01-26T12:39:05.7071401Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7071512Z return super().validate(value) 2023-01-26T12:39:05.7071677Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7071751Z ??? 2023-01-26T12:39:05.7071875Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7071970Z super().__init__(**data) 2023-01-26T12:39:05.7072114Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7072190Z ??? 2023-01-26T12:39:05.7072341Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7072414Z ??? 2023-01-26T12:39:05.7072593Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7072667Z ??? 2023-01-26T12:39:05.7072854Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7072913Z ??? 2023-01-26T12:39:05.7073096Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7073225Z ??? 2023-01-26T12:39:05.7073438Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7073512Z ??? 2023-01-26T12:39:05.7073638Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7073747Z return super().validate(value) 2023-01-26T12:39:05.7073896Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7073970Z ??? 2023-01-26T12:39:05.7074097Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7074206Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7081036Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7081139Z super().__init__(**data) 2023-01-26T12:39:05.7081299Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7081360Z ??? 2023-01-26T12:39:05.7081512Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7081594Z ??? 2023-01-26T12:39:05.7081773Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7081849Z ??? 2023-01-26T12:39:05.7081986Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7082150Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7082533Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7082629Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7082753Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7082765Z 2023-01-26T12:39:05.7083217Z self = 2023-01-26T12:39:05.7083596Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7083753Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7083841Z winmode = None 2023-01-26T12:39:05.7083850Z 2023-01-26T12:39:05.7083998Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7084097Z use_errno=False, 2023-01-26T12:39:05.7084202Z use_last_error=False, 2023-01-26T12:39:05.7084284Z winmode=None): 2023-01-26T12:39:05.7084377Z self._name = name 2023-01-26T12:39:05.7084545Z flags = self._func_flags_ 2023-01-26T12:39:05.7084637Z if use_errno: 2023-01-26T12:39:05.7084750Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7084844Z if use_last_error: 2023-01-26T12:39:05.7084963Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7085080Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7085220Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7085445Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7085609Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7085771Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7085851Z """ 2023-01-26T12:39:05.7085991Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7086110Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7086207Z if _os.name == "nt": 2023-01-26T12:39:05.7086312Z if winmode is not None: 2023-01-26T12:39:05.7086405Z mode = winmode 2023-01-26T12:39:05.7086488Z else: 2023-01-26T12:39:05.7086575Z import nt 2023-01-26T12:39:05.7086712Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7086869Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7087015Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7087211Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7087285Z 2023-01-26T12:39:05.7087397Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7087487Z _flags_ = flags 2023-01-26T12:39:05.7087603Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7087705Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7087763Z 2023-01-26T12:39:05.7087856Z if handle is None: 2023-01-26T12:39:05.7087988Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7088507Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7088516Z 2023-01-26T12:39:05.7088697Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7089010Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile2-relative paths-True] _ 2023-01-26T12:39:05.7089022Z 2023-01-26T12:39:05.7089244Z self = 2023-01-26T12:39:05.7089493Z paths_relative_to_parent = True, netfile = PosixPath('net/FlowFM_net.nc') 2023-01-26T12:39:05.7089683Z structuresfile = PosixPath('struc/structures.ini') 2023-01-26T12:39:05.7089929Z roughness_channel = PosixPath('channels/roughness-Channels.ini') 2023-01-26T12:39:05.7090152Z roughness_main = PosixPath('channels/roughness-Main.ini') 2023-01-26T12:39:05.7090386Z roughness_sewer = PosixPath('channels/roughness-Sewers.ini') 2023-01-26T12:39:05.7090577Z extforcefile = PosixPath('ext/FM_model_bnd.ext') 2023-01-26T12:39:05.7091066Z forcingfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.7091073Z 2023-01-26T12:39:05.7091188Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7091297Z "paths_relative_to_parent", 2023-01-26T12:39:05.7091388Z [True, False], 2023-01-26T12:39:05.7091448Z ) 2023-01-26T12:39:05.7091559Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7091635Z ( 2023-01-26T12:39:05.7091721Z "netfile", 2023-01-26T12:39:05.7091817Z "structuresfile", 2023-01-26T12:39:05.7091919Z "roughness_channel", 2023-01-26T12:39:05.7091998Z "roughness_main", 2023-01-26T12:39:05.7092095Z "roughness_sewer", 2023-01-26T12:39:05.7092188Z "extforcefile", 2023-01-26T12:39:05.7092315Z ), 2023-01-26T12:39:05.7092393Z [ 2023-01-26T12:39:05.7092493Z pytest.param( 2023-01-26T12:39:05.7092586Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.7092694Z Path("structures.ini"), 2023-01-26T12:39:05.7092885Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.7093057Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.7093234Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.7093344Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.7093492Z id="flat-hierarchy", 2023-01-26T12:39:05.7093555Z ), 2023-01-26T12:39:05.7093647Z pytest.param( 2023-01-26T12:39:05.7093760Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.7093884Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.7094096Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.7094295Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.7094498Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.7094603Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.7094706Z id="relative paths", 2023-01-26T12:39:05.7094781Z ), 2023-01-26T12:39:05.7094872Z pytest.param( 2023-01-26T12:39:05.7094994Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.7095177Z _external_path / "structures.ini", 2023-01-26T12:39:05.7095388Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.7095583Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.7095771Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.7095895Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.7095996Z id="absolute paths", 2023-01-26T12:39:05.7096071Z ), 2023-01-26T12:39:05.7096143Z ], 2023-01-26T12:39:05.7096217Z ) 2023-01-26T12:39:05.7096329Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7096403Z "forcingfile", 2023-01-26T12:39:05.7096475Z [ 2023-01-26T12:39:05.7096621Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7096772Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7096930Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.7097007Z ], 2023-01-26T12:39:05.7097079Z ) 2023-01-26T12:39:05.7097200Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.7097276Z self, 2023-01-26T12:39:05.7097389Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.7097479Z netfile: Path, 2023-01-26T12:39:05.7097581Z structuresfile: Path, 2023-01-26T12:39:05.7097683Z roughness_channel: Path, 2023-01-26T12:39:05.7097778Z roughness_main: Path, 2023-01-26T12:39:05.7097863Z roughness_sewer: Path, 2023-01-26T12:39:05.7097961Z extforcefile: Path, 2023-01-26T12:39:05.7098055Z forcingfile: Path, 2023-01-26T12:39:05.7098125Z ): 2023-01-26T12:39:05.7098274Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7098282Z 2023-01-26T12:39:05.7098385Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.7098504Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7098617Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7098723Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7098849Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7098945Z super().__init__(**data) 2023-01-26T12:39:05.7099103Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7099176Z ??? 2023-01-26T12:39:05.7099325Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7099385Z ??? 2023-01-26T12:39:05.7099563Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7099685Z ??? 2023-01-26T12:39:05.7099876Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7099948Z ??? 2023-01-26T12:39:05.7100133Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7100205Z ??? 2023-01-26T12:39:05.7100413Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7100475Z ??? 2023-01-26T12:39:05.7100611Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7100720Z return super().validate(value) 2023-01-26T12:39:05.7100882Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7100954Z ??? 2023-01-26T12:39:05.7101074Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7101170Z super().__init__(**data) 2023-01-26T12:39:05.7101310Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7101382Z ??? 2023-01-26T12:39:05.7101533Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7101603Z ??? 2023-01-26T12:39:05.7109764Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7109839Z ??? 2023-01-26T12:39:05.7110029Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7110087Z ??? 2023-01-26T12:39:05.7110270Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7110424Z ??? 2023-01-26T12:39:05.7110634Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7110707Z ??? 2023-01-26T12:39:05.7110833Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7110943Z return super().validate(value) 2023-01-26T12:39:05.7111095Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7111166Z ??? 2023-01-26T12:39:05.7111287Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7111394Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7111516Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7111610Z super().__init__(**data) 2023-01-26T12:39:05.7111766Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7111824Z ??? 2023-01-26T12:39:05.7111974Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7112047Z ??? 2023-01-26T12:39:05.7112224Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7112299Z ??? 2023-01-26T12:39:05.7112432Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7112592Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7112968Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7113076Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7113200Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7113210Z 2023-01-26T12:39:05.7113655Z self = 2023-01-26T12:39:05.7114031Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7114184Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7114271Z winmode = None 2023-01-26T12:39:05.7114279Z 2023-01-26T12:39:05.7114422Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7114518Z use_errno=False, 2023-01-26T12:39:05.7114607Z use_last_error=False, 2023-01-26T12:39:05.7114702Z winmode=None): 2023-01-26T12:39:05.7114790Z self._name = name 2023-01-26T12:39:05.7114888Z flags = self._func_flags_ 2023-01-26T12:39:05.7114973Z if use_errno: 2023-01-26T12:39:05.7115140Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7115236Z if use_last_error: 2023-01-26T12:39:05.7115340Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7115469Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7115606Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7115826Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7115990Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7116150Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7116225Z """ 2023-01-26T12:39:05.7116361Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7116479Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7116571Z if _os.name == "nt": 2023-01-26T12:39:05.7116673Z if winmode is not None: 2023-01-26T12:39:05.7116765Z mode = winmode 2023-01-26T12:39:05.7116844Z else: 2023-01-26T12:39:05.7116930Z import nt 2023-01-26T12:39:05.7117066Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7117220Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7117363Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7117499Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7117626Z 2023-01-26T12:39:05.7117736Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7117825Z _flags_ = flags 2023-01-26T12:39:05.7117942Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7118030Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7118100Z 2023-01-26T12:39:05.7118190Z if handle is None: 2023-01-26T12:39:05.7118317Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7118835Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7118845Z 2023-01-26T12:39:05.7119024Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7119336Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile2-relative paths-False] _ 2023-01-26T12:39:05.7119348Z 2023-01-26T12:39:05.7119517Z self = 2023-01-26T12:39:05.7119766Z paths_relative_to_parent = False, netfile = PosixPath('net/FlowFM_net.nc') 2023-01-26T12:39:05.7119956Z structuresfile = PosixPath('struc/structures.ini') 2023-01-26T12:39:05.7120198Z roughness_channel = PosixPath('channels/roughness-Channels.ini') 2023-01-26T12:39:05.7120419Z roughness_main = PosixPath('channels/roughness-Main.ini') 2023-01-26T12:39:05.7120648Z roughness_sewer = PosixPath('channels/roughness-Sewers.ini') 2023-01-26T12:39:05.7120841Z extforcefile = PosixPath('ext/FM_model_bnd.ext') 2023-01-26T12:39:05.7121327Z forcingfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.7121335Z 2023-01-26T12:39:05.7121445Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7121552Z "paths_relative_to_parent", 2023-01-26T12:39:05.7121626Z [True, False], 2023-01-26T12:39:05.7121700Z ) 2023-01-26T12:39:05.7121807Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7121880Z ( 2023-01-26T12:39:05.7121963Z "netfile", 2023-01-26T12:39:05.7122055Z "structuresfile", 2023-01-26T12:39:05.7122151Z "roughness_channel", 2023-01-26T12:39:05.7122232Z "roughness_main", 2023-01-26T12:39:05.7122326Z "roughness_sewer", 2023-01-26T12:39:05.7122417Z "extforcefile", 2023-01-26T12:39:05.7122490Z ), 2023-01-26T12:39:05.7122613Z [ 2023-01-26T12:39:05.7122713Z pytest.param( 2023-01-26T12:39:05.7122817Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.7122912Z Path("structures.ini"), 2023-01-26T12:39:05.7123102Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.7123276Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.7123454Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.7123567Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.7123716Z id="flat-hierarchy", 2023-01-26T12:39:05.7123791Z ), 2023-01-26T12:39:05.7123870Z pytest.param( 2023-01-26T12:39:05.7123986Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.7132550Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.7132889Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.7133091Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.7133302Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.7133422Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.7133524Z id="relative paths", 2023-01-26T12:39:05.7133587Z ), 2023-01-26T12:39:05.7133682Z pytest.param( 2023-01-26T12:39:05.7133802Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.7133929Z _external_path / "structures.ini", 2023-01-26T12:39:05.7134248Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.7134444Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.7134649Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.7134761Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.7134862Z id="absolute paths", 2023-01-26T12:39:05.7134938Z ), 2023-01-26T12:39:05.7135010Z ], 2023-01-26T12:39:05.7135082Z ) 2023-01-26T12:39:05.7135198Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7135287Z "forcingfile", 2023-01-26T12:39:05.7135346Z [ 2023-01-26T12:39:05.7135493Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7135643Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7135805Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.7135877Z ], 2023-01-26T12:39:05.7135948Z ) 2023-01-26T12:39:05.7136086Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.7136147Z self, 2023-01-26T12:39:05.7136259Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.7136347Z netfile: Path, 2023-01-26T12:39:05.7136448Z structuresfile: Path, 2023-01-26T12:39:05.7136550Z roughness_channel: Path, 2023-01-26T12:39:05.7136646Z roughness_main: Path, 2023-01-26T12:39:05.7136745Z roughness_sewer: Path, 2023-01-26T12:39:05.7136828Z extforcefile: Path, 2023-01-26T12:39:05.7136924Z forcingfile: Path, 2023-01-26T12:39:05.7136996Z ): 2023-01-26T12:39:05.7137142Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7137152Z 2023-01-26T12:39:05.7137255Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.7137374Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7137499Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7137602Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7137713Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7137806Z super().__init__(**data) 2023-01-26T12:39:05.7137963Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7138035Z ??? 2023-01-26T12:39:05.7138184Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7138257Z ??? 2023-01-26T12:39:05.7138435Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7138494Z ??? 2023-01-26T12:39:05.7138744Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7138820Z ??? 2023-01-26T12:39:05.7139007Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7139080Z ??? 2023-01-26T12:39:05.7139291Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7139362Z ??? 2023-01-26T12:39:05.7139486Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7139597Z return super().validate(value) 2023-01-26T12:39:05.7139759Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7139831Z ??? 2023-01-26T12:39:05.7139954Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7140048Z super().__init__(**data) 2023-01-26T12:39:05.7140202Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7140261Z ??? 2023-01-26T12:39:05.7140408Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7140482Z ??? 2023-01-26T12:39:05.7140658Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7140728Z ??? 2023-01-26T12:39:05.7140913Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7140985Z ??? 2023-01-26T12:39:05.7141153Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7141224Z ??? 2023-01-26T12:39:05.7141521Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7141592Z ??? 2023-01-26T12:39:05.7141716Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7141823Z return super().validate(value) 2023-01-26T12:39:05.7141985Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7142042Z ??? 2023-01-26T12:39:05.7142164Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7142268Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7142390Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7142484Z super().__init__(**data) 2023-01-26T12:39:05.7142638Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7142709Z ??? 2023-01-26T12:39:05.7142844Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7142915Z ??? 2023-01-26T12:39:05.7143091Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7143166Z ??? 2023-01-26T12:39:05.7143302Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7143461Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7143940Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7144052Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7144157Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7144166Z 2023-01-26T12:39:05.7144619Z self = 2023-01-26T12:39:05.7144997Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7145151Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7145236Z winmode = None 2023-01-26T12:39:05.7145246Z 2023-01-26T12:39:05.7145391Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7145492Z use_errno=False, 2023-01-26T12:39:05.7145594Z use_last_error=False, 2023-01-26T12:39:05.7145691Z winmode=None): 2023-01-26T12:39:05.7145769Z self._name = name 2023-01-26T12:39:05.7145868Z flags = self._func_flags_ 2023-01-26T12:39:05.7145954Z if use_errno: 2023-01-26T12:39:05.7146143Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7146240Z if use_last_error: 2023-01-26T12:39:05.7146359Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7146490Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7146616Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7146835Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7146995Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7147158Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7147236Z """ 2023-01-26T12:39:05.7147372Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7147504Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7147584Z if _os.name == "nt": 2023-01-26T12:39:05.7147685Z if winmode is not None: 2023-01-26T12:39:05.7147775Z mode = winmode 2023-01-26T12:39:05.7147854Z else: 2023-01-26T12:39:05.7147940Z import nt 2023-01-26T12:39:05.7148077Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7148246Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7148391Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7148515Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7148651Z 2023-01-26T12:39:05.7148759Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7148848Z _flags_ = flags 2023-01-26T12:39:05.7148963Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7149063Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7149133Z 2023-01-26T12:39:05.7149210Z if handle is None: 2023-01-26T12:39:05.7149337Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7149854Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7149864Z 2023-01-26T12:39:05.7150043Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7150353Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile2-absolute paths-True] _ 2023-01-26T12:39:05.7150362Z 2023-01-26T12:39:05.7150531Z self = 2023-01-26T12:39:05.7150640Z paths_relative_to_parent = True 2023-01-26T12:39:05.7151062Z netfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FlowFM_net.nc') 2023-01-26T12:39:05.7151505Z structuresfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/structures.ini') 2023-01-26T12:39:05.7159829Z roughness_channel = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Channels.ini') 2023-01-26T12:39:05.7160303Z roughness_main = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Main.ini') 2023-01-26T12:39:05.7160765Z roughness_sewer = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Sewers.ini') 2023-01-26T12:39:05.7161207Z extforcefile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_bnd.ext') 2023-01-26T12:39:05.7161684Z forcingfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.7161693Z 2023-01-26T12:39:05.7161806Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7161990Z "paths_relative_to_parent", 2023-01-26T12:39:05.7162081Z [True, False], 2023-01-26T12:39:05.7162154Z ) 2023-01-26T12:39:05.7162264Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7162324Z ( 2023-01-26T12:39:05.7162407Z "netfile", 2023-01-26T12:39:05.7162503Z "structuresfile", 2023-01-26T12:39:05.7162602Z "roughness_channel", 2023-01-26T12:39:05.7162693Z "roughness_main", 2023-01-26T12:39:05.7162791Z "roughness_sewer", 2023-01-26T12:39:05.7162883Z "extforcefile", 2023-01-26T12:39:05.7162944Z ), 2023-01-26T12:39:05.7163016Z [ 2023-01-26T12:39:05.7163109Z pytest.param( 2023-01-26T12:39:05.7163213Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.7163324Z Path("structures.ini"), 2023-01-26T12:39:05.7163518Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.7163694Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.7163865Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.7163975Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.7164124Z id="flat-hierarchy", 2023-01-26T12:39:05.7164201Z ), 2023-01-26T12:39:05.7164294Z pytest.param( 2023-01-26T12:39:05.7164409Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.7164535Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.7164735Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.7164993Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.7165197Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.7165314Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.7165416Z id="relative paths", 2023-01-26T12:39:05.7165493Z ), 2023-01-26T12:39:05.7165585Z pytest.param( 2023-01-26T12:39:05.7165694Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.7165824Z _external_path / "structures.ini", 2023-01-26T12:39:05.7166032Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.7166229Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.7166430Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.7166555Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.7166657Z id="absolute paths", 2023-01-26T12:39:05.7166735Z ), 2023-01-26T12:39:05.7166797Z ], 2023-01-26T12:39:05.7166871Z ) 2023-01-26T12:39:05.7166981Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7167072Z "forcingfile", 2023-01-26T12:39:05.7167144Z [ 2023-01-26T12:39:05.7167289Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7167426Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7167584Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.7167662Z ], 2023-01-26T12:39:05.7167733Z ) 2023-01-26T12:39:05.7167870Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.7167945Z self, 2023-01-26T12:39:05.7168062Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.7168138Z netfile: Path, 2023-01-26T12:39:05.7168240Z structuresfile: Path, 2023-01-26T12:39:05.7168342Z roughness_channel: Path, 2023-01-26T12:39:05.7168438Z roughness_main: Path, 2023-01-26T12:39:05.7168540Z roughness_sewer: Path, 2023-01-26T12:39:05.7168636Z extforcefile: Path, 2023-01-26T12:39:05.7168730Z forcingfile: Path, 2023-01-26T12:39:05.7168788Z ): 2023-01-26T12:39:05.7168936Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7168945Z 2023-01-26T12:39:05.7169049Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.7169168Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7169350Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7169459Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7169582Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7169675Z super().__init__(**data) 2023-01-26T12:39:05.7169820Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7169894Z ??? 2023-01-26T12:39:05.7170044Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7170117Z ??? 2023-01-26T12:39:05.7170300Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7170372Z ??? 2023-01-26T12:39:05.7170557Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7170617Z ??? 2023-01-26T12:39:05.7170798Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7170873Z ??? 2023-01-26T12:39:05.7171082Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7171156Z ??? 2023-01-26T12:39:05.7171292Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7171400Z return super().validate(value) 2023-01-26T12:39:05.7171548Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7171620Z ??? 2023-01-26T12:39:05.7171740Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7171835Z super().__init__(**data) 2023-01-26T12:39:05.7171990Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7172115Z ??? 2023-01-26T12:39:05.7172263Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7172321Z ??? 2023-01-26T12:39:05.7172497Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7172568Z ??? 2023-01-26T12:39:05.7172752Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7172823Z ??? 2023-01-26T12:39:05.7173008Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7173078Z ??? 2023-01-26T12:39:05.7173286Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7173344Z ??? 2023-01-26T12:39:05.7173467Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7173574Z return super().validate(value) 2023-01-26T12:39:05.7173735Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7173806Z ??? 2023-01-26T12:39:05.7173930Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7174034Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7174142Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7174236Z super().__init__(**data) 2023-01-26T12:39:05.7174389Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7174459Z ??? 2023-01-26T12:39:05.7174607Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7182954Z ??? 2023-01-26T12:39:05.7183161Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7183220Z ??? 2023-01-26T12:39:05.7183357Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7183516Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7183989Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7184102Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7184226Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7184235Z 2023-01-26T12:39:05.7184686Z self = 2023-01-26T12:39:05.7185066Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7185301Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7185378Z winmode = None 2023-01-26T12:39:05.7185386Z 2023-01-26T12:39:05.7185530Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7185630Z use_errno=False, 2023-01-26T12:39:05.7185735Z use_last_error=False, 2023-01-26T12:39:05.7185828Z winmode=None): 2023-01-26T12:39:05.7185921Z self._name = name 2023-01-26T12:39:05.7186023Z flags = self._func_flags_ 2023-01-26T12:39:05.7186097Z if use_errno: 2023-01-26T12:39:05.7186206Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7186299Z if use_last_error: 2023-01-26T12:39:05.7186416Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7186545Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7186685Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7186907Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7187072Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7187219Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7187297Z """ 2023-01-26T12:39:05.7187434Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7187565Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7187659Z if _os.name == "nt": 2023-01-26T12:39:05.7187833Z if winmode is not None: 2023-01-26T12:39:05.7187925Z mode = winmode 2023-01-26T12:39:05.7187990Z else: 2023-01-26T12:39:05.7188078Z import nt 2023-01-26T12:39:05.7188215Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7188387Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7188531Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7188669Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7188739Z 2023-01-26T12:39:05.7188833Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7188922Z _flags_ = flags 2023-01-26T12:39:05.7189037Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7189137Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7189206Z 2023-01-26T12:39:05.7189296Z if handle is None: 2023-01-26T12:39:05.7189423Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7189925Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7189945Z 2023-01-26T12:39:05.7190113Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7190426Z _ TestFileModel.test_save_and_load_maintains_correct_paths[forcingfile2-absolute paths-False] _ 2023-01-26T12:39:05.7190436Z 2023-01-26T12:39:05.7190606Z self = 2023-01-26T12:39:05.7190715Z paths_relative_to_parent = False 2023-01-26T12:39:05.7191136Z netfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FlowFM_net.nc') 2023-01-26T12:39:05.7191581Z structuresfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/structures.ini') 2023-01-26T12:39:05.7192058Z roughness_channel = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Channels.ini') 2023-01-26T12:39:05.7192510Z roughness_main = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Main.ini') 2023-01-26T12:39:05.7193023Z roughness_sewer = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/roughness-Sewers.ini') 2023-01-26T12:39:05.7193466Z extforcefile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_bnd.ext') 2023-01-26T12:39:05.7193942Z forcingfile = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/test_save_and_load_maintains_correct_paths_external/FM_model_boundaryconditions1d.bc') 2023-01-26T12:39:05.7193954Z 2023-01-26T12:39:05.7194053Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7194163Z "paths_relative_to_parent", 2023-01-26T12:39:05.7194250Z [True, False], 2023-01-26T12:39:05.7194322Z ) 2023-01-26T12:39:05.7194433Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7194506Z ( 2023-01-26T12:39:05.7194589Z "netfile", 2023-01-26T12:39:05.7194669Z "structuresfile", 2023-01-26T12:39:05.7194768Z "roughness_channel", 2023-01-26T12:39:05.7194860Z "roughness_main", 2023-01-26T12:39:05.7194956Z "roughness_sewer", 2023-01-26T12:39:05.7195050Z "extforcefile", 2023-01-26T12:39:05.7195123Z ), 2023-01-26T12:39:05.7195194Z [ 2023-01-26T12:39:05.7195273Z pytest.param( 2023-01-26T12:39:05.7195381Z Path("FlowFM_net.nc"), 2023-01-26T12:39:05.7195488Z Path("structures.ini"), 2023-01-26T12:39:05.7195735Z Path("roughness-Channels.ini"), 2023-01-26T12:39:05.7195909Z Path("roughness-Main.ini"), 2023-01-26T12:39:05.7196088Z Path("roughness-Sewers.ini"), 2023-01-26T12:39:05.7196196Z Path("FM_model_bnd.ext"), 2023-01-26T12:39:05.7196331Z id="flat-hierarchy", 2023-01-26T12:39:05.7196407Z ), 2023-01-26T12:39:05.7196499Z pytest.param( 2023-01-26T12:39:05.7196613Z Path("./net/FlowFM_net.nc"), 2023-01-26T12:39:05.7196736Z Path("./struc/structures.ini"), 2023-01-26T12:39:05.7196947Z Path("./channels/roughness-Channels.ini"), 2023-01-26T12:39:05.7197143Z Path("./channels/roughness-Main.ini"), 2023-01-26T12:39:05.7197333Z Path("./channels/roughness-Sewers.ini"), 2023-01-26T12:39:05.7197451Z Path("./ext/FM_model_bnd.ext"), 2023-01-26T12:39:05.7197550Z id="relative paths", 2023-01-26T12:39:05.7197626Z ), 2023-01-26T12:39:05.7197720Z pytest.param( 2023-01-26T12:39:05.7197841Z _external_path / "FlowFM_net.nc", 2023-01-26T12:39:05.7197967Z _external_path / "structures.ini", 2023-01-26T12:39:05.7198175Z _external_path / "roughness-Channels.ini", 2023-01-26T12:39:05.7198359Z _external_path / "roughness-Main.ini", 2023-01-26T12:39:05.7198559Z _external_path / "roughness-Sewers.ini", 2023-01-26T12:39:05.7198683Z _external_path / "FM_model_bnd.ext", 2023-01-26T12:39:05.7198787Z id="absolute paths", 2023-01-26T12:39:05.7198862Z ), 2023-01-26T12:39:05.7198933Z ], 2023-01-26T12:39:05.7199005Z ) 2023-01-26T12:39:05.7199103Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7199189Z "forcingfile", 2023-01-26T12:39:05.7199260Z [ 2023-01-26T12:39:05.7199404Z Path("FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7199551Z Path("./ext/FM_model_boundaryconditions1d.bc"), 2023-01-26T12:39:05.7199710Z _external_path / "FM_model_boundaryconditions1d.bc", 2023-01-26T12:39:05.7199783Z ], 2023-01-26T12:39:05.7199841Z ) 2023-01-26T12:39:05.7199974Z def test_save_and_load_maintains_correct_paths( 2023-01-26T12:39:05.7200049Z self, 2023-01-26T12:39:05.7200160Z paths_relative_to_parent: bool, 2023-01-26T12:39:05.7200249Z netfile: Path, 2023-01-26T12:39:05.7200349Z structuresfile: Path, 2023-01-26T12:39:05.7200505Z roughness_channel: Path, 2023-01-26T12:39:05.7200594Z roughness_main: Path, 2023-01-26T12:39:05.7200694Z roughness_sewer: Path, 2023-01-26T12:39:05.7200791Z extforcefile: Path, 2023-01-26T12:39:05.7200888Z forcingfile: Path, 2023-01-26T12:39:05.7200960Z ): 2023-01-26T12:39:05.7201108Z > reference_model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7201116Z 2023-01-26T12:39:05.7201219Z tests/test_basemodel.py:145: 2023-01-26T12:39:05.7201330Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7201457Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7201562Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7201684Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7201779Z super().__init__(**data) 2023-01-26T12:39:05.7201938Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7202012Z ??? 2023-01-26T12:39:05.7202151Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7202223Z ??? 2023-01-26T12:39:05.7202402Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7202473Z ??? 2023-01-26T12:39:05.7202662Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7202738Z ??? 2023-01-26T12:39:05.7202924Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7203055Z ??? 2023-01-26T12:39:05.7203253Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7203325Z ??? 2023-01-26T12:39:05.7203464Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7203575Z return super().validate(value) 2023-01-26T12:39:05.7203738Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7203809Z ??? 2023-01-26T12:39:05.7203931Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7204015Z super().__init__(**data) 2023-01-26T12:39:05.7204171Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7204243Z ??? 2023-01-26T12:39:05.7204391Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7204463Z ??? 2023-01-26T12:39:05.7204639Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7204709Z ??? 2023-01-26T12:39:05.7204879Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7204953Z ??? 2023-01-26T12:39:05.7205135Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7205207Z ??? 2023-01-26T12:39:05.7205417Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7205488Z ??? 2023-01-26T12:39:05.7205638Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7205732Z return super().validate(value) 2023-01-26T12:39:05.7205894Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7205965Z ??? 2023-01-26T12:39:05.7206088Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7206191Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7206312Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7206406Z super().__init__(**data) 2023-01-26T12:39:05.7206549Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7206620Z ??? 2023-01-26T12:39:05.7206772Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7206843Z ??? 2023-01-26T12:39:05.7207019Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7207090Z ??? 2023-01-26T12:39:05.7207224Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7207374Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7207805Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7207921Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7215685Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7215697Z 2023-01-26T12:39:05.7216210Z self = 2023-01-26T12:39:05.7216591Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7216748Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7216833Z winmode = None 2023-01-26T12:39:05.7216841Z 2023-01-26T12:39:05.7220047Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7220149Z use_errno=False, 2023-01-26T12:39:05.7220239Z use_last_error=False, 2023-01-26T12:39:05.7220331Z winmode=None): 2023-01-26T12:39:05.7220425Z self._name = name 2023-01-26T12:39:05.7220524Z flags = self._func_flags_ 2023-01-26T12:39:05.7220611Z if use_errno: 2023-01-26T12:39:05.7220720Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7220813Z if use_last_error: 2023-01-26T12:39:05.7220919Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7221049Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7221187Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7221498Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7221659Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7221820Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7221898Z """ 2023-01-26T12:39:05.7222021Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7222154Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7222250Z if _os.name == "nt": 2023-01-26T12:39:05.7222352Z if winmode is not None: 2023-01-26T12:39:05.7222444Z mode = winmode 2023-01-26T12:39:05.7222522Z else: 2023-01-26T12:39:05.7222609Z import nt 2023-01-26T12:39:05.7222732Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7222900Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7223049Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7223186Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7223257Z 2023-01-26T12:39:05.7223364Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7223453Z _flags_ = flags 2023-01-26T12:39:05.7223567Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7223736Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7223815Z 2023-01-26T12:39:05.7223909Z if handle is None: 2023-01-26T12:39:05.7224039Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7224561Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7224570Z 2023-01-26T12:39:05.7224752Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7224925Z ____________ TestFileModel.test_save_location_after_init_is_correct ____________ 2023-01-26T12:39:05.7224932Z 2023-01-26T12:39:05.7225103Z self = 2023-01-26T12:39:05.7225110Z 2023-01-26T12:39:05.7225252Z def test_save_location_after_init_is_correct(self): 2023-01-26T12:39:05.7225370Z > model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7225378Z 2023-01-26T12:39:05.7225485Z tests/test_basemodel.py:217: 2023-01-26T12:39:05.7225700Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7225832Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7225939Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7226061Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7226158Z super().__init__(**data) 2023-01-26T12:39:05.7226302Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7226381Z ??? 2023-01-26T12:39:05.7226529Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7226603Z ??? 2023-01-26T12:39:05.7226782Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7226853Z ??? 2023-01-26T12:39:05.7227039Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7227098Z ??? 2023-01-26T12:39:05.7227281Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7227352Z ??? 2023-01-26T12:39:05.7227565Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7227638Z ??? 2023-01-26T12:39:05.7227774Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7227881Z return super().validate(value) 2023-01-26T12:39:05.7228043Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7228102Z ??? 2023-01-26T12:39:05.7228224Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7228382Z super().__init__(**data) 2023-01-26T12:39:05.7228538Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7228609Z ??? 2023-01-26T12:39:05.7228757Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7228828Z ??? 2023-01-26T12:39:05.7228991Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7229062Z ??? 2023-01-26T12:39:05.7229246Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7229320Z ??? 2023-01-26T12:39:05.7229501Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7229572Z ??? 2023-01-26T12:39:05.7229780Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7229837Z ??? 2023-01-26T12:39:05.7229960Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7230067Z return super().validate(value) 2023-01-26T12:39:05.7230233Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7230304Z ??? 2023-01-26T12:39:05.7230425Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7230529Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7230637Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7230730Z super().__init__(**data) 2023-01-26T12:39:05.7230885Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7230956Z ??? 2023-01-26T12:39:05.7231105Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7231176Z ??? 2023-01-26T12:39:05.7231350Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7231409Z ??? 2023-01-26T12:39:05.7231543Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7231703Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7232073Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7232184Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7232302Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7232310Z 2023-01-26T12:39:05.7232760Z self = 2023-01-26T12:39:05.7233192Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7233348Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7233419Z winmode = None 2023-01-26T12:39:05.7233425Z 2023-01-26T12:39:05.7233568Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7233666Z use_errno=False, 2023-01-26T12:39:05.7233768Z use_last_error=False, 2023-01-26T12:39:05.7233867Z winmode=None): 2023-01-26T12:39:05.7233957Z self._name = name 2023-01-26T12:39:05.7234059Z flags = self._func_flags_ 2023-01-26T12:39:05.7234131Z if use_errno: 2023-01-26T12:39:05.7234240Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7234331Z if use_last_error: 2023-01-26T12:39:05.7234446Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7234576Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7234715Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7234935Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7235097Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7235242Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7235320Z """ 2023-01-26T12:39:05.7235456Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7235648Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7235742Z if _os.name == "nt": 2023-01-26T12:39:05.7235843Z if winmode is not None: 2023-01-26T12:39:05.7235933Z mode = winmode 2023-01-26T12:39:05.7235997Z else: 2023-01-26T12:39:05.7236083Z import nt 2023-01-26T12:39:05.7236220Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7236390Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7236537Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7236676Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7236748Z 2023-01-26T12:39:05.7236842Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7236929Z _flags_ = flags 2023-01-26T12:39:05.7237046Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7237211Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7237327Z 2023-01-26T12:39:05.7237458Z if handle is None: 2023-01-26T12:39:05.7237627Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7238184Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7238194Z 2023-01-26T12:39:05.7238360Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7238740Z _ TestFileModel.test_after_filepath_change_should_return_correct_save_location[to-relative-same-folder] _ 2023-01-26T12:39:05.7238748Z 2023-01-26T12:39:05.7239092Z self = 2023-01-26T12:39:05.7239312Z changed_path = PosixPath('other.mdu') 2023-01-26T12:39:05.7239662Z expected_save_location = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/other.mdu') 2023-01-26T12:39:05.7239677Z 2023-01-26T12:39:05.7239828Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7240006Z ("changed_path", "expected_save_location"), 2023-01-26T12:39:05.7240116Z [ 2023-01-26T12:39:05.7240198Z pytest.param( 2023-01-26T12:39:05.7240338Z Path("other.mdu"), 2023-01-26T12:39:05.7240500Z Path.cwd() / "other.mdu", 2023-01-26T12:39:05.7240756Z id="to-relative-same-folder", 2023-01-26T12:39:05.7240873Z ), 2023-01-26T12:39:05.7241005Z pytest.param( 2023-01-26T12:39:05.7241234Z Path("other_folder") / "other.mdu", 2023-01-26T12:39:05.7241362Z Path.cwd() / "other_folder" / "other.mdu", 2023-01-26T12:39:05.7241591Z id="to-relative-other-folder", 2023-01-26T12:39:05.7241710Z ), 2023-01-26T12:39:05.7241855Z pytest.param( 2023-01-26T12:39:05.7242033Z test_output_dir / "absolute" / "other.mdu", 2023-01-26T12:39:05.7242244Z test_output_dir / "absolute" / "other.mdu", 2023-01-26T12:39:05.7242439Z id="to-absolute", 2023-01-26T12:39:05.7242502Z ), 2023-01-26T12:39:05.7242615Z ], 2023-01-26T12:39:05.7242724Z ) 2023-01-26T12:39:05.7242928Z def test_after_filepath_change_should_return_correct_save_location( 2023-01-26T12:39:05.7243120Z self, changed_path: Path, expected_save_location: Path 2023-01-26T12:39:05.7243242Z ): 2023-01-26T12:39:05.7243409Z > model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7243420Z 2023-01-26T12:39:05.7243589Z tests/test_basemodel.py:243: 2023-01-26T12:39:05.7243700Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7243865Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7244013Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7244173Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7244306Z super().__init__(**data) 2023-01-26T12:39:05.7244586Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7244727Z ??? 2023-01-26T12:39:05.7244864Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7244979Z ??? 2023-01-26T12:39:05.7245226Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7245340Z ??? 2023-01-26T12:39:05.7245567Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7245677Z ??? 2023-01-26T12:39:05.7245914Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7245973Z ??? 2023-01-26T12:39:05.7246223Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7246334Z ??? 2023-01-26T12:39:05.7246512Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7246687Z return super().validate(value) 2023-01-26T12:39:05.7246888Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7247004Z ??? 2023-01-26T12:39:05.7247114Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7247247Z super().__init__(**data) 2023-01-26T12:39:05.7247455Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7247566Z ??? 2023-01-26T12:39:05.7247754Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7247862Z ??? 2023-01-26T12:39:05.7248108Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7248168Z ??? 2023-01-26T12:39:05.7248395Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7248507Z ??? 2023-01-26T12:39:05.7248742Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7248853Z ??? 2023-01-26T12:39:05.7249101Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7249210Z ??? 2023-01-26T12:39:05.7249370Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7249468Z return super().validate(value) 2023-01-26T12:39:05.7249695Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7249804Z ??? 2023-01-26T12:39:05.7249973Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7250129Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7250288Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7250418Z super().__init__(**data) 2023-01-26T12:39:05.7250632Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7250752Z ??? 2023-01-26T12:39:05.7250939Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7251077Z ??? 2023-01-26T12:39:05.7251293Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7251414Z ??? 2023-01-26T12:39:05.7251589Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7251737Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7252157Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7252304Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7252469Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7252478Z 2023-01-26T12:39:05.7252965Z self = 2023-01-26T12:39:05.7253409Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7253612Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7253736Z winmode = None 2023-01-26T12:39:05.7253744Z 2023-01-26T12:39:05.7253924Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7254010Z use_errno=False, 2023-01-26T12:39:05.7254219Z use_last_error=False, 2023-01-26T12:39:05.7254352Z winmode=None): 2023-01-26T12:39:05.7254483Z self._name = name 2023-01-26T12:39:05.7254621Z flags = self._func_flags_ 2023-01-26T12:39:05.7254784Z if use_errno: 2023-01-26T12:39:05.7367121Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7367323Z if use_last_error: 2023-01-26T12:39:05.7367454Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7367591Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7367736Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7368077Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7368241Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7368404Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7368482Z """ 2023-01-26T12:39:05.7368629Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7368762Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7368843Z if _os.name == "nt": 2023-01-26T12:39:05.7368947Z if winmode is not None: 2023-01-26T12:39:05.7369039Z mode = winmode 2023-01-26T12:39:05.7369116Z else: 2023-01-26T12:39:05.7369204Z import nt 2023-01-26T12:39:05.7369345Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7369511Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7369644Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7369774Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7369839Z 2023-01-26T12:39:05.7369939Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7370023Z _flags_ = flags 2023-01-26T12:39:05.7370137Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7370240Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7370298Z 2023-01-26T12:39:05.7370390Z if handle is None: 2023-01-26T12:39:05.7370518Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7371051Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7371062Z 2023-01-26T12:39:05.7371507Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7371857Z _ TestFileModel.test_after_filepath_change_should_return_correct_save_location[to-relative-other-folder] _ 2023-01-26T12:39:05.7371866Z 2023-01-26T12:39:05.7372037Z self = 2023-01-26T12:39:05.7372236Z changed_path = PosixPath('other_folder/other.mdu') 2023-01-26T12:39:05.7372568Z expected_save_location = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/other_folder/other.mdu') 2023-01-26T12:39:05.7372579Z 2023-01-26T12:39:05.7372693Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7372812Z ("changed_path", "expected_save_location"), 2023-01-26T12:39:05.7372888Z [ 2023-01-26T12:39:05.7372984Z pytest.param( 2023-01-26T12:39:05.7373088Z Path("other.mdu"), 2023-01-26T12:39:05.7373198Z Path.cwd() / "other.mdu", 2023-01-26T12:39:05.7373382Z id="to-relative-same-folder", 2023-01-26T12:39:05.7373459Z ), 2023-01-26T12:39:05.7373539Z pytest.param( 2023-01-26T12:39:05.7373663Z Path("other_folder") / "other.mdu", 2023-01-26T12:39:05.7373796Z Path.cwd() / "other_folder" / "other.mdu", 2023-01-26T12:39:05.7373980Z id="to-relative-other-folder", 2023-01-26T12:39:05.7374056Z ), 2023-01-26T12:39:05.7374148Z pytest.param( 2023-01-26T12:39:05.7374370Z test_output_dir / "absolute" / "other.mdu", 2023-01-26T12:39:05.7374490Z test_output_dir / "absolute" / "other.mdu", 2023-01-26T12:39:05.7374633Z id="to-absolute", 2023-01-26T12:39:05.7374709Z ), 2023-01-26T12:39:05.7374783Z ], 2023-01-26T12:39:05.7374856Z ) 2023-01-26T12:39:05.7375021Z def test_after_filepath_change_should_return_correct_save_location( 2023-01-26T12:39:05.7375172Z self, changed_path: Path, expected_save_location: Path 2023-01-26T12:39:05.7375233Z ): 2023-01-26T12:39:05.7375363Z > model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7375372Z 2023-01-26T12:39:05.7375476Z tests/test_basemodel.py:243: 2023-01-26T12:39:05.7375598Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7375724Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7375829Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7376016Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7376117Z super().__init__(**data) 2023-01-26T12:39:05.7376266Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7376340Z ??? 2023-01-26T12:39:05.7376491Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7376565Z ??? 2023-01-26T12:39:05.7376743Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7376815Z ??? 2023-01-26T12:39:05.7377005Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7377065Z ??? 2023-01-26T12:39:05.7377250Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7377319Z ??? 2023-01-26T12:39:05.7377525Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7377590Z ??? 2023-01-26T12:39:05.7377719Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7377823Z return super().validate(value) 2023-01-26T12:39:05.7377973Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7378040Z ??? 2023-01-26T12:39:05.7378162Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7378257Z super().__init__(**data) 2023-01-26T12:39:05.7378412Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7378484Z ??? 2023-01-26T12:39:05.7378631Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7378690Z ??? 2023-01-26T12:39:05.7378926Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7379002Z ??? 2023-01-26T12:39:05.7379189Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7379261Z ??? 2023-01-26T12:39:05.7379445Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7379516Z ??? 2023-01-26T12:39:05.7379714Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7379790Z ??? 2023-01-26T12:39:05.7379914Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7380021Z return super().validate(value) 2023-01-26T12:39:05.7380182Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7380255Z ??? 2023-01-26T12:39:05.7380377Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7380481Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7380589Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7380684Z super().__init__(**data) 2023-01-26T12:39:05.7380838Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7380909Z ??? 2023-01-26T12:39:05.7381059Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7381129Z ??? 2023-01-26T12:39:05.7381307Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7381366Z ??? 2023-01-26T12:39:05.7381502Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7381716Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7382097Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7382205Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7382324Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7382332Z 2023-01-26T12:39:05.7382787Z self = 2023-01-26T12:39:05.7383166Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7383303Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7383388Z winmode = None 2023-01-26T12:39:05.7383395Z 2023-01-26T12:39:05.7383542Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7383852Z use_errno=False, 2023-01-26T12:39:05.7383964Z use_last_error=False, 2023-01-26T12:39:05.7384059Z winmode=None): 2023-01-26T12:39:05.7384151Z self._name = name 2023-01-26T12:39:05.7384250Z flags = self._func_flags_ 2023-01-26T12:39:05.7384322Z if use_errno: 2023-01-26T12:39:05.7384433Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7384525Z if use_last_error: 2023-01-26T12:39:05.7384648Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7384778Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7384916Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7385140Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7385288Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7385453Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7385530Z """ 2023-01-26T12:39:05.7385664Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7385789Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7385875Z if _os.name == "nt": 2023-01-26T12:39:05.7385969Z if winmode is not None: 2023-01-26T12:39:05.7386052Z mode = winmode 2023-01-26T12:39:05.7386117Z else: 2023-01-26T12:39:05.7386270Z import nt 2023-01-26T12:39:05.7386409Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7386580Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7386726Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7386863Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7386933Z 2023-01-26T12:39:05.7387029Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7387120Z _flags_ = flags 2023-01-26T12:39:05.7387237Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7387339Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7387409Z 2023-01-26T12:39:05.7387502Z if handle is None: 2023-01-26T12:39:05.7387631Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7388139Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7388162Z 2023-01-26T12:39:05.7388329Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7388628Z _ TestFileModel.test_after_filepath_change_should_return_correct_save_location[to-absolute] _ 2023-01-26T12:39:05.7388636Z 2023-01-26T12:39:05.7388805Z self = 2023-01-26T12:39:05.7389221Z changed_path = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/absolute/other.mdu') 2023-01-26T12:39:05.7389581Z expected_save_location = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/output/absolute/other.mdu') 2023-01-26T12:39:05.7389590Z 2023-01-26T12:39:05.7389704Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7389836Z ("changed_path", "expected_save_location"), 2023-01-26T12:39:05.7389911Z [ 2023-01-26T12:39:05.7389992Z pytest.param( 2023-01-26T12:39:05.7390097Z Path("other.mdu"), 2023-01-26T12:39:05.7390205Z Path.cwd() / "other.mdu", 2023-01-26T12:39:05.7390388Z id="to-relative-same-folder", 2023-01-26T12:39:05.7390465Z ), 2023-01-26T12:39:05.7390556Z pytest.param( 2023-01-26T12:39:05.7390679Z Path("other_folder") / "other.mdu", 2023-01-26T12:39:05.7390817Z Path.cwd() / "other_folder" / "other.mdu", 2023-01-26T12:39:05.7390992Z id="to-relative-other-folder", 2023-01-26T12:39:05.7391067Z ), 2023-01-26T12:39:05.7391160Z pytest.param( 2023-01-26T12:39:05.7391301Z test_output_dir / "absolute" / "other.mdu", 2023-01-26T12:39:05.7391438Z test_output_dir / "absolute" / "other.mdu", 2023-01-26T12:39:05.7391582Z id="to-absolute", 2023-01-26T12:39:05.7391658Z ), 2023-01-26T12:39:05.7391717Z ], 2023-01-26T12:39:05.7391788Z ) 2023-01-26T12:39:05.7391958Z def test_after_filepath_change_should_return_correct_save_location( 2023-01-26T12:39:05.7392111Z self, changed_path: Path, expected_save_location: Path 2023-01-26T12:39:05.7392183Z ): 2023-01-26T12:39:05.7392313Z > model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7392320Z 2023-01-26T12:39:05.7392425Z tests/test_basemodel.py:243: 2023-01-26T12:39:05.7392535Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7392664Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7392769Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7392890Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7392986Z super().__init__(**data) 2023-01-26T12:39:05.7393144Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7393217Z ??? 2023-01-26T12:39:05.7393353Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7393427Z ??? 2023-01-26T12:39:05.7393657Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7393734Z ??? 2023-01-26T12:39:05.7393921Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7393993Z ??? 2023-01-26T12:39:05.7394177Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7394249Z ??? 2023-01-26T12:39:05.7394447Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7394523Z ??? 2023-01-26T12:39:05.7394660Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7394768Z return super().validate(value) 2023-01-26T12:39:05.7394932Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7395003Z ??? 2023-01-26T12:39:05.7395126Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7395209Z super().__init__(**data) 2023-01-26T12:39:05.7395365Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7395437Z ??? 2023-01-26T12:39:05.7395581Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7395646Z ??? 2023-01-26T12:39:05.7395816Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7395881Z ??? 2023-01-26T12:39:05.7396053Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7396124Z ??? 2023-01-26T12:39:05.7396307Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7396437Z ??? 2023-01-26T12:39:05.7396648Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7396719Z ??? 2023-01-26T12:39:05.7396843Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7396937Z return super().validate(value) 2023-01-26T12:39:05.7397100Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7397172Z ??? 2023-01-26T12:39:05.7397297Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7397404Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7397526Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7397621Z super().__init__(**data) 2023-01-26T12:39:05.7397764Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7397836Z ??? 2023-01-26T12:39:05.7397983Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7398057Z ??? 2023-01-26T12:39:05.7398233Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7398304Z ??? 2023-01-26T12:39:05.7398439Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7398586Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7398958Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7399065Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7399188Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7399196Z 2023-01-26T12:39:05.7399643Z self = 2023-01-26T12:39:05.7400020Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7400175Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7400258Z winmode = None 2023-01-26T12:39:05.7400266Z 2023-01-26T12:39:05.7400410Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7400507Z use_errno=False, 2023-01-26T12:39:05.7400596Z use_last_error=False, 2023-01-26T12:39:05.7400690Z winmode=None): 2023-01-26T12:39:05.7400781Z self._name = name 2023-01-26T12:39:05.7400879Z flags = self._func_flags_ 2023-01-26T12:39:05.7401026Z if use_errno: 2023-01-26T12:39:05.7401138Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7401229Z if use_last_error: 2023-01-26T12:39:05.7401333Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7401460Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7401598Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7401818Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7401982Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7402142Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7402219Z """ 2023-01-26T12:39:05.7402341Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7402472Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7402565Z if _os.name == "nt": 2023-01-26T12:39:05.7402668Z if winmode is not None: 2023-01-26T12:39:05.7402758Z mode = winmode 2023-01-26T12:39:05.7402829Z else: 2023-01-26T12:39:05.7402907Z import nt 2023-01-26T12:39:05.7403028Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7403188Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7403325Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7403511Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7403583Z 2023-01-26T12:39:05.7403690Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7403780Z _flags_ = flags 2023-01-26T12:39:05.7403894Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7403982Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7404054Z 2023-01-26T12:39:05.7404145Z if handle is None: 2023-01-26T12:39:05.7404275Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7404793Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7404803Z 2023-01-26T12:39:05.7404984Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7405213Z _ TestFileModel.test_change_filepath_from_absolute_to_relative_to_absolute_results_in_the_same_save_location _ 2023-01-26T12:39:05.7405224Z 2023-01-26T12:39:05.7405393Z self = 2023-01-26T12:39:05.7405400Z 2023-01-26T12:39:05.7405602Z def test_change_filepath_from_absolute_to_relative_to_absolute_results_in_the_same_save_location( 2023-01-26T12:39:05.7405666Z self, 2023-01-26T12:39:05.7405738Z ): 2023-01-26T12:39:05.7405869Z > model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7405876Z 2023-01-26T12:39:05.7405984Z tests/test_basemodel.py:252: 2023-01-26T12:39:05.7406104Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7406228Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7406333Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7406442Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7406536Z super().__init__(**data) 2023-01-26T12:39:05.7406692Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7406768Z ??? 2023-01-26T12:39:05.7406916Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7406989Z ??? 2023-01-26T12:39:05.7407167Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7407225Z ??? 2023-01-26T12:39:05.7407410Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7407484Z ??? 2023-01-26T12:39:05.7407669Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7407793Z ??? 2023-01-26T12:39:05.7408010Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7408082Z ??? 2023-01-26T12:39:05.7408218Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7408313Z return super().validate(value) 2023-01-26T12:39:05.7408476Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7408548Z ??? 2023-01-26T12:39:05.7408673Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7408767Z super().__init__(**data) 2023-01-26T12:39:05.7408924Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7408996Z ??? 2023-01-26T12:39:05.7409133Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7409205Z ??? 2023-01-26T12:39:05.7409381Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7409452Z ??? 2023-01-26T12:39:05.7409642Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7409714Z ??? 2023-01-26T12:39:05.7409895Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7409953Z ??? 2023-01-26T12:39:05.7410162Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7410234Z ??? 2023-01-26T12:39:05.7410358Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7410520Z return super().validate(value) 2023-01-26T12:39:05.7410685Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7410756Z ??? 2023-01-26T12:39:05.7410865Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7410970Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7411091Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7411186Z super().__init__(**data) 2023-01-26T12:39:05.7411342Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7411416Z ??? 2023-01-26T12:39:05.7411565Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7411622Z ??? 2023-01-26T12:39:05.7411798Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7411868Z ??? 2023-01-26T12:39:05.7411997Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7412152Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7412521Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7412624Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7412737Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7412745Z 2023-01-26T12:39:05.7413179Z self = 2023-01-26T12:39:05.7413559Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7413703Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7413780Z winmode = None 2023-01-26T12:39:05.7413788Z 2023-01-26T12:39:05.7413925Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7414016Z use_errno=False, 2023-01-26T12:39:05.7414115Z use_last_error=False, 2023-01-26T12:39:05.7414204Z winmode=None): 2023-01-26T12:39:05.7414293Z self._name = name 2023-01-26T12:39:05.7414378Z flags = self._func_flags_ 2023-01-26T12:39:05.7414463Z if use_errno: 2023-01-26T12:39:05.7414571Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7414662Z if use_last_error: 2023-01-26T12:39:05.7414781Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7414910Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7415102Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7415310Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7415471Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7415631Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7415708Z """ 2023-01-26T12:39:05.7415851Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7415981Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7416074Z if _os.name == "nt": 2023-01-26T12:39:05.7416162Z if winmode is not None: 2023-01-26T12:39:05.7416253Z mode = winmode 2023-01-26T12:39:05.7416330Z else: 2023-01-26T12:39:05.7416416Z import nt 2023-01-26T12:39:05.7416551Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7416720Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7416865Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7417005Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7417063Z 2023-01-26T12:39:05.7417171Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7417265Z _flags_ = flags 2023-01-26T12:39:05.7417381Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7418544Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7418617Z 2023-01-26T12:39:05.7418696Z if handle is None: 2023-01-26T12:39:05.7418828Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7419376Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7419387Z 2023-01-26T12:39:05.7419572Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7419760Z ___ TestFileModel.test_synchronize_filepaths_updates_save_location_correctly ___ 2023-01-26T12:39:05.7419769Z 2023-01-26T12:39:05.7419937Z self = 2023-01-26T12:39:05.7419945Z 2023-01-26T12:39:05.7420115Z def test_synchronize_filepaths_updates_save_location_correctly(self): 2023-01-26T12:39:05.7420248Z > model = FMModel(self._reference_model_path) 2023-01-26T12:39:05.7420259Z 2023-01-26T12:39:05.7420364Z tests/test_basemodel.py:263: 2023-01-26T12:39:05.7420485Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7420597Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7420703Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7420828Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7420922Z super().__init__(**data) 2023-01-26T12:39:05.7421081Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7421155Z ??? 2023-01-26T12:39:05.7421306Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7421366Z ??? 2023-01-26T12:39:05.7421545Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7421617Z ??? 2023-01-26T12:39:05.7421803Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7421874Z ??? 2023-01-26T12:39:05.7422059Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7422134Z ??? 2023-01-26T12:39:05.7422347Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7422406Z ??? 2023-01-26T12:39:05.7422543Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7422649Z return super().validate(value) 2023-01-26T12:39:05.7422805Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7422871Z ??? 2023-01-26T12:39:05.7423101Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7423195Z super().__init__(**data) 2023-01-26T12:39:05.7423338Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7423406Z ??? 2023-01-26T12:39:05.7423555Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7423742Z ??? 2023-01-26T12:39:05.7423923Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7423998Z ??? 2023-01-26T12:39:05.7424184Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7424242Z ??? 2023-01-26T12:39:05.7424426Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7424499Z ??? 2023-01-26T12:39:05.7424709Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7424781Z ??? 2023-01-26T12:39:05.7424904Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7425015Z return super().validate(value) 2023-01-26T12:39:05.7425165Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7425237Z ??? 2023-01-26T12:39:05.7425362Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7425467Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7425589Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7425683Z super().__init__(**data) 2023-01-26T12:39:05.7425912Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7425971Z ??? 2023-01-26T12:39:05.7426118Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7426191Z ??? 2023-01-26T12:39:05.7426366Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7426438Z ??? 2023-01-26T12:39:05.7426573Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7426733Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7427113Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7427209Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7427328Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7427336Z 2023-01-26T12:39:05.7427780Z self = 2023-01-26T12:39:05.7428160Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7428312Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7428396Z winmode = None 2023-01-26T12:39:05.7428404Z 2023-01-26T12:39:05.7428548Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7428647Z use_errno=False, 2023-01-26T12:39:05.7428739Z use_last_error=False, 2023-01-26T12:39:05.7428834Z winmode=None): 2023-01-26T12:39:05.7428926Z self._name = name 2023-01-26T12:39:05.7429025Z flags = self._func_flags_ 2023-01-26T12:39:05.7429112Z if use_errno: 2023-01-26T12:39:05.7429221Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7429314Z if use_last_error: 2023-01-26T12:39:05.7429418Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7429549Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7429686Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7429902Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7430064Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7430223Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7430301Z """ 2023-01-26T12:39:05.7430500Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7430621Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7430714Z if _os.name == "nt": 2023-01-26T12:39:05.7430815Z if winmode is not None: 2023-01-26T12:39:05.7430905Z mode = winmode 2023-01-26T12:39:05.7430983Z else: 2023-01-26T12:39:05.7431072Z import nt 2023-01-26T12:39:05.7431208Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7431366Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7431507Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7431639Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7431705Z 2023-01-26T12:39:05.7431807Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7431891Z _flags_ = flags 2023-01-26T12:39:05.7432005Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7432096Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7432166Z 2023-01-26T12:39:05.7432256Z if handle is None: 2023-01-26T12:39:05.7432383Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7432898Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7432965Z 2023-01-26T12:39:05.7433146Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7433356Z _ TestFileModel.test_initialize_model_with_resolve_casing_updates_file_references_recursively _ 2023-01-26T12:39:05.7433364Z 2023-01-26T12:39:05.7433536Z self = 2023-01-26T12:39:05.7433543Z 2023-01-26T12:39:05.7433643Z @pytest.mark.skipif( 2023-01-26T12:39:05.7433724Z runs_from_docker(), 2023-01-26T12:39:05.7434116Z reason="Paths are case-insensitive while running from a Docker container (Linux) on a Windows machine, so this test will fail locally.", 2023-01-26T12:39:05.7434190Z ) 2023-01-26T12:39:05.7434381Z def test_initialize_model_with_resolve_casing_updates_file_references_recursively( 2023-01-26T12:39:05.7434459Z self, 2023-01-26T12:39:05.7434532Z ): 2023-01-26T12:39:05.7434697Z file_path = test_input_dir / "resolve_casing_file_load_test" / "fm.mdu" 2023-01-26T12:39:05.7434838Z > model = FMModel(file_path, resolve_casing=True) 2023-01-26T12:39:05.7434845Z 2023-01-26T12:39:05.7434936Z tests/test_basemodel.py:309: 2023-01-26T12:39:05.7435055Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7435179Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7435286Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7435409Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7435506Z super().__init__(**data) 2023-01-26T12:39:05.7435668Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7435741Z ??? 2023-01-26T12:39:05.7435877Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7435952Z ??? 2023-01-26T12:39:05.7436128Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7436200Z ??? 2023-01-26T12:39:05.7436387Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7436462Z ??? 2023-01-26T12:39:05.7436646Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7436705Z ??? 2023-01-26T12:39:05.7436917Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7436990Z ??? 2023-01-26T12:39:05.7437126Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7437234Z return super().validate(value) 2023-01-26T12:39:05.7437449Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7437525Z ??? 2023-01-26T12:39:05.7437634Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7437730Z super().__init__(**data) 2023-01-26T12:39:05.7437885Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7437958Z ??? 2023-01-26T12:39:05.7438107Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7438178Z ??? 2023-01-26T12:39:05.7438357Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7438415Z ??? 2023-01-26T12:39:05.7438536Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7438640Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7438760Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7438856Z super().__init__(**data) 2023-01-26T12:39:05.7439009Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7439081Z ??? 2023-01-26T12:39:05.7439218Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7439291Z ??? 2023-01-26T12:39:05.7439465Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7439537Z ??? 2023-01-26T12:39:05.7439672Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7439832Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7440204Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7440371Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7440480Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7440487Z 2023-01-26T12:39:05.7440942Z self = 2023-01-26T12:39:05.7441325Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7441474Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7441554Z winmode = None 2023-01-26T12:39:05.7441562Z 2023-01-26T12:39:05.7441699Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7441795Z use_errno=False, 2023-01-26T12:39:05.7441895Z use_last_error=False, 2023-01-26T12:39:05.7441975Z winmode=None): 2023-01-26T12:39:05.7442071Z self._name = name 2023-01-26T12:39:05.7442168Z flags = self._func_flags_ 2023-01-26T12:39:05.7442254Z if use_errno: 2023-01-26T12:39:05.7442364Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7442456Z if use_last_error: 2023-01-26T12:39:05.7442575Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7442690Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7442828Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7443049Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7443211Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7443372Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7443449Z """ 2023-01-26T12:39:05.7443586Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7443719Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7443801Z if _os.name == "nt": 2023-01-26T12:39:05.7443900Z if winmode is not None: 2023-01-26T12:39:05.7443989Z mode = winmode 2023-01-26T12:39:05.7444066Z else: 2023-01-26T12:39:05.7444151Z import nt 2023-01-26T12:39:05.7444285Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7444453Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7444650Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7444794Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7444866Z 2023-01-26T12:39:05.7444974Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7445064Z _flags_ = flags 2023-01-26T12:39:05.7445179Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7445280Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7445341Z 2023-01-26T12:39:05.7445432Z if handle is None: 2023-01-26T12:39:05.7445559Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7446070Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7446079Z 2023-01-26T12:39:05.7446259Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7446402Z ___________________________ test_from_scratch_docker ___________________________ 2023-01-26T12:39:05.7446409Z 2023-01-26T12:39:05.7446517Z def test_from_scratch_docker(): 2023-01-26T12:39:05.7446638Z # TODO Make a valid model from scratch 2023-01-26T12:39:05.7446724Z dimr = DIMR() 2023-01-26T12:39:05.7446797Z > fm = FMModel() 2023-01-26T12:39:05.7446804Z 2023-01-26T12:39:05.7446903Z tests/test_docker.py:17: 2023-01-26T12:39:05.7447022Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7447204Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7447308Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7447429Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7447522Z super().__init__(**data) 2023-01-26T12:39:05.7447680Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7447741Z ??? 2023-01-26T12:39:05.7447889Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7447965Z ??? 2023-01-26T12:39:05.7448144Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7448219Z ??? 2023-01-26T12:39:05.7448338Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7448431Z super().__init__(**data) 2023-01-26T12:39:05.7448573Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7448644Z ??? 2023-01-26T12:39:05.7448793Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7448867Z ??? 2023-01-26T12:39:05.7449043Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7449114Z ??? 2023-01-26T12:39:05.7449233Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7449323Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7449440Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7449526Z super().__init__(**data) 2023-01-26T12:39:05.7449678Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7449749Z ??? 2023-01-26T12:39:05.7449899Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7449971Z ??? 2023-01-26T12:39:05.7450133Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7450210Z ??? 2023-01-26T12:39:05.7450343Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7450505Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7450871Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7450981Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7451100Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7451108Z 2023-01-26T12:39:05.7451556Z self = 2023-01-26T12:39:05.7451974Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7452132Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7452218Z winmode = None 2023-01-26T12:39:05.7452225Z 2023-01-26T12:39:05.7452369Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7452466Z use_errno=False, 2023-01-26T12:39:05.7452571Z use_last_error=False, 2023-01-26T12:39:05.7452664Z winmode=None): 2023-01-26T12:39:05.7452756Z self._name = name 2023-01-26T12:39:05.7452842Z flags = self._func_flags_ 2023-01-26T12:39:05.7452930Z if use_errno: 2023-01-26T12:39:05.7453038Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7453129Z if use_last_error: 2023-01-26T12:39:05.7453245Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7453374Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7453513Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7453720Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7453883Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7454044Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7454123Z """ 2023-01-26T12:39:05.7454313Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7454443Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7454536Z if _os.name == "nt": 2023-01-26T12:39:05.7454637Z if winmode is not None: 2023-01-26T12:39:05.7454715Z mode = winmode 2023-01-26T12:39:05.7454793Z else: 2023-01-26T12:39:05.7454879Z import nt 2023-01-26T12:39:05.7455014Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7455185Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7455330Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7455465Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7455524Z 2023-01-26T12:39:05.7455630Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7455720Z _flags_ = flags 2023-01-26T12:39:05.7455834Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7455938Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7456010Z 2023-01-26T12:39:05.7456101Z if handle is None: 2023-01-26T12:39:05.7456217Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7456727Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7456736Z 2023-01-26T12:39:05.7456920Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7457068Z _______________________ test_existing_model_saved_docker _______________________ 2023-01-26T12:39:05.7457075Z 2023-01-26T12:39:05.7457174Z @pytest.mark.docker 2023-01-26T12:39:05.7457295Z def test_existing_model_saved_docker(): 2023-01-26T12:39:05.7457368Z 2023-01-26T12:39:05.7457453Z test_file = ( 2023-01-26T12:39:05.7457529Z test_input_dir 2023-01-26T12:39:05.7457608Z / "e02" 2023-01-26T12:39:05.7457755Z / "f101_1D-boundaries" 2023-01-26T12:39:05.7457909Z / "c01_steady-state-flow" 2023-01-26T12:39:05.7458000Z / "dimr_config.xml" 2023-01-26T12:39:05.7458068Z ) 2023-01-26T12:39:05.7458135Z 2023-01-26T12:39:05.7458231Z > dimr = DIMR(filepath=test_file) 2023-01-26T12:39:05.7458251Z 2023-01-26T12:39:05.7458335Z tests/test_docker.py:62: 2023-01-26T12:39:05.7458511Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7458639Z hydrolib/core/basemodel.py:743: in __init__ 2023-01-26T12:39:05.7458735Z self._post_init_load() 2023-01-26T12:39:05.7458871Z hydrolib/core/dimr/models.py:323: in _post_init_load 2023-01-26T12:39:05.7459020Z comp.model = comp.get_model()(filepath=comp.filepath) 2023-01-26T12:39:05.7459143Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7459234Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7459357Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7459451Z super().__init__(**data) 2023-01-26T12:39:05.7459610Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7459683Z ??? 2023-01-26T12:39:05.7459833Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7459908Z ??? 2023-01-26T12:39:05.7460073Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7460145Z ??? 2023-01-26T12:39:05.7460333Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7460405Z ??? 2023-01-26T12:39:05.7460590Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7460662Z ??? 2023-01-26T12:39:05.7460873Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7460931Z ??? 2023-01-26T12:39:05.7461067Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7461231Z return super().validate(value) 2023-01-26T12:39:05.7461393Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7461464Z ??? 2023-01-26T12:39:05.7461584Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7461678Z super().__init__(**data) 2023-01-26T12:39:05.7461818Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7461891Z ??? 2023-01-26T12:39:05.7462038Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7462110Z ??? 2023-01-26T12:39:05.7462288Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7462360Z ??? 2023-01-26T12:39:05.7462545Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7462616Z ??? 2023-01-26T12:39:05.7462785Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7462858Z ??? 2023-01-26T12:39:05.7463067Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7463142Z ??? 2023-01-26T12:39:05.7463264Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7463370Z return super().validate(value) 2023-01-26T12:39:05.7463531Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7463588Z ??? 2023-01-26T12:39:05.7463939Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7464049Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7464179Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7464276Z super().__init__(**data) 2023-01-26T12:39:05.7464436Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7464508Z ??? 2023-01-26T12:39:05.7464643Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7464715Z ??? 2023-01-26T12:39:05.7464889Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7464963Z ??? 2023-01-26T12:39:05.7465104Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7465265Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7465645Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7465741Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7465860Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7465869Z 2023-01-26T12:39:05.7466389Z self = 2023-01-26T12:39:05.7466773Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7466927Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7467012Z winmode = None 2023-01-26T12:39:05.7467019Z 2023-01-26T12:39:05.7467166Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7467264Z use_errno=False, 2023-01-26T12:39:05.7467365Z use_last_error=False, 2023-01-26T12:39:05.7467446Z winmode=None): 2023-01-26T12:39:05.7467532Z self._name = name 2023-01-26T12:39:05.7467629Z flags = self._func_flags_ 2023-01-26T12:39:05.7467712Z if use_errno: 2023-01-26T12:39:05.7467820Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7467912Z if use_last_error: 2023-01-26T12:39:05.7468030Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7468145Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7468284Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7468500Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7468662Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7468887Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7468966Z """ 2023-01-26T12:39:05.7469103Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7469233Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7469314Z if _os.name == "nt": 2023-01-26T12:39:05.7469415Z if winmode is not None: 2023-01-26T12:39:05.7469508Z mode = winmode 2023-01-26T12:39:05.7469586Z else: 2023-01-26T12:39:05.7469675Z import nt 2023-01-26T12:39:05.7469813Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7469983Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7470115Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7470252Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7470322Z 2023-01-26T12:39:05.7470429Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7470520Z _flags_ = flags 2023-01-26T12:39:05.7470635Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7470736Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7470793Z 2023-01-26T12:39:05.7470884Z if handle is None: 2023-01-26T12:39:05.7471011Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7471533Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7471541Z 2023-01-26T12:39:05.7471721Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7471853Z _______________________________ test_dimr_model ________________________________ 2023-01-26T12:39:05.7471861Z 2023-01-26T12:39:05.7471954Z def test_dimr_model(): 2023-01-26T12:39:05.7472038Z test_file = ( 2023-01-26T12:39:05.7472127Z test_data_dir 2023-01-26T12:39:05.7472196Z / "input" 2023-01-26T12:39:05.7472275Z / "e02" 2023-01-26T12:39:05.7472431Z / "c11_korte-woerden-1d" 2023-01-26T12:39:05.7472519Z / "dimr_model" 2023-01-26T12:39:05.7472612Z / "dimr_config.xml" 2023-01-26T12:39:05.7472685Z ) 2023-01-26T12:39:05.7472741Z 2023-01-26T12:39:05.7472863Z # Confirm parsing results in correct 2023-01-26T12:39:05.7472987Z # components for each type of submodel 2023-01-26T12:39:05.7473110Z 2023-01-26T12:39:05.7473220Z > d = DIMR(filepath=test_file) 2023-01-26T12:39:05.7473227Z 2023-01-26T12:39:05.7473323Z tests/test_model.py:62: 2023-01-26T12:39:05.7473440Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7473562Z hydrolib/core/basemodel.py:743: in __init__ 2023-01-26T12:39:05.7473643Z self._post_init_load() 2023-01-26T12:39:05.7473778Z hydrolib/core/dimr/models.py:323: in _post_init_load 2023-01-26T12:39:05.7473932Z comp.model = comp.get_model()(filepath=comp.filepath) 2023-01-26T12:39:05.7474055Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7474159Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7474279Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7474372Z super().__init__(**data) 2023-01-26T12:39:05.7474517Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7474591Z ??? 2023-01-26T12:39:05.7474743Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7474816Z ??? 2023-01-26T12:39:05.7474994Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7475067Z ??? 2023-01-26T12:39:05.7475252Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7475311Z ??? 2023-01-26T12:39:05.7475494Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7475645Z ??? 2023-01-26T12:39:05.7475854Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7475959Z ??? 2023-01-26T12:39:05.7476096Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7476203Z return super().validate(value) 2023-01-26T12:39:05.7476368Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7476426Z ??? 2023-01-26T12:39:05.7476547Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7476645Z super().__init__(**data) 2023-01-26T12:39:05.7476801Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7476873Z ??? 2023-01-26T12:39:05.7477020Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7477092Z ??? 2023-01-26T12:39:05.7477255Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7477329Z ??? 2023-01-26T12:39:05.7477515Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7477590Z ??? 2023-01-26T12:39:05.7477775Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7477849Z ??? 2023-01-26T12:39:05.7478057Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7478115Z ??? 2023-01-26T12:39:05.7478240Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7478345Z return super().validate(value) 2023-01-26T12:39:05.7478512Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7478584Z ??? 2023-01-26T12:39:05.7478706Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7478811Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7478920Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7479015Z super().__init__(**data) 2023-01-26T12:39:05.7481466Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7481540Z ??? 2023-01-26T12:39:05.7481695Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7481772Z ??? 2023-01-26T12:39:05.7481952Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7482011Z ??? 2023-01-26T12:39:05.7482147Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7482306Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7482826Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7482941Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7483062Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7483070Z 2023-01-26T12:39:05.7486389Z self = 2023-01-26T12:39:05.7486791Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7486947Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7487019Z winmode = None 2023-01-26T12:39:05.7487038Z 2023-01-26T12:39:05.7487171Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7487317Z use_errno=False, 2023-01-26T12:39:05.7487417Z use_last_error=False, 2023-01-26T12:39:05.7487511Z winmode=None): 2023-01-26T12:39:05.7487642Z self._name = name 2023-01-26T12:39:05.7487741Z flags = self._func_flags_ 2023-01-26T12:39:05.7487827Z if use_errno: 2023-01-26T12:39:05.7487921Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7488013Z if use_last_error: 2023-01-26T12:39:05.7488131Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7488260Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7488505Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7488723Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7488886Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7489033Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7489111Z """ 2023-01-26T12:39:05.7489247Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7489382Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7489480Z if _os.name == "nt": 2023-01-26T12:39:05.7489582Z if winmode is not None: 2023-01-26T12:39:05.7489673Z mode = winmode 2023-01-26T12:39:05.7489737Z else: 2023-01-26T12:39:05.7489825Z import nt 2023-01-26T12:39:05.7489961Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7490128Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7490276Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7490414Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7490485Z 2023-01-26T12:39:05.7490594Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7490670Z _flags_ = flags 2023-01-26T12:39:05.7490784Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7490886Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7490957Z 2023-01-26T12:39:05.7491053Z if handle is None: 2023-01-26T12:39:05.7491183Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7491708Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7491717Z 2023-01-26T12:39:05.7491902Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7492022Z ________________________________ test_mdu_model ________________________________ 2023-01-26T12:39:05.7492030Z 2023-01-26T12:39:05.7492122Z def test_mdu_model(): 2023-01-26T12:39:05.7492211Z > model = FMModel( 2023-01-26T12:39:05.7492306Z filepath=Path( 2023-01-26T12:39:05.7492398Z test_data_dir 2023-01-26T12:39:05.7492482Z / "input" 2023-01-26T12:39:05.7492565Z / "e02" 2023-01-26T12:39:05.7492716Z / "c11_korte-woerden-1d" 2023-01-26T12:39:05.7492868Z / "dimr_model" 2023-01-26T12:39:05.7492958Z / "dflowfm" 2023-01-26T12:39:05.7493050Z / "FlowFM.mdu" 2023-01-26T12:39:05.7493125Z ) 2023-01-26T12:39:05.7493199Z ) 2023-01-26T12:39:05.7493206Z 2023-01-26T12:39:05.7493304Z tests/test_model.py:196: 2023-01-26T12:39:05.7493411Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7493543Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7493650Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7493777Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7493872Z super().__init__(**data) 2023-01-26T12:39:05.7494031Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7494105Z ??? 2023-01-26T12:39:05.7494255Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7494316Z ??? 2023-01-26T12:39:05.7494498Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7494570Z ??? 2023-01-26T12:39:05.7494758Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7494830Z ??? 2023-01-26T12:39:05.7495015Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7495087Z ??? 2023-01-26T12:39:05.7495284Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7495415Z ??? 2023-01-26T12:39:05.7495553Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7495666Z return super().validate(value) 2023-01-26T12:39:05.7495831Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7495901Z ??? 2023-01-26T12:39:05.7496022Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7496104Z super().__init__(**data) 2023-01-26T12:39:05.7496260Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7496334Z ??? 2023-01-26T12:39:05.7496483Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7496555Z ??? 2023-01-26T12:39:05.7496732Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7496804Z ??? 2023-01-26T12:39:05.7496977Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7497049Z ??? 2023-01-26T12:39:05.7497235Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7497310Z ??? 2023-01-26T12:39:05.7497519Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7497592Z ??? 2023-01-26T12:39:05.7497719Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7497814Z return super().validate(value) 2023-01-26T12:39:05.7497977Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7498048Z ??? 2023-01-26T12:39:05.7498175Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7498280Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7498401Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7498495Z super().__init__(**data) 2023-01-26T12:39:05.7498636Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7498708Z ??? 2023-01-26T12:39:05.7498856Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7498928Z ??? 2023-01-26T12:39:05.7499107Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7499179Z ??? 2023-01-26T12:39:05.7499318Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7499480Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7499836Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7499944Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7500119Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7500129Z 2023-01-26T12:39:05.7500579Z self = 2023-01-26T12:39:05.7500960Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7501116Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7501201Z winmode = None 2023-01-26T12:39:05.7501209Z 2023-01-26T12:39:05.7501352Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7501450Z use_errno=False, 2023-01-26T12:39:05.7501540Z use_last_error=False, 2023-01-26T12:39:05.7501634Z winmode=None): 2023-01-26T12:39:05.7501724Z self._name = name 2023-01-26T12:39:05.7501824Z flags = self._func_flags_ 2023-01-26T12:39:05.7501916Z if use_errno: 2023-01-26T12:39:05.7502026Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7502119Z if use_last_error: 2023-01-26T12:39:05.7502225Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7502354Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7502494Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7502713Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7502927Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7503090Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7503167Z """ 2023-01-26T12:39:05.7503290Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7503419Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7503514Z if _os.name == "nt": 2023-01-26T12:39:05.7503617Z if winmode is not None: 2023-01-26T12:39:05.7503833Z mode = winmode 2023-01-26T12:39:05.7503913Z else: 2023-01-26T12:39:05.7504002Z import nt 2023-01-26T12:39:05.7504124Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7504295Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7504438Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7504579Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7504651Z 2023-01-26T12:39:05.7504761Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7504849Z _flags_ = flags 2023-01-26T12:39:05.7504964Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7505050Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7505121Z 2023-01-26T12:39:05.7505213Z if handle is None: 2023-01-26T12:39:05.7505343Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7505863Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7505871Z 2023-01-26T12:39:05.7506053Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7506196Z ________________________ test_load_model_recurse_false _________________________ 2023-01-26T12:39:05.7506207Z 2023-01-26T12:39:05.7506321Z def test_load_model_recurse_false(): 2023-01-26T12:39:05.7506396Z > model = FMModel( 2023-01-26T12:39:05.7506492Z filepath=Path( 2023-01-26T12:39:05.7506582Z test_data_dir 2023-01-26T12:39:05.7506665Z / "input" 2023-01-26T12:39:05.7506747Z / "e02" 2023-01-26T12:39:05.7506912Z / "c11_korte-woerden-1d" 2023-01-26T12:39:05.7507003Z / "dimr_model" 2023-01-26T12:39:05.7507075Z / "dflowfm" 2023-01-26T12:39:05.7507231Z / "FlowFM.mdu" 2023-01-26T12:39:05.7507316Z ), 2023-01-26T12:39:05.7507407Z recurse=False, 2023-01-26T12:39:05.7507481Z ) 2023-01-26T12:39:05.7507488Z 2023-01-26T12:39:05.7507585Z tests/test_model.py:238: 2023-01-26T12:39:05.7507706Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7507831Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.7507926Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7508048Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7508148Z super().__init__(**data) 2023-01-26T12:39:05.7508308Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7508383Z ??? 2023-01-26T12:39:05.7508533Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7508607Z ??? 2023-01-26T12:39:05.7508770Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7508846Z ??? 2023-01-26T12:39:05.7509034Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7509107Z ??? 2023-01-26T12:39:05.7509291Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7509363Z ??? 2023-01-26T12:39:05.7509573Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7509631Z ??? 2023-01-26T12:39:05.7509832Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.7509941Z return super().validate(value) 2023-01-26T12:39:05.7510105Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7510177Z ??? 2023-01-26T12:39:05.7510300Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7510394Z super().__init__(**data) 2023-01-26T12:39:05.7510537Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7510611Z ??? 2023-01-26T12:39:05.7510763Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.7510836Z ??? 2023-01-26T12:39:05.7511013Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.7511085Z ??? 2023-01-26T12:39:05.7511269Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.7511328Z ??? 2023-01-26T12:39:05.7511508Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.7511580Z ??? 2023-01-26T12:39:05.7511790Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.7511858Z ??? 2023-01-26T12:39:05.7511983Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.7512095Z return super().validate(value) 2023-01-26T12:39:05.7512244Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.7512320Z ??? 2023-01-26T12:39:05.7512443Z hydrolib/core/basemodel.py:719: in __init__ 2023-01-26T12:39:05.7512551Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7512675Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7512770Z super().__init__(**data) 2023-01-26T12:39:05.7512926Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7512998Z ??? 2023-01-26T12:39:05.7513134Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7513205Z ??? 2023-01-26T12:39:05.7513387Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7513463Z ??? 2023-01-26T12:39:05.7513600Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7513761Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7514131Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7514225Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7514396Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7514406Z 2023-01-26T12:39:05.7514855Z self = 2023-01-26T12:39:05.7515233Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7515384Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7515480Z winmode = None 2023-01-26T12:39:05.7515487Z 2023-01-26T12:39:05.7515631Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7515729Z use_errno=False, 2023-01-26T12:39:05.7515832Z use_last_error=False, 2023-01-26T12:39:05.7515912Z winmode=None): 2023-01-26T12:39:05.7516002Z self._name = name 2023-01-26T12:39:05.7516105Z flags = self._func_flags_ 2023-01-26T12:39:05.7516192Z if use_errno: 2023-01-26T12:39:05.7516305Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7516398Z if use_last_error: 2023-01-26T12:39:05.7516515Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7516630Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7516769Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7516991Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7517212Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7517374Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7517453Z """ 2023-01-26T12:39:05.7517589Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7517705Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7517798Z if _os.name == "nt": 2023-01-26T12:39:05.7517900Z if winmode is not None: 2023-01-26T12:39:05.7517995Z mode = winmode 2023-01-26T12:39:05.7518074Z else: 2023-01-26T12:39:05.7518160Z import nt 2023-01-26T12:39:05.7518296Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7518465Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7518597Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7518735Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7518810Z 2023-01-26T12:39:05.7518919Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7519007Z _flags_ = flags 2023-01-26T12:39:05.7519122Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7519223Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7519279Z 2023-01-26T12:39:05.7519369Z if handle is None: 2023-01-26T12:39:05.7519497Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7520016Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7520024Z 2023-01-26T12:39:05.7520205Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7520344Z ____________________________ test_mdu_from_scratch _____________________________ 2023-01-26T12:39:05.7520352Z 2023-01-26T12:39:05.7520460Z def test_mdu_from_scratch(): 2023-01-26T12:39:05.7520607Z output_fn = Path(test_output_dir / "scratch.mdu") 2023-01-26T12:39:05.7520684Z > model = FMModel() 2023-01-26T12:39:05.7520704Z 2023-01-26T12:39:05.7520786Z tests/test_model.py:283: 2023-01-26T12:39:05.7520905Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7521030Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7521134Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7521308Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7521407Z super().__init__(**data) 2023-01-26T12:39:05.7521567Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7521627Z ??? 2023-01-26T12:39:05.7521778Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7521852Z ??? 2023-01-26T12:39:05.7522029Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7522102Z ??? 2023-01-26T12:39:05.7522231Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7522324Z super().__init__(**data) 2023-01-26T12:39:05.7522465Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7522538Z ??? 2023-01-26T12:39:05.7522690Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7522765Z ??? 2023-01-26T12:39:05.7522941Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7523012Z ??? 2023-01-26T12:39:05.7523137Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7523228Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7523351Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7523445Z super().__init__(**data) 2023-01-26T12:39:05.7523600Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7523673Z ??? 2023-01-26T12:39:05.7523822Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7523893Z ??? 2023-01-26T12:39:05.7524104Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7524176Z ??? 2023-01-26T12:39:05.7524310Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7524472Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7533334Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7533767Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7534027Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7534186Z 2023-01-26T12:39:05.7534708Z self = 2023-01-26T12:39:05.7535404Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7535842Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7536096Z winmode = None 2023-01-26T12:39:05.7536222Z 2023-01-26T12:39:05.7536370Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7536641Z use_errno=False, 2023-01-26T12:39:05.7536863Z use_last_error=False, 2023-01-26T12:39:05.7537096Z winmode=None): 2023-01-26T12:39:05.7537317Z self._name = name 2023-01-26T12:39:05.7537532Z flags = self._func_flags_ 2023-01-26T12:39:05.7537758Z if use_errno: 2023-01-26T12:39:05.7537991Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7538225Z if use_last_error: 2023-01-26T12:39:05.7538453Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7538735Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7539032Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7539399Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7539734Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7540801Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7541074Z """ 2023-01-26T12:39:05.7541328Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7541620Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7541870Z if _os.name == "nt": 2023-01-26T12:39:05.7542221Z if winmode is not None: 2023-01-26T12:39:05.7542454Z mode = winmode 2023-01-26T12:39:05.7542660Z else: 2023-01-26T12:39:05.7542849Z import nt 2023-01-26T12:39:05.7543113Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7543463Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7543856Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7544173Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7544409Z 2023-01-26T12:39:05.7544613Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7544848Z _flags_ = flags 2023-01-26T12:39:05.7545091Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7545324Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7545537Z 2023-01-26T12:39:05.7545738Z if handle is None: 2023-01-26T12:39:05.7545981Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7546667Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7547033Z 2023-01-26T12:39:05.7547212Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7547702Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[waterlevinifile-None] _ 2023-01-26T12:39:05.7548026Z 2023-01-26T12:39:05.7548203Z input = None, input_field = 'waterlevinifile' 2023-01-26T12:39:05.7548500Z create_model = at 0x7f992fb778b0> 2023-01-26T12:39:05.7548801Z retrieve_field = at 0x7f992fb77940> 2023-01-26T12:39:05.7548968Z 2023-01-26T12:39:05.7549081Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7549294Z "input", 2023-01-26T12:39:05.7549487Z [ 2023-01-26T12:39:05.7549715Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7550014Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7550298Z pytest.param( 2023-01-26T12:39:05.7550609Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7550875Z ), 2023-01-26T12:39:05.7551062Z ], 2023-01-26T12:39:05.7551245Z ) 2023-01-26T12:39:05.7551628Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7551976Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7552215Z [ 2023-01-26T12:39:05.7552407Z pytest.param( 2023-01-26T12:39:05.7552638Z "extforcefile", 2023-01-26T12:39:05.7552893Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7553160Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7553394Z id="extforcefile", 2023-01-26T12:39:05.7553602Z ), 2023-01-26T12:39:05.7553809Z pytest.param( 2023-01-26T12:39:05.7554016Z "restartfile", 2023-01-26T12:39:05.7554250Z lambda d: Restart(**d), 2023-01-26T12:39:05.7554500Z lambda m: m.restartfile, 2023-01-26T12:39:05.7554723Z id="restartfile", 2023-01-26T12:39:05.7554933Z ), 2023-01-26T12:39:05.7555134Z pytest.param( 2023-01-26T12:39:05.7555413Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7555679Z ), 2023-01-26T12:39:05.7555885Z pytest.param( 2023-01-26T12:39:05.7556165Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7556429Z ), 2023-01-26T12:39:05.7556630Z pytest.param( 2023-01-26T12:39:05.7556838Z "flowgeomfile", 2023-01-26T12:39:05.7557074Z lambda d: Output(**d), 2023-01-26T12:39:05.7557322Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7557563Z id="flowgeomfile", 2023-01-26T12:39:05.7557757Z ), 2023-01-26T12:39:05.7558076Z pytest.param( 2023-01-26T12:39:05.7558372Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7558623Z ), 2023-01-26T12:39:05.7558826Z pytest.param( 2023-01-26T12:39:05.7559115Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7559364Z ), 2023-01-26T12:39:05.7559568Z pytest.param( 2023-01-26T12:39:05.7559812Z "mapoutputtimevector", 2023-01-26T12:39:05.7560050Z lambda d: Output(**d), 2023-01-26T12:39:05.7560320Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7560595Z id="mapoutputtimevector", 2023-01-26T12:39:05.7560804Z ), 2023-01-26T12:39:05.7561008Z pytest.param( 2023-01-26T12:39:05.7561232Z "classmapfile", 2023-01-26T12:39:05.7561452Z lambda d: Output(**d), 2023-01-26T12:39:05.7561704Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7561946Z id="classmapfile", 2023-01-26T12:39:05.7562155Z ), 2023-01-26T12:39:05.7562342Z pytest.param( 2023-01-26T12:39:05.7562569Z "waterlevinifile", 2023-01-26T12:39:05.7562818Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7563063Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7563317Z id="waterlevinifile", 2023-01-26T12:39:05.7563594Z ), 2023-01-26T12:39:05.7563783Z pytest.param( 2023-01-26T12:39:05.7564006Z "oned2dlinkfile", 2023-01-26T12:39:05.7564243Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7564487Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7564730Z id="oned2dlinkfile", 2023-01-26T12:39:05.7564941Z ), 2023-01-26T12:39:05.7565127Z pytest.param( 2023-01-26T12:39:05.7565348Z "proflocfile", 2023-01-26T12:39:05.7565585Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7565817Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7566058Z id="proflocfile", 2023-01-26T12:39:05.7566261Z ), 2023-01-26T12:39:05.7566450Z pytest.param( 2023-01-26T12:39:05.7566670Z "profdeffile", 2023-01-26T12:39:05.7566906Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7567154Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7567380Z id="profdeffile", 2023-01-26T12:39:05.7567590Z ), 2023-01-26T12:39:05.7567790Z pytest.param( 2023-01-26T12:39:05.7568002Z "profdefxyzfile", 2023-01-26T12:39:05.7568239Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7568492Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7568731Z id="profdefxyzfile", 2023-01-26T12:39:05.7568946Z ), 2023-01-26T12:39:05.7569147Z pytest.param( 2023-01-26T12:39:05.7569357Z "manholefile", 2023-01-26T12:39:05.7569589Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7569832Z lambda m: m.manholefile, 2023-01-26T12:39:05.7570054Z id="manholefile", 2023-01-26T12:39:05.7570262Z ), 2023-01-26T12:39:05.7570464Z pytest.param( 2023-01-26T12:39:05.7570676Z "definitionfile", 2023-01-26T12:39:05.7570920Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7571181Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7571426Z id="definitionfile", 2023-01-26T12:39:05.7571624Z ), 2023-01-26T12:39:05.7571824Z pytest.param( 2023-01-26T12:39:05.7572044Z "areafile", 2023-01-26T12:39:05.7572270Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7572515Z lambda m: m.areafile, 2023-01-26T12:39:05.7572754Z id="definitionfile", 2023-01-26T12:39:05.7573017Z ), 2023-01-26T12:39:05.7573229Z pytest.param( 2023-01-26T12:39:05.7573456Z "substancefile", 2023-01-26T12:39:05.7573683Z lambda d: Processes(**d), 2023-01-26T12:39:05.7573940Z lambda m: m.substancefile, 2023-01-26T12:39:05.7574186Z id="substancefile", 2023-01-26T12:39:05.7574380Z ), 2023-01-26T12:39:05.7574584Z pytest.param( 2023-01-26T12:39:05.7574850Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7575111Z lambda d: Processes(**d), 2023-01-26T12:39:05.7575400Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7575712Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7575941Z ), 2023-01-26T12:39:05.7576188Z pytest.param( 2023-01-26T12:39:05.7576413Z "statisticsfile", 2023-01-26T12:39:05.7576654Z lambda d: Processes(**d), 2023-01-26T12:39:05.7576900Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7577168Z id="statisticsfile", 2023-01-26T12:39:05.7577379Z ), 2023-01-26T12:39:05.7577566Z pytest.param( 2023-01-26T12:39:05.7577808Z "particlesreleasefile", 2023-01-26T12:39:05.7578066Z lambda d: Particles(**d), 2023-01-26T12:39:05.7578324Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7578607Z id="particlesreleasefile", 2023-01-26T12:39:05.7578899Z ), 2023-01-26T12:39:05.7579091Z pytest.param( 2023-01-26T12:39:05.7579312Z "locationfile", 2023-01-26T12:39:05.7579541Z _create_boundary, 2023-01-26T12:39:05.7579766Z lambda m: m.locationfile, 2023-01-26T12:39:05.7580005Z id="locationfile", 2023-01-26T12:39:05.7580214Z ), 2023-01-26T12:39:05.7580404Z pytest.param( 2023-01-26T12:39:05.7580639Z "frictionvaluesfile", 2023-01-26T12:39:05.7580901Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7581176Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7581425Z id="frictionvaluesfile", 2023-01-26T12:39:05.7581645Z ), 2023-01-26T12:39:05.7581832Z ], 2023-01-26T12:39:05.7582000Z ) 2023-01-26T12:39:05.7582275Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7582611Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7582863Z input_field: str, 2023-01-26T12:39:05.7583117Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7583423Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7583875Z ): 2023-01-26T12:39:05.7584091Z data = {input_field: input} 2023-01-26T12:39:05.7584334Z > model = create_model(data) 2023-01-26T12:39:05.7584482Z 2023-01-26T12:39:05.7584569Z tests/test_model.py:538: 2023-01-26T12:39:05.7584827Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7585083Z tests/test_model.py:447: in 2023-01-26T12:39:05.7585302Z ??? 2023-01-26T12:39:05.7585513Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7585762Z super().__init__(**data) 2023-01-26T12:39:05.7586053Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7586298Z ??? 2023-01-26T12:39:05.7586553Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7586808Z ??? 2023-01-26T12:39:05.7587074Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7587351Z ??? 2023-01-26T12:39:05.7587581Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7587825Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7588081Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7588329Z super().__init__(**data) 2023-01-26T12:39:05.7588677Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7588939Z ??? 2023-01-26T12:39:05.7589193Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7589470Z ??? 2023-01-26T12:39:05.7589752Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7590029Z ??? 2023-01-26T12:39:05.7590271Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7590584Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7591203Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7591574Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7591826Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7591979Z 2023-01-26T12:39:05.7592430Z self = 2023-01-26T12:39:05.7593130Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7593557Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7593806Z winmode = None 2023-01-26T12:39:05.7593931Z 2023-01-26T12:39:05.7594078Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7594345Z use_errno=False, 2023-01-26T12:39:05.7594632Z use_last_error=False, 2023-01-26T12:39:05.7594860Z winmode=None): 2023-01-26T12:39:05.7595086Z self._name = name 2023-01-26T12:39:05.7595315Z flags = self._func_flags_ 2023-01-26T12:39:05.7595522Z if use_errno: 2023-01-26T12:39:05.7595758Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7595995Z if use_last_error: 2023-01-26T12:39:05.7596226Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7596504Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7596801Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7597176Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7597508Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7597856Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7598104Z """ 2023-01-26T12:39:05.7598358Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7598653Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7598903Z if _os.name == "nt": 2023-01-26T12:39:05.7599118Z if winmode is not None: 2023-01-26T12:39:05.7599396Z mode = winmode 2023-01-26T12:39:05.7599599Z else: 2023-01-26T12:39:05.7599788Z import nt 2023-01-26T12:39:05.7600046Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7600382Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7600653Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7600961Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7601198Z 2023-01-26T12:39:05.7601394Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7601625Z _flags_ = flags 2023-01-26T12:39:05.7601863Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7602099Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7602304Z 2023-01-26T12:39:05.7602496Z if handle is None: 2023-01-26T12:39:05.7602741Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7603413Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7603769Z 2023-01-26T12:39:05.7604007Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7604506Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[waterlevinifile-Path] _ 2023-01-26T12:39:05.7604737Z 2023-01-26T12:39:05.7605000Z input = PosixPath('some/path/extforce.file'), input_field = 'waterlevinifile' 2023-01-26T12:39:05.7605327Z create_model = at 0x7f992fb778b0> 2023-01-26T12:39:05.7605625Z retrieve_field = at 0x7f992fb77940> 2023-01-26T12:39:05.7605800Z 2023-01-26T12:39:05.7605914Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7606127Z "input", 2023-01-26T12:39:05.7606317Z [ 2023-01-26T12:39:05.7606540Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7606845Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7607109Z pytest.param( 2023-01-26T12:39:05.7607412Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7607691Z ), 2023-01-26T12:39:05.7607861Z ], 2023-01-26T12:39:05.7608040Z ) 2023-01-26T12:39:05.7608249Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7608527Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7608748Z [ 2023-01-26T12:39:05.7608944Z pytest.param( 2023-01-26T12:39:05.7609168Z "extforcefile", 2023-01-26T12:39:05.7609408Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7609728Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7609968Z id="extforcefile", 2023-01-26T12:39:05.7610163Z ), 2023-01-26T12:39:05.7610365Z pytest.param( 2023-01-26T12:39:05.7610585Z "restartfile", 2023-01-26T12:39:05.7610801Z lambda d: Restart(**d), 2023-01-26T12:39:05.7611047Z lambda m: m.restartfile, 2023-01-26T12:39:05.7611281Z id="restartfile", 2023-01-26T12:39:05.7611470Z ), 2023-01-26T12:39:05.7611672Z pytest.param( 2023-01-26T12:39:05.7611961Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7612210Z ), 2023-01-26T12:39:05.7612409Z pytest.param( 2023-01-26T12:39:05.7612698Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7612956Z ), 2023-01-26T12:39:05.7613142Z pytest.param( 2023-01-26T12:39:05.7613364Z "flowgeomfile", 2023-01-26T12:39:05.7613595Z lambda d: Output(**d), 2023-01-26T12:39:05.7613828Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7614065Z id="flowgeomfile", 2023-01-26T12:39:05.7614271Z ), 2023-01-26T12:39:05.7614458Z pytest.param( 2023-01-26T12:39:05.7614746Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7615009Z ), 2023-01-26T12:39:05.7615198Z pytest.param( 2023-01-26T12:39:05.7615484Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7615744Z ), 2023-01-26T12:39:05.7615929Z pytest.param( 2023-01-26T12:39:05.7616165Z "mapoutputtimevector", 2023-01-26T12:39:05.7616409Z lambda d: Output(**d), 2023-01-26T12:39:05.7616660Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7616937Z id="mapoutputtimevector", 2023-01-26T12:39:05.7617158Z ), 2023-01-26T12:39:05.7617356Z pytest.param( 2023-01-26T12:39:05.7617569Z "classmapfile", 2023-01-26T12:39:05.7617798Z lambda d: Output(**d), 2023-01-26T12:39:05.7618046Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7618272Z id="classmapfile", 2023-01-26T12:39:05.7618477Z ), 2023-01-26T12:39:05.7618801Z pytest.param( 2023-01-26T12:39:05.7619068Z "waterlevinifile", 2023-01-26T12:39:05.7619328Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7619583Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7619822Z id="waterlevinifile", 2023-01-26T12:39:05.7620033Z ), 2023-01-26T12:39:05.7620235Z pytest.param( 2023-01-26T12:39:05.7620444Z "oned2dlinkfile", 2023-01-26T12:39:05.7620677Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7620931Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7621161Z id="oned2dlinkfile", 2023-01-26T12:39:05.7621369Z ), 2023-01-26T12:39:05.7621568Z pytest.param( 2023-01-26T12:39:05.7621775Z "proflocfile", 2023-01-26T12:39:05.7622008Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7622251Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7622484Z id="proflocfile", 2023-01-26T12:39:05.7622677Z ), 2023-01-26T12:39:05.7622880Z pytest.param( 2023-01-26T12:39:05.7623098Z "profdeffile", 2023-01-26T12:39:05.7623320Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7623562Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7623909Z id="profdeffile", 2023-01-26T12:39:05.7624102Z ), 2023-01-26T12:39:05.7624302Z pytest.param( 2023-01-26T12:39:05.7624526Z "profdefxyzfile", 2023-01-26T12:39:05.7624817Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7625067Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7625315Z id="profdefxyzfile", 2023-01-26T12:39:05.7625512Z ), 2023-01-26T12:39:05.7625712Z pytest.param( 2023-01-26T12:39:05.7625930Z "manholefile", 2023-01-26T12:39:05.7626148Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7626388Z lambda m: m.manholefile, 2023-01-26T12:39:05.7626624Z id="manholefile", 2023-01-26T12:39:05.7626819Z ), 2023-01-26T12:39:05.7627020Z pytest.param( 2023-01-26T12:39:05.7627243Z "definitionfile", 2023-01-26T12:39:05.7627485Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7627729Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7627976Z id="definitionfile", 2023-01-26T12:39:05.7628184Z ), 2023-01-26T12:39:05.7628370Z pytest.param( 2023-01-26T12:39:05.7628588Z "areafile", 2023-01-26T12:39:05.7628823Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7629049Z lambda m: m.areafile, 2023-01-26T12:39:05.7629282Z id="definitionfile", 2023-01-26T12:39:05.7629490Z ), 2023-01-26T12:39:05.7629677Z pytest.param( 2023-01-26T12:39:05.7629898Z "substancefile", 2023-01-26T12:39:05.7630137Z lambda d: Processes(**d), 2023-01-26T12:39:05.7630381Z lambda m: m.substancefile, 2023-01-26T12:39:05.7630623Z id="substancefile", 2023-01-26T12:39:05.7630836Z ), 2023-01-26T12:39:05.7631021Z pytest.param( 2023-01-26T12:39:05.7631280Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7631555Z lambda d: Processes(**d), 2023-01-26T12:39:05.7631841Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7632141Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7632386Z ), 2023-01-26T12:39:05.7632585Z pytest.param( 2023-01-26T12:39:05.7632795Z "statisticsfile", 2023-01-26T12:39:05.7633034Z lambda d: Processes(**d), 2023-01-26T12:39:05.7633288Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7633519Z id="statisticsfile", 2023-01-26T12:39:05.7633728Z ), 2023-01-26T12:39:05.7633927Z pytest.param( 2023-01-26T12:39:05.7634209Z "particlesreleasefile", 2023-01-26T12:39:05.7634471Z lambda d: Particles(**d), 2023-01-26T12:39:05.7634744Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7635007Z id="particlesreleasefile", 2023-01-26T12:39:05.7635229Z ), 2023-01-26T12:39:05.7635432Z pytest.param( 2023-01-26T12:39:05.7636020Z "locationfile", 2023-01-26T12:39:05.7636248Z _create_boundary, 2023-01-26T12:39:05.7636488Z lambda m: m.locationfile, 2023-01-26T12:39:05.7636728Z id="locationfile", 2023-01-26T12:39:05.7636922Z ), 2023-01-26T12:39:05.7637124Z pytest.param( 2023-01-26T12:39:05.7637354Z "frictionvaluesfile", 2023-01-26T12:39:05.7637599Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7637871Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7638132Z id="frictionvaluesfile", 2023-01-26T12:39:05.7638336Z ), 2023-01-26T12:39:05.7638520Z ], 2023-01-26T12:39:05.7638700Z ) 2023-01-26T12:39:05.7638959Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7639292Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7639554Z input_field: str, 2023-01-26T12:39:05.7639789Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7640093Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7640416Z ): 2023-01-26T12:39:05.7640608Z data = {input_field: input} 2023-01-26T12:39:05.7640848Z > model = create_model(data) 2023-01-26T12:39:05.7640991Z 2023-01-26T12:39:05.7641089Z tests/test_model.py:538: 2023-01-26T12:39:05.7641338Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7641582Z tests/test_model.py:447: in 2023-01-26T12:39:05.7641795Z ??? 2023-01-26T12:39:05.7642019Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7642258Z super().__init__(**data) 2023-01-26T12:39:05.7642545Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7642802Z ??? 2023-01-26T12:39:05.7643044Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7643293Z ??? 2023-01-26T12:39:05.7643570Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7643830Z ??? 2023-01-26T12:39:05.7644054Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7644315Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7644560Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7644806Z super().__init__(**data) 2023-01-26T12:39:05.7645090Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7645341Z ??? 2023-01-26T12:39:05.7645579Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7645826Z ??? 2023-01-26T12:39:05.7646102Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7646360Z ??? 2023-01-26T12:39:05.7646595Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7646916Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7647504Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7647875Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7648135Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7648292Z 2023-01-26T12:39:05.7648744Z self = 2023-01-26T12:39:05.7649426Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7649855Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7650178Z winmode = None 2023-01-26T12:39:05.7650309Z 2023-01-26T12:39:05.7650442Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7650708Z use_errno=False, 2023-01-26T12:39:05.7650937Z use_last_error=False, 2023-01-26T12:39:05.7651165Z winmode=None): 2023-01-26T12:39:05.7651371Z self._name = name 2023-01-26T12:39:05.7651593Z flags = self._func_flags_ 2023-01-26T12:39:05.7651815Z if use_errno: 2023-01-26T12:39:05.7652032Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7652266Z if use_last_error: 2023-01-26T12:39:05.7652511Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7652774Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7653070Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7653452Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7653773Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7654116Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7654376Z """ 2023-01-26T12:39:05.7654620Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7654897Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7655143Z if _os.name == "nt": 2023-01-26T12:39:05.7655431Z if winmode is not None: 2023-01-26T12:39:05.7655644Z mode = winmode 2023-01-26T12:39:05.7655844Z else: 2023-01-26T12:39:05.7656043Z import nt 2023-01-26T12:39:05.7656288Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7656623Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7656909Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7657203Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7657439Z 2023-01-26T12:39:05.7657649Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7657864Z _flags_ = flags 2023-01-26T12:39:05.7658102Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7658345Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7658547Z 2023-01-26T12:39:05.7658725Z if handle is None: 2023-01-26T12:39:05.7658976Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7659655Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7660012Z 2023-01-26T12:39:05.7660176Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7660668Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[waterlevinifile-Model] _ 2023-01-26T12:39:05.7660902Z 2023-01-26T12:39:05.7661173Z input = DiskOnlyFileModel(filepath=PosixPath('some/other/path/extforce.file')) 2023-01-26T12:39:05.7661538Z input_field = 'waterlevinifile' 2023-01-26T12:39:05.7661802Z create_model = at 0x7f992fb778b0> 2023-01-26T12:39:05.7662092Z retrieve_field = at 0x7f992fb77940> 2023-01-26T12:39:05.7662257Z 2023-01-26T12:39:05.7662371Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7662581Z "input", 2023-01-26T12:39:05.7662768Z [ 2023-01-26T12:39:05.7662994Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7663289Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7663565Z pytest.param( 2023-01-26T12:39:05.7663975Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7664251Z ), 2023-01-26T12:39:05.7664422Z ], 2023-01-26T12:39:05.7664602Z ) 2023-01-26T12:39:05.7664813Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7665006Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7665084Z [ 2023-01-26T12:39:05.7665176Z pytest.param( 2023-01-26T12:39:05.7665274Z "extforcefile", 2023-01-26T12:39:05.7665398Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7665507Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7665606Z id="extforcefile", 2023-01-26T12:39:05.7665667Z ), 2023-01-26T12:39:05.7665763Z pytest.param( 2023-01-26T12:39:05.7665862Z "restartfile", 2023-01-26T12:39:05.7665966Z lambda d: Restart(**d), 2023-01-26T12:39:05.7666072Z lambda m: m.restartfile, 2023-01-26T12:39:05.7666168Z id="restartfile", 2023-01-26T12:39:05.7666241Z ), 2023-01-26T12:39:05.7666319Z pytest.param( 2023-01-26T12:39:05.7666487Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7666561Z ), 2023-01-26T12:39:05.7666656Z pytest.param( 2023-01-26T12:39:05.7666818Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7666892Z ), 2023-01-26T12:39:05.7666982Z pytest.param( 2023-01-26T12:39:05.7667063Z "flowgeomfile", 2023-01-26T12:39:05.7667163Z lambda d: Output(**d), 2023-01-26T12:39:05.7667271Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7667457Z id="flowgeomfile", 2023-01-26T12:39:05.7667531Z ), 2023-01-26T12:39:05.7667622Z pytest.param( 2023-01-26T12:39:05.7667785Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7667846Z ), 2023-01-26T12:39:05.7667935Z pytest.param( 2023-01-26T12:39:05.7668094Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7668167Z ), 2023-01-26T12:39:05.7668260Z pytest.param( 2023-01-26T12:39:05.7668373Z "mapoutputtimevector", 2023-01-26T12:39:05.7668472Z lambda d: Output(**d), 2023-01-26T12:39:05.7668588Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7668705Z id="mapoutputtimevector", 2023-01-26T12:39:05.7668779Z ), 2023-01-26T12:39:05.7668872Z pytest.param( 2023-01-26T12:39:05.7668967Z "classmapfile", 2023-01-26T12:39:05.7669069Z lambda d: Output(**d), 2023-01-26T12:39:05.7669176Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7669261Z id="classmapfile", 2023-01-26T12:39:05.7669334Z ), 2023-01-26T12:39:05.7669424Z pytest.param( 2023-01-26T12:39:05.7669522Z "waterlevinifile", 2023-01-26T12:39:05.7669632Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7669748Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7669853Z id="waterlevinifile", 2023-01-26T12:39:05.7669927Z ), 2023-01-26T12:39:05.7670005Z pytest.param( 2023-01-26T12:39:05.7670101Z "oned2dlinkfile", 2023-01-26T12:39:05.7670206Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7670320Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7670420Z id="oned2dlinkfile", 2023-01-26T12:39:05.7670493Z ), 2023-01-26T12:39:05.7670574Z pytest.param( 2023-01-26T12:39:05.7670668Z "proflocfile", 2023-01-26T12:39:05.7670772Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7670876Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7670973Z id="proflocfile", 2023-01-26T12:39:05.7671047Z ), 2023-01-26T12:39:05.7671137Z pytest.param( 2023-01-26T12:39:05.7671216Z "profdeffile", 2023-01-26T12:39:05.7671318Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7671469Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7671569Z id="profdeffile", 2023-01-26T12:39:05.7671644Z ), 2023-01-26T12:39:05.7671734Z pytest.param( 2023-01-26T12:39:05.7671830Z "profdefxyzfile", 2023-01-26T12:39:05.7671933Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7672034Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7672134Z id="profdefxyzfile", 2023-01-26T12:39:05.7672212Z ), 2023-01-26T12:39:05.7672303Z pytest.param( 2023-01-26T12:39:05.7672395Z "manholefile", 2023-01-26T12:39:05.7672497Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7672601Z lambda m: m.manholefile, 2023-01-26T12:39:05.7672681Z id="manholefile", 2023-01-26T12:39:05.7672754Z ), 2023-01-26T12:39:05.7672844Z pytest.param( 2023-01-26T12:39:05.7672938Z "definitionfile", 2023-01-26T12:39:05.7673055Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7673171Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7673274Z id="definitionfile", 2023-01-26T12:39:05.7673334Z ), 2023-01-26T12:39:05.7673423Z pytest.param( 2023-01-26T12:39:05.7673509Z "areafile", 2023-01-26T12:39:05.7673621Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7673719Z lambda m: m.areafile, 2023-01-26T12:39:05.7673867Z id="definitionfile", 2023-01-26T12:39:05.7673940Z ), 2023-01-26T12:39:05.7674017Z pytest.param( 2023-01-26T12:39:05.7674114Z "substancefile", 2023-01-26T12:39:05.7674223Z lambda d: Processes(**d), 2023-01-26T12:39:05.7674334Z lambda m: m.substancefile, 2023-01-26T12:39:05.7674436Z id="substancefile", 2023-01-26T12:39:05.7674510Z ), 2023-01-26T12:39:05.7674600Z pytest.param( 2023-01-26T12:39:05.7674727Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7674836Z lambda d: Processes(**d), 2023-01-26T12:39:05.7674987Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7675127Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7675201Z ), 2023-01-26T12:39:05.7675291Z pytest.param( 2023-01-26T12:39:05.7675388Z "statisticsfile", 2023-01-26T12:39:05.7675486Z lambda d: Processes(**d), 2023-01-26T12:39:05.7675597Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7675698Z id="statisticsfile", 2023-01-26T12:39:05.7675770Z ), 2023-01-26T12:39:05.7675861Z pytest.param( 2023-01-26T12:39:05.7675973Z "particlesreleasefile", 2023-01-26T12:39:05.7676116Z lambda d: Particles(**d), 2023-01-26T12:39:05.7676234Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7676357Z id="particlesreleasefile", 2023-01-26T12:39:05.7676431Z ), 2023-01-26T12:39:05.7676521Z pytest.param( 2023-01-26T12:39:05.7676615Z "locationfile", 2023-01-26T12:39:05.7676710Z _create_boundary, 2023-01-26T12:39:05.7676816Z lambda m: m.locationfile, 2023-01-26T12:39:05.7676901Z id="locationfile", 2023-01-26T12:39:05.7676977Z ), 2023-01-26T12:39:05.7677070Z pytest.param( 2023-01-26T12:39:05.7677175Z "frictionvaluesfile", 2023-01-26T12:39:05.7677291Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7677415Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7677527Z id="frictionvaluesfile", 2023-01-26T12:39:05.7677588Z ), 2023-01-26T12:39:05.7677661Z ], 2023-01-26T12:39:05.7677733Z ) 2023-01-26T12:39:05.7677903Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7678094Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7678190Z input_field: str, 2023-01-26T12:39:05.7678314Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7678453Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7678525Z ): 2023-01-26T12:39:05.7678628Z data = {input_field: input} 2023-01-26T12:39:05.7678732Z > model = create_model(data) 2023-01-26T12:39:05.7678743Z 2023-01-26T12:39:05.7678842Z tests/test_model.py:538: 2023-01-26T12:39:05.7678962Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7679070Z tests/test_model.py:447: in 2023-01-26T12:39:05.7679143Z ??? 2023-01-26T12:39:05.7679253Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7679348Z super().__init__(**data) 2023-01-26T12:39:05.7679511Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7679584Z ??? 2023-01-26T12:39:05.7679739Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7679810Z ??? 2023-01-26T12:39:05.7679987Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7680046Z ??? 2023-01-26T12:39:05.7680170Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7680274Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7680395Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7680542Z super().__init__(**data) 2023-01-26T12:39:05.7680700Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7680771Z ??? 2023-01-26T12:39:05.7680908Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7680978Z ??? 2023-01-26T12:39:05.7681152Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7681223Z ??? 2023-01-26T12:39:05.7681357Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7681519Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7681914Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7682009Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7682131Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7682139Z 2023-01-26T12:39:05.7682588Z self = 2023-01-26T12:39:05.7682968Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7683119Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7683203Z winmode = None 2023-01-26T12:39:05.7683211Z 2023-01-26T12:39:05.7683355Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7683455Z use_errno=False, 2023-01-26T12:39:05.7683556Z use_last_error=False, 2023-01-26T12:39:05.7683636Z winmode=None): 2023-01-26T12:39:05.7683725Z self._name = name 2023-01-26T12:39:05.7683824Z flags = self._func_flags_ 2023-01-26T12:39:05.7683909Z if use_errno: 2023-01-26T12:39:05.7684016Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7684106Z if use_last_error: 2023-01-26T12:39:05.7684226Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7684342Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7684477Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7684694Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7684856Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7685016Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7685146Z """ 2023-01-26T12:39:05.7685285Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7685417Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7685498Z if _os.name == "nt": 2023-01-26T12:39:05.7685599Z if winmode is not None: 2023-01-26T12:39:05.7685689Z mode = winmode 2023-01-26T12:39:05.7685766Z else: 2023-01-26T12:39:05.7685852Z import nt 2023-01-26T12:39:05.7685990Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7686159Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7686291Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7686429Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7686502Z 2023-01-26T12:39:05.7686608Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7686697Z _flags_ = flags 2023-01-26T12:39:05.7686885Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7686987Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7687045Z 2023-01-26T12:39:05.7687137Z if handle is None: 2023-01-26T12:39:05.7687263Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7687780Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7687840Z 2023-01-26T12:39:05.7688135Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7688417Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[oned2dlinkfile-None] _ 2023-01-26T12:39:05.7688424Z 2023-01-26T12:39:05.7688611Z input = None, input_field = 'oned2dlinkfile' 2023-01-26T12:39:05.7688744Z create_model = at 0x7f992fb779d0> 2023-01-26T12:39:05.7688879Z retrieve_field = at 0x7f992fb77a60> 2023-01-26T12:39:05.7688890Z 2023-01-26T12:39:05.7688990Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7689068Z "input", 2023-01-26T12:39:05.7689141Z [ 2023-01-26T12:39:05.7689262Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7689423Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7689516Z pytest.param( 2023-01-26T12:39:05.7689695Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7689760Z ), 2023-01-26T12:39:05.7689832Z ], 2023-01-26T12:39:05.7689906Z ) 2023-01-26T12:39:05.7690015Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7690146Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7690219Z [ 2023-01-26T12:39:05.7690311Z pytest.param( 2023-01-26T12:39:05.7690393Z "extforcefile", 2023-01-26T12:39:05.7690514Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7690627Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7690726Z id="extforcefile", 2023-01-26T12:39:05.7690801Z ), 2023-01-26T12:39:05.7690891Z pytest.param( 2023-01-26T12:39:05.7690986Z "restartfile", 2023-01-26T12:39:05.7691075Z lambda d: Restart(**d), 2023-01-26T12:39:05.7691185Z lambda m: m.restartfile, 2023-01-26T12:39:05.7691280Z id="restartfile", 2023-01-26T12:39:05.7691357Z ), 2023-01-26T12:39:05.7691448Z pytest.param( 2023-01-26T12:39:05.7691612Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7691684Z ), 2023-01-26T12:39:05.7691762Z pytest.param( 2023-01-26T12:39:05.7691919Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7691992Z ), 2023-01-26T12:39:05.7692081Z pytest.param( 2023-01-26T12:39:05.7692225Z "flowgeomfile", 2023-01-26T12:39:05.7692331Z lambda d: Output(**d), 2023-01-26T12:39:05.7692438Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7692523Z id="flowgeomfile", 2023-01-26T12:39:05.7692595Z ), 2023-01-26T12:39:05.7692684Z pytest.param( 2023-01-26T12:39:05.7692845Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7692922Z ), 2023-01-26T12:39:05.7693013Z pytest.param( 2023-01-26T12:39:05.7693171Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7693231Z ), 2023-01-26T12:39:05.7693321Z pytest.param( 2023-01-26T12:39:05.7693432Z "mapoutputtimevector", 2023-01-26T12:39:05.7693532Z lambda d: Output(**d), 2023-01-26T12:39:05.7693663Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7693780Z id="mapoutputtimevector", 2023-01-26T12:39:05.7693854Z ), 2023-01-26T12:39:05.7693947Z pytest.param( 2023-01-26T12:39:05.7694028Z "classmapfile", 2023-01-26T12:39:05.7694127Z lambda d: Output(**d), 2023-01-26T12:39:05.7694235Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7694331Z id="classmapfile", 2023-01-26T12:39:05.7694404Z ), 2023-01-26T12:39:05.7694494Z pytest.param( 2023-01-26T12:39:05.7694646Z "waterlevinifile", 2023-01-26T12:39:05.7694739Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7694855Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7694959Z id="waterlevinifile", 2023-01-26T12:39:05.7695033Z ), 2023-01-26T12:39:05.7695123Z pytest.param( 2023-01-26T12:39:05.7695220Z "oned2dlinkfile", 2023-01-26T12:39:05.7695325Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7695428Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7695529Z id="oned2dlinkfile", 2023-01-26T12:39:05.7695602Z ), 2023-01-26T12:39:05.7695693Z pytest.param( 2023-01-26T12:39:05.7695787Z "proflocfile", 2023-01-26T12:39:05.7695891Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7695997Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7696081Z id="proflocfile", 2023-01-26T12:39:05.7696156Z ), 2023-01-26T12:39:05.7696246Z pytest.param( 2023-01-26T12:39:05.7696339Z "profdeffile", 2023-01-26T12:39:05.7696442Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7696546Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7696643Z id="profdeffile", 2023-01-26T12:39:05.7696703Z ), 2023-01-26T12:39:05.7696795Z pytest.param( 2023-01-26T12:39:05.7696893Z "profdefxyzfile", 2023-01-26T12:39:05.7697002Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7697120Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7697221Z id="profdefxyzfile", 2023-01-26T12:39:05.7697294Z ), 2023-01-26T12:39:05.7697371Z pytest.param( 2023-01-26T12:39:05.7697462Z "manholefile", 2023-01-26T12:39:05.7697563Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7697666Z lambda m: m.manholefile, 2023-01-26T12:39:05.7697763Z id="manholefile", 2023-01-26T12:39:05.7697836Z ), 2023-01-26T12:39:05.7697927Z pytest.param( 2023-01-26T12:39:05.7698009Z "definitionfile", 2023-01-26T12:39:05.7698123Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7698236Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7698337Z id="definitionfile", 2023-01-26T12:39:05.7698414Z ), 2023-01-26T12:39:05.7698506Z pytest.param( 2023-01-26T12:39:05.7698640Z "areafile", 2023-01-26T12:39:05.7698742Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7698842Z lambda m: m.areafile, 2023-01-26T12:39:05.7698943Z id="definitionfile", 2023-01-26T12:39:05.7699017Z ), 2023-01-26T12:39:05.7699109Z pytest.param( 2023-01-26T12:39:05.7699205Z "substancefile", 2023-01-26T12:39:05.7699315Z lambda d: Processes(**d), 2023-01-26T12:39:05.7699416Z lambda m: m.substancefile, 2023-01-26T12:39:05.7699518Z id="substancefile", 2023-01-26T12:39:05.7699591Z ), 2023-01-26T12:39:05.7699683Z pytest.param( 2023-01-26T12:39:05.7699820Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7699928Z lambda d: Processes(**d), 2023-01-26T12:39:05.7700078Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7700208Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7700282Z ), 2023-01-26T12:39:05.7700375Z pytest.param( 2023-01-26T12:39:05.7700471Z "statisticsfile", 2023-01-26T12:39:05.7700580Z lambda d: Processes(**d), 2023-01-26T12:39:05.7700693Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7700794Z id="statisticsfile", 2023-01-26T12:39:05.7700854Z ), 2023-01-26T12:39:05.7700943Z pytest.param( 2023-01-26T12:39:05.7701110Z "particlesreleasefile", 2023-01-26T12:39:05.7701217Z lambda d: Particles(**d), 2023-01-26T12:39:05.7701345Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7701465Z id="particlesreleasefile", 2023-01-26T12:39:05.7701538Z ), 2023-01-26T12:39:05.7701616Z pytest.param( 2023-01-26T12:39:05.7701710Z "locationfile", 2023-01-26T12:39:05.7701807Z _create_boundary, 2023-01-26T12:39:05.7701917Z lambda m: m.locationfile, 2023-01-26T12:39:05.7702016Z id="locationfile", 2023-01-26T12:39:05.7702090Z ), 2023-01-26T12:39:05.7702182Z pytest.param( 2023-01-26T12:39:05.7702275Z "frictionvaluesfile", 2023-01-26T12:39:05.7702394Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7702516Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7702628Z id="frictionvaluesfile", 2023-01-26T12:39:05.7702704Z ), 2023-01-26T12:39:05.7702776Z ], 2023-01-26T12:39:05.7702848Z ) 2023-01-26T12:39:05.7703005Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7703144Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7703234Z input_field: str, 2023-01-26T12:39:05.7703358Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7703512Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7703588Z ): 2023-01-26T12:39:05.7703821Z data = {input_field: input} 2023-01-26T12:39:05.7703913Z > model = create_model(data) 2023-01-26T12:39:05.7703934Z 2023-01-26T12:39:05.7704018Z tests/test_model.py:538: 2023-01-26T12:39:05.7704139Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7704249Z tests/test_model.py:453: in 2023-01-26T12:39:05.7704326Z ??? 2023-01-26T12:39:05.7704455Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7704550Z super().__init__(**data) 2023-01-26T12:39:05.7704711Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7704771Z ??? 2023-01-26T12:39:05.7704922Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7704996Z ??? 2023-01-26T12:39:05.7705172Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7705243Z ??? 2023-01-26T12:39:05.7705425Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7705531Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7705639Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7705732Z super().__init__(**data) 2023-01-26T12:39:05.7705888Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7705961Z ??? 2023-01-26T12:39:05.7706111Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7706185Z ??? 2023-01-26T12:39:05.7706363Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7706420Z ??? 2023-01-26T12:39:05.7706556Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7706717Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7707111Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7707219Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7707342Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7707350Z 2023-01-26T12:39:05.7707795Z self = 2023-01-26T12:39:05.7708170Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7708322Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7708456Z winmode = None 2023-01-26T12:39:05.7708463Z 2023-01-26T12:39:05.7708609Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7708707Z use_errno=False, 2023-01-26T12:39:05.7708809Z use_last_error=False, 2023-01-26T12:39:05.7708904Z winmode=None): 2023-01-26T12:39:05.7708994Z self._name = name 2023-01-26T12:39:05.7709092Z flags = self._func_flags_ 2023-01-26T12:39:05.7709168Z if use_errno: 2023-01-26T12:39:05.7709277Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7709369Z if use_last_error: 2023-01-26T12:39:05.7709488Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7709620Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7709759Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7709977Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7710128Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7710290Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7710367Z """ 2023-01-26T12:39:05.7710504Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7710634Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7710728Z if _os.name == "nt": 2023-01-26T12:39:05.7710831Z if winmode is not None: 2023-01-26T12:39:05.7710922Z mode = winmode 2023-01-26T12:39:05.7710986Z else: 2023-01-26T12:39:05.7711074Z import nt 2023-01-26T12:39:05.7711210Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7711377Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7711522Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7711663Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7711736Z 2023-01-26T12:39:05.7711831Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7711920Z _flags_ = flags 2023-01-26T12:39:05.7712121Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7712287Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7712399Z 2023-01-26T12:39:05.7712533Z if handle is None: 2023-01-26T12:39:05.7712701Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7713260Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7713327Z 2023-01-26T12:39:05.7713496Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7713823Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[oned2dlinkfile-Path] _ 2023-01-26T12:39:05.7713834Z 2023-01-26T12:39:05.7714301Z input = PosixPath('some/path/extforce.file'), input_field = 'oned2dlinkfile' 2023-01-26T12:39:05.7714489Z create_model = at 0x7f992fb779d0> 2023-01-26T12:39:05.7714662Z retrieve_field = at 0x7f992fb77a60> 2023-01-26T12:39:05.7714670Z 2023-01-26T12:39:05.7714821Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7714941Z "input", 2023-01-26T12:39:05.7715003Z [ 2023-01-26T12:39:05.7715159Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7715361Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7715494Z pytest.param( 2023-01-26T12:39:05.7715752Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7715868Z ), 2023-01-26T12:39:05.7715983Z ], 2023-01-26T12:39:05.7716043Z ) 2023-01-26T12:39:05.7716197Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7716369Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7716553Z [ 2023-01-26T12:39:05.7716685Z pytest.param( 2023-01-26T12:39:05.7716834Z "extforcefile", 2023-01-26T12:39:05.7717028Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7717128Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7717268Z id="extforcefile", 2023-01-26T12:39:05.7717381Z ), 2023-01-26T12:39:05.7717511Z pytest.param( 2023-01-26T12:39:05.7717646Z "restartfile", 2023-01-26T12:39:05.7717786Z lambda d: Restart(**d), 2023-01-26T12:39:05.7717932Z lambda m: m.restartfile, 2023-01-26T12:39:05.7718018Z id="restartfile", 2023-01-26T12:39:05.7718142Z ), 2023-01-26T12:39:05.7718296Z pytest.param( 2023-01-26T12:39:05.7718499Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7718609Z ), 2023-01-26T12:39:05.7718739Z pytest.param( 2023-01-26T12:39:05.7718942Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7719055Z ), 2023-01-26T12:39:05.7719135Z pytest.param( 2023-01-26T12:39:05.7719277Z "flowgeomfile", 2023-01-26T12:39:05.7719418Z lambda d: Output(**d), 2023-01-26T12:39:05.7719592Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7719729Z id="flowgeomfile", 2023-01-26T12:39:05.7719842Z ), 2023-01-26T12:39:05.7719973Z pytest.param( 2023-01-26T12:39:05.7720127Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7720243Z ), 2023-01-26T12:39:05.7720373Z pytest.param( 2023-01-26T12:39:05.7739697Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7739835Z ), 2023-01-26T12:39:05.7739965Z pytest.param( 2023-01-26T12:39:05.7740087Z "mapoutputtimevector", 2023-01-26T12:39:05.7740196Z lambda d: Output(**d), 2023-01-26T12:39:05.7740323Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7740442Z id="mapoutputtimevector", 2023-01-26T12:39:05.7740519Z ), 2023-01-26T12:39:05.7740614Z pytest.param( 2023-01-26T12:39:05.7740709Z "classmapfile", 2023-01-26T12:39:05.7740811Z lambda d: Output(**d), 2023-01-26T12:39:05.7741169Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7741262Z id="classmapfile", 2023-01-26T12:39:05.7741340Z ), 2023-01-26T12:39:05.7741434Z pytest.param( 2023-01-26T12:39:05.7741533Z "waterlevinifile", 2023-01-26T12:39:05.7741644Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7741767Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7741874Z id="waterlevinifile", 2023-01-26T12:39:05.7741941Z ), 2023-01-26T12:39:05.7742036Z pytest.param( 2023-01-26T12:39:05.7742136Z "oned2dlinkfile", 2023-01-26T12:39:05.7742244Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7742361Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7742464Z id="oned2dlinkfile", 2023-01-26T12:39:05.7742540Z ), 2023-01-26T12:39:05.7742618Z pytest.param( 2023-01-26T12:39:05.7742716Z "proflocfile", 2023-01-26T12:39:05.7742823Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7742928Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7743025Z id="proflocfile", 2023-01-26T12:39:05.7743097Z ), 2023-01-26T12:39:05.7743188Z pytest.param( 2023-01-26T12:39:05.7743268Z "profdeffile", 2023-01-26T12:39:05.7743370Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7743545Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7743919Z id="profdeffile", 2023-01-26T12:39:05.7743999Z ), 2023-01-26T12:39:05.7744094Z pytest.param( 2023-01-26T12:39:05.7744194Z "profdefxyzfile", 2023-01-26T12:39:05.7744284Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7744405Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7744510Z id="profdefxyzfile", 2023-01-26T12:39:05.7744586Z ), 2023-01-26T12:39:05.7744686Z pytest.param( 2023-01-26T12:39:05.7744780Z "manholefile", 2023-01-26T12:39:05.7744885Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7744975Z lambda m: m.manholefile, 2023-01-26T12:39:05.7745075Z id="manholefile", 2023-01-26T12:39:05.7745151Z ), 2023-01-26T12:39:05.7745242Z pytest.param( 2023-01-26T12:39:05.7745342Z "definitionfile", 2023-01-26T12:39:05.7745460Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7745577Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7745666Z id="definitionfile", 2023-01-26T12:39:05.7745741Z ), 2023-01-26T12:39:05.7745835Z pytest.param( 2023-01-26T12:39:05.7745922Z "areafile", 2023-01-26T12:39:05.7746035Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7746134Z lambda m: m.areafile, 2023-01-26T12:39:05.7746234Z id="definitionfile", 2023-01-26T12:39:05.7746297Z ), 2023-01-26T12:39:05.7746387Z pytest.param( 2023-01-26T12:39:05.7746482Z "substancefile", 2023-01-26T12:39:05.7746591Z lambda d: Processes(**d), 2023-01-26T12:39:05.7746702Z lambda m: m.substancefile, 2023-01-26T12:39:05.7746802Z id="substancefile", 2023-01-26T12:39:05.7746875Z ), 2023-01-26T12:39:05.7746952Z pytest.param( 2023-01-26T12:39:05.7747091Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7747200Z lambda d: Processes(**d), 2023-01-26T12:39:05.7747350Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7747488Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7747561Z ), 2023-01-26T12:39:05.7747651Z pytest.param( 2023-01-26T12:39:05.7747735Z "statisticsfile", 2023-01-26T12:39:05.7747842Z lambda d: Processes(**d), 2023-01-26T12:39:05.7748026Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7748132Z id="statisticsfile", 2023-01-26T12:39:05.7748205Z ), 2023-01-26T12:39:05.7748296Z pytest.param( 2023-01-26T12:39:05.7748406Z "particlesreleasefile", 2023-01-26T12:39:05.7748501Z lambda d: Particles(**d), 2023-01-26T12:39:05.7748629Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7748752Z id="particlesreleasefile", 2023-01-26T12:39:05.7748826Z ), 2023-01-26T12:39:05.7748917Z pytest.param( 2023-01-26T12:39:05.7749010Z "locationfile", 2023-01-26T12:39:05.7749103Z _create_boundary, 2023-01-26T12:39:05.7749197Z lambda m: m.locationfile, 2023-01-26T12:39:05.7749295Z id="locationfile", 2023-01-26T12:39:05.7749370Z ), 2023-01-26T12:39:05.7749463Z pytest.param( 2023-01-26T12:39:05.7749573Z "frictionvaluesfile", 2023-01-26T12:39:05.7749691Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7749817Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7749915Z id="frictionvaluesfile", 2023-01-26T12:39:05.7749991Z ), 2023-01-26T12:39:05.7750065Z ], 2023-01-26T12:39:05.7750136Z ) 2023-01-26T12:39:05.7750305Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7750508Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7750601Z input_field: str, 2023-01-26T12:39:05.7750711Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7750865Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7750937Z ): 2023-01-26T12:39:05.7751040Z data = {input_field: input} 2023-01-26T12:39:05.7751141Z > model = create_model(data) 2023-01-26T12:39:05.7751152Z 2023-01-26T12:39:05.7751249Z tests/test_model.py:538: 2023-01-26T12:39:05.7751371Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7751477Z tests/test_model.py:453: in 2023-01-26T12:39:05.7751538Z ??? 2023-01-26T12:39:05.7751660Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7751754Z super().__init__(**data) 2023-01-26T12:39:05.7751914Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7751987Z ??? 2023-01-26T12:39:05.7752142Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7752212Z ??? 2023-01-26T12:39:05.7752376Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7752446Z ??? 2023-01-26T12:39:05.7752569Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7752672Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7752793Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7752886Z super().__init__(**data) 2023-01-26T12:39:05.7753044Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7753103Z ??? 2023-01-26T12:39:05.7753251Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7753322Z ??? 2023-01-26T12:39:05.7753497Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7753568Z ??? 2023-01-26T12:39:05.7753702Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7753861Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7754303Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7754416Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7754543Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7754550Z 2023-01-26T12:39:05.7755066Z self = 2023-01-26T12:39:05.7755453Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7755606Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7755690Z winmode = None 2023-01-26T12:39:05.7755697Z 2023-01-26T12:39:05.7755842Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7755939Z use_errno=False, 2023-01-26T12:39:05.7756033Z use_last_error=False, 2023-01-26T12:39:05.7756126Z winmode=None): 2023-01-26T12:39:05.7756216Z self._name = name 2023-01-26T12:39:05.7756314Z flags = self._func_flags_ 2023-01-26T12:39:05.7756400Z if use_errno: 2023-01-26T12:39:05.7756506Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7756597Z if use_last_error: 2023-01-26T12:39:05.7756701Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7756832Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7756968Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7757188Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7757352Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7757515Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7757649Z """ 2023-01-26T12:39:05.7757785Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7757902Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7757996Z if _os.name == "nt": 2023-01-26T12:39:05.7758097Z if winmode is not None: 2023-01-26T12:39:05.7758187Z mode = winmode 2023-01-26T12:39:05.7758263Z else: 2023-01-26T12:39:05.7758350Z import nt 2023-01-26T12:39:05.7758487Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7758643Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7758787Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7758922Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7758995Z 2023-01-26T12:39:05.7759102Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7759190Z _flags_ = flags 2023-01-26T12:39:05.7759304Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7759394Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7759464Z 2023-01-26T12:39:05.7759555Z if handle is None: 2023-01-26T12:39:05.7759684Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7760201Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7760210Z 2023-01-26T12:39:05.7760390Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7760678Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[oned2dlinkfile-Model] _ 2023-01-26T12:39:05.7760686Z 2023-01-26T12:39:05.7760950Z input = DiskOnlyFileModel(filepath=PosixPath('some/other/path/extforce.file')) 2023-01-26T12:39:05.7761098Z input_field = 'oned2dlinkfile' 2023-01-26T12:39:05.7761219Z create_model = at 0x7f992fb779d0> 2023-01-26T12:39:05.7761357Z retrieve_field = at 0x7f992fb77a60> 2023-01-26T12:39:05.7761365Z 2023-01-26T12:39:05.7761477Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7761556Z "input", 2023-01-26T12:39:05.7761629Z [ 2023-01-26T12:39:05.7761746Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7761906Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7761986Z pytest.param( 2023-01-26T12:39:05.7762221Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7762302Z ), 2023-01-26T12:39:05.7762376Z ], 2023-01-26T12:39:05.7762447Z ) 2023-01-26T12:39:05.7762558Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7762692Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7762752Z [ 2023-01-26T12:39:05.7762843Z pytest.param( 2023-01-26T12:39:05.7762937Z "extforcefile", 2023-01-26T12:39:05.7763062Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7763172Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7763271Z id="extforcefile", 2023-01-26T12:39:05.7763345Z ), 2023-01-26T12:39:05.7763422Z pytest.param( 2023-01-26T12:39:05.7763516Z "restartfile", 2023-01-26T12:39:05.7763618Z lambda d: Restart(**d), 2023-01-26T12:39:05.7763724Z lambda m: m.restartfile, 2023-01-26T12:39:05.7763823Z id="restartfile", 2023-01-26T12:39:05.7763897Z ), 2023-01-26T12:39:05.7763989Z pytest.param( 2023-01-26T12:39:05.7764156Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7764217Z ), 2023-01-26T12:39:05.7764309Z pytest.param( 2023-01-26T12:39:05.7764470Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7764602Z ), 2023-01-26T12:39:05.7764692Z pytest.param( 2023-01-26T12:39:05.7764786Z "flowgeomfile", 2023-01-26T12:39:05.7764887Z lambda d: Output(**d), 2023-01-26T12:39:05.7764985Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7765081Z id="flowgeomfile", 2023-01-26T12:39:05.7765155Z ), 2023-01-26T12:39:05.7765245Z pytest.param( 2023-01-26T12:39:05.7765410Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7765486Z ), 2023-01-26T12:39:05.7765575Z pytest.param( 2023-01-26T12:39:05.7765723Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7765797Z ), 2023-01-26T12:39:05.7765886Z pytest.param( 2023-01-26T12:39:05.7765999Z "mapoutputtimevector", 2023-01-26T12:39:05.7766099Z lambda d: Output(**d), 2023-01-26T12:39:05.7766233Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7766352Z id="mapoutputtimevector", 2023-01-26T12:39:05.7766412Z ), 2023-01-26T12:39:05.7766505Z pytest.param( 2023-01-26T12:39:05.7766601Z "classmapfile", 2023-01-26T12:39:05.7766704Z lambda d: Output(**d), 2023-01-26T12:39:05.7766814Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7766915Z id="classmapfile", 2023-01-26T12:39:05.7766989Z ), 2023-01-26T12:39:05.7767069Z pytest.param( 2023-01-26T12:39:05.7767168Z "waterlevinifile", 2023-01-26T12:39:05.7767274Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7767392Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7767496Z id="waterlevinifile", 2023-01-26T12:39:05.7767569Z ), 2023-01-26T12:39:05.7767659Z pytest.param( 2023-01-26T12:39:05.7767743Z "oned2dlinkfile", 2023-01-26T12:39:05.7767853Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7767966Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7768066Z id="oned2dlinkfile", 2023-01-26T12:39:05.7768139Z ), 2023-01-26T12:39:05.7768228Z pytest.param( 2023-01-26T12:39:05.7768320Z "proflocfile", 2023-01-26T12:39:05.7768412Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7768513Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7768657Z id="proflocfile", 2023-01-26T12:39:05.7768735Z ), 2023-01-26T12:39:05.7768824Z pytest.param( 2023-01-26T12:39:05.7768916Z "profdeffile", 2023-01-26T12:39:05.7769019Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7769108Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7769204Z id="profdeffile", 2023-01-26T12:39:05.7769277Z ), 2023-01-26T12:39:05.7769368Z pytest.param( 2023-01-26T12:39:05.7769471Z "profdefxyzfile", 2023-01-26T12:39:05.7769574Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7769692Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7769780Z id="profdefxyzfile", 2023-01-26T12:39:05.7769853Z ), 2023-01-26T12:39:05.7769943Z pytest.param( 2023-01-26T12:39:05.7770034Z "manholefile", 2023-01-26T12:39:05.7770137Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7770243Z lambda m: m.manholefile, 2023-01-26T12:39:05.7770337Z id="manholefile", 2023-01-26T12:39:05.7770396Z ), 2023-01-26T12:39:05.7770487Z pytest.param( 2023-01-26T12:39:05.7770580Z "definitionfile", 2023-01-26T12:39:05.7770694Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7770806Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7770905Z id="definitionfile", 2023-01-26T12:39:05.7771028Z ), 2023-01-26T12:39:05.7771105Z pytest.param( 2023-01-26T12:39:05.7771195Z "areafile", 2023-01-26T12:39:05.7771304Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7771403Z lambda m: m.areafile, 2023-01-26T12:39:05.7771503Z id="definitionfile", 2023-01-26T12:39:05.7771576Z ), 2023-01-26T12:39:05.7771668Z pytest.param( 2023-01-26T12:39:05.7771750Z "substancefile", 2023-01-26T12:39:05.7771862Z lambda d: Processes(**d), 2023-01-26T12:39:05.7771972Z lambda m: m.substancefile, 2023-01-26T12:39:05.7772073Z id="substancefile", 2023-01-26T12:39:05.7772147Z ), 2023-01-26T12:39:05.7772236Z pytest.param( 2023-01-26T12:39:05.7772373Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7772470Z lambda d: Processes(**d), 2023-01-26T12:39:05.7772619Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7772761Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7772839Z ), 2023-01-26T12:39:05.7772931Z pytest.param( 2023-01-26T12:39:05.7773028Z "statisticsfile", 2023-01-26T12:39:05.7773137Z lambda d: Processes(**d), 2023-01-26T12:39:05.7773236Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7773337Z id="statisticsfile", 2023-01-26T12:39:05.7773409Z ), 2023-01-26T12:39:05.7773502Z pytest.param( 2023-01-26T12:39:05.7773615Z "particlesreleasefile", 2023-01-26T12:39:05.7773722Z lambda d: Particles(**d), 2023-01-26T12:39:05.7773852Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7773957Z id="particlesreleasefile", 2023-01-26T12:39:05.7774031Z ), 2023-01-26T12:39:05.7774121Z pytest.param( 2023-01-26T12:39:05.7774213Z "locationfile", 2023-01-26T12:39:05.7774308Z _create_boundary, 2023-01-26T12:39:05.7774415Z lambda m: m.locationfile, 2023-01-26T12:39:05.7774511Z id="locationfile", 2023-01-26T12:39:05.7774571Z ), 2023-01-26T12:39:05.7774662Z pytest.param( 2023-01-26T12:39:05.7774766Z "frictionvaluesfile", 2023-01-26T12:39:05.7774883Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7775006Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7775166Z id="frictionvaluesfile", 2023-01-26T12:39:05.7775243Z ), 2023-01-26T12:39:05.7775303Z ], 2023-01-26T12:39:05.7775374Z ) 2023-01-26T12:39:05.7775544Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7775682Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7775773Z input_field: str, 2023-01-26T12:39:05.7775896Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7776103Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7776178Z ): 2023-01-26T12:39:05.7776270Z data = {input_field: input} 2023-01-26T12:39:05.7776372Z > model = create_model(data) 2023-01-26T12:39:05.7776380Z 2023-01-26T12:39:05.7776481Z tests/test_model.py:538: 2023-01-26T12:39:05.7776602Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7776713Z tests/test_model.py:453: in 2023-01-26T12:39:05.7776789Z ??? 2023-01-26T12:39:05.7776916Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7776998Z super().__init__(**data) 2023-01-26T12:39:05.7777159Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7777238Z ??? 2023-01-26T12:39:05.7777390Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7777464Z ??? 2023-01-26T12:39:05.7777642Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7777779Z ??? 2023-01-26T12:39:05.7777889Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7777992Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7778114Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7778206Z super().__init__(**data) 2023-01-26T12:39:05.7778365Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7778438Z ??? 2023-01-26T12:39:05.7778590Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7778648Z ??? 2023-01-26T12:39:05.7778828Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7778902Z ??? 2023-01-26T12:39:05.7779038Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7779199Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7779587Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7779699Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7779822Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7779829Z 2023-01-26T12:39:05.7780264Z self = 2023-01-26T12:39:05.7780642Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7780795Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7780881Z winmode = None 2023-01-26T12:39:05.7780889Z 2023-01-26T12:39:05.7781036Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7781134Z use_errno=False, 2023-01-26T12:39:05.7781238Z use_last_error=False, 2023-01-26T12:39:05.7781335Z winmode=None): 2023-01-26T12:39:05.7781413Z self._name = name 2023-01-26T12:39:05.7781514Z flags = self._func_flags_ 2023-01-26T12:39:05.7781599Z if use_errno: 2023-01-26T12:39:05.7781708Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7781798Z if use_last_error: 2023-01-26T12:39:05.7781915Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7782043Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7782179Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7782433Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7782602Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7782762Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7782838Z """ 2023-01-26T12:39:05.7782973Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7783104Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7783201Z if _os.name == "nt": 2023-01-26T12:39:05.7783288Z if winmode is not None: 2023-01-26T12:39:05.7783377Z mode = winmode 2023-01-26T12:39:05.7783454Z else: 2023-01-26T12:39:05.7783541Z import nt 2023-01-26T12:39:05.7783789Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7783967Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7784115Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7784241Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7784316Z 2023-01-26T12:39:05.7784424Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7784515Z _flags_ = flags 2023-01-26T12:39:05.7784633Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7784735Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7784805Z 2023-01-26T12:39:05.7784882Z if handle is None: 2023-01-26T12:39:05.7785082Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7785598Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7785608Z 2023-01-26T12:39:05.7785788Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7786066Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[proflocfile-None] _ 2023-01-26T12:39:05.7786076Z 2023-01-26T12:39:05.7786250Z input = None, input_field = 'proflocfile' 2023-01-26T12:39:05.7786388Z create_model = at 0x7f992fb77af0> 2023-01-26T12:39:05.7786526Z retrieve_field = at 0x7f992fb77b80> 2023-01-26T12:39:05.7786532Z 2023-01-26T12:39:05.7786645Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7786709Z "input", 2023-01-26T12:39:05.7786785Z [ 2023-01-26T12:39:05.7786906Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7787071Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7787166Z pytest.param( 2023-01-26T12:39:05.7787346Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7787423Z ), 2023-01-26T12:39:05.7787496Z ], 2023-01-26T12:39:05.7787555Z ) 2023-01-26T12:39:05.7787665Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7787798Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7787870Z [ 2023-01-26T12:39:05.7787963Z pytest.param( 2023-01-26T12:39:05.7788057Z "extforcefile", 2023-01-26T12:39:05.7788179Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7788275Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7788374Z id="extforcefile", 2023-01-26T12:39:05.7788446Z ), 2023-01-26T12:39:05.7788537Z pytest.param( 2023-01-26T12:39:05.7788631Z "restartfile", 2023-01-26T12:39:05.7788732Z lambda d: Restart(**d), 2023-01-26T12:39:05.7788838Z lambda m: m.restartfile, 2023-01-26T12:39:05.7788919Z id="restartfile", 2023-01-26T12:39:05.7788993Z ), 2023-01-26T12:39:05.7789084Z pytest.param( 2023-01-26T12:39:05.7789247Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7789321Z ), 2023-01-26T12:39:05.7789472Z pytest.param( 2023-01-26T12:39:05.7789634Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7789695Z ), 2023-01-26T12:39:05.7789785Z pytest.param( 2023-01-26T12:39:05.7789879Z "flowgeomfile", 2023-01-26T12:39:05.7789981Z lambda d: Output(**d), 2023-01-26T12:39:05.7790089Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7790189Z id="flowgeomfile", 2023-01-26T12:39:05.7790261Z ), 2023-01-26T12:39:05.7790338Z pytest.param( 2023-01-26T12:39:05.7790499Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7790573Z ), 2023-01-26T12:39:05.7790663Z pytest.param( 2023-01-26T12:39:05.7790823Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7790896Z ), 2023-01-26T12:39:05.7790987Z pytest.param( 2023-01-26T12:39:05.7791087Z "mapoutputtimevector", 2023-01-26T12:39:05.7791187Z lambda d: Output(**d), 2023-01-26T12:39:05.7791316Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7791432Z id="mapoutputtimevector", 2023-01-26T12:39:05.7791506Z ), 2023-01-26T12:39:05.7791596Z pytest.param( 2023-01-26T12:39:05.7791689Z "classmapfile", 2023-01-26T12:39:05.7791847Z lambda d: Output(**d), 2023-01-26T12:39:05.7791956Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7792055Z id="classmapfile", 2023-01-26T12:39:05.7792129Z ), 2023-01-26T12:39:05.7792218Z pytest.param( 2023-01-26T12:39:05.7792316Z "waterlevinifile", 2023-01-26T12:39:05.7792420Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7792523Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7792628Z id="waterlevinifile", 2023-01-26T12:39:05.7792704Z ), 2023-01-26T12:39:05.7792795Z pytest.param( 2023-01-26T12:39:05.7792891Z "oned2dlinkfile", 2023-01-26T12:39:05.7792997Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7793110Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7793196Z id="oned2dlinkfile", 2023-01-26T12:39:05.7793270Z ), 2023-01-26T12:39:05.7793361Z pytest.param( 2023-01-26T12:39:05.7793457Z "proflocfile", 2023-01-26T12:39:05.7793562Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7793667Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7793764Z id="proflocfile", 2023-01-26T12:39:05.7793825Z ), 2023-01-26T12:39:05.7793915Z pytest.param( 2023-01-26T12:39:05.7794007Z "profdeffile", 2023-01-26T12:39:05.7794109Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7794214Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7794310Z id="profdeffile", 2023-01-26T12:39:05.7794385Z ), 2023-01-26T12:39:05.7794462Z pytest.param( 2023-01-26T12:39:05.7794562Z "profdefxyzfile", 2023-01-26T12:39:05.7794665Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7794778Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7794879Z id="profdefxyzfile", 2023-01-26T12:39:05.7794955Z ), 2023-01-26T12:39:05.7795045Z pytest.param( 2023-01-26T12:39:05.7795123Z "manholefile", 2023-01-26T12:39:05.7795225Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7795330Z lambda m: m.manholefile, 2023-01-26T12:39:05.7795423Z id="manholefile", 2023-01-26T12:39:05.7795495Z ), 2023-01-26T12:39:05.7795585Z pytest.param( 2023-01-26T12:39:05.7795682Z "definitionfile", 2023-01-26T12:39:05.7795830Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7795946Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7796045Z id="definitionfile", 2023-01-26T12:39:05.7796120Z ), 2023-01-26T12:39:05.7796209Z pytest.param( 2023-01-26T12:39:05.7796294Z "areafile", 2023-01-26T12:39:05.7796405Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7796490Z lambda m: m.areafile, 2023-01-26T12:39:05.7796594Z id="definitionfile", 2023-01-26T12:39:05.7796667Z ), 2023-01-26T12:39:05.7796759Z pytest.param( 2023-01-26T12:39:05.7796855Z "substancefile", 2023-01-26T12:39:05.7796963Z lambda d: Processes(**d), 2023-01-26T12:39:05.7797074Z lambda m: m.substancefile, 2023-01-26T12:39:05.7797160Z id="substancefile", 2023-01-26T12:39:05.7797234Z ), 2023-01-26T12:39:05.7797325Z pytest.param( 2023-01-26T12:39:05.7797463Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7797577Z lambda d: Processes(**d), 2023-01-26T12:39:05.7797727Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7797864Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7797925Z ), 2023-01-26T12:39:05.7798016Z pytest.param( 2023-01-26T12:39:05.7798112Z "statisticsfile", 2023-01-26T12:39:05.7798273Z lambda d: Processes(**d), 2023-01-26T12:39:05.7798386Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7798486Z id="statisticsfile", 2023-01-26T12:39:05.7798559Z ), 2023-01-26T12:39:05.7798637Z pytest.param( 2023-01-26T12:39:05.7798748Z "particlesreleasefile", 2023-01-26T12:39:05.7798856Z lambda d: Particles(**d), 2023-01-26T12:39:05.7798986Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7799106Z id="particlesreleasefile", 2023-01-26T12:39:05.7799181Z ), 2023-01-26T12:39:05.7799271Z pytest.param( 2023-01-26T12:39:05.7799351Z "locationfile", 2023-01-26T12:39:05.7799446Z _create_boundary, 2023-01-26T12:39:05.7799553Z lambda m: m.locationfile, 2023-01-26T12:39:05.7799649Z id="locationfile", 2023-01-26T12:39:05.7799723Z ), 2023-01-26T12:39:05.7799815Z pytest.param( 2023-01-26T12:39:05.7799926Z "frictionvaluesfile", 2023-01-26T12:39:05.7800044Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7800155Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7800269Z id="frictionvaluesfile", 2023-01-26T12:39:05.7800344Z ), 2023-01-26T12:39:05.7800420Z ], 2023-01-26T12:39:05.7800496Z ) 2023-01-26T12:39:05.7800664Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7800805Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7800884Z input_field: str, 2023-01-26T12:39:05.7801006Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7801158Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7801229Z ): 2023-01-26T12:39:05.7801332Z data = {input_field: input} 2023-01-26T12:39:05.7801431Z > model = create_model(data) 2023-01-26T12:39:05.7801439Z 2023-01-26T12:39:05.7801538Z tests/test_model.py:538: 2023-01-26T12:39:05.7801643Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7801750Z tests/test_model.py:459: in 2023-01-26T12:39:05.7801822Z ??? 2023-01-26T12:39:05.7801943Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7802037Z super().__init__(**data) 2023-01-26T12:39:05.7802195Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7802266Z ??? 2023-01-26T12:39:05.7802452Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7802530Z ??? 2023-01-26T12:39:05.7802706Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7802777Z ??? 2023-01-26T12:39:05.7802898Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7803002Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7803122Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7803203Z super().__init__(**data) 2023-01-26T12:39:05.7803361Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7803432Z ??? 2023-01-26T12:39:05.7803581Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7803650Z ??? 2023-01-26T12:39:05.7803824Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7803899Z ??? 2023-01-26T12:39:05.7804022Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7804183Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7804575Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7804686Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7804807Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7804815Z 2023-01-26T12:39:05.7805264Z self = 2023-01-26T12:39:05.7805702Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7805856Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7805942Z winmode = None 2023-01-26T12:39:05.7805950Z 2023-01-26T12:39:05.7806081Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7806176Z use_errno=False, 2023-01-26T12:39:05.7806281Z use_last_error=False, 2023-01-26T12:39:05.7806377Z winmode=None): 2023-01-26T12:39:05.7806466Z self._name = name 2023-01-26T12:39:05.7806564Z flags = self._func_flags_ 2023-01-26T12:39:05.7806649Z if use_errno: 2023-01-26T12:39:05.7806758Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7806836Z if use_last_error: 2023-01-26T12:39:05.7806955Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7807087Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7807228Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7807448Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7807610Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7807770Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7807831Z """ 2023-01-26T12:39:05.7807973Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7808106Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7808199Z if _os.name == "nt": 2023-01-26T12:39:05.7808297Z if winmode is not None: 2023-01-26T12:39:05.7808387Z mode = winmode 2023-01-26T12:39:05.7808463Z else: 2023-01-26T12:39:05.7808536Z import nt 2023-01-26T12:39:05.7808674Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7808839Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7808982Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7809119Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7809189Z 2023-01-26T12:39:05.7809296Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7809383Z _flags_ = flags 2023-01-26T12:39:05.7809537Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7809642Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7809712Z 2023-01-26T12:39:05.7809802Z if handle is None: 2023-01-26T12:39:05.7809931Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7810452Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7810464Z 2023-01-26T12:39:05.7810641Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7810919Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[proflocfile-Path] _ 2023-01-26T12:39:05.7810926Z 2023-01-26T12:39:05.7811159Z input = PosixPath('some/path/extforce.file'), input_field = 'proflocfile' 2023-01-26T12:39:05.7811292Z create_model = at 0x7f992fb77af0> 2023-01-26T12:39:05.7811429Z retrieve_field = at 0x7f992fb77b80> 2023-01-26T12:39:05.7811439Z 2023-01-26T12:39:05.7811554Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7811633Z "input", 2023-01-26T12:39:05.7811709Z [ 2023-01-26T12:39:05.7811829Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7811990Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7812070Z pytest.param( 2023-01-26T12:39:05.7812249Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7812377Z ), 2023-01-26T12:39:05.7812451Z ], 2023-01-26T12:39:05.7812521Z ) 2023-01-26T12:39:05.7812634Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7812765Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7812825Z [ 2023-01-26T12:39:05.7812917Z pytest.param( 2023-01-26T12:39:05.7813014Z "extforcefile", 2023-01-26T12:39:05.7813136Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7813249Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7813349Z id="extforcefile", 2023-01-26T12:39:05.7813422Z ), 2023-01-26T12:39:05.7813500Z pytest.param( 2023-01-26T12:39:05.7813593Z "restartfile", 2023-01-26T12:39:05.7813695Z lambda d: Restart(**d), 2023-01-26T12:39:05.7813801Z lambda m: m.restartfile, 2023-01-26T12:39:05.7813897Z id="restartfile", 2023-01-26T12:39:05.7813973Z ), 2023-01-26T12:39:05.7814066Z pytest.param( 2023-01-26T12:39:05.7814217Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7814291Z ), 2023-01-26T12:39:05.7814381Z pytest.param( 2023-01-26T12:39:05.7814545Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7814620Z ), 2023-01-26T12:39:05.7814753Z pytest.param( 2023-01-26T12:39:05.7814848Z "flowgeomfile", 2023-01-26T12:39:05.7814937Z lambda d: Output(**d), 2023-01-26T12:39:05.7815046Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7815142Z id="flowgeomfile", 2023-01-26T12:39:05.7815215Z ), 2023-01-26T12:39:05.7815306Z pytest.param( 2023-01-26T12:39:05.7815472Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7815548Z ), 2023-01-26T12:39:05.7815624Z pytest.param( 2023-01-26T12:39:05.7815786Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7815858Z ), 2023-01-26T12:39:05.7815946Z pytest.param( 2023-01-26T12:39:05.7816054Z "mapoutputtimevector", 2023-01-26T12:39:05.7816155Z lambda d: Output(**d), 2023-01-26T12:39:05.7816283Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7816434Z id="mapoutputtimevector", 2023-01-26T12:39:05.7816511Z ), 2023-01-26T12:39:05.7816600Z pytest.param( 2023-01-26T12:39:05.7816694Z "classmapfile", 2023-01-26T12:39:05.7816791Z lambda d: Output(**d), 2023-01-26T12:39:05.7816897Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7816996Z id="classmapfile", 2023-01-26T12:39:05.7817056Z ), 2023-01-26T12:39:05.7817150Z pytest.param( 2023-01-26T12:39:05.7817249Z "waterlevinifile", 2023-01-26T12:39:05.7817353Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7817470Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7817574Z id="waterlevinifile", 2023-01-26T12:39:05.7817646Z ), 2023-01-26T12:39:05.7817724Z pytest.param( 2023-01-26T12:39:05.7817819Z "oned2dlinkfile", 2023-01-26T12:39:05.7817924Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7818039Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7818140Z id="oned2dlinkfile", 2023-01-26T12:39:05.7818214Z ), 2023-01-26T12:39:05.7818306Z pytest.param( 2023-01-26T12:39:05.7818386Z "proflocfile", 2023-01-26T12:39:05.7818491Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7818596Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7818692Z id="proflocfile", 2023-01-26T12:39:05.7818815Z ), 2023-01-26T12:39:05.7818906Z pytest.param( 2023-01-26T12:39:05.7818998Z "profdeffile", 2023-01-26T12:39:05.7819088Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7819193Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7819288Z id="profdeffile", 2023-01-26T12:39:05.7819362Z ), 2023-01-26T12:39:05.7819452Z pytest.param( 2023-01-26T12:39:05.7819549Z "profdefxyzfile", 2023-01-26T12:39:05.7819655Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7819758Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7819861Z id="profdefxyzfile", 2023-01-26T12:39:05.7819933Z ), 2023-01-26T12:39:05.7820023Z pytest.param( 2023-01-26T12:39:05.7820113Z "manholefile", 2023-01-26T12:39:05.7820214Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7820317Z lambda m: m.manholefile, 2023-01-26T12:39:05.7820400Z id="manholefile", 2023-01-26T12:39:05.7820472Z ), 2023-01-26T12:39:05.7820561Z pytest.param( 2023-01-26T12:39:05.7820656Z "definitionfile", 2023-01-26T12:39:05.7820768Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7820880Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7820980Z id="definitionfile", 2023-01-26T12:39:05.7821039Z ), 2023-01-26T12:39:05.7821129Z pytest.param( 2023-01-26T12:39:05.7821218Z "areafile", 2023-01-26T12:39:05.7821331Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7821427Z lambda m: m.areafile, 2023-01-26T12:39:05.7821525Z id="definitionfile", 2023-01-26T12:39:05.7821596Z ), 2023-01-26T12:39:05.7821672Z pytest.param( 2023-01-26T12:39:05.7821766Z "substancefile", 2023-01-26T12:39:05.7821877Z lambda d: Processes(**d), 2023-01-26T12:39:05.7821991Z lambda m: m.substancefile, 2023-01-26T12:39:05.7822090Z id="substancefile", 2023-01-26T12:39:05.7822162Z ), 2023-01-26T12:39:05.7822253Z pytest.param( 2023-01-26T12:39:05.7822376Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7822483Z lambda d: Processes(**d), 2023-01-26T12:39:05.7822631Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7822817Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7822895Z ), 2023-01-26T12:39:05.7822985Z pytest.param( 2023-01-26T12:39:05.7823081Z "statisticsfile", 2023-01-26T12:39:05.7823187Z lambda d: Processes(**d), 2023-01-26T12:39:05.7823285Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7823387Z id="statisticsfile", 2023-01-26T12:39:05.7823460Z ), 2023-01-26T12:39:05.7823550Z pytest.param( 2023-01-26T12:39:05.7823865Z "particlesreleasefile", 2023-01-26T12:39:05.7823979Z lambda d: Particles(**d), 2023-01-26T12:39:05.7824111Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7824217Z id="particlesreleasefile", 2023-01-26T12:39:05.7824292Z ), 2023-01-26T12:39:05.7824385Z pytest.param( 2023-01-26T12:39:05.7824480Z "locationfile", 2023-01-26T12:39:05.7824577Z _create_boundary, 2023-01-26T12:39:05.7824688Z lambda m: m.locationfile, 2023-01-26T12:39:05.7824787Z id="locationfile", 2023-01-26T12:39:05.7824847Z ), 2023-01-26T12:39:05.7824940Z pytest.param( 2023-01-26T12:39:05.7825047Z "frictionvaluesfile", 2023-01-26T12:39:05.7825164Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7825288Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7825401Z id="frictionvaluesfile", 2023-01-26T12:39:05.7825540Z ), 2023-01-26T12:39:05.7825601Z ], 2023-01-26T12:39:05.7825671Z ) 2023-01-26T12:39:05.7825841Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7825982Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7826076Z input_field: str, 2023-01-26T12:39:05.7826200Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7826350Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7826412Z ): 2023-01-26T12:39:05.7826517Z data = {input_field: input} 2023-01-26T12:39:05.7826617Z > model = create_model(data) 2023-01-26T12:39:05.7826625Z 2023-01-26T12:39:05.7826722Z tests/test_model.py:538: 2023-01-26T12:39:05.7826840Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7826948Z tests/test_model.py:459: in 2023-01-26T12:39:05.7827023Z ??? 2023-01-26T12:39:05.7827134Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7827232Z super().__init__(**data) 2023-01-26T12:39:05.7827392Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7827465Z ??? 2023-01-26T12:39:05.7827617Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7827693Z ??? 2023-01-26T12:39:05.7827873Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7827931Z ??? 2023-01-26T12:39:05.7828055Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7828157Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7828277Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7828370Z super().__init__(**data) 2023-01-26T12:39:05.7828524Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7828594Z ??? 2023-01-26T12:39:05.7828745Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7828803Z ??? 2023-01-26T12:39:05.7828977Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7829047Z ??? 2023-01-26T12:39:05.7829180Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7829339Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7829737Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7829845Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7830007Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7830030Z 2023-01-26T12:39:05.7830468Z self = 2023-01-26T12:39:05.7830847Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7831002Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7831095Z winmode = None 2023-01-26T12:39:05.7831102Z 2023-01-26T12:39:05.7831244Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7831341Z use_errno=False, 2023-01-26T12:39:05.7831442Z use_last_error=False, 2023-01-26T12:39:05.7831534Z winmode=None): 2023-01-26T12:39:05.7831610Z self._name = name 2023-01-26T12:39:05.7831709Z flags = self._func_flags_ 2023-01-26T12:39:05.7831797Z if use_errno: 2023-01-26T12:39:05.7831905Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7831995Z if use_last_error: 2023-01-26T12:39:05.7832111Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7832237Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7832361Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7832579Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7832793Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7832955Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7833031Z """ 2023-01-26T12:39:05.7833165Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7833297Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7833389Z if _os.name == "nt": 2023-01-26T12:39:05.7833480Z if winmode is not None: 2023-01-26T12:39:05.7833570Z mode = winmode 2023-01-26T12:39:05.7833646Z else: 2023-01-26T12:39:05.7833731Z import nt 2023-01-26T12:39:05.7833866Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7834033Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7834176Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7834302Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7834372Z 2023-01-26T12:39:05.7834472Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7834554Z _flags_ = flags 2023-01-26T12:39:05.7834667Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7834762Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7834827Z 2023-01-26T12:39:05.7834904Z if handle is None: 2023-01-26T12:39:05.7835027Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7835542Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7835550Z 2023-01-26T12:39:05.7835729Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7836008Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[proflocfile-Model] _ 2023-01-26T12:39:05.7836018Z 2023-01-26T12:39:05.7836283Z input = DiskOnlyFileModel(filepath=PosixPath('some/other/path/extforce.file')) 2023-01-26T12:39:05.7836423Z input_field = 'proflocfile' 2023-01-26T12:39:05.7836558Z create_model = at 0x7f992fb77af0> 2023-01-26T12:39:05.7836691Z retrieve_field = at 0x7f992fb77b80> 2023-01-26T12:39:05.7836698Z 2023-01-26T12:39:05.7836796Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7836873Z "input", 2023-01-26T12:39:05.7836945Z [ 2023-01-26T12:39:05.7837112Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7837274Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7837367Z pytest.param( 2023-01-26T12:39:05.7837546Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7837609Z ), 2023-01-26T12:39:05.7837680Z ], 2023-01-26T12:39:05.7837749Z ) 2023-01-26T12:39:05.7837861Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7837995Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7838068Z [ 2023-01-26T12:39:05.7838157Z pytest.param( 2023-01-26T12:39:05.7838240Z "extforcefile", 2023-01-26T12:39:05.7838362Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7838471Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7838569Z id="extforcefile", 2023-01-26T12:39:05.7838642Z ), 2023-01-26T12:39:05.7838735Z pytest.param( 2023-01-26T12:39:05.7838828Z "restartfile", 2023-01-26T12:39:05.7838916Z lambda d: Restart(**d), 2023-01-26T12:39:05.7839023Z lambda m: m.restartfile, 2023-01-26T12:39:05.7839118Z id="restartfile", 2023-01-26T12:39:05.7839191Z ), 2023-01-26T12:39:05.7839280Z pytest.param( 2023-01-26T12:39:05.7839447Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7839571Z ), 2023-01-26T12:39:05.7839649Z pytest.param( 2023-01-26T12:39:05.7839810Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7839883Z ), 2023-01-26T12:39:05.7839971Z pytest.param( 2023-01-26T12:39:05.7840065Z "flowgeomfile", 2023-01-26T12:39:05.7840166Z lambda d: Output(**d), 2023-01-26T12:39:05.7840272Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7840360Z id="flowgeomfile", 2023-01-26T12:39:05.7840434Z ), 2023-01-26T12:39:05.7840524Z pytest.param( 2023-01-26T12:39:05.7840685Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7840758Z ), 2023-01-26T12:39:05.7840849Z pytest.param( 2023-01-26T12:39:05.7841009Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7841071Z ), 2023-01-26T12:39:05.7841160Z pytest.param( 2023-01-26T12:39:05.7841270Z "mapoutputtimevector", 2023-01-26T12:39:05.7841371Z lambda d: Output(**d), 2023-01-26T12:39:05.7841500Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7841615Z id="mapoutputtimevector", 2023-01-26T12:39:05.7841687Z ), 2023-01-26T12:39:05.7841765Z pytest.param( 2023-01-26T12:39:05.7841857Z "classmapfile", 2023-01-26T12:39:05.7841958Z lambda d: Output(**d), 2023-01-26T12:39:05.7842066Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7842163Z id="classmapfile", 2023-01-26T12:39:05.7842235Z ), 2023-01-26T12:39:05.7842327Z pytest.param( 2023-01-26T12:39:05.7842425Z "waterlevinifile", 2023-01-26T12:39:05.7842519Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7842636Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7842740Z id="waterlevinifile", 2023-01-26T12:39:05.7842813Z ), 2023-01-26T12:39:05.7842903Z pytest.param( 2023-01-26T12:39:05.7843001Z "oned2dlinkfile", 2023-01-26T12:39:05.7843104Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7843203Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7843302Z id="oned2dlinkfile", 2023-01-26T12:39:05.7843374Z ), 2023-01-26T12:39:05.7843537Z pytest.param( 2023-01-26T12:39:05.7843635Z "proflocfile", 2023-01-26T12:39:05.7843737Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7843840Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7843923Z id="proflocfile", 2023-01-26T12:39:05.7843996Z ), 2023-01-26T12:39:05.7844086Z pytest.param( 2023-01-26T12:39:05.7844179Z "profdeffile", 2023-01-26T12:39:05.7844283Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7844389Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7844482Z id="profdeffile", 2023-01-26T12:39:05.7844543Z ), 2023-01-26T12:39:05.7844633Z pytest.param( 2023-01-26T12:39:05.7844734Z "profdefxyzfile", 2023-01-26T12:39:05.7844839Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7844955Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7845058Z id="profdefxyzfile", 2023-01-26T12:39:05.7845136Z ), 2023-01-26T12:39:05.7845214Z pytest.param( 2023-01-26T12:39:05.7845306Z "manholefile", 2023-01-26T12:39:05.7845408Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7845511Z lambda m: m.manholefile, 2023-01-26T12:39:05.7845605Z id="manholefile", 2023-01-26T12:39:05.7845678Z ), 2023-01-26T12:39:05.7845767Z pytest.param( 2023-01-26T12:39:05.7845903Z "definitionfile", 2023-01-26T12:39:05.7846017Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7846128Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7846228Z id="definitionfile", 2023-01-26T12:39:05.7846302Z ), 2023-01-26T12:39:05.7846391Z pytest.param( 2023-01-26T12:39:05.7846475Z "areafile", 2023-01-26T12:39:05.7846573Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7846671Z lambda m: m.areafile, 2023-01-26T12:39:05.7846771Z id="definitionfile", 2023-01-26T12:39:05.7846844Z ), 2023-01-26T12:39:05.7846935Z pytest.param( 2023-01-26T12:39:05.7847029Z "substancefile", 2023-01-26T12:39:05.7847137Z lambda d: Processes(**d), 2023-01-26T12:39:05.7847235Z lambda m: m.substancefile, 2023-01-26T12:39:05.7847334Z id="substancefile", 2023-01-26T12:39:05.7847407Z ), 2023-01-26T12:39:05.7847499Z pytest.param( 2023-01-26T12:39:05.7847635Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7847742Z lambda d: Processes(**d), 2023-01-26T12:39:05.7847891Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7848017Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7848089Z ), 2023-01-26T12:39:05.7848177Z pytest.param( 2023-01-26T12:39:05.7848272Z "statisticsfile", 2023-01-26T12:39:05.7848381Z lambda d: Processes(**d), 2023-01-26T12:39:05.7848492Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7848591Z id="statisticsfile", 2023-01-26T12:39:05.7848651Z ), 2023-01-26T12:39:05.7848742Z pytest.param( 2023-01-26T12:39:05.7848853Z "particlesreleasefile", 2023-01-26T12:39:05.7848959Z lambda d: Particles(**d), 2023-01-26T12:39:05.7849089Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7849209Z id="particlesreleasefile", 2023-01-26T12:39:05.7849281Z ), 2023-01-26T12:39:05.7849359Z pytest.param( 2023-01-26T12:39:05.7849451Z "locationfile", 2023-01-26T12:39:05.7849544Z _create_boundary, 2023-01-26T12:39:05.7849650Z lambda m: m.locationfile, 2023-01-26T12:39:05.7849747Z id="locationfile", 2023-01-26T12:39:05.7849819Z ), 2023-01-26T12:39:05.7849965Z pytest.param( 2023-01-26T12:39:05.7850061Z "frictionvaluesfile", 2023-01-26T12:39:05.7850179Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7850300Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7850411Z id="frictionvaluesfile", 2023-01-26T12:39:05.7850484Z ), 2023-01-26T12:39:05.7850557Z ], 2023-01-26T12:39:05.7850628Z ) 2023-01-26T12:39:05.7850783Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7850923Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7851014Z input_field: str, 2023-01-26T12:39:05.7851137Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7851287Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7851358Z ): 2023-01-26T12:39:05.7851460Z data = {input_field: input} 2023-01-26T12:39:05.7851547Z > model = create_model(data) 2023-01-26T12:39:05.7851565Z 2023-01-26T12:39:05.7851651Z tests/test_model.py:538: 2023-01-26T12:39:05.7851768Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7851875Z tests/test_model.py:459: in 2023-01-26T12:39:05.7851945Z ??? 2023-01-26T12:39:05.7852065Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7852160Z super().__init__(**data) 2023-01-26T12:39:05.7852319Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7852430Z ??? 2023-01-26T12:39:05.7852579Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7852649Z ??? 2023-01-26T12:39:05.7852822Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7852891Z ??? 2023-01-26T12:39:05.7853013Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7853116Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7853223Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7853320Z super().__init__(**data) 2023-01-26T12:39:05.7853476Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7853546Z ??? 2023-01-26T12:39:05.7853695Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7853766Z ??? 2023-01-26T12:39:05.7853938Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7853996Z ??? 2023-01-26T12:39:05.7854131Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7854293Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7854678Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7854786Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7854906Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7854913Z 2023-01-26T12:39:05.7855361Z self = 2023-01-26T12:39:05.7855740Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7855892Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7855963Z winmode = None 2023-01-26T12:39:05.7855969Z 2023-01-26T12:39:05.7856116Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7856220Z use_errno=False, 2023-01-26T12:39:05.7856323Z use_last_error=False, 2023-01-26T12:39:05.7856419Z winmode=None): 2023-01-26T12:39:05.7856508Z self._name = name 2023-01-26T12:39:05.7856605Z flags = self._func_flags_ 2023-01-26T12:39:05.7856677Z if use_errno: 2023-01-26T12:39:05.7856786Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7856875Z if use_last_error: 2023-01-26T12:39:05.7857041Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7857173Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7857312Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7857533Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7857682Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7857838Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7857917Z """ 2023-01-26T12:39:05.7858053Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7858183Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7858275Z if _os.name == "nt": 2023-01-26T12:39:05.7858376Z if winmode is not None: 2023-01-26T12:39:05.7858465Z mode = winmode 2023-01-26T12:39:05.7858529Z else: 2023-01-26T12:39:05.7858616Z import nt 2023-01-26T12:39:05.7858753Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7858921Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7859065Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7859201Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7859270Z 2023-01-26T12:39:05.7859365Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7859508Z _flags_ = flags 2023-01-26T12:39:05.7859621Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7859721Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7859790Z 2023-01-26T12:39:05.7859880Z if handle is None: 2023-01-26T12:39:05.7860006Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7860508Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7860531Z 2023-01-26T12:39:05.7860698Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7860978Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[profdeffile-None] _ 2023-01-26T12:39:05.7860985Z 2023-01-26T12:39:05.7861157Z input = None, input_field = 'profdeffile' 2023-01-26T12:39:05.7861290Z create_model = at 0x7f992fb77c10> 2023-01-26T12:39:05.7861427Z retrieve_field = at 0x7f992fb77ca0> 2023-01-26T12:39:05.7861435Z 2023-01-26T12:39:05.7861546Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7861623Z "input", 2023-01-26T12:39:05.7861694Z [ 2023-01-26T12:39:05.7861797Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7861955Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7862048Z pytest.param( 2023-01-26T12:39:05.7862226Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7862301Z ), 2023-01-26T12:39:05.7862373Z ], 2023-01-26T12:39:05.7862443Z ) 2023-01-26T12:39:05.7862539Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7862670Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7862742Z [ 2023-01-26T12:39:05.7862834Z pytest.param( 2023-01-26T12:39:05.7862928Z "extforcefile", 2023-01-26T12:39:05.7863051Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7863163Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7863249Z id="extforcefile", 2023-01-26T12:39:05.7863323Z ), 2023-01-26T12:39:05.7863412Z pytest.param( 2023-01-26T12:39:05.7863506Z "restartfile", 2023-01-26T12:39:05.7863607Z lambda d: Restart(**d), 2023-01-26T12:39:05.7863836Z lambda m: m.restartfile, 2023-01-26T12:39:05.7863940Z id="restartfile", 2023-01-26T12:39:05.7864067Z ), 2023-01-26T12:39:05.7864163Z pytest.param( 2023-01-26T12:39:05.7864328Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7864401Z ), 2023-01-26T12:39:05.7864491Z pytest.param( 2023-01-26T12:39:05.7864649Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7864723Z ), 2023-01-26T12:39:05.7864803Z pytest.param( 2023-01-26T12:39:05.7864898Z "flowgeomfile", 2023-01-26T12:39:05.7865003Z lambda d: Output(**d), 2023-01-26T12:39:05.7865114Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7865212Z id="flowgeomfile", 2023-01-26T12:39:05.7865286Z ), 2023-01-26T12:39:05.7865377Z pytest.param( 2023-01-26T12:39:05.7865525Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7865599Z ), 2023-01-26T12:39:05.7865693Z pytest.param( 2023-01-26T12:39:05.7865854Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7865931Z ), 2023-01-26T12:39:05.7866021Z pytest.param( 2023-01-26T12:39:05.7866134Z "mapoutputtimevector", 2023-01-26T12:39:05.7866237Z lambda d: Output(**d), 2023-01-26T12:39:05.7866353Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7866529Z id="mapoutputtimevector", 2023-01-26T12:39:05.7866602Z ), 2023-01-26T12:39:05.7866692Z pytest.param( 2023-01-26T12:39:05.7866785Z "classmapfile", 2023-01-26T12:39:05.7866883Z lambda d: Output(**d), 2023-01-26T12:39:05.7866989Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7867073Z id="classmapfile", 2023-01-26T12:39:05.7867146Z ), 2023-01-26T12:39:05.7867236Z pytest.param( 2023-01-26T12:39:05.7867337Z "waterlevinifile", 2023-01-26T12:39:05.7867443Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7867561Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7867663Z id="waterlevinifile", 2023-01-26T12:39:05.7867726Z ), 2023-01-26T12:39:05.7867818Z pytest.param( 2023-01-26T12:39:05.7867917Z "oned2dlinkfile", 2023-01-26T12:39:05.7868024Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7868142Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7868244Z id="oned2dlinkfile", 2023-01-26T12:39:05.7868318Z ), 2023-01-26T12:39:05.7868395Z pytest.param( 2023-01-26T12:39:05.7868490Z "proflocfile", 2023-01-26T12:39:05.7868593Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7868701Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7868796Z id="proflocfile", 2023-01-26T12:39:05.7868871Z ), 2023-01-26T12:39:05.7868960Z pytest.param( 2023-01-26T12:39:05.7869040Z "profdeffile", 2023-01-26T12:39:05.7869144Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7869249Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7869346Z id="profdeffile", 2023-01-26T12:39:05.7869421Z ), 2023-01-26T12:39:05.7869511Z pytest.param( 2023-01-26T12:39:05.7869609Z "profdefxyzfile", 2023-01-26T12:39:05.7869699Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7869814Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7869915Z id="profdefxyzfile", 2023-01-26T12:39:05.7869988Z ), 2023-01-26T12:39:05.7870078Z pytest.param( 2023-01-26T12:39:05.7870168Z "manholefile", 2023-01-26T12:39:05.7870268Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7870358Z lambda m: m.manholefile, 2023-01-26T12:39:05.7870497Z id="manholefile", 2023-01-26T12:39:05.7870574Z ), 2023-01-26T12:39:05.7870664Z pytest.param( 2023-01-26T12:39:05.7870759Z "definitionfile", 2023-01-26T12:39:05.7870873Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7870986Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7871073Z id="definitionfile", 2023-01-26T12:39:05.7871147Z ), 2023-01-26T12:39:05.7871240Z pytest.param( 2023-01-26T12:39:05.7871325Z "areafile", 2023-01-26T12:39:05.7871436Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7871533Z lambda m: m.areafile, 2023-01-26T12:39:05.7871631Z id="definitionfile", 2023-01-26T12:39:05.7871692Z ), 2023-01-26T12:39:05.7871783Z pytest.param( 2023-01-26T12:39:05.7871880Z "substancefile", 2023-01-26T12:39:05.7871989Z lambda d: Processes(**d), 2023-01-26T12:39:05.7872103Z lambda m: m.substancefile, 2023-01-26T12:39:05.7872205Z id="substancefile", 2023-01-26T12:39:05.7872280Z ), 2023-01-26T12:39:05.7872357Z pytest.param( 2023-01-26T12:39:05.7872493Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7872600Z lambda d: Processes(**d), 2023-01-26T12:39:05.7872747Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7872939Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7873015Z ), 2023-01-26T12:39:05.7873105Z pytest.param( 2023-01-26T12:39:05.7873189Z "statisticsfile", 2023-01-26T12:39:05.7873296Z lambda d: Processes(**d), 2023-01-26T12:39:05.7873407Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7873507Z id="statisticsfile", 2023-01-26T12:39:05.7873580Z ), 2023-01-26T12:39:05.7873669Z pytest.param( 2023-01-26T12:39:05.7873780Z "particlesreleasefile", 2023-01-26T12:39:05.7873875Z lambda d: Particles(**d), 2023-01-26T12:39:05.7874002Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7874118Z id="particlesreleasefile", 2023-01-26T12:39:05.7874189Z ), 2023-01-26T12:39:05.7874278Z pytest.param( 2023-01-26T12:39:05.7874371Z "locationfile", 2023-01-26T12:39:05.7874467Z _create_boundary, 2023-01-26T12:39:05.7874560Z lambda m: m.locationfile, 2023-01-26T12:39:05.7874657Z id="locationfile", 2023-01-26T12:39:05.7874731Z ), 2023-01-26T12:39:05.7874822Z pytest.param( 2023-01-26T12:39:05.7874926Z "frictionvaluesfile", 2023-01-26T12:39:05.7875041Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7875163Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7875261Z id="frictionvaluesfile", 2023-01-26T12:39:05.7875335Z ), 2023-01-26T12:39:05.7875409Z ], 2023-01-26T12:39:05.7875480Z ) 2023-01-26T12:39:05.7875648Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7875786Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7875878Z input_field: str, 2023-01-26T12:39:05.7875986Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7876173Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7876251Z ): 2023-01-26T12:39:05.7876357Z data = {input_field: input} 2023-01-26T12:39:05.7876460Z > model = create_model(data) 2023-01-26T12:39:05.7876468Z 2023-01-26T12:39:05.7876568Z tests/test_model.py:538: 2023-01-26T12:39:05.7876691Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7876798Z tests/test_model.py:465: in 2023-01-26T12:39:05.7876858Z ??? 2023-01-26T12:39:05.7877043Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7877145Z super().__init__(**data) 2023-01-26T12:39:05.7877312Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7877386Z ??? 2023-01-26T12:39:05.7877538Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7877609Z ??? 2023-01-26T12:39:05.7877772Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7877845Z ??? 2023-01-26T12:39:05.7877968Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7878072Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7878192Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7878284Z super().__init__(**data) 2023-01-26T12:39:05.7878439Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7878497Z ??? 2023-01-26T12:39:05.7878645Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7878718Z ??? 2023-01-26T12:39:05.7878895Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7878970Z ??? 2023-01-26T12:39:05.7879105Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7879267Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7879645Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7879756Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7879936Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7879944Z 2023-01-26T12:39:05.7880393Z self = 2023-01-26T12:39:05.7880772Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7880927Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7881049Z winmode = None 2023-01-26T12:39:05.7881056Z 2023-01-26T12:39:05.7881200Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7881299Z use_errno=False, 2023-01-26T12:39:05.7881388Z use_last_error=False, 2023-01-26T12:39:05.7881483Z winmode=None): 2023-01-26T12:39:05.7881571Z self._name = name 2023-01-26T12:39:05.7881673Z flags = self._func_flags_ 2023-01-26T12:39:05.7881758Z if use_errno: 2023-01-26T12:39:05.7881865Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7881957Z if use_last_error: 2023-01-26T12:39:05.7882062Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7882192Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7882329Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7882543Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7882704Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7882864Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7882940Z """ 2023-01-26T12:39:05.7883074Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7883192Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7883286Z if _os.name == "nt": 2023-01-26T12:39:05.7883389Z if winmode is not None: 2023-01-26T12:39:05.7883478Z mode = winmode 2023-01-26T12:39:05.7883553Z else: 2023-01-26T12:39:05.7883639Z import nt 2023-01-26T12:39:05.7883771Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7883923Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7884066Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7884264Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7884337Z 2023-01-26T12:39:05.7884444Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7884531Z _flags_ = flags 2023-01-26T12:39:05.7884645Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7884732Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7884802Z 2023-01-26T12:39:05.7884891Z if handle is None: 2023-01-26T12:39:05.7885019Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7885539Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7885548Z 2023-01-26T12:39:05.7885726Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7886005Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[profdeffile-Path] _ 2023-01-26T12:39:05.7886012Z 2023-01-26T12:39:05.7886261Z input = PosixPath('some/path/extforce.file'), input_field = 'profdeffile' 2023-01-26T12:39:05.7886392Z create_model = at 0x7f992fb77c10> 2023-01-26T12:39:05.7886516Z retrieve_field = at 0x7f992fb77ca0> 2023-01-26T12:39:05.7886522Z 2023-01-26T12:39:05.7886633Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7886711Z "input", 2023-01-26T12:39:05.7886786Z [ 2023-01-26T12:39:05.7886902Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7887120Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7887216Z pytest.param( 2023-01-26T12:39:05.7887380Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7887455Z ), 2023-01-26T12:39:05.7887527Z ], 2023-01-26T12:39:05.7887597Z ) 2023-01-26T12:39:05.7887706Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7887840Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7887913Z [ 2023-01-26T12:39:05.7887992Z pytest.param( 2023-01-26T12:39:05.7888087Z "extforcefile", 2023-01-26T12:39:05.7888209Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7888319Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7888421Z id="extforcefile", 2023-01-26T12:39:05.7888495Z ), 2023-01-26T12:39:05.7888588Z pytest.param( 2023-01-26T12:39:05.7888671Z "restartfile", 2023-01-26T12:39:05.7888773Z lambda d: Restart(**d), 2023-01-26T12:39:05.7888880Z lambda m: m.restartfile, 2023-01-26T12:39:05.7888977Z id="restartfile", 2023-01-26T12:39:05.7889052Z ), 2023-01-26T12:39:05.7889144Z pytest.param( 2023-01-26T12:39:05.7889313Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7889374Z ), 2023-01-26T12:39:05.7889469Z pytest.param( 2023-01-26T12:39:05.7889636Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7889711Z ), 2023-01-26T12:39:05.7889802Z pytest.param( 2023-01-26T12:39:05.7889895Z "flowgeomfile", 2023-01-26T12:39:05.7889996Z lambda d: Output(**d), 2023-01-26T12:39:05.7890105Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7890192Z id="flowgeomfile", 2023-01-26T12:39:05.7890264Z ), 2023-01-26T12:39:05.7890354Z pytest.param( 2023-01-26T12:39:05.7890515Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7890588Z ), 2023-01-26T12:39:05.7890678Z pytest.param( 2023-01-26T12:39:05.7890841Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7890903Z ), 2023-01-26T12:39:05.7890991Z pytest.param( 2023-01-26T12:39:05.7891153Z "mapoutputtimevector", 2023-01-26T12:39:05.7891256Z lambda d: Output(**d), 2023-01-26T12:39:05.7891384Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7891503Z id="mapoutputtimevector", 2023-01-26T12:39:05.7891576Z ), 2023-01-26T12:39:05.7891653Z pytest.param( 2023-01-26T12:39:05.7891748Z "classmapfile", 2023-01-26T12:39:05.7891850Z lambda d: Output(**d), 2023-01-26T12:39:05.7891957Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7892055Z id="classmapfile", 2023-01-26T12:39:05.7892128Z ), 2023-01-26T12:39:05.7892217Z pytest.param( 2023-01-26T12:39:05.7892303Z "waterlevinifile", 2023-01-26T12:39:05.7892408Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7892525Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7892631Z id="waterlevinifile", 2023-01-26T12:39:05.7892707Z ), 2023-01-26T12:39:05.7892799Z pytest.param( 2023-01-26T12:39:05.7892895Z "oned2dlinkfile", 2023-01-26T12:39:05.7892988Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7893100Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7893202Z id="oned2dlinkfile", 2023-01-26T12:39:05.7893277Z ), 2023-01-26T12:39:05.7893369Z pytest.param( 2023-01-26T12:39:05.7893557Z "proflocfile", 2023-01-26T12:39:05.7893664Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7893756Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7893853Z id="proflocfile", 2023-01-26T12:39:05.7893930Z ), 2023-01-26T12:39:05.7894024Z pytest.param( 2023-01-26T12:39:05.7894119Z "profdeffile", 2023-01-26T12:39:05.7894225Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7894333Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7894416Z id="profdeffile", 2023-01-26T12:39:05.7894492Z ), 2023-01-26T12:39:05.7894586Z pytest.param( 2023-01-26T12:39:05.7894684Z "profdefxyzfile", 2023-01-26T12:39:05.7894787Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7894907Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7895011Z id="profdefxyzfile", 2023-01-26T12:39:05.7895074Z ), 2023-01-26T12:39:05.7895166Z pytest.param( 2023-01-26T12:39:05.7895260Z "manholefile", 2023-01-26T12:39:05.7895365Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7895466Z lambda m: m.manholefile, 2023-01-26T12:39:05.7895559Z id="manholefile", 2023-01-26T12:39:05.7895633Z ), 2023-01-26T12:39:05.7895710Z pytest.param( 2023-01-26T12:39:05.7895805Z "definitionfile", 2023-01-26T12:39:05.7895918Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7896032Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7896131Z id="definitionfile", 2023-01-26T12:39:05.7896203Z ), 2023-01-26T12:39:05.7896292Z pytest.param( 2023-01-26T12:39:05.7896366Z "areafile", 2023-01-26T12:39:05.7896477Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7896575Z lambda m: m.areafile, 2023-01-26T12:39:05.7896676Z id="definitionfile", 2023-01-26T12:39:05.7896750Z ), 2023-01-26T12:39:05.7896839Z pytest.param( 2023-01-26T12:39:05.7896931Z "substancefile", 2023-01-26T12:39:05.7897026Z lambda d: Processes(**d), 2023-01-26T12:39:05.7897135Z lambda m: m.substancefile, 2023-01-26T12:39:05.7897233Z id="substancefile", 2023-01-26T12:39:05.7897307Z ), 2023-01-26T12:39:05.7897398Z pytest.param( 2023-01-26T12:39:05.7897586Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7897701Z lambda d: Processes(**d), 2023-01-26T12:39:05.7897837Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7897975Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7898048Z ), 2023-01-26T12:39:05.7898138Z pytest.param( 2023-01-26T12:39:05.7898237Z "statisticsfile", 2023-01-26T12:39:05.7898346Z lambda d: Processes(**d), 2023-01-26T12:39:05.7898458Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7898545Z id="statisticsfile", 2023-01-26T12:39:05.7898616Z ), 2023-01-26T12:39:05.7898706Z pytest.param( 2023-01-26T12:39:05.7898818Z "particlesreleasefile", 2023-01-26T12:39:05.7898925Z lambda d: Particles(**d), 2023-01-26T12:39:05.7899054Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7899174Z id="particlesreleasefile", 2023-01-26T12:39:05.7899236Z ), 2023-01-26T12:39:05.7899325Z pytest.param( 2023-01-26T12:39:05.7899418Z "locationfile", 2023-01-26T12:39:05.7899511Z _create_boundary, 2023-01-26T12:39:05.7899621Z lambda m: m.locationfile, 2023-01-26T12:39:05.7899718Z id="locationfile", 2023-01-26T12:39:05.7899792Z ), 2023-01-26T12:39:05.7899869Z pytest.param( 2023-01-26T12:39:05.7900034Z "frictionvaluesfile", 2023-01-26T12:39:05.7900149Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7900273Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7900384Z id="frictionvaluesfile", 2023-01-26T12:39:05.7900456Z ), 2023-01-26T12:39:05.7900529Z ], 2023-01-26T12:39:05.7900589Z ) 2023-01-26T12:39:05.7900754Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7900895Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7900989Z input_field: str, 2023-01-26T12:39:05.7901111Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7901261Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7901332Z ): 2023-01-26T12:39:05.7901423Z data = {input_field: input} 2023-01-26T12:39:05.7901521Z > model = create_model(data) 2023-01-26T12:39:05.7901528Z 2023-01-26T12:39:05.7901627Z tests/test_model.py:538: 2023-01-26T12:39:05.7901744Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7901852Z tests/test_model.py:465: in 2023-01-26T12:39:05.7901922Z ??? 2023-01-26T12:39:05.7902044Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7902137Z super().__init__(**data) 2023-01-26T12:39:05.7902284Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7902355Z ??? 2023-01-26T12:39:05.7902509Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7902580Z ??? 2023-01-26T12:39:05.7902754Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7902825Z ??? 2023-01-26T12:39:05.7902947Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7903036Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7903155Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7903249Z super().__init__(**data) 2023-01-26T12:39:05.7903407Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7903479Z ??? 2023-01-26T12:39:05.7903727Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7903805Z ??? 2023-01-26T12:39:05.7903966Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7904039Z ??? 2023-01-26T12:39:05.7904174Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7904335Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7904790Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7904904Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7905026Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7905033Z 2023-01-26T12:39:05.7905484Z self = 2023-01-26T12:39:05.7905866Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7906003Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7906086Z winmode = None 2023-01-26T12:39:05.7906097Z 2023-01-26T12:39:05.7906239Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7906336Z use_errno=False, 2023-01-26T12:39:05.7906440Z use_last_error=False, 2023-01-26T12:39:05.7906539Z winmode=None): 2023-01-26T12:39:05.7906631Z self._name = name 2023-01-26T12:39:05.7906716Z flags = self._func_flags_ 2023-01-26T12:39:05.7906804Z if use_errno: 2023-01-26T12:39:05.7906913Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7907007Z if use_last_error: 2023-01-26T12:39:05.7907127Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7907318Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7907456Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7907674Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7907822Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7907980Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7908057Z """ 2023-01-26T12:39:05.7908196Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7908328Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7908421Z if _os.name == "nt": 2023-01-26T12:39:05.7908523Z if winmode is not None: 2023-01-26T12:39:05.7908600Z mode = winmode 2023-01-26T12:39:05.7908674Z else: 2023-01-26T12:39:05.7908760Z import nt 2023-01-26T12:39:05.7908901Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7909070Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7909213Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7909351Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7909408Z 2023-01-26T12:39:05.7909513Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7909600Z _flags_ = flags 2023-01-26T12:39:05.7909718Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7909818Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7909888Z 2023-01-26T12:39:05.7909978Z if handle is None: 2023-01-26T12:39:05.7910093Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7910604Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7910615Z 2023-01-26T12:39:05.7910794Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7911071Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[profdeffile-Model] _ 2023-01-26T12:39:05.7911078Z 2023-01-26T12:39:05.7911342Z input = DiskOnlyFileModel(filepath=PosixPath('some/other/path/extforce.file')) 2023-01-26T12:39:05.7911482Z input_field = 'profdeffile' 2023-01-26T12:39:05.7911620Z create_model = at 0x7f992fb77c10> 2023-01-26T12:39:05.7911811Z retrieve_field = at 0x7f992fb77ca0> 2023-01-26T12:39:05.7911820Z 2023-01-26T12:39:05.7911935Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7911999Z "input", 2023-01-26T12:39:05.7912073Z [ 2023-01-26T12:39:05.7912189Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7912347Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7912440Z pytest.param( 2023-01-26T12:39:05.7912620Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7912693Z ), 2023-01-26T12:39:05.7912767Z ], 2023-01-26T12:39:05.7912825Z ) 2023-01-26T12:39:05.7912933Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7913064Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7913136Z [ 2023-01-26T12:39:05.7913227Z pytest.param( 2023-01-26T12:39:05.7913323Z "extforcefile", 2023-01-26T12:39:05.7913436Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7913547Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7913645Z id="extforcefile", 2023-01-26T12:39:05.7913719Z ), 2023-01-26T12:39:05.7913808Z pytest.param( 2023-01-26T12:39:05.7913901Z "restartfile", 2023-01-26T12:39:05.7914002Z lambda d: Restart(**d), 2023-01-26T12:39:05.7914107Z lambda m: m.restartfile, 2023-01-26T12:39:05.7914247Z id="restartfile", 2023-01-26T12:39:05.7914322Z ), 2023-01-26T12:39:05.7914414Z pytest.param( 2023-01-26T12:39:05.7914578Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7914651Z ), 2023-01-26T12:39:05.7914742Z pytest.param( 2023-01-26T12:39:05.7914902Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7914961Z ), 2023-01-26T12:39:05.7915056Z pytest.param( 2023-01-26T12:39:05.7915153Z "flowgeomfile", 2023-01-26T12:39:05.7915254Z lambda d: Output(**d), 2023-01-26T12:39:05.7915363Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7915462Z id="flowgeomfile", 2023-01-26T12:39:05.7915534Z ), 2023-01-26T12:39:05.7915610Z pytest.param( 2023-01-26T12:39:05.7915770Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7915846Z ), 2023-01-26T12:39:05.7915935Z pytest.param( 2023-01-26T12:39:05.7916094Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7916168Z ), 2023-01-26T12:39:05.7916256Z pytest.param( 2023-01-26T12:39:05.7916352Z "mapoutputtimevector", 2023-01-26T12:39:05.7916452Z lambda d: Output(**d), 2023-01-26T12:39:05.7916582Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7916697Z id="mapoutputtimevector", 2023-01-26T12:39:05.7916769Z ), 2023-01-26T12:39:05.7916858Z pytest.param( 2023-01-26T12:39:05.7916952Z "classmapfile", 2023-01-26T12:39:05.7917039Z lambda d: Output(**d), 2023-01-26T12:39:05.7917145Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7917242Z id="classmapfile", 2023-01-26T12:39:05.7917315Z ), 2023-01-26T12:39:05.7917404Z pytest.param( 2023-01-26T12:39:05.7917504Z "waterlevinifile", 2023-01-26T12:39:05.7917610Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7917713Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7917816Z id="waterlevinifile", 2023-01-26T12:39:05.7917890Z ), 2023-01-26T12:39:05.7917979Z pytest.param( 2023-01-26T12:39:05.7918077Z "oned2dlinkfile", 2023-01-26T12:39:05.7918231Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7918348Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7918435Z id="oned2dlinkfile", 2023-01-26T12:39:05.7918508Z ), 2023-01-26T12:39:05.7918598Z pytest.param( 2023-01-26T12:39:05.7918691Z "proflocfile", 2023-01-26T12:39:05.7918796Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7918901Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7918999Z id="proflocfile", 2023-01-26T12:39:05.7919061Z ), 2023-01-26T12:39:05.7919151Z pytest.param( 2023-01-26T12:39:05.7919242Z "profdeffile", 2023-01-26T12:39:05.7919345Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7919447Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7919541Z id="profdeffile", 2023-01-26T12:39:05.7919615Z ), 2023-01-26T12:39:05.7919692Z pytest.param( 2023-01-26T12:39:05.7919791Z "profdefxyzfile", 2023-01-26T12:39:05.7919894Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7920011Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7920113Z id="profdefxyzfile", 2023-01-26T12:39:05.7920186Z ), 2023-01-26T12:39:05.7920275Z pytest.param( 2023-01-26T12:39:05.7920353Z "manholefile", 2023-01-26T12:39:05.7920454Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7920611Z lambda m: m.manholefile, 2023-01-26T12:39:05.7920705Z id="manholefile", 2023-01-26T12:39:05.7920778Z ), 2023-01-26T12:39:05.7920869Z pytest.param( 2023-01-26T12:39:05.7920964Z "definitionfile", 2023-01-26T12:39:05.7921065Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7921175Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7921274Z id="definitionfile", 2023-01-26T12:39:05.7921347Z ), 2023-01-26T12:39:05.7921439Z pytest.param( 2023-01-26T12:39:05.7921526Z "areafile", 2023-01-26T12:39:05.7921636Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7921722Z lambda m: m.areafile, 2023-01-26T12:39:05.7921820Z id="definitionfile", 2023-01-26T12:39:05.7921894Z ), 2023-01-26T12:39:05.7921984Z pytest.param( 2023-01-26T12:39:05.7922079Z "substancefile", 2023-01-26T12:39:05.7922189Z lambda d: Processes(**d), 2023-01-26T12:39:05.7922301Z lambda m: m.substancefile, 2023-01-26T12:39:05.7922387Z id="substancefile", 2023-01-26T12:39:05.7922460Z ), 2023-01-26T12:39:05.7922550Z pytest.param( 2023-01-26T12:39:05.7922686Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7922794Z lambda d: Processes(**d), 2023-01-26T12:39:05.7922943Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7923084Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7923145Z ), 2023-01-26T12:39:05.7923235Z pytest.param( 2023-01-26T12:39:05.7923331Z "statisticsfile", 2023-01-26T12:39:05.7923437Z lambda d: Processes(**d), 2023-01-26T12:39:05.7923548Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7923650Z id="statisticsfile", 2023-01-26T12:39:05.7923726Z ), 2023-01-26T12:39:05.7923804Z pytest.param( 2023-01-26T12:39:05.7923916Z "particlesreleasefile", 2023-01-26T12:39:05.7924023Z lambda d: Particles(**d), 2023-01-26T12:39:05.7924151Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7924269Z id="particlesreleasefile", 2023-01-26T12:39:05.7924342Z ), 2023-01-26T12:39:05.7924431Z pytest.param( 2023-01-26T12:39:05.7924511Z "locationfile", 2023-01-26T12:39:05.7924658Z _create_boundary, 2023-01-26T12:39:05.7924769Z lambda m: m.locationfile, 2023-01-26T12:39:05.7924865Z id="locationfile", 2023-01-26T12:39:05.7924938Z ), 2023-01-26T12:39:05.7925030Z pytest.param( 2023-01-26T12:39:05.7925134Z "frictionvaluesfile", 2023-01-26T12:39:05.7925236Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7925358Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7925470Z id="frictionvaluesfile", 2023-01-26T12:39:05.7925547Z ), 2023-01-26T12:39:05.7925619Z ], 2023-01-26T12:39:05.7925690Z ) 2023-01-26T12:39:05.7925856Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7925992Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7926071Z input_field: str, 2023-01-26T12:39:05.7926192Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7926344Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7926415Z ): 2023-01-26T12:39:05.7926521Z data = {input_field: input} 2023-01-26T12:39:05.7926624Z > model = create_model(data) 2023-01-26T12:39:05.7926631Z 2023-01-26T12:39:05.7926730Z tests/test_model.py:538: 2023-01-26T12:39:05.7926835Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7926945Z tests/test_model.py:465: in 2023-01-26T12:39:05.7927070Z ??? 2023-01-26T12:39:05.7927193Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7927286Z super().__init__(**data) 2023-01-26T12:39:05.7927446Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7927519Z ??? 2023-01-26T12:39:05.7927657Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7927729Z ??? 2023-01-26T12:39:05.7927905Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7927977Z ??? 2023-01-26T12:39:05.7928101Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7928205Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7928325Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7928407Z super().__init__(**data) 2023-01-26T12:39:05.7928561Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7928634Z ??? 2023-01-26T12:39:05.7928781Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7928856Z ??? 2023-01-26T12:39:05.7929029Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7929100Z ??? 2023-01-26T12:39:05.7929221Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7929379Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7929769Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7929881Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7930002Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7930009Z 2023-01-26T12:39:05.7930454Z self = 2023-01-26T12:39:05.7930833Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7930988Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7931072Z winmode = None 2023-01-26T12:39:05.7931079Z 2023-01-26T12:39:05.7931209Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7931305Z use_errno=False, 2023-01-26T12:39:05.7931405Z use_last_error=False, 2023-01-26T12:39:05.7931498Z winmode=None): 2023-01-26T12:39:05.7931589Z self._name = name 2023-01-26T12:39:05.7931743Z flags = self._func_flags_ 2023-01-26T12:39:05.7931831Z if use_errno: 2023-01-26T12:39:05.7931940Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7932018Z if use_last_error: 2023-01-26T12:39:05.7932134Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7932263Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7932400Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7932623Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7932782Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7932940Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7933005Z """ 2023-01-26T12:39:05.7933141Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7933270Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7933365Z if _os.name == "nt": 2023-01-26T12:39:05.7933466Z if winmode is not None: 2023-01-26T12:39:05.7933555Z mode = winmode 2023-01-26T12:39:05.7933631Z else: 2023-01-26T12:39:05.7933704Z import nt 2023-01-26T12:39:05.7933840Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7934009Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7934166Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7934358Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7934416Z 2023-01-26T12:39:05.7934522Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7934609Z _flags_ = flags 2023-01-26T12:39:05.7934724Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7934823Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7934892Z 2023-01-26T12:39:05.7934981Z if handle is None: 2023-01-26T12:39:05.7935098Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7935617Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7935626Z 2023-01-26T12:39:05.7935803Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7936084Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[profdefxyzfile-None] _ 2023-01-26T12:39:05.7936094Z 2023-01-26T12:39:05.7936275Z input = None, input_field = 'profdefxyzfile' 2023-01-26T12:39:05.7936407Z create_model = at 0x7f992fb77d30> 2023-01-26T12:39:05.7936544Z retrieve_field = at 0x7f992fb77dc0> 2023-01-26T12:39:05.7936551Z 2023-01-26T12:39:05.7936662Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7936739Z "input", 2023-01-26T12:39:05.7936800Z [ 2023-01-26T12:39:05.7936919Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7937077Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7937168Z pytest.param( 2023-01-26T12:39:05.7937347Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7937421Z ), 2023-01-26T12:39:05.7937493Z ], 2023-01-26T12:39:05.7937551Z ) 2023-01-26T12:39:05.7937661Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7937796Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7937869Z [ 2023-01-26T12:39:05.7937961Z pytest.param( 2023-01-26T12:39:05.7938055Z "extforcefile", 2023-01-26T12:39:05.7938177Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7938274Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7938371Z id="extforcefile", 2023-01-26T12:39:05.7938445Z ), 2023-01-26T12:39:05.7938536Z pytest.param( 2023-01-26T12:39:05.7938681Z "restartfile", 2023-01-26T12:39:05.7938789Z lambda d: Restart(**d), 2023-01-26T12:39:05.7938894Z lambda m: m.restartfile, 2023-01-26T12:39:05.7938976Z id="restartfile", 2023-01-26T12:39:05.7939050Z ), 2023-01-26T12:39:05.7939143Z pytest.param( 2023-01-26T12:39:05.7939307Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7939382Z ), 2023-01-26T12:39:05.7939472Z pytest.param( 2023-01-26T12:39:05.7939629Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7939690Z ), 2023-01-26T12:39:05.7939778Z pytest.param( 2023-01-26T12:39:05.7939871Z "flowgeomfile", 2023-01-26T12:39:05.7939972Z lambda d: Output(**d), 2023-01-26T12:39:05.7940081Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7940181Z id="flowgeomfile", 2023-01-26T12:39:05.7940253Z ), 2023-01-26T12:39:05.7940331Z pytest.param( 2023-01-26T12:39:05.7940491Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7940566Z ), 2023-01-26T12:39:05.7940655Z pytest.param( 2023-01-26T12:39:05.7940812Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7940937Z ), 2023-01-26T12:39:05.7941027Z pytest.param( 2023-01-26T12:39:05.7941127Z "mapoutputtimevector", 2023-01-26T12:39:05.7941227Z lambda d: Output(**d), 2023-01-26T12:39:05.7941356Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7941474Z id="mapoutputtimevector", 2023-01-26T12:39:05.7941546Z ), 2023-01-26T12:39:05.7941637Z pytest.param( 2023-01-26T12:39:05.7941730Z "classmapfile", 2023-01-26T12:39:05.7941833Z lambda d: Output(**d), 2023-01-26T12:39:05.7941930Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7942029Z id="classmapfile", 2023-01-26T12:39:05.7942102Z ), 2023-01-26T12:39:05.7942193Z pytest.param( 2023-01-26T12:39:05.7942295Z "waterlevinifile", 2023-01-26T12:39:05.7942401Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7942518Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7942612Z id="waterlevinifile", 2023-01-26T12:39:05.7942684Z ), 2023-01-26T12:39:05.7942776Z pytest.param( 2023-01-26T12:39:05.7942873Z "oned2dlinkfile", 2023-01-26T12:39:05.7942978Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7943090Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7943190Z id="oned2dlinkfile", 2023-01-26T12:39:05.7943251Z ), 2023-01-26T12:39:05.7943341Z pytest.param( 2023-01-26T12:39:05.7943436Z "proflocfile", 2023-01-26T12:39:05.7943540Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7943752Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7943851Z id="proflocfile", 2023-01-26T12:39:05.7943926Z ), 2023-01-26T12:39:05.7944004Z pytest.param( 2023-01-26T12:39:05.7944096Z "profdeffile", 2023-01-26T12:39:05.7944201Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7944307Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7944402Z id="profdeffile", 2023-01-26T12:39:05.7944477Z ), 2023-01-26T12:39:05.7944570Z pytest.param( 2023-01-26T12:39:05.7944654Z "profdefxyzfile", 2023-01-26T12:39:05.7944757Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7944873Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7944977Z id="profdefxyzfile", 2023-01-26T12:39:05.7945052Z ), 2023-01-26T12:39:05.7945234Z pytest.param( 2023-01-26T12:39:05.7945330Z "manholefile", 2023-01-26T12:39:05.7945421Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7945524Z lambda m: m.manholefile, 2023-01-26T12:39:05.7945621Z id="manholefile", 2023-01-26T12:39:05.7945695Z ), 2023-01-26T12:39:05.7945787Z pytest.param( 2023-01-26T12:39:05.7945883Z "definitionfile", 2023-01-26T12:39:05.7945999Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7946101Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7946202Z id="definitionfile", 2023-01-26T12:39:05.7946275Z ), 2023-01-26T12:39:05.7946366Z pytest.param( 2023-01-26T12:39:05.7946453Z "areafile", 2023-01-26T12:39:05.7946564Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7946663Z lambda m: m.areafile, 2023-01-26T12:39:05.7946751Z id="definitionfile", 2023-01-26T12:39:05.7946824Z ), 2023-01-26T12:39:05.7946915Z pytest.param( 2023-01-26T12:39:05.7947009Z "substancefile", 2023-01-26T12:39:05.7947120Z lambda d: Processes(**d), 2023-01-26T12:39:05.7947229Z lambda m: m.substancefile, 2023-01-26T12:39:05.7947327Z id="substancefile", 2023-01-26T12:39:05.7947388Z ), 2023-01-26T12:39:05.7947543Z pytest.param( 2023-01-26T12:39:05.7947680Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7947788Z lambda d: Processes(**d), 2023-01-26T12:39:05.7947936Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7948074Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7948147Z ), 2023-01-26T12:39:05.7948225Z pytest.param( 2023-01-26T12:39:05.7948319Z "statisticsfile", 2023-01-26T12:39:05.7948427Z lambda d: Processes(**d), 2023-01-26T12:39:05.7948541Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7948641Z id="statisticsfile", 2023-01-26T12:39:05.7948714Z ), 2023-01-26T12:39:05.7948805Z pytest.param( 2023-01-26T12:39:05.7948903Z "particlesreleasefile", 2023-01-26T12:39:05.7949009Z lambda d: Particles(**d), 2023-01-26T12:39:05.7949137Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7949257Z id="particlesreleasefile", 2023-01-26T12:39:05.7949330Z ), 2023-01-26T12:39:05.7949422Z pytest.param( 2023-01-26T12:39:05.7949513Z "locationfile", 2023-01-26T12:39:05.7949594Z _create_boundary, 2023-01-26T12:39:05.7949698Z lambda m: m.locationfile, 2023-01-26T12:39:05.7949795Z id="locationfile", 2023-01-26T12:39:05.7949869Z ), 2023-01-26T12:39:05.7949960Z pytest.param( 2023-01-26T12:39:05.7950066Z "frictionvaluesfile", 2023-01-26T12:39:05.7950182Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7950291Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7950402Z id="frictionvaluesfile", 2023-01-26T12:39:05.7950473Z ), 2023-01-26T12:39:05.7950546Z ], 2023-01-26T12:39:05.7950619Z ) 2023-01-26T12:39:05.7950786Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7950927Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7951007Z input_field: str, 2023-01-26T12:39:05.7951129Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7951279Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7951351Z ): 2023-01-26T12:39:05.7951454Z data = {input_field: input} 2023-01-26T12:39:05.7951554Z > model = create_model(data) 2023-01-26T12:39:05.7951562Z 2023-01-26T12:39:05.7951709Z tests/test_model.py:538: 2023-01-26T12:39:05.7951831Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7951926Z tests/test_model.py:471: in 2023-01-26T12:39:05.7951997Z ??? 2023-01-26T12:39:05.7952119Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7952216Z super().__init__(**data) 2023-01-26T12:39:05.7952375Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7952449Z ??? 2023-01-26T12:39:05.7952599Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7952657Z ??? 2023-01-26T12:39:05.7952833Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7952903Z ??? 2023-01-26T12:39:05.7953026Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7953128Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7953248Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7953342Z super().__init__(**data) 2023-01-26T12:39:05.7953488Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7953559Z ??? 2023-01-26T12:39:05.7953707Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7953778Z ??? 2023-01-26T12:39:05.7953956Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7954027Z ??? 2023-01-26T12:39:05.7954161Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7954358Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7954752Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7954860Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7954980Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7954988Z 2023-01-26T12:39:05.7955438Z self = 2023-01-26T12:39:05.7955814Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7955966Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7956050Z winmode = None 2023-01-26T12:39:05.7956056Z 2023-01-26T12:39:05.7956198Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7956284Z use_errno=False, 2023-01-26T12:39:05.7956384Z use_last_error=False, 2023-01-26T12:39:05.7956476Z winmode=None): 2023-01-26T12:39:05.7956565Z self._name = name 2023-01-26T12:39:05.7956664Z flags = self._func_flags_ 2023-01-26T12:39:05.7956750Z if use_errno: 2023-01-26T12:39:05.7956856Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7956933Z if use_last_error: 2023-01-26T12:39:05.7957049Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7957178Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7957314Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7957530Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7957693Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7957851Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7957930Z """ 2023-01-26T12:39:05.7958054Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7958185Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7958279Z if _os.name == "nt": 2023-01-26T12:39:05.7958380Z if winmode is not None: 2023-01-26T12:39:05.7958470Z mode = winmode 2023-01-26T12:39:05.7958545Z else: 2023-01-26T12:39:05.7958633Z import nt 2023-01-26T12:39:05.7958814Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7958988Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7959132Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7959267Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7959338Z 2023-01-26T12:39:05.7959446Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7959535Z _flags_ = flags 2023-01-26T12:39:05.7959639Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7959742Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7959810Z 2023-01-26T12:39:05.7959899Z if handle is None: 2023-01-26T12:39:05.7960026Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7960536Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7960545Z 2023-01-26T12:39:05.7960726Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7961012Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[profdefxyzfile-Path] _ 2023-01-26T12:39:05.7961019Z 2023-01-26T12:39:05.7961273Z input = PosixPath('some/path/extforce.file'), input_field = 'profdefxyzfile' 2023-01-26T12:39:05.7961392Z create_model = at 0x7f992fb77d30> 2023-01-26T12:39:05.7961585Z retrieve_field = at 0x7f992fb77dc0> 2023-01-26T12:39:05.7961592Z 2023-01-26T12:39:05.7961706Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7961785Z "input", 2023-01-26T12:39:05.7961859Z [ 2023-01-26T12:39:05.7961978Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7962140Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7962219Z pytest.param( 2023-01-26T12:39:05.7962401Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7962478Z ), 2023-01-26T12:39:05.7962550Z ], 2023-01-26T12:39:05.7962622Z ) 2023-01-26T12:39:05.7962731Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7962862Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7962924Z [ 2023-01-26T12:39:05.7963014Z pytest.param( 2023-01-26T12:39:05.7963109Z "extforcefile", 2023-01-26T12:39:05.7963233Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7963342Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7963439Z id="extforcefile", 2023-01-26T12:39:05.7963513Z ), 2023-01-26T12:39:05.7963591Z pytest.param( 2023-01-26T12:39:05.7963684Z "restartfile", 2023-01-26T12:39:05.7963786Z lambda d: Restart(**d), 2023-01-26T12:39:05.7963892Z lambda m: m.restartfile, 2023-01-26T12:39:05.7963987Z id="restartfile", 2023-01-26T12:39:05.7964063Z ), 2023-01-26T12:39:05.7964152Z pytest.param( 2023-01-26T12:39:05.7964303Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7964378Z ), 2023-01-26T12:39:05.7964468Z pytest.param( 2023-01-26T12:39:05.7964632Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7964704Z ), 2023-01-26T12:39:05.7964794Z pytest.param( 2023-01-26T12:39:05.7964886Z "flowgeomfile", 2023-01-26T12:39:05.7964974Z lambda d: Output(**d), 2023-01-26T12:39:05.7965083Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7965181Z id="flowgeomfile", 2023-01-26T12:39:05.7965253Z ), 2023-01-26T12:39:05.7965343Z pytest.param( 2023-01-26T12:39:05.7965503Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7965626Z ), 2023-01-26T12:39:05.7965720Z pytest.param( 2023-01-26T12:39:05.7965872Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7965946Z ), 2023-01-26T12:39:05.7966036Z pytest.param( 2023-01-26T12:39:05.7966147Z "mapoutputtimevector", 2023-01-26T12:39:05.7966247Z lambda d: Output(**d), 2023-01-26T12:39:05.7966375Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7966494Z id="mapoutputtimevector", 2023-01-26T12:39:05.7966554Z ), 2023-01-26T12:39:05.7966643Z pytest.param( 2023-01-26T12:39:05.7966737Z "classmapfile", 2023-01-26T12:39:05.7966839Z lambda d: Output(**d), 2023-01-26T12:39:05.7966946Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7967045Z id="classmapfile", 2023-01-26T12:39:05.7967118Z ), 2023-01-26T12:39:05.7967196Z pytest.param( 2023-01-26T12:39:05.7967296Z "waterlevinifile", 2023-01-26T12:39:05.7967401Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7967518Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7967623Z id="waterlevinifile", 2023-01-26T12:39:05.7967696Z ), 2023-01-26T12:39:05.7967786Z pytest.param( 2023-01-26T12:39:05.7967870Z "oned2dlinkfile", 2023-01-26T12:39:05.7968029Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7968142Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7968241Z id="oned2dlinkfile", 2023-01-26T12:39:05.7968315Z ), 2023-01-26T12:39:05.7968406Z pytest.param( 2023-01-26T12:39:05.7968498Z "proflocfile", 2023-01-26T12:39:05.7968590Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7968694Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7968789Z id="proflocfile", 2023-01-26T12:39:05.7968864Z ), 2023-01-26T12:39:05.7968956Z pytest.param( 2023-01-26T12:39:05.7969047Z "profdeffile", 2023-01-26T12:39:05.7969150Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7969241Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7969338Z id="profdeffile", 2023-01-26T12:39:05.7969410Z ), 2023-01-26T12:39:05.7969500Z pytest.param( 2023-01-26T12:39:05.7969601Z "profdefxyzfile", 2023-01-26T12:39:05.7969703Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7969819Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7969909Z id="profdefxyzfile", 2023-01-26T12:39:05.7969982Z ), 2023-01-26T12:39:05.7970072Z pytest.param( 2023-01-26T12:39:05.7970162Z "manholefile", 2023-01-26T12:39:05.7970264Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7970367Z lambda m: m.manholefile, 2023-01-26T12:39:05.7970462Z id="manholefile", 2023-01-26T12:39:05.7970523Z ), 2023-01-26T12:39:05.7970612Z pytest.param( 2023-01-26T12:39:05.7970708Z "definitionfile", 2023-01-26T12:39:05.7970819Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7970931Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7971030Z id="definitionfile", 2023-01-26T12:39:05.7971103Z ), 2023-01-26T12:39:05.7971183Z pytest.param( 2023-01-26T12:39:05.7971269Z "areafile", 2023-01-26T12:39:05.7971381Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7971480Z lambda m: m.areafile, 2023-01-26T12:39:05.7971578Z id="definitionfile", 2023-01-26T12:39:05.7971650Z ), 2023-01-26T12:39:05.7971739Z pytest.param( 2023-01-26T12:39:05.7971820Z "substancefile", 2023-01-26T12:39:05.7971928Z lambda d: Processes(**d), 2023-01-26T12:39:05.7972091Z lambda m: m.substancefile, 2023-01-26T12:39:05.7972195Z id="substancefile", 2023-01-26T12:39:05.7972269Z ), 2023-01-26T12:39:05.7972359Z pytest.param( 2023-01-26T12:39:05.7972496Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7972591Z lambda d: Processes(**d), 2023-01-26T12:39:05.7972738Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7972881Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7972957Z ), 2023-01-26T12:39:05.7973047Z pytest.param( 2023-01-26T12:39:05.7973142Z "statisticsfile", 2023-01-26T12:39:05.7973248Z lambda d: Processes(**d), 2023-01-26T12:39:05.7973346Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7973445Z id="statisticsfile", 2023-01-26T12:39:05.7973520Z ), 2023-01-26T12:39:05.7973610Z pytest.param( 2023-01-26T12:39:05.7973725Z "particlesreleasefile", 2023-01-26T12:39:05.7973834Z lambda d: Particles(**d), 2023-01-26T12:39:05.7973962Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7974069Z id="particlesreleasefile", 2023-01-26T12:39:05.7974141Z ), 2023-01-26T12:39:05.7974230Z pytest.param( 2023-01-26T12:39:05.7974323Z "locationfile", 2023-01-26T12:39:05.7974474Z _create_boundary, 2023-01-26T12:39:05.7974581Z lambda m: m.locationfile, 2023-01-26T12:39:05.7974677Z id="locationfile", 2023-01-26T12:39:05.7974737Z ), 2023-01-26T12:39:05.7974828Z pytest.param( 2023-01-26T12:39:05.7974932Z "frictionvaluesfile", 2023-01-26T12:39:05.7975048Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.7975169Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.7975283Z id="frictionvaluesfile", 2023-01-26T12:39:05.7975356Z ), 2023-01-26T12:39:05.7975416Z ], 2023-01-26T12:39:05.7975487Z ) 2023-01-26T12:39:05.7975656Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.7975795Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.7975887Z input_field: str, 2023-01-26T12:39:05.7976008Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.7976205Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.7976264Z ): 2023-01-26T12:39:05.7976372Z data = {input_field: input} 2023-01-26T12:39:05.7976473Z > model = create_model(data) 2023-01-26T12:39:05.7976482Z 2023-01-26T12:39:05.7976581Z tests/test_model.py:538: 2023-01-26T12:39:05.7976701Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7976813Z tests/test_model.py:471: in 2023-01-26T12:39:05.7976886Z ??? 2023-01-26T12:39:05.7977011Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7977092Z super().__init__(**data) 2023-01-26T12:39:05.7977253Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7977325Z ??? 2023-01-26T12:39:05.7977477Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7977551Z ??? 2023-01-26T12:39:05.7977727Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7977801Z ??? 2023-01-26T12:39:05.7977908Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.7978012Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.7978130Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.7978222Z super().__init__(**data) 2023-01-26T12:39:05.7978379Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.7978451Z ??? 2023-01-26T12:39:05.7978600Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.7978658Z ??? 2023-01-26T12:39:05.7978895Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.7978970Z ??? 2023-01-26T12:39:05.7979106Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.7979267Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.7979648Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.7979756Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.7979878Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.7979885Z 2023-01-26T12:39:05.7980317Z self = 2023-01-26T12:39:05.7980694Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.7980850Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.7980935Z winmode = None 2023-01-26T12:39:05.7980941Z 2023-01-26T12:39:05.7981087Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.7981184Z use_errno=False, 2023-01-26T12:39:05.7981285Z use_last_error=False, 2023-01-26T12:39:05.7981378Z winmode=None): 2023-01-26T12:39:05.7981455Z self._name = name 2023-01-26T12:39:05.7981609Z flags = self._func_flags_ 2023-01-26T12:39:05.7981696Z if use_errno: 2023-01-26T12:39:05.7981804Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.7981894Z if use_last_error: 2023-01-26T12:39:05.7982011Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.7982139Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.7982263Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.7982480Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.7982646Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.7982805Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.7982882Z """ 2023-01-26T12:39:05.7983017Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.7983149Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.7983245Z if _os.name == "nt": 2023-01-26T12:39:05.7983332Z if winmode is not None: 2023-01-26T12:39:05.7983422Z mode = winmode 2023-01-26T12:39:05.7983497Z else: 2023-01-26T12:39:05.7983582Z import nt 2023-01-26T12:39:05.7983875Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.7984047Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.7984191Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.7984317Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.7984389Z 2023-01-26T12:39:05.7984496Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.7984585Z _flags_ = flags 2023-01-26T12:39:05.7984699Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.7984799Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.7984869Z 2023-01-26T12:39:05.7984947Z if handle is None: 2023-01-26T12:39:05.7985073Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.7985589Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.7985599Z 2023-01-26T12:39:05.7985778Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.7986063Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[profdefxyzfile-Model] _ 2023-01-26T12:39:05.7986071Z 2023-01-26T12:39:05.7986407Z input = DiskOnlyFileModel(filepath=PosixPath('some/other/path/extforce.file')) 2023-01-26T12:39:05.7986564Z input_field = 'profdefxyzfile' 2023-01-26T12:39:05.7986698Z create_model = at 0x7f992fb77d30> 2023-01-26T12:39:05.7986831Z retrieve_field = at 0x7f992fb77dc0> 2023-01-26T12:39:05.7986838Z 2023-01-26T12:39:05.7986936Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7987016Z "input", 2023-01-26T12:39:05.7987095Z [ 2023-01-26T12:39:05.7987210Z pytest.param(None, id="None"), 2023-01-26T12:39:05.7987371Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.7987462Z pytest.param( 2023-01-26T12:39:05.7987639Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.7987713Z ), 2023-01-26T12:39:05.7987773Z ], 2023-01-26T12:39:05.7987844Z ) 2023-01-26T12:39:05.7987954Z @pytest.mark.parametrize( 2023-01-26T12:39:05.7988089Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.7988165Z [ 2023-01-26T12:39:05.7988259Z pytest.param( 2023-01-26T12:39:05.7988341Z "extforcefile", 2023-01-26T12:39:05.7988462Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.7988572Z lambda m: m.extforcefile, 2023-01-26T12:39:05.7988671Z id="extforcefile", 2023-01-26T12:39:05.7988804Z ), 2023-01-26T12:39:05.7988896Z pytest.param( 2023-01-26T12:39:05.7988987Z "restartfile", 2023-01-26T12:39:05.7989076Z lambda d: Restart(**d), 2023-01-26T12:39:05.7989183Z lambda m: m.restartfile, 2023-01-26T12:39:05.7989279Z id="restartfile", 2023-01-26T12:39:05.7989353Z ), 2023-01-26T12:39:05.7989443Z pytest.param( 2023-01-26T12:39:05.7989608Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.7989685Z ), 2023-01-26T12:39:05.7989775Z pytest.param( 2023-01-26T12:39:05.7989920Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.7989994Z ), 2023-01-26T12:39:05.7990083Z pytest.param( 2023-01-26T12:39:05.7990177Z "flowgeomfile", 2023-01-26T12:39:05.7990279Z lambda d: Output(**d), 2023-01-26T12:39:05.7990389Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.7990486Z id="flowgeomfile", 2023-01-26T12:39:05.7990546Z ), 2023-01-26T12:39:05.7990636Z pytest.param( 2023-01-26T12:39:05.7990796Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.7990869Z ), 2023-01-26T12:39:05.7990961Z pytest.param( 2023-01-26T12:39:05.7991119Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.7991195Z ), 2023-01-26T12:39:05.7991271Z pytest.param( 2023-01-26T12:39:05.7991380Z "mapoutputtimevector", 2023-01-26T12:39:05.7991479Z lambda d: Output(**d), 2023-01-26T12:39:05.7991606Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.7991721Z id="mapoutputtimevector", 2023-01-26T12:39:05.7991795Z ), 2023-01-26T12:39:05.7991885Z pytest.param( 2023-01-26T12:39:05.7991968Z "classmapfile", 2023-01-26T12:39:05.7992067Z lambda d: Output(**d), 2023-01-26T12:39:05.7992174Z lambda m: m.classmapfile, 2023-01-26T12:39:05.7992271Z id="classmapfile", 2023-01-26T12:39:05.7992345Z ), 2023-01-26T12:39:05.7992435Z pytest.param( 2023-01-26T12:39:05.7992533Z "waterlevinifile", 2023-01-26T12:39:05.7992626Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7992796Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.7992906Z id="waterlevinifile", 2023-01-26T12:39:05.7992980Z ), 2023-01-26T12:39:05.7993070Z pytest.param( 2023-01-26T12:39:05.7993166Z "oned2dlinkfile", 2023-01-26T12:39:05.7993272Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7993372Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.7993471Z id="oned2dlinkfile", 2023-01-26T12:39:05.7993548Z ), 2023-01-26T12:39:05.7993639Z pytest.param( 2023-01-26T12:39:05.7993732Z "proflocfile", 2023-01-26T12:39:05.7993836Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7993939Z lambda m: m.proflocfile, 2023-01-26T12:39:05.7994022Z id="proflocfile", 2023-01-26T12:39:05.7994095Z ), 2023-01-26T12:39:05.7994185Z pytest.param( 2023-01-26T12:39:05.7994277Z "profdeffile", 2023-01-26T12:39:05.7994412Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7994515Z lambda m: m.profdeffile, 2023-01-26T12:39:05.7994612Z id="profdeffile", 2023-01-26T12:39:05.7994672Z ), 2023-01-26T12:39:05.7994763Z pytest.param( 2023-01-26T12:39:05.7994861Z "profdefxyzfile", 2023-01-26T12:39:05.7994963Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7995077Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.7995260Z id="profdefxyzfile", 2023-01-26T12:39:05.7995334Z ), 2023-01-26T12:39:05.7995412Z pytest.param( 2023-01-26T12:39:05.7995503Z "manholefile", 2023-01-26T12:39:05.7995604Z lambda d: Geometry(**d), 2023-01-26T12:39:05.7995707Z lambda m: m.manholefile, 2023-01-26T12:39:05.7995801Z id="manholefile", 2023-01-26T12:39:05.7995875Z ), 2023-01-26T12:39:05.7995965Z pytest.param( 2023-01-26T12:39:05.7996050Z "definitionfile", 2023-01-26T12:39:05.7996163Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7996275Z lambda m: m.definitionfile, 2023-01-26T12:39:05.7996374Z id="definitionfile", 2023-01-26T12:39:05.7996446Z ), 2023-01-26T12:39:05.7996536Z pytest.param( 2023-01-26T12:39:05.7996622Z "areafile", 2023-01-26T12:39:05.7996720Z lambda d: Calibration(**d), 2023-01-26T12:39:05.7996820Z lambda m: m.areafile, 2023-01-26T12:39:05.7996920Z id="definitionfile", 2023-01-26T12:39:05.7996992Z ), 2023-01-26T12:39:05.7997082Z pytest.param( 2023-01-26T12:39:05.7997176Z "substancefile", 2023-01-26T12:39:05.7997284Z lambda d: Processes(**d), 2023-01-26T12:39:05.7997381Z lambda m: m.substancefile, 2023-01-26T12:39:05.7997480Z id="substancefile", 2023-01-26T12:39:05.7997553Z ), 2023-01-26T12:39:05.7997646Z pytest.param( 2023-01-26T12:39:05.7997783Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.7997891Z lambda d: Processes(**d), 2023-01-26T12:39:05.7998038Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.7998164Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.7998239Z ), 2023-01-26T12:39:05.7998330Z pytest.param( 2023-01-26T12:39:05.7998428Z "statisticsfile", 2023-01-26T12:39:05.7998535Z lambda d: Processes(**d), 2023-01-26T12:39:05.7998647Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.7998748Z id="statisticsfile", 2023-01-26T12:39:05.7998808Z ), 2023-01-26T12:39:05.7998898Z pytest.param( 2023-01-26T12:39:05.7999009Z "particlesreleasefile", 2023-01-26T12:39:05.7999116Z lambda d: Particles(**d), 2023-01-26T12:39:05.7999299Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.7999422Z id="particlesreleasefile", 2023-01-26T12:39:05.7999496Z ), 2023-01-26T12:39:05.7999573Z pytest.param( 2023-01-26T12:39:05.7999666Z "locationfile", 2023-01-26T12:39:05.7999761Z _create_boundary, 2023-01-26T12:39:05.7999871Z lambda m: m.locationfile, 2023-01-26T12:39:05.7999970Z id="locationfile", 2023-01-26T12:39:05.8000047Z ), 2023-01-26T12:39:05.8000138Z pytest.param( 2023-01-26T12:39:05.8000229Z "frictionvaluesfile", 2023-01-26T12:39:05.8000345Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.8000468Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.8000580Z id="frictionvaluesfile", 2023-01-26T12:39:05.8000655Z ), 2023-01-26T12:39:05.8000730Z ], 2023-01-26T12:39:05.8000802Z ) 2023-01-26T12:39:05.8000959Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.8001098Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.8001190Z input_field: str, 2023-01-26T12:39:05.8001314Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.8001465Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.8001537Z ): 2023-01-26T12:39:05.8001640Z data = {input_field: input} 2023-01-26T12:39:05.8001740Z > model = create_model(data) 2023-01-26T12:39:05.8001798Z 2023-01-26T12:39:05.8001884Z tests/test_model.py:538: 2023-01-26T12:39:05.8002004Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8002113Z tests/test_model.py:471: in 2023-01-26T12:39:05.8002186Z ??? 2023-01-26T12:39:05.8002309Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8002403Z super().__init__(**data) 2023-01-26T12:39:05.8002563Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8002625Z ??? 2023-01-26T12:39:05.8002776Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8002848Z ??? 2023-01-26T12:39:05.8003023Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8003094Z ??? 2023-01-26T12:39:05.8003217Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8003321Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8003428Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8003523Z super().__init__(**data) 2023-01-26T12:39:05.8003679Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8003750Z ??? 2023-01-26T12:39:05.8003901Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8003972Z ??? 2023-01-26T12:39:05.8004147Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8004204Z ??? 2023-01-26T12:39:05.8004339Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8004500Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8004883Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8004992Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8005109Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8005117Z 2023-01-26T12:39:05.8005565Z self = 2023-01-26T12:39:05.8005944Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8006096Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8006167Z winmode = None 2023-01-26T12:39:05.8006173Z 2023-01-26T12:39:05.8006373Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8006475Z use_errno=False, 2023-01-26T12:39:05.8006577Z use_last_error=False, 2023-01-26T12:39:05.8006671Z winmode=None): 2023-01-26T12:39:05.8006760Z self._name = name 2023-01-26T12:39:05.8006857Z flags = self._func_flags_ 2023-01-26T12:39:05.8006929Z if use_errno: 2023-01-26T12:39:05.8007037Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8007131Z if use_last_error: 2023-01-26T12:39:05.8007247Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8007376Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8007514Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8007732Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8007891Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8008042Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8008119Z """ 2023-01-26T12:39:05.8008254Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8008385Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8008480Z if _os.name == "nt": 2023-01-26T12:39:05.8008582Z if winmode is not None: 2023-01-26T12:39:05.8008673Z mode = winmode 2023-01-26T12:39:05.8008737Z else: 2023-01-26T12:39:05.8008879Z import nt 2023-01-26T12:39:05.8009016Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8009185Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8009330Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8009467Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8009539Z 2023-01-26T12:39:05.8009633Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8009723Z _flags_ = flags 2023-01-26T12:39:05.8009837Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8009937Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8010008Z 2023-01-26T12:39:05.8010099Z if handle is None: 2023-01-26T12:39:05.8010226Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8010740Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8010752Z 2023-01-26T12:39:05.8010916Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8011189Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[manholefile-None] _ 2023-01-26T12:39:05.8011195Z 2023-01-26T12:39:05.8011366Z input = None, input_field = 'manholefile' 2023-01-26T12:39:05.8011500Z create_model = at 0x7f992fb77e50> 2023-01-26T12:39:05.8011639Z retrieve_field = at 0x7f992fb77ee0> 2023-01-26T12:39:05.8011646Z 2023-01-26T12:39:05.8011757Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8011835Z "input", 2023-01-26T12:39:05.8011908Z [ 2023-01-26T12:39:05.8012012Z pytest.param(None, id="None"), 2023-01-26T12:39:05.8012174Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.8012267Z pytest.param( 2023-01-26T12:39:05.8012446Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.8012523Z ), 2023-01-26T12:39:05.8012596Z ], 2023-01-26T12:39:05.8012666Z ) 2023-01-26T12:39:05.8012775Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8012895Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.8012969Z [ 2023-01-26T12:39:05.8013061Z pytest.param( 2023-01-26T12:39:05.8013155Z "extforcefile", 2023-01-26T12:39:05.8013335Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.8013449Z lambda m: m.extforcefile, 2023-01-26T12:39:05.8013547Z id="extforcefile", 2023-01-26T12:39:05.8013609Z ), 2023-01-26T12:39:05.8013700Z pytest.param( 2023-01-26T12:39:05.8013794Z "restartfile", 2023-01-26T12:39:05.8013896Z lambda d: Restart(**d), 2023-01-26T12:39:05.8014002Z lambda m: m.restartfile, 2023-01-26T12:39:05.8014101Z id="restartfile", 2023-01-26T12:39:05.8014174Z ), 2023-01-26T12:39:05.8014251Z pytest.param( 2023-01-26T12:39:05.8014415Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.8014490Z ), 2023-01-26T12:39:05.8014583Z pytest.param( 2023-01-26T12:39:05.8014743Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.8014816Z ), 2023-01-26T12:39:05.8014907Z pytest.param( 2023-01-26T12:39:05.8014988Z "flowgeomfile", 2023-01-26T12:39:05.8015089Z lambda d: Output(**d), 2023-01-26T12:39:05.8015195Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.8015292Z id="flowgeomfile", 2023-01-26T12:39:05.8015365Z ), 2023-01-26T12:39:05.8015456Z pytest.param( 2023-01-26T12:39:05.8015617Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.8015730Z ), 2023-01-26T12:39:05.8015821Z pytest.param( 2023-01-26T12:39:05.8015981Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.8016054Z ), 2023-01-26T12:39:05.8016144Z pytest.param( 2023-01-26T12:39:05.8016256Z "mapoutputtimevector", 2023-01-26T12:39:05.8016356Z lambda d: Output(**d), 2023-01-26T12:39:05.8016472Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.8016592Z id="mapoutputtimevector", 2023-01-26T12:39:05.8016667Z ), 2023-01-26T12:39:05.8016758Z pytest.param( 2023-01-26T12:39:05.8016852Z "classmapfile", 2023-01-26T12:39:05.8016951Z lambda d: Output(**d), 2023-01-26T12:39:05.8017060Z lambda m: m.classmapfile, 2023-01-26T12:39:05.8017145Z id="classmapfile", 2023-01-26T12:39:05.8017219Z ), 2023-01-26T12:39:05.8017312Z pytest.param( 2023-01-26T12:39:05.8017412Z "waterlevinifile", 2023-01-26T12:39:05.8017518Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8017636Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.8017739Z id="waterlevinifile", 2023-01-26T12:39:05.8017800Z ), 2023-01-26T12:39:05.8017891Z pytest.param( 2023-01-26T12:39:05.8017988Z "oned2dlinkfile", 2023-01-26T12:39:05.8018097Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8018212Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.8018312Z id="oned2dlinkfile", 2023-01-26T12:39:05.8018388Z ), 2023-01-26T12:39:05.8018466Z pytest.param( 2023-01-26T12:39:05.8018561Z "proflocfile", 2023-01-26T12:39:05.8018665Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8018772Z lambda m: m.proflocfile, 2023-01-26T12:39:05.8018870Z id="proflocfile", 2023-01-26T12:39:05.8018943Z ), 2023-01-26T12:39:05.8019034Z pytest.param( 2023-01-26T12:39:05.8019113Z "profdeffile", 2023-01-26T12:39:05.8019220Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8019323Z lambda m: m.profdeffile, 2023-01-26T12:39:05.8019419Z id="profdeffile", 2023-01-26T12:39:05.8019495Z ), 2023-01-26T12:39:05.8019586Z pytest.param( 2023-01-26T12:39:05.8019734Z "profdefxyzfile", 2023-01-26T12:39:05.8019827Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8019943Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.8020046Z id="profdefxyzfile", 2023-01-26T12:39:05.8020119Z ), 2023-01-26T12:39:05.8020211Z pytest.param( 2023-01-26T12:39:05.8020303Z "manholefile", 2023-01-26T12:39:05.8020406Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8020498Z lambda m: m.manholefile, 2023-01-26T12:39:05.8020594Z id="manholefile", 2023-01-26T12:39:05.8020666Z ), 2023-01-26T12:39:05.8020757Z pytest.param( 2023-01-26T12:39:05.8020854Z "definitionfile", 2023-01-26T12:39:05.8020966Z lambda d: Calibration(**d), 2023-01-26T12:39:05.8021084Z lambda m: m.definitionfile, 2023-01-26T12:39:05.8021171Z id="definitionfile", 2023-01-26T12:39:05.8021243Z ), 2023-01-26T12:39:05.8021335Z pytest.param( 2023-01-26T12:39:05.8021421Z "areafile", 2023-01-26T12:39:05.8021533Z lambda d: Calibration(**d), 2023-01-26T12:39:05.8021631Z lambda m: m.areafile, 2023-01-26T12:39:05.8021730Z id="definitionfile", 2023-01-26T12:39:05.8021790Z ), 2023-01-26T12:39:05.8021880Z pytest.param( 2023-01-26T12:39:05.8021974Z "substancefile", 2023-01-26T12:39:05.8022133Z lambda d: Processes(**d), 2023-01-26T12:39:05.8022243Z lambda m: m.substancefile, 2023-01-26T12:39:05.8022344Z id="substancefile", 2023-01-26T12:39:05.8022417Z ), 2023-01-26T12:39:05.8022494Z pytest.param( 2023-01-26T12:39:05.8022629Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.8022739Z lambda d: Processes(**d), 2023-01-26T12:39:05.8022887Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.8023027Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.8023103Z ), 2023-01-26T12:39:05.8023194Z pytest.param( 2023-01-26T12:39:05.8023278Z "statisticsfile", 2023-01-26T12:39:05.8023388Z lambda d: Processes(**d), 2023-01-26T12:39:05.8023498Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.8023600Z id="statisticsfile", 2023-01-26T12:39:05.8023975Z ), 2023-01-26T12:39:05.8024074Z pytest.param( 2023-01-26T12:39:05.8024188Z "particlesreleasefile", 2023-01-26T12:39:05.8024281Z lambda d: Particles(**d), 2023-01-26T12:39:05.8024411Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.8024529Z id="particlesreleasefile", 2023-01-26T12:39:05.8024605Z ), 2023-01-26T12:39:05.8024697Z pytest.param( 2023-01-26T12:39:05.8024791Z "locationfile", 2023-01-26T12:39:05.8024887Z _create_boundary, 2023-01-26T12:39:05.8024999Z lambda m: m.locationfile, 2023-01-26T12:39:05.8025082Z id="locationfile", 2023-01-26T12:39:05.8025158Z ), 2023-01-26T12:39:05.8025250Z pytest.param( 2023-01-26T12:39:05.8025356Z "frictionvaluesfile", 2023-01-26T12:39:05.8025475Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.8025598Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.8025711Z id="frictionvaluesfile", 2023-01-26T12:39:05.8025771Z ), 2023-01-26T12:39:05.8025845Z ], 2023-01-26T12:39:05.8025918Z ) 2023-01-26T12:39:05.8026087Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.8026226Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.8026317Z input_field: str, 2023-01-26T12:39:05.8026440Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.8026643Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.8026720Z ): 2023-01-26T12:39:05.8026823Z data = {input_field: input} 2023-01-26T12:39:05.8026927Z > model = create_model(data) 2023-01-26T12:39:05.8026935Z 2023-01-26T12:39:05.8027032Z tests/test_model.py:538: 2023-01-26T12:39:05.8027149Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8027257Z tests/test_model.py:477: in 2023-01-26T12:39:05.8027319Z ??? 2023-01-26T12:39:05.8027444Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8027538Z super().__init__(**data) 2023-01-26T12:39:05.8027699Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8027773Z ??? 2023-01-26T12:39:05.8027925Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8027997Z ??? 2023-01-26T12:39:05.8028160Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8028232Z ??? 2023-01-26T12:39:05.8028358Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8028462Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8028582Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8028678Z super().__init__(**data) 2023-01-26T12:39:05.8028834Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8028892Z ??? 2023-01-26T12:39:05.8029041Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8029175Z ??? 2023-01-26T12:39:05.8029352Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8029426Z ??? 2023-01-26T12:39:05.8029561Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8029721Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8030125Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8030220Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8030341Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8030349Z 2023-01-26T12:39:05.8030797Z self = 2023-01-26T12:39:05.8031172Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8031329Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8031416Z winmode = None 2023-01-26T12:39:05.8031423Z 2023-01-26T12:39:05.8031568Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8031664Z use_errno=False, 2023-01-26T12:39:05.8031764Z use_last_error=False, 2023-01-26T12:39:05.8031845Z winmode=None): 2023-01-26T12:39:05.8031936Z self._name = name 2023-01-26T12:39:05.8032036Z flags = self._func_flags_ 2023-01-26T12:39:05.8032125Z if use_errno: 2023-01-26T12:39:05.8032233Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8032326Z if use_last_error: 2023-01-26T12:39:05.8032443Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8032558Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8032695Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8032912Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8033075Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8033234Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8033311Z """ 2023-01-26T12:39:05.8033446Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8033563Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8033655Z if _os.name == "nt": 2023-01-26T12:39:05.8033811Z if winmode is not None: 2023-01-26T12:39:05.8033906Z mode = winmode 2023-01-26T12:39:05.8033984Z else: 2023-01-26T12:39:05.8034070Z import nt 2023-01-26T12:39:05.8034204Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8034360Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8034504Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8034645Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8034716Z 2023-01-26T12:39:05.8034825Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8034914Z _flags_ = flags 2023-01-26T12:39:05.8035031Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8035131Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8035188Z 2023-01-26T12:39:05.8035279Z if handle is None: 2023-01-26T12:39:05.8035410Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8035923Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8035932Z 2023-01-26T12:39:05.8036113Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8036394Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[manholefile-Path] _ 2023-01-26T12:39:05.8036454Z 2023-01-26T12:39:05.8036708Z input = PosixPath('some/path/extforce.file'), input_field = 'manholefile' 2023-01-26T12:39:05.8036845Z create_model = at 0x7f992fb77e50> 2023-01-26T12:39:05.8036966Z retrieve_field = at 0x7f992fb77ee0> 2023-01-26T12:39:05.8036987Z 2023-01-26T12:39:05.8037085Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8037164Z "input", 2023-01-26T12:39:05.8037238Z [ 2023-01-26T12:39:05.8037357Z pytest.param(None, id="None"), 2023-01-26T12:39:05.8037516Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.8037610Z pytest.param( 2023-01-26T12:39:05.8037788Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.8037849Z ), 2023-01-26T12:39:05.8037921Z ], 2023-01-26T12:39:05.8037991Z ) 2023-01-26T12:39:05.8038101Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8038239Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.8038313Z [ 2023-01-26T12:39:05.8038404Z pytest.param( 2023-01-26T12:39:05.8038488Z "extforcefile", 2023-01-26T12:39:05.8038612Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.8038723Z lambda m: m.extforcefile, 2023-01-26T12:39:05.8038822Z id="extforcefile", 2023-01-26T12:39:05.8038899Z ), 2023-01-26T12:39:05.8038989Z pytest.param( 2023-01-26T12:39:05.8039085Z "restartfile", 2023-01-26T12:39:05.8039175Z lambda d: Restart(**d), 2023-01-26T12:39:05.8039282Z lambda m: m.restartfile, 2023-01-26T12:39:05.8039471Z id="restartfile", 2023-01-26T12:39:05.8039607Z ), 2023-01-26T12:39:05.8039919Z pytest.param( 2023-01-26T12:39:05.8040128Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.8040194Z ), 2023-01-26T12:39:05.8040325Z pytest.param( 2023-01-26T12:39:05.8040530Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.8040644Z ), 2023-01-26T12:39:05.8040777Z pytest.param( 2023-01-26T12:39:05.8040923Z "flowgeomfile", 2023-01-26T12:39:05.8041064Z lambda d: Output(**d), 2023-01-26T12:39:05.8041162Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.8041394Z id="flowgeomfile", 2023-01-26T12:39:05.8041514Z ), 2023-01-26T12:39:05.8041646Z pytest.param( 2023-01-26T12:39:05.8041850Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.8041937Z ), 2023-01-26T12:39:05.8047919Z pytest.param( 2023-01-26T12:39:05.8048147Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.8048237Z ), 2023-01-26T12:39:05.8048337Z pytest.param( 2023-01-26T12:39:05.8048459Z "mapoutputtimevector", 2023-01-26T12:39:05.8048550Z lambda d: Output(**d), 2023-01-26T12:39:05.8048685Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.8048805Z id="mapoutputtimevector", 2023-01-26T12:39:05.8048881Z ), 2023-01-26T12:39:05.8048976Z pytest.param( 2023-01-26T12:39:05.8049072Z "classmapfile", 2023-01-26T12:39:05.8049177Z lambda d: Output(**d), 2023-01-26T12:39:05.8049271Z lambda m: m.classmapfile, 2023-01-26T12:39:05.8049374Z id="classmapfile", 2023-01-26T12:39:05.8049448Z ), 2023-01-26T12:39:05.8049538Z pytest.param( 2023-01-26T12:39:05.8049636Z "waterlevinifile", 2023-01-26T12:39:05.8049742Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8049862Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.8050127Z id="waterlevinifile", 2023-01-26T12:39:05.8050204Z ), 2023-01-26T12:39:05.8050300Z pytest.param( 2023-01-26T12:39:05.8050399Z "oned2dlinkfile", 2023-01-26T12:39:05.8050506Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8050622Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.8050724Z id="oned2dlinkfile", 2023-01-26T12:39:05.8050824Z ), 2023-01-26T12:39:05.8050917Z pytest.param( 2023-01-26T12:39:05.8051016Z "proflocfile", 2023-01-26T12:39:05.8051124Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8051232Z lambda m: m.proflocfile, 2023-01-26T12:39:05.8051331Z id="proflocfile", 2023-01-26T12:39:05.8051406Z ), 2023-01-26T12:39:05.8051484Z pytest.param( 2023-01-26T12:39:05.8051578Z "profdeffile", 2023-01-26T12:39:05.8051684Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8051793Z lambda m: m.profdeffile, 2023-01-26T12:39:05.8051892Z id="profdeffile", 2023-01-26T12:39:05.8051967Z ), 2023-01-26T12:39:05.8052057Z pytest.param( 2023-01-26T12:39:05.8052141Z "profdefxyzfile", 2023-01-26T12:39:05.8052245Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8052362Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.8052463Z id="profdefxyzfile", 2023-01-26T12:39:05.8052539Z ), 2023-01-26T12:39:05.8052631Z pytest.param( 2023-01-26T12:39:05.8052723Z "manholefile", 2023-01-26T12:39:05.8052812Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8052915Z lambda m: m.manholefile, 2023-01-26T12:39:05.8053009Z id="manholefile", 2023-01-26T12:39:05.8053082Z ), 2023-01-26T12:39:05.8053172Z pytest.param( 2023-01-26T12:39:05.8053268Z "definitionfile", 2023-01-26T12:39:05.8053383Z lambda d: Calibration(**d), 2023-01-26T12:39:05.8053483Z lambda m: m.definitionfile, 2023-01-26T12:39:05.8053583Z id="definitionfile", 2023-01-26T12:39:05.8053655Z ), 2023-01-26T12:39:05.8053746Z pytest.param( 2023-01-26T12:39:05.8053834Z "areafile", 2023-01-26T12:39:05.8053948Z lambda d: Calibration(**d), 2023-01-26T12:39:05.8054048Z lambda m: m.areafile, 2023-01-26T12:39:05.8054230Z id="definitionfile", 2023-01-26T12:39:05.8054310Z ), 2023-01-26T12:39:05.8054404Z pytest.param( 2023-01-26T12:39:05.8054503Z "substancefile", 2023-01-26T12:39:05.8054615Z lambda d: Processes(**d), 2023-01-26T12:39:05.8054731Z lambda m: m.substancefile, 2023-01-26T12:39:05.8054832Z id="substancefile", 2023-01-26T12:39:05.8054892Z ), 2023-01-26T12:39:05.8054987Z pytest.param( 2023-01-26T12:39:05.8055125Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.8055238Z lambda d: Processes(**d), 2023-01-26T12:39:05.8055390Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.8055534Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.8055609Z ), 2023-01-26T12:39:05.8055686Z pytest.param( 2023-01-26T12:39:05.8055787Z "statisticsfile", 2023-01-26T12:39:05.8055900Z lambda d: Processes(**d), 2023-01-26T12:39:05.8056015Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.8056119Z id="statisticsfile", 2023-01-26T12:39:05.8056194Z ), 2023-01-26T12:39:05.8056287Z pytest.param( 2023-01-26T12:39:05.8056385Z "particlesreleasefile", 2023-01-26T12:39:05.8056495Z lambda d: Particles(**d), 2023-01-26T12:39:05.8056626Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.8056803Z id="particlesreleasefile", 2023-01-26T12:39:05.8056877Z ), 2023-01-26T12:39:05.8056967Z pytest.param( 2023-01-26T12:39:05.8057060Z "locationfile", 2023-01-26T12:39:05.8057142Z _create_boundary, 2023-01-26T12:39:05.8057249Z lambda m: m.locationfile, 2023-01-26T12:39:05.8057347Z id="locationfile", 2023-01-26T12:39:05.8057421Z ), 2023-01-26T12:39:05.8057512Z pytest.param( 2023-01-26T12:39:05.8057620Z "frictionvaluesfile", 2023-01-26T12:39:05.8057736Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.8057845Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.8057958Z id="frictionvaluesfile", 2023-01-26T12:39:05.8058034Z ), 2023-01-26T12:39:05.8058109Z ], 2023-01-26T12:39:05.8058182Z ) 2023-01-26T12:39:05.8058356Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.8058501Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.8058594Z input_field: str, 2023-01-26T12:39:05.8058704Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.8058854Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.8058926Z ): 2023-01-26T12:39:05.8059028Z data = {input_field: input} 2023-01-26T12:39:05.8059128Z > model = create_model(data) 2023-01-26T12:39:05.8059138Z 2023-01-26T12:39:05.8059239Z tests/test_model.py:538: 2023-01-26T12:39:05.8059358Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8059455Z tests/test_model.py:477: in 2023-01-26T12:39:05.8059527Z ??? 2023-01-26T12:39:05.8059650Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8059743Z super().__init__(**data) 2023-01-26T12:39:05.8059905Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8059981Z ??? 2023-01-26T12:39:05.8060131Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8060192Z ??? 2023-01-26T12:39:05.8060369Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8060441Z ??? 2023-01-26T12:39:05.8060564Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8060667Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8060787Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8060880Z super().__init__(**data) 2023-01-26T12:39:05.8061076Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8061151Z ??? 2023-01-26T12:39:05.8061301Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8061371Z ??? 2023-01-26T12:39:05.8061548Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8061619Z ??? 2023-01-26T12:39:05.8061751Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8061900Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8062351Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8062463Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8062585Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8062594Z 2023-01-26T12:39:05.8063051Z self = 2023-01-26T12:39:05.8063434Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8063588Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8063977Z winmode = None 2023-01-26T12:39:05.8063987Z 2023-01-26T12:39:05.8064139Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8064301Z use_errno=False, 2023-01-26T12:39:05.8064405Z use_last_error=False, 2023-01-26T12:39:05.8064501Z winmode=None): 2023-01-26T12:39:05.8064590Z self._name = name 2023-01-26T12:39:05.8064688Z flags = self._func_flags_ 2023-01-26T12:39:05.8064773Z if use_errno: 2023-01-26T12:39:05.8064881Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8064959Z if use_last_error: 2023-01-26T12:39:05.8065079Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8065209Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8065349Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8065585Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8065747Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8065906Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8065987Z """ 2023-01-26T12:39:05.8066112Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8066245Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8066340Z if _os.name == "nt": 2023-01-26T12:39:05.8066442Z if winmode is not None: 2023-01-26T12:39:05.8066535Z mode = winmode 2023-01-26T12:39:05.8066613Z else: 2023-01-26T12:39:05.8066701Z import nt 2023-01-26T12:39:05.8066826Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8066993Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8067139Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8067275Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8067345Z 2023-01-26T12:39:05.8067452Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8067541Z _flags_ = flags 2023-01-26T12:39:05.8067644Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8067747Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8067816Z 2023-01-26T12:39:05.8067908Z if handle is None: 2023-01-26T12:39:05.8068034Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8068547Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8068616Z 2023-01-26T12:39:05.8068802Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8069081Z _ test_model_diskonlyfilemodel_field_is_constructed_correctly[manholefile-Model] _ 2023-01-26T12:39:05.8069090Z 2023-01-26T12:39:05.8069354Z input = DiskOnlyFileModel(filepath=PosixPath('some/other/path/extforce.file')) 2023-01-26T12:39:05.8069480Z input_field = 'manholefile' 2023-01-26T12:39:05.8069614Z create_model = at 0x7f992fb77e50> 2023-01-26T12:39:05.8069754Z retrieve_field = at 0x7f992fb77ee0> 2023-01-26T12:39:05.8069761Z 2023-01-26T12:39:05.8069874Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8069952Z "input", 2023-01-26T12:39:05.8070025Z [ 2023-01-26T12:39:05.8070141Z pytest.param(None, id="None"), 2023-01-26T12:39:05.8070300Z pytest.param(Path("some/path/extforce.file"), id="Path"), 2023-01-26T12:39:05.8070380Z pytest.param( 2023-01-26T12:39:05.8070562Z DiskOnlyFileModel(Path("some/other/path/extforce.file")), id="Model" 2023-01-26T12:39:05.8070639Z ), 2023-01-26T12:39:05.8070713Z ], 2023-01-26T12:39:05.8070785Z ) 2023-01-26T12:39:05.8070896Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8071026Z "input_field, create_model, retrieve_field", 2023-01-26T12:39:05.8071087Z [ 2023-01-26T12:39:05.8071178Z pytest.param( 2023-01-26T12:39:05.8071332Z "extforcefile", 2023-01-26T12:39:05.8071455Z lambda d: ExternalForcing(**d), 2023-01-26T12:39:05.8071569Z lambda m: m.extforcefile, 2023-01-26T12:39:05.8071668Z id="extforcefile", 2023-01-26T12:39:05.8071742Z ), 2023-01-26T12:39:05.8071821Z pytest.param( 2023-01-26T12:39:05.8071914Z "restartfile", 2023-01-26T12:39:05.8072018Z lambda d: Restart(**d), 2023-01-26T12:39:05.8072125Z lambda m: m.restartfile, 2023-01-26T12:39:05.8072224Z id="restartfile", 2023-01-26T12:39:05.8072299Z ), 2023-01-26T12:39:05.8072391Z pytest.param( 2023-01-26T12:39:05.8072546Z "morfile", lambda d: Sediment(**d), lambda m: m.morfile, id="morfile" 2023-01-26T12:39:05.8072621Z ), 2023-01-26T12:39:05.8072710Z pytest.param( 2023-01-26T12:39:05.8072871Z "sedfile", lambda d: Sediment(**d), lambda m: m.sedfile, id="sedfile" 2023-01-26T12:39:05.8072947Z ), 2023-01-26T12:39:05.8073036Z pytest.param( 2023-01-26T12:39:05.8073130Z "flowgeomfile", 2023-01-26T12:39:05.8073218Z lambda d: Output(**d), 2023-01-26T12:39:05.8073325Z lambda m: m.flowgeomfile, 2023-01-26T12:39:05.8073423Z id="flowgeomfile", 2023-01-26T12:39:05.8073495Z ), 2023-01-26T12:39:05.8073584Z pytest.param( 2023-01-26T12:39:05.8073752Z "hisfile", lambda d: Output(**d), lambda m: m.hisfile, id="hisfile" 2023-01-26T12:39:05.8073827Z ), 2023-01-26T12:39:05.8073904Z pytest.param( 2023-01-26T12:39:05.8074065Z "mapfile", lambda d: Output(**d), lambda m: m.mapfile, id="mapfile" 2023-01-26T12:39:05.8074139Z ), 2023-01-26T12:39:05.8074229Z pytest.param( 2023-01-26T12:39:05.8074341Z "mapoutputtimevector", 2023-01-26T12:39:05.8074441Z lambda d: Output(**d), 2023-01-26T12:39:05.8074572Z lambda m: m.mapoutputtimevector, 2023-01-26T12:39:05.8074675Z id="mapoutputtimevector", 2023-01-26T12:39:05.8074748Z ), 2023-01-26T12:39:05.8074838Z pytest.param( 2023-01-26T12:39:05.8074932Z "classmapfile", 2023-01-26T12:39:05.8075032Z lambda d: Output(**d), 2023-01-26T12:39:05.8075139Z lambda m: m.classmapfile, 2023-01-26T12:39:05.8075236Z id="classmapfile", 2023-01-26T12:39:05.8075350Z ), 2023-01-26T12:39:05.8075445Z pytest.param( 2023-01-26T12:39:05.8075544Z "waterlevinifile", 2023-01-26T12:39:05.8075652Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8075770Z lambda m: m.waterlevinifile, 2023-01-26T12:39:05.8075873Z id="waterlevinifile", 2023-01-26T12:39:05.8075949Z ), 2023-01-26T12:39:05.8076025Z pytest.param( 2023-01-26T12:39:05.8076169Z "oned2dlinkfile", 2023-01-26T12:39:05.8076280Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8076395Z lambda m: m.oned2dlinkfile, 2023-01-26T12:39:05.8076497Z id="oned2dlinkfile", 2023-01-26T12:39:05.8076572Z ), 2023-01-26T12:39:05.8076665Z pytest.param( 2023-01-26T12:39:05.8076745Z "proflocfile", 2023-01-26T12:39:05.8076853Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8076960Z lambda m: m.proflocfile, 2023-01-26T12:39:05.8077061Z id="proflocfile", 2023-01-26T12:39:05.8077137Z ), 2023-01-26T12:39:05.8077230Z pytest.param( 2023-01-26T12:39:05.8077324Z "profdeffile", 2023-01-26T12:39:05.8077414Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8077519Z lambda m: m.profdeffile, 2023-01-26T12:39:05.8077616Z id="profdeffile", 2023-01-26T12:39:05.8077692Z ), 2023-01-26T12:39:05.8077836Z pytest.param( 2023-01-26T12:39:05.8077934Z "profdefxyzfile", 2023-01-26T12:39:05.8078037Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8078138Z lambda m: m.profdefxyzfile, 2023-01-26T12:39:05.8078239Z id="profdefxyzfile", 2023-01-26T12:39:05.8078311Z ), 2023-01-26T12:39:05.8078400Z pytest.param( 2023-01-26T12:39:05.8078492Z "manholefile", 2023-01-26T12:39:05.8078593Z lambda d: Geometry(**d), 2023-01-26T12:39:05.8078699Z lambda m: m.manholefile, 2023-01-26T12:39:05.8078782Z id="manholefile", 2023-01-26T12:39:05.8078855Z ), 2023-01-26T12:39:05.8078944Z pytest.param( 2023-01-26T12:39:05.8079039Z "definitionfile", 2023-01-26T12:39:05.8079153Z lambda d: Calibration(**d), 2023-01-26T12:39:05.8079264Z lambda m: m.definitionfile, 2023-01-26T12:39:05.8079365Z id="definitionfile", 2023-01-26T12:39:05.8079428Z ), 2023-01-26T12:39:05.8079519Z pytest.param( 2023-01-26T12:39:05.8079605Z "areafile", 2023-01-26T12:39:05.8079716Z lambda d: Calibration(**d), 2023-01-26T12:39:05.8079817Z lambda m: m.areafile, 2023-01-26T12:39:05.8079916Z id="definitionfile", 2023-01-26T12:39:05.8079991Z ), 2023-01-26T12:39:05.8080067Z pytest.param( 2023-01-26T12:39:05.8080162Z "substancefile", 2023-01-26T12:39:05.8080272Z lambda d: Processes(**d), 2023-01-26T12:39:05.8080383Z lambda m: m.substancefile, 2023-01-26T12:39:05.8080481Z id="substancefile", 2023-01-26T12:39:05.8080554Z ), 2023-01-26T12:39:05.8080644Z pytest.param( 2023-01-26T12:39:05.8080767Z "additionalhistoryoutputfile", 2023-01-26T12:39:05.8080874Z lambda d: Processes(**d), 2023-01-26T12:39:05.8081027Z lambda m: m.additionalhistoryoutputfile, 2023-01-26T12:39:05.8081167Z id="additionalhistoryoutputfile", 2023-01-26T12:39:05.8081243Z ), 2023-01-26T12:39:05.8081333Z pytest.param( 2023-01-26T12:39:05.8081430Z "statisticsfile", 2023-01-26T12:39:05.8081537Z lambda d: Processes(**d), 2023-01-26T12:39:05.8081637Z lambda m: m.statisticsfile, 2023-01-26T12:39:05.8081737Z id="statisticsfile", 2023-01-26T12:39:05.8081810Z ), 2023-01-26T12:39:05.8081949Z pytest.param( 2023-01-26T12:39:05.8082065Z "particlesreleasefile", 2023-01-26T12:39:05.8082172Z lambda d: Particles(**d), 2023-01-26T12:39:05.8082300Z lambda m: m.particlesreleasefile, 2023-01-26T12:39:05.8082406Z id="particlesreleasefile", 2023-01-26T12:39:05.8082479Z ), 2023-01-26T12:39:05.8082570Z pytest.param( 2023-01-26T12:39:05.8082666Z "locationfile", 2023-01-26T12:39:05.8082761Z _create_boundary, 2023-01-26T12:39:05.8082868Z lambda m: m.locationfile, 2023-01-26T12:39:05.8082965Z id="locationfile", 2023-01-26T12:39:05.8083025Z ), 2023-01-26T12:39:05.8083117Z pytest.param( 2023-01-26T12:39:05.8083222Z "frictionvaluesfile", 2023-01-26T12:39:05.8083338Z lambda d: FrictGeneral(**d), 2023-01-26T12:39:05.8083463Z lambda m: m.frictionvaluesfile, 2023-01-26T12:39:05.8083579Z id="frictionvaluesfile", 2023-01-26T12:39:05.8083655Z ), 2023-01-26T12:39:05.8083715Z ], 2023-01-26T12:39:05.8083789Z ) 2023-01-26T12:39:05.8083960Z def test_model_diskonlyfilemodel_field_is_constructed_correctly( 2023-01-26T12:39:05.8084099Z input: Union[None, Path, DiskOnlyFileModel], 2023-01-26T12:39:05.8084193Z input_field: str, 2023-01-26T12:39:05.8084319Z create_model: Callable[[Dict], object], 2023-01-26T12:39:05.8084527Z retrieve_field: Callable[[object], DiskOnlyFileModel], 2023-01-26T12:39:05.8084587Z ): 2023-01-26T12:39:05.8084690Z data = {input_field: input} 2023-01-26T12:39:05.8084790Z > model = create_model(data) 2023-01-26T12:39:05.8084798Z 2023-01-26T12:39:05.8084896Z tests/test_model.py:538: 2023-01-26T12:39:05.8085015Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8085122Z tests/test_model.py:477: in 2023-01-26T12:39:05.8085199Z ??? 2023-01-26T12:39:05.8085308Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8085402Z super().__init__(**data) 2023-01-26T12:39:05.8085561Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8085635Z ??? 2023-01-26T12:39:05.8085785Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8085856Z ??? 2023-01-26T12:39:05.8086031Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8086093Z ??? 2023-01-26T12:39:05.8086218Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8086323Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8086447Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8086543Z super().__init__(**data) 2023-01-26T12:39:05.8086704Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8086776Z ??? 2023-01-26T12:39:05.8086912Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8086987Z ??? 2023-01-26T12:39:05.8087164Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8087234Z ??? 2023-01-26T12:39:05.8087368Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8087526Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8087921Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8088035Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8088140Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8088147Z 2023-01-26T12:39:05.8088599Z self = 2023-01-26T12:39:05.8089030Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8089186Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8089272Z winmode = None 2023-01-26T12:39:05.8089279Z 2023-01-26T12:39:05.8089427Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8089524Z use_errno=False, 2023-01-26T12:39:05.8089625Z use_last_error=False, 2023-01-26T12:39:05.8089719Z winmode=None): 2023-01-26T12:39:05.8089800Z self._name = name 2023-01-26T12:39:05.8089896Z flags = self._func_flags_ 2023-01-26T12:39:05.8089982Z if use_errno: 2023-01-26T12:39:05.8090091Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8090182Z if use_last_error: 2023-01-26T12:39:05.8090299Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8090428Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8090553Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8090777Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8090937Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8091098Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8091175Z """ 2023-01-26T12:39:05.8091314Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8091448Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8091584Z if _os.name == "nt": 2023-01-26T12:39:05.8091685Z if winmode is not None: 2023-01-26T12:39:05.8091775Z mode = winmode 2023-01-26T12:39:05.8091853Z else: 2023-01-26T12:39:05.8091939Z import nt 2023-01-26T12:39:05.8092075Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8092245Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8092391Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8092516Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8092587Z 2023-01-26T12:39:05.8092695Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8092783Z _flags_ = flags 2023-01-26T12:39:05.8092899Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8092999Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8093070Z 2023-01-26T12:39:05.8093150Z if handle is None: 2023-01-26T12:39:05.8093275Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8093790Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8093798Z 2023-01-26T12:39:05.8093977Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8094149Z ______________ TestSplitString.test_split_string_strip_semicolon _______________ 2023-01-26T12:39:05.8094156Z 2023-01-26T12:39:05.8094318Z self = 2023-01-26T12:39:05.8094325Z 2023-01-26T12:39:05.8094456Z def test_split_string_strip_semicolon(self): 2023-01-26T12:39:05.8094558Z e02 = test_input_dir / "e02" 2023-01-26T12:39:05.8094629Z 2023-01-26T12:39:05.8094735Z file1 = ( 2023-01-26T12:39:05.8095009Z e02 / "c11_korte-woerden-1d" / "dimr_model" / "dflowfm" / "structures.ini" 2023-01-26T12:39:05.8095087Z ) 2023-01-26T12:39:05.8095157Z 2023-01-26T12:39:05.8095235Z file2 = ( 2023-01-26T12:39:05.8095313Z e02 2023-01-26T12:39:05.8095428Z / "f152_1d2d_projectmodels_rhu" 2023-01-26T12:39:05.8095607Z / "c04_DHydamo-MGB-initialisation" 2023-01-26T12:39:05.8095687Z / "fm" 2023-01-26T12:39:05.8095784Z / "structure.ini" 2023-01-26T12:39:05.8095858Z ) 2023-01-26T12:39:05.8095928Z 2023-01-26T12:39:05.8096118Z string_with_multiple_files = f"{file1} ; {file2}" 2023-01-26T12:39:05.8096286Z > output = Geometry(structurefile=string_with_multiple_files) 2023-01-26T12:39:05.8096294Z 2023-01-26T12:39:05.8096379Z tests/test_utils.py:34: 2023-01-26T12:39:05.8096499Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8096621Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8096720Z super().__init__(**data) 2023-01-26T12:39:05.8096877Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8096950Z ??? 2023-01-26T12:39:05.8097101Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8097162Z ??? 2023-01-26T12:39:05.8097340Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8097412Z ??? 2023-01-26T12:39:05.8097536Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8097638Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8097761Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8097855Z super().__init__(**data) 2023-01-26T12:39:05.8097998Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8098070Z ??? 2023-01-26T12:39:05.8098218Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8098290Z ??? 2023-01-26T12:39:05.8098467Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8098594Z ??? 2023-01-26T12:39:05.8098729Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8098877Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8099241Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8099349Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8099467Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8099478Z 2023-01-26T12:39:05.8099922Z self = 2023-01-26T12:39:05.8100301Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8100455Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8100541Z winmode = None 2023-01-26T12:39:05.8100548Z 2023-01-26T12:39:05.8100692Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8100804Z use_errno=False, 2023-01-26T12:39:05.8100893Z use_last_error=False, 2023-01-26T12:39:05.8100987Z winmode=None): 2023-01-26T12:39:05.8101080Z self._name = name 2023-01-26T12:39:05.8101182Z flags = self._func_flags_ 2023-01-26T12:39:05.8101271Z if use_errno: 2023-01-26T12:39:05.8101384Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8101477Z if use_last_error: 2023-01-26T12:39:05.8101583Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8101713Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8101852Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8102069Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8102229Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8102410Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8102484Z """ 2023-01-26T12:39:05.8102606Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8102736Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8102833Z if _os.name == "nt": 2023-01-26T12:39:05.8102934Z if winmode is not None: 2023-01-26T12:39:05.8103076Z mode = winmode 2023-01-26T12:39:05.8103157Z else: 2023-01-26T12:39:05.8103244Z import nt 2023-01-26T12:39:05.8103367Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8103536Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8103825Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8103967Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8104044Z 2023-01-26T12:39:05.8104155Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8104245Z _flags_ = flags 2023-01-26T12:39:05.8104363Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8104450Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8104523Z 2023-01-26T12:39:05.8104618Z if handle is None: 2023-01-26T12:39:05.8104749Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8105272Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8105281Z 2023-01-26T12:39:05.8105463Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8105630Z ___________ TestModels.test_mdu_file_with_network_is_read_correctly ____________ 2023-01-26T12:39:05.8105637Z 2023-01-26T12:39:05.8105803Z self = 2023-01-26T12:39:05.8105903Z 2023-01-26T12:39:05.8106049Z def test_mdu_file_with_network_is_read_correctly(self): 2023-01-26T12:39:05.8106124Z input_mdu = ( 2023-01-26T12:39:05.8106214Z test_input_dir 2023-01-26T12:39:05.8106294Z / "e02" 2023-01-26T12:39:05.8106456Z / "c11_korte-woerden-1d" 2023-01-26T12:39:05.8106547Z / "dimr_model" 2023-01-26T12:39:05.8106633Z / "dflowfm" 2023-01-26T12:39:05.8106707Z / "FlowFM.mdu" 2023-01-26T12:39:05.8106786Z ) 2023-01-26T12:39:05.8106896Z > fm_model = FMModel(input_mdu) 2023-01-26T12:39:05.8106903Z 2023-01-26T12:39:05.8107008Z tests/dflowfm/test_mdu.py:32: 2023-01-26T12:39:05.8107129Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8107256Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8107361Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8107484Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8107568Z super().__init__(**data) 2023-01-26T12:39:05.8107731Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8107808Z ??? 2023-01-26T12:39:05.8107962Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.8108036Z ??? 2023-01-26T12:39:05.8108214Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.8108285Z ??? 2023-01-26T12:39:05.8108459Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.8108531Z ??? 2023-01-26T12:39:05.8108716Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.8108791Z ??? 2023-01-26T12:39:05.8109000Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.8109072Z ??? 2023-01-26T12:39:05.8109207Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.8109304Z return super().validate(value) 2023-01-26T12:39:05.8109465Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.8109538Z ??? 2023-01-26T12:39:05.8109658Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8109751Z super().__init__(**data) 2023-01-26T12:39:05.8109904Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8109977Z ??? 2023-01-26T12:39:05.8110111Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.8110182Z ??? 2023-01-26T12:39:05.8110415Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.8110490Z ??? 2023-01-26T12:39:05.8110675Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.8110746Z ??? 2023-01-26T12:39:05.8110928Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.8110998Z ??? 2023-01-26T12:39:05.8111195Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.8111269Z ??? 2023-01-26T12:39:05.8111393Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.8111499Z return super().validate(value) 2023-01-26T12:39:05.8111661Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.8111731Z ??? 2023-01-26T12:39:05.8111854Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8111944Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8112065Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8112161Z super().__init__(**data) 2023-01-26T12:39:05.8112315Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8112388Z ??? 2023-01-26T12:39:05.8112537Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8112609Z ??? 2023-01-26T12:39:05.8112771Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8112845Z ??? 2023-01-26T12:39:05.8112983Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8113194Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8113564Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8113676Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8113794Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8113802Z 2023-01-26T12:39:05.8114251Z self = 2023-01-26T12:39:05.8114612Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8114762Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8114845Z winmode = None 2023-01-26T12:39:05.8114852Z 2023-01-26T12:39:05.8114999Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8115098Z use_errno=False, 2023-01-26T12:39:05.8115200Z use_last_error=False, 2023-01-26T12:39:05.8115294Z winmode=None): 2023-01-26T12:39:05.8115384Z self._name = name 2023-01-26T12:39:05.8115470Z flags = self._func_flags_ 2023-01-26T12:39:05.8115556Z if use_errno: 2023-01-26T12:39:05.8115666Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8115759Z if use_last_error: 2023-01-26T12:39:05.8115879Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8116011Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8116150Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8116352Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8116514Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8116679Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8116756Z """ 2023-01-26T12:39:05.8116892Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8117023Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8117116Z if _os.name == "nt": 2023-01-26T12:39:05.8117218Z if winmode is not None: 2023-01-26T12:39:05.8117295Z mode = winmode 2023-01-26T12:39:05.8117373Z else: 2023-01-26T12:39:05.8117517Z import nt 2023-01-26T12:39:05.8117658Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8117826Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8117970Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8118107Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8118164Z 2023-01-26T12:39:05.8118272Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8118364Z _flags_ = flags 2023-01-26T12:39:05.8118480Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8118581Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8118651Z 2023-01-26T12:39:05.8118744Z if handle is None: 2023-01-26T12:39:05.8118859Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8119371Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8119381Z 2023-01-26T12:39:05.8119562Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8119720Z __________________ TestModels.test_mdu_with_optional_sections __________________ 2023-01-26T12:39:05.8119728Z 2023-01-26T12:39:05.8119893Z self = 2023-01-26T12:39:05.8119900Z 2023-01-26T12:39:05.8120093Z def test_mdu_with_optional_sections(self): 2023-01-26T12:39:05.8120180Z input_mdu = ( 2023-01-26T12:39:05.8120355Z test_input_dir / "dflowfm_individual_files" / "with_optional_sections.mdu" 2023-01-26T12:39:05.8120429Z ) 2023-01-26T12:39:05.8120486Z 2023-01-26T12:39:05.8120593Z > fm_model = FMModel(input_mdu) 2023-01-26T12:39:05.8120600Z 2023-01-26T12:39:05.8120702Z tests/dflowfm/test_mdu.py:43: 2023-01-26T12:39:05.8120822Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8120948Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8121050Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8121172Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8121266Z super().__init__(**data) 2023-01-26T12:39:05.8121409Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8121483Z ??? 2023-01-26T12:39:05.8121632Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.8121709Z ??? 2023-01-26T12:39:05.8121888Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.8121961Z ??? 2023-01-26T12:39:05.8122150Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.8122208Z ??? 2023-01-26T12:39:05.8122395Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.8122469Z ??? 2023-01-26T12:39:05.8122682Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.8122755Z ??? 2023-01-26T12:39:05.8122892Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.8122997Z return super().validate(value) 2023-01-26T12:39:05.8123148Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.8123219Z ??? 2023-01-26T12:39:05.8123340Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8123434Z super().__init__(**data) 2023-01-26T12:39:05.8123593Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8123664Z ??? 2023-01-26T12:39:05.8123810Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8123868Z ??? 2023-01-26T12:39:05.8124042Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8124112Z ??? 2023-01-26T12:39:05.8124234Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8124336Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8124511Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8124610Z super().__init__(**data) 2023-01-26T12:39:05.8124751Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8124822Z ??? 2023-01-26T12:39:05.8124969Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8125041Z ??? 2023-01-26T12:39:05.8125212Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8125287Z ??? 2023-01-26T12:39:05.8125421Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8125567Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8125934Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8126043Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8126162Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8126171Z 2023-01-26T12:39:05.8126619Z self = 2023-01-26T12:39:05.8126996Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8127146Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8127232Z winmode = None 2023-01-26T12:39:05.8127297Z 2023-01-26T12:39:05.8127443Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8127541Z use_errno=False, 2023-01-26T12:39:05.8127630Z use_last_error=False, 2023-01-26T12:39:05.8127728Z winmode=None): 2023-01-26T12:39:05.8127819Z self._name = name 2023-01-26T12:39:05.8127920Z flags = self._func_flags_ 2023-01-26T12:39:05.8128008Z if use_errno: 2023-01-26T12:39:05.8128122Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8128216Z if use_last_error: 2023-01-26T12:39:05.8128321Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8128449Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8128586Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8128804Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8128963Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8129127Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8129205Z """ 2023-01-26T12:39:05.8129326Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8129457Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8129549Z if _os.name == "nt": 2023-01-26T12:39:05.8129649Z if winmode is not None: 2023-01-26T12:39:05.8129739Z mode = winmode 2023-01-26T12:39:05.8129819Z else: 2023-01-26T12:39:05.8129905Z import nt 2023-01-26T12:39:05.8130026Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8130193Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8130335Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8130471Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8130541Z 2023-01-26T12:39:05.8130651Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8130738Z _flags_ = flags 2023-01-26T12:39:05.8130852Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8130941Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8131010Z 2023-01-26T12:39:05.8131100Z if handle is None: 2023-01-26T12:39:05.8131227Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8131794Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8131804Z 2023-01-26T12:39:05.8131986Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8132115Z ________________________________ test_create_2d ________________________________ 2023-01-26T12:39:05.8132123Z 2023-01-26T12:39:05.8132273Z def test_create_2d(): 2023-01-26T12:39:05.8132329Z 2023-01-26T12:39:05.8132426Z # Define polygon 2023-01-26T12:39:05.8132581Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8132651Z 2023-01-26T12:39:05.8132781Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8132787Z 2023-01-26T12:39:05.8132892Z tests/dflowfm/test_net.py:169: 2023-01-26T12:39:05.8133012Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8133376Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8133469Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8133587Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8133594Z 2023-01-26T12:39:05.8134039Z self = 2023-01-26T12:39:05.8134416Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8134622Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8134706Z winmode = None 2023-01-26T12:39:05.8134713Z 2023-01-26T12:39:05.8134857Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8134956Z use_errno=False, 2023-01-26T12:39:05.8135057Z use_last_error=False, 2023-01-26T12:39:05.8135138Z winmode=None): 2023-01-26T12:39:05.8135228Z self._name = name 2023-01-26T12:39:05.8135326Z flags = self._func_flags_ 2023-01-26T12:39:05.8135410Z if use_errno: 2023-01-26T12:39:05.8135519Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8135609Z if use_last_error: 2023-01-26T12:39:05.8135725Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8135840Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8135979Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8136199Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8136358Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8136520Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8136595Z """ 2023-01-26T12:39:05.8136731Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8136850Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8136945Z if _os.name == "nt": 2023-01-26T12:39:05.8137044Z if winmode is not None: 2023-01-26T12:39:05.8137134Z mode = winmode 2023-01-26T12:39:05.8137211Z else: 2023-01-26T12:39:05.8137297Z import nt 2023-01-26T12:39:05.8137434Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8137587Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8137731Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8137868Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8137938Z 2023-01-26T12:39:05.8138046Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8138134Z _flags_ = flags 2023-01-26T12:39:05.8138249Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8138348Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8138405Z 2023-01-26T12:39:05.8138547Z if handle is None: 2023-01-26T12:39:05.8138679Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8139190Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8139200Z 2023-01-26T12:39:05.8139378Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8139664Z ___ test_create_clip_2d[DeleteMeshOption.ALL_FACE_CIRCUMCENTERS-False-28-90] ___ 2023-01-26T12:39:05.8139671Z 2023-01-26T12:39:05.8139860Z deletemeshoption = , inside = False 2023-01-26T12:39:05.8139958Z nnodes = 28, nedgenodes = 90 2023-01-26T12:39:05.8139965Z 2023-01-26T12:39:05.8140063Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8140233Z "deletemeshoption,inside,nnodes,nedgenodes", 2023-01-26T12:39:05.8140308Z [ 2023-01-26T12:39:05.8140476Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, False, 28, 90), 2023-01-26T12:39:05.8140633Z (DeleteMeshOption.ALL_COMPLETE_FACES, False, 23, 72), 2023-01-26T12:39:05.8140776Z (DeleteMeshOption.ALL_NODES, False, 23, 72), 2023-01-26T12:39:05.8140937Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, True, 23, 72), 2023-01-26T12:39:05.8141090Z (DeleteMeshOption.ALL_COMPLETE_FACES, True, 31, 94), 2023-01-26T12:39:05.8141271Z (DeleteMeshOption.ALL_NODES, True, 22, 64), 2023-01-26T12:39:05.8141346Z ], 2023-01-26T12:39:05.8141418Z ) 2023-01-26T12:39:05.8141591Z def test_create_clip_2d(deletemeshoption, inside, nnodes, nedgenodes): 2023-01-26T12:39:05.8141663Z 2023-01-26T12:39:05.8141884Z # TODO: "All complete faces, outside" does not have the expected behaviour, it is similar to "All nodes, outside" 2023-01-26T12:39:05.8141955Z 2023-01-26T12:39:05.8142046Z polygon = GeometryList( 2023-01-26T12:39:05.8142180Z x_coordinates=np.array([0.0, 6.0, 4.0, 2.0, 0.0]), 2023-01-26T12:39:05.8142311Z y_coordinates=np.array([0.0, 2.0, 7.0, 6.0, 0.0]), 2023-01-26T12:39:05.8142384Z ) 2023-01-26T12:39:05.8142453Z 2023-01-26T12:39:05.8142544Z # Define polygon 2023-01-26T12:39:05.8142691Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8142809Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8142829Z 2023-01-26T12:39:05.8142924Z tests/dflowfm/test_net.py:199: 2023-01-26T12:39:05.8143043Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8143407Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8143516Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8143742Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8143751Z 2023-01-26T12:39:05.8144202Z self = 2023-01-26T12:39:05.8144579Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8144731Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8144800Z winmode = None 2023-01-26T12:39:05.8144823Z 2023-01-26T12:39:05.8144958Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8145057Z use_errno=False, 2023-01-26T12:39:05.8145161Z use_last_error=False, 2023-01-26T12:39:05.8145256Z winmode=None): 2023-01-26T12:39:05.8145349Z self._name = name 2023-01-26T12:39:05.8145449Z flags = self._func_flags_ 2023-01-26T12:39:05.8145538Z if use_errno: 2023-01-26T12:39:05.8145633Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8145791Z if use_last_error: 2023-01-26T12:39:05.8145914Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8146042Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8146179Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8146400Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8146560Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8146710Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8146786Z """ 2023-01-26T12:39:05.8146921Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8147051Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8147143Z if _os.name == "nt": 2023-01-26T12:39:05.8147242Z if winmode is not None: 2023-01-26T12:39:05.8147331Z mode = winmode 2023-01-26T12:39:05.8147406Z else: 2023-01-26T12:39:05.8147482Z import nt 2023-01-26T12:39:05.8147617Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8147783Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8147930Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8148070Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8148143Z 2023-01-26T12:39:05.8148310Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8148386Z _flags_ = flags 2023-01-26T12:39:05.8148501Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8148603Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8148672Z 2023-01-26T12:39:05.8148764Z if handle is None: 2023-01-26T12:39:05.8148892Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8149409Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8149417Z 2023-01-26T12:39:05.8149594Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8149852Z _____ test_create_clip_2d[DeleteMeshOption.ALL_COMPLETE_FACES-False-23-72] _____ 2023-01-26T12:39:05.8149859Z 2023-01-26T12:39:05.8150041Z deletemeshoption = , inside = False 2023-01-26T12:39:05.8150142Z nnodes = 23, nedgenodes = 72 2023-01-26T12:39:05.8150149Z 2023-01-26T12:39:05.8150262Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8150434Z "deletemeshoption,inside,nnodes,nedgenodes", 2023-01-26T12:39:05.8150507Z [ 2023-01-26T12:39:05.8150674Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, False, 28, 90), 2023-01-26T12:39:05.8150826Z (DeleteMeshOption.ALL_COMPLETE_FACES, False, 23, 72), 2023-01-26T12:39:05.8150953Z (DeleteMeshOption.ALL_NODES, False, 23, 72), 2023-01-26T12:39:05.8151114Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, True, 23, 72), 2023-01-26T12:39:05.8151264Z (DeleteMeshOption.ALL_COMPLETE_FACES, True, 31, 94), 2023-01-26T12:39:05.8151399Z (DeleteMeshOption.ALL_NODES, True, 22, 64), 2023-01-26T12:39:05.8151471Z ], 2023-01-26T12:39:05.8151542Z ) 2023-01-26T12:39:05.8151719Z def test_create_clip_2d(deletemeshoption, inside, nnodes, nedgenodes): 2023-01-26T12:39:05.8151776Z 2023-01-26T12:39:05.8152000Z # TODO: "All complete faces, outside" does not have the expected behaviour, it is similar to "All nodes, outside" 2023-01-26T12:39:05.8152070Z 2023-01-26T12:39:05.8152172Z polygon = GeometryList( 2023-01-26T12:39:05.8152302Z x_coordinates=np.array([0.0, 6.0, 4.0, 2.0, 0.0]), 2023-01-26T12:39:05.8152432Z y_coordinates=np.array([0.0, 2.0, 7.0, 6.0, 0.0]), 2023-01-26T12:39:05.8152504Z ) 2023-01-26T12:39:05.8152573Z 2023-01-26T12:39:05.8152650Z # Define polygon 2023-01-26T12:39:05.8152849Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8152983Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8152990Z 2023-01-26T12:39:05.8153094Z tests/dflowfm/test_net.py:199: 2023-01-26T12:39:05.8153213Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8153575Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8153686Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8153804Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8153811Z 2023-01-26T12:39:05.8154241Z self = 2023-01-26T12:39:05.8154618Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8154768Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8154852Z winmode = None 2023-01-26T12:39:05.8154858Z 2023-01-26T12:39:05.8155001Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8155099Z use_errno=False, 2023-01-26T12:39:05.8155202Z use_last_error=False, 2023-01-26T12:39:05.8155296Z winmode=None): 2023-01-26T12:39:05.8155426Z self._name = name 2023-01-26T12:39:05.8155530Z flags = self._func_flags_ 2023-01-26T12:39:05.8155618Z if use_errno: 2023-01-26T12:39:05.8155729Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8155820Z if use_last_error: 2023-01-26T12:39:05.8155937Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8156067Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8156192Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8156412Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8156571Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8156731Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8156806Z """ 2023-01-26T12:39:05.8156943Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8157073Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8157168Z if _os.name == "nt": 2023-01-26T12:39:05.8157256Z if winmode is not None: 2023-01-26T12:39:05.8157346Z mode = winmode 2023-01-26T12:39:05.8157422Z else: 2023-01-26T12:39:05.8157509Z import nt 2023-01-26T12:39:05.8157645Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8157811Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8157958Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8158081Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8158152Z 2023-01-26T12:39:05.8158259Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8158348Z _flags_ = flags 2023-01-26T12:39:05.8158462Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8158562Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8158631Z 2023-01-26T12:39:05.8158711Z if handle is None: 2023-01-26T12:39:05.8158837Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8159347Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8159355Z 2023-01-26T12:39:05.8159533Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8159863Z _________ test_create_clip_2d[DeleteMeshOption.ALL_NODES-False-23-72] __________ 2023-01-26T12:39:05.8159872Z 2023-01-26T12:39:05.8160059Z deletemeshoption = , inside = False, nnodes = 23 2023-01-26T12:39:05.8160144Z nedgenodes = 72 2023-01-26T12:39:05.8160151Z 2023-01-26T12:39:05.8160263Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8160434Z "deletemeshoption,inside,nnodes,nedgenodes", 2023-01-26T12:39:05.8160495Z [ 2023-01-26T12:39:05.8160660Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, False, 28, 90), 2023-01-26T12:39:05.8160818Z (DeleteMeshOption.ALL_COMPLETE_FACES, False, 23, 72), 2023-01-26T12:39:05.8160960Z (DeleteMeshOption.ALL_NODES, False, 23, 72), 2023-01-26T12:39:05.8161122Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, True, 23, 72), 2023-01-26T12:39:05.8161275Z (DeleteMeshOption.ALL_COMPLETE_FACES, True, 31, 94), 2023-01-26T12:39:05.8161418Z (DeleteMeshOption.ALL_NODES, True, 22, 64), 2023-01-26T12:39:05.8161496Z ], 2023-01-26T12:39:05.8161554Z ) 2023-01-26T12:39:05.8161731Z def test_create_clip_2d(deletemeshoption, inside, nnodes, nedgenodes): 2023-01-26T12:39:05.8161804Z 2023-01-26T12:39:05.8162024Z # TODO: "All complete faces, outside" does not have the expected behaviour, it is similar to "All nodes, outside" 2023-01-26T12:39:05.8162097Z 2023-01-26T12:39:05.8162201Z polygon = GeometryList( 2023-01-26T12:39:05.8162331Z x_coordinates=np.array([0.0, 6.0, 4.0, 2.0, 0.0]), 2023-01-26T12:39:05.8162502Z y_coordinates=np.array([0.0, 2.0, 7.0, 6.0, 0.0]), 2023-01-26T12:39:05.8162577Z ) 2023-01-26T12:39:05.8162646Z 2023-01-26T12:39:05.8162737Z # Define polygon 2023-01-26T12:39:05.8162886Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8163015Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8163022Z 2023-01-26T12:39:05.8163130Z tests/dflowfm/test_net.py:199: 2023-01-26T12:39:05.8163238Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8163597Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8163706Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8163823Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8163830Z 2023-01-26T12:39:05.8164277Z self = 2023-01-26T12:39:05.8164659Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8164809Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8164893Z winmode = None 2023-01-26T12:39:05.8164900Z 2023-01-26T12:39:05.8165042Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8165141Z use_errno=False, 2023-01-26T12:39:05.8165230Z use_last_error=False, 2023-01-26T12:39:05.8165322Z winmode=None): 2023-01-26T12:39:05.8165411Z self._name = name 2023-01-26T12:39:05.8165509Z flags = self._func_flags_ 2023-01-26T12:39:05.8165595Z if use_errno: 2023-01-26T12:39:05.8165706Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8165795Z if use_last_error: 2023-01-26T12:39:05.8165902Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8166030Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8166169Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8166386Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8166546Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8166707Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8166832Z """ 2023-01-26T12:39:05.8166959Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8167090Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8167184Z if _os.name == "nt": 2023-01-26T12:39:05.8167284Z if winmode is not None: 2023-01-26T12:39:05.8167373Z mode = winmode 2023-01-26T12:39:05.8167450Z else: 2023-01-26T12:39:05.8167539Z import nt 2023-01-26T12:39:05.8167662Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8167829Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8167973Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8168112Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8168182Z 2023-01-26T12:39:05.8168290Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8168379Z _flags_ = flags 2023-01-26T12:39:05.8168496Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8168583Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8168652Z 2023-01-26T12:39:05.8168742Z if handle is None: 2023-01-26T12:39:05.8168870Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8169385Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8169445Z 2023-01-26T12:39:05.8169625Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8169905Z ___ test_create_clip_2d[DeleteMeshOption.ALL_FACE_CIRCUMCENTERS-True-23-72] ____ 2023-01-26T12:39:05.8169913Z 2023-01-26T12:39:05.8170101Z deletemeshoption = , inside = True 2023-01-26T12:39:05.8170186Z nnodes = 23, nedgenodes = 72 2023-01-26T12:39:05.8170206Z 2023-01-26T12:39:05.8170308Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8170477Z "deletemeshoption,inside,nnodes,nedgenodes", 2023-01-26T12:39:05.8170552Z [ 2023-01-26T12:39:05.8170717Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, False, 28, 90), 2023-01-26T12:39:05.8170870Z (DeleteMeshOption.ALL_COMPLETE_FACES, False, 23, 72), 2023-01-26T12:39:05.8171011Z (DeleteMeshOption.ALL_NODES, False, 23, 72), 2023-01-26T12:39:05.8171173Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, True, 23, 72), 2023-01-26T12:39:05.8171311Z (DeleteMeshOption.ALL_COMPLETE_FACES, True, 31, 94), 2023-01-26T12:39:05.8171447Z (DeleteMeshOption.ALL_NODES, True, 22, 64), 2023-01-26T12:39:05.8171521Z ], 2023-01-26T12:39:05.8171595Z ) 2023-01-26T12:39:05.8171767Z def test_create_clip_2d(deletemeshoption, inside, nnodes, nedgenodes): 2023-01-26T12:39:05.8171839Z 2023-01-26T12:39:05.8172062Z # TODO: "All complete faces, outside" does not have the expected behaviour, it is similar to "All nodes, outside" 2023-01-26T12:39:05.8172120Z 2023-01-26T12:39:05.8172223Z polygon = GeometryList( 2023-01-26T12:39:05.8172355Z x_coordinates=np.array([0.0, 6.0, 4.0, 2.0, 0.0]), 2023-01-26T12:39:05.8172484Z y_coordinates=np.array([0.0, 2.0, 7.0, 6.0, 0.0]), 2023-01-26T12:39:05.8172556Z ) 2023-01-26T12:39:05.8172625Z 2023-01-26T12:39:05.8172715Z # Define polygon 2023-01-26T12:39:05.8172851Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8172980Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8172991Z 2023-01-26T12:39:05.8173098Z tests/dflowfm/test_net.py:199: 2023-01-26T12:39:05.8173215Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8173579Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8173687Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8173857Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8173865Z 2023-01-26T12:39:05.8174314Z self = 2023-01-26T12:39:05.8174690Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8174846Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8174918Z winmode = None 2023-01-26T12:39:05.8174924Z 2023-01-26T12:39:05.8175067Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8175162Z use_errno=False, 2023-01-26T12:39:05.8175263Z use_last_error=False, 2023-01-26T12:39:05.8175356Z winmode=None): 2023-01-26T12:39:05.8175446Z self._name = name 2023-01-26T12:39:05.8175546Z flags = self._func_flags_ 2023-01-26T12:39:05.8175619Z if use_errno: 2023-01-26T12:39:05.8175728Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8175820Z if use_last_error: 2023-01-26T12:39:05.8175935Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8176063Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8176243Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8176465Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8176669Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8176831Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8176908Z """ 2023-01-26T12:39:05.8177047Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8177180Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8177277Z if _os.name == "nt": 2023-01-26T12:39:05.8177383Z if winmode is not None: 2023-01-26T12:39:05.8177475Z mode = winmode 2023-01-26T12:39:05.8177538Z else: 2023-01-26T12:39:05.8177627Z import nt 2023-01-26T12:39:05.8177763Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8177932Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8178075Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8178215Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8178287Z 2023-01-26T12:39:05.8178382Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8178470Z _flags_ = flags 2023-01-26T12:39:05.8178589Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8178688Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8178758Z 2023-01-26T12:39:05.8178849Z if handle is None: 2023-01-26T12:39:05.8178978Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8179478Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8179498Z 2023-01-26T12:39:05.8179664Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8179935Z _____ test_create_clip_2d[DeleteMeshOption.ALL_COMPLETE_FACES-True-31-94] ______ 2023-01-26T12:39:05.8179945Z 2023-01-26T12:39:05.8180126Z deletemeshoption = , inside = True 2023-01-26T12:39:05.8180224Z nnodes = 31, nedgenodes = 94 2023-01-26T12:39:05.8180231Z 2023-01-26T12:39:05.8180344Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8180513Z "deletemeshoption,inside,nnodes,nedgenodes", 2023-01-26T12:39:05.8180587Z [ 2023-01-26T12:39:05.8180752Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, False, 28, 90), 2023-01-26T12:39:05.8180949Z (DeleteMeshOption.ALL_COMPLETE_FACES, False, 23, 72), 2023-01-26T12:39:05.8181096Z (DeleteMeshOption.ALL_NODES, False, 23, 72), 2023-01-26T12:39:05.8181257Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, True, 23, 72), 2023-01-26T12:39:05.8181408Z (DeleteMeshOption.ALL_COMPLETE_FACES, True, 31, 94), 2023-01-26T12:39:05.8181545Z (DeleteMeshOption.ALL_NODES, True, 22, 64), 2023-01-26T12:39:05.8181619Z ], 2023-01-26T12:39:05.8181694Z ) 2023-01-26T12:39:05.8181867Z def test_create_clip_2d(deletemeshoption, inside, nnodes, nedgenodes): 2023-01-26T12:39:05.8181925Z 2023-01-26T12:39:05.8182141Z # TODO: "All complete faces, outside" does not have the expected behaviour, it is similar to "All nodes, outside" 2023-01-26T12:39:05.8182213Z 2023-01-26T12:39:05.8182317Z polygon = GeometryList( 2023-01-26T12:39:05.8182448Z x_coordinates=np.array([0.0, 6.0, 4.0, 2.0, 0.0]), 2023-01-26T12:39:05.8182582Z y_coordinates=np.array([0.0, 2.0, 7.0, 6.0, 0.0]), 2023-01-26T12:39:05.8182655Z ) 2023-01-26T12:39:05.8182711Z 2023-01-26T12:39:05.8182803Z # Define polygon 2023-01-26T12:39:05.8182950Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8183080Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8183087Z 2023-01-26T12:39:05.8183191Z tests/dflowfm/test_net.py:199: 2023-01-26T12:39:05.8183312Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8183867Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8183982Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8184087Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8184094Z 2023-01-26T12:39:05.8184542Z self = 2023-01-26T12:39:05.8184920Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8185073Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8185159Z winmode = None 2023-01-26T12:39:05.8185166Z 2023-01-26T12:39:05.8185312Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8185414Z use_errno=False, 2023-01-26T12:39:05.8185518Z use_last_error=False, 2023-01-26T12:39:05.8185597Z winmode=None): 2023-01-26T12:39:05.8185691Z self._name = name 2023-01-26T12:39:05.8185791Z flags = self._func_flags_ 2023-01-26T12:39:05.8185881Z if use_errno: 2023-01-26T12:39:05.8185991Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8186084Z if use_last_error: 2023-01-26T12:39:05.8186204Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8186322Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8186465Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8186681Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8186844Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8187006Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8187084Z """ 2023-01-26T12:39:05.8187221Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8187350Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8187431Z if _os.name == "nt": 2023-01-26T12:39:05.8187532Z if winmode is not None: 2023-01-26T12:39:05.8187621Z mode = winmode 2023-01-26T12:39:05.8187699Z else: 2023-01-26T12:39:05.8187785Z import nt 2023-01-26T12:39:05.8187986Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8188159Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8188289Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8188425Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8188495Z 2023-01-26T12:39:05.8188603Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8188693Z _flags_ = flags 2023-01-26T12:39:05.8188812Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8188914Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8188970Z 2023-01-26T12:39:05.8189061Z if handle is None: 2023-01-26T12:39:05.8189188Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8189700Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8189708Z 2023-01-26T12:39:05.8189890Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8190154Z __________ test_create_clip_2d[DeleteMeshOption.ALL_NODES-True-22-64] __________ 2023-01-26T12:39:05.8190162Z 2023-01-26T12:39:05.8190343Z deletemeshoption = , inside = True, nnodes = 22 2023-01-26T12:39:05.8190427Z nedgenodes = 64 2023-01-26T12:39:05.8190434Z 2023-01-26T12:39:05.8190546Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8190763Z "deletemeshoption,inside,nnodes,nedgenodes", 2023-01-26T12:39:05.8190838Z [ 2023-01-26T12:39:05.8191002Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, False, 28, 90), 2023-01-26T12:39:05.8191157Z (DeleteMeshOption.ALL_COMPLETE_FACES, False, 23, 72), 2023-01-26T12:39:05.8191295Z (DeleteMeshOption.ALL_NODES, False, 23, 72), 2023-01-26T12:39:05.8191456Z (DeleteMeshOption.ALL_FACE_CIRCUMCENTERS, True, 23, 72), 2023-01-26T12:39:05.8191611Z (DeleteMeshOption.ALL_COMPLETE_FACES, True, 31, 94), 2023-01-26T12:39:05.8191749Z (DeleteMeshOption.ALL_NODES, True, 22, 64), 2023-01-26T12:39:05.8191811Z ], 2023-01-26T12:39:05.8191882Z ) 2023-01-26T12:39:05.8192059Z def test_create_clip_2d(deletemeshoption, inside, nnodes, nedgenodes): 2023-01-26T12:39:05.8192129Z 2023-01-26T12:39:05.8192347Z # TODO: "All complete faces, outside" does not have the expected behaviour, it is similar to "All nodes, outside" 2023-01-26T12:39:05.8192421Z 2023-01-26T12:39:05.8192526Z polygon = GeometryList( 2023-01-26T12:39:05.8192643Z x_coordinates=np.array([0.0, 6.0, 4.0, 2.0, 0.0]), 2023-01-26T12:39:05.8192776Z y_coordinates=np.array([0.0, 2.0, 7.0, 6.0, 0.0]), 2023-01-26T12:39:05.8192848Z ) 2023-01-26T12:39:05.8192918Z 2023-01-26T12:39:05.8193007Z # Define polygon 2023-01-26T12:39:05.8193154Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8193289Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8193296Z 2023-01-26T12:39:05.8193387Z tests/dflowfm/test_net.py:199: 2023-01-26T12:39:05.8193504Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8193863Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8193971Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8194094Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8194101Z 2023-01-26T12:39:05.8194547Z self = 2023-01-26T12:39:05.8194920Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8195071Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8195204Z winmode = None 2023-01-26T12:39:05.8195213Z 2023-01-26T12:39:05.8195357Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8195442Z use_errno=False, 2023-01-26T12:39:05.8195544Z use_last_error=False, 2023-01-26T12:39:05.8195637Z winmode=None): 2023-01-26T12:39:05.8195727Z self._name = name 2023-01-26T12:39:05.8195826Z flags = self._func_flags_ 2023-01-26T12:39:05.8195914Z if use_errno: 2023-01-26T12:39:05.8196023Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8196101Z if use_last_error: 2023-01-26T12:39:05.8196217Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8196345Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8196485Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8196704Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8196866Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8197024Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8197087Z """ 2023-01-26T12:39:05.8197223Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8197352Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8197444Z if _os.name == "nt": 2023-01-26T12:39:05.8197601Z if winmode is not None: 2023-01-26T12:39:05.8197692Z mode = winmode 2023-01-26T12:39:05.8197771Z else: 2023-01-26T12:39:05.8197844Z import nt 2023-01-26T12:39:05.8197982Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8198151Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8198295Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8198434Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8198505Z 2023-01-26T12:39:05.8198612Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8198702Z _flags_ = flags 2023-01-26T12:39:05.8198805Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8198906Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8198976Z 2023-01-26T12:39:05.8199070Z if handle is None: 2023-01-26T12:39:05.8199199Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8199712Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8199720Z 2023-01-26T12:39:05.8199899Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8200035Z ____________________________ test_create_refine_2d _____________________________ 2023-01-26T12:39:05.8200042Z 2023-01-26T12:39:05.8200134Z def test_create_refine_2d(): 2023-01-26T12:39:05.8200206Z 2023-01-26T12:39:05.8200309Z polygon = GeometryList( 2023-01-26T12:39:05.8200439Z x_coordinates=np.array([0.0, 6.0, 4.0, 2.0, 0.0]), 2023-01-26T12:39:05.8200568Z y_coordinates=np.array([0.0, 2.0, 7.0, 6.0, 0.0]), 2023-01-26T12:39:05.8200641Z ) 2023-01-26T12:39:05.8200712Z 2023-01-26T12:39:05.8200788Z # Define polygon 2023-01-26T12:39:05.8200934Z bbox = (1.0, -2.0, 3.0, 4.0) 2023-01-26T12:39:05.8201027Z # Create instance 2023-01-26T12:39:05.8201157Z > mesh2d = Mesh2d(meshkernel=MeshKernel()) 2023-01-26T12:39:05.8201164Z 2023-01-26T12:39:05.8201268Z tests/dflowfm/test_net.py:218: 2023-01-26T12:39:05.8201384Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8201742Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8201902Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8202009Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8202030Z 2023-01-26T12:39:05.8202464Z self = 2023-01-26T12:39:05.8202837Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8202990Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8203073Z winmode = None 2023-01-26T12:39:05.8203080Z 2023-01-26T12:39:05.8203224Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8203321Z use_errno=False, 2023-01-26T12:39:05.8203422Z use_last_error=False, 2023-01-26T12:39:05.8203514Z winmode=None): 2023-01-26T12:39:05.8203591Z self._name = name 2023-01-26T12:39:05.8203691Z flags = self._func_flags_ 2023-01-26T12:39:05.8203776Z if use_errno: 2023-01-26T12:39:05.8203884Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8203975Z if use_last_error: 2023-01-26T12:39:05.8204092Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8204221Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8204345Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8204622Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8204784Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8204942Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8205018Z """ 2023-01-26T12:39:05.8205154Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8205284Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8205378Z if _os.name == "nt": 2023-01-26T12:39:05.8205467Z if winmode is not None: 2023-01-26T12:39:05.8205556Z mode = winmode 2023-01-26T12:39:05.8205632Z else: 2023-01-26T12:39:05.8205718Z import nt 2023-01-26T12:39:05.8205854Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8206022Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8206165Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8206292Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8206363Z 2023-01-26T12:39:05.8206470Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8206559Z _flags_ = flags 2023-01-26T12:39:05.8206673Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8206773Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8206842Z 2023-01-26T12:39:05.8206920Z if handle is None: 2023-01-26T12:39:05.8207050Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8207559Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8207567Z 2023-01-26T12:39:05.8207747Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8207887Z _________________________ test_read_net_nc[filepath0] __________________________ 2023-01-26T12:39:05.8207897Z 2023-01-26T12:39:05.8208324Z filepath = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/input/e02/f101_1D-boundaries/c01_steady-state-flow/Boundary_net.nc') 2023-01-26T12:39:05.8208332Z 2023-01-26T12:39:05.8208447Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8208529Z "filepath", 2023-01-26T12:39:05.8208604Z cases, 2023-01-26T12:39:05.8208661Z ) 2023-01-26T12:39:05.8208770Z def test_read_net_nc(filepath): 2023-01-26T12:39:05.8208915Z # Get nc file path 2023-01-26T12:39:05.8209024Z if not filepath.exists(): 2023-01-26T12:39:05.8209278Z raise FileNotFoundError(f'File "{filepath.resolve()}" not found.') 2023-01-26T12:39:05.8209348Z 2023-01-26T12:39:05.8209445Z # Create network model 2023-01-26T12:39:05.8209563Z > network = NetworkModel(filepath=filepath) 2023-01-26T12:39:05.8209571Z 2023-01-26T12:39:05.8209676Z tests/dflowfm/test_net.py:246: 2023-01-26T12:39:05.8209795Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8209919Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8210024Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8210143Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8210238Z super().__init__(**data) 2023-01-26T12:39:05.8210396Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8210456Z ??? 2023-01-26T12:39:05.8210607Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8210680Z ??? 2023-01-26T12:39:05.8210860Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8210932Z ??? 2023-01-26T12:39:05.8211068Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8211225Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8211574Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8211757Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8211877Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8211885Z 2023-01-26T12:39:05.8212331Z self = 2023-01-26T12:39:05.8212708Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8212859Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8212943Z winmode = None 2023-01-26T12:39:05.8212950Z 2023-01-26T12:39:05.8213094Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8213190Z use_errno=False, 2023-01-26T12:39:05.8213279Z use_last_error=False, 2023-01-26T12:39:05.8213373Z winmode=None): 2023-01-26T12:39:05.8213463Z self._name = name 2023-01-26T12:39:05.8213564Z flags = self._func_flags_ 2023-01-26T12:39:05.8213651Z if use_errno: 2023-01-26T12:39:05.8213761Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8213857Z if use_last_error: 2023-01-26T12:39:05.8213961Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8214094Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8214237Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8214456Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8214618Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8214777Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8214853Z """ 2023-01-26T12:39:05.8214975Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8215109Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8215201Z if _os.name == "nt": 2023-01-26T12:39:05.8215302Z if winmode is not None: 2023-01-26T12:39:05.8215392Z mode = winmode 2023-01-26T12:39:05.8215469Z else: 2023-01-26T12:39:05.8215555Z import nt 2023-01-26T12:39:05.8215690Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8215844Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8216039Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8216179Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8216250Z 2023-01-26T12:39:05.8216357Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8216445Z _flags_ = flags 2023-01-26T12:39:05.8216561Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8216648Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8216720Z 2023-01-26T12:39:05.8216811Z if handle is None: 2023-01-26T12:39:05.8216939Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8217458Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8217467Z 2023-01-26T12:39:05.8217644Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8217786Z _________________________ test_read_net_nc[filepath1] __________________________ 2023-01-26T12:39:05.8217793Z 2023-01-26T12:39:05.8218209Z filepath = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/input/e02/c11_korte-woerden-1d/dimr_model/dflowfm/FlowFM_net.nc') 2023-01-26T12:39:05.8218216Z 2023-01-26T12:39:05.8218330Z @pytest.mark.parametrize( 2023-01-26T12:39:05.8218400Z "filepath", 2023-01-26T12:39:05.8218477Z cases, 2023-01-26T12:39:05.8218605Z ) 2023-01-26T12:39:05.8218713Z def test_read_net_nc(filepath): 2023-01-26T12:39:05.8218805Z # Get nc file path 2023-01-26T12:39:05.8218910Z if not filepath.exists(): 2023-01-26T12:39:05.8219165Z raise FileNotFoundError(f'File "{filepath.resolve()}" not found.') 2023-01-26T12:39:05.8219225Z 2023-01-26T12:39:05.8219324Z # Create network model 2023-01-26T12:39:05.8219455Z > network = NetworkModel(filepath=filepath) 2023-01-26T12:39:05.8219462Z 2023-01-26T12:39:05.8219570Z tests/dflowfm/test_net.py:246: 2023-01-26T12:39:05.8219689Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8219812Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8219916Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8220037Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8220119Z super().__init__(**data) 2023-01-26T12:39:05.8220277Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8220353Z ??? 2023-01-26T12:39:05.8220503Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8220575Z ??? 2023-01-26T12:39:05.8220750Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8220820Z ??? 2023-01-26T12:39:05.8220942Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8221100Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8221459Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8221595Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8221715Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8221722Z 2023-01-26T12:39:05.8222170Z self = 2023-01-26T12:39:05.8222552Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8222704Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8222776Z winmode = None 2023-01-26T12:39:05.8222798Z 2023-01-26T12:39:05.8222928Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8223025Z use_errno=False, 2023-01-26T12:39:05.8223127Z use_last_error=False, 2023-01-26T12:39:05.8223278Z winmode=None): 2023-01-26T12:39:05.8223372Z self._name = name 2023-01-26T12:39:05.8223469Z flags = self._func_flags_ 2023-01-26T12:39:05.8223554Z if use_errno: 2023-01-26T12:39:05.8223750Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8223846Z if use_last_error: 2023-01-26T12:39:05.8223964Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8224097Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8224239Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8224463Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8224625Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8224770Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8224850Z """ 2023-01-26T12:39:05.8224991Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8225126Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8225225Z if _os.name == "nt": 2023-01-26T12:39:05.8225329Z if winmode is not None: 2023-01-26T12:39:05.8225423Z mode = winmode 2023-01-26T12:39:05.8225501Z else: 2023-01-26T12:39:05.8225575Z import nt 2023-01-26T12:39:05.8225713Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8225947Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8226091Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8226227Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8226299Z 2023-01-26T12:39:05.8226406Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8226482Z _flags_ = flags 2023-01-26T12:39:05.8226596Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8226702Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8226773Z 2023-01-26T12:39:05.8226863Z if handle is None: 2023-01-26T12:39:05.8226989Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8227506Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8227514Z 2023-01-26T12:39:05.8227692Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8227833Z ___________________ test_read_write_read_compare[filepath0] ____________________ 2023-01-26T12:39:05.8227841Z 2023-01-26T12:39:05.8228258Z filepath = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/input/e02/f101_1D-boundaries/c01_steady-state-flow/Boundary_net.nc') 2023-01-26T12:39:05.8228265Z 2023-01-26T12:39:05.8228406Z @pytest.mark.parametrize("filepath", cases) 2023-01-26T12:39:05.8228538Z def test_read_write_read_compare(filepath): 2023-01-26T12:39:05.8228630Z # Get nc file path 2023-01-26T12:39:05.8228739Z assert filepath.exists() 2023-01-26T12:39:05.8228808Z 2023-01-26T12:39:05.8228907Z # Create network model 2023-01-26T12:39:05.8229027Z > network1 = NetworkModel(filepath=filepath) 2023-01-26T12:39:05.8229047Z 2023-01-26T12:39:05.8229139Z tests/dflowfm/test_net.py:257: 2023-01-26T12:39:05.8229256Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8229383Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8229485Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8229605Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8229699Z super().__init__(**data) 2023-01-26T12:39:05.8229857Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8229919Z ??? 2023-01-26T12:39:05.8230070Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8230206Z ??? 2023-01-26T12:39:05.8230390Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8230462Z ??? 2023-01-26T12:39:05.8230597Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8230753Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8231108Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8231221Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8231337Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8231344Z 2023-01-26T12:39:05.8231787Z self = 2023-01-26T12:39:05.8232160Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8232318Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8232407Z winmode = None 2023-01-26T12:39:05.8232414Z 2023-01-26T12:39:05.8232561Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8232660Z use_errno=False, 2023-01-26T12:39:05.8232748Z use_last_error=False, 2023-01-26T12:39:05.8232844Z winmode=None): 2023-01-26T12:39:05.8232990Z self._name = name 2023-01-26T12:39:05.8233089Z flags = self._func_flags_ 2023-01-26T12:39:05.8233178Z if use_errno: 2023-01-26T12:39:05.8233286Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8233376Z if use_last_error: 2023-01-26T12:39:05.8233479Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8233609Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8233746Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8233967Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8234128Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8234287Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8234363Z """ 2023-01-26T12:39:05.8235069Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8235238Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8235337Z if _os.name == "nt": 2023-01-26T12:39:05.8235439Z if winmode is not None: 2023-01-26T12:39:05.8235531Z mode = winmode 2023-01-26T12:39:05.8235611Z else: 2023-01-26T12:39:05.8235704Z import nt 2023-01-26T12:39:05.8235843Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8236041Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8236185Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8236326Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8236399Z 2023-01-26T12:39:05.8236510Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8236600Z _flags_ = flags 2023-01-26T12:39:05.8236718Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8236804Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8236875Z 2023-01-26T12:39:05.8236969Z if handle is None: 2023-01-26T12:39:05.8237104Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8237621Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8237633Z 2023-01-26T12:39:05.8237813Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8238045Z ___________________ test_read_write_read_compare[filepath1] ____________________ 2023-01-26T12:39:05.8238054Z 2023-01-26T12:39:05.8238472Z filepath = PosixPath('/home/runner/work/HYDROLIB-core/HYDROLIB-core/tests/data/input/e02/c11_korte-woerden-1d/dimr_model/dflowfm/FlowFM_net.nc') 2023-01-26T12:39:05.8238480Z 2023-01-26T12:39:05.8238623Z @pytest.mark.parametrize("filepath", cases) 2023-01-26T12:39:05.8238739Z def test_read_write_read_compare(filepath): 2023-01-26T12:39:05.8238833Z # Get nc file path 2023-01-26T12:39:05.8238950Z assert filepath.exists() 2023-01-26T12:39:05.8239023Z 2023-01-26T12:39:05.8239122Z # Create network model 2023-01-26T12:39:05.8239257Z > network1 = NetworkModel(filepath=filepath) 2023-01-26T12:39:05.8239265Z 2023-01-26T12:39:05.8239372Z tests/dflowfm/test_net.py:257: 2023-01-26T12:39:05.8239494Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8239604Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8239713Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8239836Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8239932Z super().__init__(**data) 2023-01-26T12:39:05.8240095Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8240172Z ??? 2023-01-26T12:39:05.8240324Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8240383Z ??? 2023-01-26T12:39:05.8240562Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8240692Z ??? 2023-01-26T12:39:05.8240829Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8240988Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8241350Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8241458Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8241578Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8241588Z 2023-01-26T12:39:05.8242015Z self = 2023-01-26T12:39:05.8242388Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8242539Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8242627Z winmode = None 2023-01-26T12:39:05.8242634Z 2023-01-26T12:39:05.8242776Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8242874Z use_errno=False, 2023-01-26T12:39:05.8242976Z use_last_error=False, 2023-01-26T12:39:05.8243068Z winmode=None): 2023-01-26T12:39:05.8243147Z self._name = name 2023-01-26T12:39:05.8243245Z flags = self._func_flags_ 2023-01-26T12:39:05.8243330Z if use_errno: 2023-01-26T12:39:05.8243440Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8243532Z if use_last_error: 2023-01-26T12:39:05.8243649Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8243779Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8243903Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8244120Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8244280Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8244443Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8244519Z """ 2023-01-26T12:39:05.8244654Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8244786Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8244878Z if _os.name == "nt": 2023-01-26T12:39:05.8244965Z if winmode is not None: 2023-01-26T12:39:05.8245105Z mode = winmode 2023-01-26T12:39:05.8245186Z else: 2023-01-26T12:39:05.8245272Z import nt 2023-01-26T12:39:05.8245409Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8245578Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8245720Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8245846Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8245921Z 2023-01-26T12:39:05.8246029Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8246119Z _flags_ = flags 2023-01-26T12:39:05.8246235Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8246337Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8246409Z 2023-01-26T12:39:05.8246486Z if handle is None: 2023-01-26T12:39:05.8246614Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8247128Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8247136Z 2023-01-26T12:39:05.8247317Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8247473Z __________________ TestMesh2d.test_read_file_expected_results __________________ 2023-01-26T12:39:05.8247481Z 2023-01-26T12:39:05.8247644Z self = 2023-01-26T12:39:05.8247707Z 2023-01-26T12:39:05.8247836Z def test_read_file_expected_results(self): 2023-01-26T12:39:05.8247924Z > mesh = Mesh2d() 2023-01-26T12:39:05.8247931Z 2023-01-26T12:39:05.8248037Z tests/dflowfm/test_net.py:299: 2023-01-26T12:39:05.8248155Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8248264Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8248357Z super().__init__(**data) 2023-01-26T12:39:05.8248516Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8248589Z ??? 2023-01-26T12:39:05.8248739Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8248812Z ??? 2023-01-26T12:39:05.8248987Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8249046Z ??? 2023-01-26T12:39:05.8249408Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8249517Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8249633Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8249640Z 2023-01-26T12:39:05.8250085Z self = 2023-01-26T12:39:05.8250465Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8250617Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8250699Z winmode = None 2023-01-26T12:39:05.8250706Z 2023-01-26T12:39:05.8250850Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8250935Z use_errno=False, 2023-01-26T12:39:05.8251036Z use_last_error=False, 2023-01-26T12:39:05.8251130Z winmode=None): 2023-01-26T12:39:05.8251222Z self._name = name 2023-01-26T12:39:05.8251319Z flags = self._func_flags_ 2023-01-26T12:39:05.8251405Z if use_errno: 2023-01-26T12:39:05.8251513Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8251591Z if use_last_error: 2023-01-26T12:39:05.8251706Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8251834Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8252029Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8252296Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8252460Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8252620Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8252683Z """ 2023-01-26T12:39:05.8252820Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8252952Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8253048Z if _os.name == "nt": 2023-01-26T12:39:05.8253148Z if winmode is not None: 2023-01-26T12:39:05.8253237Z mode = winmode 2023-01-26T12:39:05.8253314Z else: 2023-01-26T12:39:05.8253401Z import nt 2023-01-26T12:39:05.8253523Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8253692Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8253841Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8253978Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8254049Z 2023-01-26T12:39:05.8254155Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8254245Z _flags_ = flags 2023-01-26T12:39:05.8254345Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8254445Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8254515Z 2023-01-26T12:39:05.8254661Z if handle is None: 2023-01-26T12:39:05.8254848Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8255360Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8255369Z 2023-01-26T12:39:05.8255548Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8255696Z _______________________ test_add_short_connecting_branch _______________________ 2023-01-26T12:39:05.8255703Z 2023-01-26T12:39:05.8255813Z def test_add_short_connecting_branch(): 2023-01-26T12:39:05.8255906Z > fmmodel = FMModel() 2023-01-26T12:39:05.8255912Z 2023-01-26T12:39:05.8256015Z tests/dflowfm/test_net.py:524: 2023-01-26T12:39:05.8256135Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8256259Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8256365Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8256487Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8256582Z super().__init__(**data) 2023-01-26T12:39:05.8256726Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8256800Z ??? 2023-01-26T12:39:05.8256950Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8257022Z ??? 2023-01-26T12:39:05.8257196Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8257270Z ??? 2023-01-26T12:39:05.8257390Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8257471Z super().__init__(**data) 2023-01-26T12:39:05.8257625Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8257697Z ??? 2023-01-26T12:39:05.8257846Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8257917Z ??? 2023-01-26T12:39:05.8258092Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8258167Z ??? 2023-01-26T12:39:05.8258276Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8258379Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8258499Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8258592Z super().__init__(**data) 2023-01-26T12:39:05.8258747Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8258820Z ??? 2023-01-26T12:39:05.8258972Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8259089Z ??? 2023-01-26T12:39:05.8259266Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8259337Z ??? 2023-01-26T12:39:05.8259471Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8259631Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8259998Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8260109Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8260227Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8260234Z 2023-01-26T12:39:05.8260664Z self = 2023-01-26T12:39:05.8261042Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8261195Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8261280Z winmode = None 2023-01-26T12:39:05.8261287Z 2023-01-26T12:39:05.8261432Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8261529Z use_errno=False, 2023-01-26T12:39:05.8261630Z use_last_error=False, 2023-01-26T12:39:05.8261727Z winmode=None): 2023-01-26T12:39:05.8261860Z self._name = name 2023-01-26T12:39:05.8261960Z flags = self._func_flags_ 2023-01-26T12:39:05.8262045Z if use_errno: 2023-01-26T12:39:05.8262153Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8262243Z if use_last_error: 2023-01-26T12:39:05.8262361Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8262490Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8262630Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8262839Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8263001Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8263160Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8263237Z """ 2023-01-26T12:39:05.8263372Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8263503Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8263600Z if _os.name == "nt": 2023-01-26T12:39:05.8263811Z if winmode is not None: 2023-01-26T12:39:05.8263906Z mode = winmode 2023-01-26T12:39:05.8263986Z else: 2023-01-26T12:39:05.8264074Z import nt 2023-01-26T12:39:05.8264213Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8264384Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8264535Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8264660Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8264733Z 2023-01-26T12:39:05.8264841Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8264934Z _flags_ = flags 2023-01-26T12:39:05.8265052Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8265155Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8265226Z 2023-01-26T12:39:05.8265307Z if handle is None: 2023-01-26T12:39:05.8265434Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8265948Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8265957Z 2023-01-26T12:39:05.8266136Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8266369Z ____________________________ test_create_triangular ____________________________ 2023-01-26T12:39:05.8266378Z 2023-01-26T12:39:05.8266488Z def test_create_triangular(): 2023-01-26T12:39:05.8266562Z 2023-01-26T12:39:05.8266657Z > fmmodel = FMModel() 2023-01-26T12:39:05.8266664Z 2023-01-26T12:39:05.8266770Z tests/dflowfm/test_net.py:549: 2023-01-26T12:39:05.8266877Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8267004Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8267114Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8267237Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8267333Z super().__init__(**data) 2023-01-26T12:39:05.8267493Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8267567Z ??? 2023-01-26T12:39:05.8267719Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8267779Z ??? 2023-01-26T12:39:05.8267958Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8268033Z ??? 2023-01-26T12:39:05.8268154Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8268248Z super().__init__(**data) 2023-01-26T12:39:05.8268401Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8268475Z ??? 2023-01-26T12:39:05.8268611Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8268681Z ??? 2023-01-26T12:39:05.8268856Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8268984Z ??? 2023-01-26T12:39:05.8269105Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8269208Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8269328Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8269408Z super().__init__(**data) 2023-01-26T12:39:05.8269561Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8269633Z ??? 2023-01-26T12:39:05.8269782Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8269856Z ??? 2023-01-26T12:39:05.8270030Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8270103Z ??? 2023-01-26T12:39:05.8270225Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8270386Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8270750Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8270861Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8270979Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8270986Z 2023-01-26T12:39:05.8271427Z self = 2023-01-26T12:39:05.8271806Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8271960Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8272044Z winmode = None 2023-01-26T12:39:05.8272051Z 2023-01-26T12:39:05.8272182Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8272281Z use_errno=False, 2023-01-26T12:39:05.8272381Z use_last_error=False, 2023-01-26T12:39:05.8272475Z winmode=None): 2023-01-26T12:39:05.8272568Z self._name = name 2023-01-26T12:39:05.8272667Z flags = self._func_flags_ 2023-01-26T12:39:05.8272751Z if use_errno: 2023-01-26T12:39:05.8272846Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8272937Z if use_last_error: 2023-01-26T12:39:05.8273054Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8273182Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8273319Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8273585Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8273751Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8273910Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8273973Z """ 2023-01-26T12:39:05.8274110Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8274241Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8274349Z if _os.name == "nt": 2023-01-26T12:39:05.8274436Z if winmode is not None: 2023-01-26T12:39:05.8274526Z mode = winmode 2023-01-26T12:39:05.8274603Z else: 2023-01-26T12:39:05.8274688Z import nt 2023-01-26T12:39:05.8274825Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8274994Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8275139Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8275263Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8275334Z 2023-01-26T12:39:05.8275441Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8275530Z _flags_ = flags 2023-01-26T12:39:05.8275643Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8275742Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8275813Z 2023-01-26T12:39:05.8275945Z if handle is None: 2023-01-26T12:39:05.8276075Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8276623Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8276631Z 2023-01-26T12:39:05.8276814Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8276949Z _____________________________ test_add_1d2d_links ______________________________ 2023-01-26T12:39:05.8276956Z 2023-01-26T12:39:05.8277051Z def test_add_1d2d_links(): 2023-01-26T12:39:05.8277120Z 2023-01-26T12:39:05.8277206Z # Create branch 2023-01-26T12:39:05.8277420Z branch = Branch(geometry=np.array([[-10, 5], [10, -5]])) 2023-01-26T12:39:05.8277512Z branch.generate_nodes(2) 2023-01-26T12:39:05.8277598Z # Create Mesh1d 2023-01-26T12:39:05.8277710Z > network = NetworkModel().network 2023-01-26T12:39:05.8277719Z 2023-01-26T12:39:05.8277825Z tests/dflowfm/test_net.py:580: 2023-01-26T12:39:05.8277943Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8278067Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8278170Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8278277Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8278369Z super().__init__(**data) 2023-01-26T12:39:05.8278528Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8278602Z ??? 2023-01-26T12:39:05.8278750Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8278822Z ??? 2023-01-26T12:39:05.8278995Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8279066Z ??? 2023-01-26T12:39:05.8279188Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8279348Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8279709Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8279817Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8279935Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8279942Z 2023-01-26T12:39:05.8280439Z self = 2023-01-26T12:39:05.8280819Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8280971Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8281041Z winmode = None 2023-01-26T12:39:05.8281059Z 2023-01-26T12:39:05.8281189Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8281286Z use_errno=False, 2023-01-26T12:39:05.8281391Z use_last_error=False, 2023-01-26T12:39:05.8281484Z winmode=None): 2023-01-26T12:39:05.8281574Z self._name = name 2023-01-26T12:39:05.8281673Z flags = self._func_flags_ 2023-01-26T12:39:05.8281758Z if use_errno: 2023-01-26T12:39:05.8281854Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8281944Z if use_last_error: 2023-01-26T12:39:05.8282061Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8282193Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8282330Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8282547Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8282706Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8282853Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8282931Z """ 2023-01-26T12:39:05.8283121Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8283250Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8283342Z if _os.name == "nt": 2023-01-26T12:39:05.8283443Z if winmode is not None: 2023-01-26T12:39:05.8283532Z mode = winmode 2023-01-26T12:39:05.8283596Z else: 2023-01-26T12:39:05.8283684Z import nt 2023-01-26T12:39:05.8283820Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8283990Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8284135Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8284272Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8284341Z 2023-01-26T12:39:05.8284448Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8284524Z _flags_ = flags 2023-01-26T12:39:05.8284638Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8284740Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8284810Z 2023-01-26T12:39:05.8284899Z if handle is None: 2023-01-26T12:39:05.8285026Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8285534Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8285542Z 2023-01-26T12:39:05.8285724Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8285882Z ______ test_write_netcdf_with_custom_fillvalue_correctly_writes_fillvalue ______ 2023-01-26T12:39:05.8285889Z 2023-01-26T12:39:05.8286061Z def test_write_netcdf_with_custom_fillvalue_correctly_writes_fillvalue(): 2023-01-26T12:39:05.8286198Z nc_output_file = Path(test_output_dir / "test.nc") 2023-01-26T12:39:05.8286269Z 2023-01-26T12:39:05.8286418Z # create a new network model with a rectilinear mesh2d 2023-01-26T12:39:05.8286529Z > networkModel = NetworkModel() 2023-01-26T12:39:05.8286536Z 2023-01-26T12:39:05.8286640Z tests/dflowfm/test_net.py:607: 2023-01-26T12:39:05.8286757Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8286867Z hydrolib/core/basemodel.py:712: in __init__ 2023-01-26T12:39:05.8286969Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8287089Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8287234Z super().__init__(**data) 2023-01-26T12:39:05.8287398Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8287471Z ??? 2023-01-26T12:39:05.8287619Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8287679Z ??? 2023-01-26T12:39:05.8287856Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8287930Z ??? 2023-01-26T12:39:05.8288064Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8288227Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8288592Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8288699Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8288819Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8288826Z 2023-01-26T12:39:05.8289258Z self = 2023-01-26T12:39:05.8289633Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8289786Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8289870Z winmode = None 2023-01-26T12:39:05.8289877Z 2023-01-26T12:39:05.8290073Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8290170Z use_errno=False, 2023-01-26T12:39:05.8290271Z use_last_error=False, 2023-01-26T12:39:05.8290364Z winmode=None): 2023-01-26T12:39:05.8290440Z self._name = name 2023-01-26T12:39:05.8290539Z flags = self._func_flags_ 2023-01-26T12:39:05.8290626Z if use_errno: 2023-01-26T12:39:05.8290733Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8290824Z if use_last_error: 2023-01-26T12:39:05.8290944Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8291071Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8291210Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8291415Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8291573Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8291736Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8291811Z """ 2023-01-26T12:39:05.8291946Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8292075Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8292168Z if _os.name == "nt": 2023-01-26T12:39:05.8292255Z if winmode is not None: 2023-01-26T12:39:05.8292344Z mode = winmode 2023-01-26T12:39:05.8292419Z else: 2023-01-26T12:39:05.8292507Z import nt 2023-01-26T12:39:05.8292643Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8292809Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8292952Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8293075Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8293146Z 2023-01-26T12:39:05.8293254Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8293347Z _flags_ = flags 2023-01-26T12:39:05.8293462Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8293562Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8293631Z 2023-01-26T12:39:05.8293708Z if handle is None: 2023-01-26T12:39:05.8293834Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8294397Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8294407Z 2023-01-26T12:39:05.8294587Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8294753Z _______ test_dimr_model_save_with_recurse_correctly_copies_rr_sub_files ________ 2023-01-26T12:39:05.8294760Z 2023-01-26T12:39:05.8294924Z def test_dimr_model_save_with_recurse_correctly_copies_rr_sub_files(): 2023-01-26T12:39:05.8295200Z source_path_parent = test_input_dir / "e02" / "c11_korte-woerden-1d" / "dimr_model" 2023-01-26T12:39:05.8295325Z filepath = Path("dimr_config.xml") 2023-01-26T12:39:05.8295395Z 2023-01-26T12:39:05.8295559Z name = test_dimr_model_save_with_recurse_correctly_copies_rr_sub_files.__name__ 2023-01-26T12:39:05.8295680Z target_path = test_output_dir / name 2023-01-26T12:39:05.8295748Z 2023-01-26T12:39:05.8295888Z if target_path.exists() and target_path.is_dir(): 2023-01-26T12:39:05.8295999Z shutil.rmtree(target_path) 2023-01-26T12:39:05.8296096Z target_path.mkdir() 2023-01-26T12:39:05.8296165Z 2023-01-26T12:39:05.8296309Z with file_load_context() as context: 2023-01-26T12:39:05.8296510Z context.push_new_parent(source_path_parent, ResolveRelativeMode.ToParent) 2023-01-26T12:39:05.8296627Z > model = DIMR(filepath=filepath) 2023-01-26T12:39:05.8296634Z 2023-01-26T12:39:05.8296736Z tests/rr/test_fnm.py:394: 2023-01-26T12:39:05.8296911Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8297033Z hydrolib/core/basemodel.py:743: in __init__ 2023-01-26T12:39:05.8297129Z self._post_init_load() 2023-01-26T12:39:05.8297265Z hydrolib/core/dimr/models.py:323: in _post_init_load 2023-01-26T12:39:05.8297399Z comp.model = comp.get_model()(filepath=comp.filepath) 2023-01-26T12:39:05.8297522Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8297625Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8297748Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8297842Z super().__init__(**data) 2023-01-26T12:39:05.8298000Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8298073Z ??? 2023-01-26T12:39:05.8298210Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.8298282Z ??? 2023-01-26T12:39:05.8298463Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.8298540Z ??? 2023-01-26T12:39:05.8298726Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.8298799Z ??? 2023-01-26T12:39:05.8298987Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.8299059Z ??? 2023-01-26T12:39:05.8299256Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.8299328Z ??? 2023-01-26T12:39:05.8299463Z hydrolib/core/dflowfm/ini/models.py:125: in validate 2023-01-26T12:39:05.8299576Z return super().validate(value) 2023-01-26T12:39:05.8299738Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.8299809Z ??? 2023-01-26T12:39:05.8299930Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8300011Z super().__init__(**data) 2023-01-26T12:39:05.8300164Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8300236Z ??? 2023-01-26T12:39:05.8300383Z pydantic/main.py:1077: in pydantic.main.validate_model 2023-01-26T12:39:05.8300457Z ??? 2023-01-26T12:39:05.8300632Z pydantic/fields.py:884: in pydantic.fields.ModelField.validate 2023-01-26T12:39:05.8300703Z ??? 2023-01-26T12:39:05.8300874Z pydantic/fields.py:1101: in pydantic.fields.ModelField._validate_singleton 2023-01-26T12:39:05.8300945Z ??? 2023-01-26T12:39:05.8301126Z pydantic/fields.py:1148: in pydantic.fields.ModelField._apply_validators 2023-01-26T12:39:05.8301200Z ??? 2023-01-26T12:39:05.8301461Z pydantic/class_validators.py:318: in pydantic.class_validators._generic_validator_basic.lambda13 2023-01-26T12:39:05.8301537Z ??? 2023-01-26T12:39:05.8301662Z hydrolib/core/basemodel.py:831: in validate 2023-01-26T12:39:05.8301755Z return super().validate(value) 2023-01-26T12:39:05.8301917Z pydantic/main.py:712: in pydantic.main.BaseModel.validate 2023-01-26T12:39:05.8301990Z ??? 2023-01-26T12:39:05.8302111Z hydrolib/core/basemodel.py:742: in __init__ 2023-01-26T12:39:05.8302214Z super().__init__(*args, **kwargs) 2023-01-26T12:39:05.8302338Z hydrolib/core/basemodel.py:65: in __init__ 2023-01-26T12:39:05.8302433Z super().__init__(**data) 2023-01-26T12:39:05.8302576Z pydantic/main.py:340: in pydantic.main.BaseModel.__init__ 2023-01-26T12:39:05.8302649Z ??? 2023-01-26T12:39:05.8302797Z pydantic/main.py:1067: in pydantic.main.validate_model 2023-01-26T12:39:05.8302868Z ??? 2023-01-26T12:39:05.8303044Z pydantic/fields.py:439: in pydantic.fields.ModelField.get_default 2023-01-26T12:39:05.8303116Z ??? 2023-01-26T12:39:05.8303254Z hydrolib/core/dflowfm/net/models.py:1104: in __init__ 2023-01-26T12:39:05.8303401Z self.meshkernel = mk.MeshKernel(is_geographic=is_geographic) 2023-01-26T12:39:05.8303877Z ../../../.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py:78: in __init__ 2023-01-26T12:39:05.8303986Z self.lib = CDLL(str(lib_path)) 2023-01-26T12:39:05.8304105Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2023-01-26T12:39:05.8304181Z 2023-01-26T12:39:05.8304632Z self = 2023-01-26T12:39:05.8305007Z name = '/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so' 2023-01-26T12:39:05.8305158Z mode = 0, handle = None, use_errno = False, use_last_error = False 2023-01-26T12:39:05.8305242Z winmode = None 2023-01-26T12:39:05.8305249Z 2023-01-26T12:39:05.8305396Z def __init__(self, name, mode=DEFAULT_MODE, handle=None, 2023-01-26T12:39:05.8305495Z use_errno=False, 2023-01-26T12:39:05.8305583Z use_last_error=False, 2023-01-26T12:39:05.8305675Z winmode=None): 2023-01-26T12:39:05.8305765Z self._name = name 2023-01-26T12:39:05.8305862Z flags = self._func_flags_ 2023-01-26T12:39:05.8305948Z if use_errno: 2023-01-26T12:39:05.8306059Z flags |= _FUNCFLAG_USE_ERRNO 2023-01-26T12:39:05.8306150Z if use_last_error: 2023-01-26T12:39:05.8306254Z flags |= _FUNCFLAG_USE_LASTERROR 2023-01-26T12:39:05.8306382Z if _sys.platform.startswith("aix"): 2023-01-26T12:39:05.8306519Z """When the name contains ".a(" and ends with ")", 2023-01-26T12:39:05.8306737Z e.g., "libFOO.a(libFOO.so)" - this is taken to be an 2023-01-26T12:39:05.8306896Z archive(member) syntax for dlopen(), and the mode is adjusted. 2023-01-26T12:39:05.8307057Z Otherwise, name is presented to dlopen() as a file argument. 2023-01-26T12:39:05.8307133Z """ 2023-01-26T12:39:05.8307257Z if name and name.endswith(")") and ".a(" in name: 2023-01-26T12:39:05.8307386Z mode |= ( _os.RTLD_MEMBER | _os.RTLD_NOW ) 2023-01-26T12:39:05.8307478Z if _os.name == "nt": 2023-01-26T12:39:05.8307580Z if winmode is not None: 2023-01-26T12:39:05.8307672Z mode = winmode 2023-01-26T12:39:05.8307748Z else: 2023-01-26T12:39:05.8307834Z import nt 2023-01-26T12:39:05.8307956Z mode = nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 2023-01-26T12:39:05.8308122Z if '/' in name or '\\' in name: 2023-01-26T12:39:05.8308265Z self._name = nt._getfullpathname(self._name) 2023-01-26T12:39:05.8308400Z mode |= nt._LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR 2023-01-26T12:39:05.8308471Z 2023-01-26T12:39:05.8308638Z class _FuncPtr(_CFuncPtr): 2023-01-26T12:39:05.8308731Z _flags_ = flags 2023-01-26T12:39:05.8308845Z _restype_ = self._func_restype_ 2023-01-26T12:39:05.8308932Z self._FuncPtr = _FuncPtr 2023-01-26T12:39:05.8309001Z 2023-01-26T12:39:05.8309090Z if handle is None: 2023-01-26T12:39:05.8309218Z > self._handle = _dlopen(self._name, mode) 2023-01-26T12:39:05.8309731Z E OSError: /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/libMeshKernelApi.so: cannot open shared object file: No such file or directory 2023-01-26T12:39:05.8309742Z 2023-01-26T12:39:05.8309920Z /opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/ctypes/__init__.py:373: OSError 2023-01-26T12:39:05.8310054Z =============================== warnings summary =============================== 2023-01-26T12:39:05.8310437Z tests/rr/test_fnm.py::TestRainFallRunoffModel::test_mappix_property_returns_path_equal_to_name[pvstordt.his-] 2023-01-26T12:39:05.8310615Z tests/rr/meteo/test_bui.py::TestModel::TestRksModel::test_given_nwrw_file_loads_model 2023-01-26T12:39:05.8311224Z /home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: 2023-01-26T12:39:05.8311296Z 2023-01-26T12:39:05.8311412Z Traceback (most recent call last): 2023-01-26T12:39:05.8311984Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 82, in __del__ 2023-01-26T12:39:05.8312126Z self._deallocate_state() 2023-01-26T12:39:05.8312586Z File "/home/runner/.virtualenvs/hydrolib-core-12b3Wo2l-py3.8/lib/python3.8/site-packages/meshkernel/meshkernel.py", line 107, in _deallocate_state 2023-01-26T12:39:05.8312713Z self.lib.mkernel_deallocate_state, 2023-01-26T12:39:05.8312945Z AttributeError: 'MeshKernel' object has no attribute 'lib' 2023-01-26T12:39:05.8313016Z 2023-01-26T12:39:05.8313211Z warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) 2023-01-26T12:39:05.8313218Z 2023-01-26T12:39:05.8313452Z -- Docs: https://docs.pytest.org/en/stable/warnings.html 2023-01-26T12:39:05.8313810Z - generated xml file: /home/runner/work/HYDROLIB-core/HYDROLIB-core/xunit-reports/xunit-result-hydrolib-core.xml - 2023-01-26T12:39:05.8313831Z 2023-01-26T12:39:05.8314067Z ---------- coverage: platform linux, python 3.8.16-final-0 ----------- 2023-01-26T12:39:05.8314336Z Coverage XML written to file coverage-reports/coverage-hydrolib-core.xml 2023-01-26T12:39:05.8314344Z 2023-01-26T12:39:05.8314481Z =========================== short test summary info ============================ 2023-01-26T12:39:05.8314702Z FAILED tests/test_basemodel.py::TestFileModel::test_loading_a_file_twice_returns_different_model_instances 2023-01-26T12:39:05.8314915Z FAILED tests/test_basemodel.py::TestFileModel::test_save_model_without_recurse_only_saves_the_model 2023-01-26T12:39:05.8315298Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile0-flat-hierarchy-True] 2023-01-26T12:39:05.8315683Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile0-flat-hierarchy-False] 2023-01-26T12:39:05.8316053Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile0-relative paths-True] 2023-01-26T12:39:05.8316427Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile0-relative paths-False] 2023-01-26T12:39:05.8316774Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile0-absolute paths-True] 2023-01-26T12:39:05.8317134Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile0-absolute paths-False] 2023-01-26T12:39:05.8317562Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile1-flat-hierarchy-True] 2023-01-26T12:39:05.8317951Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile1-flat-hierarchy-False] 2023-01-26T12:39:05.8318311Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile1-relative paths-True] 2023-01-26T12:39:05.8318675Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile1-relative paths-False] 2023-01-26T12:39:05.8319039Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile1-absolute paths-True] 2023-01-26T12:39:05.8319406Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile1-absolute paths-False] 2023-01-26T12:39:05.8319775Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile2-flat-hierarchy-True] 2023-01-26T12:39:05.8320151Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile2-flat-hierarchy-False] 2023-01-26T12:39:05.8320502Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile2-relative paths-True] 2023-01-26T12:39:05.8320868Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile2-relative paths-False] 2023-01-26T12:39:05.8321225Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile2-absolute paths-True] 2023-01-26T12:39:05.8321669Z FAILED tests/test_basemodel.py::TestFileModel::test_save_and_load_maintains_correct_paths[forcingfile2-absolute paths-False] 2023-01-26T12:39:05.8321860Z FAILED tests/test_basemodel.py::TestFileModel::test_save_location_after_init_is_correct 2023-01-26T12:39:05.8322253Z FAILED tests/test_basemodel.py::TestFileModel::test_after_filepath_change_should_return_correct_save_location[to-relative-same-folder] 2023-01-26T12:39:05.8322651Z FAILED tests/test_basemodel.py::TestFileModel::test_after_filepath_change_should_return_correct_save_location[to-relative-other-folder] 2023-01-26T12:39:05.8323005Z FAILED tests/test_basemodel.py::TestFileModel::test_after_filepath_change_should_return_correct_save_location[to-absolute] 2023-01-26T12:39:05.8323263Z FAILED tests/test_basemodel.py::TestFileModel::test_change_filepath_from_absolute_to_relative_to_absolute_results_in_the_same_save_location 2023-01-26T12:39:05.8323488Z FAILED tests/test_basemodel.py::TestFileModel::test_synchronize_filepaths_updates_save_location_correctly 2023-01-26T12:39:05.8323714Z FAILED tests/test_basemodel.py::TestFileModel::test_initialize_model_with_resolve_casing_updates_file_references_recursively 2023-01-26T12:39:05.8323980Z FAILED tests/test_docker.py::test_from_scratch_docker - OSError: /home/runner... 2023-01-26T12:39:05.8324244Z FAILED tests/test_docker.py::test_existing_model_saved_docker - OSError: /hom... 2023-01-26T12:39:05.8324509Z FAILED tests/test_model.py::test_dimr_model - OSError: /home/runner/.virtuale... 2023-01-26T12:39:05.8324767Z FAILED tests/test_model.py::test_mdu_model - OSError: /home/runner/.virtualen... 2023-01-26T12:39:05.8325025Z FAILED tests/test_model.py::test_load_model_recurse_false - OSError: /home/ru... 2023-01-26T12:39:05.8325281Z FAILED tests/test_model.py::test_mdu_from_scratch - OSError: /home/runner/.vi... 2023-01-26T12:39:05.8325621Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[waterlevinifile-None] 2023-01-26T12:39:05.8325966Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[waterlevinifile-Path] 2023-01-26T12:39:05.8326296Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[waterlevinifile-Model] 2023-01-26T12:39:05.8326630Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[oned2dlinkfile-None] 2023-01-26T12:39:05.8327017Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[oned2dlinkfile-Path] 2023-01-26T12:39:05.8327363Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[oned2dlinkfile-Model] 2023-01-26T12:39:05.8327689Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[proflocfile-None] 2023-01-26T12:39:05.8328016Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[proflocfile-Path] 2023-01-26T12:39:05.8328350Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[proflocfile-Model] 2023-01-26T12:39:05.8328671Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[profdeffile-None] 2023-01-26T12:39:05.8328992Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[profdeffile-Path] 2023-01-26T12:39:05.8329317Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[profdeffile-Model] 2023-01-26T12:39:05.8329643Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[profdefxyzfile-None] 2023-01-26T12:39:05.8329978Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[profdefxyzfile-Path] 2023-01-26T12:39:05.8330311Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[profdefxyzfile-Model] 2023-01-26T12:39:05.8330630Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[manholefile-None] 2023-01-26T12:39:05.8331007Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[manholefile-Path] 2023-01-26T12:39:05.8331333Z FAILED tests/test_model.py::test_model_diskonlyfilemodel_field_is_constructed_correctly[manholefile-Model] 2023-01-26T12:39:05.8331516Z FAILED tests/test_utils.py::TestSplitString::test_split_string_strip_semicolon 2023-01-26T12:39:05.8331710Z FAILED tests/dflowfm/test_mdu.py::TestModels::test_mdu_file_with_network_is_read_correctly 2023-01-26T12:39:05.8331887Z FAILED tests/dflowfm/test_mdu.py::TestModels::test_mdu_with_optional_sections 2023-01-26T12:39:05.8332131Z FAILED tests/dflowfm/test_net.py::test_create_2d - OSError: /home/runner/.vir... 2023-01-26T12:39:05.8332473Z FAILED tests/dflowfm/test_net.py::test_create_clip_2d[DeleteMeshOption.ALL_FACE_CIRCUMCENTERS-False-28-90] 2023-01-26T12:39:05.8332797Z FAILED tests/dflowfm/test_net.py::test_create_clip_2d[DeleteMeshOption.ALL_COMPLETE_FACES-False-23-72] 2023-01-26T12:39:05.8333105Z FAILED tests/dflowfm/test_net.py::test_create_clip_2d[DeleteMeshOption.ALL_NODES-False-23-72] 2023-01-26T12:39:05.8333445Z FAILED tests/dflowfm/test_net.py::test_create_clip_2d[DeleteMeshOption.ALL_FACE_CIRCUMCENTERS-True-23-72] 2023-01-26T12:39:05.8333767Z FAILED tests/dflowfm/test_net.py::test_create_clip_2d[DeleteMeshOption.ALL_COMPLETE_FACES-True-31-94] 2023-01-26T12:39:05.8334065Z FAILED tests/dflowfm/test_net.py::test_create_clip_2d[DeleteMeshOption.ALL_NODES-True-22-64] 2023-01-26T12:39:05.8334327Z FAILED tests/dflowfm/test_net.py::test_create_refine_2d - OSError: /home/runn... 2023-01-26T12:39:05.8334590Z FAILED tests/dflowfm/test_net.py::test_read_net_nc[filepath0] - OSError: /hom... 2023-01-26T12:39:05.8334836Z FAILED tests/dflowfm/test_net.py::test_read_net_nc[filepath1] - OSError: /hom... 2023-01-26T12:39:05.8335093Z FAILED tests/dflowfm/test_net.py::test_read_write_read_compare[filepath0] - O... 2023-01-26T12:39:05.8335351Z FAILED tests/dflowfm/test_net.py::test_read_write_read_compare[filepath1] - O... 2023-01-26T12:39:05.8335530Z FAILED tests/dflowfm/test_net.py::TestMesh2d::test_read_file_expected_results 2023-01-26T12:39:05.8335788Z FAILED tests/dflowfm/test_net.py::test_add_short_connecting_branch - OSError:... 2023-01-26T12:39:05.8336043Z FAILED tests/dflowfm/test_net.py::test_create_triangular - OSError: /home/run... 2023-01-26T12:39:05.8336297Z FAILED tests/dflowfm/test_net.py::test_add_1d2d_links - OSError: /home/runner... 2023-01-26T12:39:05.8336561Z FAILED tests/dflowfm/test_net.py::test_write_netcdf_with_custom_fillvalue_correctly_writes_fillvalue 2023-01-26T12:39:05.8336744Z FAILED tests/rr/test_fnm.py::test_dimr_model_save_with_recurse_correctly_copies_rr_sub_files 2023-01-26T12:39:05.8336901Z ========== 72 failed, 886 passed, 3 deselected, 2 warnings in 31.44s =========== 2023-01-26T12:39:05.9792511Z ##[error]Process completed with exit code 1. 2023-01-26T12:39:05.9858897Z Post job cleanup. 2023-01-26T12:39:06.1201684Z [command]/usr/bin/git version 2023-01-26T12:39:06.1250373Z git version 2.39.1 2023-01-26T12:39:06.1288739Z Temporarily overriding HOME='/home/runner/work/_temp/09311882-d780-45c1-aeaa-bd72cd01e968' before making global git config changes 2023-01-26T12:39:06.1289125Z Adding repository directory to the temporary git global config as a safe directory 2023-01-26T12:39:06.1293192Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/HYDROLIB-core/HYDROLIB-core 2023-01-26T12:39:06.1336080Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand 2023-01-26T12:39:06.1371683Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" 2023-01-26T12:39:06.1599922Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader 2023-01-26T12:39:06.1629757Z http.https://github.com/.extraheader 2023-01-26T12:39:06.1640131Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader 2023-01-26T12:39:06.1675477Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" 2023-01-26T12:39:06.2157453Z Cleaning up orphan processes