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 ab2d4eaf5..626bd1dda 100644 --- a/environments/py-3.10-linux-64-dev.conda.lock.yml +++ b/environments/py-3.10-linux-64-dev.conda.lock.yml @@ -48,7 +48,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_0 - comm=0.2.2=pyhd8ed1ab_0 - contourpy=1.2.1=py310hd41b1e2_0 - - coverage=7.5.2=py310hc51659f_0 + - coverage=7.5.3=py310hc51659f_0 - cycler=0.12.1=pyhd8ed1ab_0 - cytoolz=0.12.3=py310h2372a71_0 - dash=2.12.1=pyhd8ed1ab_0 @@ -288,7 +288,7 @@ dependencies: - pycparser=2.22=pyhd8ed1ab_0 - pydantic=2.5.3=pyhd8ed1ab_0 - pydantic-core=2.14.6=py310hcb5633a_1 - - pydata-sphinx-theme=0.15.2=pyhd8ed1ab_0 + - pydata-sphinx-theme=0.15.3=pyhd8ed1ab_0 - pydiso=0.0.3=py310h1dd1467_4 - pygments=2.18.0=pyhd8ed1ab_0 - pylint=3.2.2=pyhd8ed1ab_0 @@ -318,7 +318,7 @@ dependencies: - readline=8.2=h8228510_1 - readthedocs-sphinx-ext=2.2.5=pyhd8ed1ab_0 - referencing=0.35.1=pyhd8ed1ab_0 - - requests=2.32.2=pyhd8ed1ab_0 + - requests=2.32.3=pyhd8ed1ab_0 - retrying=1.3.3=py_2 - rpds-py=0.18.1=py310he421c4c_0 - scikit-image=0.20.0=py310h9b08913_1 diff --git a/environments/py-3.10-linux-64.conda.lock.yml b/environments/py-3.10-linux-64.conda.lock.yml index 2783e73ca..419b39375 100644 --- a/environments/py-3.10-linux-64.conda.lock.yml +++ b/environments/py-3.10-linux-64.conda.lock.yml @@ -285,7 +285,7 @@ dependencies: - re2=2023.09.01=h7f4b329_1 - readline=8.2=h8228510_1 - referencing=0.35.1=pyhd8ed1ab_0 - - requests=2.32.2=pyhd8ed1ab_0 + - requests=2.32.3=pyhd8ed1ab_0 - retrying=1.3.3=py_2 - rpds-py=0.18.1=py310he421c4c_0 - scikit-image=0.20.0=py310h9b08913_1 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 5a507561f..78979bd61 100644 --- a/environments/py-3.10-win-64-dev.conda.lock.yml +++ b/environments/py-3.10-win-64-dev.conda.lock.yml @@ -43,7 +43,7 @@ dependencies: - colorama=0.4.6=pyhd8ed1ab_0 - comm=0.2.2=pyhd8ed1ab_0 - contourpy=1.2.1=py310h232114e_0 - - coverage=7.5.2=py310ha8f682b_0 + - coverage=7.5.3=py310ha8f682b_0 - cycler=0.12.1=pyhd8ed1ab_0 - cytoolz=0.12.3=py310h8d17308_0 - dash=2.12.1=pyhd8ed1ab_0 @@ -252,7 +252,7 @@ dependencies: - pycparser=2.22=pyhd8ed1ab_0 - pydantic=2.5.3=pyhd8ed1ab_0 - pydantic-core=2.14.6=py310h87d50f1_1 - - pydata-sphinx-theme=0.15.2=pyhd8ed1ab_0 + - pydata-sphinx-theme=0.15.3=pyhd8ed1ab_0 - pydiso=0.0.3=py310h847dae0_4 - pygments=2.18.0=pyhd8ed1ab_0 - pylint=3.2.2=pyhd8ed1ab_0 @@ -283,7 +283,7 @@ dependencies: - re2=2023.09.01=hd3b24a8_1 - readthedocs-sphinx-ext=2.2.5=pyhd8ed1ab_0 - referencing=0.35.1=pyhd8ed1ab_0 - - requests=2.32.2=pyhd8ed1ab_0 + - requests=2.32.3=pyhd8ed1ab_0 - retrying=1.3.3=py_2 - rpds-py=0.18.1=py310hc226416_0 - scikit-image=0.20.0=py310h1c4a608_1 diff --git a/environments/py-3.10-win-64.conda.lock.yml b/environments/py-3.10-win-64.conda.lock.yml index f6ef26725..469788848 100644 --- a/environments/py-3.10-win-64.conda.lock.yml +++ b/environments/py-3.10-win-64.conda.lock.yml @@ -250,7 +250,7 @@ dependencies: - rav1e=0.6.6=h975169c_2 - re2=2023.09.01=hd3b24a8_1 - referencing=0.35.1=pyhd8ed1ab_0 - - requests=2.32.2=pyhd8ed1ab_0 + - requests=2.32.3=pyhd8ed1ab_0 - retrying=1.3.3=py_2 - rpds-py=0.18.1=py310hc226416_0 - scikit-image=0.20.0=py310h1c4a608_1 diff --git a/geoapps/base/application.py b/geoapps/base/application.py index 55702433e..232fb2d84 100644 --- a/geoapps/base/application.py +++ b/geoapps/base/application.py @@ -22,10 +22,11 @@ dict_mapper, entity2uuid, fetch_active_workspace, + list2str, str2uuid, ) from geoh5py.ui_json import InputFile -from geoh5py.ui_json.utils import list2str, monitored_directory_copy +from geoh5py.ui_json.utils import monitored_directory_copy from geoh5py.workspace import Workspace from traitlets import TraitError diff --git a/geoapps/edge_detection/application.py b/geoapps/edge_detection/application.py index d4aca14d0..19e8131e6 100644 --- a/geoapps/edge_detection/application.py +++ b/geoapps/edge_detection/application.py @@ -14,8 +14,8 @@ from time import time from uuid import UUID -from curve_apps.edge_detection.driver import EdgeDetectionDriver -from curve_apps.edge_detection.params import Parameters +from curve_apps.edges.driver import EdgesDriver +from curve_apps.edges.params import EdgeParameters from geoh5py.objects import Grid2D, ObjectBase from geoh5py.shared.utils import fetch_active_workspace from geoh5py.ui_json import InputFile @@ -76,7 +76,7 @@ class EdgeDetectionApp(PlotSelection2D): """ _object_types = (Grid2D,) - _param_class = Parameters + _param_class = EdgeParameters def __init__(self, ui_json=None, plot_result=True, geoh5: str | None = None): @@ -166,7 +166,7 @@ def params(self): @params.setter def params(self, val): - if not isinstance(val, Parameters): + if not isinstance(val, EdgeParameters): raise TypeError("Input parameters must be of type Parameters.") self._params = val @@ -241,7 +241,8 @@ def window_size(self): def is_computational(self, attr): """True if app attribute is required for the driver (belongs in params).""" out = isinstance(getattr(self, attr), Widget) - fields = list(self._param_class.model_construct().input_file.data) + ifile = InputFile.read_ui_json(EdgeParameters.default_ui_json, validate=False) + fields = list(ifile.data) return out & (attr.lstrip("_") in fields) def trigger_click(self, _): @@ -263,11 +264,11 @@ def trigger_click(self, _): if self.live_link.value: param_dict["monitoring_directory"] = self.monitoring_directory - new_params = Parameters.build(param_dict) + new_params = EdgeParameters.build(param_dict) new_params.input_file.write_ui_json( name=temp_geoh5.replace(".geoh5", ".ui.json") ) - driver = EdgeDetectionDriver(new_params) + driver = EdgesDriver(new_params) driver.run() if self.live_link.value: @@ -284,24 +285,22 @@ def compute_trigger(self, _): if param_dict.get("objects", None) is None: return - param_dict["geoh5"] = self.workspace - new_params = Parameters.build(param_dict) - self.refresh.value = False - canny_grid = EdgeDetectionDriver.get_canny_edges( - new_params.source.objects, - new_params.source.data, - new_params.detection, - ) - ( - vertices, - cells, - ) = EdgeDetectionDriver.get_edges( - new_params.source.objects, - canny_grid, - new_params.detection, - ) - segments = [vertices[c, :2] for c in cells] - self.collections = [ - collections.LineCollection(segments, colors="k", linewidths=2) - ] - self.refresh.value = True + with fetch_active_workspace(self.workspace, mode="r+") as ws: + param_dict["geoh5"] = ws + new_params = EdgeParameters.build(param_dict) + self.refresh.value = False + canny_grid = EdgesDriver.get_canny_edges( + new_params.source.objects, + new_params.source.data, + new_params.detection, + ) + vertices, cells = EdgesDriver.get_edges( + new_params.source.objects, + canny_grid, + new_params.detection, + ) + segments = [vertices[c, :2] for c in cells] + self.collections = [ + collections.LineCollection(segments, colors="k", linewidths=2) + ] + self.refresh.value = True diff --git a/py-3.10.conda-lock.yml b/py-3.10.conda-lock.yml index 23da1f5f7..08349810a 100644 --- a/py-3.10.conda-lock.yml +++ b/py-3.10.conda-lock.yml @@ -1156,7 +1156,7 @@ package: category: main optional: false - name: coverage - version: 7.5.2 + version: 7.5.3 manager: conda platform: linux-64 dependencies: @@ -1164,14 +1164,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* tomli: '' - url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.2-py310hc51659f_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.3-py310hc51659f_0.conda hash: - md5: 69ae95a9c37718f2b5fd675876a58042 - sha256: bdbd1aa7c571687fea64b6c621031c00db5ea02ff56a9057619f7bbba8e01a76 + md5: 4be0e55c0f724d339be3d4dc9dfc5752 + sha256: d14fd44ca7f9ae180e6a9a565d39ffe093d0c9eacda6b13c85cb26ec6ef8687e category: dev optional: true - name: coverage - version: 7.5.2 + version: 7.5.3 manager: conda platform: win-64 dependencies: @@ -1181,10 +1181,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' - url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.2-py310ha8f682b_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.3-py310ha8f682b_0.conda hash: - md5: 3a78e07b95a51bac0e9ee2d30ccf688c - sha256: 5a58d0a4d52bea86f2dc6d738d8daf67abb992b2e4fe98050df1e6a7e85aefc0 + md5: 0609217d7e0efa5d9095fef96081cf1e + sha256: 1322bb9f73ee730beabcdc10538dcaec2f6015d5c0df8e878de5d7c10ce310ad category: dev optional: true - name: cycler @@ -2805,7 +2805,7 @@ package: libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' libwebp-base: '>=1.3.2,<2.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' libzopfli: '>=1.0.3,<1.1.0a0' lz4-c: '>=1.9.3,<1.10.0a0' numpy: '>=1.22.4,<2.0a0' @@ -2845,7 +2845,7 @@ package: libpng: '>=1.6.43,<1.7.0a0' libtiff: '>=4.6.0,<4.7.0a0' libwebp-base: '>=1.3.2,<2.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' libzopfli: '>=1.0.3,<1.1.0a0' lz4-c: '>=1.9.3,<1.10.0a0' numpy: '>=1.22.4,<2.0a0' @@ -4257,7 +4257,7 @@ package: dependencies: libclang13: 15.0.7 libxml2: '>=2.12.6,<3.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' @@ -4287,7 +4287,7 @@ package: manager: conda platform: win-64 dependencies: - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' @@ -4807,7 +4807,7 @@ package: libprotobuf: '>=4.25.1,<4.25.2.0a0' libre2-11: '>=2023.6.2,<2024.0a0' libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' openssl: '>=3.2.1,<4.0a0' re2: '' url: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.60.1-h74775cd_0.conda @@ -4825,7 +4825,7 @@ package: libabseil: '>=20230802.1,<20230803.0a0' libprotobuf: '>=4.25.1,<4.25.2.0a0' libre2-11: '>=2023.6.2,<2024.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' openssl: '>=3.2.1,<4.0a0' re2: '' ucrt: '>=10.0.20348.0' @@ -5077,7 +5077,7 @@ package: libstdcxx-ng: '>=12' libxml2: '>=2.12.2,<3.0.0a0' libzip: '>=1.10.1,<2.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' openssl: '>=3.2.0,<4.0a0' zlib: '' zstd: '>=1.5.5,<1.6.0a0' @@ -5100,7 +5100,7 @@ package: libcurl: '>=8.5.0,<9.0a0' libxml2: '>=2.12.2,<3.0.0a0' libzip: '>=1.10.1,<2.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' @@ -5121,7 +5121,7 @@ package: libev: '>=4.33,<5.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' openssl: '>=3.2.0,<4.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda hash: @@ -5184,7 +5184,7 @@ package: platform: linux-64 dependencies: libgcc-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda hash: md5: 009981dd9cfcaa4dbfa25ffaed86bcae @@ -5196,7 +5196,7 @@ package: manager: conda platform: win-64 dependencies: - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' @@ -5244,7 +5244,7 @@ package: libabseil: '>=20230802.1,<20230803.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.1-hf27288f_2.conda hash: md5: 47773f41e24c4d53ba8d0b76f2b69a8a @@ -5257,7 +5257,7 @@ package: platform: win-64 dependencies: libabseil: '>=20230802.1,<20230803.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' @@ -5420,7 +5420,7 @@ package: platform: linux-64 dependencies: libgcc-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.3-h2797004_0.conda hash: md5: b3316cbe90249da4f8e84cd66e1cc55b @@ -5889,7 +5889,7 @@ package: libgcc-ng: '>=12' libllvm14: '>=14.0.6,<14.1.0a0' libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* url: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.42.0-py310h1b8f574_1.conda @@ -5903,7 +5903,7 @@ package: manager: conda platform: win-64 dependencies: - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* ucrt: '>=10.0.20348.0' @@ -6255,7 +6255,7 @@ package: libgcc-ng: '>=12' libiconv: '>=1.17,<2.0a0' libstdcxx-ng: '>=12' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' openssl: '>=3.2.1,<4.0a0' xz: '>=5.2.6,<6.0a0' zstd: '>=1.5.5,<1.6.0a0' @@ -6271,7 +6271,7 @@ package: platform: win-64 dependencies: bzip2: '>=1.0.8,<2.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' @@ -6981,7 +6981,7 @@ package: libpng: '>=1.6.43,<1.7.0a0' libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda hash: md5: 7f2e286780f072ed750df46dc2631138 @@ -6995,7 +6995,7 @@ package: dependencies: libpng: '>=1.6.43,<1.7.0a0' libtiff: '>=4.6.0,<4.7.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ucrt: '>=10.0.20348.0' vc: '>=14.2,<15' vc14_runtime: '>=14.29.30139' @@ -8018,7 +8018,7 @@ package: category: main optional: false - name: pydata-sphinx-theme - version: 0.15.2 + version: 0.15.3 manager: conda platform: linux-64 dependencies: @@ -8030,20 +8030,20 @@ package: pygments: '>=2.7' python: '>=3.9' sphinx: '>=5.0' - typing-extensions: '' - url: https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.2-pyhd8ed1ab_0.conda + typing_extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.3-pyhd8ed1ab_0.conda hash: - md5: ce99859070b0e17ccc63234ca58f3ed8 - sha256: 7046e72770e549f8f22865be737f3f8d0f49f11a5894fe48ccf44611941dba5a + md5: 55e445f4fcb07f2471fb0e1102d36488 + sha256: dc62ab4cd50c52c497004d8726e97962f2ba691ab8c8fecf0ee965ffcca8bdf9 category: dev optional: true - name: pydata-sphinx-theme - version: 0.15.2 + version: 0.15.3 manager: conda platform: win-64 dependencies: packaging: '' - typing-extensions: '' + typing_extensions: '' beautifulsoup4: '' babel: '' accessible-pygments: '' @@ -8051,10 +8051,10 @@ package: pygments: '>=2.7' sphinx: '>=5.0' docutils: '!=0.17.0' - url: https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.3-pyhd8ed1ab_0.conda hash: - md5: ce99859070b0e17ccc63234ca58f3ed8 - sha256: 7046e72770e549f8f22865be737f3f8d0f49f11a5894fe48ccf44611941dba5a + md5: 55e445f4fcb07f2471fb0e1102d36488 + sha256: dc62ab4cd50c52c497004d8726e97962f2ba691ab8c8fecf0ee965ffcca8bdf9 category: dev optional: true - name: pydiso @@ -8505,7 +8505,7 @@ package: libsqlite: '>=3.45.2,<4.0a0' libuuid: '>=2.38.1,<3.0a0' libxcrypt: '>=4.4.36' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ncurses: '>=6.4.20240210,<7.0a0' openssl: '>=3.2.1,<4.0a0' readline: '>=8.2,<9.0a0' @@ -8527,7 +8527,7 @@ package: bzip2: '>=1.0.8,<2.0a0' libffi: '>=3.4,<4.0a0' libsqlite: '>=3.45.2,<4.0a0' - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' openssl: '>=3.2.1,<4.0a0' tk: '>=8.6.13,<8.7.0a0' tzdata: '' @@ -9069,35 +9069,35 @@ package: category: main optional: false - name: requests - version: 2.32.2 + version: 2.32.3 manager: conda platform: linux-64 dependencies: certifi: '>=2017.4.17' charset-normalizer: '>=2,<4' idna: '>=2.5,<4' - python: '>=3.7' + python: '>=3.8' urllib3: '>=1.21.1,<3' - url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda hash: - md5: e1643b34b19df8c028a4f00bf5df58a6 - sha256: 115b796fddc846bee6f47e3c57d04d12fa93a47a7a8ef639cefdc05203c1bf00 + md5: 5ede4753180c7a550a443c430dc8ab52 + sha256: 5845ffe82a6fa4d437a2eae1e32a1ad308d7ad349f61e337c0a890fe04c513cc category: main optional: false - name: requests - version: 2.32.2 + version: 2.32.3 manager: conda platform: win-64 dependencies: - python: '>=3.7' + python: '>=3.8' idna: '>=2.5,<4' certifi: '>=2017.4.17' charset-normalizer: '>=2,<4' urllib3: '>=1.21.1,<3' - url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda hash: - md5: e1643b34b19df8c028a4f00bf5df58a6 - sha256: 115b796fddc846bee6f47e3c57d04d12fa93a47a7a8ef639cefdc05203c1bf00 + md5: 5ede4753180c7a550a443c430dc8ab52 + sha256: 5845ffe82a6fa4d437a2eae1e32a1ad308d7ad349f61e337c0a890fe04c513cc category: main optional: false - name: retrying @@ -10100,7 +10100,7 @@ package: dependencies: libgcc-ng: '>=12' libsqlite: 3.45.3 - libzlib: '>=1.2.13,<1.3.0a0' + libzlib: '>=1.2.13,<2.0.0a0' ncurses: '>=6.4.20240210,<7.0a0' readline: '>=8.2,<9.0a0' url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.45.3-h2c6b66d_0.conda @@ -11827,6 +11827,7 @@ package: geoapps-utils: 0.4.0a1 geoh5py: 0.10.0a1 h5py: '>=3.2.1,<4.0.0' + matplotlib: '>=3.7.1,<3.8.0' numpy: '>=1.23.5,<1.24.0' pydantic: '>=2.5.2,<2.6.0' pywavelets: '>=1.4.1,<1.5.0' @@ -11850,6 +11851,7 @@ package: geoapps-utils: 0.4.0a1 geoh5py: 0.10.0a1 h5py: '>=3.2.1,<4.0.0' + matplotlib: '>=3.7.1,<3.8.0' numpy: '>=1.23.5,<1.24.0' pydantic: '>=2.5.2,<2.6.0' pywavelets: '>=1.4.1,<1.5.0'