diff --git a/environments/py-3.12-linux-64-dev.conda.lock.yml b/environments/py-3.12-linux-64-dev.conda.lock.yml index fcb57826..bfcfef4f 100644 --- a/environments/py-3.12-linux-64-dev.conda.lock.yml +++ b/environments/py-3.12-linux-64-dev.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: 63adace8c14942ee5e5c7b5b78f929489b8404c49a76884923f72f2e8d0d8ac2 +# input_hash: d747fea7bb90eb9ee4438c69a8ea18c4f296df1b74154f14919a77014b7b230a channels: - conda-forge @@ -39,10 +39,10 @@ dependencies: - brotli-python=1.2.0=py312hdb49522_1 - bzip2=1.0.8=hda65f42_9 - c-ares=1.34.6=hb03c661_0 - - ca-certificates=2026.2.25=hbd8a1cb_0 + - ca-certificates=2026.4.22=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - - certifi=2026.2.25=pyhd8ed1ab_0 + - certifi=2026.4.22=pyhd8ed1ab_0 - cffi=2.0.0=py312h460c074_1 - charset-normalizer=3.4.7=pyhd8ed1ab_0 - click=8.3.2=pyhc90fa1f_0 @@ -67,7 +67,7 @@ dependencies: - exceptiongroup=1.3.1=pyhd8ed1ab_0 - executing=2.2.1=pyhd8ed1ab_0 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py312h8a5da7c_0 + - fonttools=4.62.1=py312h8a5da7c_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.3=ha770c72_0 - fsspec=2026.3.0=pyhd8ed1ab_0 @@ -105,7 +105,7 @@ dependencies: - jupyter-lsp=2.3.1=pyhcf101f3_0 - jupyter_client=8.8.0=pyhcf101f3_0 - jupyter_core=5.9.1=pyhc90fa1f_0 - - jupyter_events=0.12.0=pyhe01879c_0 + - jupyter_events=0.12.1=pyhcf101f3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.4=pyhcf101f3_0 - jupyterlab=4.5.6=pyhd8ed1ab_0 @@ -163,7 +163,7 @@ dependencies: - libxml2=2.15.1=h26afc86_0 - libxml2-16=2.15.1=ha9997c6_0 - libzlib=1.3.2=h25fd6f3_2 - - llvm-openmp=22.1.3=h4922eb0_0 + - llvm-openmp=22.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=4.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h8a5da7c_1 @@ -287,7 +287,7 @@ dependencies: - webcolors=25.10.0=pyhd8ed1ab_0 - webencodings=0.5.1=pyhd8ed1ab_3 - websocket-client=1.9.0=pyhd8ed1ab_0 - - wheel=0.46.3=pyhd8ed1ab_0 + - wheel=0.47.0=pyhd8ed1ab_0 - widgetsnbextension=3.6.10=pyhd8ed1ab_0 - wrapt=2.1.2=py312h4c3975b_0 - xorg-libxau=1.0.12=hb03c661_1 @@ -304,7 +304,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/environments/py-3.12-linux-64.conda.lock.yml b/environments/py-3.12-linux-64.conda.lock.yml index d1db3d9f..011ca9d1 100644 --- a/environments/py-3.12-linux-64.conda.lock.yml +++ b/environments/py-3.12-linux-64.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: 63adace8c14942ee5e5c7b5b78f929489b8404c49a76884923f72f2e8d0d8ac2 +# input_hash: d747fea7bb90eb9ee4438c69a8ea18c4f296df1b74154f14919a77014b7b230a channels: - conda-forge @@ -25,7 +25,7 @@ dependencies: - brotli-python=1.2.0=py312hdb49522_1 - bzip2=1.0.8=hda65f42_9 - c-ares=1.34.6=hb03c661_0 - - ca-certificates=2026.2.25=hbd8a1cb_0 + - ca-certificates=2026.4.22=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - click=8.3.2=pyhc90fa1f_0 @@ -39,7 +39,7 @@ dependencies: - distributed=2025.3.1=pyhd8ed1ab_0 - et_xmlfile=2.0.0=pyhd8ed1ab_1 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py312h8a5da7c_0 + - fonttools=4.62.1=py312h8a5da7c_0 - freetype=2.14.3=ha770c72_0 - fsspec=2026.3.0=pyhd8ed1ab_0 - geoana=0.8.1=np2py312h2a48985_0 @@ -99,7 +99,7 @@ dependencies: - libxml2=2.15.1=h26afc86_0 - libxml2-16=2.15.1=ha9997c6_0 - libzlib=1.3.2=h25fd6f3_2 - - llvm-openmp=22.1.3=h4922eb0_0 + - llvm-openmp=22.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h8a5da7c_1 - matplotlib-base=3.10.8=py312he3d6523_0 @@ -158,7 +158,7 @@ dependencies: - tzdata=2025c=hc9c84f9_1 - unicodedata2=17.0.1=py312h4c3975b_0 - urllib3=2.6.3=pyhd8ed1ab_0 - - wheel=0.46.3=pyhd8ed1ab_0 + - wheel=0.47.0=pyhd8ed1ab_0 - wrapt=2.1.2=py312h4c3975b_0 - xorg-libxau=1.0.12=hb03c661_1 - xorg-libxdmcp=1.1.5=hb03c661_1 @@ -172,7 +172,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/environments/py-3.12-win-64-dev.conda.lock.yml b/environments/py-3.12-win-64-dev.conda.lock.yml index 30238f92..f1845706 100644 --- a/environments/py-3.12-win-64-dev.conda.lock.yml +++ b/environments/py-3.12-win-64-dev.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: win-64 -# input_hash: 4ef67c8a8709138d6f5ee5d18a19f7bc8cf404736497e6124f841213161e61ad +# input_hash: 32712d2e1d1aba2f43aa48b4905384bee4be9aaeb1e316914c9470169fd4d85b channels: - conda-forge @@ -38,10 +38,10 @@ dependencies: - brotli-bin=1.2.0=hfd05255_1 - brotli-python=1.2.0=py312hc6d9e41_1 - bzip2=1.0.8=h0ad9c76_9 - - ca-certificates=2026.2.25=h4c7d964_0 + - ca-certificates=2026.4.22=h4c7d964_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - - certifi=2026.2.25=pyhd8ed1ab_0 + - certifi=2026.4.22=pyhd8ed1ab_0 - cffi=2.0.0=py312he06e257_1 - charset-normalizer=3.4.7=pyhd8ed1ab_0 - click=8.3.2=pyh6dadd2b_0 @@ -66,7 +66,7 @@ dependencies: - exceptiongroup=1.3.1=pyhd8ed1ab_0 - executing=2.2.1=pyhd8ed1ab_0 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py312h05f76fc_0 + - fonttools=4.62.1=py312h05f76fc_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.3=h57928b3_0 - fsspec=2026.3.0=pyhd8ed1ab_0 @@ -103,7 +103,7 @@ dependencies: - jupyter-lsp=2.3.1=pyhcf101f3_0 - jupyter_client=8.8.0=pyhcf101f3_0 - jupyter_core=5.9.1=pyh6dadd2b_0 - - jupyter_events=0.12.0=pyhe01879c_0 + - jupyter_events=0.12.1=pyhcf101f3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.4=pyhcf101f3_0 - jupyterlab=4.5.6=pyhd8ed1ab_0 @@ -148,7 +148,7 @@ dependencies: - libxml2=2.15.3=hbc0d294_0 - libxml2-16=2.15.3=h692994f_0 - libzlib=1.3.2=hfd05255_2 - - llvm-openmp=22.1.3=h4fa8253_0 + - llvm-openmp=22.1.4=h4fa8253_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=4.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h05f76fc_1 @@ -271,7 +271,7 @@ dependencies: - webcolors=25.10.0=pyhd8ed1ab_0 - webencodings=0.5.1=pyhd8ed1ab_3 - websocket-client=1.9.0=pyhd8ed1ab_0 - - wheel=0.46.3=pyhd8ed1ab_0 + - wheel=0.47.0=pyhd8ed1ab_0 - widgetsnbextension=3.6.10=pyhd8ed1ab_0 - win_inet_pton=1.1.0=pyh7428d3b_8 - winpty=0.4.3=4 @@ -289,7 +289,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/environments/py-3.12-win-64.conda.lock.yml b/environments/py-3.12-win-64.conda.lock.yml index a4980353..6ad32d71 100644 --- a/environments/py-3.12-win-64.conda.lock.yml +++ b/environments/py-3.12-win-64.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: win-64 -# input_hash: 4ef67c8a8709138d6f5ee5d18a19f7bc8cf404736497e6124f841213161e61ad +# input_hash: 32712d2e1d1aba2f43aa48b4905384bee4be9aaeb1e316914c9470169fd4d85b channels: - conda-forge @@ -24,7 +24,7 @@ dependencies: - brotli-bin=1.2.0=hfd05255_1 - brotli-python=1.2.0=py312hc6d9e41_1 - bzip2=1.0.8=h0ad9c76_9 - - ca-certificates=2026.2.25=h4c7d964_0 + - ca-certificates=2026.4.22=h4c7d964_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - click=8.3.2=pyh6dadd2b_0 @@ -39,7 +39,7 @@ dependencies: - distributed=2025.3.1=pyhd8ed1ab_0 - et_xmlfile=2.0.0=pyhd8ed1ab_1 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py312h05f76fc_0 + - fonttools=4.62.1=py312h05f76fc_0 - freetype=2.14.3=h57928b3_0 - fsspec=2026.3.0=pyhd8ed1ab_0 - geoana=0.8.1=np2py312h7c90ba1_0 @@ -86,7 +86,7 @@ dependencies: - libxml2=2.15.3=hbc0d294_0 - libxml2-16=2.15.3=h692994f_0 - libzlib=1.3.2=hfd05255_2 - - llvm-openmp=22.1.3=h4fa8253_0 + - llvm-openmp=22.1.4=h4fa8253_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h05f76fc_1 - matplotlib-base=3.10.8=py312h0ebf65c_0 @@ -144,7 +144,7 @@ dependencies: - vc=14.3=h41ae7f8_34 - vc14_runtime=14.44.35208=h818238b_34 - vcomp14=14.44.35208=h818238b_34 - - wheel=0.46.3=pyhd8ed1ab_0 + - wheel=0.47.0=pyhd8ed1ab_0 - win_inet_pton=1.1.0=pyh7428d3b_8 - wrapt=2.1.2=py312he06e257_0 - xorg-libxau=1.0.12=hba3369d_1 @@ -159,7 +159,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/environments/py-3.13-linux-64-dev.conda.lock.yml b/environments/py-3.13-linux-64-dev.conda.lock.yml index 0dbaf582..97f41a6e 100644 --- a/environments/py-3.13-linux-64-dev.conda.lock.yml +++ b/environments/py-3.13-linux-64-dev.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: dd9779f057c2b85a33ce6237af15b234216249fffeb3c1c3fb7bb95fb1d65f0f +# input_hash: 6a1304daf87733c2c46e134f75783a582318d63b754b36eba640e422c324e954 channels: - conda-forge @@ -39,10 +39,10 @@ dependencies: - brotli-python=1.2.0=py313hf159716_1 - bzip2=1.0.8=hda65f42_9 - c-ares=1.34.6=hb03c661_0 - - ca-certificates=2026.2.25=hbd8a1cb_0 + - ca-certificates=2026.4.22=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - - certifi=2026.2.25=pyhd8ed1ab_0 + - certifi=2026.4.22=pyhd8ed1ab_0 - cffi=2.0.0=py313hf46b229_1 - charset-normalizer=3.4.7=pyhd8ed1ab_0 - click=8.3.2=pyhc90fa1f_0 @@ -67,7 +67,7 @@ dependencies: - exceptiongroup=1.3.1=pyhd8ed1ab_0 - executing=2.2.1=pyhd8ed1ab_0 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py313h3dea7bd_0 + - fonttools=4.62.1=py313h3dea7bd_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.3=ha770c72_0 - fsspec=2026.3.0=pyhd8ed1ab_0 @@ -105,7 +105,7 @@ dependencies: - jupyter-lsp=2.3.1=pyhcf101f3_0 - jupyter_client=8.8.0=pyhcf101f3_0 - jupyter_core=5.9.1=pyhc90fa1f_0 - - jupyter_events=0.12.0=pyhe01879c_0 + - jupyter_events=0.12.1=pyhcf101f3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.4=pyhcf101f3_0 - jupyterlab=4.5.6=pyhd8ed1ab_0 @@ -162,7 +162,7 @@ dependencies: - libxml2=2.15.1=h26afc86_0 - libxml2-16=2.15.1=ha9997c6_0 - libzlib=1.3.2=h25fd6f3_2 - - llvm-openmp=22.1.3=h4922eb0_0 + - llvm-openmp=22.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=4.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py313h3dea7bd_1 @@ -301,7 +301,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/environments/py-3.13-linux-64.conda.lock.yml b/environments/py-3.13-linux-64.conda.lock.yml index b0fde556..10fe50cf 100644 --- a/environments/py-3.13-linux-64.conda.lock.yml +++ b/environments/py-3.13-linux-64.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: dd9779f057c2b85a33ce6237af15b234216249fffeb3c1c3fb7bb95fb1d65f0f +# input_hash: 6a1304daf87733c2c46e134f75783a582318d63b754b36eba640e422c324e954 channels: - conda-forge @@ -25,7 +25,7 @@ dependencies: - brotli-python=1.2.0=py313hf159716_1 - bzip2=1.0.8=hda65f42_9 - c-ares=1.34.6=hb03c661_0 - - ca-certificates=2026.2.25=hbd8a1cb_0 + - ca-certificates=2026.4.22=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - click=8.3.2=pyhc90fa1f_0 @@ -39,7 +39,7 @@ dependencies: - distributed=2025.3.1=pyhd8ed1ab_0 - et_xmlfile=2.0.0=pyhd8ed1ab_1 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py313h3dea7bd_0 + - fonttools=4.62.1=py313h3dea7bd_0 - freetype=2.14.3=ha770c72_0 - fsspec=2026.3.0=pyhd8ed1ab_0 - geoana=0.8.1=np2py313h0f78c12_0 @@ -98,7 +98,7 @@ dependencies: - libxml2=2.15.1=h26afc86_0 - libxml2-16=2.15.1=ha9997c6_0 - libzlib=1.3.2=h25fd6f3_2 - - llvm-openmp=22.1.3=h4922eb0_0 + - llvm-openmp=22.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py313h3dea7bd_1 - matplotlib-base=3.10.8=py313h683a580_0 @@ -169,7 +169,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/environments/py-3.13-win-64-dev.conda.lock.yml b/environments/py-3.13-win-64-dev.conda.lock.yml index 7f356ca9..a103777e 100644 --- a/environments/py-3.13-win-64-dev.conda.lock.yml +++ b/environments/py-3.13-win-64-dev.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: win-64 -# input_hash: 5eb7ae8183e1db051dc86d3924be2e3999ba55c56db3a779b81db7220812a933 +# input_hash: 108f2d5624261faddfd5413b082b0ad4dd1652b8f599680c63a28fbff70e0e04 channels: - conda-forge @@ -38,10 +38,10 @@ dependencies: - brotli-bin=1.2.0=hfd05255_1 - brotli-python=1.2.0=py313h3ebfc14_1 - bzip2=1.0.8=h0ad9c76_9 - - ca-certificates=2026.2.25=h4c7d964_0 + - ca-certificates=2026.4.22=h4c7d964_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - - certifi=2026.2.25=pyhd8ed1ab_0 + - certifi=2026.4.22=pyhd8ed1ab_0 - cffi=2.0.0=py313h5ea7bf4_1 - charset-normalizer=3.4.7=pyhd8ed1ab_0 - click=8.3.2=pyh6dadd2b_0 @@ -66,7 +66,7 @@ dependencies: - exceptiongroup=1.3.1=pyhd8ed1ab_0 - executing=2.2.1=pyhd8ed1ab_0 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py313hd650c13_0 + - fonttools=4.62.1=py313hd650c13_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.3=h57928b3_0 - fsspec=2026.3.0=pyhd8ed1ab_0 @@ -103,7 +103,7 @@ dependencies: - jupyter-lsp=2.3.1=pyhcf101f3_0 - jupyter_client=8.8.0=pyhcf101f3_0 - jupyter_core=5.9.1=pyh6dadd2b_0 - - jupyter_events=0.12.0=pyhe01879c_0 + - jupyter_events=0.12.1=pyhcf101f3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.4=pyhcf101f3_0 - jupyterlab=4.5.6=pyhd8ed1ab_0 @@ -149,7 +149,7 @@ dependencies: - libxml2=2.15.3=hbc0d294_0 - libxml2-16=2.15.3=h692994f_0 - libzlib=1.3.2=hfd05255_2 - - llvm-openmp=22.1.3=h4fa8253_0 + - llvm-openmp=22.1.4=h4fa8253_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=4.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py313hd650c13_1 @@ -288,7 +288,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/environments/py-3.13-win-64.conda.lock.yml b/environments/py-3.13-win-64.conda.lock.yml index 4038b181..d9df5630 100644 --- a/environments/py-3.13-win-64.conda.lock.yml +++ b/environments/py-3.13-win-64.conda.lock.yml @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: win-64 -# input_hash: 5eb7ae8183e1db051dc86d3924be2e3999ba55c56db3a779b81db7220812a933 +# input_hash: 108f2d5624261faddfd5413b082b0ad4dd1652b8f599680c63a28fbff70e0e04 channels: - conda-forge @@ -24,7 +24,7 @@ dependencies: - brotli-bin=1.2.0=hfd05255_1 - brotli-python=1.2.0=py313h3ebfc14_1 - bzip2=1.0.8=h0ad9c76_9 - - ca-certificates=2026.2.25=h4c7d964_0 + - ca-certificates=2026.4.22=h4c7d964_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - click=8.3.2=pyh6dadd2b_0 @@ -39,7 +39,7 @@ dependencies: - distributed=2025.3.1=pyhd8ed1ab_0 - et_xmlfile=2.0.0=pyhd8ed1ab_1 - fasteners=0.19=pyhd8ed1ab_1 - - fonttools=4.62.0=py313hd650c13_0 + - fonttools=4.62.1=py313hd650c13_0 - freetype=2.14.3=h57928b3_0 - fsspec=2026.3.0=pyhd8ed1ab_0 - geoana=0.8.1=np2py313hedd11bf_0 @@ -87,7 +87,7 @@ dependencies: - libxml2=2.15.3=hbc0d294_0 - libxml2-16=2.15.3=h692994f_0 - libzlib=1.3.2=hfd05255_2 - - llvm-openmp=22.1.3=h4fa8253_0 + - llvm-openmp=22.1.4=h4fa8253_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py313hd650c13_1 - matplotlib-base=3.10.8=py313he1ded55_0 @@ -158,7 +158,7 @@ dependencies: - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@9baaece0133496c23519ff2708f89e679e900fd0 - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@6ad559b09341b80c22aac363cbd0087089bd1a8a - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@fa25746b50102620bd8bcaf91aff8a3f745d8c4b variables: diff --git a/py-3.12.conda-lock.yml b/py-3.12.conda-lock.yml index 755ce650..1068e203 100644 --- a/py-3.12.conda-lock.yml +++ b/py-3.12.conda-lock.yml @@ -15,8 +15,8 @@ version: 1 metadata: content_hash: - win-64: 4ef67c8a8709138d6f5ee5d18a19f7bc8cf404736497e6124f841213161e61ad - linux-64: 63adace8c14942ee5e5c7b5b78f929489b8404c49a76884923f72f2e8d0d8ac2 + win-64: 32712d2e1d1aba2f43aa48b4905384bee4be9aaeb1e316914c9470169fd4d85b + linux-64: d747fea7bb90eb9ee4438c69a8ea18c4f296df1b74154f14919a77014b7b230a channels: - url: conda-forge used_env_vars: [] @@ -977,27 +977,27 @@ package: category: main optional: false - name: ca-certificates - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda hash: - md5: 4492fd26db29495f0ba23f146cd5638d - sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc + md5: e18ad67cf881dcadee8b8d9e2f8e5f73 + sha256: c9dbcc8039a52023660d6d1bbf87594a93dd69c6ac5a2a44323af2c92976728d category: main optional: false - name: ca-certificates - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: win-64 dependencies: __win: '' - url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.2.25-h4c7d964_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.4.22-h4c7d964_0.conda hash: - md5: f001e6e220355b7f87403a4d0e5bf1ca - sha256: 37950019c59b99585cee5d30dbc2cc9696ed4e11f5742606a4db1621ed8f94d6 + md5: 56fb2c6c73efc627b40c77d14caecfba + sha256: 6f4ff81534c19e76acf52fcabf4a258088a932b8f1ac56e9a59e98f6051f8e46 category: main optional: false - name: cached-property @@ -1049,27 +1049,27 @@ package: category: main optional: false - name: certifi - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.4.22-pyhd8ed1ab_0.conda hash: - md5: 765c4d97e877cdbbb88ff33152b86125 - sha256: a6b118fd1ed6099dc4fc03f9c492b88882a780fadaef4ed4f93dc70757713656 + md5: 929471569c93acefb30282a22060dcd5 + sha256: 989db6e5957c4b44fa600c68c681ec2f36a55e48f7c7f1c073d5e91caa8cd878 category: dev optional: true - name: certifi - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: win-64 dependencies: python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.4.22-pyhd8ed1ab_0.conda hash: - md5: 765c4d97e877cdbbb88ff33152b86125 - sha256: a6b118fd1ed6099dc4fc03f9c492b88882a780fadaef4ed4f93dc70757713656 + md5: 929471569c93acefb30282a22060dcd5 + sha256: 989db6e5957c4b44fa600c68c681ec2f36a55e48f7c7f1c073d5e91caa8cd878 category: dev optional: true - name: cffi @@ -1766,7 +1766,7 @@ package: category: main optional: false - name: fonttools - version: 4.62.0 + version: 4.62.1 manager: conda platform: linux-64 dependencies: @@ -1777,14 +1777,14 @@ package: python: '>=3.12,<3.13.0a0' python_abi: 3.12.* unicodedata2: '>=15.1.0' - url: https://repo.prefix.dev/conda-forge/linux-64/fonttools-4.62.0-py312h8a5da7c_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/fonttools-4.62.1-py312h8a5da7c_0.conda hash: - md5: 526f7ffd63820e55d7992cc1cf931a36 - sha256: 777c80a1aa0889e6b637631c31f95d0b048848c5ba710f89ed7cedd3ad318227 + md5: 2396fee22e84f69dffc6e23135905ce8 + sha256: e81f6e1ddadbc81ce56b158790148835256d2a3d5762016d389daaa06decfeab category: main optional: false - name: fonttools - version: 4.62.0 + version: 4.62.1 manager: conda platform: win-64 dependencies: @@ -1796,10 +1796,10 @@ package: unicodedata2: '>=15.1.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/fonttools-4.62.0-py312h05f76fc_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/fonttools-4.62.1-py312h05f76fc_0.conda hash: - md5: 96c115ac5095960276978618087116ec - sha256: 41bfb37800a8247339abdac2ae2e1cb4cfe62bf5cd853efc768f726916c36df6 + md5: ed369e820a91b65d46be0e7f3b6dcdfa + sha256: b04f7c6d00b536e12874df123a79c093a0c6c31f1b40bc51185e8ed4be88a7a9 category: main optional: false - name: fqdn @@ -2895,7 +2895,7 @@ package: category: dev optional: true - name: jupyter_events - version: 0.12.0 + version: 0.12.1 manager: conda platform: linux-64 dependencies: @@ -2908,14 +2908,14 @@ package: rfc3339-validator: '' rfc3986-validator: '>=0.1.1' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.0-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.1-pyhcf101f3_0.conda hash: - md5: 31e11c30bbee1682a55627f953c6725a - sha256: e9964aaaf6d24a685cd5ce9d75731b643ed7f010fb979574a6580cd2f974c6cd + md5: bf42ee94c750c0b2e7e998b79ac299ea + sha256: c7edb5682c6316a95ad781dccb1b6589cd2ec0bf94f23c21152974eb0363b5d7 category: dev optional: true - name: jupyter_events - version: 0.12.0 + version: 0.12.1 manager: conda platform: win-64 dependencies: @@ -2928,10 +2928,10 @@ package: rfc3339-validator: '' rfc3986-validator: '>=0.1.1' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.0-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.1-pyhcf101f3_0.conda hash: - md5: 31e11c30bbee1682a55627f953c6725a - sha256: e9964aaaf6d24a685cd5ce9d75731b643ed7f010fb979574a6580cd2f974c6cd + md5: bf42ee94c750c0b2e7e998b79ac299ea + sha256: c7edb5682c6316a95ad781dccb1b6589cd2ec0bf94f23c21152974eb0363b5d7 category: dev optional: true - name: jupyter_server @@ -4432,29 +4432,29 @@ package: category: main optional: false - name: llvm-openmp - version: 22.1.3 + version: 22.1.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - url: https://repo.prefix.dev/conda-forge/linux-64/llvm-openmp-22.1.3-h4922eb0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/llvm-openmp-22.1.4-h4922eb0_0.conda hash: - md5: f7781cb22afa62ef27fd0b3300c53c86 - sha256: 39ae724bd3cde1381df53bfb53e4d39da0dd613b180fdda5ac0a8ce1b43fb525 + md5: fa2c5c7f8d5319ab9c9fcbbd04022abf + sha256: 40e841ae0a03dfb5eaab6479ba0745b3666c869f5a8d066d42a21615933eeb15 category: main optional: false - name: llvm-openmp - version: 22.1.3 + version: 22.1.4 manager: conda platform: win-64 dependencies: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/llvm-openmp-22.1.3-h4fa8253_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/llvm-openmp-22.1.4-h4fa8253_0.conda hash: - md5: fa585aca061eaaae7225df2e85370bf7 - sha256: b82d43c9c52287204c929542e146b54e3eab520dba47c7b3e973ec986bf40f92 + md5: 761757ab617e8bfef18cc422dd02bbad + sha256: 7d827f8c125ac2fe3a9d5b47c1f95fc540bb8ef78685e4bcf941957257bb1eff category: main optional: false - name: locket @@ -7995,29 +7995,29 @@ package: category: dev optional: true - name: wheel - version: 0.46.3 + version: 0.47.0 manager: conda platform: linux-64 dependencies: packaging: '>=24.0' python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/wheel-0.46.3-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/wheel-0.47.0-pyhd8ed1ab_0.conda hash: - md5: bdbd7385b4a67025ac2dba4ef8cb6a8f - sha256: d6cf2f0ebd5e09120c28ecba450556ce553752652d91795442f0e70f837126ae + md5: d0e3b2f0030cf4fca58bde71d246e94c + sha256: 9e156ffaefb8463437144326ada4b85d1de17961b9997ac5f1cbbaf747bd8bed category: main optional: false - name: wheel - version: 0.46.3 + version: 0.47.0 manager: conda platform: win-64 dependencies: packaging: '>=24.0' python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/wheel-0.46.3-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/wheel-0.47.0-pyhd8ed1ab_0.conda hash: - md5: bdbd7385b4a67025ac2dba4ef8cb6a8f - sha256: d6cf2f0ebd5e09120c28ecba450556ce553752652d91795442f0e70f837126ae + md5: d0e3b2f0030cf4fca58bde71d246e94c + sha256: 9e156ffaefb8463437144326ada4b85d1de17961b9997ac5f1cbbaf747bd8bed category: main optional: false - name: widgetsnbextension @@ -8458,7 +8458,7 @@ package: category: main optional: false - name: grid-apps - version: 0.2.0a3 + version: 0.2.0a4.dev1+e2dc749 manager: pip platform: linux-64 dependencies: @@ -8468,16 +8468,16 @@ package: numpy: '>=2.4.2,<2.5.0' pydantic: '>=2.12.0,<2.13.0' scipy: '>=1.17.0,<1.18.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 hash: - sha256: 57806e78469cb881a8d5dceae645336e77310bf4 + sha256: e2dc749f851024de3d6d425803229943b674c4e4 source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 category: main optional: false - name: grid-apps - version: 0.2.0a3 + version: 0.2.0a4.dev1+e2dc749 manager: pip platform: win-64 dependencies: @@ -8487,12 +8487,12 @@ package: numpy: '>=2.4.2,<2.5.0' pydantic: '>=2.12.0,<2.13.0' scipy: '>=1.17.0,<1.18.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 hash: - sha256: 57806e78469cb881a8d5dceae645336e77310bf4 + sha256: e2dc749f851024de3d6d425803229943b674c4e4 source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 category: main optional: false - name: mira-simpeg diff --git a/py-3.13.conda-lock.yml b/py-3.13.conda-lock.yml index 347b2358..ad3a715f 100644 --- a/py-3.13.conda-lock.yml +++ b/py-3.13.conda-lock.yml @@ -15,8 +15,8 @@ version: 1 metadata: content_hash: - win-64: 5eb7ae8183e1db051dc86d3924be2e3999ba55c56db3a779b81db7220812a933 - linux-64: dd9779f057c2b85a33ce6237af15b234216249fffeb3c1c3fb7bb95fb1d65f0f + win-64: 108f2d5624261faddfd5413b082b0ad4dd1652b8f599680c63a28fbff70e0e04 + linux-64: 6a1304daf87733c2c46e134f75783a582318d63b754b36eba640e422c324e954 channels: - url: conda-forge used_env_vars: [] @@ -977,27 +977,27 @@ package: category: main optional: false - name: ca-certificates - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: linux-64 dependencies: __unix: '' - url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda hash: - md5: 4492fd26db29495f0ba23f146cd5638d - sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc + md5: e18ad67cf881dcadee8b8d9e2f8e5f73 + sha256: c9dbcc8039a52023660d6d1bbf87594a93dd69c6ac5a2a44323af2c92976728d category: main optional: false - name: ca-certificates - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: win-64 dependencies: __win: '' - url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.2.25-h4c7d964_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/ca-certificates-2026.4.22-h4c7d964_0.conda hash: - md5: f001e6e220355b7f87403a4d0e5bf1ca - sha256: 37950019c59b99585cee5d30dbc2cc9696ed4e11f5742606a4db1621ed8f94d6 + md5: 56fb2c6c73efc627b40c77d14caecfba + sha256: 6f4ff81534c19e76acf52fcabf4a258088a932b8f1ac56e9a59e98f6051f8e46 category: main optional: false - name: cached-property @@ -1049,27 +1049,27 @@ package: category: main optional: false - name: certifi - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: linux-64 dependencies: python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.4.22-pyhd8ed1ab_0.conda hash: - md5: 765c4d97e877cdbbb88ff33152b86125 - sha256: a6b118fd1ed6099dc4fc03f9c492b88882a780fadaef4ed4f93dc70757713656 + md5: 929471569c93acefb30282a22060dcd5 + sha256: 989db6e5957c4b44fa600c68c681ec2f36a55e48f7c7f1c073d5e91caa8cd878 category: dev optional: true - name: certifi - version: 2026.2.25 + version: 2026.4.22 manager: conda platform: win-64 dependencies: python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/certifi-2026.4.22-pyhd8ed1ab_0.conda hash: - md5: 765c4d97e877cdbbb88ff33152b86125 - sha256: a6b118fd1ed6099dc4fc03f9c492b88882a780fadaef4ed4f93dc70757713656 + md5: 929471569c93acefb30282a22060dcd5 + sha256: 989db6e5957c4b44fa600c68c681ec2f36a55e48f7c7f1c073d5e91caa8cd878 category: dev optional: true - name: cffi @@ -1766,7 +1766,7 @@ package: category: main optional: false - name: fonttools - version: 4.62.0 + version: 4.62.1 manager: conda platform: linux-64 dependencies: @@ -1776,14 +1776,14 @@ package: munkres: '' python: '>=3.13,<3.14.0a0' python_abi: 3.13.* - url: https://repo.prefix.dev/conda-forge/linux-64/fonttools-4.62.0-py313h3dea7bd_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/fonttools-4.62.1-py313h3dea7bd_0.conda hash: - md5: e479cfdec38fb69dc81ce8806b5c75f6 - sha256: 259c633b5f5f3202f851a00953ae98f00a9e3c68747fc011aa0f59169128220f + md5: 98082dfa338d9f0dca885e4865c69a20 + sha256: 45fbd480b4bece6a2eb674ba87390e75d5b06b2114c8f57210e7ca0d19e2509e category: main optional: false - name: fonttools - version: 4.62.0 + version: 4.62.1 manager: conda platform: win-64 dependencies: @@ -1794,10 +1794,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/fonttools-4.62.0-py313hd650c13_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/fonttools-4.62.1-py313hd650c13_0.conda hash: - md5: 8bea8a8b3e5b1e405ef873bccd252a7e - sha256: 8371705abef41009efa7bf4910e58363e6022c7796b50c819f81dc0e0560c243 + md5: 0638575ee9aaec193898033359a93d8d + sha256: 68c0b06345e9aaf77ff9c371d3e27a9e11b3a4d09d8b4c58b27417ce36d4da05 category: main optional: false - name: fqdn @@ -2893,7 +2893,7 @@ package: category: dev optional: true - name: jupyter_events - version: 0.12.0 + version: 0.12.1 manager: conda platform: linux-64 dependencies: @@ -2906,14 +2906,14 @@ package: rfc3339-validator: '' rfc3986-validator: '>=0.1.1' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.0-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.1-pyhcf101f3_0.conda hash: - md5: 31e11c30bbee1682a55627f953c6725a - sha256: e9964aaaf6d24a685cd5ce9d75731b643ed7f010fb979574a6580cd2f974c6cd + md5: bf42ee94c750c0b2e7e998b79ac299ea + sha256: c7edb5682c6316a95ad781dccb1b6589cd2ec0bf94f23c21152974eb0363b5d7 category: dev optional: true - name: jupyter_events - version: 0.12.0 + version: 0.12.1 manager: conda platform: win-64 dependencies: @@ -2926,10 +2926,10 @@ package: rfc3339-validator: '' rfc3986-validator: '>=0.1.1' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.0-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_events-0.12.1-pyhcf101f3_0.conda hash: - md5: 31e11c30bbee1682a55627f953c6725a - sha256: e9964aaaf6d24a685cd5ce9d75731b643ed7f010fb979574a6580cd2f974c6cd + md5: bf42ee94c750c0b2e7e998b79ac299ea + sha256: c7edb5682c6316a95ad781dccb1b6589cd2ec0bf94f23c21152974eb0363b5d7 category: dev optional: true - name: jupyter_server @@ -4432,29 +4432,29 @@ package: category: main optional: false - name: llvm-openmp - version: 22.1.3 + version: 22.1.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - url: https://repo.prefix.dev/conda-forge/linux-64/llvm-openmp-22.1.3-h4922eb0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/llvm-openmp-22.1.4-h4922eb0_0.conda hash: - md5: f7781cb22afa62ef27fd0b3300c53c86 - sha256: 39ae724bd3cde1381df53bfb53e4d39da0dd613b180fdda5ac0a8ce1b43fb525 + md5: fa2c5c7f8d5319ab9c9fcbbd04022abf + sha256: 40e841ae0a03dfb5eaab6479ba0745b3666c869f5a8d066d42a21615933eeb15 category: main optional: false - name: llvm-openmp - version: 22.1.3 + version: 22.1.4 manager: conda platform: win-64 dependencies: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/llvm-openmp-22.1.3-h4fa8253_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/llvm-openmp-22.1.4-h4fa8253_0.conda hash: - md5: fa585aca061eaaae7225df2e85370bf7 - sha256: b82d43c9c52287204c929542e146b54e3eab520dba47c7b3e973ec986bf40f92 + md5: 761757ab617e8bfef18cc422dd02bbad + sha256: 7d827f8c125ac2fe3a9d5b47c1f95fc540bb8ef78685e4bcf941957257bb1eff category: main optional: false - name: locket @@ -8399,7 +8399,7 @@ package: category: main optional: false - name: grid-apps - version: 0.2.0a3 + version: 0.2.0a4.dev1+e2dc749 manager: pip platform: linux-64 dependencies: @@ -8409,16 +8409,16 @@ package: numpy: '>=2.4.2,<2.5.0' pydantic: '>=2.12.0,<2.13.0' scipy: '>=1.17.0,<1.18.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 hash: - sha256: 57806e78469cb881a8d5dceae645336e77310bf4 + sha256: e2dc749f851024de3d6d425803229943b674c4e4 source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 category: main optional: false - name: grid-apps - version: 0.2.0a3 + version: 0.2.0a4.dev1+e2dc749 manager: pip platform: win-64 dependencies: @@ -8428,12 +8428,12 @@ package: numpy: '>=2.4.2,<2.5.0' pydantic: '>=2.12.0,<2.13.0' scipy: '>=1.17.0,<1.18.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 hash: - sha256: 57806e78469cb881a8d5dceae645336e77310bf4 + sha256: e2dc749f851024de3d6d425803229943b674c4e4 source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@57806e78469cb881a8d5dceae645336e77310bf4 + url: git+https://github.com/MiraGeoscience/grid-apps.git@e2dc749f851024de3d6d425803229943b674c4e4 category: main optional: false - name: mira-simpeg diff --git a/pyproject.toml b/pyproject.toml index 5b590ad2..2b81c354 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -96,16 +96,16 @@ trimesh = "~4.1.3" ## Pip dependencies from Git repositories #---------------------------------------- #geoh5py = {version = ">=0.13.0a2, 0.13.*", source = "pypi", allow-prereleases = true} -geoh5py = {git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "develop"} +geoh5py = {git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "release/GA_4.8"} #grid-apps = {version = ">=0.2.0a2, 0.2.*", source = "pypi", allow-prereleases = true} -grid-apps = {git = "https://github.com/MiraGeoscience/grid-apps.git", rev = "develop"} +grid-apps = {git = "https://github.com/MiraGeoscience/grid-apps.git", rev = "release/GA_4.8"} #geoapps-utils = {version = ">=0.7.0a2, 0.7.*", source = "pypi", allow-prereleases = true} -geoapps-utils = {git = "https://github.com/MiraGeoscience/geoapps-utils.git", rev = "develop"} +geoapps-utils = {git = "https://github.com/MiraGeoscience/geoapps-utils.git", rev = "release/GA_4.8"} #mira-simpeg = {version = ">=0.23.0.2, 0.23.0.* || >=0.25.0.1a, 0.25.0.*", source="pypi", allow-prereleases = true, extras = ["dask"]} -mira-simpeg = {git = "https://github.com/MiraGeoscience/simpeg.git", rev = "develop", extras = ["dask"]} +mira-simpeg = {git = "https://github.com/MiraGeoscience/simpeg.git", rev = "release/GA_4.8", extras = ["dask"]} ## about pip dependencies # to be specified to work with conda-lock diff --git a/simpeg_drivers/options.py b/simpeg_drivers/options.py index d6c06fca..d1b35a10 100644 --- a/simpeg_drivers/options.py +++ b/simpeg_drivers/options.py @@ -183,7 +183,9 @@ class CoreOptions(Options): version: str = public_version() icon: str | None = None inversion_type: str - documentation: str | None = None + documentation: str | None = ( + "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html" + ) conda_environment: str = "simpeg_drivers" run_command: str = "simpeg_drivers.driver" mesh: Octree | Grid2D | DrapeModel | None = None diff --git a/simpeg_drivers/plate_simulation/__init__.py b/simpeg_drivers/plate_simulation/__init__.py index df32b204..6f1705aa 100644 --- a/simpeg_drivers/plate_simulation/__init__.py +++ b/simpeg_drivers/plate_simulation/__init__.py @@ -7,3 +7,5 @@ # (see LICENSE file at the root of this source code package). ' # ' # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +from .driver import PlateSimulationDriver diff --git a/simpeg_drivers/plate_simulation/match/__init__.py b/simpeg_drivers/plate_simulation/match/__init__.py index df32b204..56a5c742 100644 --- a/simpeg_drivers/plate_simulation/match/__init__.py +++ b/simpeg_drivers/plate_simulation/match/__init__.py @@ -7,3 +7,5 @@ # (see LICENSE file at the root of this source code package). ' # ' # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +from .driver import PlateMatchDriver diff --git a/simpeg_drivers/plate_simulation/match/uijson.py b/simpeg_drivers/plate_simulation/match/uijson.py deleted file mode 100644 index e2fc3c23..00000000 --- a/simpeg_drivers/plate_simulation/match/uijson.py +++ /dev/null @@ -1,26 +0,0 @@ -# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -# Copyright (c) 2023-2026 Mira Geoscience Ltd. ' -# ' -# This file is part of simpeg-drivers package. ' -# ' -# simpeg-drivers is distributed under the terms and conditions of the MIT License ' -# (see LICENSE file at the root of this source code package). ' -# ' -# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' - -from geoh5py.ui_json.forms import DataForm, FloatForm, ObjectForm, StringForm -from geoh5py.ui_json.ui_json import BaseUIJson -from pydantic import ConfigDict - - -class PlateMatchUIJson(BaseUIJson): - model_config = ConfigDict(arbitrary_types_allowed=True) - - survey: ObjectForm - data: DataForm - queries: ObjectForm - strike_angles: DataForm - max_distance: FloatForm - topography_object: ObjectForm - topography: DataForm - simulations: StringForm diff --git a/simpeg_drivers/plate_simulation/options.py b/simpeg_drivers/plate_simulation/options.py index ddbe3d32..754a9ff2 100644 --- a/simpeg_drivers/plate_simulation/options.py +++ b/simpeg_drivers/plate_simulation/options.py @@ -13,48 +13,18 @@ from typing import ClassVar from geoapps_utils.base import Options +from geoapps_utils.run import fetch_driver_class_from_string from geoh5py.groups import SimPEGGroup, UIJsonGroup from geoh5py.ui_json import InputFile from simpeg_drivers import assets_path -from simpeg_drivers.electricals.direct_current.three_dimensions.options import ( - DC3DForwardOptions, -) -from simpeg_drivers.electromagnetics.frequency_domain.options import ( - FDEMForwardOptions, -) -from simpeg_drivers.electromagnetics.time_domain.options import ( - TDEMForwardOptions, -) -from simpeg_drivers.natural_sources.apparent_conductivity.options import ( - AppConForwardOptions, -) -from simpeg_drivers.natural_sources.magnetotellurics.options import ( - MTForwardOptions, -) -from simpeg_drivers.natural_sources.tipper.options import TipperForwardOptions +from simpeg_drivers.driver import from_input_file from simpeg_drivers.options import BaseForwardOptions -from simpeg_drivers.potential_fields.gravity.options import GravityForwardOptions -from simpeg_drivers.potential_fields.magnetic_vector import ( - MagneticVectorForwardOptions, -) from simpeg_drivers.utils.synthetics.meshes import MeshOptions from .models.options import ModelOptions -PARAM_MAP = { - "apparent conductivty": AppConForwardOptions, - "gravity": GravityForwardOptions, - "tdem": TDEMForwardOptions, - "fem": FDEMForwardOptions, - "magnetotellurics": MTForwardOptions, - "direct current 3d": DC3DForwardOptions, - "magnetic vector": MagneticVectorForwardOptions, - "tipper": TipperForwardOptions, -} - - class PlateSimulationOptions(Options): """ Parameters for the plate simulation driver. @@ -98,8 +68,15 @@ def simulation_parameters(self) -> BaseForwardOptions: if input_file.data is None: raise ValueError("Input file data must be set.") - if input_file.data["inversion_type"] in PARAM_MAP: - return PARAM_MAP[input_file.data["inversion_type"]].build(input_file.data) + driver = None + if input_file.data.get("inversion_type", None): + driver = from_input_file(input_file.data) + + if input_file.data.get("run_command", None): + driver = fetch_driver_class_from_string(input_file.data["run_command"]) + + if driver: + return driver._params_class.build(input_file.data) # pylint: disable=protected-access raise NotImplementedError( f"Unknown inversion type: {input_file.data['inversion_type']}" diff --git a/simpeg_drivers/plate_simulation/sweep/__init__.py b/simpeg_drivers/plate_simulation/sweep/__init__.py index df32b204..f6af80c8 100644 --- a/simpeg_drivers/plate_simulation/sweep/__init__.py +++ b/simpeg_drivers/plate_simulation/sweep/__init__.py @@ -7,3 +7,5 @@ # (see LICENSE file at the root of this source code package). ' # ' # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +from .driver import PlateSweepDriver diff --git a/simpeg_drivers/plate_simulation/sweep/driver.py b/simpeg_drivers/plate_simulation/sweep/driver.py index 7bbbe6ae..10731872 100644 --- a/simpeg_drivers/plate_simulation/sweep/driver.py +++ b/simpeg_drivers/plate_simulation/sweep/driver.py @@ -36,7 +36,6 @@ from simpeg_drivers.plate_simulation.driver import PlateSimulationDriver from simpeg_drivers.plate_simulation.options import PlateSimulationOptions from simpeg_drivers.plate_simulation.sweep.options import SweepOptions -from simpeg_drivers.plate_simulation.sweep.uijson import PlateSweepUIJson from simpeg_drivers.utils.utils import start_dask_run, validate_out_group @@ -73,25 +72,12 @@ def start_message(self): @classmethod def start(cls, filepath: str | Path, mode="r", **_) -> Self: - """Start the parameter sweep from a ui.json file.""" - logger.info("Loading input file . . .") - filepath = Path(filepath).resolve() - uijson = PlateSweepUIJson.read(filepath) - - try: - with Workspace(uijson.geoh5, mode=mode) as workspace: - options = SweepOptions.build(uijson.to_params(workspace=workspace)) - logger.info("Initializing application . . .") - driver = cls(options) - logger.info("Running application . . .") - driver.run() - logger.info("Results saved to %s", options.geoh5.h5file) - - except GeoAppsError as error: - logger.warning("\n\nApplicationError: %s\n\n", error) - sys.exit(1) - - return driver + """ + Start the parameter sweep from a ui.json file. + + Force the mode to be read-only for safe copy. + """ + return super().start(filepath, mode="r") def run(self): """Loop over all trials and run a worker for each unique parameter set.""" @@ -172,7 +158,10 @@ def run_trial( group for group in workspace.groups if isinstance(group, SimPEGGroup | UIJsonGroup) - and "plate_simulation.driver" in group.options.get("run_command") + and ( + "plate_simulation.driver" in group.options.get("run_command") + or "plate simulation" == group.options.get("inversion_type") + ) ) opt_dict = workspace.promote(flatten(plate_simulation.options)) diff --git a/simpeg_drivers/plate_simulation/sweep/options.py b/simpeg_drivers/plate_simulation/sweep/options.py index 0f2a5295..ba6a9913 100644 --- a/simpeg_drivers/plate_simulation/sweep/options.py +++ b/simpeg_drivers/plate_simulation/sweep/options.py @@ -17,7 +17,7 @@ from geoh5py.groups import SimPEGGroup, UIJsonGroup from geoh5py.shared.utils import stringify from geoh5py.ui_json import InputFile -from pydantic import BaseModel, ConfigDict, field_serializer +from pydantic import BaseModel, ConfigDict, field_serializer, field_validator from simpeg_drivers import assets_path @@ -34,11 +34,11 @@ class ParamSweep(BaseModel): name: str start: float - stop: float | None - count: int | None + stop: float + count: int def __call__(self) -> tuple[float, float, int]: - return (self.start, self.stop, self.count) + return self.start, self.stop, self.count class SweepOptions(Options): @@ -67,6 +67,16 @@ class SweepOptions(Options): sweeps: list[ParamSweep] workdir: Path = Path("./simulations") + @field_validator("workdir", mode="before") + @classmethod + def workdir_optional(cls, value): + """ + Deal with legacy optional workdir. + """ + if value is None: + value = Path("./simulations") + return value + @field_serializer("sweeps") def sweeps_to_params(self, sweeps): out = {} @@ -105,7 +115,11 @@ def collect_sweep(param: str) -> dict: "count": options.pop(f"{param}_count"), } - sweep_params = [k.removesuffix("_start") for k in options if "_start" in k] + sweep_params = [ + key.removesuffix("_start") + for key, val in options.items() + if ("_start" in key and val is not None) + ] options["sweeps"] = [collect_sweep(param) for param in sweep_params] return options diff --git a/simpeg_drivers/plate_simulation/sweep/uijson.py b/simpeg_drivers/plate_simulation/sweep/uijson.py deleted file mode 100644 index 8a74ff32..00000000 --- a/simpeg_drivers/plate_simulation/sweep/uijson.py +++ /dev/null @@ -1,55 +0,0 @@ -# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -# Copyright (c) 2023-2026 Mira Geoscience Ltd. ' -# ' -# This file is part of simpeg-drivers package. ' -# ' -# simpeg-drivers is distributed under the terms and conditions of the MIT License ' -# (see LICENSE file at the root of this source code package). ' -# ' -# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' - -from geoh5py.ui_json.forms import ( - BoolForm, - FloatForm, - GroupForm, - IntegerForm, - StringForm, -) -from geoh5py.ui_json.ui_json import BaseUIJson -from pydantic import ConfigDict - - -class PlateSweepUIJson(BaseUIJson): - model_config = ConfigDict(arbitrary_types_allowed=True) - - template: GroupForm - background_start: FloatForm - background_stop: FloatForm - background_count: IntegerForm - overburden_start: FloatForm - overburden_stop: FloatForm - overburden_count: IntegerForm - thickness_start: FloatForm - thickness_stop: FloatForm - thickness_count: IntegerForm - plate_start: FloatForm - plate_stop: FloatForm - plate_count: IntegerForm - width_start: FloatForm - width_stop: FloatForm - width_count: IntegerForm - strike_length_start: FloatForm - strike_length_stop: FloatForm - strike_length_count: IntegerForm - dip_length_start: FloatForm - dip_length_stop: FloatForm - dip_length_count: IntegerForm - dip_start: FloatForm - dip_stop: FloatForm - dip_count: IntegerForm - dip_direction_start: FloatForm - dip_direction_stop: FloatForm - dip_direction_count: IntegerForm - out_group: GroupForm | None - workdir: StringForm | None - generate_summary: BoolForm