From cd7a9c82edcb9d99b159ca0d098bc0ff527cca01 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 15 Oct 2025 15:35:23 -0700 Subject: [PATCH 01/26] Inner parallel process to create simulations --- .../components/factories/misfit_factory.py | 1 + simpeg_drivers/utils/nested.py | 83 +++++++++++++------ 2 files changed, 58 insertions(+), 26 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index eeb3bb19..fcd86d24 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -82,6 +82,7 @@ def assemble_arguments( # pylint: disable=arguments-differ self.params.inversion_type, self.params.forward_only, shared_indices=np.hstack(local_indices), + worker=self.workers[worker_ind], workers=self.workers[worker_ind], ) ) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index b7883797..03eb3f0f 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -15,12 +15,14 @@ from pathlib import Path import numpy as np +from dask.distributed import get_client from discretize import TensorMesh, TreeMesh from geoh5py.shared.utils import uuid_from_values from scipy.optimize import linear_sum_assignment from scipy.spatial import cKDTree from scipy.spatial.distance import cdist from simpeg import data, data_misfit, maps, meta, objective_function +from simpeg.dask.objective_function import DistributedComboMisfits from simpeg.electromagnetics.base_1d import BaseEM1DSimulation from simpeg.electromagnetics.frequency_domain.simulation import BaseFDEMSimulation from simpeg.electromagnetics.frequency_domain.sources import ( @@ -122,6 +124,7 @@ def create_misfit( inversion_type, forward_only, shared_indices=None, + worker=None, ): """ Create a list of local misfits based on the local indices. @@ -142,11 +145,20 @@ def create_misfit( :return: List of local misfits and data slices. """ # Split into smaller chunks + if isinstance(simulation, BaseEM1DSimulation) and isinstance( local_indices, Iterable ): - misfit_list = [ - create_misfit( + try: + client = get_client() + simulation = client.scatter(simulation) + except ValueError: + client = None + + misfit_list = [] + + for ind in local_indices: + args = ( simulation, ind, channel, @@ -154,9 +166,25 @@ def create_misfit( padding_cells, inversion_type, forward_only, + None, ) - for ind in local_indices - ] + if client: + misfit_list.append(client.submit(create_misfit, *args, workers=worker)) + else: + misfit_list.append( + create_misfit( + *args, + ) + ) + + if client: + misfit_list = client.gather(misfit_list) + return DistributedComboMisfits( + misfit_list, + client=client, + workers=[worker], + ) + return objective_function.ComboObjectiveFunction(misfit_list) local_mesh = None @@ -214,15 +242,6 @@ def create_simulation( local_survey = create_survey(simulation.survey, indices=indices, channel=channel) kwargs = {"survey": local_survey} - if local_mesh is None: - local_mesh = create_mesh( - local_survey, - simulation.mesh, - minimum_level=3, - padding_cells=padding_cells, - ) - - args = (local_mesh,) if isinstance(simulation, BaseEM1DSimulation): local_mesh = simulation.layers_mesh actives = np.ones(simulation.layers_mesh.n_cells, dtype=bool) @@ -232,20 +251,32 @@ def create_simulation( mapping = maps.Projection(simulation.mesh.n_cells, model_slice) kwargs["topo"] = simulation.active_cells[indices] args = () - - elif isinstance(local_mesh, TreeMesh): - mapping = maps.TileMap( - simulation.mesh, - simulation.active_cells, - local_mesh, - enforce_active=True, - components=3 if getattr(simulation, "model_type", None) == "vector" else 1, - ) - actives = mapping.local_active - # For DCIP-2D else: - actives = simulation.active_cells - mapping = maps.IdentityMap(nP=int(actives.sum())) + if local_mesh is None: + local_mesh = create_mesh( + local_survey, + simulation.mesh, + minimum_level=3, + padding_cells=padding_cells, + ) + + args = (local_mesh,) + + if isinstance(local_mesh, TreeMesh): + mapping = maps.TileMap( + simulation.mesh, + simulation.active_cells, + local_mesh, + enforce_active=True, + components=3 + if getattr(simulation, "model_type", None) == "vector" + else 1, + ) + actives = mapping.local_active + # For DCIP-2D + else: + actives = simulation.active_cells + mapping = maps.IdentityMap(nP=int(actives.sum())) n_actives = int(actives.sum()) if getattr(simulation, "_chiMap", None) is not None: From e21d7f0ea16e6d7931848e5889bfc2128b16dba7 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 15 Oct 2025 19:49:57 -0700 Subject: [PATCH 02/26] Revert nested distributed --- simpeg_drivers/utils/nested.py | 39 +++++++++++++++++----------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index 03eb3f0f..d11d5c7c 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -149,11 +149,12 @@ def create_misfit( if isinstance(simulation, BaseEM1DSimulation) and isinstance( local_indices, Iterable ): - try: - client = get_client() - simulation = client.scatter(simulation) - except ValueError: - client = None + # if worker: + # client = get_client() + # simulation = client.scatter(simulation) + # local_indices = np.array_split(local_indices, client.nthreads()[worker[0]]) + # else: + # client = None misfit_list = [] @@ -168,23 +169,23 @@ def create_misfit( forward_only, None, ) - if client: - misfit_list.append(client.submit(create_misfit, *args, workers=worker)) - else: - misfit_list.append( - create_misfit( - *args, - ) + # if client: + # misfit_list.append(client.submit(create_misfit, *args, workers=worker)) + # else: + misfit_list.append( + create_misfit( + *args, ) - - if client: - misfit_list = client.gather(misfit_list) - return DistributedComboMisfits( - misfit_list, - client=client, - workers=[worker], ) + # if client: + # misfit_list = client.gather(misfit_list) + # return DistributedComboMisfits( + # misfit_list, + # client=client, + # workers=[worker], + # ) + return objective_function.ComboObjectiveFunction(misfit_list) local_mesh = None From 132b123bc912c8861481353ad73c2e02d940c60e Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 15 Oct 2025 20:34:59 -0700 Subject: [PATCH 03/26] Add broadcasting and debug prints --- simpeg_drivers/components/factories/misfit_factory.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index fcd86d24..045cb7a7 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -56,7 +56,7 @@ def assemble_arguments( # pylint: disable=arguments-differ use_futures = self.client if use_futures: - delayed_simulation = self.client.scatter(self.simulation) + delayed_simulation = self.client.scatter(self.simulation, broadcast=True) else: delayed_simulation = self.simulation @@ -107,7 +107,7 @@ def assemble_arguments( # pylint: disable=arguments-differ misfits[-1].name = f"{name}" tile_count += 1 - + print(f"Number of futures{len(misfits)}") local_orderings = self.collect_ordering_from_misfits(misfits) self.simulation.survey.ordering = np.vstack(local_orderings) From f21f55276aeea72ffb226ddbaf9504c17721f4ef Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 16 Oct 2025 10:13:10 -0700 Subject: [PATCH 04/26] Add more prints --- simpeg_drivers/components/factories/misfit_factory.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index 045cb7a7..7cf3bedb 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -56,10 +56,12 @@ def assemble_arguments( # pylint: disable=arguments-differ use_futures = self.client if use_futures: + print("Scattering simulation to workers") delayed_simulation = self.client.scatter(self.simulation, broadcast=True) else: delayed_simulation = self.simulation + print("looping over tiles and channels to create misfit functions") misfits = [] tile_count = 0 for channel in channels: @@ -71,6 +73,7 @@ def assemble_arguments( # pylint: disable=arguments-differ # Distribute the work across workers round-robin style if use_futures: worker_ind = tile_count % len(self.workers) + print(f"Count {tile_count}") misfits.append( self.client.submit( create_misfit, From 479574be7affc6f2fb42e5f82e9bb5253f1ce59f Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 16 Oct 2025 13:57:13 -0700 Subject: [PATCH 05/26] Remove broadcasting --- simpeg_drivers/components/factories/misfit_factory.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index 7cf3bedb..e9980f72 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -56,8 +56,8 @@ def assemble_arguments( # pylint: disable=arguments-differ use_futures = self.client if use_futures: - print("Scattering simulation to workers") - delayed_simulation = self.client.scatter(self.simulation, broadcast=True) + print("Scattering simulation to workers - no broacast") + delayed_simulation = self.client.scatter(self.simulation) else: delayed_simulation = self.simulation From 40c4e517e2961fec77d043089cdc01e642897dbe Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 16 Oct 2025 15:40:59 -0700 Subject: [PATCH 06/26] Try with inner parallel blocks --- simpeg_drivers/utils/nested.py | 40 +++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index d11d5c7c..ccebdb67 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -149,12 +149,12 @@ def create_misfit( if isinstance(simulation, BaseEM1DSimulation) and isinstance( local_indices, Iterable ): - # if worker: - # client = get_client() - # simulation = client.scatter(simulation) - # local_indices = np.array_split(local_indices, client.nthreads()[worker[0]]) - # else: - # client = None + if worker: + client = get_client() + simulation = client.scatter(simulation, workers=worker) + local_indices = np.array_split(local_indices, client.nthreads()[worker[0]]) + else: + client = None misfit_list = [] @@ -169,22 +169,22 @@ def create_misfit( forward_only, None, ) - # if client: - # misfit_list.append(client.submit(create_misfit, *args, workers=worker)) - # else: - misfit_list.append( - create_misfit( - *args, + if client: + misfit_list.append(client.submit(create_misfit, *args, workers=worker)) + else: + misfit_list.append( + create_misfit( + *args, + ) ) - ) - # if client: - # misfit_list = client.gather(misfit_list) - # return DistributedComboMisfits( - # misfit_list, - # client=client, - # workers=[worker], - # ) + if client: + misfit_list = client.gather(misfit_list) + return DistributedComboMisfits( + misfit_list, + client=client, + workers=[worker] * len(misfit_list), + ) return objective_function.ComboObjectiveFunction(misfit_list) From 967660b3646cee14f7197cfbf194d3edebb42f23 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Sun, 19 Oct 2025 12:28:53 -0700 Subject: [PATCH 07/26] Use temp file to pickle simulation instead of scattering. Simplify loop over misfits --- .../components/factories/misfit_factory.py | 36 ++-- .../components/factories/survey_factory.py | 31 +++- simpeg_drivers/driver.py | 19 +- .../electromagnetics/base_1d_driver.py | 1 + simpeg_drivers/utils/nested.py | 164 +++++++++++------- 5 files changed, 169 insertions(+), 82 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index e9980f72..6ec2490f 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -11,9 +11,13 @@ from __future__ import annotations +import os +import pickle +import tempfile from typing import TYPE_CHECKING import numpy as np +from dask.distributed import wait from simpeg import objective_function from simpeg.dask import objective_function as dask_objective_function from simpeg.objective_function import ComboObjectiveFunction @@ -55,12 +59,15 @@ def assemble_arguments( # pylint: disable=arguments-differ use_futures = self.client - if use_futures: - print("Scattering simulation to workers - no broacast") - delayed_simulation = self.client.scatter(self.simulation) - else: - delayed_simulation = self.simulation + with tempfile.NamedTemporaryFile(mode="wb", delete=False) as temp_file: + # Pickle the object to the temporary file + pickle.dump(self.simulation, temp_file) + # if use_futures: + # delayed_simulation = self.client.scatter(self.simulation) + # else: + # delayed_simulation = self.simulation + # print("looping over tiles and channels to create misfit functions") misfits = [] tile_count = 0 @@ -73,31 +80,36 @@ def assemble_arguments( # pylint: disable=arguments-differ # Distribute the work across workers round-robin style if use_futures: worker_ind = tile_count % len(self.workers) - print(f"Count {tile_count}") + misfits.append( self.client.submit( create_misfit, - delayed_simulation, sub_ind, + temp_file.name, channel, tile_count, self.params.padding_cells, - self.params.inversion_type, self.params.forward_only, shared_indices=np.hstack(local_indices), worker=self.workers[worker_ind], workers=self.workers[worker_ind], ) ) + # sub_process.append(misfits[-1]) + + # if worker_ind == len(self.workers) - 1: + # print("Submitted to all workers, gathering results") + # wait(sub_process) + # sub_process = [] + else: misfits.append( create_misfit( - delayed_simulation, sub_ind, + temp_file.name, channel, tile_count, self.params.padding_cells, - self.params.inversion_type, self.params.forward_only, shared_indices=np.hstack(local_indices), ) @@ -110,6 +122,10 @@ def assemble_arguments( # pylint: disable=arguments-differ misfits[-1].name = f"{name}" tile_count += 1 + + if use_futures: + wait(misfits) + os.unlink(temp_file.name) print(f"Number of futures{len(misfits)}") local_orderings = self.collect_ordering_from_misfits(misfits) diff --git a/simpeg_drivers/components/factories/survey_factory.py b/simpeg_drivers/components/factories/survey_factory.py index 7f26049e..9c18b2c3 100644 --- a/simpeg_drivers/components/factories/survey_factory.py +++ b/simpeg_drivers/components/factories/survey_factory.py @@ -101,6 +101,7 @@ def assemble_arguments(self, data=None): np.zeros(n_rx * n_comp), # Single channel np.kron(np.ones(n_rx), np.arange(n_comp)), # Components np.kron(np.arange(n_rx), np.ones(n_comp)), # Receivers + np.zeros(n_rx * n_comp), # Single source ].astype(int) self.sorting = np.arange(n_rx, dtype=int) @@ -164,6 +165,7 @@ def _dcip_arguments(self, data=None): sources = [] sorting = [] + source_ids = [] for source_id in source_ids[np.argsort(order)]: # Cycle in original order receiver_indices = np.where(receiver_entity.ab_cell_id.values == source_id)[ 0 @@ -191,11 +193,13 @@ def _dcip_arguments(self, data=None): ) source.rx_ids = np.asarray(receiver_indices) sources.append(source) + source_ids.append(np.full(receiver_indices.shape, source_id)) self.ordering = np.c_[ np.zeros(receiver_entity.n_cells), # Single channel np.zeros(receiver_entity.n_cells), # Single component np.hstack(sorting), # Multi-receivers + np.hstack(source_ids), # Sources ].astype(int) self.sorting = np.hstack(sorting).astype(int) return [sources] @@ -269,7 +273,10 @@ def _tdem_arguments(self, data=None): rx_factory = ReceiversFactory(self.params) tx_factory = SourcesFactory(self.params) ordering = [] - for cur_tx_locs, rx_ids in zip(tx_locs, sorting, strict=True): + + for count, (cur_tx_locs, rx_ids) in enumerate( + zip(tx_locs, sorting, strict=True) + ): locs = receivers.vertices[rx_ids, :] rx_list = [] @@ -287,6 +294,7 @@ def _tdem_arguments(self, data=None): np.kron(np.arange(n_times), np.ones(n_rx)), np.ones(n_times * n_rx) * comp_id, np.kron(np.ones(n_times), np.asarray(rx_ids)), + np.full(n_times * n_rx, count), ] ) @@ -327,6 +335,7 @@ def _fem_arguments(self, data=None): block_ordering = np.vstack(block_ordering) ordering = [] + tx_count = 0 for freq_id, frequency in enumerate(channels): for rx_id, receivers in enumerate(receiver_groups): locs = tx_locs[frequency == frequencies, :][rx_id, :] @@ -338,15 +347,22 @@ def _fem_arguments(self, data=None): tx.rx_ids = np.r_[rx_id] sources.append(tx) + source_ids = ( + np.kron( + np.arange(len(receiver_groups)), np.ones(len(receivers)) + ).astype(int) + + tx_count + ) ordering.append( - np.hstack( - [ - np.ones((block_ordering.shape[0], 1)) * freq_id, - block_ordering, - ] - ) + np.c_[ + np.ones(block_ordering.shape[0]) * freq_id, + block_ordering, + source_ids, # Source IDs + ] ) + tx_count = source_ids.max() + 1 + self.ordering = np.vstack(ordering).astype(int) self.sorting = np.arange(rx_locs.shape[0], dtype=int) return [sources] @@ -392,6 +408,7 @@ def _naturalsource_arguments(self, data=None): [ np.ones((block_ordering.shape[0], 1)) * freq_id, block_ordering, + np.ones((block_ordering.shape[0], 1)) * freq_id, # Source IDs ] ) ) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index f84e50dc..61a8e3dc 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -197,7 +197,7 @@ def split_list(self, tiles: list[np.ndarray]) -> list[np.ndarray]: if len(self.workers) == 0: return [[tile] for tile in tiles] - n_tiles = self.params.compute.tile_spatial + n_tiles = len(tiles) n_channels = 1 if isinstance(self.params.data_object, FEMSurvey) and not isinstance( @@ -684,11 +684,23 @@ def get_regularization(self): return objective_function.ComboObjectiveFunction(objfcts=reg_funcs) def get_tiles(self): + n_data = self.inversion_data.mask.sum() + indices = np.arange(n_data) + if "2d" in self.params.inversion_type: - return [np.arange(self.inversion_data.mask.sum())] + return [indices] if "1d" in self.params.inversion_type: - return [np.arange(self.inversion_data.mask.sum())] + # Heuristic to avoid too many chunks + n_chunks = n_data // 32 + + if self.params.compute.n_workers: + n_chunks /= self.params.compute.n_workers + n_chunks = int(n_chunks) * self.params.compute.n_workers + + n_chunks = np.max([n_chunks, 1]) + + return np.array_split(indices, n_chunks) return tile_locations( self.inversion_data.locations, @@ -808,6 +820,7 @@ def get_path(self, filepath: str | Path) -> str: if __name__ == "__main__": file = Path(sys.argv[1]).resolve() + # file = Path(r"C:\Users\dominiquef\Desktop\DIGHEM_1d_run4 - Copy.ui.json") input_file = load_ui_json_as_dict(file) n_workers = input_file.get("n_workers", None) n_threads = input_file.get("n_threads", None) diff --git a/simpeg_drivers/electromagnetics/base_1d_driver.py b/simpeg_drivers/electromagnetics/base_1d_driver.py index a4e93512..0257a44c 100644 --- a/simpeg_drivers/electromagnetics/base_1d_driver.py +++ b/simpeg_drivers/electromagnetics/base_1d_driver.py @@ -102,6 +102,7 @@ def simulation(self): self._simulation.mesh = self.inversion_mesh.mesh self._simulation.layers_mesh = self.layers_mesh self._simulation.active_cells = self.topo_z_drape + self._simulation._fhtfilt = None # pylint: disable=protected-access return self._simulation diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index ccebdb67..6e83782b 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -9,12 +9,15 @@ # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' from __future__ import annotations +import pickle import warnings from collections.abc import Iterable from copy import copy +from itertools import chain from pathlib import Path import numpy as np +from dask import compute, delayed from dask.distributed import get_client from discretize import TensorMesh, TreeMesh from geoh5py.shared.utils import uuid_from_values @@ -116,15 +119,14 @@ def create_mesh( def create_misfit( - simulation, local_indices, + simulation_file, channel, tile_count, padding_cells, - inversion_type, forward_only, shared_indices=None, - worker=None, + # worker=None, ): """ Create a list of local misfits based on the local indices. @@ -145,78 +147,109 @@ def create_misfit( :return: List of local misfits and data slices. """ # Split into smaller chunks + with open(simulation_file, "rb") as file: + simulation = pickle.load(file) if isinstance(simulation, BaseEM1DSimulation) and isinstance( local_indices, Iterable ): - if worker: - client = get_client() - simulation = client.scatter(simulation, workers=worker) - local_indices = np.array_split(local_indices, client.nthreads()[worker[0]]) - else: - client = None + # if worker: + # client = get_client() + # simulation = client.scatter(simulation, workers=worker) + # local_indices = np.array_split(local_indices, np.max([1, client.nthreads()[worker[0]]])) + # else: + # delayed_create = delayed(_misfits_from_indices) + # client = None + # local_indices = np.array_split(local_indices, cpu_count()) misfit_list = [] + # print(f"In {np.min(local_indices)} to {np.max(local_indices)}") + args = ( + simulation, + channel, + tile_count, + padding_cells, + forward_only, + ) + # for ind in local_indices: + # if client: + # misfit_list.append(client.submit(_misfits_from_indices, ind, *args, workers=worker)) + # else: + misfit_list = _misfits_from_indices( + local_indices, + *args, + ) + + # if client: + # misfit_list = client.gather(misfit_list) + # return [ + # objective_function.ComboObjectiveFunction(misfit) + # for misfit in misfit_list + # ] + # return DistributedComboMisfits( + # misfit_list, + # client=client, + # workers=[worker] * len(misfit_list), + # ) + + # misfit_list = compute(misfit_list) + # misfit_list = list(chain.from_iterable(misfit_list)) + return objective_function.ComboObjectiveFunction(misfit_list) + + misfits = _misfits_from_indices( + [local_indices], + simulation, + channel, + tile_count, + padding_cells, + forward_only, + shared_indices=shared_indices, + ) + return objective_function.ComboObjectiveFunction(misfits) - for ind in local_indices: - args = ( - simulation, - ind, - channel, - tile_count, - padding_cells, - inversion_type, - forward_only, - None, + +def _misfits_from_indices( + indices, + simulation, + channel, + tile_count, + padding_cells, + forward_only, + shared_indices=None, +) -> list[data_misfit.L2DataMisfit]: + local_misfits = [] + for ind in indices: + local_mesh = None + if shared_indices is not None: + local_survey = create_survey( + simulation.survey, indices=shared_indices, channel=channel ) - if client: - misfit_list.append(client.submit(create_misfit, *args, workers=worker)) - else: - misfit_list.append( - create_misfit( - *args, - ) - ) - - if client: - misfit_list = client.gather(misfit_list) - return DistributedComboMisfits( - misfit_list, - client=client, - workers=[worker] * len(misfit_list), + local_mesh = create_mesh( + local_survey, + simulation.mesh, + minimum_level=3, + padding_cells=padding_cells, ) - return objective_function.ComboObjectiveFunction(misfit_list) - - local_mesh = None - if shared_indices is not None: - local_survey = create_survey( - simulation.survey, indices=shared_indices, channel=channel - ) - local_mesh = create_mesh( - local_survey, - simulation.mesh, - minimum_level=3, + local_sim, mapping = create_simulation( + simulation, + local_mesh, + ind, + channel=channel, + tile_id=tile_count, padding_cells=padding_cells, ) + meta_simulation = meta.MetaSimulation( + simulations=[local_sim], mappings=[mapping] + ) + local_data = data.Data(local_sim.survey) + if not forward_only: + local_data.dobs = local_sim.survey.dobs + local_data.standard_deviation = local_sim.survey.std - local_sim, mapping = create_simulation( - simulation, - local_mesh, - local_indices, - channel=channel, - tile_id=tile_count, - padding_cells=padding_cells, - ) - meta_simulation = meta.MetaSimulation(simulations=[local_sim], mappings=[mapping]) - - local_data = data.Data(local_sim.survey) - local_misfit = data_misfit.L2DataMisfit(local_data, meta_simulation) - if not forward_only: - local_data.dobs = local_sim.survey.dobs - local_data.standard_deviation = local_sim.survey.std + local_misfits.append(data_misfit.L2DataMisfit(local_data, meta_simulation)) - return local_misfit + return local_misfits def create_simulation( @@ -351,7 +384,14 @@ def create_survey(survey, indices, channel=None): :param channel: Channel of the survey, for frequency systems only. """ sources = [] - for src in survey.source_list or [survey.source_field]: + + if survey.source_list: + src_inds = np.unique(survey.ordering[survey.ordering[:, 2] == indices, 3]) + source_list = [survey.source_list[ind] for ind in src_inds] + else: + source_list = [survey.source_field] + + for src in source_list: if channel is not None and getattr(src, "frequency", None) != channel: continue From e10fdbbde64b9d3cea6a68887c41323e127fec88 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Sun, 19 Oct 2025 12:57:18 -0700 Subject: [PATCH 08/26] Use local directory for pickling sim and local cluster --- simpeg_drivers/components/factories/misfit_factory.py | 6 ++---- simpeg_drivers/driver.py | 7 ++++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index 6ec2490f..6429f2c4 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -13,7 +13,6 @@ import os import pickle -import tempfile from typing import TYPE_CHECKING import numpy as np @@ -59,7 +58,7 @@ def assemble_arguments( # pylint: disable=arguments-differ use_futures = self.client - with tempfile.NamedTemporaryFile(mode="wb", delete=False) as temp_file: + with open(self.params.workpath / "simulation.pkl", mode="wb") as temp_file: # Pickle the object to the temporary file pickle.dump(self.simulation, temp_file) @@ -68,7 +67,7 @@ def assemble_arguments( # pylint: disable=arguments-differ # else: # delayed_simulation = self.simulation # - print("looping over tiles and channels to create misfit functions") + misfits = [] tile_count = 0 for channel in channels: @@ -91,7 +90,6 @@ def assemble_arguments( # pylint: disable=arguments-differ self.params.padding_cells, self.params.forward_only, shared_indices=np.hstack(local_indices), - worker=self.workers[worker_ind], workers=self.workers[worker_ind], ) ) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index 61a8e3dc..bc27854f 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -838,7 +838,12 @@ def get_path(self, filepath: str | Path) -> str: driver_class = InversionDriver.from_input_file(input_file) cluster = ( - LocalCluster(processes=True, n_workers=n_workers, threads_per_worker=n_threads) + LocalCluster( + processes=True, + n_workers=n_workers, + threads_per_worker=n_threads, + local_directory=file.parent, + ) if distributed_process else None ) From c52c718173a634bfcb1c3adf9a3b1e0400d70b42 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Sun, 19 Oct 2025 15:24:45 -0700 Subject: [PATCH 09/26] Use max_chunk_size for 1D blocks --- simpeg_drivers/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index bc27854f..95fac5dc 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -692,7 +692,7 @@ def get_tiles(self): if "1d" in self.params.inversion_type: # Heuristic to avoid too many chunks - n_chunks = n_data // 32 + n_chunks = n_data // self.params.compute.max_chunk_size if self.params.compute.n_workers: n_chunks /= self.params.compute.n_workers From 242ac2f9ea826542fae152ecd540f05f191ee9fa Mon Sep 17 00:00:00 2001 From: dominiquef Date: Mon, 20 Oct 2025 10:12:51 -0700 Subject: [PATCH 10/26] Change default chunk size for 1Ds --- simpeg_drivers-assets/uijson/fdem1d_forward.ui.json | 2 +- simpeg_drivers-assets/uijson/fdem1d_inversion.ui.json | 2 +- simpeg_drivers-assets/uijson/tdem1d_forward.ui.json | 2 +- simpeg_drivers-assets/uijson/tdem1d_inversion.ui.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/simpeg_drivers-assets/uijson/fdem1d_forward.ui.json b/simpeg_drivers-assets/uijson/fdem1d_forward.ui.json index edcd545c..1cf06e6a 100644 --- a/simpeg_drivers-assets/uijson/fdem1d_forward.ui.json +++ b/simpeg_drivers-assets/uijson/fdem1d_forward.ui.json @@ -194,7 +194,7 @@ "optional": true, "enabled": true, "label": "Maximum chunk size (Mb)", - "value": 128, + "value": 512, "verbose": 3, "visible": false, "tooltip": "Limit the chunk size used by Dask for distributed computation" diff --git a/simpeg_drivers-assets/uijson/fdem1d_inversion.ui.json b/simpeg_drivers-assets/uijson/fdem1d_inversion.ui.json index 729ebe7b..006b742c 100644 --- a/simpeg_drivers-assets/uijson/fdem1d_inversion.ui.json +++ b/simpeg_drivers-assets/uijson/fdem1d_inversion.ui.json @@ -564,7 +564,7 @@ "optional": true, "enabled": true, "label": "Maximum chunk size (Mb)", - "value": 128, + "value": 512, "verbose": 3, "visible": false, "tooltip": "Limit the chunk size used by Dask for distributed computation" diff --git a/simpeg_drivers-assets/uijson/tdem1d_forward.ui.json b/simpeg_drivers-assets/uijson/tdem1d_forward.ui.json index 6ea47fa4..6ebb20b8 100644 --- a/simpeg_drivers-assets/uijson/tdem1d_forward.ui.json +++ b/simpeg_drivers-assets/uijson/tdem1d_forward.ui.json @@ -209,7 +209,7 @@ "optional": true, "enabled": true, "label": "Maximum chunk size (Mb)", - "value": 128, + "value": 512, "verbose": 3, "visible": false, "tooltip": "Limit the chunk size used by Dask for distributed computation" diff --git a/simpeg_drivers-assets/uijson/tdem1d_inversion.ui.json b/simpeg_drivers-assets/uijson/tdem1d_inversion.ui.json index 76e6853a..c15368dc 100644 --- a/simpeg_drivers-assets/uijson/tdem1d_inversion.ui.json +++ b/simpeg_drivers-assets/uijson/tdem1d_inversion.ui.json @@ -547,7 +547,7 @@ "optional": true, "enabled": true, "label": "Maximum chunk size (Mb)", - "value": 128, + "value": 512, "verbose": 3, "visible": false, "tooltip": "Limit the chunk size used by Dask for distributed computation" From c6d1d5f8708c571f617de3d821f35a14f4326684 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Mon, 20 Oct 2025 10:19:31 -0700 Subject: [PATCH 11/26] Clean up nested functions --- .../components/factories/misfit_factory.py | 11 +-- simpeg_drivers/utils/nested.py | 76 ++----------------- 2 files changed, 9 insertions(+), 78 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index 6429f2c4..e9f9a6cd 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -58,16 +58,10 @@ def assemble_arguments( # pylint: disable=arguments-differ use_futures = self.client + # Pickle the simulation to the temporary file with open(self.params.workpath / "simulation.pkl", mode="wb") as temp_file: - # Pickle the object to the temporary file pickle.dump(self.simulation, temp_file) - # if use_futures: - # delayed_simulation = self.client.scatter(self.simulation) - # else: - # delayed_simulation = self.simulation - # - misfits = [] tile_count = 0 for channel in channels: @@ -124,9 +118,8 @@ def assemble_arguments( # pylint: disable=arguments-differ if use_futures: wait(misfits) os.unlink(temp_file.name) - print(f"Number of futures{len(misfits)}") - local_orderings = self.collect_ordering_from_misfits(misfits) + local_orderings = self.collect_ordering_from_misfits(misfits) self.simulation.survey.ordering = np.vstack(local_orderings) return misfits diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index 6e83782b..10d41282 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -126,21 +126,19 @@ def create_misfit( padding_cells, forward_only, shared_indices=None, - # worker=None, -): +) -> objective_function.ComboObjectiveFunction: """ Create a list of local misfits based on the local indices. The local indices are further split into smaller chunks if requested, sharing the same mesh. - :param simulation: SimPEG simulation object. :param local_indices: Indices of the receiver locations belonging to the tile. + :param simulation_path: Path to the SimPEG simulation object pickled to file. :param channel: Channel of the simulation, for frequency systems only. :param tile_count: Current tile ID, used to name the file on disk and for sampling of topography for 1D simulations. :param padding_cells: Number of padding cells around the local survey. - :param inversion_type: Type of inversion, used to name the misfit (joint inversion). :param forward_only: If False, data is transferred to the local simulation. :param shared_indices: Indices used to create a shared mesh for multiple tiles. @@ -153,72 +151,12 @@ def create_misfit( if isinstance(simulation, BaseEM1DSimulation) and isinstance( local_indices, Iterable ): - # if worker: - # client = get_client() - # simulation = client.scatter(simulation, workers=worker) - # local_indices = np.array_split(local_indices, np.max([1, client.nthreads()[worker[0]]])) - # else: - # delayed_create = delayed(_misfits_from_indices) - # client = None - # local_indices = np.array_split(local_indices, cpu_count()) - - misfit_list = [] - # print(f"In {np.min(local_indices)} to {np.max(local_indices)}") - args = ( - simulation, - channel, - tile_count, - padding_cells, - forward_only, - ) - # for ind in local_indices: - # if client: - # misfit_list.append(client.submit(_misfits_from_indices, ind, *args, workers=worker)) - # else: - misfit_list = _misfits_from_indices( - local_indices, - *args, - ) - - # if client: - # misfit_list = client.gather(misfit_list) - # return [ - # objective_function.ComboObjectiveFunction(misfit) - # for misfit in misfit_list - # ] - # return DistributedComboMisfits( - # misfit_list, - # client=client, - # workers=[worker] * len(misfit_list), - # ) - - # misfit_list = compute(misfit_list) - # misfit_list = list(chain.from_iterable(misfit_list)) - return objective_function.ComboObjectiveFunction(misfit_list) - - misfits = _misfits_from_indices( - [local_indices], - simulation, - channel, - tile_count, - padding_cells, - forward_only, - shared_indices=shared_indices, - ) - return objective_function.ComboObjectiveFunction(misfits) - + shared_indices = None # No shared mesh for 1D simulations + else: + local_indices = [local_indices] # All indices share the same mesh -def _misfits_from_indices( - indices, - simulation, - channel, - tile_count, - padding_cells, - forward_only, - shared_indices=None, -) -> list[data_misfit.L2DataMisfit]: local_misfits = [] - for ind in indices: + for ind in local_indices: local_mesh = None if shared_indices is not None: local_survey = create_survey( @@ -249,7 +187,7 @@ def _misfits_from_indices( local_misfits.append(data_misfit.L2DataMisfit(local_data, meta_simulation)) - return local_misfits + return objective_function.ComboObjectiveFunction(local_misfits) def create_simulation( From 1b2eca3d458c244e99f69db7a8894469a2a9f85f Mon Sep 17 00:00:00 2001 From: dominiquef Date: Mon, 20 Oct 2025 10:27:18 -0700 Subject: [PATCH 12/26] Remove fftfilt from simularion for picking. Improve defaults for 1D driver --- simpeg_drivers/driver.py | 16 +++++++++++++--- .../electromagnetics/base_1d_driver.py | 8 +++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index 95fac5dc..3513e9ab 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -13,6 +13,11 @@ from __future__ import annotations +import os + +os.environ["OMP_NUM_THREADS"] = "12" + + import cProfile import pstats @@ -820,7 +825,6 @@ def get_path(self, filepath: str | Path) -> str: if __name__ == "__main__": file = Path(sys.argv[1]).resolve() - # file = Path(r"C:\Users\dominiquef\Desktop\DIGHEM_1d_run4 - Copy.ui.json") input_file = load_ui_json_as_dict(file) n_workers = input_file.get("n_workers", None) n_threads = input_file.get("n_threads", None) @@ -828,8 +832,14 @@ def get_path(self, filepath: str | Path) -> str: # Force distributed on 1D problems if "1D" in input_file.get("title") and n_workers is None: - n_threads = n_threads or 2 - n_workers = multiprocessing.cpu_count() // n_threads + cpu_count = multiprocessing.cpu_count() + + if cpu_count < 16: + n_threads = n_threads or 2 + else: + n_threads = n_threads or 4 + + n_workers = cpu_count // n_threads distributed_process = ( n_workers is not None and n_workers > 1 diff --git a/simpeg_drivers/electromagnetics/base_1d_driver.py b/simpeg_drivers/electromagnetics/base_1d_driver.py index 0257a44c..2f5b8f3f 100644 --- a/simpeg_drivers/electromagnetics/base_1d_driver.py +++ b/simpeg_drivers/electromagnetics/base_1d_driver.py @@ -102,7 +102,13 @@ def simulation(self): self._simulation.mesh = self.inversion_mesh.mesh self._simulation.layers_mesh = self.layers_mesh self._simulation.active_cells = self.topo_z_drape - self._simulation._fhtfilt = None # pylint: disable=protected-access + + # Remove cached filters for pickling + if hasattr(self._simulation, "_fhtfilt"): + self._simulation._fhtfilt = None # pylint: disable=protected-access + + if hasattr(self._simulation, "_fftfilt"): + self._simulation._fftfilt = None # pylint: disable=protected-access return self._simulation From bd85e2ca4d02e315dd6baad9e8298848184c6f0c Mon Sep 17 00:00:00 2001 From: dominiquef Date: Mon, 20 Oct 2025 10:37:53 -0700 Subject: [PATCH 13/26] Suppress warning of workspace open --- simpeg_drivers/driver.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index 3513e9ab..e411d3a5 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -494,6 +494,7 @@ def run(self): if Path(self.params.input_file.path_name).is_file(): self.out_group.add_file(self.params.input_file.path_name) + self.workspace.geoh5.close() predicted = None try: if self.params.forward_only: @@ -824,7 +825,8 @@ def get_path(self, filepath: str | Path) -> str: if __name__ == "__main__": - file = Path(sys.argv[1]).resolve() + # file = Path(sys.argv[1]).resolve() + file = Path(r"C:\Users\dominiquef\Desktop\Tests\GEOPY-2526.ui.json").resolve() input_file = load_ui_json_as_dict(file) n_workers = input_file.get("n_workers", None) n_threads = input_file.get("n_threads", None) @@ -844,7 +846,7 @@ def get_path(self, filepath: str | Path) -> str: distributed_process = ( n_workers is not None and n_workers > 1 ) or n_threads is not None - storage_device = input_file.get("store_sensitivities", "ram") + driver_class = InversionDriver.from_input_file(input_file) cluster = ( From 810e71c55d374c4249c9942422c691415d35d3bd Mon Sep 17 00:00:00 2001 From: dominiquef Date: Mon, 20 Oct 2025 11:29:56 -0700 Subject: [PATCH 14/26] Clean up misfit_factory, fix dc survey --- .../components/factories/misfit_factory.py | 35 ++++++------------- .../components/factories/survey_factory.py | 8 +++-- 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index e9f9a6cd..33faa0dd 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -70,6 +70,15 @@ def assemble_arguments( # pylint: disable=arguments-differ if len(sub_ind) == 0: continue + args = ( + sub_ind, + temp_file.name, + channel, + tile_count, + self.params.padding_cells, + self.params.forward_only, + np.hstack(local_indices), + ) # Distribute the work across workers round-robin style if use_futures: worker_ind = tile_count % len(self.workers) @@ -77,35 +86,13 @@ def assemble_arguments( # pylint: disable=arguments-differ misfits.append( self.client.submit( create_misfit, - sub_ind, - temp_file.name, - channel, - tile_count, - self.params.padding_cells, - self.params.forward_only, - shared_indices=np.hstack(local_indices), + *args, workers=self.workers[worker_ind], ) ) - # sub_process.append(misfits[-1]) - - # if worker_ind == len(self.workers) - 1: - # print("Submitted to all workers, gathering results") - # wait(sub_process) - # sub_process = [] else: - misfits.append( - create_misfit( - sub_ind, - temp_file.name, - channel, - tile_count, - self.params.padding_cells, - self.params.forward_only, - shared_indices=np.hstack(local_indices), - ) - ) + misfits.append(create_misfit(*args)) name = f"{self.params.inversion_type}: Tile {tile_count + 1}" if channel is not None: diff --git a/simpeg_drivers/components/factories/survey_factory.py b/simpeg_drivers/components/factories/survey_factory.py index 9c18b2c3..0bc50ea8 100644 --- a/simpeg_drivers/components/factories/survey_factory.py +++ b/simpeg_drivers/components/factories/survey_factory.py @@ -151,7 +151,7 @@ def _dcip_arguments(self, data=None): return None receiver_entity = data.entity - source_ids, order = np.unique( + unique_src_ids, order = np.unique( receiver_entity.ab_cell_id.values, return_index=True ) currents = receiver_entity.current_electrodes @@ -166,7 +166,9 @@ def _dcip_arguments(self, data=None): sources = [] sorting = [] source_ids = [] - for source_id in source_ids[np.argsort(order)]: # Cycle in original order + for ii, source_id in enumerate( + unique_src_ids[np.argsort(order)] + ): # Cycle in original order receiver_indices = np.where(receiver_entity.ab_cell_id.values == source_id)[ 0 ] @@ -193,7 +195,7 @@ def _dcip_arguments(self, data=None): ) source.rx_ids = np.asarray(receiver_indices) sources.append(source) - source_ids.append(np.full(receiver_indices.shape, source_id)) + source_ids.append(np.full(receiver_indices.shape, ii)) self.ordering = np.c_[ np.zeros(receiver_entity.n_cells), # Single channel From 5f14ec3286c74b5b13e645e79f05d286abaa6e87 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Mon, 20 Oct 2025 11:33:26 -0700 Subject: [PATCH 15/26] More clean ups --- simpeg_drivers/driver.py | 15 +++++++-------- simpeg_drivers/utils/nested.py | 3 ++- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index e411d3a5..72e33d58 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -13,11 +13,6 @@ from __future__ import annotations -import os - -os.environ["OMP_NUM_THREADS"] = "12" - - import cProfile import pstats @@ -44,6 +39,7 @@ from geoh5py.groups import SimPEGGroup from geoh5py.objects import FEMSurvey from geoh5py.shared.utils import fetch_active_workspace +from geoh5py.shared.exceptions import Geoh5FileClosedError from geoh5py.ui_json import InputFile from simpeg import ( @@ -494,7 +490,11 @@ def run(self): if Path(self.params.input_file.path_name).is_file(): self.out_group.add_file(self.params.input_file.path_name) - self.workspace.geoh5.close() + try: + self.workspace.geoh5.close() + except Geoh5FileClosedError: + pass + predicted = None try: if self.params.forward_only: @@ -825,8 +825,7 @@ def get_path(self, filepath: str | Path) -> str: if __name__ == "__main__": - # file = Path(sys.argv[1]).resolve() - file = Path(r"C:\Users\dominiquef\Desktop\Tests\GEOPY-2526.ui.json").resolve() + file = Path(sys.argv[1]).resolve() input_file = load_ui_json_as_dict(file) n_workers = input_file.get("n_workers", None) n_threads = input_file.get("n_threads", None) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index 10d41282..fc9dba2b 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -324,7 +324,8 @@ def create_survey(survey, indices, channel=None): sources = [] if survey.source_list: - src_inds = np.unique(survey.ordering[survey.ordering[:, 2] == indices, 3]) + _, rows, _ = np.intersect1d(survey.ordering[:, 2], indices, return_indices=True) + src_inds = np.unique(survey.ordering[rows, 3]) source_list = [survey.source_list[ind] for ind in src_inds] else: source_list = [survey.source_field] From 1de7f82cdad860da32a0c30b4e5263b5110ce3de Mon Sep 17 00:00:00 2001 From: dominiquef Date: Mon, 20 Oct 2025 14:43:13 -0700 Subject: [PATCH 16/26] Re-do create_misfit function --- simpeg_drivers/utils/nested.py | 84 +++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 31 deletions(-) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index fc9dba2b..9f718c3d 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -148,46 +148,68 @@ def create_misfit( with open(simulation_file, "rb") as file: simulation = pickle.load(file) - if isinstance(simulation, BaseEM1DSimulation) and isinstance( - local_indices, Iterable - ): - shared_indices = None # No shared mesh for 1D simulations - else: - local_indices = [local_indices] # All indices share the same mesh + args = ( + simulation, + channel, + tile_count, + padding_cells, + forward_only, + ) + + if not isinstance(simulation, BaseEM1DSimulation): + return _misfit_from_indices(local_indices, *args, shared_indices=shared_indices) local_misfits = [] for ind in local_indices: - local_mesh = None - if shared_indices is not None: - local_survey = create_survey( - simulation.survey, indices=shared_indices, channel=channel - ) - local_mesh = create_mesh( - local_survey, - simulation.mesh, - minimum_level=3, - padding_cells=padding_cells, + local_misfits.append( + _misfit_from_indices( + ind, + *args, ) + ) - local_sim, mapping = create_simulation( - simulation, - local_mesh, - ind, - channel=channel, - tile_id=tile_count, - padding_cells=padding_cells, + return objective_function.ComboObjectiveFunction(local_misfits) + + +def _misfit_from_indices( + indices, + simulation, + channel, + tile_count, + padding_cells, + forward_only, + shared_indices=None, +): + """ + Create a local misfit based on the input indices. + """ + local_mesh = None + if shared_indices is not None: + local_survey = create_survey( + simulation.survey, indices=shared_indices, channel=channel ) - meta_simulation = meta.MetaSimulation( - simulations=[local_sim], mappings=[mapping] + local_mesh = create_mesh( + local_survey, + simulation.mesh, + minimum_level=3, + padding_cells=padding_cells, ) - local_data = data.Data(local_sim.survey) - if not forward_only: - local_data.dobs = local_sim.survey.dobs - local_data.standard_deviation = local_sim.survey.std - local_misfits.append(data_misfit.L2DataMisfit(local_data, meta_simulation)) + local_sim, mapping = create_simulation( + simulation, + local_mesh, + indices, + channel=channel, + tile_id=tile_count, + padding_cells=padding_cells, + ) + meta_simulation = meta.MetaSimulation(simulations=[local_sim], mappings=[mapping]) + local_data = data.Data(local_sim.survey) + if not forward_only: + local_data.dobs = local_sim.survey.dobs + local_data.standard_deviation = local_sim.survey.std - return objective_function.ComboObjectiveFunction(local_misfits) + return data_misfit.L2DataMisfit(local_data, meta_simulation) def create_simulation( From 47ddc182f14f2dc85a669723892ba583e4f14acd Mon Sep 17 00:00:00 2001 From: dominiquef Date: Tue, 21 Oct 2025 11:07:46 -0700 Subject: [PATCH 17/26] Use isin instead of intersect --- simpeg_drivers/utils/nested.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index 9f718c3d..41047770 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -346,7 +346,7 @@ def create_survey(survey, indices, channel=None): sources = [] if survey.source_list: - _, rows, _ = np.intersect1d(survey.ordering[:, 2], indices, return_indices=True) + rows = np.isin(survey.ordering[:, 2], indices) src_inds = np.unique(survey.ordering[rows, 3]) source_list = [survey.source_list[ind] for ind in src_inds] else: From e6fa5313fb2d52f86553c81459bf96a17ffea07c Mon Sep 17 00:00:00 2001 From: dominiquef Date: Tue, 21 Oct 2025 11:09:56 -0700 Subject: [PATCH 18/26] improve logging. Don't close the file for PlateSim. changes to simpeg directive instead --- simpeg_drivers/driver.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index 72e33d58..47b7f233 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -240,9 +240,6 @@ def data_misfit(self): self.split_list(tiles), ) - if self.logger: - self.logger.write("Saving data to file...\n") - return self._data_misfit @property @@ -439,6 +436,9 @@ def params( def regularization(self): if getattr(self, "_regularization", None) is None: with fetch_active_workspace(self.workspace, mode="r"): + if self.logger: + self.logger.write("Creating the regularization functions...\n") + self._regularization = self.get_regularization() return self._regularization @@ -490,11 +490,6 @@ def run(self): if Path(self.params.input_file.path_name).is_file(): self.out_group.add_file(self.params.input_file.path_name) - try: - self.workspace.geoh5.close() - except Geoh5FileClosedError: - pass - predicted = None try: if self.params.forward_only: From 779eb1c3bf77f607a19983da3ae50d7cfc665d6b Mon Sep 17 00:00:00 2001 From: dominiquef Date: Tue, 21 Oct 2025 22:36:55 -0700 Subject: [PATCH 19/26] Coerce ordering of frequencies --- simpeg_drivers/components/data.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/simpeg_drivers/components/data.py b/simpeg_drivers/components/data.py index bac0e63b..31a8ad63 100644 --- a/simpeg_drivers/components/data.py +++ b/simpeg_drivers/components/data.py @@ -337,6 +337,10 @@ def create_survey(self): survey.sorting = survey_factory.sorting survey.locations = self.entity.vertices + # Make sure the ordering of channels stays the same + if hasattr(survey, "_frequencies"): + survey._frequencies = self.entity.channels # pylint: disable=protected-access + # Save apparent resistivity in geoh5 order if "direct current" in self.params.inversion_type: survey.apparent_resistivity = 1 / ( From 5d7551390a428e81a638d3016d867658c41c5604 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 22 Oct 2025 07:46:04 -0700 Subject: [PATCH 20/26] Make test runable with distributed --- tests/run_tests/driver_ground_tem_test.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/run_tests/driver_ground_tem_test.py b/tests/run_tests/driver_ground_tem_test.py index f8ad5333..05403dfb 100644 --- a/tests/run_tests/driver_ground_tem_test.py +++ b/tests/run_tests/driver_ground_tem_test.py @@ -110,7 +110,7 @@ def test_ground_tem_fwr_run( cell_size=(20.0, 20.0, 20.0), pytest=True, ): - if pytest: + if pytest and caplog: caplog.set_level(INFO) # Run the forward opts = SyntheticsComponentsOptions( @@ -156,7 +156,7 @@ def test_ground_tem_fwr_run( components.survey.tx_id_property.name = "tx_id" assert fwr_driver.inversion_data.survey.source_list[0].n_segments == 16 - if pytest: + if pytest and caplog: assert len(caplog.records) == 3 for record in caplog.records[1:]: assert record.levelname == "INFO" @@ -164,7 +164,9 @@ def test_ground_tem_fwr_run( assert "closed" in caplog.records[1].message - assert fwr_driver.data_misfit.objfcts[0].simulation.simulations[0].solver == Mumps + assert ( + fwr_driver.data_misfit.objfcts[0].simulation.simulations[0].solver == Mumps + ) fwr_driver.run() From 40ae4677c4f1999cff16e6b9e7e2570cdf70e79d Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 22 Oct 2025 09:19:26 -0700 Subject: [PATCH 21/26] adjust indexing in test --- tests/data_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data_test.py b/tests/data_test.py index 5490efb3..ddbbfc59 100644 --- a/tests/data_test.py +++ b/tests/data_test.py @@ -160,7 +160,7 @@ def test_survey_data(tmp_path: Path): # test locations np.testing.assert_array_equal( - verts[np.hstack(driver.ordering[::3, -1]), :2], + verts[np.hstack(driver.ordering[::3, 2]), :2], np.vstack( [ local_survey_a.receiver_locations[:, :2], @@ -175,7 +175,7 @@ def test_survey_data(tmp_path: Path): # test observed data expected_dobs = np.column_stack( [bxx_data.values, byy_data.values, bzz_data.values] - )[np.hstack(driver.ordering[::3, -1])].ravel() + )[np.hstack(driver.ordering[::3, 2])].ravel() survey_dobs = [local_survey_a.dobs, local_survey_b.dobs] np.testing.assert_array_equal(expected_dobs, np.hstack(survey_dobs)) From b96a7bb24a66061dbd4798af20d4c67d0518b365 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 22 Oct 2025 09:20:27 -0700 Subject: [PATCH 22/26] re-lock --- .../py-3.10-linux-64-dev.conda.lock.yml | 52 +- environments/py-3.10-linux-64.conda.lock.yml | 31 +- .../py-3.10-win-64-dev.conda.lock.yml | 53 +- environments/py-3.10-win-64.conda.lock.yml | 31 +- .../py-3.11-linux-64-dev.conda.lock.yml | 54 +- environments/py-3.11-linux-64.conda.lock.yml | 33 +- .../py-3.11-win-64-dev.conda.lock.yml | 53 +- environments/py-3.11-win-64.conda.lock.yml | 31 +- .../py-3.12-linux-64-dev.conda.lock.yml | 54 +- environments/py-3.12-linux-64.conda.lock.yml | 33 +- .../py-3.12-win-64-dev.conda.lock.yml | 52 +- environments/py-3.12-win-64.conda.lock.yml | 31 +- py-3.10.conda-lock.yml | 528 ++++++++--------- py-3.11.conda-lock.yml | 536 ++++++++---------- py-3.12.conda-lock.yml | 525 ++++++++--------- 15 files changed, 940 insertions(+), 1157 deletions(-) diff --git a/environments/py-3.10-linux-64-dev.conda.lock.yml b/environments/py-3.10-linux-64-dev.conda.lock.yml index 4eeae830..21ac7187 100644 --- a/environments/py-3.10-linux-64-dev.conda.lock.yml +++ b/environments/py-3.10-linux-64-dev.conda.lock.yml @@ -6,14 +6,14 @@ channels: - conda-forge - nodefaults dependencies: - - _openmp_mutex=4.5=4_kmp_llvm + - _openmp_mutex=4.5=5_kmp_llvm - accessible-pygments=0.0.5=pyhd8ed1ab_1 - alabaster=0.7.16=pyhd8ed1ab_0 - annotated-types=0.7.0=pyhd8ed1ab_1 - anyio=4.11.0=pyhcf101f3_0 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=25.1.0=py310h7c4b9e2_1 - - arrow=1.3.0=pyhd8ed1ab_1 + - arrow=1.4.0=pyhcf101f3_0 - asciitree=0.3.3=py_2 - astroid=4.0.1=py310hff52083_0 - asttokens=2.4.1=pyhd8ed1ab_0 @@ -40,9 +40,9 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.2=py310h3788b33_0 - - coverage=7.10.7=py310h3406613_0 + - coverage=7.11.0=py310h3406613_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py310ha75aee5_0 + - cytoolz=1.1.0=py310h7c4b9e2_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - debugpy=1.8.17=py310h25320af_0 @@ -59,22 +59,21 @@ dependencies: - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.1=ha770c72_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py310ha2bacc8_0 + - geoana=0.7.2=py310hc563356_1 - greenlet=3.2.4=py310hea6c23e_1 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py310h4aa865e_101 + - h5py=3.15.1=nompi_py310h4aa865e_100 - hdf5=1.14.6=nompi_h6e4c0c1_103 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he02047a_0 - idna=3.11=pyhd8ed1ab_0 - imagesize=1.4.1=pyhd8ed1ab_0 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib_metadata=8.7.0=h40b2b14_1 - - iniconfig=2.0.0=pyhd8ed1ab_1 + - iniconfig=2.3.0=pyhd8ed1ab_0 - ipykernel=7.0.1=pyha191276_0 - ipython=8.37.0=pyh8f84b5b_0 - ipython_genutils=0.2.0=pyhd8ed1ab_2 @@ -93,7 +92,7 @@ dependencies: - jupyter-cache=1.0.1=pyhff2d567_0 - jupyter-lsp=2.3.0=pyhcf101f3_0 - jupyter_client=8.6.3=pyhd8ed1ab_1 - - jupyter_core=5.8.1=pyh31011fe_0 + - jupyter_core=5.9.1=pyhc90fa1f_0 - jupyter_events=0.12.0=pyh29332c3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 @@ -101,7 +100,7 @@ dependencies: - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - - jupytext=1.17.3=pyh80e38bb_0 + - jupytext=1.18.1=pyh80e38bb_0 - keyutils=1.6.3=hb9d3cd8_0 - kiwisolver=1.4.9=py310haaf941d_1 - krb5=1.21.3=h659f571_0 @@ -116,7 +115,7 @@ dependencies: - libbrotlidec=1.1.0=hb03c661_4 - libbrotlienc=1.1.0=hb03c661_4 - libcblas=3.9.0=37_hfef963f_mkl - - libcurl=8.14.1=h332b0f4_0 + - libcurl=8.16.0=h4e3cde8_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libedit=3.1.20250104=pl5321h7949ede_0 @@ -149,11 +148,11 @@ dependencies: - libwebp-base=1.6.0=hd42ef1d_0 - libxcb=1.17.0=h8a09558_0 - libxcrypt=4.4.36=hd590300_1 - - libxml2=2.15.0=h26afc86_1 - - libxml2-16=2.15.0=ha9997c6_1 + - libxml2=2.15.1=h031cc0b_0 + - libxml2-16=2.15.1=hf2a90c1_0 - libzlib=1.3.1=hb9d3cd8_2 - linkify-it-py=2.0.3=pyhd8ed1ab_1 - - llvm-openmp=21.1.3=h4922eb0_0 + - llvm-openmp=21.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=2.2.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py310h3406613_0 @@ -172,9 +171,9 @@ dependencies: - myst-nb=1.3.0=pyhe01879c_0 - myst-parser=1.0.0=pyhd8ed1ab_0 - nbclient=0.10.2=pyhd8ed1ab_0 - - nbconvert=7.16.6=hb482800_0 - - nbconvert-core=7.16.6=pyh29332c3_0 - - nbconvert-pandoc=7.16.6=hed9df3c_0 + - nbconvert=7.16.6=hc388f54_1 + - nbconvert-core=7.16.6=pyhcf101f3_1 + - nbconvert-pandoc=7.16.6=h7d6f222_1 - nbformat=5.10.4=pyhd8ed1ab_1 - ncurses=6.5=h2d0b736_3 - nest-asyncio=1.6.0=pyhd8ed1ab_1 @@ -187,7 +186,7 @@ dependencies: - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - pandas=2.3.3=py310h0158d43_1 - - pandoc=3.8.2=ha770c72_0 + - pandoc=3.8.2.1=ha770c72_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.5=pyhcf101f3_0 - partd=1.4.2=pyhd8ed1ab_0 @@ -206,12 +205,12 @@ dependencies: - pybtex=0.25.1=pyhd8ed1ab_0 - pybtex-docutils=1.0.3=py310hff52083_3 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py310hd8f68c5_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py310hd8f68c5_0 - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - - pydiso=0.1.2=py310h69a6472_0 + - pydiso=0.1.2=py310h4b187eb_1 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=4.0.0=pyhcf101f3_0 + - pylint=4.0.2=pyhcf101f3_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyha55dd90_7 @@ -273,12 +272,11 @@ dependencies: - tk=8.6.13=noxft_hd72426e_102 - tomli=2.3.0=pyhcf101f3_0 - tomlkit=0.13.3=pyha770c72_0 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py310h7c4b9e2_1 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20251008=pyhd8ed1ab_0 - typing-extensions=4.15.0=h396c80c_0 - typing-inspection=0.4.2=pyhd8ed1ab_0 - typing_extensions=4.15.0=pyhcf101f3_0 @@ -306,9 +304,9 @@ dependencies: - zstd=1.5.7=hb8e6e7a_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.10-linux-64.conda.lock.yml b/environments/py-3.10-linux-64.conda.lock.yml index 1aea2325..73a11a1c 100644 --- a/environments/py-3.10-linux-64.conda.lock.yml +++ b/environments/py-3.10-linux-64.conda.lock.yml @@ -6,7 +6,7 @@ channels: - conda-forge - nodefaults dependencies: - - _openmp_mutex=4.5=4_kmp_llvm + - _openmp_mutex=4.5=5_kmp_llvm - annotated-types=0.7.0=pyhd8ed1ab_1 - asciitree=0.3.3=py_2 - bokeh=3.6.3=pyhd8ed1ab_0 @@ -25,7 +25,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - contourpy=1.3.2=py310h3788b33_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py310ha75aee5_0 + - cytoolz=1.1.0=py310h7c4b9e2_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - discretize=0.11.3=py310hc563356_1 - distributed=2025.3.0=pyhd8ed1ab_0 @@ -33,13 +33,12 @@ dependencies: - fonttools=4.60.1=py310h3406613_0 - freetype=2.14.1=ha770c72_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py310ha2bacc8_0 + - geoana=0.7.2=py310hc563356_1 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py310h4aa865e_101 + - h5py=3.15.1=nompi_py310h4aa865e_100 - hdf5=1.14.6=nompi_h6e4c0c1_103 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he02047a_0 - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.2=pyhd8ed1ab_0 @@ -55,7 +54,7 @@ dependencies: - libbrotlidec=1.1.0=hb03c661_4 - libbrotlienc=1.1.0=hb03c661_4 - libcblas=3.9.0=37_hfef963f_mkl - - libcurl=8.14.1=h332b0f4_0 + - libcurl=8.16.0=h4e3cde8_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libedit=3.1.20250104=pl5321h7949ede_0 @@ -87,10 +86,10 @@ dependencies: - libwebp-base=1.6.0=hd42ef1d_0 - libxcb=1.17.0=h8a09558_0 - libxcrypt=4.4.36=hd590300_1 - - libxml2=2.15.0=h26afc86_1 - - libxml2-16=2.15.0=ha9997c6_1 + - libxml2=2.15.1=h031cc0b_0 + - libxml2-16=2.15.1=hf2a90c1_0 - libzlib=1.3.1=hb9d3cd8_2 - - llvm-openmp=21.1.3=h4922eb0_0 + - llvm-openmp=21.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py310h3406613_0 - matplotlib-base=3.8.4=py310hef631a5_2 @@ -113,9 +112,9 @@ dependencies: - psutil=7.1.0=py310h7c4b9e2_0 - pthread-stubs=0.4=hb9d3cd8_1002 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py310hd8f68c5_0 - - pydiso=0.1.2=py310h69a6472_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py310hd8f68c5_0 + - pydiso=0.1.2=py310h4b187eb_1 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyha55dd90_7 @@ -137,7 +136,7 @@ dependencies: - tblib=3.1.0=pyhd8ed1ab_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=noxft_hd72426e_102 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py310h7c4b9e2_1 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 @@ -159,9 +158,9 @@ dependencies: - zstd=1.5.7=hb8e6e7a_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.10-win-64-dev.conda.lock.yml b/environments/py-3.10-win-64-dev.conda.lock.yml index 25b29307..06c1cf98 100644 --- a/environments/py-3.10-win-64-dev.conda.lock.yml +++ b/environments/py-3.10-win-64-dev.conda.lock.yml @@ -13,7 +13,7 @@ dependencies: - anyio=4.11.0=pyhcf101f3_0 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=25.1.0=py310h29418f3_1 - - arrow=1.3.0=pyhd8ed1ab_1 + - arrow=1.4.0=pyhcf101f3_0 - asciitree=0.3.3=py_2 - astroid=4.0.1=py310h5588dad_0 - asttokens=2.4.1=pyhd8ed1ab_0 @@ -39,10 +39,9 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.2=py310hc19bc0b_0 - - coverage=7.10.7=py310hdb0e946_0 - - cpython=3.10.19=py310hd8ed1ab_1 + - coverage=7.11.0=py310hdb0e946_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py310ha8f682b_0 + - cytoolz=1.1.0=py310h29418f3_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - debugpy=1.8.17=py310h699e580_0 @@ -59,22 +58,21 @@ dependencies: - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.1=h57928b3_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py310h3e8ed56_0 + - geoana=0.7.2=py310hfb7dd09_1 - greenlet=3.2.4=py310h73ae2b4_1 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py310hb7e4da9_101 + - h5py=3.15.1=nompi_py310hb7e4da9_100 - hdf5=1.14.6=nompi_he30205f_103 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he0c23c2_0 - idna=3.11=pyhd8ed1ab_0 - imagesize=1.4.1=pyhd8ed1ab_0 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib_metadata=8.7.0=h40b2b14_1 - - iniconfig=2.0.0=pyhd8ed1ab_1 + - iniconfig=2.3.0=pyhd8ed1ab_0 - ipykernel=7.0.1=pyh6dadd2b_0 - ipython=8.37.0=pyha7b4d00_0 - ipython_genutils=0.2.0=pyhd8ed1ab_2 @@ -93,7 +91,7 @@ dependencies: - jupyter-cache=1.0.1=pyhff2d567_0 - jupyter-lsp=2.3.0=pyhcf101f3_0 - jupyter_client=8.6.3=pyhd8ed1ab_1 - - jupyter_core=5.8.1=pyh5737063_0 + - jupyter_core=5.9.1=pyh6dadd2b_0 - jupyter_events=0.12.0=pyh29332c3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 @@ -101,7 +99,7 @@ dependencies: - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - - jupytext=1.17.3=pyh80e38bb_0 + - jupytext=1.18.1=pyh80e38bb_0 - kiwisolver=1.4.9=py310h1e1005b_1 - krb5=1.21.3=hdf4eb48_0 - lark=1.3.0=pyhd8ed1ab_0 @@ -114,7 +112,7 @@ dependencies: - libbrotlidec=1.1.0=hfd05255_4 - libbrotlienc=1.1.0=hfd05255_4 - libcblas=3.9.0=35_h2a3cdd5_mkl - - libcurl=8.14.1=h88aaa65_0 + - libcurl=8.16.0=h43ecb02_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libexpat=2.7.1=hac47afa_0 @@ -137,11 +135,11 @@ dependencies: - libwebp-base=1.6.0=h4d5522a_0 - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10 - libxcb=1.17.0=h0e4246c_0 - - libxml2=2.15.0=ha29bfb0_1 - - libxml2-16=2.15.0=h06f855e_1 + - libxml2=2.15.1=h5d26750_0 + - libxml2-16=2.15.1=h692994f_0 - libzlib=1.3.1=h2466b09_2 - linkify-it-py=2.0.3=pyhd8ed1ab_1 - - llvm-openmp=21.1.3=hfa2b4ca_0 + - llvm-openmp=21.1.4=hfa2b4ca_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=2.2.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py310hdb0e946_0 @@ -158,9 +156,9 @@ dependencies: - myst-nb=1.3.0=pyhe01879c_0 - myst-parser=1.0.0=pyhd8ed1ab_0 - nbclient=0.10.2=pyhd8ed1ab_0 - - nbconvert=7.16.6=hb482800_0 - - nbconvert-core=7.16.6=pyh29332c3_0 - - nbconvert-pandoc=7.16.6=hed9df3c_0 + - nbconvert=7.16.6=hc388f54_1 + - nbconvert-core=7.16.6=pyhcf101f3_1 + - nbconvert-pandoc=7.16.6=h7d6f222_1 - nbformat=5.10.4=pyhd8ed1ab_1 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - notebook=7.4.7=pyhd8ed1ab_0 @@ -172,7 +170,7 @@ dependencies: - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - pandas=2.3.3=py310hed136d8_1 - - pandoc=3.8.2=h57928b3_0 + - pandoc=3.8.2.1=h57928b3_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.5=pyhcf101f3_0 - partd=1.4.2=pyhd8ed1ab_0 @@ -183,18 +181,18 @@ dependencies: - pluggy=1.6.0=pyhd8ed1ab_0 - prometheus_client=0.23.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.52=pyha770c72_0 - - psutil=7.1.0=py310h29418f3_0 + - psutil=7.1.1=py310h29418f3_0 - pthread-stubs=0.4=h0e40799_1002 - pure_eval=0.2.3=pyhd8ed1ab_1 - pybtex=0.25.1=pyhd8ed1ab_0 - pybtex-docutils=1.0.3=py310h5588dad_3 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py310h034784e_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py310h034784e_0 - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - - pydiso=0.1.2=py310h8f92c26_0 + - pydiso=0.1.2=py310h3dbbb0c_1 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=4.0.0=pyhcf101f3_0 + - pylint=4.0.2=pyhcf101f3_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyh09c184e_7 @@ -257,12 +255,11 @@ dependencies: - tk=8.6.13=h2c6b04d_2 - tomli=2.3.0=pyhcf101f3_0 - tomlkit=0.13.3=pyha770c72_0 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py310h29418f3_1 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20251008=pyhd8ed1ab_0 - typing-extensions=4.15.0=h396c80c_0 - typing-inspection=0.4.2=pyhd8ed1ab_0 - typing_extensions=4.15.0=pyhcf101f3_0 @@ -296,9 +293,9 @@ dependencies: - zstd=1.5.7=hbeecb71_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.10-win-64.conda.lock.yml b/environments/py-3.10-win-64.conda.lock.yml index 38b27c8b..7ed04ab2 100644 --- a/environments/py-3.10-win-64.conda.lock.yml +++ b/environments/py-3.10-win-64.conda.lock.yml @@ -24,7 +24,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - contourpy=1.3.2=py310hc19bc0b_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py310ha8f682b_0 + - cytoolz=1.1.0=py310h29418f3_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - discretize=0.11.3=py310hfb7dd09_1 - distributed=2025.3.0=pyhd8ed1ab_0 @@ -32,13 +32,12 @@ dependencies: - fonttools=4.60.1=py310hdb0e946_0 - freetype=2.14.1=h57928b3_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py310h3e8ed56_0 + - geoana=0.7.2=py310hfb7dd09_1 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py310hb7e4da9_101 + - h5py=3.15.1=nompi_py310hb7e4da9_100 - hdf5=1.14.6=nompi_he30205f_103 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he0c23c2_0 - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.2=pyhd8ed1ab_0 @@ -52,7 +51,7 @@ dependencies: - libbrotlidec=1.1.0=hfd05255_4 - libbrotlienc=1.1.0=hfd05255_4 - libcblas=3.9.0=35_h2a3cdd5_mkl - - libcurl=8.14.1=h88aaa65_0 + - libcurl=8.16.0=h43ecb02_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libexpat=2.7.1=hac47afa_0 @@ -74,10 +73,10 @@ dependencies: - libwebp-base=1.6.0=h4d5522a_0 - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10 - libxcb=1.17.0=h0e4246c_0 - - libxml2=2.15.0=ha29bfb0_1 - - libxml2-16=2.15.0=h06f855e_1 + - libxml2=2.15.1=h5d26750_0 + - libxml2-16=2.15.1=h692994f_0 - libzlib=1.3.1=h2466b09_2 - - llvm-openmp=21.1.3=hfa2b4ca_0 + - llvm-openmp=21.1.4=hfa2b4ca_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py310hdb0e946_0 - matplotlib-base=3.8.4=py310hadb10a8_2 @@ -94,12 +93,12 @@ dependencies: - partd=1.4.2=pyhd8ed1ab_0 - pillow=10.3.0=py310h3e38d90_1 - pip=25.2=pyh8b19718_0 - - psutil=7.1.0=py310h29418f3_0 + - psutil=7.1.1=py310h29418f3_0 - pthread-stubs=0.4=h0e40799_1002 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py310h034784e_0 - - pydiso=0.1.2=py310h8f92c26_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py310h034784e_0 + - pydiso=0.1.2=py310h3dbbb0c_1 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyh09c184e_7 @@ -120,7 +119,7 @@ dependencies: - tblib=3.1.0=pyhd8ed1ab_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=h2c6b04d_2 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py310h29418f3_1 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 @@ -147,9 +146,9 @@ dependencies: - zstd=1.5.7=hbeecb71_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-linux-64-dev.conda.lock.yml b/environments/py-3.11-linux-64-dev.conda.lock.yml index 4aed1799..e98150fd 100644 --- a/environments/py-3.11-linux-64-dev.conda.lock.yml +++ b/environments/py-3.11-linux-64-dev.conda.lock.yml @@ -6,14 +6,14 @@ channels: - conda-forge - nodefaults dependencies: - - _openmp_mutex=4.5=4_kmp_llvm + - _openmp_mutex=4.5=5_kmp_llvm - accessible-pygments=0.0.5=pyhd8ed1ab_1 - alabaster=0.7.16=pyhd8ed1ab_0 - annotated-types=0.7.0=pyhd8ed1ab_1 - anyio=4.11.0=pyhcf101f3_0 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=25.1.0=py311h49ec1c0_1 - - arrow=1.3.0=pyhd8ed1ab_1 + - arrow=1.4.0=pyhcf101f3_0 - asciitree=0.3.3=py_2 - astroid=4.0.1=py311h38be061_0 - asttokens=2.4.1=pyhd8ed1ab_0 @@ -40,9 +40,9 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py311hdf67eae_2 - - coverage=7.10.7=py311h3778330_0 + - coverage=7.11.0=py311h3778330_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py311h9ecbd09_0 + - cytoolz=1.1.0=py311h49ec1c0_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - debugpy=1.8.17=py311hc665b79_0 @@ -60,22 +60,21 @@ dependencies: - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.1=ha770c72_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py311h5b7b71f_0 + - geoana=0.7.2=py311h1d5f577_1 - greenlet=3.2.4=py311h1ddb823_1 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py311h0b2f468_101 + - h5py=3.15.1=nompi_py311h0b2f468_100 - hdf5=1.14.6=nompi_h6e4c0c1_103 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he02047a_0 - idna=3.11=pyhd8ed1ab_0 - imagesize=1.4.1=pyhd8ed1ab_0 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib_metadata=8.7.0=h40b2b14_1 - - iniconfig=2.0.0=pyhd8ed1ab_1 + - iniconfig=2.3.0=pyhd8ed1ab_0 - ipykernel=7.0.1=pyha191276_0 - ipython=9.6.0=pyhfa0c392_0 - ipython_genutils=0.2.0=pyhd8ed1ab_2 @@ -95,7 +94,7 @@ dependencies: - jupyter-cache=1.0.1=pyhff2d567_0 - jupyter-lsp=2.3.0=pyhcf101f3_0 - jupyter_client=8.6.3=pyhd8ed1ab_1 - - jupyter_core=5.8.1=pyh31011fe_0 + - jupyter_core=5.9.1=pyhc90fa1f_0 - jupyter_events=0.12.0=pyh29332c3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 @@ -103,7 +102,7 @@ dependencies: - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - - jupytext=1.17.3=pyh80e38bb_0 + - jupytext=1.18.1=pyh80e38bb_0 - keyutils=1.6.3=hb9d3cd8_0 - kiwisolver=1.4.9=py311h724c32c_1 - krb5=1.21.3=h659f571_0 @@ -118,7 +117,7 @@ dependencies: - libbrotlidec=1.1.0=hb03c661_4 - libbrotlienc=1.1.0=hb03c661_4 - libcblas=3.9.0=37_hfef963f_mkl - - libcurl=8.14.1=h332b0f4_0 + - libcurl=8.16.0=h4e3cde8_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libedit=3.1.20250104=pl5321h7949ede_0 @@ -151,11 +150,11 @@ dependencies: - libwebp-base=1.6.0=hd42ef1d_0 - libxcb=1.17.0=h8a09558_0 - libxcrypt=4.4.36=hd590300_1 - - libxml2=2.15.0=h26afc86_1 - - libxml2-16=2.15.0=ha9997c6_1 + - libxml2=2.15.1=h031cc0b_0 + - libxml2-16=2.15.1=hf2a90c1_0 - libzlib=1.3.1=hb9d3cd8_2 - linkify-it-py=2.0.3=pyhd8ed1ab_1 - - llvm-openmp=21.1.3=h4922eb0_0 + - llvm-openmp=21.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=2.2.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py311h3778330_0 @@ -174,9 +173,9 @@ dependencies: - myst-nb=1.3.0=pyhe01879c_0 - myst-parser=1.0.0=pyhd8ed1ab_0 - nbclient=0.10.2=pyhd8ed1ab_0 - - nbconvert=7.16.6=hb482800_0 - - nbconvert-core=7.16.6=pyh29332c3_0 - - nbconvert-pandoc=7.16.6=hed9df3c_0 + - nbconvert=7.16.6=hc388f54_1 + - nbconvert-core=7.16.6=pyhcf101f3_1 + - nbconvert-pandoc=7.16.6=h7d6f222_1 - nbformat=5.10.4=pyhd8ed1ab_1 - ncurses=6.5=h2d0b736_3 - nest-asyncio=1.6.0=pyhd8ed1ab_1 @@ -189,7 +188,7 @@ dependencies: - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - pandas=2.3.3=py311hed34c8f_1 - - pandoc=3.8.2=ha770c72_0 + - pandoc=3.8.2.1=ha770c72_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.5=pyhcf101f3_0 - partd=1.4.2=pyhd8ed1ab_0 @@ -201,19 +200,19 @@ dependencies: - pluggy=1.6.0=pyhd8ed1ab_0 - prometheus_client=0.23.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.52=pyha770c72_0 - - psutil=7.1.0=py311h49ec1c0_0 + - psutil=7.1.1=py311h49ec1c0_0 - pthread-stubs=0.4=hb9d3cd8_1002 - ptyprocess=0.7.0=pyhd8ed1ab_1 - pure_eval=0.2.3=pyhd8ed1ab_1 - pybtex=0.25.1=pyhd8ed1ab_0 - pybtex-docutils=1.0.3=py311h38be061_3 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py311h902ca64_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py311h902ca64_0 - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - - pydiso=0.1.2=py311h19ea254_0 + - pydiso=0.1.2=py311h6070e36_1 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=4.0.0=pyhcf101f3_0 + - pylint=4.0.2=pyhcf101f3_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyha55dd90_7 @@ -275,12 +274,11 @@ dependencies: - tk=8.6.13=noxft_hd72426e_102 - tomli=2.3.0=pyhcf101f3_0 - tomlkit=0.13.3=pyha770c72_0 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py311h49ec1c0_1 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20251008=pyhd8ed1ab_0 - typing-extensions=4.15.0=h396c80c_0 - typing-inspection=0.4.2=pyhd8ed1ab_0 - typing_extensions=4.15.0=pyhcf101f3_0 @@ -309,9 +307,9 @@ dependencies: - zstd=1.5.7=hb8e6e7a_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-linux-64.conda.lock.yml b/environments/py-3.11-linux-64.conda.lock.yml index 80f5b3a0..724fcca6 100644 --- a/environments/py-3.11-linux-64.conda.lock.yml +++ b/environments/py-3.11-linux-64.conda.lock.yml @@ -6,7 +6,7 @@ channels: - conda-forge - nodefaults dependencies: - - _openmp_mutex=4.5=4_kmp_llvm + - _openmp_mutex=4.5=5_kmp_llvm - annotated-types=0.7.0=pyhd8ed1ab_1 - asciitree=0.3.3=py_2 - bokeh=3.6.3=pyhd8ed1ab_0 @@ -25,7 +25,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - contourpy=1.3.3=py311hdf67eae_2 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py311h9ecbd09_0 + - cytoolz=1.1.0=py311h49ec1c0_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - deprecated=1.2.18=pyhd8ed1ab_0 - discretize=0.11.3=py311h1d5f577_1 @@ -34,13 +34,12 @@ dependencies: - fonttools=4.60.1=py311h3778330_0 - freetype=2.14.1=ha770c72_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py311h5b7b71f_0 + - geoana=0.7.2=py311h1d5f577_1 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py311h0b2f468_101 + - h5py=3.15.1=nompi_py311h0b2f468_100 - hdf5=1.14.6=nompi_h6e4c0c1_103 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he02047a_0 - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.2=pyhd8ed1ab_0 @@ -56,7 +55,7 @@ dependencies: - libbrotlidec=1.1.0=hb03c661_4 - libbrotlienc=1.1.0=hb03c661_4 - libcblas=3.9.0=37_hfef963f_mkl - - libcurl=8.14.1=h332b0f4_0 + - libcurl=8.16.0=h4e3cde8_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libedit=3.1.20250104=pl5321h7949ede_0 @@ -88,10 +87,10 @@ dependencies: - libwebp-base=1.6.0=hd42ef1d_0 - libxcb=1.17.0=h8a09558_0 - libxcrypt=4.4.36=hd590300_1 - - libxml2=2.15.0=h26afc86_1 - - libxml2-16=2.15.0=ha9997c6_1 + - libxml2=2.15.1=h031cc0b_0 + - libxml2-16=2.15.1=hf2a90c1_0 - libzlib=1.3.1=hb9d3cd8_2 - - llvm-openmp=21.1.3=h4922eb0_0 + - llvm-openmp=21.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py311h3778330_0 - matplotlib-base=3.8.4=py311ha4ca890_2 @@ -111,12 +110,12 @@ dependencies: - partd=1.4.2=pyhd8ed1ab_0 - pillow=10.3.0=py311h82a398c_1 - pip=25.2=pyh8b19718_0 - - psutil=7.1.0=py311h49ec1c0_0 + - psutil=7.1.1=py311h49ec1c0_0 - pthread-stubs=0.4=hb9d3cd8_1002 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py311h902ca64_0 - - pydiso=0.1.2=py311h19ea254_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py311h902ca64_0 + - pydiso=0.1.2=py311h6070e36_1 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyha55dd90_7 @@ -138,7 +137,7 @@ dependencies: - tblib=3.1.0=pyhd8ed1ab_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=noxft_hd72426e_102 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py311h49ec1c0_1 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 @@ -161,9 +160,9 @@ dependencies: - zstd=1.5.7=hb8e6e7a_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-win-64-dev.conda.lock.yml b/environments/py-3.11-win-64-dev.conda.lock.yml index 2d75da3e..925fe8c2 100644 --- a/environments/py-3.11-win-64-dev.conda.lock.yml +++ b/environments/py-3.11-win-64-dev.conda.lock.yml @@ -13,7 +13,7 @@ dependencies: - anyio=4.11.0=pyhcf101f3_0 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=25.1.0=py311h3485c13_1 - - arrow=1.3.0=pyhd8ed1ab_1 + - arrow=1.4.0=pyhcf101f3_0 - asciitree=0.3.3=py_2 - astroid=4.0.1=py311h1ea47a8_0 - asttokens=2.4.1=pyhd8ed1ab_0 @@ -39,10 +39,9 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py311h3fd045d_2 - - coverage=7.10.7=py311h3f79411_0 - - cpython=3.11.14=py311hd8ed1ab_1 + - coverage=7.11.0=py311h3f79411_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py311he736701_0 + - cytoolz=1.1.0=py311h3485c13_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - debugpy=1.8.17=py311h5dfdfe8_0 @@ -60,22 +59,21 @@ dependencies: - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.1=h57928b3_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py311h9b10771_0 + - geoana=0.7.2=py311h05ac4f6_1 - greenlet=3.2.4=py311h3e6a449_1 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py311hc40ba4b_101 + - h5py=3.15.1=nompi_py311hc40ba4b_100 - hdf5=1.14.6=nompi_he30205f_103 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he0c23c2_0 - idna=3.11=pyhd8ed1ab_0 - imagesize=1.4.1=pyhd8ed1ab_0 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib_metadata=8.7.0=h40b2b14_1 - - iniconfig=2.0.0=pyhd8ed1ab_1 + - iniconfig=2.3.0=pyhd8ed1ab_0 - ipykernel=7.0.1=pyh6dadd2b_0 - ipython=9.6.0=pyh6be1c34_0 - ipython_genutils=0.2.0=pyhd8ed1ab_2 @@ -95,7 +93,7 @@ dependencies: - jupyter-cache=1.0.1=pyhff2d567_0 - jupyter-lsp=2.3.0=pyhcf101f3_0 - jupyter_client=8.6.3=pyhd8ed1ab_1 - - jupyter_core=5.8.1=pyh5737063_0 + - jupyter_core=5.9.1=pyh6dadd2b_0 - jupyter_events=0.12.0=pyh29332c3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 @@ -103,7 +101,7 @@ dependencies: - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - - jupytext=1.17.3=pyh80e38bb_0 + - jupytext=1.18.1=pyh80e38bb_0 - kiwisolver=1.4.9=py311h275cad7_1 - krb5=1.21.3=hdf4eb48_0 - lark=1.3.0=pyhd8ed1ab_0 @@ -116,7 +114,7 @@ dependencies: - libbrotlidec=1.1.0=hfd05255_4 - libbrotlienc=1.1.0=hfd05255_4 - libcblas=3.9.0=35_h2a3cdd5_mkl - - libcurl=8.14.1=h88aaa65_0 + - libcurl=8.16.0=h43ecb02_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libexpat=2.7.1=hac47afa_0 @@ -139,11 +137,11 @@ dependencies: - libwebp-base=1.6.0=h4d5522a_0 - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10 - libxcb=1.17.0=h0e4246c_0 - - libxml2=2.15.0=ha29bfb0_1 - - libxml2-16=2.15.0=h06f855e_1 + - libxml2=2.15.1=h5d26750_0 + - libxml2-16=2.15.1=h692994f_0 - libzlib=1.3.1=h2466b09_2 - linkify-it-py=2.0.3=pyhd8ed1ab_1 - - llvm-openmp=21.1.3=hfa2b4ca_0 + - llvm-openmp=21.1.4=hfa2b4ca_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=2.2.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py311h3f79411_0 @@ -160,9 +158,9 @@ dependencies: - myst-nb=1.3.0=pyhe01879c_0 - myst-parser=1.0.0=pyhd8ed1ab_0 - nbclient=0.10.2=pyhd8ed1ab_0 - - nbconvert=7.16.6=hb482800_0 - - nbconvert-core=7.16.6=pyh29332c3_0 - - nbconvert-pandoc=7.16.6=hed9df3c_0 + - nbconvert=7.16.6=hc388f54_1 + - nbconvert-core=7.16.6=pyhcf101f3_1 + - nbconvert-pandoc=7.16.6=h7d6f222_1 - nbformat=5.10.4=pyhd8ed1ab_1 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - notebook=7.4.7=pyhd8ed1ab_0 @@ -174,7 +172,7 @@ dependencies: - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - pandas=2.3.3=py311h11fd7f3_1 - - pandoc=3.8.2=h57928b3_0 + - pandoc=3.8.2.1=h57928b3_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.5=pyhcf101f3_0 - partd=1.4.2=pyhd8ed1ab_0 @@ -185,18 +183,18 @@ dependencies: - pluggy=1.6.0=pyhd8ed1ab_0 - prometheus_client=0.23.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.52=pyha770c72_0 - - psutil=7.1.0=py311h3485c13_0 + - psutil=7.1.1=py311h3485c13_0 - pthread-stubs=0.4=h0e40799_1002 - pure_eval=0.2.3=pyhd8ed1ab_1 - pybtex=0.25.1=pyhd8ed1ab_0 - pybtex-docutils=1.0.3=py311h1ea47a8_3 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py311hf51aa87_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py311hf51aa87_0 - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - - pydiso=0.1.2=py311h66870c1_0 + - pydiso=0.1.2=py311h1c8cef1_1 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=4.0.0=pyhcf101f3_0 + - pylint=4.0.2=pyhcf101f3_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyh09c184e_7 @@ -259,12 +257,11 @@ dependencies: - tk=8.6.13=h2c6b04d_2 - tomli=2.3.0=pyhcf101f3_0 - tomlkit=0.13.3=pyha770c72_0 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py311h3485c13_1 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20251008=pyhd8ed1ab_0 - typing-extensions=4.15.0=h396c80c_0 - typing-inspection=0.4.2=pyhd8ed1ab_0 - typing_extensions=4.15.0=pyhcf101f3_0 @@ -299,9 +296,9 @@ dependencies: - zstd=1.5.7=hbeecb71_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-win-64.conda.lock.yml b/environments/py-3.11-win-64.conda.lock.yml index 3e41df66..558dcc4f 100644 --- a/environments/py-3.11-win-64.conda.lock.yml +++ b/environments/py-3.11-win-64.conda.lock.yml @@ -24,7 +24,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - contourpy=1.3.3=py311h3fd045d_2 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py311he736701_0 + - cytoolz=1.1.0=py311h3485c13_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - deprecated=1.2.18=pyhd8ed1ab_0 - discretize=0.11.3=py311h05ac4f6_1 @@ -33,13 +33,12 @@ dependencies: - fonttools=4.60.1=py311h3f79411_0 - freetype=2.14.1=h57928b3_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py311h9b10771_0 + - geoana=0.7.2=py311h05ac4f6_1 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py311hc40ba4b_101 + - h5py=3.15.1=nompi_py311hc40ba4b_100 - hdf5=1.14.6=nompi_he30205f_103 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he0c23c2_0 - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.2=pyhd8ed1ab_0 @@ -53,7 +52,7 @@ dependencies: - libbrotlidec=1.1.0=hfd05255_4 - libbrotlienc=1.1.0=hfd05255_4 - libcblas=3.9.0=35_h2a3cdd5_mkl - - libcurl=8.14.1=h88aaa65_0 + - libcurl=8.16.0=h43ecb02_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libexpat=2.7.1=hac47afa_0 @@ -75,10 +74,10 @@ dependencies: - libwebp-base=1.6.0=h4d5522a_0 - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10 - libxcb=1.17.0=h0e4246c_0 - - libxml2=2.15.0=ha29bfb0_1 - - libxml2-16=2.15.0=h06f855e_1 + - libxml2=2.15.1=h5d26750_0 + - libxml2-16=2.15.1=h692994f_0 - libzlib=1.3.1=h2466b09_2 - - llvm-openmp=21.1.3=hfa2b4ca_0 + - llvm-openmp=21.1.4=hfa2b4ca_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py311h3f79411_0 - matplotlib-base=3.8.4=py311h9b31f6e_2 @@ -95,12 +94,12 @@ dependencies: - partd=1.4.2=pyhd8ed1ab_0 - pillow=10.3.0=py311h5592be9_1 - pip=25.2=pyh8b19718_0 - - psutil=7.1.0=py311h3485c13_0 + - psutil=7.1.1=py311h3485c13_0 - pthread-stubs=0.4=h0e40799_1002 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py311hf51aa87_0 - - pydiso=0.1.2=py311h66870c1_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py311hf51aa87_0 + - pydiso=0.1.2=py311h1c8cef1_1 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyh09c184e_7 @@ -121,7 +120,7 @@ dependencies: - tblib=3.1.0=pyhd8ed1ab_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=h2c6b04d_2 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py311h3485c13_1 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 @@ -149,9 +148,9 @@ dependencies: - zstd=1.5.7=hbeecb71_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 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 5488b771..2b09cd0e 100644 --- a/environments/py-3.12-linux-64-dev.conda.lock.yml +++ b/environments/py-3.12-linux-64-dev.conda.lock.yml @@ -6,7 +6,7 @@ channels: - conda-forge - nodefaults dependencies: - - _openmp_mutex=4.5=4_kmp_llvm + - _openmp_mutex=4.5=5_kmp_llvm - _python_abi3_support=1.0=hd8ed1ab_2 - accessible-pygments=0.0.5=pyhd8ed1ab_1 - alabaster=0.7.16=pyhd8ed1ab_0 @@ -14,7 +14,7 @@ dependencies: - anyio=4.11.0=pyhcf101f3_0 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=25.1.0=py312h4c3975b_1 - - arrow=1.3.0=pyhd8ed1ab_1 + - arrow=1.4.0=pyhcf101f3_0 - asciitree=0.3.3=py_2 - astroid=4.0.1=py312h7900ff3_0 - asttokens=2.4.1=pyhd8ed1ab_0 @@ -41,10 +41,10 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py312hd9148b4_2 - - coverage=7.10.7=py312h8a5da7c_0 + - coverage=7.11.0=py312h8a5da7c_0 - cpython=3.12.12=py312hd8ed1ab_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py312h66e93f0_0 + - cytoolz=1.1.0=py312h4c3975b_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - debugpy=1.8.17=py312h8285ef7_0 @@ -62,22 +62,21 @@ dependencies: - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.1=ha770c72_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py312hc39e661_0 + - geoana=0.7.2=py312hf890105_1 - greenlet=3.2.4=py312h1289d80_1 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py312ha4f8f14_101 + - h5py=3.15.1=nompi_py312ha4f8f14_100 - hdf5=1.14.6=nompi_h6e4c0c1_103 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he02047a_0 - idna=3.11=pyhd8ed1ab_0 - imagesize=1.4.1=pyhd8ed1ab_0 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib_metadata=8.7.0=h40b2b14_1 - - iniconfig=2.0.0=pyhd8ed1ab_1 + - iniconfig=2.3.0=pyhd8ed1ab_0 - ipykernel=7.0.1=pyha191276_0 - ipython=9.6.0=pyhfa0c392_0 - ipython_genutils=0.2.0=pyhd8ed1ab_2 @@ -97,7 +96,7 @@ dependencies: - jupyter-cache=1.0.1=pyhff2d567_0 - jupyter-lsp=2.3.0=pyhcf101f3_0 - jupyter_client=8.6.3=pyhd8ed1ab_1 - - jupyter_core=5.8.1=pyh31011fe_0 + - jupyter_core=5.9.1=pyhc90fa1f_0 - jupyter_events=0.12.0=pyh29332c3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 @@ -105,7 +104,7 @@ dependencies: - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - - jupytext=1.17.3=pyh80e38bb_0 + - jupytext=1.18.1=pyh80e38bb_0 - keyutils=1.6.3=hb9d3cd8_0 - kiwisolver=1.4.9=py312h0a2e395_1 - krb5=1.21.3=h659f571_0 @@ -120,7 +119,7 @@ dependencies: - libbrotlidec=1.1.0=hb03c661_4 - libbrotlienc=1.1.0=hb03c661_4 - libcblas=3.9.0=37_hfef963f_mkl - - libcurl=8.14.1=h332b0f4_0 + - libcurl=8.16.0=h4e3cde8_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libedit=3.1.20250104=pl5321h7949ede_0 @@ -153,11 +152,11 @@ dependencies: - libwebp-base=1.6.0=hd42ef1d_0 - libxcb=1.17.0=h8a09558_0 - libxcrypt=4.4.36=hd590300_1 - - libxml2=2.15.0=h26afc86_1 - - libxml2-16=2.15.0=ha9997c6_1 + - libxml2=2.15.1=h031cc0b_0 + - libxml2-16=2.15.1=hf2a90c1_0 - libzlib=1.3.1=hb9d3cd8_2 - linkify-it-py=2.0.3=pyhd8ed1ab_1 - - llvm-openmp=21.1.3=h4922eb0_0 + - llvm-openmp=21.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=2.2.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h8a5da7c_0 @@ -176,9 +175,9 @@ dependencies: - myst-nb=1.3.0=pyhe01879c_0 - myst-parser=1.0.0=pyhd8ed1ab_0 - nbclient=0.10.2=pyhd8ed1ab_0 - - nbconvert=7.16.6=hb482800_0 - - nbconvert-core=7.16.6=pyh29332c3_0 - - nbconvert-pandoc=7.16.6=hed9df3c_0 + - nbconvert=7.16.6=hc388f54_1 + - nbconvert-core=7.16.6=pyhcf101f3_1 + - nbconvert-pandoc=7.16.6=h7d6f222_1 - nbformat=5.10.4=pyhd8ed1ab_1 - ncurses=6.5=h2d0b736_3 - nest-asyncio=1.6.0=pyhd8ed1ab_1 @@ -191,7 +190,7 @@ dependencies: - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - pandas=2.3.3=py312hf79963d_1 - - pandoc=3.8.2=ha770c72_0 + - pandoc=3.8.2.1=ha770c72_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.5=pyhcf101f3_0 - partd=1.4.2=pyhd8ed1ab_0 @@ -203,19 +202,19 @@ dependencies: - pluggy=1.6.0=pyhd8ed1ab_0 - prometheus_client=0.23.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.52=pyha770c72_0 - - psutil=7.1.0=py312h4c3975b_0 + - psutil=7.1.1=py312h4c3975b_0 - pthread-stubs=0.4=hb9d3cd8_1002 - ptyprocess=0.7.0=pyhd8ed1ab_1 - pure_eval=0.2.3=pyhd8ed1ab_1 - pybtex=0.25.1=pyhd8ed1ab_0 - pybtex-docutils=1.0.3=py312h7900ff3_3 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py312h868fb18_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py312h868fb18_0 - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - - pydiso=0.1.2=py312h772f2df_0 + - pydiso=0.1.2=py312h686354e_1 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=4.0.0=pyhcf101f3_0 + - pylint=4.0.2=pyhcf101f3_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyha55dd90_7 @@ -278,12 +277,11 @@ dependencies: - tk=8.6.13=noxft_hd72426e_102 - tomli=2.3.0=pyhcf101f3_0 - tomlkit=0.13.3=pyha770c72_0 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py312h4c3975b_1 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20251008=pyhd8ed1ab_0 - typing-extensions=4.15.0=h396c80c_0 - typing-inspection=0.4.2=pyhd8ed1ab_0 - typing_extensions=4.15.0=pyhcf101f3_0 @@ -312,9 +310,9 @@ dependencies: - zstd=1.5.7=hb8e6e7a_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.12-linux-64.conda.lock.yml b/environments/py-3.12-linux-64.conda.lock.yml index ed0626b9..4b3a8b49 100644 --- a/environments/py-3.12-linux-64.conda.lock.yml +++ b/environments/py-3.12-linux-64.conda.lock.yml @@ -6,7 +6,7 @@ channels: - conda-forge - nodefaults dependencies: - - _openmp_mutex=4.5=4_kmp_llvm + - _openmp_mutex=4.5=5_kmp_llvm - annotated-types=0.7.0=pyhd8ed1ab_1 - asciitree=0.3.3=py_2 - bokeh=3.6.3=pyhd8ed1ab_0 @@ -25,7 +25,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - contourpy=1.3.3=py312hd9148b4_2 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py312h66e93f0_0 + - cytoolz=1.1.0=py312h4c3975b_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - deprecated=1.2.18=pyhd8ed1ab_0 - discretize=0.11.3=py312hf890105_1 @@ -34,13 +34,12 @@ dependencies: - fonttools=4.60.1=py312h8a5da7c_0 - freetype=2.14.1=ha770c72_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py312hc39e661_0 + - geoana=0.7.2=py312hf890105_1 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py312ha4f8f14_101 + - h5py=3.15.1=nompi_py312ha4f8f14_100 - hdf5=1.14.6=nompi_h6e4c0c1_103 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he02047a_0 - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.2=pyhd8ed1ab_0 @@ -56,7 +55,7 @@ dependencies: - libbrotlidec=1.1.0=hb03c661_4 - libbrotlienc=1.1.0=hb03c661_4 - libcblas=3.9.0=37_hfef963f_mkl - - libcurl=8.14.1=h332b0f4_0 + - libcurl=8.16.0=h4e3cde8_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libedit=3.1.20250104=pl5321h7949ede_0 @@ -88,10 +87,10 @@ dependencies: - libwebp-base=1.6.0=hd42ef1d_0 - libxcb=1.17.0=h8a09558_0 - libxcrypt=4.4.36=hd590300_1 - - libxml2=2.15.0=h26afc86_1 - - libxml2-16=2.15.0=ha9997c6_1 + - libxml2=2.15.1=h031cc0b_0 + - libxml2-16=2.15.1=hf2a90c1_0 - libzlib=1.3.1=hb9d3cd8_2 - - llvm-openmp=21.1.3=h4922eb0_0 + - llvm-openmp=21.1.4=h4922eb0_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h8a5da7c_0 - matplotlib-base=3.8.4=py312h20ab3a6_2 @@ -111,12 +110,12 @@ dependencies: - partd=1.4.2=pyhd8ed1ab_0 - pillow=10.3.0=py312h287a98d_1 - pip=25.2=pyh8b19718_0 - - psutil=7.1.0=py312h4c3975b_0 + - psutil=7.1.1=py312h4c3975b_0 - pthread-stubs=0.4=hb9d3cd8_1002 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py312h868fb18_0 - - pydiso=0.1.2=py312h772f2df_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py312h868fb18_0 + - pydiso=0.1.2=py312h686354e_1 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyha55dd90_7 @@ -138,7 +137,7 @@ dependencies: - tblib=3.1.0=pyhd8ed1ab_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=noxft_hd72426e_102 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py312h4c3975b_1 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 @@ -161,9 +160,9 @@ dependencies: - zstd=1.5.7=hb8e6e7a_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 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 2309ba8f..ef19182f 100644 --- a/environments/py-3.12-win-64-dev.conda.lock.yml +++ b/environments/py-3.12-win-64-dev.conda.lock.yml @@ -14,7 +14,7 @@ dependencies: - anyio=4.11.0=pyhcf101f3_0 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=25.1.0=py312he06e257_1 - - arrow=1.3.0=pyhd8ed1ab_1 + - arrow=1.4.0=pyhcf101f3_0 - asciitree=0.3.3=py_2 - astroid=4.0.1=py312h2e8e312_0 - asttokens=2.4.1=pyhd8ed1ab_0 @@ -40,10 +40,10 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py312hf90b1b7_2 - - coverage=7.10.7=py312h05f76fc_0 + - coverage=7.11.0=py312h05f76fc_0 - cpython=3.12.12=py312hd8ed1ab_0 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py312h4389bb4_0 + - cytoolz=1.1.0=py312he06e257_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - debugpy=1.8.17=py312ha1a9051_0 @@ -61,22 +61,21 @@ dependencies: - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.14.1=h57928b3_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py312hbaa7e33_0 + - geoana=0.7.2=py312h9b46583_1 - greenlet=3.2.4=py312hbb81ca0_1 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py312h03cd2ba_101 + - h5py=3.15.1=nompi_py312h03cd2ba_100 - hdf5=1.14.6=nompi_he30205f_103 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he0c23c2_0 - idna=3.11=pyhd8ed1ab_0 - imagesize=1.4.1=pyhd8ed1ab_0 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib_metadata=8.7.0=h40b2b14_1 - - iniconfig=2.0.0=pyhd8ed1ab_1 + - iniconfig=2.3.0=pyhd8ed1ab_0 - ipykernel=7.0.1=pyh6dadd2b_0 - ipython=9.6.0=pyh6be1c34_0 - ipython_genutils=0.2.0=pyhd8ed1ab_2 @@ -96,7 +95,7 @@ dependencies: - jupyter-cache=1.0.1=pyhff2d567_0 - jupyter-lsp=2.3.0=pyhcf101f3_0 - jupyter_client=8.6.3=pyhd8ed1ab_1 - - jupyter_core=5.8.1=pyh5737063_0 + - jupyter_core=5.9.1=pyh6dadd2b_0 - jupyter_events=0.12.0=pyh29332c3_0 - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 @@ -104,7 +103,7 @@ dependencies: - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - - jupytext=1.17.3=pyh80e38bb_0 + - jupytext=1.18.1=pyh80e38bb_0 - kiwisolver=1.4.9=py312h78d62e6_1 - krb5=1.21.3=hdf4eb48_0 - lark=1.3.0=pyhd8ed1ab_0 @@ -117,7 +116,7 @@ dependencies: - libbrotlidec=1.1.0=hfd05255_4 - libbrotlienc=1.1.0=hfd05255_4 - libcblas=3.9.0=35_h2a3cdd5_mkl - - libcurl=8.14.1=h88aaa65_0 + - libcurl=8.16.0=h43ecb02_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libexpat=2.7.1=hac47afa_0 @@ -140,11 +139,11 @@ dependencies: - libwebp-base=1.6.0=h4d5522a_0 - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10 - libxcb=1.17.0=h0e4246c_0 - - libxml2=2.15.0=ha29bfb0_1 - - libxml2-16=2.15.0=h06f855e_1 + - libxml2=2.15.1=h5d26750_0 + - libxml2-16=2.15.1=h692994f_0 - libzlib=1.3.1=h2466b09_2 - linkify-it-py=2.0.3=pyhd8ed1ab_1 - - llvm-openmp=21.1.3=hfa2b4ca_0 + - llvm-openmp=21.1.4=hfa2b4ca_0 - locket=1.0.0=pyhd8ed1ab_0 - markdown-it-py=2.2.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h05f76fc_0 @@ -161,9 +160,9 @@ dependencies: - myst-nb=1.3.0=pyhe01879c_0 - myst-parser=1.0.0=pyhd8ed1ab_0 - nbclient=0.10.2=pyhd8ed1ab_0 - - nbconvert=7.16.6=hb482800_0 - - nbconvert-core=7.16.6=pyh29332c3_0 - - nbconvert-pandoc=7.16.6=hed9df3c_0 + - nbconvert=7.16.6=hc388f54_1 + - nbconvert-core=7.16.6=pyhcf101f3_1 + - nbconvert-pandoc=7.16.6=h7d6f222_1 - nbformat=5.10.4=pyhd8ed1ab_1 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - notebook=7.4.7=pyhd8ed1ab_0 @@ -175,7 +174,7 @@ dependencies: - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - pandas=2.3.3=py312hc128f0a_1 - - pandoc=3.8.2=h57928b3_0 + - pandoc=3.8.2.1=h57928b3_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.5=pyhcf101f3_0 - partd=1.4.2=pyhd8ed1ab_0 @@ -186,18 +185,18 @@ dependencies: - pluggy=1.6.0=pyhd8ed1ab_0 - prometheus_client=0.23.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.52=pyha770c72_0 - - psutil=7.1.0=py312he06e257_0 + - psutil=7.1.1=py312he06e257_0 - pthread-stubs=0.4=h0e40799_1002 - pure_eval=0.2.3=pyhd8ed1ab_1 - pybtex=0.25.1=pyhd8ed1ab_0 - pybtex-docutils=1.0.3=py312h2e8e312_3 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py312hdabe01f_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py312hdabe01f_0 - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - - pydiso=0.1.2=py312h01acb21_0 + - pydiso=0.1.2=py312h3fe0e52_1 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=4.0.0=pyhcf101f3_0 + - pylint=4.0.2=pyhcf101f3_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyh09c184e_7 @@ -261,12 +260,11 @@ dependencies: - tk=8.6.13=h2c6b04d_2 - tomli=2.3.0=pyhcf101f3_0 - tomlkit=0.13.3=pyha770c72_0 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py312he06e257_1 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20251008=pyhd8ed1ab_0 - typing-extensions=4.15.0=h396c80c_0 - typing-inspection=0.4.2=pyhd8ed1ab_0 - typing_extensions=4.15.0=pyhcf101f3_0 @@ -301,9 +299,9 @@ dependencies: - zstd=1.5.7=hbeecb71_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.12-win-64.conda.lock.yml b/environments/py-3.12-win-64.conda.lock.yml index d881ae6a..ee439871 100644 --- a/environments/py-3.12-win-64.conda.lock.yml +++ b/environments/py-3.12-win-64.conda.lock.yml @@ -24,7 +24,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_1 - contourpy=1.3.3=py312hf90b1b7_2 - cycler=0.12.1=pyhd8ed1ab_1 - - cytoolz=1.0.1=py312h4389bb4_0 + - cytoolz=1.1.0=py312he06e257_1 - dask-core=2025.3.0=pyhd8ed1ab_0 - deprecated=1.2.18=pyhd8ed1ab_0 - discretize=0.11.3=py312h9b46583_1 @@ -33,13 +33,12 @@ dependencies: - fonttools=4.60.1=py312h05f76fc_0 - freetype=2.14.1=h57928b3_0 - fsspec=2025.9.0=pyhd8ed1ab_0 - - geoana=0.7.2=py312hbaa7e33_0 + - geoana=0.7.2=py312h9b46583_1 - h2=4.3.0=pyhcf101f3_0 - - h5py=3.14.0=nompi_py312h03cd2ba_101 + - h5py=3.15.1=nompi_py312h03cd2ba_100 - hdf5=1.14.6=nompi_he30205f_103 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - - icu=75.1=he0c23c2_0 - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.2=pyhd8ed1ab_0 @@ -53,7 +52,7 @@ dependencies: - libbrotlidec=1.1.0=hfd05255_4 - libbrotlienc=1.1.0=hfd05255_4 - libcblas=3.9.0=35_h2a3cdd5_mkl - - libcurl=8.14.1=h88aaa65_0 + - libcurl=8.16.0=h43ecb02_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 - libexpat=2.7.1=hac47afa_0 @@ -75,10 +74,10 @@ dependencies: - libwebp-base=1.6.0=h4d5522a_0 - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10 - libxcb=1.17.0=h0e4246c_0 - - libxml2=2.15.0=ha29bfb0_1 - - libxml2-16=2.15.0=h06f855e_1 + - libxml2=2.15.1=h5d26750_0 + - libxml2-16=2.15.1=h692994f_0 - libzlib=1.3.1=h2466b09_2 - - llvm-openmp=21.1.3=hfa2b4ca_0 + - llvm-openmp=21.1.4=hfa2b4ca_0 - locket=1.0.0=pyhd8ed1ab_0 - markupsafe=3.0.3=py312h05f76fc_0 - matplotlib-base=3.8.4=py312hfee7060_2 @@ -95,12 +94,12 @@ dependencies: - partd=1.4.2=pyhd8ed1ab_0 - pillow=10.3.0=py312h381445a_1 - pip=25.2=pyh8b19718_0 - - psutil=7.1.0=py312he06e257_0 + - psutil=7.1.1=py312he06e257_0 - pthread-stubs=0.4=h0e40799_1002 - pycparser=2.22=pyh29332c3_1 - - pydantic=2.12.1=pyh3cfb1c2_0 - - pydantic-core=2.41.3=py312hdabe01f_0 - - pydiso=0.1.2=py312h01acb21_0 + - pydantic=2.12.3=pyh3cfb1c2_0 + - pydantic-core=2.41.4=py312hdabe01f_0 + - pydiso=0.1.2=py312h3fe0e52_1 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.5=pyhcf101f3_0 - pysocks=1.7.1=pyh09c184e_7 @@ -121,7 +120,7 @@ dependencies: - tblib=3.1.0=pyhd8ed1ab_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=h2c6b04d_2 - - toolz=1.0.0=pyhd8ed1ab_1 + - toolz=1.1.0=pyhd8ed1ab_1 - tornado=6.5.2=py312he06e257_1 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 @@ -149,9 +148,9 @@ dependencies: - zstd=1.5.7=hbeecb71_2 - pip: - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@ed5f5cf8cd1a3ef9c3ec13140215d4b5d3da0a31 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 - - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 + - grid-apps @ git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 variables: KMP_WARNINGS: 0 diff --git a/py-3.10.conda-lock.yml b/py-3.10.conda-lock.yml index c8771109..77757e3e 100644 --- a/py-3.10.conda-lock.yml +++ b/py-3.10.conda-lock.yml @@ -35,10 +35,10 @@ package: platform: linux-64 dependencies: llvm-openmp: '>=9.0.1' - url: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-4_kmp_llvm.conda + url: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-5_kmp_llvm.conda hash: - md5: cc86eba730b0e87ea9990985d45e60f9 - sha256: b5e8980dd5fd96607fcccd98217b1058ec54566845b757cc0ecef146b5f0a51e + md5: af759c8ce5aed7e5453dca614c5bb831 + sha256: 261526e6bc3866db41ad32c6ccfb3694b07fe8a0ab91616a71fa90f8b365154b category: main optional: false - name: _openmp_mutex @@ -224,31 +224,31 @@ package: category: dev optional: true - name: arrow - version: 1.3.0 + version: 1.4.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '' python-dateutil: '>=2.7.0' - types-python-dateutil: '>=2.8.10' - url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda + python-tzdata: '' + url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda hash: - md5: 46b53236fdd990271b03c3978d4218a9 - sha256: c4b0bdb3d5dee50b60db92f99da3e4c524d5240aafc0a5fcc15e45ae2d1a3cd1 + md5: 85c4f19f377424eafc4ed7911b291642 + sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 category: dev optional: true - name: arrow - version: 1.3.0 + version: 1.4.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' + python: '>=3.10' python-dateutil: '>=2.7.0' - types-python-dateutil: '>=2.8.10' - url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda + python-tzdata: '' + url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda hash: - md5: 46b53236fdd990271b03c3978d4218a9 - sha256: c4b0bdb3d5dee50b60db92f99da3e4c524d5240aafc0a5fcc15e45ae2d1a3cd1 + md5: 85c4f19f377424eafc4ed7911b291642 + sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 category: dev optional: true - name: asciitree @@ -951,7 +951,7 @@ package: category: main optional: false - name: coverage - version: 7.10.7 + version: 7.11.0 manager: conda platform: linux-64 dependencies: @@ -960,14 +960,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* tomli: '' - url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.7-py310h3406613_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.11.0-py310h3406613_0.conda hash: - md5: bc73c61ff9544f3ff7df03696e0548c2 - sha256: fbe57d4a4efbafd56a7b48b462e261487b6adde3d45f47d2ebc244d91156f491 + md5: 372c8186f59987eeddced201091d871e + sha256: 99cb6500576ea41c9df10d4dba5e545b38bced3657866097a47cc89418ec2264 category: dev optional: true - name: coverage - version: 7.10.7 + version: 7.11.0 manager: conda platform: win-64 dependencies: @@ -977,23 +977,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/coverage-7.10.7-py310hdb0e946_0.conda - hash: - md5: 7007b00329cefabcc982d9a6409b8360 - sha256: 3fdc5cd1f28dd8398da3c79cd4092b2655b943299ad4397d3a9362ff70b84f8b - category: dev - optional: true -- name: cpython - version: 3.10.19 - manager: conda - platform: win-64 - dependencies: - python: '>=3.10,<3.11.0a0' - python_abi: '*' - url: https://repo.prefix.dev/conda-forge/noarch/cpython-3.10.19-py310hd8ed1ab_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.11.0-py310hdb0e946_0.conda hash: - md5: 93c7adcfab1daa0eda67c9877e66d4bb - sha256: 6ce4ff9b62fd5b9d8486e7e880a49ca1a87572b31a783e592c922bae9d1358fa + md5: 2a1b95ca7f4617b362b88c1c121198e8 + sha256: e21c0e6307c51a029079c4f99ad44aa2555aa28c7de7446654a90c99be706c90 category: dev optional: true - name: cycler @@ -1021,23 +1008,23 @@ package: category: main optional: false - name: cytoolz - version: 1.0.1 + version: 1.1.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* toolz: '>=0.10.0' - url: https://repo.prefix.dev/conda-forge/linux-64/cytoolz-1.0.1-py310ha75aee5_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/cytoolz-1.1.0-py310h7c4b9e2_1.conda hash: - md5: d0be1adaa04a03aed745f3d02afb59ce - sha256: b427689dfc24a6a297363122ce10d502ea00ddb3c43af6cff175ff563cc94eea + md5: aa27c9572fd9f548f911300dc6305bf4 + sha256: 9cbeb77ad9e23c7ffc85399fd41a85a61d511a1e28d0ff2132baf4b116983596 category: main optional: false - name: cytoolz - version: 1.0.1 + version: 1.1.0 manager: conda platform: win-64 dependencies: @@ -1045,12 +1032,12 @@ package: python_abi: 3.10.* toolz: '>=0.10.0' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/cytoolz-1.0.1-py310ha8f682b_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/cytoolz-1.1.0-py310h29418f3_1.conda hash: - md5: ed2af2a0262d44f753738588640b8534 - sha256: 670800d13b6cd64b8f53756b28254b47cfc177606dcd42094696582335ed0f02 + md5: ac4ba4ddb0149dcf20a4bd6a917c5702 + sha256: 3ab0ef8ee81b79adec8ad27142a8bbda4b6c3abd699f091bdd5188c93ac46245 category: main optional: false - name: dask-core @@ -1533,16 +1520,16 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libdlf: '' - libgcc: '>=13' - libstdcxx: '>=13' - numpy: '>=1.19,<3' + libgcc: '>=14' + libstdcxx: '>=14' + numpy: '>=1.21,<3' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* scipy: '>=1.8' - url: https://repo.prefix.dev/conda-forge/linux-64/geoana-0.7.2-py310ha2bacc8_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/geoana-0.7.2-py310hc563356_1.conda hash: - md5: c49d268934279b306219be6320b1b290 - sha256: fdbb0e98fd00195b2d6b5d3e0d0ee08397f722e1b3da262a65f32da6fc54ef5e + md5: 80cd885633007a9b37ef06e9a77360cd + sha256: 31a39035425c59c1aa1aa78a5074e5f023b2de59362bf146aec1e9ad16febc5c category: main optional: false - name: geoana @@ -1551,17 +1538,17 @@ package: platform: win-64 dependencies: libdlf: '' - numpy: '>=1.19,<3' + numpy: '>=1.21,<3' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* scipy: '>=1.8' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/geoana-0.7.2-py310h3e8ed56_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/geoana-0.7.2-py310hfb7dd09_1.conda hash: - md5: 3105f90b59411ab6b71bc3c8b71d8b36 - sha256: 4d8b287ad229c1dd59b6c76dfdc1a968af2e5229e1cbd146827fedaf419649d7 + md5: bd26f60d029b7966d9118992349a1a6e + sha256: fffda4c51a94c405a222a7c2649c1b138424b066560eac2fccbf82d7c3064375 category: main optional: false - name: greenlet @@ -1651,7 +1638,7 @@ package: category: main optional: false - name: h5py - version: 3.14.0 + version: 3.15.1 manager: conda platform: linux-64 dependencies: @@ -1662,14 +1649,14 @@ package: numpy: '>=1.21,<3' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://repo.prefix.dev/conda-forge/linux-64/h5py-3.14.0-nompi_py310h4aa865e_101.conda + url: https://repo.prefix.dev/conda-forge/linux-64/h5py-3.15.1-nompi_py310h4aa865e_100.conda hash: - md5: 67774c5937389b35e4efd43d7baa923e - sha256: 68641d6f5c5c2a916437b67008fab342b599b6dfd711a0f43c00db5c72412d26 + md5: fbde5f561c770cb485f414e3039df812 + sha256: 592d1454332e68516a084c1e0b0c772a54da461894637427839c8cc7f93c7eb6 category: main optional: false - name: h5py - version: 3.14.0 + version: 3.15.1 manager: conda platform: win-64 dependencies: @@ -1681,10 +1668,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/h5py-3.14.0-nompi_py310hb7e4da9_101.conda + url: https://repo.prefix.dev/conda-forge/win-64/h5py-3.15.1-nompi_py310hb7e4da9_100.conda hash: - md5: 2e924eca630566b4b0f51a98a232122e - sha256: 66d2c79028f031326139dfb31e4e8af9acde01da3ac89551e7d50cbf29b6cb8f + md5: e80c7e8303f4aa7ebbc9b0ada5a0a853 + sha256: a13926c440aa242f962949dbb3badbf89f2cd970e7a458042aa4093a6e8ec7ca category: main optional: false - name: hdf5 @@ -1839,34 +1826,6 @@ package: sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 category: main optional: false -- name: icu - version: '75.1' - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://repo.prefix.dev/conda-forge/linux-64/icu-75.1-he02047a_0.conda - hash: - md5: 8b189310083baabfb622af68fd9d3ae3 - sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e - category: main - optional: false -- name: icu - version: '75.1' - manager: conda - platform: win-64 - dependencies: - ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - hash: - md5: 8579b6bb8d18be7c0b27fb08adeeeb40 - sha256: 1d04369a1860a1e9e371b9fc82dd0092b616adcf057d6c88371856669280e920 - category: main - optional: false - name: idna version: '3.11' manager: conda @@ -1966,27 +1925,27 @@ package: category: dev optional: true - name: iniconfig - version: 2.0.0 + version: 2.3.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda hash: - md5: 6837f3eff7dcea42ecd714ce1ac2b108 - sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca + md5: 9614359868482abba1bd15ce465e3c42 + sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 category: dev optional: true - name: iniconfig - version: 2.0.0 + version: 2.3.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda hash: - md5: 6837f3eff7dcea42ecd714ce1ac2b108 - sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca + md5: 9614359868482abba1bd15ce465e3c42 + sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 category: dev optional: true - name: ipykernel @@ -2594,35 +2553,34 @@ package: category: dev optional: true - name: jupyter_core - version: 5.8.1 + version: 5.9.1 manager: conda platform: linux-64 dependencies: __unix: '' platformdirs: '>=2.5' - python: '>=3.8' + python: '>=3.10' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.8.1-pyh31011fe_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda hash: - md5: b7d89d860ebcda28a5303526cdee68ab - sha256: 56a7a7e907f15cca8c4f9b0c99488276d4cb10821d2d15df9245662184872e81 + md5: b38fe4e78ee75def7e599843ef4c1ab0 + sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a category: dev optional: true - name: jupyter_core - version: 5.8.1 + version: 5.9.1 manager: conda platform: win-64 dependencies: __win: '' - cpython: '' platformdirs: '>=2.5' - python: '>=3.8' - pywin32: '>=300' + python: '>=3.10' + pywin32: '' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.8.1-pyh5737063_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda hash: - md5: 324e60a0d3f39f268e899709575ea3cd - sha256: 928c2514c2974fda78447903217f01ca89a77eefedd46bf6a2fe97072df57e8d + md5: a8db462b01221e9f5135be466faeb3e0 + sha256: ed709a6c25b731e01563521ef338b93986cd14b5bc17f35e9382000864872ccc category: dev optional: true - name: jupyter_events @@ -2896,7 +2854,7 @@ package: category: dev optional: true - name: jupytext - version: 1.17.3 + version: 1.18.1 manager: conda platform: linux-64 dependencies: @@ -2907,14 +2865,14 @@ package: python: '>=3.10' pyyaml: '' tomli: '' - url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.17.3-pyh80e38bb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.18.1-pyh80e38bb_0.conda hash: - md5: 3178d138046fbc2e4944d3642a326814 - sha256: 2da4cfec3f811a37caa583e572ad2dad0b1d5c34f5d7121b4c687692bf1a4a06 + md5: 3c85f79f1debe2d2c82ac08f1c1126e1 + sha256: 07063dad3019455d786dc3b5174731eb0ef53eb699df25e21571c2b7cdcf0fd0 category: dev optional: true - name: jupytext - version: 1.17.3 + version: 1.18.1 manager: conda platform: win-64 dependencies: @@ -2925,10 +2883,10 @@ package: python: '>=3.10' pyyaml: '' tomli: '' - url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.17.3-pyh80e38bb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.18.1-pyh80e38bb_0.conda hash: - md5: 3178d138046fbc2e4944d3642a326814 - sha256: 2da4cfec3f811a37caa583e572ad2dad0b1d5c34f5d7121b4c687692bf1a4a06 + md5: 3c85f79f1debe2d2c82ac08f1c1126e1 + sha256: 07063dad3019455d786dc3b5174731eb0ef53eb699df25e21571c2b7cdcf0fd0 category: dev optional: true - name: keyutils @@ -3290,26 +3248,26 @@ package: category: main optional: false - name: libcurl - version: 8.14.1 + version: 8.16.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' krb5: '>=1.21.3,<1.22.0a0' - libgcc: '>=13' - libnghttp2: '>=1.64.0,<2.0a0' + libgcc: '>=14' + libnghttp2: '>=1.67.0,<2.0a0' libssh2: '>=1.11.1,<2.0a0' libzlib: '>=1.3.1,<2.0a0' - openssl: '>=3.5.0,<4.0a0' + openssl: '>=3.5.4,<4.0a0' zstd: '>=1.5.7,<1.6.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libcurl-8.16.0-h4e3cde8_0.conda hash: - md5: 45f6713cb00f124af300342512219182 - sha256: b6c5cf340a4f80d70d64b3a29a7d9885a5918d16a5cb952022820e6d3e79dc8b + md5: a401aa9329350320c7d3809a7a5a1640 + sha256: f21af777602d17ced05f168898e759fb0bac5af09ba72c5ece245dd0f14e0fec category: main optional: false - name: libcurl - version: 8.14.1 + version: 8.16.0 manager: conda platform: win-64 dependencies: @@ -3317,12 +3275,12 @@ package: libssh2: '>=1.11.1,<2.0a0' libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/libcurl-8.14.1-h88aaa65_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/libcurl-8.16.0-h43ecb02_0.conda hash: - md5: 836b9c08f34d2017dbcaec907c6a1138 - sha256: b2cface2cf35d8522289df7fffc14370596db6f6dc481cc1b6ca313faeac19d8 + md5: e9d8964076d40f974bd85d5588394b3f + sha256: 863284424dc6f64ee4a619cfb2490b85c7d51729fbf029603b30e2682532a9a6 category: main optional: false - name: libdeflate @@ -4081,75 +4039,71 @@ package: category: main optional: false - name: libxml2 - version: 2.15.0 + version: 2.15.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - icu: '>=75.1,<76.0a0' libgcc: '>=14' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' - libxml2-16: 2.15.0 + libxml2-16: 2.15.1 libzlib: '>=1.3.1,<2.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-2.15.0-h26afc86_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-2.15.1-h031cc0b_0.conda hash: - md5: 8337b675e0cad517fbcb3daf7588087a - sha256: 4310577d7eea817d35a1c05e1e54575b06ce085d73e6dd59aa38523adf50168f + md5: a67cd8f7b0369bbf2c40411f05a62f3b + sha256: ee64e507b37b073e0bdad739e35330933dd5be7c639600a096551a6968f1035d category: main optional: false - name: libxml2 - version: 2.15.0 + version: 2.15.1 manager: conda platform: win-64 dependencies: - icu: '>=75.1,<76.0a0' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' - libxml2-16: 2.15.0 + libxml2-16: 2.15.1 libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libxml2-2.15.0-ha29bfb0_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/libxml2-2.15.1-h5d26750_0.conda hash: - md5: 1d6e5fbbe84eebcd62e7cdccec799ce8 - sha256: 8890c03908a407649ac99257b63176b61d10dfa3468aa3db1994ac0973dc2803 + md5: 9176ee05643a1bfe7f2e7b4c921d2c3d + sha256: f507960adf64ee9c9c7b7833d8b11980765ebd2bf5345f73d5a3b21b259eaed5 category: main optional: false - name: libxml2-16 - version: 2.15.0 + version: 2.15.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - icu: '>=75.1,<76.0a0' libgcc: '>=14' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' libzlib: '>=1.3.1,<2.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-16-2.15.0-ha9997c6_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-16-2.15.1-hf2a90c1_0.conda hash: - md5: b24dd2bd61cd8e4f8a13ee2a945a723c - sha256: 5420ea77505a8d5ca7b5351ddb2da7e8a178052fccf8fca00189af7877608e89 + md5: 23720d17346b21efb08d68c2255c8431 + sha256: f5220ff49efc31431279859049199b9250e79f98c1dee1da12feb74bda2d9cf1 category: main optional: false - name: libxml2-16 - version: 2.15.0 + version: 2.15.1 manager: conda platform: win-64 dependencies: - icu: '>=75.1,<76.0a0' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libxml2-16-2.15.0-h06f855e_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/libxml2-16-2.15.1-h692994f_0.conda hash: - md5: a5d1a1f8745fcd93f39a4b80f389962f - sha256: f29159eef5af2adffe2fef2d89ff2f6feda07e194883f47a4cf366e9608fb91b + md5: 70ca4626111579c3cd63a7108fe737f9 + sha256: 04129dc2df47a01c55e5ccf8a18caefab94caddec41b3b10fbc409e980239eb9 category: main optional: false - name: libzlib @@ -4206,29 +4160,29 @@ package: category: dev optional: true - name: llvm-openmp - version: 21.1.3 + version: 21.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-21.1.3-h4922eb0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/llvm-openmp-21.1.4-h4922eb0_0.conda hash: - md5: df07762772ecb4f3be02f1c508095a55 - sha256: bf146db240ad78bd6f2553c064395894c5c69aedc620d60b4bdda8d415823b77 + md5: bd436383c8b7d4c64af6e0e382ce277a + sha256: d018aacb17fb7cc3a3871020cc9e27aade4b450abc8efc84975025c1b02d273e category: main optional: false - name: llvm-openmp - version: 21.1.3 + version: 21.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-21.1.3-hfa2b4ca_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/llvm-openmp-21.1.4-hfa2b4ca_0.conda hash: - md5: b1dd38bdf96540a6dedf0d196108c9a1 - sha256: 54826ea90c80ca04640b0fc1a0b3aabfd0f4e60e03c270b2a919a3655f21bc78 + md5: 5d56fdf8c9dc4c385704317e6743fca4 + sha256: 397d1874330592e57c6378a83dff194c6d1875cab44a41f9fdee8c3fe20bbe6b category: main optional: false - name: locket @@ -4761,10 +4715,10 @@ package: dependencies: nbconvert-core: ==7.16.6 nbconvert-pandoc: ==7.16.6 - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hb482800_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hc388f54_1.conda hash: - md5: aa90ea40c80d4bd3da35cb17ed668f22 - sha256: 5480b7e05bf3079fcb7357a5a15a96c3a1649cc1371d0c468c806898a7e53088 + md5: 0b26dff819ba9cfb0f6ff9c8b6a53c19 + sha256: e151c45e9ad2b0368fe64f51b6c857873681df27da3c408a811e85551e129d0e category: dev optional: true - name: nbconvert @@ -4774,10 +4728,10 @@ package: dependencies: nbconvert-core: ==7.16.6 nbconvert-pandoc: ==7.16.6 - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hb482800_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hc388f54_1.conda hash: - md5: aa90ea40c80d4bd3da35cb17ed668f22 - sha256: 5480b7e05bf3079fcb7357a5a15a96c3a1649cc1371d0c468c806898a7e53088 + md5: 0b26dff819ba9cfb0f6ff9c8b6a53c19 + sha256: e151c45e9ad2b0368fe64f51b6c857873681df27da3c408a811e85551e129d0e category: dev optional: true - name: nbconvert-core @@ -4801,10 +4755,10 @@ package: pygments: '>=2.4.1' python: '' traitlets: '>=5.1' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyh29332c3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda hash: - md5: d24beda1d30748afcc87c429454ece1b - sha256: dcccb07c5a1acb7dc8be94330e62d54754c0e9c9cb2bb6865c8e3cfe44cf5a58 + md5: cfc86ccc3b1de35d36ccaae4c50391f5 + sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f category: dev optional: true - name: nbconvert-core @@ -4826,12 +4780,12 @@ package: packaging: '' pandocfilters: '>=1.4.1' pygments: '>=2.4.1' - python: '>=3.9' + python: '>=3.10' traitlets: '>=5.1' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyh29332c3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda hash: - md5: d24beda1d30748afcc87c429454ece1b - sha256: dcccb07c5a1acb7dc8be94330e62d54754c0e9c9cb2bb6865c8e3cfe44cf5a58 + md5: cfc86ccc3b1de35d36ccaae4c50391f5 + sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f category: dev optional: true - name: nbconvert-pandoc @@ -4841,10 +4795,10 @@ package: dependencies: nbconvert-core: ==7.16.6 pandoc: '' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-hed9df3c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-h7d6f222_1.conda hash: - md5: 5b0afb6c52e74a7eca2cf809a874acf4 - sha256: 1e8923f1557c2ddb7bba915033cfaf8b8c1b7462c745172458102c11caee1002 + md5: 32b4a67e7fde3b22287b65838c8ad01b + sha256: 1eaf769838863544a0f2d2fb05acba1211a764b64234b53b2da836015d661150 category: dev optional: true - name: nbconvert-pandoc @@ -4854,10 +4808,10 @@ package: dependencies: nbconvert-core: ==7.16.6 pandoc: '' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-hed9df3c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-h7d6f222_1.conda hash: - md5: 5b0afb6c52e74a7eca2cf809a874acf4 - sha256: 1e8923f1557c2ddb7bba915033cfaf8b8c1b7462c745172458102c11caee1002 + md5: 32b4a67e7fde3b22287b65838c8ad01b + sha256: 1eaf769838863544a0f2d2fb05acba1211a764b64234b53b2da836015d661150 category: dev optional: true - name: nbformat @@ -5216,25 +5170,25 @@ package: category: main optional: false - name: pandoc - version: 3.8.2 + version: 3.8.2.1 manager: conda platform: linux-64 dependencies: {} - url: https://repo.prefix.dev/conda-forge/linux-64/pandoc-3.8.2-ha770c72_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pandoc-3.8.2.1-ha770c72_0.conda hash: - md5: 4c9317a85d1c233f490545392e895118 - sha256: ae3760e865327aaf95df025ccea9ddc1d80ab9f70c5d2478bbfbf324b8eb4e7d + md5: 47432e6a6fb5d9697564185e1907138a + sha256: 6b92e15cbc84ce4a0171ca0a9b9f483888a9065b17302d1503c0cacfcf8abd56 category: dev optional: true - name: pandoc - version: 3.8.2 + version: 3.8.2.1 manager: conda platform: win-64 dependencies: {} - url: https://repo.prefix.dev/conda-forge/win-64/pandoc-3.8.2-h57928b3_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/pandoc-3.8.2.1-h57928b3_0.conda hash: - md5: 88a11dca037752f036fafb414dd8e0b0 - sha256: ff55de733e42d44f10372f1707e1579bdc56edb6e8b72ab80e6306d9073299b1 + md5: 69c8325067e9ff3bab5715d673f99636 + sha256: e39ce8d67c6cb925cd148c730a1335c56075fa4ff6e902c3d1b7ad04c9078832 category: dev optional: true - name: pandocfilters @@ -5540,7 +5494,7 @@ package: category: main optional: false - name: psutil - version: 7.1.0 + version: 7.1.1 manager: conda platform: win-64 dependencies: @@ -5549,10 +5503,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/psutil-7.1.0-py310h29418f3_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/psutil-7.1.1-py310h29418f3_0.conda hash: - md5: 992be434ac9ae7a39f2f4147f2a66b86 - sha256: 7649d52b779df546d54f1d74e41164d0e052370a7a3d9d506ab685f6162980c2 + md5: f3a0c435d9c4d48dbe2c63ffbb5ee8f5 + sha256: 459423348eea523d74da7e45e2db8cc943c9b52bc36edf0dad93adb1ee4ffdd3 category: main optional: false - name: pthread-stubs @@ -5707,41 +5661,41 @@ package: category: main optional: false - name: pydantic - version: 2.12.1 + version: 2.12.3 manager: conda platform: linux-64 dependencies: annotated-types: '>=0.6.0' - pydantic-core: 2.41.3 + pydantic-core: 2.41.4 python: '>=3.10' typing-extensions: '>=4.6.1' typing-inspection: '>=0.4.2' typing_extensions: '>=4.14.1' - url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.1-pyh3cfb1c2_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.3-pyh3cfb1c2_0.conda hash: - md5: 475c8814c9d3a0e4fe7f6ed2abb2cf83 - sha256: 35a7b793da55f28d3192f597623cf0ebf9284c864569a83809745d778fa4d622 + md5: 2cb5d62fdf68deb0263663598feb9fc5 + sha256: 6a940747e8445653224dcff95fadf1060c66b9e544fdb0ed469b70a98c3aee7e category: main optional: false - name: pydantic - version: 2.12.1 + version: 2.12.3 manager: conda platform: win-64 dependencies: annotated-types: '>=0.6.0' - pydantic-core: 2.41.3 + pydantic-core: 2.41.4 python: '>=3.10' typing-extensions: '>=4.6.1' typing-inspection: '>=0.4.2' typing_extensions: '>=4.14.1' - url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.1-pyh3cfb1c2_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.3-pyh3cfb1c2_0.conda hash: - md5: 475c8814c9d3a0e4fe7f6ed2abb2cf83 - sha256: 35a7b793da55f28d3192f597623cf0ebf9284c864569a83809745d778fa4d622 + md5: 2cb5d62fdf68deb0263663598feb9fc5 + sha256: 6a940747e8445653224dcff95fadf1060c66b9e544fdb0ed469b70a98c3aee7e category: main optional: false - name: pydantic-core - version: 2.41.3 + version: 2.41.4 manager: conda platform: linux-64 dependencies: @@ -5750,14 +5704,14 @@ package: python: '' python_abi: 3.10.* typing-extensions: '>=4.6.0,!=4.7.0' - url: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.41.3-py310hd8f68c5_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.41.4-py310hd8f68c5_0.conda hash: - md5: 3ff09f83f5260f3f4f8d898617d1fc57 - sha256: c46694b127d42977ad3d1fe793d661f39d1a4a96de23b228365a2c2b84f26552 + md5: e6a2c9696ff99ae8a47c898f643cc2b0 + sha256: 5108adc2d3c25343cfc26f8fccdb407427eb7053e4fb4b37f07f1c95187fd6cc category: main optional: false - name: pydantic-core - version: 2.41.3 + version: 2.41.4 manager: conda platform: win-64 dependencies: @@ -5767,10 +5721,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/pydantic-core-2.41.3-py310h034784e_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/pydantic-core-2.41.4-py310h034784e_0.conda hash: - md5: bc66c6bcf89b608ec3771d1b0a06be8d - sha256: b4f611b37797740c44b0592224a74c811ed097ee9b2950368af0eb873e743cd5 + md5: 63b4a7922606d8e280d58c51380774bd + sha256: 51e5a7d247832664da04201d4e8a1750c361f0fd175f5e24c993a579f6bf0d6c category: main optional: false - name: pydata-sphinx-theme @@ -5819,16 +5773,16 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' mkl: '>=2024.1.0,<2025.0a0' - numpy: '>=1.19,<3' + numpy: '>=1.21,<3' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* scipy: '>=0.13' - url: https://repo.prefix.dev/conda-forge/linux-64/pydiso-0.1.2-py310h69a6472_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pydiso-0.1.2-py310h4b187eb_1.conda hash: - md5: d4ab7c8858c0f0db75600239c09b38d5 - sha256: bfaa4f0455b0e3c4f7c535c8e1a3bd4ad1c3a546807647490871f4c3a6106b20 + md5: 59524eeb7f059e05d1e800dade82e5cf + sha256: 58e431e8173517b29899cc0474bb10ca74d340aa09c4925a5010fa6330ccc615 category: main optional: false - name: pydiso @@ -5836,18 +5790,18 @@ package: manager: conda platform: win-64 dependencies: - mkl: '>=2024.2.2,<2025.0a0' - numpy: '>=1.19,<3' + mkl: '>=2024.1.0,<2025.0a0' + numpy: '>=1.21,<3' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* scipy: '>=0.13' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/pydiso-0.1.2-py310h8f92c26_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/pydiso-0.1.2-py310h3dbbb0c_1.conda hash: - md5: 8b436acfa40172914304ac42a6387351 - sha256: d86c167db66ccc00a45736f27a485c394713f075a91a18eb02e3416b8e5b4fdc + md5: 220c7874e74cef55a11bfd18862150bd + sha256: 8721f3cb9267938ed4c75f787c4a2e32ce3a1cd4a1c0847933379a0301125dca category: main optional: false - name: pygments @@ -5875,7 +5829,7 @@ package: category: dev optional: true - name: pylint - version: 4.0.0 + version: 4.0.2 manager: conda platform: linux-64 dependencies: @@ -5888,14 +5842,14 @@ package: python: '' tomli: '>=1.1.0' tomlkit: '>=0.10.1' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.0-pyhcf101f3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.2-pyhcf101f3_0.conda hash: - md5: f8e2acdbff0aec11d3def36760615f07 - sha256: 0a3de6ab1c2d7648ad3e22ea426b369c655d32a5294f005a66630413f93b5703 + md5: 0259facf4dbf67ad35ec517b6ffd6982 + sha256: 594bdf44a55c3bcf79ec6eb55d86571cbe3bee9f5216ede0721708c184da4ed8 category: dev optional: true - name: pylint - version: 4.0.0 + version: 4.0.2 manager: conda platform: win-64 dependencies: @@ -5908,10 +5862,10 @@ package: python: '>=3.10' tomli: '>=1.1.0' tomlkit: '>=0.10.1' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.0-pyhcf101f3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.2-pyhcf101f3_0.conda hash: - md5: f8e2acdbff0aec11d3def36760615f07 - sha256: 0a3de6ab1c2d7648ad3e22ea426b369c655d32a5294f005a66630413f93b5703 + md5: 0259facf4dbf67ad35ec517b6ffd6982 + sha256: 594bdf44a55c3bcf79ec6eb55d86571cbe3bee9f5216ede0721708c184da4ed8 category: dev optional: true - name: pymatsolver @@ -7685,27 +7639,27 @@ package: category: dev optional: true - name: toolz - version: 1.0.0 + version: 1.1.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda hash: - md5: 40d0ed782a8aaa16ef248e68c06c168d - sha256: eda38f423c33c2eaeca49ed946a8d3bf466cc3364970e083a65eb2fd85258d87 + md5: c07a6153f8306e45794774cf9b13bd32 + sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 category: main optional: false - name: toolz - version: 1.0.0 + version: 1.1.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda hash: - md5: 40d0ed782a8aaa16ef248e68c06c168d - sha256: eda38f423c33c2eaeca49ed946a8d3bf466cc3364970e083a65eb2fd85258d87 + md5: c07a6153f8306e45794774cf9b13bd32 + sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 category: main optional: false - name: tornado @@ -7815,30 +7769,6 @@ package: sha256: 021110c37eca2f0fca85ba6ac4576c509d23079758f63942e2f9a6954282f2ce category: main optional: false -- name: types-python-dateutil - version: 2.9.0.20251008 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20251008-pyhd8ed1ab_0.conda - hash: - md5: 6835489fc689d7ca90cb7bffb01eaac1 - sha256: ded9ff7c9e10daa895cfbcad95d400a24b8cb9c47701171a453510a296021073 - category: dev - optional: true -- name: types-python-dateutil - version: 2.9.0.20251008 - manager: conda - platform: win-64 - dependencies: - python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20251008-pyhd8ed1ab_0.conda - hash: - md5: 6835489fc689d7ca90cb7bffb01eaac1 - sha256: ded9ff7c9e10daa895cfbcad95d400a24b8cb9c47701171a453510a296021073 - category: dev - optional: true - name: typing-extensions version: 4.15.0 manager: conda @@ -8575,7 +8505,7 @@ package: manager: pip platform: linux-64 dependencies: - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' @@ -8592,7 +8522,7 @@ package: manager: pip platform: win-64 dependencies: - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' @@ -8605,7 +8535,7 @@ package: category: main optional: false - name: geoh5py - version: 0.12.0a2.dev149+b7e7ecdb + version: 0.12.0a2.dev192+ad308257 manager: pip platform: linux-64 dependencies: @@ -8613,16 +8543,16 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 hash: - sha256: b7e7ecdb90fb6daa40c9d7348380542fd1131994 + sha256: ad308257fed905370b41557f86dea6ea85fa6fb3 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 category: main optional: false - name: geoh5py - version: 0.12.0a2.dev149+b7e7ecdb + version: 0.12.0a2.dev192+ad308257 manager: pip platform: win-64 dependencies: @@ -8630,54 +8560,54 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 hash: - sha256: b7e7ecdb90fb6daa40c9d7348380542fd1131994 + sha256: ad308257fed905370b41557f86dea6ea85fa6fb3 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 category: main optional: false - name: grid-apps - version: 0.1.0a1.dev64+ed69183 + version: 0.1.0a1.dev66+b335205 manager: pip platform: linux-64 dependencies: discretize: '>=0.11.0,<0.12.dev' geoapps-utils: 0.6.0a1.dev108+ed5f5cf - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd hash: - sha256: ed6918388d6fc4062f72e471e415a1a22cc15d0d + sha256: b3352058d585613d34ff3042675a79a3b3e4bfbd source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd category: main optional: false - name: grid-apps - version: 0.1.0a1.dev64+ed69183 + version: 0.1.0a1.dev66+b335205 manager: pip platform: win-64 dependencies: discretize: '>=0.11.0,<0.12.dev' geoapps-utils: 0.6.0a1.dev108+ed5f5cf - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd hash: - sha256: ed6918388d6fc4062f72e471e415a1a22cc15d0d + sha256: b3352058d585613d34ff3042675a79a3b3e4bfbd source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev121+mira.g7564c0999 + version: 0.23.0.1.post2.dev125+mira.g489775b59 manager: pip platform: linux-64 dependencies: @@ -8689,16 +8619,16 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 hash: - sha256: 7564c0999208f9ff8f9e3733f5ffd22da9b333ee + sha256: 489775b595d5abce81d49b52bfefcecc3181c5c5 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev121+mira.g7564c0999 + version: 0.23.0.1.post2.dev125+mira.g489775b59 manager: pip platform: win-64 dependencies: @@ -8710,11 +8640,11 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 hash: - sha256: 7564c0999208f9ff8f9e3733f5ffd22da9b333ee + sha256: 489775b595d5abce81d49b52bfefcecc3181c5c5 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 category: main optional: false diff --git a/py-3.11.conda-lock.yml b/py-3.11.conda-lock.yml index 8f10c61c..9f7a68d8 100644 --- a/py-3.11.conda-lock.yml +++ b/py-3.11.conda-lock.yml @@ -35,10 +35,10 @@ package: platform: linux-64 dependencies: llvm-openmp: '>=9.0.1' - url: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-4_kmp_llvm.conda + url: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-5_kmp_llvm.conda hash: - md5: cc86eba730b0e87ea9990985d45e60f9 - sha256: b5e8980dd5fd96607fcccd98217b1058ec54566845b757cc0ecef146b5f0a51e + md5: af759c8ce5aed7e5453dca614c5bb831 + sha256: 261526e6bc3866db41ad32c6ccfb3694b07fe8a0ab91616a71fa90f8b365154b category: main optional: false - name: _openmp_mutex @@ -224,31 +224,31 @@ package: category: dev optional: true - name: arrow - version: 1.3.0 + version: 1.4.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '>=3.10' python-dateutil: '>=2.7.0' - types-python-dateutil: '>=2.8.10' - url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda + python-tzdata: '' + url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda hash: - md5: 46b53236fdd990271b03c3978d4218a9 - sha256: c4b0bdb3d5dee50b60db92f99da3e4c524d5240aafc0a5fcc15e45ae2d1a3cd1 + md5: 85c4f19f377424eafc4ed7911b291642 + sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 category: dev optional: true - name: arrow - version: 1.3.0 + version: 1.4.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' + python: '>=3.10' python-dateutil: '>=2.7.0' - types-python-dateutil: '>=2.8.10' - url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda + python-tzdata: '' + url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda hash: - md5: 46b53236fdd990271b03c3978d4218a9 - sha256: c4b0bdb3d5dee50b60db92f99da3e4c524d5240aafc0a5fcc15e45ae2d1a3cd1 + md5: 85c4f19f377424eafc4ed7911b291642 + sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 category: dev optional: true - name: asciitree @@ -949,7 +949,7 @@ package: category: main optional: false - name: coverage - version: 7.10.7 + version: 7.11.0 manager: conda platform: linux-64 dependencies: @@ -958,14 +958,14 @@ package: python: '>=3.11,<3.12.0a0' python_abi: 3.11.* tomli: '' - url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.7-py311h3778330_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.11.0-py311h3778330_0.conda hash: - md5: 53fdad3b032eee40cf74ac0de87e4518 - sha256: 19f423276875193355458a4a7b68716a13d4d45de8ec376695aa16fd12b16183 + md5: deeadabf222aa80df52056aac13f971c + sha256: a7496e21adca788eff7ebc21b18ccaef963be672d0c30133df33762d792023fa category: dev optional: true - name: coverage - version: 7.10.7 + version: 7.11.0 manager: conda platform: win-64 dependencies: @@ -975,23 +975,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/coverage-7.10.7-py311h3f79411_0.conda - hash: - md5: 56ff543fe8b76f6c40a307ae3ab022cf - sha256: 12ff83b5df97ece299d9923ba68b8843716376dd8a8683a94e076205dac7651b - category: dev - optional: true -- name: cpython - version: 3.11.14 - manager: conda - platform: win-64 - dependencies: - python: '>=3.11,<3.12.0a0' - python_abi: '*' - url: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.14-py311hd8ed1ab_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.11.0-py311h3f79411_0.conda hash: - md5: 00796bffaf8a787110e91c34007a1aac - sha256: 63eb57a639237936c2f96bcec0394d8aa73e50cc8d0999f4cae92cbef82a0240 + md5: 2e0282bde9ede7eee21cb9dbcc1b1f4a + sha256: dde77f8213c430d3c3ca0c80257b6f27590782297857b55d75e2574f4fa3aa5c category: dev optional: true - name: cycler @@ -1019,23 +1006,23 @@ package: category: main optional: false - name: cytoolz - version: 1.0.1 + version: 1.1.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* toolz: '>=0.10.0' - url: https://repo.prefix.dev/conda-forge/linux-64/cytoolz-1.0.1-py311h9ecbd09_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/cytoolz-1.1.0-py311h49ec1c0_1.conda hash: - md5: 69a0a85acdcc5e6d0f1cc915c067ad4c - sha256: fd5a8c7e613c3c538ca775951fd814ab10cfcdaed79e193c3bf7eb59c87cd114 + md5: 907579fcaf43b90c8c198ae8d43320ef + sha256: 8da7cec4fc78ea77fc10e21f273f6f640809c98c18a85c7ad39409c626dcf153 category: main optional: false - name: cytoolz - version: 1.0.1 + version: 1.1.0 manager: conda platform: win-64 dependencies: @@ -1043,12 +1030,12 @@ package: python_abi: 3.11.* toolz: '>=0.10.0' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/cytoolz-1.0.1-py311he736701_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/cytoolz-1.1.0-py311h3485c13_1.conda hash: - md5: fc78ccf75bba016a930accedee7ed9af - sha256: 7746ffe3a0849abbd724da6955950142ec7eedbc66053be8d3802b7885562951 + md5: cf54fe91d3c09e6891f39a26cb7cabfc + sha256: 2f595077cc3938fe70d3d7e21d18c99d27efc55fe5407dbf1ca5409626c41f98 category: main optional: false - name: dask-core @@ -1557,16 +1544,16 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libdlf: '' - libgcc: '>=13' - libstdcxx: '>=13' - numpy: '>=1.19,<3' + libgcc: '>=14' + libstdcxx: '>=14' + numpy: '>=1.23,<3' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* scipy: '>=1.8' - url: https://repo.prefix.dev/conda-forge/linux-64/geoana-0.7.2-py311h5b7b71f_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/geoana-0.7.2-py311h1d5f577_1.conda hash: - md5: 43a8fbbc2388122345ec26773a07091c - sha256: 549a28806517d33a391cf67319322b48cc7afbec85d45ee45792594287af5b5e + md5: 4d606a543585d23a806f98046aa693f4 + sha256: 362c1d7404e530b18bdadb056c1b3b9e6b889cc25b4a6cdd1670b9f3e503cca0 category: main optional: false - name: geoana @@ -1575,17 +1562,17 @@ package: platform: win-64 dependencies: libdlf: '' - numpy: '>=1.19,<3' + numpy: '>=1.23,<3' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* scipy: '>=1.8' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/geoana-0.7.2-py311h9b10771_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/geoana-0.7.2-py311h05ac4f6_1.conda hash: - md5: e611dcb0a755ab9df497b3a7b6dd72b0 - sha256: a63e83fec8e75b61333693919eaa2789320b0caf2d62f37691bd68f56b296004 + md5: 2e1abca307a7a739599ca5f7140d6d96 + sha256: 16df69ec678e95707a7e776d9994ad5d9c9fa834fd2d1451f69667303c9bad1b category: main optional: false - name: greenlet @@ -1675,7 +1662,7 @@ package: category: main optional: false - name: h5py - version: 3.14.0 + version: 3.15.1 manager: conda platform: linux-64 dependencies: @@ -1686,14 +1673,14 @@ package: numpy: '>=1.23,<3' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://repo.prefix.dev/conda-forge/linux-64/h5py-3.14.0-nompi_py311h0b2f468_101.conda + url: https://repo.prefix.dev/conda-forge/linux-64/h5py-3.15.1-nompi_py311h0b2f468_100.conda hash: - md5: b3dd5deacc3147498b31366315fdc6cc - sha256: f5d1955b90eb7060ee6f81bc39de0f4f8e28247b8fe810d70382b4fde9e0e1f9 + md5: 98374cf8d17901bcd934daa7cc8a28e6 + sha256: ff91ec7c4d9250cee9b41a533a8352ed1501d15136aa7cb0443b663c8317ed6e category: main optional: false - name: h5py - version: 3.14.0 + version: 3.15.1 manager: conda platform: win-64 dependencies: @@ -1705,10 +1692,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/h5py-3.14.0-nompi_py311hc40ba4b_101.conda + url: https://repo.prefix.dev/conda-forge/win-64/h5py-3.15.1-nompi_py311hc40ba4b_100.conda hash: - md5: 2ffcf6af42f0eadff1fa73417b848096 - sha256: 34aae9b53e14cf62373a5bd1f475151430e4257cad6626a5d38469367b049da3 + md5: cf0bb6634fafb0eec7c5e893332d91e0 + sha256: 5a7a857caff0afad0a8ba1eff3491c16a1bb0228231c01e715dc5d2012de340c category: main optional: false - name: hdf5 @@ -1863,34 +1850,6 @@ package: sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 category: main optional: false -- name: icu - version: '75.1' - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://repo.prefix.dev/conda-forge/linux-64/icu-75.1-he02047a_0.conda - hash: - md5: 8b189310083baabfb622af68fd9d3ae3 - sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e - category: main - optional: false -- name: icu - version: '75.1' - manager: conda - platform: win-64 - dependencies: - ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - hash: - md5: 8579b6bb8d18be7c0b27fb08adeeeb40 - sha256: 1d04369a1860a1e9e371b9fc82dd0092b616adcf057d6c88371856669280e920 - category: main - optional: false - name: idna version: '3.11' manager: conda @@ -1990,27 +1949,27 @@ package: category: dev optional: true - name: iniconfig - version: 2.0.0 + version: 2.3.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda hash: - md5: 6837f3eff7dcea42ecd714ce1ac2b108 - sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca + md5: 9614359868482abba1bd15ce465e3c42 + sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 category: dev optional: true - name: iniconfig - version: 2.0.0 + version: 2.3.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda hash: - md5: 6837f3eff7dcea42ecd714ce1ac2b108 - sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca + md5: 9614359868482abba1bd15ce465e3c42 + sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 category: dev optional: true - name: ipykernel @@ -2646,35 +2605,34 @@ package: category: dev optional: true - name: jupyter_core - version: 5.8.1 + version: 5.9.1 manager: conda platform: linux-64 dependencies: __unix: '' platformdirs: '>=2.5' - python: '>=3.8' + python: '>=3.10' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.8.1-pyh31011fe_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda hash: - md5: b7d89d860ebcda28a5303526cdee68ab - sha256: 56a7a7e907f15cca8c4f9b0c99488276d4cb10821d2d15df9245662184872e81 + md5: b38fe4e78ee75def7e599843ef4c1ab0 + sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a category: dev optional: true - name: jupyter_core - version: 5.8.1 + version: 5.9.1 manager: conda platform: win-64 dependencies: __win: '' - cpython: '' platformdirs: '>=2.5' - python: '>=3.8' - pywin32: '>=300' + python: '>=3.10' + pywin32: '' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.8.1-pyh5737063_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda hash: - md5: 324e60a0d3f39f268e899709575ea3cd - sha256: 928c2514c2974fda78447903217f01ca89a77eefedd46bf6a2fe97072df57e8d + md5: a8db462b01221e9f5135be466faeb3e0 + sha256: ed709a6c25b731e01563521ef338b93986cd14b5bc17f35e9382000864872ccc category: dev optional: true - name: jupyter_events @@ -2948,7 +2906,7 @@ package: category: dev optional: true - name: jupytext - version: 1.17.3 + version: 1.18.1 manager: conda platform: linux-64 dependencies: @@ -2959,14 +2917,14 @@ package: python: '>=3.10' pyyaml: '' tomli: '' - url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.17.3-pyh80e38bb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.18.1-pyh80e38bb_0.conda hash: - md5: 3178d138046fbc2e4944d3642a326814 - sha256: 2da4cfec3f811a37caa583e572ad2dad0b1d5c34f5d7121b4c687692bf1a4a06 + md5: 3c85f79f1debe2d2c82ac08f1c1126e1 + sha256: 07063dad3019455d786dc3b5174731eb0ef53eb699df25e21571c2b7cdcf0fd0 category: dev optional: true - name: jupytext - version: 1.17.3 + version: 1.18.1 manager: conda platform: win-64 dependencies: @@ -2977,10 +2935,10 @@ package: python: '>=3.10' pyyaml: '' tomli: '' - url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.17.3-pyh80e38bb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.18.1-pyh80e38bb_0.conda hash: - md5: 3178d138046fbc2e4944d3642a326814 - sha256: 2da4cfec3f811a37caa583e572ad2dad0b1d5c34f5d7121b4c687692bf1a4a06 + md5: 3c85f79f1debe2d2c82ac08f1c1126e1 + sha256: 07063dad3019455d786dc3b5174731eb0ef53eb699df25e21571c2b7cdcf0fd0 category: dev optional: true - name: keyutils @@ -3342,26 +3300,26 @@ package: category: main optional: false - name: libcurl - version: 8.14.1 + version: 8.16.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' krb5: '>=1.21.3,<1.22.0a0' - libgcc: '>=13' - libnghttp2: '>=1.64.0,<2.0a0' + libgcc: '>=14' + libnghttp2: '>=1.67.0,<2.0a0' libssh2: '>=1.11.1,<2.0a0' libzlib: '>=1.3.1,<2.0a0' - openssl: '>=3.5.0,<4.0a0' + openssl: '>=3.5.4,<4.0a0' zstd: '>=1.5.7,<1.6.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libcurl-8.16.0-h4e3cde8_0.conda hash: - md5: 45f6713cb00f124af300342512219182 - sha256: b6c5cf340a4f80d70d64b3a29a7d9885a5918d16a5cb952022820e6d3e79dc8b + md5: a401aa9329350320c7d3809a7a5a1640 + sha256: f21af777602d17ced05f168898e759fb0bac5af09ba72c5ece245dd0f14e0fec category: main optional: false - name: libcurl - version: 8.14.1 + version: 8.16.0 manager: conda platform: win-64 dependencies: @@ -3369,12 +3327,12 @@ package: libssh2: '>=1.11.1,<2.0a0' libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/libcurl-8.14.1-h88aaa65_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/libcurl-8.16.0-h43ecb02_0.conda hash: - md5: 836b9c08f34d2017dbcaec907c6a1138 - sha256: b2cface2cf35d8522289df7fffc14370596db6f6dc481cc1b6ca313faeac19d8 + md5: e9d8964076d40f974bd85d5588394b3f + sha256: 863284424dc6f64ee4a619cfb2490b85c7d51729fbf029603b30e2682532a9a6 category: main optional: false - name: libdeflate @@ -4133,75 +4091,71 @@ package: category: main optional: false - name: libxml2 - version: 2.15.0 + version: 2.15.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - icu: '>=75.1,<76.0a0' libgcc: '>=14' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' - libxml2-16: 2.15.0 + libxml2-16: 2.15.1 libzlib: '>=1.3.1,<2.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-2.15.0-h26afc86_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-2.15.1-h031cc0b_0.conda hash: - md5: 8337b675e0cad517fbcb3daf7588087a - sha256: 4310577d7eea817d35a1c05e1e54575b06ce085d73e6dd59aa38523adf50168f + md5: a67cd8f7b0369bbf2c40411f05a62f3b + sha256: ee64e507b37b073e0bdad739e35330933dd5be7c639600a096551a6968f1035d category: main optional: false - name: libxml2 - version: 2.15.0 + version: 2.15.1 manager: conda platform: win-64 dependencies: - icu: '>=75.1,<76.0a0' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' - libxml2-16: 2.15.0 + libxml2-16: 2.15.1 libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libxml2-2.15.0-ha29bfb0_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/libxml2-2.15.1-h5d26750_0.conda hash: - md5: 1d6e5fbbe84eebcd62e7cdccec799ce8 - sha256: 8890c03908a407649ac99257b63176b61d10dfa3468aa3db1994ac0973dc2803 + md5: 9176ee05643a1bfe7f2e7b4c921d2c3d + sha256: f507960adf64ee9c9c7b7833d8b11980765ebd2bf5345f73d5a3b21b259eaed5 category: main optional: false - name: libxml2-16 - version: 2.15.0 + version: 2.15.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - icu: '>=75.1,<76.0a0' libgcc: '>=14' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' libzlib: '>=1.3.1,<2.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-16-2.15.0-ha9997c6_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-16-2.15.1-hf2a90c1_0.conda hash: - md5: b24dd2bd61cd8e4f8a13ee2a945a723c - sha256: 5420ea77505a8d5ca7b5351ddb2da7e8a178052fccf8fca00189af7877608e89 + md5: 23720d17346b21efb08d68c2255c8431 + sha256: f5220ff49efc31431279859049199b9250e79f98c1dee1da12feb74bda2d9cf1 category: main optional: false - name: libxml2-16 - version: 2.15.0 + version: 2.15.1 manager: conda platform: win-64 dependencies: - icu: '>=75.1,<76.0a0' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libxml2-16-2.15.0-h06f855e_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/libxml2-16-2.15.1-h692994f_0.conda hash: - md5: a5d1a1f8745fcd93f39a4b80f389962f - sha256: f29159eef5af2adffe2fef2d89ff2f6feda07e194883f47a4cf366e9608fb91b + md5: 70ca4626111579c3cd63a7108fe737f9 + sha256: 04129dc2df47a01c55e5ccf8a18caefab94caddec41b3b10fbc409e980239eb9 category: main optional: false - name: libzlib @@ -4258,29 +4212,29 @@ package: category: dev optional: true - name: llvm-openmp - version: 21.1.3 + version: 21.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-21.1.3-h4922eb0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/llvm-openmp-21.1.4-h4922eb0_0.conda hash: - md5: df07762772ecb4f3be02f1c508095a55 - sha256: bf146db240ad78bd6f2553c064395894c5c69aedc620d60b4bdda8d415823b77 + md5: bd436383c8b7d4c64af6e0e382ce277a + sha256: d018aacb17fb7cc3a3871020cc9e27aade4b450abc8efc84975025c1b02d273e category: main optional: false - name: llvm-openmp - version: 21.1.3 + version: 21.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-21.1.3-hfa2b4ca_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/llvm-openmp-21.1.4-hfa2b4ca_0.conda hash: - md5: b1dd38bdf96540a6dedf0d196108c9a1 - sha256: 54826ea90c80ca04640b0fc1a0b3aabfd0f4e60e03c270b2a919a3655f21bc78 + md5: 5d56fdf8c9dc4c385704317e6743fca4 + sha256: 397d1874330592e57c6378a83dff194c6d1875cab44a41f9fdee8c3fe20bbe6b category: main optional: false - name: locket @@ -4813,10 +4767,10 @@ package: dependencies: nbconvert-core: ==7.16.6 nbconvert-pandoc: ==7.16.6 - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hb482800_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hc388f54_1.conda hash: - md5: aa90ea40c80d4bd3da35cb17ed668f22 - sha256: 5480b7e05bf3079fcb7357a5a15a96c3a1649cc1371d0c468c806898a7e53088 + md5: 0b26dff819ba9cfb0f6ff9c8b6a53c19 + sha256: e151c45e9ad2b0368fe64f51b6c857873681df27da3c408a811e85551e129d0e category: dev optional: true - name: nbconvert @@ -4826,10 +4780,10 @@ package: dependencies: nbconvert-core: ==7.16.6 nbconvert-pandoc: ==7.16.6 - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hb482800_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hc388f54_1.conda hash: - md5: aa90ea40c80d4bd3da35cb17ed668f22 - sha256: 5480b7e05bf3079fcb7357a5a15a96c3a1649cc1371d0c468c806898a7e53088 + md5: 0b26dff819ba9cfb0f6ff9c8b6a53c19 + sha256: e151c45e9ad2b0368fe64f51b6c857873681df27da3c408a811e85551e129d0e category: dev optional: true - name: nbconvert-core @@ -4851,12 +4805,12 @@ package: packaging: '' pandocfilters: '>=1.4.1' pygments: '>=2.4.1' - python: '>=3.9' + python: '>=3.10' traitlets: '>=5.1' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyh29332c3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda hash: - md5: d24beda1d30748afcc87c429454ece1b - sha256: dcccb07c5a1acb7dc8be94330e62d54754c0e9c9cb2bb6865c8e3cfe44cf5a58 + md5: cfc86ccc3b1de35d36ccaae4c50391f5 + sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f category: dev optional: true - name: nbconvert-core @@ -4878,12 +4832,12 @@ package: packaging: '' pandocfilters: '>=1.4.1' pygments: '>=2.4.1' - python: '>=3.9' + python: '>=3.10' traitlets: '>=5.1' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyh29332c3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda hash: - md5: d24beda1d30748afcc87c429454ece1b - sha256: dcccb07c5a1acb7dc8be94330e62d54754c0e9c9cb2bb6865c8e3cfe44cf5a58 + md5: cfc86ccc3b1de35d36ccaae4c50391f5 + sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f category: dev optional: true - name: nbconvert-pandoc @@ -4893,10 +4847,10 @@ package: dependencies: nbconvert-core: ==7.16.6 pandoc: '' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-hed9df3c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-h7d6f222_1.conda hash: - md5: 5b0afb6c52e74a7eca2cf809a874acf4 - sha256: 1e8923f1557c2ddb7bba915033cfaf8b8c1b7462c745172458102c11caee1002 + md5: 32b4a67e7fde3b22287b65838c8ad01b + sha256: 1eaf769838863544a0f2d2fb05acba1211a764b64234b53b2da836015d661150 category: dev optional: true - name: nbconvert-pandoc @@ -4906,10 +4860,10 @@ package: dependencies: nbconvert-core: ==7.16.6 pandoc: '' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-hed9df3c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-h7d6f222_1.conda hash: - md5: 5b0afb6c52e74a7eca2cf809a874acf4 - sha256: 1e8923f1557c2ddb7bba915033cfaf8b8c1b7462c745172458102c11caee1002 + md5: 32b4a67e7fde3b22287b65838c8ad01b + sha256: 1eaf769838863544a0f2d2fb05acba1211a764b64234b53b2da836015d661150 category: dev optional: true - name: nbformat @@ -5270,25 +5224,25 @@ package: category: main optional: false - name: pandoc - version: 3.8.2 + version: 3.8.2.1 manager: conda platform: linux-64 dependencies: {} - url: https://repo.prefix.dev/conda-forge/linux-64/pandoc-3.8.2-ha770c72_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pandoc-3.8.2.1-ha770c72_0.conda hash: - md5: 4c9317a85d1c233f490545392e895118 - sha256: ae3760e865327aaf95df025ccea9ddc1d80ab9f70c5d2478bbfbf324b8eb4e7d + md5: 47432e6a6fb5d9697564185e1907138a + sha256: 6b92e15cbc84ce4a0171ca0a9b9f483888a9065b17302d1503c0cacfcf8abd56 category: dev optional: true - name: pandoc - version: 3.8.2 + version: 3.8.2.1 manager: conda platform: win-64 dependencies: {} - url: https://repo.prefix.dev/conda-forge/win-64/pandoc-3.8.2-h57928b3_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/pandoc-3.8.2.1-h57928b3_0.conda hash: - md5: 88a11dca037752f036fafb414dd8e0b0 - sha256: ff55de733e42d44f10372f1707e1579bdc56edb6e8b72ab80e6306d9073299b1 + md5: 69c8325067e9ff3bab5715d673f99636 + sha256: e39ce8d67c6cb925cd148c730a1335c56075fa4ff6e902c3d1b7ad04c9078832 category: dev optional: true - name: pandocfilters @@ -5579,7 +5533,7 @@ package: category: dev optional: true - name: psutil - version: 7.1.0 + version: 7.1.1 manager: conda platform: linux-64 dependencies: @@ -5587,14 +5541,14 @@ package: libgcc: '>=14' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://repo.prefix.dev/conda-forge/linux-64/psutil-7.1.0-py311h49ec1c0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/psutil-7.1.1-py311h49ec1c0_0.conda hash: - md5: eaf20d52642262d2987c3cdc7423649e - sha256: 06797609454011c59555e1dd2f9b5ac951227169d15f762a2219acf971fc8a5d + md5: fdf6ddf7278ca192158d25760f2c110a + sha256: ce79e9c43da67de620ded2cdfa2fe42336013abc2fb4e143796e5d22c7ff94d2 category: main optional: false - name: psutil - version: 7.1.0 + version: 7.1.1 manager: conda platform: win-64 dependencies: @@ -5603,10 +5557,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/psutil-7.1.0-py311h3485c13_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/psutil-7.1.1-py311h3485c13_0.conda hash: - md5: baea4de149034e2317e3a539b808175a - sha256: c40708f50f3d1fcb330b09e08976361fc0ee6e86b4df3292b8808588138e947f + md5: eb5433aa9dc0fa4f3e32dc91797c0bc1 + sha256: df3461c6ce2de927a2c6f621103faa290809467bf8c3256b6ffe168965a7f586 category: main optional: false - name: pthread-stubs @@ -5761,41 +5715,41 @@ package: category: main optional: false - name: pydantic - version: 2.12.1 + version: 2.12.3 manager: conda platform: linux-64 dependencies: annotated-types: '>=0.6.0' - pydantic-core: 2.41.3 + pydantic-core: 2.41.4 python: '>=3.10' typing-extensions: '>=4.6.1' typing-inspection: '>=0.4.2' typing_extensions: '>=4.14.1' - url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.1-pyh3cfb1c2_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.3-pyh3cfb1c2_0.conda hash: - md5: 475c8814c9d3a0e4fe7f6ed2abb2cf83 - sha256: 35a7b793da55f28d3192f597623cf0ebf9284c864569a83809745d778fa4d622 + md5: 2cb5d62fdf68deb0263663598feb9fc5 + sha256: 6a940747e8445653224dcff95fadf1060c66b9e544fdb0ed469b70a98c3aee7e category: main optional: false - name: pydantic - version: 2.12.1 + version: 2.12.3 manager: conda platform: win-64 dependencies: annotated-types: '>=0.6.0' - pydantic-core: 2.41.3 + pydantic-core: 2.41.4 python: '>=3.10' typing-extensions: '>=4.6.1' typing-inspection: '>=0.4.2' typing_extensions: '>=4.14.1' - url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.1-pyh3cfb1c2_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.3-pyh3cfb1c2_0.conda hash: - md5: 475c8814c9d3a0e4fe7f6ed2abb2cf83 - sha256: 35a7b793da55f28d3192f597623cf0ebf9284c864569a83809745d778fa4d622 + md5: 2cb5d62fdf68deb0263663598feb9fc5 + sha256: 6a940747e8445653224dcff95fadf1060c66b9e544fdb0ed469b70a98c3aee7e category: main optional: false - name: pydantic-core - version: 2.41.3 + version: 2.41.4 manager: conda platform: linux-64 dependencies: @@ -5804,14 +5758,14 @@ package: python: '' python_abi: 3.11.* typing-extensions: '>=4.6.0,!=4.7.0' - url: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.41.3-py311h902ca64_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.41.4-py311h902ca64_0.conda hash: - md5: 418af01c0f40c578f331567b21bd1569 - sha256: 0b1a12c78c397dfeae93836d1079cf815dae1a58716537a843570c701126791b + md5: a440367c3ba0b93cfb7c6b1b93989720 + sha256: 7f7472dfc6a7275ea6c03b7fa7c1060fa5a3d0e39bbab16eac907d13421abd0e category: main optional: false - name: pydantic-core - version: 2.41.3 + version: 2.41.4 manager: conda platform: win-64 dependencies: @@ -5821,10 +5775,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/pydantic-core-2.41.3-py311hf51aa87_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/pydantic-core-2.41.4-py311hf51aa87_0.conda hash: - md5: 977d2fb412d0f1007b806996037e8b5e - sha256: 76f8d467faa2498978960f223123c9e4be6a4aba608f1371e160672f94b51018 + md5: 67883b7e8b7260fa4571304e60cf0b01 + sha256: 9ed29654119c308889d3cdc08ddbefa4b070cba554d7f7db1cf372325dc8bed5 category: main optional: false - name: pydata-sphinx-theme @@ -5873,16 +5827,16 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' mkl: '>=2024.1.0,<2025.0a0' - numpy: '>=1.19,<3' + numpy: '>=1.23,<3' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* scipy: '>=0.13' - url: https://repo.prefix.dev/conda-forge/linux-64/pydiso-0.1.2-py311h19ea254_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pydiso-0.1.2-py311h6070e36_1.conda hash: - md5: c167267bfdb40fd2b924e06e9c7241a5 - sha256: e16eed2ff0eb8f45868ca47d61322052530475a292fcda8101d5c1241c428b27 + md5: 07d7d14a9554022c5aa7f1cc62bf3e1f + sha256: c63db744044c6ae5d22f86c0c37c818ef733ac486f7fdcc3b9e602dd0a7ba942 category: main optional: false - name: pydiso @@ -5891,17 +5845,17 @@ package: platform: win-64 dependencies: mkl: '>=2024.2.2,<2025.0a0' - numpy: '>=1.19,<3' + numpy: '>=1.23,<3' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* scipy: '>=0.13' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/pydiso-0.1.2-py311h66870c1_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/pydiso-0.1.2-py311h1c8cef1_1.conda hash: - md5: 84cec6512899d9afc17baaad404ad74c - sha256: 72cbc2c46902724c61f7b745e4c3538f8814053fafb274aecae7c6b70ae92862 + md5: 18b9a3a6950521255812a55f334246f1 + sha256: 4c824fa29c25d53a00106b29373b8be0d9327f2588a00052661297b99e498caa category: main optional: false - name: pygments @@ -5929,7 +5883,7 @@ package: category: dev optional: true - name: pylint - version: 4.0.0 + version: 4.0.2 manager: conda platform: linux-64 dependencies: @@ -5942,14 +5896,14 @@ package: python: '>=3.10' tomli: '>=1.1.0' tomlkit: '>=0.10.1' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.0-pyhcf101f3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.2-pyhcf101f3_0.conda hash: - md5: f8e2acdbff0aec11d3def36760615f07 - sha256: 0a3de6ab1c2d7648ad3e22ea426b369c655d32a5294f005a66630413f93b5703 + md5: 0259facf4dbf67ad35ec517b6ffd6982 + sha256: 594bdf44a55c3bcf79ec6eb55d86571cbe3bee9f5216ede0721708c184da4ed8 category: dev optional: true - name: pylint - version: 4.0.0 + version: 4.0.2 manager: conda platform: win-64 dependencies: @@ -5962,10 +5916,10 @@ package: python: '>=3.10' tomli: '>=1.1.0' tomlkit: '>=0.10.1' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.0-pyhcf101f3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.2-pyhcf101f3_0.conda hash: - md5: f8e2acdbff0aec11d3def36760615f07 - sha256: 0a3de6ab1c2d7648ad3e22ea426b369c655d32a5294f005a66630413f93b5703 + md5: 0259facf4dbf67ad35ec517b6ffd6982 + sha256: 594bdf44a55c3bcf79ec6eb55d86571cbe3bee9f5216ede0721708c184da4ed8 category: dev optional: true - name: pymatsolver @@ -7739,27 +7693,27 @@ package: category: dev optional: true - name: toolz - version: 1.0.0 + version: 1.1.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda hash: - md5: 40d0ed782a8aaa16ef248e68c06c168d - sha256: eda38f423c33c2eaeca49ed946a8d3bf466cc3364970e083a65eb2fd85258d87 + md5: c07a6153f8306e45794774cf9b13bd32 + sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 category: main optional: false - name: toolz - version: 1.0.0 + version: 1.1.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda hash: - md5: 40d0ed782a8aaa16ef248e68c06c168d - sha256: eda38f423c33c2eaeca49ed946a8d3bf466cc3364970e083a65eb2fd85258d87 + md5: c07a6153f8306e45794774cf9b13bd32 + sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 category: main optional: false - name: tornado @@ -7869,30 +7823,6 @@ package: sha256: 021110c37eca2f0fca85ba6ac4576c509d23079758f63942e2f9a6954282f2ce category: main optional: false -- name: types-python-dateutil - version: 2.9.0.20251008 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20251008-pyhd8ed1ab_0.conda - hash: - md5: 6835489fc689d7ca90cb7bffb01eaac1 - sha256: ded9ff7c9e10daa895cfbcad95d400a24b8cb9c47701171a453510a296021073 - category: dev - optional: true -- name: types-python-dateutil - version: 2.9.0.20251008 - manager: conda - platform: win-64 - dependencies: - python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20251008-pyhd8ed1ab_0.conda - hash: - md5: 6835489fc689d7ca90cb7bffb01eaac1 - sha256: ded9ff7c9e10daa895cfbcad95d400a24b8cb9c47701171a453510a296021073 - category: dev - optional: true - name: typing-extensions version: 4.15.0 manager: conda @@ -8660,7 +8590,7 @@ package: manager: pip platform: linux-64 dependencies: - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' @@ -8677,7 +8607,7 @@ package: manager: pip platform: win-64 dependencies: - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' @@ -8690,7 +8620,7 @@ package: category: main optional: false - name: geoh5py - version: 0.12.0a2.dev149+b7e7ecdb + version: 0.12.0a2.dev192+ad308257 manager: pip platform: linux-64 dependencies: @@ -8698,16 +8628,16 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 hash: - sha256: b7e7ecdb90fb6daa40c9d7348380542fd1131994 + sha256: ad308257fed905370b41557f86dea6ea85fa6fb3 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 category: main optional: false - name: geoh5py - version: 0.12.0a2.dev149+b7e7ecdb + version: 0.12.0a2.dev192+ad308257 manager: pip platform: win-64 dependencies: @@ -8715,54 +8645,54 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 hash: - sha256: b7e7ecdb90fb6daa40c9d7348380542fd1131994 + sha256: ad308257fed905370b41557f86dea6ea85fa6fb3 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 category: main optional: false - name: grid-apps - version: 0.1.0a1.dev64+ed69183 + version: 0.1.0a1.dev66+b335205 manager: pip platform: linux-64 dependencies: discretize: '>=0.11.0,<0.12.dev' geoapps-utils: 0.6.0a1.dev108+ed5f5cf - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd hash: - sha256: ed6918388d6fc4062f72e471e415a1a22cc15d0d + sha256: b3352058d585613d34ff3042675a79a3b3e4bfbd source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd category: main optional: false - name: grid-apps - version: 0.1.0a1.dev64+ed69183 + version: 0.1.0a1.dev66+b335205 manager: pip platform: win-64 dependencies: discretize: '>=0.11.0,<0.12.dev' geoapps-utils: 0.6.0a1.dev108+ed5f5cf - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd hash: - sha256: ed6918388d6fc4062f72e471e415a1a22cc15d0d + sha256: b3352058d585613d34ff3042675a79a3b3e4bfbd source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev121+mira.g7564c0999 + version: 0.23.0.1.post2.dev125+mira.g489775b59 manager: pip platform: linux-64 dependencies: @@ -8774,16 +8704,16 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 hash: - sha256: 7564c0999208f9ff8f9e3733f5ffd22da9b333ee + sha256: 489775b595d5abce81d49b52bfefcecc3181c5c5 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev121+mira.g7564c0999 + version: 0.23.0.1.post2.dev125+mira.g489775b59 manager: pip platform: win-64 dependencies: @@ -8795,11 +8725,11 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 hash: - sha256: 7564c0999208f9ff8f9e3733f5ffd22da9b333ee + sha256: 489775b595d5abce81d49b52bfefcecc3181c5c5 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 category: main optional: false diff --git a/py-3.12.conda-lock.yml b/py-3.12.conda-lock.yml index a8b08454..98ad004e 100644 --- a/py-3.12.conda-lock.yml +++ b/py-3.12.conda-lock.yml @@ -35,10 +35,10 @@ package: platform: linux-64 dependencies: llvm-openmp: '>=9.0.1' - url: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-4_kmp_llvm.conda + url: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-5_kmp_llvm.conda hash: - md5: cc86eba730b0e87ea9990985d45e60f9 - sha256: b5e8980dd5fd96607fcccd98217b1058ec54566845b757cc0ecef146b5f0a51e + md5: af759c8ce5aed7e5453dca614c5bb831 + sha256: 261526e6bc3866db41ad32c6ccfb3694b07fe8a0ab91616a71fa90f8b365154b category: main optional: false - name: _openmp_mutex @@ -250,31 +250,31 @@ package: category: dev optional: true - name: arrow - version: 1.3.0 + version: 1.4.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' + python: '>=3.10' python-dateutil: '>=2.7.0' - types-python-dateutil: '>=2.8.10' - url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda + python-tzdata: '' + url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda hash: - md5: 46b53236fdd990271b03c3978d4218a9 - sha256: c4b0bdb3d5dee50b60db92f99da3e4c524d5240aafc0a5fcc15e45ae2d1a3cd1 + md5: 85c4f19f377424eafc4ed7911b291642 + sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 category: dev optional: true - name: arrow - version: 1.3.0 + version: 1.4.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' + python: '>=3.10' python-dateutil: '>=2.7.0' - types-python-dateutil: '>=2.8.10' - url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda + python-tzdata: '' + url: https://repo.prefix.dev/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda hash: - md5: 46b53236fdd990271b03c3978d4218a9 - sha256: c4b0bdb3d5dee50b60db92f99da3e4c524d5240aafc0a5fcc15e45ae2d1a3cd1 + md5: 85c4f19f377424eafc4ed7911b291642 + sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 category: dev optional: true - name: asciitree @@ -975,7 +975,7 @@ package: category: main optional: false - name: coverage - version: 7.10.7 + version: 7.11.0 manager: conda platform: linux-64 dependencies: @@ -984,14 +984,14 @@ package: python: '>=3.12,<3.13.0a0' python_abi: 3.12.* tomli: '' - url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.7-py312h8a5da7c_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.11.0-py312h8a5da7c_0.conda hash: - md5: 03d83efc728a6721a0f1616a04a7fc84 - sha256: 31a5117c6b9ff110deafb007ca781f65409046973744ffb33072604481b333fd + md5: c23f0ca5a6e2f0ef5735825f14fbe007 + sha256: e2ab39dd818674131055df51ae293b4dbcb60992f2102caa6c35369da007c23e category: dev optional: true - name: coverage - version: 7.10.7 + version: 7.11.0 manager: conda platform: win-64 dependencies: @@ -1001,10 +1001,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/coverage-7.10.7-py312h05f76fc_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.11.0-py312h05f76fc_0.conda hash: - md5: 85f87f69db7da9c361e3babc62733701 - sha256: feb7c603334bc5c4cd55ada7d199ee9b3db877fe76230f0bb1198eb9f21a07c3 + md5: 881c6e4fb45d6a7493eb68a1ed283a18 + sha256: f6b86873e01917685299c3c213727626ec25ac5d1a697991d59e22baf4782fff category: dev optional: true - name: cpython @@ -1058,23 +1058,23 @@ package: category: main optional: false - name: cytoolz - version: 1.0.1 + version: 1.1.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* toolz: '>=0.10.0' - url: https://repo.prefix.dev/conda-forge/linux-64/cytoolz-1.0.1-py312h66e93f0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/cytoolz-1.1.0-py312h4c3975b_1.conda hash: - md5: 6198b134b1c08173f33653896974d477 - sha256: 63a64d4e71148c4efd8db17b4a19b8965990d1e08ed2e24b84bc36b6c166a705 + md5: 693cda60b9223f55d0836c885621611b + sha256: 299e5ed0d2dfb5b33006505da09e80e753ba514434332fb6fa0b8b6b91a1079a category: main optional: false - name: cytoolz - version: 1.0.1 + version: 1.1.0 manager: conda platform: win-64 dependencies: @@ -1082,12 +1082,12 @@ package: python_abi: 3.12.* toolz: '>=0.10.0' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/cytoolz-1.0.1-py312h4389bb4_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/cytoolz-1.1.0-py312he06e257_1.conda hash: - md5: fba0567971249f5d0cce4d35b1184c75 - sha256: e657e468fdae72302951bba92f94bcb31566a237e5f979a7dd205603a0750b59 + md5: cd9ca1f73cd732a47b6166f6e57b0025 + sha256: 6cb9fe37c851eff1c06f5ce27655e44f554a75266d71d2b4e7a6904debc0fde7 category: main optional: false - name: dask-core @@ -1596,16 +1596,16 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' libdlf: '' - libgcc: '>=13' - libstdcxx: '>=13' - numpy: '>=1.19,<3' + libgcc: '>=14' + libstdcxx: '>=14' + numpy: '>=1.23,<3' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* scipy: '>=1.8' - url: https://repo.prefix.dev/conda-forge/linux-64/geoana-0.7.2-py312hc39e661_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/geoana-0.7.2-py312hf890105_1.conda hash: - md5: 20497b2b58fd4525c178cf642eb6d51d - sha256: 492ac87e5e108352ec452b11d7a1158b22913b151e6da576099f8db1ecc262b6 + md5: cddd53dc187367c8ca72fff74ad72ecd + sha256: 5996127aa746fd3653094524ad1b040db947e7c8bc085bda2a2e526a31044c93 category: main optional: false - name: geoana @@ -1614,17 +1614,17 @@ package: platform: win-64 dependencies: libdlf: '' - numpy: '>=1.19,<3' + numpy: '>=1.23,<3' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* scipy: '>=1.8' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/geoana-0.7.2-py312hbaa7e33_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/geoana-0.7.2-py312h9b46583_1.conda hash: - md5: 734e9c4267b48bd5fd1f491868994e52 - sha256: 686b9a107e080169f3e097923932764d65d5ad075acc06104080311211639eaa + md5: b98b59da479de580b099e3e99fc62214 + sha256: d9d14d31f53c8f87e0529566e18037d94430719d663d95d6dfad36269f3d14e7 category: main optional: false - name: greenlet @@ -1714,7 +1714,7 @@ package: category: main optional: false - name: h5py - version: 3.14.0 + version: 3.15.1 manager: conda platform: linux-64 dependencies: @@ -1725,14 +1725,14 @@ package: numpy: '>=1.23,<3' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* - url: https://repo.prefix.dev/conda-forge/linux-64/h5py-3.14.0-nompi_py312ha4f8f14_101.conda + url: https://repo.prefix.dev/conda-forge/linux-64/h5py-3.15.1-nompi_py312ha4f8f14_100.conda hash: - md5: fff67e7204b34a6e82ccf076786d1a7a - sha256: 6736b00b257aecef97e5e607ff275780cacdec48ff85963fe53abeb9ee4fb53f + md5: 44a8a9fe9150a6aba3c7e3845604b4ff + sha256: 5116f0aff9ae47c1ce594e4eb0d1b0b8f3b5347f91e883dff12bdbf8b782fa50 category: main optional: false - name: h5py - version: 3.14.0 + version: 3.15.1 manager: conda platform: win-64 dependencies: @@ -1744,10 +1744,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/h5py-3.14.0-nompi_py312h03cd2ba_101.conda + url: https://repo.prefix.dev/conda-forge/win-64/h5py-3.15.1-nompi_py312h03cd2ba_100.conda hash: - md5: dc73d015d4d8afbe3a5caf38e7be048a - sha256: 932f5a81723869cd4b201bbbac58f63c8e042ab6bb0afccc24a77e81f3eb40eb + md5: fd77224d0a5bb4f87438b80362f56a7a + sha256: 101ccbf8aa4640f0f08829899886d8586237fab402e77bc9debfeb0de9208ae7 category: main optional: false - name: hdf5 @@ -1902,34 +1902,6 @@ package: sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 category: main optional: false -- name: icu - version: '75.1' - manager: conda - platform: linux-64 - dependencies: - __glibc: '>=2.17,<3.0.a0' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - url: https://repo.prefix.dev/conda-forge/linux-64/icu-75.1-he02047a_0.conda - hash: - md5: 8b189310083baabfb622af68fd9d3ae3 - sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e - category: main - optional: false -- name: icu - version: '75.1' - manager: conda - platform: win-64 - dependencies: - ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - hash: - md5: 8579b6bb8d18be7c0b27fb08adeeeb40 - sha256: 1d04369a1860a1e9e371b9fc82dd0092b616adcf057d6c88371856669280e920 - category: main - optional: false - name: idna version: '3.11' manager: conda @@ -2029,27 +2001,27 @@ package: category: dev optional: true - name: iniconfig - version: 2.0.0 + version: 2.3.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda hash: - md5: 6837f3eff7dcea42ecd714ce1ac2b108 - sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca + md5: 9614359868482abba1bd15ce465e3c42 + sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 category: dev optional: true - name: iniconfig - version: 2.0.0 + version: 2.3.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda hash: - md5: 6837f3eff7dcea42ecd714ce1ac2b108 - sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca + md5: 9614359868482abba1bd15ce465e3c42 + sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 category: dev optional: true - name: ipykernel @@ -2685,35 +2657,34 @@ package: category: dev optional: true - name: jupyter_core - version: 5.8.1 + version: 5.9.1 manager: conda platform: linux-64 dependencies: __unix: '' platformdirs: '>=2.5' - python: '>=3.8' + python: '>=3.10' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.8.1-pyh31011fe_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda hash: - md5: b7d89d860ebcda28a5303526cdee68ab - sha256: 56a7a7e907f15cca8c4f9b0c99488276d4cb10821d2d15df9245662184872e81 + md5: b38fe4e78ee75def7e599843ef4c1ab0 + sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a category: dev optional: true - name: jupyter_core - version: 5.8.1 + version: 5.9.1 manager: conda platform: win-64 dependencies: __win: '' - cpython: '' platformdirs: '>=2.5' - python: '>=3.8' - pywin32: '>=300' + python: '>=3.10' + pywin32: '' traitlets: '>=5.3' - url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.8.1-pyh5737063_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda hash: - md5: 324e60a0d3f39f268e899709575ea3cd - sha256: 928c2514c2974fda78447903217f01ca89a77eefedd46bf6a2fe97072df57e8d + md5: a8db462b01221e9f5135be466faeb3e0 + sha256: ed709a6c25b731e01563521ef338b93986cd14b5bc17f35e9382000864872ccc category: dev optional: true - name: jupyter_events @@ -2987,7 +2958,7 @@ package: category: dev optional: true - name: jupytext - version: 1.17.3 + version: 1.18.1 manager: conda platform: linux-64 dependencies: @@ -2998,14 +2969,14 @@ package: python: '>=3.10' pyyaml: '' tomli: '' - url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.17.3-pyh80e38bb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.18.1-pyh80e38bb_0.conda hash: - md5: 3178d138046fbc2e4944d3642a326814 - sha256: 2da4cfec3f811a37caa583e572ad2dad0b1d5c34f5d7121b4c687692bf1a4a06 + md5: 3c85f79f1debe2d2c82ac08f1c1126e1 + sha256: 07063dad3019455d786dc3b5174731eb0ef53eb699df25e21571c2b7cdcf0fd0 category: dev optional: true - name: jupytext - version: 1.17.3 + version: 1.18.1 manager: conda platform: win-64 dependencies: @@ -3016,10 +2987,10 @@ package: python: '>=3.10' pyyaml: '' tomli: '' - url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.17.3-pyh80e38bb_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/jupytext-1.18.1-pyh80e38bb_0.conda hash: - md5: 3178d138046fbc2e4944d3642a326814 - sha256: 2da4cfec3f811a37caa583e572ad2dad0b1d5c34f5d7121b4c687692bf1a4a06 + md5: 3c85f79f1debe2d2c82ac08f1c1126e1 + sha256: 07063dad3019455d786dc3b5174731eb0ef53eb699df25e21571c2b7cdcf0fd0 category: dev optional: true - name: keyutils @@ -3381,26 +3352,26 @@ package: category: main optional: false - name: libcurl - version: 8.14.1 + version: 8.16.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' krb5: '>=1.21.3,<1.22.0a0' - libgcc: '>=13' - libnghttp2: '>=1.64.0,<2.0a0' + libgcc: '>=14' + libnghttp2: '>=1.67.0,<2.0a0' libssh2: '>=1.11.1,<2.0a0' libzlib: '>=1.3.1,<2.0a0' - openssl: '>=3.5.0,<4.0a0' + openssl: '>=3.5.4,<4.0a0' zstd: '>=1.5.7,<1.6.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libcurl-8.16.0-h4e3cde8_0.conda hash: - md5: 45f6713cb00f124af300342512219182 - sha256: b6c5cf340a4f80d70d64b3a29a7d9885a5918d16a5cb952022820e6d3e79dc8b + md5: a401aa9329350320c7d3809a7a5a1640 + sha256: f21af777602d17ced05f168898e759fb0bac5af09ba72c5ece245dd0f14e0fec category: main optional: false - name: libcurl - version: 8.14.1 + version: 8.16.0 manager: conda platform: win-64 dependencies: @@ -3408,12 +3379,12 @@ package: libssh2: '>=1.11.1,<2.0a0' libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/libcurl-8.14.1-h88aaa65_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/libcurl-8.16.0-h43ecb02_0.conda hash: - md5: 836b9c08f34d2017dbcaec907c6a1138 - sha256: b2cface2cf35d8522289df7fffc14370596db6f6dc481cc1b6ca313faeac19d8 + md5: e9d8964076d40f974bd85d5588394b3f + sha256: 863284424dc6f64ee4a619cfb2490b85c7d51729fbf029603b30e2682532a9a6 category: main optional: false - name: libdeflate @@ -4172,75 +4143,71 @@ package: category: main optional: false - name: libxml2 - version: 2.15.0 + version: 2.15.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - icu: '>=75.1,<76.0a0' libgcc: '>=14' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' - libxml2-16: 2.15.0 + libxml2-16: 2.15.1 libzlib: '>=1.3.1,<2.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-2.15.0-h26afc86_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-2.15.1-h031cc0b_0.conda hash: - md5: 8337b675e0cad517fbcb3daf7588087a - sha256: 4310577d7eea817d35a1c05e1e54575b06ce085d73e6dd59aa38523adf50168f + md5: a67cd8f7b0369bbf2c40411f05a62f3b + sha256: ee64e507b37b073e0bdad739e35330933dd5be7c639600a096551a6968f1035d category: main optional: false - name: libxml2 - version: 2.15.0 + version: 2.15.1 manager: conda platform: win-64 dependencies: - icu: '>=75.1,<76.0a0' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' - libxml2-16: 2.15.0 + libxml2-16: 2.15.1 libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libxml2-2.15.0-ha29bfb0_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/libxml2-2.15.1-h5d26750_0.conda hash: - md5: 1d6e5fbbe84eebcd62e7cdccec799ce8 - sha256: 8890c03908a407649ac99257b63176b61d10dfa3468aa3db1994ac0973dc2803 + md5: 9176ee05643a1bfe7f2e7b4c921d2c3d + sha256: f507960adf64ee9c9c7b7833d8b11980765ebd2bf5345f73d5a3b21b259eaed5 category: main optional: false - name: libxml2-16 - version: 2.15.0 + version: 2.15.1 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - icu: '>=75.1,<76.0a0' libgcc: '>=14' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' libzlib: '>=1.3.1,<2.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-16-2.15.0-ha9997c6_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libxml2-16-2.15.1-hf2a90c1_0.conda hash: - md5: b24dd2bd61cd8e4f8a13ee2a945a723c - sha256: 5420ea77505a8d5ca7b5351ddb2da7e8a178052fccf8fca00189af7877608e89 + md5: 23720d17346b21efb08d68c2255c8431 + sha256: f5220ff49efc31431279859049199b9250e79f98c1dee1da12feb74bda2d9cf1 category: main optional: false - name: libxml2-16 - version: 2.15.0 + version: 2.15.1 manager: conda platform: win-64 dependencies: - icu: '>=75.1,<76.0a0' libiconv: '>=1.18,<2.0a0' liblzma: '>=5.8.1,<6.0a0' libzlib: '>=1.3.1,<2.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libxml2-16-2.15.0-h06f855e_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/libxml2-16-2.15.1-h692994f_0.conda hash: - md5: a5d1a1f8745fcd93f39a4b80f389962f - sha256: f29159eef5af2adffe2fef2d89ff2f6feda07e194883f47a4cf366e9608fb91b + md5: 70ca4626111579c3cd63a7108fe737f9 + sha256: 04129dc2df47a01c55e5ccf8a18caefab94caddec41b3b10fbc409e980239eb9 category: main optional: false - name: libzlib @@ -4297,29 +4264,29 @@ package: category: dev optional: true - name: llvm-openmp - version: 21.1.3 + version: 21.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-21.1.3-h4922eb0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/llvm-openmp-21.1.4-h4922eb0_0.conda hash: - md5: df07762772ecb4f3be02f1c508095a55 - sha256: bf146db240ad78bd6f2553c064395894c5c69aedc620d60b4bdda8d415823b77 + md5: bd436383c8b7d4c64af6e0e382ce277a + sha256: d018aacb17fb7cc3a3871020cc9e27aade4b450abc8efc84975025c1b02d273e category: main optional: false - name: llvm-openmp - version: 21.1.3 + version: 21.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-21.1.3-hfa2b4ca_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/llvm-openmp-21.1.4-hfa2b4ca_0.conda hash: - md5: b1dd38bdf96540a6dedf0d196108c9a1 - sha256: 54826ea90c80ca04640b0fc1a0b3aabfd0f4e60e03c270b2a919a3655f21bc78 + md5: 5d56fdf8c9dc4c385704317e6743fca4 + sha256: 397d1874330592e57c6378a83dff194c6d1875cab44a41f9fdee8c3fe20bbe6b category: main optional: false - name: locket @@ -4852,10 +4819,10 @@ package: dependencies: nbconvert-core: ==7.16.6 nbconvert-pandoc: ==7.16.6 - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hb482800_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hc388f54_1.conda hash: - md5: aa90ea40c80d4bd3da35cb17ed668f22 - sha256: 5480b7e05bf3079fcb7357a5a15a96c3a1649cc1371d0c468c806898a7e53088 + md5: 0b26dff819ba9cfb0f6ff9c8b6a53c19 + sha256: e151c45e9ad2b0368fe64f51b6c857873681df27da3c408a811e85551e129d0e category: dev optional: true - name: nbconvert @@ -4865,10 +4832,10 @@ package: dependencies: nbconvert-core: ==7.16.6 nbconvert-pandoc: ==7.16.6 - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hb482800_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-7.16.6-hc388f54_1.conda hash: - md5: aa90ea40c80d4bd3da35cb17ed668f22 - sha256: 5480b7e05bf3079fcb7357a5a15a96c3a1649cc1371d0c468c806898a7e53088 + md5: 0b26dff819ba9cfb0f6ff9c8b6a53c19 + sha256: e151c45e9ad2b0368fe64f51b6c857873681df27da3c408a811e85551e129d0e category: dev optional: true - name: nbconvert-core @@ -4890,12 +4857,12 @@ package: packaging: '' pandocfilters: '>=1.4.1' pygments: '>=2.4.1' - python: '>=3.9' + python: '>=3.10' traitlets: '>=5.1' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyh29332c3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda hash: - md5: d24beda1d30748afcc87c429454ece1b - sha256: dcccb07c5a1acb7dc8be94330e62d54754c0e9c9cb2bb6865c8e3cfe44cf5a58 + md5: cfc86ccc3b1de35d36ccaae4c50391f5 + sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f category: dev optional: true - name: nbconvert-core @@ -4917,12 +4884,12 @@ package: packaging: '' pandocfilters: '>=1.4.1' pygments: '>=2.4.1' - python: '>=3.9' + python: '>=3.10' traitlets: '>=5.1' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyh29332c3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda hash: - md5: d24beda1d30748afcc87c429454ece1b - sha256: dcccb07c5a1acb7dc8be94330e62d54754c0e9c9cb2bb6865c8e3cfe44cf5a58 + md5: cfc86ccc3b1de35d36ccaae4c50391f5 + sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f category: dev optional: true - name: nbconvert-pandoc @@ -4932,10 +4899,10 @@ package: dependencies: nbconvert-core: ==7.16.6 pandoc: '' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-hed9df3c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-h7d6f222_1.conda hash: - md5: 5b0afb6c52e74a7eca2cf809a874acf4 - sha256: 1e8923f1557c2ddb7bba915033cfaf8b8c1b7462c745172458102c11caee1002 + md5: 32b4a67e7fde3b22287b65838c8ad01b + sha256: 1eaf769838863544a0f2d2fb05acba1211a764b64234b53b2da836015d661150 category: dev optional: true - name: nbconvert-pandoc @@ -4945,10 +4912,10 @@ package: dependencies: nbconvert-core: ==7.16.6 pandoc: '' - url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-hed9df3c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/nbconvert-pandoc-7.16.6-h7d6f222_1.conda hash: - md5: 5b0afb6c52e74a7eca2cf809a874acf4 - sha256: 1e8923f1557c2ddb7bba915033cfaf8b8c1b7462c745172458102c11caee1002 + md5: 32b4a67e7fde3b22287b65838c8ad01b + sha256: 1eaf769838863544a0f2d2fb05acba1211a764b64234b53b2da836015d661150 category: dev optional: true - name: nbformat @@ -5309,25 +5276,25 @@ package: category: main optional: false - name: pandoc - version: 3.8.2 + version: 3.8.2.1 manager: conda platform: linux-64 dependencies: {} - url: https://repo.prefix.dev/conda-forge/linux-64/pandoc-3.8.2-ha770c72_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pandoc-3.8.2.1-ha770c72_0.conda hash: - md5: 4c9317a85d1c233f490545392e895118 - sha256: ae3760e865327aaf95df025ccea9ddc1d80ab9f70c5d2478bbfbf324b8eb4e7d + md5: 47432e6a6fb5d9697564185e1907138a + sha256: 6b92e15cbc84ce4a0171ca0a9b9f483888a9065b17302d1503c0cacfcf8abd56 category: dev optional: true - name: pandoc - version: 3.8.2 + version: 3.8.2.1 manager: conda platform: win-64 dependencies: {} - url: https://repo.prefix.dev/conda-forge/win-64/pandoc-3.8.2-h57928b3_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/pandoc-3.8.2.1-h57928b3_0.conda hash: - md5: 88a11dca037752f036fafb414dd8e0b0 - sha256: ff55de733e42d44f10372f1707e1579bdc56edb6e8b72ab80e6306d9073299b1 + md5: 69c8325067e9ff3bab5715d673f99636 + sha256: e39ce8d67c6cb925cd148c730a1335c56075fa4ff6e902c3d1b7ad04c9078832 category: dev optional: true - name: pandocfilters @@ -5618,7 +5585,7 @@ package: category: dev optional: true - name: psutil - version: 7.1.0 + version: 7.1.1 manager: conda platform: linux-64 dependencies: @@ -5626,14 +5593,14 @@ package: libgcc: '>=14' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* - url: https://repo.prefix.dev/conda-forge/linux-64/psutil-7.1.0-py312h4c3975b_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/psutil-7.1.1-py312h4c3975b_0.conda hash: - md5: d99ab14339ac25676f1751b76b26c9b2 - sha256: 15484f43cf8a5c08b073a28e9789bc76abaf5ef328148d00ad0c1f05079a9455 + md5: 8713607fa1730cbd870fed86a3230926 + sha256: 92fe5c84e6892262e2dfb2a1f90516eadf887b469805509b547c0575e2811901 category: main optional: false - name: psutil - version: 7.1.0 + version: 7.1.1 manager: conda platform: win-64 dependencies: @@ -5642,10 +5609,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/psutil-7.1.0-py312he06e257_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/psutil-7.1.1-py312he06e257_0.conda hash: - md5: 80a83144acaf87ec0d1f102ebfda59ca - sha256: 102855bb05281da1373a10c1dee3f1fec1246b4b9a8f04ae82f9e120ecdf700a + md5: 63a0c1ac90bff8fd180d1d541c46f73f + sha256: 30c5d43f57ab8e55269ffdf8473ffb87290827cdbadf0ab827f777027c8ecf6b category: main optional: false - name: pthread-stubs @@ -5800,41 +5767,41 @@ package: category: main optional: false - name: pydantic - version: 2.12.1 + version: 2.12.3 manager: conda platform: linux-64 dependencies: annotated-types: '>=0.6.0' - pydantic-core: 2.41.3 + pydantic-core: 2.41.4 python: '>=3.10' typing-extensions: '>=4.6.1' typing-inspection: '>=0.4.2' typing_extensions: '>=4.14.1' - url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.1-pyh3cfb1c2_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.3-pyh3cfb1c2_0.conda hash: - md5: 475c8814c9d3a0e4fe7f6ed2abb2cf83 - sha256: 35a7b793da55f28d3192f597623cf0ebf9284c864569a83809745d778fa4d622 + md5: 2cb5d62fdf68deb0263663598feb9fc5 + sha256: 6a940747e8445653224dcff95fadf1060c66b9e544fdb0ed469b70a98c3aee7e category: main optional: false - name: pydantic - version: 2.12.1 + version: 2.12.3 manager: conda platform: win-64 dependencies: annotated-types: '>=0.6.0' - pydantic-core: 2.41.3 + pydantic-core: 2.41.4 python: '>=3.10' typing-extensions: '>=4.6.1' typing-inspection: '>=0.4.2' typing_extensions: '>=4.14.1' - url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.1-pyh3cfb1c2_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.12.3-pyh3cfb1c2_0.conda hash: - md5: 475c8814c9d3a0e4fe7f6ed2abb2cf83 - sha256: 35a7b793da55f28d3192f597623cf0ebf9284c864569a83809745d778fa4d622 + md5: 2cb5d62fdf68deb0263663598feb9fc5 + sha256: 6a940747e8445653224dcff95fadf1060c66b9e544fdb0ed469b70a98c3aee7e category: main optional: false - name: pydantic-core - version: 2.41.3 + version: 2.41.4 manager: conda platform: linux-64 dependencies: @@ -5843,14 +5810,14 @@ package: python: '' python_abi: 3.12.* typing-extensions: '>=4.6.0,!=4.7.0' - url: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.41.3-py312h868fb18_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.41.4-py312h868fb18_0.conda hash: - md5: ba8c3615d9719f74c031e788537130ac - sha256: ea5ef864811b1d172ed01e00a3ccbf3e280d2fa030b68ea5a1353f3e9797acc8 + md5: e0767518fa45df8b484421a405f764c6 + sha256: c0bcd8b16188ecb0b9148701d166888a91103e898c2401a45b290e8483d5bbca category: main optional: false - name: pydantic-core - version: 2.41.3 + version: 2.41.4 manager: conda platform: win-64 dependencies: @@ -5860,10 +5827,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/pydantic-core-2.41.3-py312hdabe01f_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/pydantic-core-2.41.4-py312hdabe01f_0.conda hash: - md5: 3727b52c96d7e862b3500d219af8d881 - sha256: 9008590ce72f1e6d404834a02e95d45a43391ee9ee6f61d1ba56b9e88a9e250a + md5: fa35bb0b9c3dca0da27c46ed61a5dfd4 + sha256: ee389c910c4fb3329c0dc36f3d68212c759c6082e7fa03d3d2ca85c2899b0a6b category: main optional: false - name: pydata-sphinx-theme @@ -5912,16 +5879,16 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - mkl: '>=2024.1.0,<2025.0a0' - numpy: '>=1.19,<3' + libgcc: '>=14' + mkl: '>=2024.2.2,<2025.0a0' + numpy: '>=1.23,<3' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* scipy: '>=0.13' - url: https://repo.prefix.dev/conda-forge/linux-64/pydiso-0.1.2-py312h772f2df_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/pydiso-0.1.2-py312h686354e_1.conda hash: - md5: f0af4a616cc1358e6ad9477ddcbbaea3 - sha256: 158bd81f3ddd52e613ec54d0c680d6d0f7c87a461ee75bd26a7fc07890cf40f0 + md5: ac5a34ad25849b784c2213dd332d94b8 + sha256: 6c4510674cd3d12edfceeb0801c253c5b17a9d7e5f74409099406519522c6c45 category: main optional: false - name: pydiso @@ -5930,17 +5897,17 @@ package: platform: win-64 dependencies: mkl: '>=2024.2.2,<2025.0a0' - numpy: '>=1.19,<3' + numpy: '>=1.23,<3' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* scipy: '>=0.13' ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/pydiso-0.1.2-py312h01acb21_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/pydiso-0.1.2-py312h3fe0e52_1.conda hash: - md5: 14fd07b07c4819cd08beed7fbda91712 - sha256: 4b8daf7934b7f3458bd0e3faeb5cd378fb3f5dc19840f71c7f23fe6a0b7c0849 + md5: 29692d846496aabfc7be5c80f07a6279 + sha256: 6c64a225c684f5b1b7239caa52a364b100c83c55bc9b7977a12da78196575a8a category: main optional: false - name: pygments @@ -5968,7 +5935,7 @@ package: category: dev optional: true - name: pylint - version: 4.0.0 + version: 4.0.2 manager: conda platform: linux-64 dependencies: @@ -5981,14 +5948,14 @@ package: python: '>=3.10' tomli: '>=1.1.0' tomlkit: '>=0.10.1' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.0-pyhcf101f3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.2-pyhcf101f3_0.conda hash: - md5: f8e2acdbff0aec11d3def36760615f07 - sha256: 0a3de6ab1c2d7648ad3e22ea426b369c655d32a5294f005a66630413f93b5703 + md5: 0259facf4dbf67ad35ec517b6ffd6982 + sha256: 594bdf44a55c3bcf79ec6eb55d86571cbe3bee9f5216ede0721708c184da4ed8 category: dev optional: true - name: pylint - version: 4.0.0 + version: 4.0.2 manager: conda platform: win-64 dependencies: @@ -6001,10 +5968,10 @@ package: python: '>=3.10' tomli: '>=1.1.0' tomlkit: '>=0.10.1' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.0-pyhcf101f3_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-4.0.2-pyhcf101f3_0.conda hash: - md5: f8e2acdbff0aec11d3def36760615f07 - sha256: 0a3de6ab1c2d7648ad3e22ea426b369c655d32a5294f005a66630413f93b5703 + md5: 0259facf4dbf67ad35ec517b6ffd6982 + sha256: 594bdf44a55c3bcf79ec6eb55d86571cbe3bee9f5216ede0721708c184da4ed8 category: dev optional: true - name: pymatsolver @@ -7806,27 +7773,27 @@ package: category: dev optional: true - name: toolz - version: 1.0.0 + version: 1.1.0 manager: conda platform: linux-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda hash: - md5: 40d0ed782a8aaa16ef248e68c06c168d - sha256: eda38f423c33c2eaeca49ed946a8d3bf466cc3364970e083a65eb2fd85258d87 + md5: c07a6153f8306e45794774cf9b13bd32 + sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 category: main optional: false - name: toolz - version: 1.0.0 + version: 1.1.0 manager: conda platform: win-64 dependencies: - python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_1.conda + python: '>=3.10' + url: https://repo.prefix.dev/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda hash: - md5: 40d0ed782a8aaa16ef248e68c06c168d - sha256: eda38f423c33c2eaeca49ed946a8d3bf466cc3364970e083a65eb2fd85258d87 + md5: c07a6153f8306e45794774cf9b13bd32 + sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 category: main optional: false - name: tornado @@ -7936,30 +7903,6 @@ package: sha256: 021110c37eca2f0fca85ba6ac4576c509d23079758f63942e2f9a6954282f2ce category: main optional: false -- name: types-python-dateutil - version: 2.9.0.20251008 - manager: conda - platform: linux-64 - dependencies: - python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20251008-pyhd8ed1ab_0.conda - hash: - md5: 6835489fc689d7ca90cb7bffb01eaac1 - sha256: ded9ff7c9e10daa895cfbcad95d400a24b8cb9c47701171a453510a296021073 - category: dev - optional: true -- name: types-python-dateutil - version: 2.9.0.20251008 - manager: conda - platform: win-64 - dependencies: - python: '>=3.10' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20251008-pyhd8ed1ab_0.conda - hash: - md5: 6835489fc689d7ca90cb7bffb01eaac1 - sha256: ded9ff7c9e10daa895cfbcad95d400a24b8cb9c47701171a453510a296021073 - category: dev - optional: true - name: typing-extensions version: 4.15.0 manager: conda @@ -8727,7 +8670,7 @@ package: manager: pip platform: linux-64 dependencies: - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' @@ -8744,7 +8687,7 @@ package: manager: pip platform: win-64 dependencies: - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' @@ -8757,7 +8700,7 @@ package: category: main optional: false - name: geoh5py - version: 0.12.0a2.dev149+b7e7ecdb + version: 0.12.0a2.dev192+ad308257 manager: pip platform: linux-64 dependencies: @@ -8765,16 +8708,16 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 hash: - sha256: b7e7ecdb90fb6daa40c9d7348380542fd1131994 + sha256: ad308257fed905370b41557f86dea6ea85fa6fb3 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 category: main optional: false - name: geoh5py - version: 0.12.0a2.dev149+b7e7ecdb + version: 0.12.0a2.dev192+ad308257 manager: pip platform: win-64 dependencies: @@ -8782,54 +8725,54 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 hash: - sha256: b7e7ecdb90fb6daa40c9d7348380542fd1131994 + sha256: ad308257fed905370b41557f86dea6ea85fa6fb3 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@b7e7ecdb90fb6daa40c9d7348380542fd1131994 + url: git+https://github.com/MiraGeoscience/geoh5py.git@ad308257fed905370b41557f86dea6ea85fa6fb3 category: main optional: false - name: grid-apps - version: 0.1.0a1.dev64+ed69183 + version: 0.1.0a1.dev66+b335205 manager: pip platform: linux-64 dependencies: discretize: '>=0.11.0,<0.12.dev' geoapps-utils: 0.6.0a1.dev108+ed5f5cf - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd hash: - sha256: ed6918388d6fc4062f72e471e415a1a22cc15d0d + sha256: b3352058d585613d34ff3042675a79a3b3e4bfbd source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd category: main optional: false - name: grid-apps - version: 0.1.0a1.dev64+ed69183 + version: 0.1.0a1.dev66+b335205 manager: pip platform: win-64 dependencies: discretize: '>=0.11.0,<0.12.dev' geoapps-utils: 0.6.0a1.dev108+ed5f5cf - geoh5py: 0.12.0a2.dev149+b7e7ecdb + geoh5py: 0.12.0a2.dev192+ad308257 numpy: '>=1.26.0,<1.27.0' pydantic: '>=2.5.2,<3.0.0' scipy: '>=1.14.0,<1.15.0' - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd hash: - sha256: ed6918388d6fc4062f72e471e415a1a22cc15d0d + sha256: b3352058d585613d34ff3042675a79a3b3e4bfbd source: type: url - url: git+https://github.com/MiraGeoscience/grid-apps.git@ed6918388d6fc4062f72e471e415a1a22cc15d0d + url: git+https://github.com/MiraGeoscience/grid-apps.git@b3352058d585613d34ff3042675a79a3b3e4bfbd category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev121+mira.g7564c0999 + version: 0.23.0.1.post2.dev125+mira.g489775b59 manager: pip platform: linux-64 dependencies: @@ -8841,16 +8784,16 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 hash: - sha256: 7564c0999208f9ff8f9e3733f5ffd22da9b333ee + sha256: 489775b595d5abce81d49b52bfefcecc3181c5c5 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev121+mira.g7564c0999 + version: 0.23.0.1.post2.dev125+mira.g489775b59 manager: pip platform: win-64 dependencies: @@ -8862,11 +8805,11 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 hash: - sha256: 7564c0999208f9ff8f9e3733f5ffd22da9b333ee + sha256: 489775b595d5abce81d49b52bfefcecc3181c5c5 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@7564c0999208f9ff8f9e3733f5ffd22da9b333ee + url: git+https://github.com/MiraGeoscience/simpeg.git@489775b595d5abce81d49b52bfefcecc3181c5c5 category: main optional: false From 49da1f80002ca53874d2c1ed705790ad2e85f3aa Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 22 Oct 2025 13:39:23 -0700 Subject: [PATCH 23/26] Switch to repeat --- .../components/factories/survey_factory.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/simpeg_drivers/components/factories/survey_factory.py b/simpeg_drivers/components/factories/survey_factory.py index 0bc50ea8..e6caa6cd 100644 --- a/simpeg_drivers/components/factories/survey_factory.py +++ b/simpeg_drivers/components/factories/survey_factory.py @@ -350,17 +350,17 @@ def _fem_arguments(self, data=None): sources.append(tx) source_ids = ( - np.kron( - np.arange(len(receiver_groups)), np.ones(len(receivers)) - ).astype(int) + np.repeat(np.arange(len(receiver_groups)), len(receivers)).astype(int) + tx_count ) ordering.append( - np.c_[ - np.ones(block_ordering.shape[0]) * freq_id, - block_ordering, - source_ids, # Source IDs - ] + np.column_stack( + [ + np.ones(block_ordering.shape[0]) * freq_id, + block_ordering, + source_ids, # Source IDs + ] + ) ) tx_count = source_ids.max() + 1 From 23f9cb8572e18f43d8aa94c67f455df445428925 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 22 Oct 2025 13:41:00 -0700 Subject: [PATCH 24/26] More typing --- simpeg_drivers/utils/nested.py | 41 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index 41047770..cfbcbd16 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -26,6 +26,7 @@ from scipy.spatial.distance import cdist from simpeg import data, data_misfit, maps, meta, objective_function from simpeg.dask.objective_function import DistributedComboMisfits +from simpeg.data_misfit import L2DataMisfit from simpeg.electromagnetics.base_1d import BaseEM1DSimulation from simpeg.electromagnetics.frequency_domain.simulation import BaseFDEMSimulation from simpeg.electromagnetics.frequency_domain.sources import ( @@ -119,14 +120,14 @@ def create_mesh( def create_misfit( - local_indices, - simulation_file, - channel, - tile_count, - padding_cells, - forward_only, - shared_indices=None, -) -> objective_function.ComboObjectiveFunction: + local_indices: Iterable[int], + simulation_file: str | Path, + channel: int | None, + tile_count: int, + padding_cells: int, + forward_only: bool, + shared_indices: list[int] | None = None, +) -> objective_function.ComboObjectiveFunction | L2DataMisfit: """ Create a list of local misfits based on the local indices. @@ -134,7 +135,7 @@ def create_misfit( the same mesh. :param local_indices: Indices of the receiver locations belonging to the tile. - :param simulation_path: Path to the SimPEG simulation object pickled to file. + :param simulation_file: Path to the SimPEG simulation object pickled to file. :param channel: Channel of the simulation, for frequency systems only. :param tile_count: Current tile ID, used to name the file on disk and for sampling of topography for 1D simulations. @@ -172,13 +173,13 @@ def create_misfit( def _misfit_from_indices( - indices, - simulation, - channel, - tile_count, - padding_cells, - forward_only, - shared_indices=None, + indices: Iterable[int] | int, + simulation: BaseSimulation, + channel: int | None, + tile_count: int, + padding_cells: int, + forward_only: bool, + shared_indices: list[int] | None = None, ): """ Create a local misfit based on the input indices. @@ -215,7 +216,7 @@ def _misfit_from_indices( def create_simulation( simulation: BaseSimulation, local_mesh: TreeMesh | TensorMesh | None, - indices: np.ndarray | int, + indices: Iterable[int] | int, *, channel: int | None = None, tile_id: int | None = None, @@ -262,9 +263,9 @@ def create_simulation( simulation.active_cells, local_mesh, enforce_active=True, - components=3 - if getattr(simulation, "model_type", None) == "vector" - else 1, + components=( + 3 if getattr(simulation, "model_type", None) == "vector" else 1 + ), ) actives = mapping.local_active # For DCIP-2D From 72b0f1334ded4c8a8812bc2e5472bb5bd47c13f2 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 22 Oct 2025 13:44:05 -0700 Subject: [PATCH 25/26] Update typing on channel --- simpeg_drivers/utils/nested.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/simpeg_drivers/utils/nested.py b/simpeg_drivers/utils/nested.py index cfbcbd16..6ff3a325 100644 --- a/simpeg_drivers/utils/nested.py +++ b/simpeg_drivers/utils/nested.py @@ -122,7 +122,7 @@ def create_mesh( def create_misfit( local_indices: Iterable[int], simulation_file: str | Path, - channel: int | None, + channel: float | None, tile_count: int, padding_cells: int, forward_only: bool, @@ -175,7 +175,7 @@ def create_misfit( def _misfit_from_indices( indices: Iterable[int] | int, simulation: BaseSimulation, - channel: int | None, + channel: float | None, tile_count: int, padding_cells: int, forward_only: bool, @@ -218,7 +218,7 @@ def create_simulation( local_mesh: TreeMesh | TensorMesh | None, indices: Iterable[int] | int, *, - channel: int | None = None, + channel: float | None = None, tile_id: int | None = None, padding_cells=100, ): @@ -336,7 +336,9 @@ def create_simulation( return local_sim, mapping -def create_survey(survey, indices, channel=None): +def create_survey( + survey: BaseSurvey, indices: Iterable[int] | int, channel: float | None = None +): """ Extract source and receivers belonging to the indices. @@ -408,7 +410,7 @@ def create_survey(survey, indices, channel=None): def slice_from_ordering( survey: BaseSurvey, receiver_indices: np.ndarray, - channel: int | None = None, + channel: float | None = None, ): """ Create an ordering array from the survey and slice indices. From 503ba6b975ea38935fc708aaf832e1d7994ccd51 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 23 Oct 2025 09:52:22 -0700 Subject: [PATCH 26/26] Try sending smaller chunks of simulations to workers --- simpeg_drivers/components/factories/misfit_factory.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/simpeg_drivers/components/factories/misfit_factory.py b/simpeg_drivers/components/factories/misfit_factory.py index 33faa0dd..02a7d988 100644 --- a/simpeg_drivers/components/factories/misfit_factory.py +++ b/simpeg_drivers/components/factories/misfit_factory.py @@ -102,8 +102,9 @@ def assemble_arguments( # pylint: disable=arguments-differ tile_count += 1 - if use_futures: - wait(misfits) + if use_futures and tile_count % len(self.workers) == 0: + wait(misfits) + os.unlink(temp_file.name) local_orderings = self.collect_ordering_from_misfits(misfits)