diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index feedba5b74..c3c2a67a3b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -76,3 +76,11 @@ repos: - id: numpydoc-validation exclude: "^lib/iris/tests/|docs/gallery_code/" types: [file, python] + +- repo: local + hooks: + - id: check-attribute-comment + name: use triple quote docstring proceding attribute + types: [python] + entry: '#:' + language: pygrep diff --git a/benchmarks/benchmarks/generate_data/__init__.py b/benchmarks/benchmarks/generate_data/__init__.py index bb53e26b2f..31c39b749c 100644 --- a/benchmarks/benchmarks/generate_data/__init__.py +++ b/benchmarks/benchmarks/generate_data/__init__.py @@ -26,11 +26,12 @@ from iris._lazy_data import as_concrete_data from iris.fileformats import netcdf -#: Python executable used by :func:`run_function_elsewhere`, set via env -#: variable of same name. Must be path of Python within an environment that -#: includes Iris (including dependencies and test modules) and Mule. try: DATA_GEN_PYTHON = environ["DATA_GEN_PYTHON"] + """Python executable used by :func:`run_function_elsewhere`, set via env variable of same name. + Must be path of Python within an environment that + includes Iris (including dependencies and test modules) and Mule.""" + _ = check_output([DATA_GEN_PYTHON, "-c", "a = True"]) except KeyError: error = "Env variable DATA_GEN_PYTHON not defined." diff --git a/docs/src/_autoapi_templates/python/README.md b/docs/src/_autoapi_templates/python/README.md new file mode 100644 index 0000000000..5a66d0b867 --- /dev/null +++ b/docs/src/_autoapi_templates/python/README.md @@ -0,0 +1,7 @@ +# ⚠️ +This directory contains templates copied from `sphinx-autoapi` 3.2.1, which have been customised for +our own purposes. + +For further details, see: + +- https://sphinx-autoapi.readthedocs.io/en/latest/how_to.html#how-to-customise-layout-through-templates diff --git a/docs/src/_autoapi_templates/python/module.rst b/docs/src/_autoapi_templates/python/module.rst new file mode 100644 index 0000000000..9d12414776 --- /dev/null +++ b/docs/src/_autoapi_templates/python/module.rst @@ -0,0 +1,180 @@ +{% if obj.display %} + {% if is_own_page %} +{% if obj.type is equalto("package") and obj.name is equalto("geovista") %} +.. _gv-api: + +:fa:`file-lines` API Reference +****************************** + +GeoVista +======== +{% else %} +:py:mod:`{{ obj.id }}` +=========={{ "=" * obj.id|length }} +{% endif %} + +.. py:module:: {{ obj.name }} + + {% if obj.docstring %} +.. autoapi-nested-parse:: + + {{ obj.docstring|indent(3) }} + + {% endif %} + + {% block subpackages %} + {% set visible_subpackages = obj.subpackages|selectattr("display")|list %} + {% if visible_subpackages %} +Subpackages +----------- + +.. toctree:: + :maxdepth: 1 + + {% for subpackage in visible_subpackages %} + {{ subpackage.include_path }} + {% endfor %} + + + {% endif %} + {% endblock %} + {% block submodules %} + {% set visible_submodules = obj.submodules|selectattr("display")|list %} + {% if visible_submodules %} +Submodules +---------- + +.. toctree:: + :maxdepth: 1 + + {% for submodule in visible_submodules %} + {{ submodule.include_path }} + {% endfor %} + + + {% endif %} + {% endblock %} + {% block content %} + {% set visible_children = obj.children|selectattr("display")|list %} + {% if visible_children %} + {% set visible_attributes = visible_children|selectattr("type", "equalto", "data")|list %} + {% if visible_attributes %} + {% if "attribute" in own_page_types or "show-module-summary" in autoapi_options %} +Attributes +---------- + + {% if "attribute" in own_page_types %} +.. toctree:: + :hidden: + + {% for attribute in visible_attributes %} + {{ attribute.include_path }} + {% endfor %} + + {% endif %} +.. autoapisummary:: + + {% for attribute in visible_attributes %} + {{ attribute.id }} + {% endfor %} + {% endif %} + + + {% endif %} + {% set visible_exceptions = visible_children|selectattr("type", "equalto", "exception")|list %} + {% if visible_exceptions %} + {% if "exception" in own_page_types or "show-module-summary" in autoapi_options %} +Exceptions +---------- + + {% if "exception" in own_page_types %} +.. toctree:: + :hidden: + + {% for exception in visible_exceptions %} + {{ exception.include_path }} + {% endfor %} + + {% endif %} +.. autoapisummary:: + + {% for exception in visible_exceptions %} + {{ exception.id }} + {% endfor %} + {% endif %} + + + {% endif %} + {% set visible_classes = visible_children|selectattr("type", "equalto", "class")|list %} + {% if visible_classes %} + {% if "class" in own_page_types or "show-module-summary" in autoapi_options %} +Classes +------- + + {% if "class" in own_page_types %} +.. toctree:: + :hidden: + + {% for klass in visible_classes %} + {{ klass.include_path }} + {% endfor %} + + {% endif %} +.. autoapisummary:: + + {% for klass in visible_classes %} + {{ klass.id }} + {% endfor %} + {% endif %} + + + {% endif %} + {% set visible_functions = visible_children|selectattr("type", "equalto", "function")|list %} + {% if visible_functions %} + {% if "function" in own_page_types or "show-module-summary" in autoapi_options %} +Functions +--------- + + {% if "function" in own_page_types %} +.. toctree:: + :hidden: + + {% for function in visible_functions %} + {{ function.include_path }} + {% endfor %} + + {% endif %} +.. autoapisummary:: + + {% for function in visible_functions %} + {{ function.id }} + {% endfor %} + {% endif %} + + + {% endif %} + {% set this_page_children = visible_children|rejectattr("type", "in", own_page_types)|list %} + {% if this_page_children %} +{{ obj.type|title }} Contents +{{ "-" * obj.type|length }}--------- + + {% for obj_item in this_page_children %} +{{ obj_item.render()|indent(0) }} + {% endfor %} + {% endif %} + {% endif %} + {% endblock %} + {% else %} +.. py:module:: {{ obj.name }} + + {% if obj.docstring %} + .. autoapi-nested-parse:: + + {{ obj.docstring|indent(6) }} + + {% endif %} + {% for obj_item in visible_children %} + {{ obj_item.render()|indent(3) }} + {% endfor %} + {% endif %} +{% endif %} diff --git a/docs/src/conf.py b/docs/src/conf.py index 60f760c37f..d654edb92d 100644 --- a/docs/src/conf.py +++ b/docs/src/conf.py @@ -22,7 +22,6 @@ import datetime from importlib.metadata import version as get_version from inspect import getsource -import ntpath import os from pathlib import Path import re @@ -32,10 +31,32 @@ from urllib.parse import quote import warnings +from sphinx.util import logging +from sphinx.util.console import colorize -# function to write useful output to stdout, prefixing the source. -def autolog(message): - print("[{}] {}".format(ntpath.basename(__file__), message)) + +def autolog(message: str, section: str | None = None, color: str | None = None) -> None: + """Log the diagnostics `message` with optional `section` prefix. + + Parameters + ---------- + message : str + The diagnostics message. + section : str, optional + The prefix text for the diagnostics message. + color : str, optional + The color of the `section` prefix text. + + """ + if color is None: + color = "brown" + + section = colorize(color, colorize("bold", f"[{section}] ")) if section else "" + msg = f'{colorize(color, section)}{colorize("darkblue", f"{message}")}' + logger.info(msg) + + +logger = logging.getLogger("sphinx-iris") # -- Check for dev make options to build quicker @@ -63,17 +84,20 @@ def autolog(message): # rtd_version = "my_branch" # useful for testing if on_rtd: - autolog("Build running on READTHEDOCS server") + autolog("Build running on READTHEDOCS server", section="ReadTheDocs") # list all the READTHEDOCS environment variables that may be of use - autolog("Listing all environment variables on the READTHEDOCS server...") + autolog( + "Listing all environment variables on the READTHEDOCS server...", + section="ReadTheDocs", + ) for item, value in os.environ.items(): - autolog("[READTHEDOCS] {} = {}".format(item, value)) + autolog("{} = {}".format(item, value), section="ReadTheDocs") # -- Path setup -------------------------------------------------------------- -# If extensions (or modules to document with autodoc) are in another directory, +# If extensions (or modules to document with api) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. @@ -101,8 +125,8 @@ def autolog(message): # |version|, also used in various other places throughout the built documents. version = get_version("scitools-iris") release = version -autolog(f"Iris Version = {version}") -autolog(f"Iris Release = {release}") +autolog(f"Iris Version = {version}", section="General", color="blue") +autolog(f"Iris Release = {release}", section="General", color="blue") # -- General configuration --------------------------------------------------- @@ -148,14 +172,13 @@ def _dotv(version): # extensions coming with Sphinx (named "sphinx.ext.*") or your custom # ones. extensions = [ + # "sphinx.ext.autodoc", "sphinx.ext.todo", "sphinx.ext.duration", "sphinx.ext.coverage", "sphinx.ext.viewcode", - "sphinx.ext.autosummary", "sphinx.ext.doctest", "sphinx.ext.extlinks", - "sphinx.ext.autodoc", "sphinx.ext.intersphinx", "sphinx_copybutton", "sphinx.ext.napoleon", @@ -166,10 +189,10 @@ def _dotv(version): ] if skip_api == "1": - autolog("Skipping the API docs generation (SKIP_API=1)") + autolog("Skipping the API docs generation (SKIP_API=1)", section="General") else: - extensions.extend(["sphinxcontrib.apidoc"]) - extensions.extend(["api_rst_formatting"]) + # build will break if this is not one of the first extensions loaded. + extensions.insert(0, "autoapi.extension") # -- Napoleon extension ------------------------------------------------------- # See https://sphinxcontrib-napoleon.readthedocs.io/en/latest/sphinxcontrib.napoleon.html @@ -198,46 +221,51 @@ def _dotv(version): todo_include_todos = False todo_emit_warnings = False -# sphinx.ext.autodoc configuration -------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#confval-autodoc_default_options -autodoc_default_options = { - "members": True, - "member-order": "alphabetical", - "undoc-members": True, - "private-members": False, - "special-members": False, - "inherited-members": True, - "show-inheritance": True, -} +# -- autodoc options --------------------------------------------------------- +# See https://sphinx-autoapi.readthedocs.io/en/latest/how_to.html#how-to-include-type-annotations-as-types-in-rendered-docstrings +# https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html +autodoc_typehints = "description" +autodoc_typehints_description_target = "documented" + +# -- autoapi extensions ------------------------------------------------------- +# See https://sphinx-autoapi.readthedocs.io/en/latest/reference/config.html +# https://github.com/readthedocs/sphinx-autoapi + +if skip_api != "1": + source_code_root = (Path(__file__).parents[2]).absolute() + module_dir = source_code_root / "lib" + + autoapi_dirs = [module_dir] + autoapi_root = "generated/api" + autoapi_template_dir = "_autoapi_templates" + autoapi_ignore = [ + str(module_dir / "iris/tests/*"), + str(module_dir / "iris/experimental/raster.*"), # gdal conflicts + ] + autoapi_member_order = "alphabetical" + autoapi_options = [ + "members", + "inherited-members", + "undoc-members", + # 'private-members', + # "special-members", + "show-inheritance", + # "show-inheritance-diagram", + "show-module-summary", + "imported-members", + ] -# https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#confval-autodoc_typehints -autodoc_typehints = "none" -autosummary_generate = True -autosummary_imported_members = True -autopackage_name = ["iris"] -autoclass_content = "both" -modindex_common_prefix = ["iris"] - -# -- apidoc extension --------------------------------------------------------- -# See https://github.com/sphinx-contrib/apidoc -source_code_root = (Path(__file__).parents[2]).absolute() -module_dir = source_code_root / "lib" -apidoc_module_dir = str(module_dir) -apidoc_output_dir = str(Path(__file__).parent / "generated/api") -apidoc_toc_file = False - -apidoc_excluded_paths = [ - str(module_dir / "iris/tests"), - str(module_dir / "iris/experimental/raster.*"), # gdal conflicts -] + autoapi_python_class_content = "both" + autoapi_keep_files = True + autoapi_add_toctree_entry = False -apidoc_module_first = True -apidoc_separate_modules = True -apidoc_extra_args = [] + # https://sphinx-autoapi.readthedocs.io/en/latest/reference/config.html#suppressing-warnings + suppress_warnings = ["autoapi.python_import_resolution"] -autolog(f"[sphinx-apidoc] source_code_root = {source_code_root}") -autolog(f"[sphinx-apidoc] apidoc_excluded_paths = {apidoc_excluded_paths}") -autolog(f"[sphinx-apidoc] apidoc_output_dir = {apidoc_output_dir}") + autolog(f"[autoapi] source_code_root = {source_code_root}", section="AutoAPI") + autolog(f"[autoapi] autoapi_dirs = {autoapi_dirs}", section="AutoAPI") + autolog(f"[autoapi] autoapi_ignore = {autoapi_ignore}", section="AutoAPI") + autolog(f"[autoapi] autoapi_root = {autoapi_root}", section="AutoAPI") # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -307,7 +335,7 @@ def _dotv(version): "footer_end": ["custom_footer"], "navigation_depth": 3, "navigation_with_keys": False, - "show_toc_level": 2, + "show_toc_level": 3, "show_prev_next": True, "navbar_align": "content", # removes the search box from the top bar @@ -406,7 +434,7 @@ def _dotv(version): ] # list of sources to exclude from the build. -exclude_patterns = [] +exclude_patterns = ["_autoapi_templates"] # -- sphinx-gallery config ---------------------------------------------------- # See https://sphinx-gallery.github.io/stable/configuration.html diff --git a/docs/src/developers_guide/contributing_documentation_full.rst b/docs/src/developers_guide/contributing_documentation_full.rst index 5cb5269fa1..b890047445 100755 --- a/docs/src/developers_guide/contributing_documentation_full.rst +++ b/docs/src/developers_guide/contributing_documentation_full.rst @@ -43,16 +43,17 @@ achieved via:: make html-noplot -Another option is to skip the :doc:`../generated/api/iris` documentation creation. This can be -useful as it reduces the time to build the documentation, however you may have -some build warnings as there maybe references to the API documentation. -This can be achieved via:: +Another option is to skip the :doc:`Iris API ` documentation +creation. This can be useful as it reduces the time to build the documentation, +however you may have some build warnings as there maybe references to the API +documentation. This can be achieved via:: make html-noapi You can combine both the above and skip the -:ref:`contributing.documentation.gallery` and :doc:`../generated/api/iris` -documentation completely. This can be achieved via:: +:ref:`contributing.documentation.gallery` and +:doc:`Iris API ` documentation completely. This can +be achieved via:: make html-quick diff --git a/docs/src/developers_guide/contributing_getting_involved.rst b/docs/src/developers_guide/contributing_getting_involved.rst index 9da6cd13eb..cd0455e4b5 100644 --- a/docs/src/developers_guide/contributing_getting_involved.rst +++ b/docs/src/developers_guide/contributing_getting_involved.rst @@ -59,7 +59,7 @@ If you are new to using GitHub we recommend reading the :caption: Reference :hidden: - ../generated/api/iris + Iris API <../generated/api/iris/index> ../whatsnew/index ../copyright ../voted_issues diff --git a/docs/src/developers_guide/documenting/docstrings.rst b/docs/src/developers_guide/documenting/docstrings.rst index 86f2c839c1..0a75ddf979 100644 --- a/docs/src/developers_guide/documenting/docstrings.rst +++ b/docs/src/developers_guide/documenting/docstrings.rst @@ -1,3 +1,4 @@ +.. include:: ../../common_links.inc .. _docstrings: ========== @@ -7,7 +8,7 @@ Docstrings Every public object in the Iris package should have an appropriate docstring. This is important as the docstrings are used by developers to understand the code and may be read directly in the source or via the -:doc:`../../generated/api/iris`. +:doc:`Iris API `. .. note:: As of April 2022 we are looking to adopt `numpydoc`_ strings as standard. diff --git a/docs/src/index.rst b/docs/src/index.rst index a9bf76fc96..eee5503716 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -82,7 +82,7 @@ For more information see :ref:`why_iris`. Browse full Iris functionality by module. +++ - .. button-ref:: generated/api/iris + .. button-ref:: generated/api/iris/index :ref-type: doc :color: primary :outline: @@ -200,7 +200,7 @@ The legacy support resources: :maxdepth: 1 :hidden: - Iris API + Iris API .. todolist:: diff --git a/docs/src/sphinxext/api_rst_formatting.py b/docs/src/sphinxext/api_rst_formatting.py deleted file mode 100644 index 6dd82de91e..0000000000 --- a/docs/src/sphinxext/api_rst_formatting.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright Iris contributors -# -# This file is part of Iris and is released under the BSD license. -# See LICENSE in the root of the repository for full licensing details. - -# This script will process all .rst files that have been created by -# sphinxcontrib.apidoc extension and perform minor changes, specifically: -# -# - Remove the suffix for "package" and " module". -# - -import ntpath -from pathlib import Path - - -def main_api_rst_formatting(app): - src_dir = Path("generated/api") - - print(f"[{ntpath.basename(__file__)}] Processing RST files", end="") - - for file in src_dir.iterdir(): - if file.suffix == ".rst": - print(f".", end="") - - with open(file, "r") as f: - lines = f.read() - - lines = lines.replace(" package\n=", "\n") - lines = lines.replace(" module\n=", "\n") - - with open(file, "w") as f: - f.write(lines) - print("") - -def setup(app): - app.connect("builder-inited", main_api_rst_formatting) diff --git a/lib/iris/__init__.py b/lib/iris/__init__.py index a06e36a2e2..2800f85bde 100644 --- a/lib/iris/__init__.py +++ b/lib/iris/__init__.py @@ -243,16 +243,14 @@ def context(self, **kwargs): self.__dict__.update(current_state) -#: Object containing all the Iris run-time options. FUTURE = Future() +"""Object containing all the Iris run-time options.""" - -# Initialise the site configuration dictionary. -#: Iris site configuration dictionary. site_configuration: dict[ Literal["cf_profile", "cf_patch", "cf_patch_conventions"], Callable | Literal[False] | None, ] = {} +"""Initialise the site configuration dictionary.""" try: from iris.site_config import update as _update diff --git a/lib/iris/analysis/__init__.py b/lib/iris/analysis/__init__.py index 5d44e563c0..678cc5c28d 100644 --- a/lib/iris/analysis/__init__.py +++ b/lib/iris/analysis/__init__.py @@ -486,15 +486,17 @@ def __init__( Passed through to :data:`call_func`, :data:`lazy_func`, and :data:`units_func`. """ - #: Cube cell method string. self.cell_method = cell_method - #: Data aggregation function. + """Cube cell method string.""" + self.call_func = call_func - #: Unit conversion function. + """Data aggregation function.""" + self.units_func = units_func - #: Lazy aggregation function, may be None to indicate that a lazy - #: operation is not available. + """Unit conversion function.""" + self.lazy_func = lazy_func + """Lazy aggregation function, may be None to indicate that a lazy operation is not available.""" self._kwargs = kwargs @@ -948,8 +950,8 @@ def __init__(self, units_func=None, lazy_func=None, **kwargs): self._name = "weighted_percentile" self._args = ["percent", "weights"] - #: A list of keywords associated with weighted behaviour. self._weighting_keywords = ["returned", "weights"] + """A list of keywords associated with weighted behaviour.""" def post_process( self, collapsed_cube, data_result, coords, **kwargs @@ -1086,8 +1088,8 @@ def __init__( **kwargs, ) - #: A list of keywords that trigger weighted behaviour. self._weighting_keywords = ["returned", "weights"] + """A list of keywords that trigger weighted behaviour.""" def uses_weighting(self, **kwargs): """Determine whether this aggregator uses weighting. @@ -2309,8 +2311,9 @@ def __init__( preserving the time of year. """ - #: Group-by and shared coordinates that have been grouped. self.coords: list[iris.coords.Coord] = [] + """Group-by and shared coordinates that have been grouped.""" + self._groupby_coords: list[iris.coords.Coord] = [] self._shared_coords: list[tuple[iris.coords.Coord, int]] = [] self._groupby_indices: list[tuple[int, ...]] = [] diff --git a/lib/iris/analysis/calculus.py b/lib/iris/analysis/calculus.py index 4cb634efbe..750446059b 100644 --- a/lib/iris/analysis/calculus.py +++ b/lib/iris/analysis/calculus.py @@ -739,8 +739,6 @@ def curl(i_cube, j_cube, k_cube=None): return result -#: Acceptable X-Y-Z standard name combinations that -#: :func:`curl` can use (via :func:`spatial_vectors_with_phenom_name`). DIRECTIONAL_NAMES: tuple[tuple[str, str, str], ...] = ( ("u", "v", "w"), ("x", "y", "z"), @@ -749,6 +747,8 @@ def curl(i_cube, j_cube, k_cube=None): ("easterly", "northerly", "vertical"), ("easterly", "northerly", "radial"), ) +"""Acceptable X-Y-Z standard name combinations that :func:`curl` can use + (via :func:`spatial_vectors_with_phenom_name`).""" def spatial_vectors_with_phenom_name(i_cube, j_cube, k_cube=None): diff --git a/lib/iris/aux_factory.py b/lib/iris/aux_factory.py index 41e1e9f573..ccfef5e1f1 100644 --- a/lib/iris/aux_factory.py +++ b/lib/iris/aux_factory.py @@ -37,13 +37,10 @@ def __init__(self): if not hasattr(self, "_metadata_manager"): self._metadata_manager = metadata_manager_factory(CoordMetadata) - #: Descriptive name of the coordinate made by the factory self.long_name = None - - #: netCDF variable name for the coordinate made by the factory self.var_name = None - self.coord_system = None + # See the climatological property getter. self._metadata_manager.climatological = False diff --git a/lib/iris/common/_split_attribute_dicts.py b/lib/iris/common/_split_attribute_dicts.py index 3e9c74cea9..468fb2a18d 100644 --- a/lib/iris/common/_split_attribute_dicts.py +++ b/lib/iris/common/_split_attribute_dicts.py @@ -73,11 +73,13 @@ def adjust_for_split_attribute_dictionaries(operation): The wrapped function of attribute-dictionaries is currently always one of "equals", "combine" or "difference", with signatures like : + equals(left: dict, right: dict) -> bool combine(left: dict, right: dict) -> dict difference(left: dict, right: dict) -> None | (dict, dict) The results of the wrapped operation are either : + * for "equals" (or "__eq__") : a boolean * for "combine" : a (converted) attributes-dictionary * for "difference" : a list of (None or "pair"), where a pair contains two diff --git a/lib/iris/common/lenient.py b/lib/iris/common/lenient.py index b26e0f1763..2ee9f5bf26 100644 --- a/lib/iris/common/lenient.py +++ b/lib/iris/common/lenient.py @@ -17,14 +17,14 @@ ] -#: Default _Lenient services global activation state. _LENIENT_ENABLE_DEFAULT = True +"""Default _Lenient services global activation state.""" -#: Default Lenient maths feature state. _LENIENT_MATHS_DEFAULT = True +"""Default Lenient maths feature state.""" -#: Protected _Lenient internal non-client, non-service keys. _LENIENT_PROTECTED = ("active", "enable") +"""Protected _Lenient internal non-client, non-service keys.""" def _lenient_client(*dargs, services=None): @@ -654,8 +654,8 @@ def unregister_service(self, func): raise ValueError(emsg) -#: (Private) Instance that manages all Iris run-time lenient client and service options. _LENIENT = _Lenient() +"""(Private) Instance that manages all Iris run-time lenient client and service options.""" -#: (Public) Instance that manages all Iris run-time lenient features. LENIENT = Lenient() +"""(Public) Instance that manages all Iris run-time lenient features.""" diff --git a/lib/iris/common/metadata.py b/lib/iris/common/metadata.py index 8705c79816..b3a2db434f 100644 --- a/lib/iris/common/metadata.py +++ b/lib/iris/common/metadata.py @@ -1814,8 +1814,8 @@ def get_axis(instance): @lru_cache(maxsize=None) def _factory_cache(cls): def __init__(self, cls, **kwargs): - #: The metadata class to be manufactured by this factory. self.cls = cls + """The metadata class to be manufactured by this factory.""" # Proxy for self.cls._fields for later internal use, as this # saves on indirect property lookup via self.cls @@ -1953,7 +1953,6 @@ def metadata_manager_factory(cls, **kwargs): return manager -#: Convenience collection of lenient metadata combine services. SERVICES_COMBINE = ( AncillaryVariableMetadata.combine, BaseMetadata.combine, @@ -1965,9 +1964,8 @@ def metadata_manager_factory(cls, **kwargs): MeshCoordMetadata.combine, MeshMetadata.combine, ) +"""Convenience collection of lenient metadata combine services.""" - -#: Convenience collection of lenient metadata difference services. SERVICES_DIFFERENCE = ( AncillaryVariableMetadata.difference, BaseMetadata.difference, @@ -1979,9 +1977,9 @@ def metadata_manager_factory(cls, **kwargs): MeshCoordMetadata.difference, MeshMetadata.difference, ) +"""Convenience collection of lenient metadata difference services.""" -#: Convenience collection of lenient metadata equality services. SERVICES_EQUAL = ( AncillaryVariableMetadata.__eq__, AncillaryVariableMetadata.equal, @@ -2002,6 +2000,8 @@ def metadata_manager_factory(cls, **kwargs): MeshMetadata.__eq__, MeshMetadata.equal, ) +"""Convenience collection of lenient metadata equality services.""" + -#: Convenience collection of lenient metadata services. SERVICES = SERVICES_COMBINE + SERVICES_DIFFERENCE + SERVICES_EQUAL +"""Convenience collection of lenient metadata services.""" diff --git a/lib/iris/common/mixin.py b/lib/iris/common/mixin.py index 2d9605de83..37cfff5330 100644 --- a/lib/iris/common/mixin.py +++ b/lib/iris/common/mixin.py @@ -67,7 +67,6 @@ class LimitedAttributeDict(dict): """ - #: Attributes with special CF meaning, forbidden in Iris attribute dictionaries. CF_ATTRS_FORBIDDEN = ( "standard_name", "long_name", @@ -88,6 +87,7 @@ class LimitedAttributeDict(dict): "scale_factor", "_FillValue", ) + """Attributes with special CF meaning, forbidden in Iris attribute dictionaries.""" def __init__(self, *args, **kwargs): dict.__init__(self, *args, **kwargs) diff --git a/lib/iris/common/resolve.py b/lib/iris/common/resolve.py index 87ad05791b..708109d446 100644 --- a/lib/iris/common/resolve.py +++ b/lib/iris/common/resolve.py @@ -264,62 +264,72 @@ def __init__(self, lhs=None, rhs=None): True """ - #: The ``lhs`` operand to be resolved into the resultant :class:`~iris.cube.Cube`. self.lhs_cube = None # set in __call__ - #: The ``rhs`` operand to be resolved into the resultant :class:`~iris.cube.Cube`. + """The ``lhs`` operand to be resolved into the resultant :class:`~iris.cube.Cube`.""" + self.rhs_cube = None # set in __call__ + """The ``rhs`` operand to be resolved into the resultant :class:`~iris.cube.Cube`.""" - #: The transposed/reshaped (if required) ``lhs`` :class:`~iris.cube.Cube`, which - #: can be broadcast with the ``rhs`` :class:`~iris.cube.Cube`. self.lhs_cube_resolved = None - #: The transposed/reshaped (if required) ``rhs`` :class:`~iris.cube.Cube`, which - #: can be broadcast with the ``lhs`` :class:`~iris.cube.Cube`. + """The transposed/reshaped (if required) + ``lhs`` :class:`~iris.cube.Cube`, which + can be broadcast with the ``rhs`` :class:`~iris.cube.Cube`.""" + self.rhs_cube_resolved = None + """The transposed/reshaped (if required) + ``rhs`` :class:`~iris.cube.Cube`, which can be broadcast with the + ``lhs`` :class:`~iris.cube.Cube`.""" - #: Categorised dim, aux and scalar coordinate items for ``lhs`` :class:`~iris.cube.Cube`. self.lhs_cube_category = None # set in _metadata_resolve - #: Categorised dim, aux and scalar coordinate items for ``rhs`` :class:`~iris.cube.Cube`. + """Categorised dim, aux and scalar coordinate items for ``lhs`` :class:`~iris.cube.Cube`.""" + self.rhs_cube_category = None # set in _metadata_resolve + """Categorised dim, aux and scalar coordinate items for ``rhs`` :class:`~iris.cube.Cube`.""" - #: Categorised dim, aux and scalar coordinate items **local** to the - #: ``lhs`` :class:`~iris.cube.Cube` only. self.lhs_cube_category_local = None # set in _metadata_resolve - #: Categorised dim, aux and scalar coordinate items **local** to the - #: ``rhs`` :class:`~iris.cube.Cube` only. + """Categorised dim, aux and scalar coordinate items **local** to the ``lhs`` :class:`~iris.cube.Cube` only.""" + self.rhs_cube_category_local = None # set in _metadata_resolve - #: Categorised dim, aux and scalar coordinate items **common** to both - #: the ``lhs`` :class:`~iris.cube.Cube` and the ``rhs`` :class:`~iris.cube.Cube`. + """Categorised dim, aux and scalar coordinate items **local** to the ``rhs`` :class:`~iris.cube.Cube` only.""" + self.category_common = None # set in _metadata_resolve + """Categorised dim, aux and scalar coordinate items + **common** to both the ``lhs`` :class:`~iris.cube.Cube` and + the ``rhs`` :class:`~iris.cube.Cube`.""" - #: Analysis of dim coordinates spanning the ``lhs`` :class:`~iris.cube.Cube`. self.lhs_cube_dim_coverage = None # set in _metadata_coverage - #: Analysis of aux and scalar coordinates spanning the ``lhs`` :class:`~iris.cube.Cube`. + """Analysis of dim coordinates spanning the ``lhs`` :class:`~iris.cube.Cube`.""" + self.lhs_cube_aux_coverage = None # set in _metadata_coverage - #: Analysis of dim coordinates spanning the ``rhs`` :class:`~iris.cube.Cube`. + """Analysis of aux and scalar coordinates spanning the ``lhs`` :class:`~iris.cube.Cube`.""" + self.rhs_cube_dim_coverage = None # set in _metadata_coverage - #: Analysis of aux and scalar coordinates spanning the ``rhs`` :class:`~iris.cube.Cube`. + """Analysis of dim coordinates spanning the ``rhs`` :class:`~iris.cube.Cube`.""" + self.rhs_cube_aux_coverage = None # set in _metadata_coverage + """Analysis of aux and scalar coordinates spanning the ``rhs`` :class:`~iris.cube.Cube`.""" - #: Map **common** metadata from the ``rhs`` :class:`~iris.cube.Cube` to - #: the ``lhs`` :class:`~iris.cube.Cube` if ``lhs-rank`` >= ``rhs-rank``, - #: otherwise map **common** metadata from the ``lhs`` :class:`~iris.cube.Cube` - #: to the ``rhs`` :class:`~iris.cube.Cube`. self.map_rhs_to_lhs = None # set in __call__ + """Map **common** metadata from the ``rhs`` :class:`~iris.cube.Cube` to the ``lhs`` :class:`~iris.cube.Cube` + if ``lhs-rank`` >= ``rhs-rank``, otherwise map **common** metadata from + the ``lhs`` :class:`~iris.cube.Cube` to the + ``rhs`` :class:`~iris.cube.Cube`.""" - #: Mapping of the dimensions between **common** metadata for the :class:`~iris.cube.Cube` - #: operands, where the direction of the mapping is governed by - #: :attr:`~iris.common.resolve.Resolve.map_rhs_to_lhs`. self.mapping = None # set in _metadata_mapping + """Mapping of the dimensions between **common** metadata. + For the :class:`~iris.cube.Cube` operands, where the direction of the + mapping is governed by + :attr:`~iris.common.resolve.Resolve.map_rhs_to_lhs`.""" - #: Cache containing a list of dim, aux and scalar coordinates prepared - #: and ready for creating and attaching to the resultant resolved - #: :class:`~iris.cube.Cube`. self.prepared_category = None # set in _metadata_prepare + """Cache containing a list of dim, aux and scalar coordinates. + Prepared and ready for creating and attaching to the resultant resolved + :class:`~iris.cube.Cube`.""" - #: Cache containing a list of aux factories prepared and ready for - #: creating and attaching to the resultant resolved - #: :class:`~iris.cube.Cube`. self.prepared_factories = None # set in _metadata_prepare + """Cache containing a list of aux factories. + Prepared and ready for creating and attaching to the resultant resolved + :class:`~iris.cube.Cube`.""" # The shape of the resultant resolved cube. self._broadcast_shape = None # set in _as_compatible_cubes diff --git a/lib/iris/config.py b/lib/iris/config.py index 9cec602a95..02fc9c6342 100644 --- a/lib/iris/config.py +++ b/lib/iris/config.py @@ -8,21 +8,6 @@ ``iris/etc/site.cfg``. If it exists, this file must conform to the format defined by :mod:`configparser`. ----------- - -.. py:data:: iris.config.TEST_DATA_DIR - - Local directory where test data exists. Defaults to "test_data" - sub-directory of the Iris package install directory. The test data - directory supports the subset of Iris unit tests that require data. - Directory contents accessed via :func:`iris.tests.get_data_path`. - -.. py:data:: iris.config.PALETTE_PATH - - The full path to the Iris palette configuration directory - ----------- - """ import configparser @@ -104,7 +89,6 @@ def get_logger(name, datefmt=None, fmt=None, level=None, propagate=None, handler return logger -# Returns simple string options def get_option(section, option, default=None): """Return the option value for the given section. @@ -118,7 +102,6 @@ def get_option(section, option, default=None): return value -# Returns directory path options def get_dir_option(section, option, default=None): """Return the directory path from the given option and section. @@ -144,11 +127,27 @@ def get_dir_option(section, option, default=None): return path -# Figure out the full path to the "iris" package. +def _get_test_data_dir(): + """Return the test data directory and overriding if approproiate.""" + override = os.environ.get("OVERRIDE_TEST_DATA_REPOSITORY") + + if override and os.path.isdir(os.path.expanduser(override)): + test_data_dir = os.path.abspath(override) + else: + test_data_dir = get_dir_option( + _RESOURCE_SECTION, + "test_data_dir", + default=os.path.join(os.path.dirname(__file__), "test_data"), + ) + + return test_data_dir + + ROOT_PATH = os.path.abspath(os.path.dirname(__file__)) +"""The full path to the "iris" package.""" -# The full path to the configuration directory of the active Iris instance. CONFIG_PATH = os.path.join(ROOT_PATH, "etc") +"""The full path to the configuration directory of the active Iris instance.""" # Load the optional "site.cfg" file if it exists. config = configparser.ConfigParser() @@ -158,24 +157,17 @@ def get_dir_option(section, option, default=None): # Resource options _RESOURCE_SECTION = "Resources" - -TEST_DATA_DIR = get_dir_option( - _RESOURCE_SECTION, - "test_data_dir", - default=os.path.join(os.path.dirname(__file__), "test_data"), -) - -# Override the data repository if the appropriate environment variable -# has been set. -override = os.environ.get("OVERRIDE_TEST_DATA_REPOSITORY") -if override: - TEST_DATA_DIR = None - if os.path.isdir(os.path.expanduser(override)): - TEST_DATA_DIR = os.path.abspath(override) +TEST_DATA_DIR = _get_test_data_dir() +"""Local directory where test data exists. + Defaults to "test_data" sub-directory of the Iris package install directory. + The test data directory supports the subset of Iris unit tests that require data. + Directory contents accessed via :func:`iris.tests.get_data_path`.""" PALETTE_PATH = get_dir_option( _RESOURCE_SECTION, "palette_path", os.path.join(CONFIG_PATH, "palette") ) +"""The full path to the Iris palette configuration directory.""" + # Runtime options diff --git a/lib/iris/coord_systems.py b/lib/iris/coord_systems.py index 4da46ae249..614ce750b1 100644 --- a/lib/iris/coord_systems.py +++ b/lib/iris/coord_systems.py @@ -248,19 +248,19 @@ def __init__( else: raise ValueError("Insufficient ellipsoid specification") - #: Major radius of the ellipsoid in metres. self._semi_major_axis = float(semi_major_axis) + """Major radius of the ellipsoid in metres.""" - #: Minor radius of the ellipsoid in metres. self._semi_minor_axis = float(semi_minor_axis) + """Minor radius of the ellipsoid in metres.""" - #: :math:`1/f` where :math:`f = (a-b)/a`. self._inverse_flattening = float(inverse_flattening) + """:math:`1/f` where :math:`f = (a-b)/a`.""" self._datum = None - #: Describes 'zero' on the ellipsoid in degrees. self.longitude_of_prime_meridian = _arg_default(longitude_of_prime_meridian, 0) + """Describes 'zero' on the ellipsoid in degrees.""" def _pretty_attrs(self): attrs = [("semi_major_axis", self.semi_major_axis)] @@ -479,8 +479,8 @@ def from_datum(cls, datum, longitude_of_prime_meridian=None): crs._semi_minor_axis = None crs._inverse_flattening = None - #: Describes 'zero' on the ellipsoid in degrees. crs.longitude_of_prime_meridian = _arg_default(longitude_of_prime_meridian, 0) + """Describes 'zero' on the ellipsoid in degrees.""" crs._datum = datum @@ -522,17 +522,17 @@ def __init__( ellipsoid=GeogCS(6400000, 6300000)) """ - #: The true latitude of the rotated pole in degrees. self.grid_north_pole_latitude = float(grid_north_pole_latitude) + """The true latitude of the rotated pole in degrees.""" - #: The true longitude of the rotated pole in degrees. self.grid_north_pole_longitude = float(grid_north_pole_longitude) + """The true longitude of the rotated pole in degrees.""" - #: Longitude of true north pole in rotated grid in degrees. self.north_pole_grid_longitude = _arg_default(north_pole_grid_longitude, 0) + """Longitude of true north pole in rotated grid in degrees.""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def _pretty_attrs(self): attrs = [ @@ -635,25 +635,25 @@ def __init__( ellipsoid=airy1830) """ - #: True latitude of planar origin in degrees. self.latitude_of_projection_origin = float(latitude_of_projection_origin) + """True latitude of planar origin in degrees.""" - #: True longitude of planar origin in degrees. self.longitude_of_central_meridian = float(longitude_of_central_meridian) + """True longitude of planar origin in degrees.""" - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: Scale factor at the centre longitude. self.scale_factor_at_central_meridian = _arg_default( scale_factor_at_central_meridian, 1.0 ) + """Scale factor at the centre longitude.""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( @@ -736,20 +736,20 @@ def __init__( If given, defines the ellipsoid. """ - #: True latitude of planar origin in degrees. self.latitude_of_projection_origin = float(latitude_of_projection_origin) + """True latitude of planar origin in degrees.""" - #: True longitude of planar origin in degrees. self.longitude_of_projection_origin = float(longitude_of_projection_origin) + """True longitude of planar origin in degrees.""" - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( @@ -817,24 +817,24 @@ def __init__( If given, defines the ellipsoid. """ - #: True latitude of planar origin in degrees. self.latitude_of_projection_origin = float(latitude_of_projection_origin) + """True latitude of planar origin in degrees.""" - #: True longitude of planar origin in degrees. self.longitude_of_projection_origin = float(longitude_of_projection_origin) + """True longitude of planar origin in degrees.""" - #: Altitude of satellite in metres. self.perspective_point_height = float(perspective_point_height) + """Altitude of satellite in metres.""" # TODO: test if may be cast to float for proj.4 - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( @@ -903,33 +903,35 @@ def __init__( If given, defines the ellipsoid. """ - #: True latitude of planar origin in degrees. self.latitude_of_projection_origin = float(latitude_of_projection_origin) + """True latitude of planar origin in degrees.""" + if self.latitude_of_projection_origin != 0.0: raise ValueError( "Non-zero latitude of projection currently not supported by Cartopy." ) - #: True longitude of planar origin in degrees. self.longitude_of_projection_origin = float(longitude_of_projection_origin) + """True longitude of planar origin in degrees.""" - #: Altitude of satellite in metres. self.perspective_point_height = float(perspective_point_height) + """Altitude of satellite in metres.""" # TODO: test if may be cast to float for proj.4 - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: The sweep angle axis (string 'x' or 'y'). self.sweep_angle_axis = sweep_angle_axis + """The sweep angle axis (string 'x' or 'y').""" + if self.sweep_angle_axis not in ("x", "y"): raise ValueError('Invalid sweep_angle_axis - must be "x" or "y"') - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( @@ -1004,24 +1006,26 @@ def __init__( scale_factor_at_projection_origin """ - #: True latitude of planar origin in degrees. self.central_lat = float(central_lat) + """True latitude of planar origin in degrees.""" - #: True longitude of planar origin in degrees. self.central_lon = float(central_lon) + """True longitude of planar origin in degrees.""" - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: Latitude of true scale. self.true_scale_lat = _arg_default(true_scale_lat, None, cast_as=_float_or_None) - #: Scale factor at projection origin. + """Latitude of true scale.""" + self.scale_factor_at_projection_origin = _arg_default( scale_factor_at_projection_origin, None, cast_as=_float_or_None ) + """Scale factor at projection origin.""" + # N.B. the way we use these parameters, we need them to default to None, # and *not* to 0.0. @@ -1034,8 +1038,8 @@ def __init__( '"scale_factor_at_projection_origin" and "true_scale_latitude". ' ) - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def _repr_attributes(self): if self.scale_factor_at_projection_origin is None: @@ -1168,25 +1172,25 @@ def __init__( secant_latitudes=(33, 45) """ - #: True latitude of planar origin in degrees. self.central_lat = _arg_default(central_lat, 39.0) + """True latitude of planar origin in degrees.""" - #: True longitude of planar origin in degrees. self.central_lon = _arg_default(central_lon, -96.0) + """True longitude of planar origin in degrees.""" - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: The standard parallels of the cone (tuple of 1 or 2 floats). self.secant_latitudes = _arg_default( secant_latitudes, (33, 45), cast_as=_1or2_parallels ) + """tuple: The standard parallels of the cone (tuple of 1 or 2 floats).""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( @@ -1269,17 +1273,19 @@ def __init__( ``scale_factor_at_projection_origin`` should be included. """ - #: True longitude of planar origin in degrees. self.longitude_of_projection_origin = _arg_default( longitude_of_projection_origin, 0 ) + """True longitude of planar origin in degrees.""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" # Initialise to None, then set based on arguments - #: The latitude where the scale is 1. + self.standard_parallel = None + """The latitude where the scale is 1.""" + # The scale factor at the origin of the projection self.scale_factor_at_projection_origin = None if scale_factor_at_projection_origin is None: @@ -1296,11 +1302,11 @@ def __init__( '"standard_parallel".' ) - #: X offset from the planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from the planar origin in metres.""" - #: Y offset from the planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from the planar origin in metres.""" def __repr__(self): res = ( @@ -1360,24 +1366,24 @@ def __init__( If given, defines the ellipsoid. """ - #: True latitude of planar origin in degrees. self.latitude_of_projection_origin = _arg_default( latitude_of_projection_origin, 0 ) + """True latitude of planar origin in degrees.""" - #: True longitude of planar origin in degrees. self.longitude_of_projection_origin = _arg_default( longitude_of_projection_origin, 0 ) + """True longitude of planar origin in degrees.""" - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( @@ -1441,29 +1447,29 @@ def __init__( If given, defines the ellipsoid. """ - #: True latitude of planar origin in degrees. self.latitude_of_projection_origin = _arg_default( latitude_of_projection_origin, 0 ) + """True latitude of planar origin in degrees.""" - #: True longitude of planar central meridian in degrees. self.longitude_of_central_meridian = _arg_default( longitude_of_central_meridian, 0 ) + """True longitude of planar central meridian in degrees.""" - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: The one or two latitudes of correct scale (tuple of 1 or 2 floats). self.standard_parallels = _arg_default( standard_parallels, (20, 50), cast_as=_1or2_parallels ) + """The one or two latitudes of correct scale (tuple of 1 or 2 floats).""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( @@ -1553,28 +1559,28 @@ def __init__( ObliqueMercator(azimuth_of_central_line=90.0, latitude_of_projection_origin=-22.0, longitude_of_projection_origin=-59.0, false_easting=-25000.0, false_northing=-25000.0, scale_factor_at_projection_origin=1.0, ellipsoid=GeogCS(6371229.0)) """ - #: Azimuth of centerline clockwise from north. self.azimuth_of_central_line = float(azimuth_of_central_line) + """Azimuth of centerline clockwise from north.""" - #: True latitude of planar origin in degrees. self.latitude_of_projection_origin = float(latitude_of_projection_origin) + """True latitude of planar origin in degrees.""" - #: True longitude of planar origin in degrees. self.longitude_of_projection_origin = float(longitude_of_projection_origin) + """True longitude of planar origin in degrees.""" - #: X offset from planar origin in metres. self.false_easting = _arg_default(false_easting, 0) + """X offset from planar origin in metres.""" - #: Y offset from planar origin in metres. self.false_northing = _arg_default(false_northing, 0) + """Y offset from planar origin in metres.""" - #: Scale factor at the central meridian. self.scale_factor_at_projection_origin = _arg_default( scale_factor_at_projection_origin, 1.0 ) + """Scale factor at the central meridian.""" - #: Ellipsoid definition (:class:`GeogCS` or None). self.ellipsoid = ellipsoid + """Ellipsoid definition (:class:`GeogCS` or None).""" def __repr__(self): return ( diff --git a/lib/iris/coords.py b/lib/iris/coords.py index d2f5b05f89..5a6a0126e1 100644 --- a/lib/iris/coords.py +++ b/lib/iris/coords.py @@ -34,8 +34,8 @@ import iris.util import iris.warnings -#: The default value for ignore_axis which controls guess_coord_axis' behaviour DEFAULT_IGNORE_AXIS = False +"""The default value for ignore_axis which controls guess_coord_axis' behaviour.""" class _DimensionalMetadata(CFVariableMixin, metaclass=ABCMeta): @@ -98,21 +98,20 @@ def __init__( if not hasattr(self, "_metadata_manager"): self._metadata_manager = metadata_manager_factory(BaseMetadata) - #: CF standard name of the quantity that the metadata represents. self.standard_name = standard_name + """CF standard name of the quantity that the metadata represents.""" - #: Descriptive name of the metadata. self.long_name = long_name + """Descriptive name of the metadata.""" - #: The netCDF variable name for the metadata. self.var_name = var_name + """The netCDF variable name for the metadata.""" - #: Unit of the quantity that the metadata represents. self.units = units + """Unit of the quantity that the metadata represents.""" - #: Other attributes, including user specified attributes that - #: have no meaning to Iris. self.attributes = attributes + """Other attributes, including user specified attributes that have no meaning to Iris.""" # Set up DataManager attributes and values. self._values_dm = None @@ -1047,11 +1046,11 @@ def __init__( if measure is None: measure = "area" - #: String naming the measure type. self.measure = measure @property def measure(self): + """String naming the measure type.""" return self._metadata_manager.measure @measure.setter @@ -1501,7 +1500,6 @@ def __init__( attributes=attributes, ) - #: Relevant coordinate system (if any). self.coord_system = coord_system # Set up bounds DataManager attributes and the bounds values. @@ -2679,8 +2677,6 @@ def __init__( coord_system=coord_system, climatological=climatological, ) - - #: Whether the coordinate wraps by ``coord.units.modulus``. self.circular = circular def __deepcopy__(self, memo): # numpydoc ignore=SS02 @@ -2698,6 +2694,7 @@ def __deepcopy__(self, memo): # numpydoc ignore=SS02 @property def circular(self): + """Whether the coordinate wraps by ``coord.units.modulus``.""" return self._metadata_manager.circular @circular.setter @@ -2985,18 +2982,17 @@ class CellMethod(iris.util._OrderedHashable): # Declare the attribute names relevant to the _OrderedHashable behaviour. _names = ("method", "coord_names", "intervals", "comments") - #: The name of the operation that was applied. e.g. "mean", "max", etc. method = None + """The name of the operation that was applied. e.g. "mean", "max", etc.""" - #: The tuple of coordinate names over which the operation was applied. coord_names = None + """The tuple of coordinate names over which the operation was applied.""" - #: A description of the original intervals over which the operation - #: was applied. intervals = None + """A description of the original intervals over which the operation was applied.""" - #: Additional comments. comments = None + """Additional comments.""" def __init__(self, method, coords=None, intervals=None, comments=None): """Call Method initialise. diff --git a/lib/iris/cube.py b/lib/iris/cube.py index 54e086937d..ee23aefc82 100644 --- a/lib/iris/cube.py +++ b/lib/iris/cube.py @@ -622,6 +622,8 @@ def concatenate( .. testsetup:: import iris + import iris.coords + import iris.cube import numpy as np xco = iris.coords.DimCoord([11, 12, 13, 14], long_name='x_vals') yco1 = iris.coords.DimCoord([4, 5], long_name='y_vals') @@ -1109,11 +1111,11 @@ class Cube(CFVariableMixin): """ - #: Indicates to client code that the object supports - #: "orthogonal indexing", which means that slices that are 1d arrays - #: or lists slice along each dimension independently. This behavior - #: is similar to Fortran or Matlab, but different than numpy. __orthogonal_indexing__ = True + """Indicates to client code that the object supports "orthogonal indexing" + Which means that slices that are 1d arrays or lists slice along each + dimension independently. This behavior is similar to Fortran or Matlab, + but different than numpy.""" @classmethod def _sort_xml_attrs(cls, doc): @@ -1257,22 +1259,11 @@ def __init__( # Initialise the cube data manager. self._data_manager = DataManager(data) - #: The "standard name" for the Cube's phenomenon. self.standard_name = standard_name - - #: An instance of :class:`cf_units.Unit` describing the Cube's data. self.units = units - - #: The "long name" for the Cube's phenomenon. self.long_name = long_name - - #: The NetCDF variable name for the Cube. self.var_name = var_name - self.cell_methods = cell_methods - - #: A dictionary for arbitrary Cube metadata. - #: A few keys are restricted - see :class:`CubeAttrsDict`. self.attributes = attributes # Coords @@ -1336,6 +1327,7 @@ def _names(self): # @property def attributes(self) -> CubeAttrsDict: + """Arbitrary Cube metadata. A few keys are restricted - see :class:`CubeAttrsDict`.""" return super().attributes @attributes.setter diff --git a/lib/iris/experimental/regrid.py b/lib/iris/experimental/regrid.py index 4ffad43a2c..7cf505556d 100644 --- a/lib/iris/experimental/regrid.py +++ b/lib/iris/experimental/regrid.py @@ -41,14 +41,14 @@ from iris.util import _meshgrid from iris.warnings import IrisImpossibleUpdateWarning -wmsg = ( +_wmsg = ( "The 'iris.experimental.regrid' package is deprecated since version 3.2, " "and will be removed in a future release. The PointInCell class has now " "moved into iris.analysis. All its other content will be withdrawn. " "If you still use any of this, please contact the Iris Developers to " "discuss how to replace it or to retain it (reverse the deprecation)." ) -warn_deprecated(wmsg) +warn_deprecated(_wmsg) def regrid_area_weighted_rectilinear_src_and_grid(src_cube, grid_cube, mdtol=0): @@ -105,14 +105,14 @@ def regrid_area_weighted_rectilinear_src_and_grid(src_cube, grid_cube, mdtol=0): result = src_cube.regrid(grid_cube, AreaWeighted()) """ - wmsg = ( + _wmsg = ( "The function " "'iris.experimental.regrid." "regrid_area_weighted_rectilinear_src_and_grid' " "has been deprecated, and will be removed in a future release. " "Please consult the docstring for details." ) - warn_deprecated(wmsg) + warn_deprecated(_wmsg) regrid_info = _regrid_area_weighted_rectilinear_src_and_grid__prepare( src_cube, grid_cube diff --git a/lib/iris/experimental/regrid_conservative.py b/lib/iris/experimental/regrid_conservative.py index c4dbf965f8..6452aa46e7 100644 --- a/lib/iris/experimental/regrid_conservative.py +++ b/lib/iris/experimental/regrid_conservative.py @@ -24,17 +24,17 @@ from iris.analysis._regrid import RectilinearRegridder, _create_cube from iris.util import _meshgrid -wmsg = ( +_wmsg = ( "The 'iris.experimental.regrid_conservative' package is deprecated since " "version 3.2, and will be removed in a future release. Please use " "iris-emsf-regrid instead. " "See https://github.com/SciTools-incubator/iris-esmf-regrid." ) -warn_deprecated(wmsg) +warn_deprecated(_wmsg) -#: A static Cartopy Geodetic() instance for transforming to true-lat-lons. _CRS_TRUELATLON = ccrs.Geodetic() +"""A static Cartopy Geodetic() instance for transforming to true-lat-lons.""" def _convert_latlons(crs, x_array, y_array): diff --git a/lib/iris/experimental/ugrid.py b/lib/iris/experimental/ugrid.py index 6e036ad96e..b9a18b2681 100644 --- a/lib/iris/experimental/ugrid.py +++ b/lib/iris/experimental/ugrid.py @@ -132,8 +132,9 @@ def context(self): yield -#: Run-time switch for experimental UGRID-aware NetCDF loading. See :class:`~iris.mesh.load.ParseUGridOnLoad`. PARSE_UGRID_ON_LOAD = ParseUGridOnLoad() +"""Run-time switch for experimental UGRID-aware NetCDF loading. + See :class:`~iris.mesh.load.ParseUGridOnLoad`.""" __all__ = [ diff --git a/lib/iris/fileformats/_ff.py b/lib/iris/fileformats/_ff.py index 35b4f65bb7..84d813d42a 100644 --- a/lib/iris/fileformats/_ff.py +++ b/lib/iris/fileformats/_ff.py @@ -93,18 +93,15 @@ "default": ">f{word_depth}", } -#: Codes used in STASH_GRID which indicate the x coordinate is on the -#: edge of the cell. X_COORD_U_GRID = (11, 18, 27) +"""Codes used in STASH_GRID which indicate the x coordinate is on the edge of the cell.""" -#: Codes used in STASH_GRID which indicate the y coordinate is on the -#: edge of the cell. Y_COORD_V_GRID = (11, 19, 28) +"""Codes used in STASH_GRID which indicate the y coordinate is on the edge of the cell.""" -#: Grid codes found in the STASH master which are currently known to be -#: handled correctly. A warning is issued if a grid is found which is not -#: handled. HANDLED_GRIDS = (1, 2, 3, 4, 5, 21, 26, 29) + X_COORD_U_GRID + Y_COORD_V_GRID +"""Grid codes found in the STASH master which are currently known to be handled correctly. + A warning is issued if a grid is found which is not handled.""" # REAL constants header names as described by UM documentation paper F3. # NB. These are zero-based indices as opposed to the one-based indices @@ -313,8 +310,9 @@ def __init__(self, filename, word_depth=DEFAULT_FF_WORD_DEPTH): FFHeader object. """ - #: File name of the FieldsFile. self.ff_filename = filename + """File name of the FieldsFile.""" + self._word_depth = word_depth # Read the FF header data diff --git a/lib/iris/fileformats/_nc_load_rules/actions.py b/lib/iris/fileformats/_nc_load_rules/actions.py index 1611ef7160..1bc127d220 100644 --- a/lib/iris/fileformats/_nc_load_rules/actions.py +++ b/lib/iris/fileformats/_nc_load_rules/actions.py @@ -16,8 +16,8 @@ used to be done with a "facts_cf.provides" statement in rule actions. 3) Iris-specific info is (still) stored in additional properties created on - the engine object : - engine.cf_var, .cube, .cube_parts, .requires, .rules_triggered, .filename + the engine object : engine.cf_var, .cube, .cube_parts, .requires, .rules_triggered, + .filename Our "rules" are just action routines. The top-level 'run_actions' routine decides which actions to call, based on the diff --git a/lib/iris/fileformats/_nc_load_rules/engine.py b/lib/iris/fileformats/_nc_load_rules/engine.py index 48092508a4..4aea480ad8 100644 --- a/lib/iris/fileformats/_nc_load_rules/engine.py +++ b/lib/iris/fileformats/_nc_load_rules/engine.py @@ -29,7 +29,8 @@ class FactEntity: which is a list of tuples of strings (each of which is a 'fact' of the named class). - To support the debug code : + To support the debug code:: + kb_facts = engine.get_kb(_PYKE_FACT_BASE) for key in kb_facts.entity_lists.keys(): for arg in kb_facts.entity_lists[key].case_specific_facts: diff --git a/lib/iris/fileformats/_structured_array_identification.py b/lib/iris/fileformats/_structured_array_identification.py index 0f386e9815..09dc0724df 100644 --- a/lib/iris/fileformats/_structured_array_identification.py +++ b/lib/iris/fileformats/_structured_array_identification.py @@ -301,13 +301,13 @@ class GroupStructure: def __init__(self, length, component_structure, array_order="c"): """Group_component_to_array - a dictionary. See also TODO.""" - #: The size common to all of the original arrays and used to determine - #: possible shape configurations. self.length = length + """The size common to all of the original arrays. + Used to determine possible shape configurations.""" - #: A dictionary mapping component name to ArrayStructure instance - #: (or None if no such structure exists for that component). self._cmpt_structure = component_structure + """A dictionary mapping component name to ArrayStructure instance + (or None if no such structure exists for that component).""" array_order = array_order.lower() if array_order not in ["c", "f"]: diff --git a/lib/iris/fileformats/abf.py b/lib/iris/fileformats/abf.py index 1ac95a42eb..3b1fd3c101 100644 --- a/lib/iris/fileformats/abf.py +++ b/lib/iris/fileformats/abf.py @@ -27,13 +27,13 @@ import iris.fileformats import iris.io.format_picker -wmsg = ( +_wmsg = ( "iris.fileformats.abf has been deprecated and will be removed in a " "future release. If you make use of this functionality, please contact " "the Iris Developers to discuss how to retain it (which may involve " "reversing the deprecation)." ) -warn_deprecated(wmsg) +warn_deprecated(_wmsg) X_SIZE = 4320 Y_SIZE = 2160 diff --git a/lib/iris/fileformats/cf.py b/lib/iris/fileformats/cf.py index 024bcb6f1d..d854894976 100644 --- a/lib/iris/fileformats/cf.py +++ b/lib/iris/fileformats/cf.py @@ -48,8 +48,6 @@ # therefore automatically classed as "used" attributes. _CF_ATTRS_IGNORE = set(["_FillValue", "add_offset", "missing_value", "scale_factor"]) -#: Supported dimensionless vertical coordinate reference surface/phemomenon -#: formula terms. Ref: [CF] Appendix D. reference_terms = dict( atmosphere_sigma_coordinate=["ps"], atmosphere_hybrid_sigma_pressure_coordinate=["ps"], @@ -61,6 +59,8 @@ ocean_s_coordinate_g1=["eta", "depth"], ocean_s_coordinate_g2=["eta", "depth"], ) +"""Supported dimensionless vertical coordinate reference surface/phemomenon formula terms. + Ref: [CF] Appendix D.""" # NetCDF returns a different type for strings depending on Python version. @@ -72,9 +72,8 @@ def _is_str_dtype(var): class CFVariable(metaclass=ABCMeta): """Abstract base class wrapper for a CF-netCDF variable.""" - #: Name of the netCDF variable attribute that identifies this - #: CF-netCDF variable. cf_identity: ClassVar[str | None] = None + """Name of the netCDF variable attribute that identifies this CF-netCDF variable.""" def __init__(self, name, data): # Accessing the list of netCDF attributes is surprisingly slow. @@ -82,17 +81,17 @@ def __init__(self, name, data): # quite a bit faster. self._nc_attrs = data.ncattrs() - #: NetCDF variable name. self.cf_name = name + """NetCDF variable name.""" - #: NetCDF4 Variable data instance. self.cf_data = data + """NetCDF4 Variable data instance.""" - #: Collection of CF-netCDF variables associated with this variable. self.cf_group = None + """Collection of CF-netCDF variables associated with this variable.""" - #: CF-netCDF formula terms that his variable participates in. self.cf_terms_by_root = {} + """CF-netCDF formula terms that his variable participates in.""" self.cf_attrs_reset() @@ -853,8 +852,9 @@ class CFMeasureVariable(CFVariable): def __init__(self, name, data, measure): CFVariable.__init__(self, name, data) - #: Associated cell measure of the cell variable + self.cf_measure = measure + """Associated cell measure of the cell variable.""" @classmethod def identify(cls, variables, ignore=None, target=None, warn=True): @@ -1121,12 +1121,14 @@ class CFGroup(MutableMapping): """ def __init__(self): - #: Collection of CF-netCDF variables self._cf_variables = {} - #: Collection of netCDF global attributes + """Collection of CF-netCDF variables.""" + self.global_attributes = {} - #: Collection of CF-netCDF variables promoted to a CFDataVariable. + """Collection of netCDF global attributes.""" + self.promoted = {} + """Collection of CF-netCDF variables promoted to a CFDataVariable.""" def _cf_getter(self, cls): # Generate dictionary with dictionary comprehension. @@ -1315,8 +1317,8 @@ def __init__(self, file_source, warn=False, monotonic=False): self._dataset = file_source self._filename = self._dataset.filepath() - #: Collection of CF-netCDF variables associated with this netCDF file self.cf_group = self.CFGroup() + """Collection of CF-netCDF variables associated with this netCDF file.""" # Issue load optimisation warning. if warn and self._dataset.file_format in [ diff --git a/lib/iris/fileformats/dot.py b/lib/iris/fileformats/dot.py index 8405368ade..a04d566131 100644 --- a/lib/iris/fileformats/dot.py +++ b/lib/iris/fileformats/dot.py @@ -11,13 +11,13 @@ from iris._deprecation import warn_deprecated import iris.util -wmsg = ( +_wmsg = ( "iris.fileformats.dot has been deprecated and will be removed in a " "future release. If you make use of this functionality, please contact " "the Iris Developers to discuss how to retain it (which may involve " "reversing the deprecation)." ) -warn_deprecated(wmsg) +warn_deprecated(_wmsg) _GRAPH_INDENT = " " * 4 _SUBGRAPH_INDENT = " " * 8 @@ -48,8 +48,8 @@ def _dot_path(): return path -#: Whether the 'dot' program is present (required for "dotpng" output). DOT_AVAILABLE = _dot_path() is not None +"""Whether the 'dot' program is present (required for "dotpng" output).""" def save(cube, target): diff --git a/lib/iris/fileformats/netcdf/loader.py b/lib/iris/fileformats/netcdf/loader.py index 55d0a88b79..4c92ec9efa 100644 --- a/lib/iris/fileformats/netcdf/loader.py +++ b/lib/iris/fileformats/netcdf/loader.py @@ -41,14 +41,14 @@ import iris.util import iris.warnings -# Show actions activation statistics. DEBUG = False +"""Show actions activation statistics.""" # Get the logger : shared logger for all in 'iris.fileformats.netcdf'. from . import logger # An expected part of the public loader API, but includes thread safety -# concerns so is housed in _thread_safe_nc. +# concerns so is housed in _thread_safe_nc. NetCDFDataProxy = _thread_safe_nc.NetCDFDataProxy @@ -814,6 +814,6 @@ def as_dask(self) -> Iterator[None]: # introducing an additional context in which any cube-specific settings are # 'promoted' into being global ones. -#: The global :class:`ChunkControl` object providing user-control of Dask chunking -#: when Iris loads NetCDF files. CHUNK_CONTROL: ChunkControl = ChunkControl() +"""The global :class:`ChunkControl` object. + Providing user-control of Dask chunking when Iris loads NetCDF files.""" diff --git a/lib/iris/fileformats/netcdf/saver.py b/lib/iris/fileformats/netcdf/saver.py index cfc69143ae..6fea785302 100644 --- a/lib/iris/fileformats/netcdf/saver.py +++ b/lib/iris/fileformats/netcdf/saver.py @@ -59,8 +59,8 @@ # We could use an __all__, but we don't want to maintain one here logger -# Standard CML spatio-temporal axis names. SPATIO_TEMPORAL_AXES = ["t", "z", "y", "x"] +"""Standard CML spatio-temporal axis names.""" # The CF-meaningful attributes which may appear on a data variable. _CF_ATTRS = [ @@ -109,6 +109,8 @@ # for the deprecation of Rotated Mercator in coord_systems.py and # _nc_load_rules/helpers.py . CF_CONVENTIONS_VERSION = "CF-1.7" +"""CF Conventions Version.""" + _FactoryDefn = collections.namedtuple( "_FactoryDefn", ("primary", "std_name", "formula_terms_format") @@ -271,9 +273,9 @@ def _setncattr(variable, name, attribute): return variable.setncattr(name, attribute) -# NOTE : this matches :class:`iris.mesh.MeshXY.ELEMENTS`, -# but in the preferred order for coord/connectivity variables in the file. MESH_ELEMENTS = ("node", "edge", "face") +"""This matches :class:`iris.experimental.ugrid.mesh.MeshXY.ELEMENTS` + but in the preferred order for coord/connectivity variables in the file.""" class SaverFillValueWarning(iris.warnings.IrisSaverFillValueWarning): @@ -353,28 +355,37 @@ def __init__(self, filename, netcdf_format, compute=True): raise ValueError("Unknown netCDF file format, got %r" % netcdf_format) # All persistent variables - #: CF name mapping with iris coordinates + self._name_coord_map = CFNameCoordMap() - #: Map of dimensions to characteristic coordinates with which they are identified + """CF name mapping with iris coordinates.""" + self._dim_names_and_coords = CFNameCoordMap() - #: List of grid mappings added to the file + """Map of dimensions to characteristic coordinates with which they are identified.""" + self._coord_systems = [] - #: A dictionary, listing dimension names and corresponding length + """List of grid mappings added to the file.""" + self._existing_dim = {} - #: A map from meshes to their actual file dimensions (names). - # NB: might not match those of the mesh, if they were 'incremented'. + """A dictionary, listing dimension names and corresponding length.""" + self._mesh_dims = {} - #: A dictionary, mapping formula terms to owner cf variable name + """A map from meshes to their actual file dimensions (names). + NB: might not match those of the mesh, if they were 'incremented'.""" + self._formula_terms_cache = {} - #: Target filepath + """dictionary, mapping formula terms to owner cf variable name.""" + self.filepath = None # this line just for the API page -- value is set later - #: Whether to complete delayed saves on exit. + """Target filepath.""" + self.compute = compute - # N.B. the file-write-lock *type* actually depends on the dask scheduler type. - #: A per-file write lock to prevent dask attempting overlapping writes. + """Whether to complete delayed saves on exit.""" + self.file_write_lock = ( None # this line just for the API page -- value is set later ) + """The file-write-lock *type* actually depends on the dask scheduler type. + A per-file write lock to prevent dask attempting overlapping writes.""" # A list of delayed writes for lazy saving # a list of couples (source, target). diff --git a/lib/iris/fileformats/pp.py b/lib/iris/fileformats/pp.py index c2660d022c..fd625609cb 100644 --- a/lib/iris/fileformats/pp.py +++ b/lib/iris/fileformats/pp.py @@ -62,9 +62,6 @@ NUM_LONG_HEADERS = 45 NUM_FLOAT_HEADERS = 19 -# The header definition for header release 2. -#: A list of (header_name, position_in_header(tuple of)) pairs for -#: header release 2 - using the one-based UM/FORTRAN indexing convention. UM_HEADER_2 = [ ("lbyr", (1,)), ("lbmon", (2,)), @@ -119,10 +116,9 @@ ("bmdi", (63,)), ("bmks", (64,)), ] +"""A list of (header_name, position_in_header(tuple of)) pairs for header release 2. + Using the one-based UM/FORTRAN indexing convention.""" -# The header definition for header release 3. -#: A list of (header_name, position_in_header(tuple of)) pairs for -#: header release 3 - using the one-based UM/FORTRAN indexing convention. UM_HEADER_3 = [ ("lbyr", (1,)), ("lbmon", (2,)), @@ -177,6 +173,8 @@ ("bmdi", (63,)), ("bmks", (64,)), ] +"""A list of (header_name, position_in_header(tuple of)) pairs for header release 3. + Using the one-based UM/FORTRAN indexing convention.""" # A map from header-release-number to header definition UM_HEADERS = {2: UM_HEADER_2, 3: UM_HEADER_3} @@ -184,7 +182,6 @@ # Offset value to convert from UM_HEADER positions to PP_HEADER offsets. UM_TO_PP_HEADER_OFFSET = 1 -#: A dictionary mapping IB values to their names. EXTRA_DATA = { 1: "x", 2: "y", @@ -201,10 +198,8 @@ 14: "y_lower_bound", 15: "y_upper_bound", } +"""A dictionary mapping IB values to their names.""" - -#: Maps lbuser[0] to numpy data type. "default" will be interpreted if -#: no match is found, providing a warning in such a case. LBUSER_DTYPE_LOOKUP = { 1: np.dtype(">f4"), 2: np.dtype(">i4"), @@ -214,6 +209,9 @@ -3: np.dtype(">i4"), "default": np.dtype(">f4"), } +"""Maps lbuser[0] to numpy data type. + "default" will be interpreted if no match is found, providing a warning in + such a case.""" class _WarnComboLoadingMask( @@ -404,9 +402,10 @@ def __init__(self, value, name_mapping_dict=None): # define the name lookup first (as this is the way __setattr__ is # plumbed) - #: A dictionary mapping special attribute names on this object - #: to the slices/indices required to access them. self._name_lookup = name_mapping_dict or {} + """A dictionary mapping special attribute names on this object + to the slices/indices required to access them.""" + self._value = value self._calculate_str_value_from_value() diff --git a/lib/iris/fileformats/rules.py b/lib/iris/fileformats/rules.py index 8299021fb5..00247061f7 100644 --- a/lib/iris/fileformats/rules.py +++ b/lib/iris/fileformats/rules.py @@ -23,10 +23,12 @@ class ConcreteReferenceTarget: """Everything you need to make a real Cube for a named reference.""" def __init__(self, name, transform=None): - #: The name used to connect references with references. self.name = name - #: An optional transformation to apply to the cubes. + """The name used to connect references with references.""" + self.transform = transform + """An optional transformation to apply to the cubes.""" + self._src_cubes = iris.cube.CubeList() self._final_cube = None diff --git a/lib/iris/fileformats/um/_fast_load_structured_fields.py b/lib/iris/fileformats/um/_fast_load_structured_fields.py index 976819ffd5..1335f6ec12 100644 --- a/lib/iris/fileformats/um/_fast_load_structured_fields.py +++ b/lib/iris/fileformats/um/_fast_load_structured_fields.py @@ -294,7 +294,7 @@ def group_structured_fields( * the same for all fields, * completely irrelevant, or * used by a vectorised rule function (such as - :func:`iris.fileformats.pp_load_rules._convert_time_coords`). + :func:`iris.fileformats.pp_load_rules._convert_time_coords`. The function sorts and collates on phenomenon-relevant metadata only, defined as the field components: 'lbuser[3]' (stash), 'lbproc' (statistic), diff --git a/lib/iris/iterate.py b/lib/iris/iterate.py index 0cf7a035be..5a0a5bf6fe 100644 --- a/lib/iris/iterate.py +++ b/lib/iris/iterate.py @@ -45,6 +45,7 @@ def izip(*cubes, **kwargs): Examples -------- + >>> import iris.iterate >>> e_content, e_density = iris.load_cubes( ... iris.sample_data_path('space_weather.nc'), ... ['total electron content', 'electron density']) diff --git a/lib/iris/mesh/components.py b/lib/iris/mesh/components.py index a5936388f8..4bf78625e7 100644 --- a/lib/iris/mesh/components.py +++ b/lib/iris/mesh/components.py @@ -34,47 +34,53 @@ # Configure the logger. logger = get_logger(__name__, propagate=True, handler=False) -#: Numpy "threshold" printoptions default argument. NP_PRINTOPTIONS_THRESHOLD = 10 -#: Numpy "edgeitems" printoptions default argument. +"""Numpy "threshold" printoptions default argument.""" + NP_PRINTOPTIONS_EDGEITEMS = 2 +"""Numpy "edgeitems" printoptions default argument.""" # # MeshXY dimension names namedtuples. # -#: Namedtuple for 1D mesh topology NetCDF variable dimension names. Mesh1DNames = namedtuple("Mesh1DNames", ["node_dimension", "edge_dimension"]) -#: Namedtuple for 2D mesh topology NetCDF variable dimension names. +"""Namedtuple for 1D mesh topology NetCDF variable dimension names.""" + Mesh2DNames = namedtuple( "Mesh2DNames", ["node_dimension", "edge_dimension", "face_dimension"] ) +"""Namedtuple for 2D mesh topology NetCDF variable dimension names.""" # # MeshXY coordinate manager namedtuples. # -#: Namedtuple for 1D mesh :class:`~iris.coords.AuxCoord` coordinates. Mesh1DCoords = namedtuple("Mesh1DCoords", ["node_x", "node_y", "edge_x", "edge_y"]) -#: Namedtuple for 2D mesh :class:`~iris.coords.AuxCoord` coordinates. +"""Namedtuple for 1D mesh :class:`~iris.coords.AuxCoord` coordinates.""" + Mesh2DCoords = namedtuple( "Mesh2DCoords", ["node_x", "node_y", "edge_x", "edge_y", "face_x", "face_y"], ) -#: Namedtuple for ``node`` :class:`~iris.coords.AuxCoord` coordinates. +"""Namedtuple for 2D mesh :class:`~iris.coords.AuxCoord` coordinates.""" + MeshNodeCoords = namedtuple("MeshNodeCoords", ["node_x", "node_y"]) -#: Namedtuple for ``edge`` :class:`~iris.coords.AuxCoord` coordinates. +"""Namedtuple for ``node`` :class:`~iris.coords.AuxCoord` coordinates.""" + MeshEdgeCoords = namedtuple("MeshEdgeCoords", ["edge_x", "edge_y"]) -#: Namedtuple for ``face`` :class:`~iris.coords.AuxCoord` coordinates. +"""Namedtuple for ``edge`` :class:`~iris.coords.AuxCoord` coordinates.""" + MeshFaceCoords = namedtuple("MeshFaceCoords", ["face_x", "face_y"]) +"""Namedtuple for ``face`` :class:`~iris.coords.AuxCoord` coordinates.""" # # MeshXY connectivity manager namedtuples. # -#: Namedtuple for 1D mesh :class:`~iris.mesh.Connectivity` instances. Mesh1DConnectivities = namedtuple("Mesh1DConnectivities", ["edge_node"]) -#: Namedtuple for 2D mesh :class:`~iris.mesh.Connectivity` instances. +"""Namedtuple for 1D mesh :class:`~iris.mesh.Connectivity` instances.""" + Mesh2DConnectivities = namedtuple( "Mesh2DConnectivities", [ @@ -86,6 +92,7 @@ "boundary_node", ], ) +"""Namedtuple for 2D mesh :class:`~iris.mesh.Connectivity` instances.""" class Connectivity(_DimensionalMetadata): @@ -638,12 +645,14 @@ class MeshXY(Mesh): """ # TBD: for volume and/or z-axis support include axis "z" and/or dimension "3" - #: The supported mesh axes. AXES = ("x", "y") - #: Valid range of values for ``topology_dimension``. + """The supported mesh axes.""" + TOPOLOGY_DIMENSIONS = (1, 2) - #: Valid mesh elements. + """Valid range of values for ``topology_dimension``.""" + ELEMENTS = ("edge", "node", "face") + """Valid mesh elements.""" def __init__( self, diff --git a/lib/iris/tests/__init__.py b/lib/iris/tests/__init__.py index 7c6f578a5f..aea88d3be6 100644 --- a/lib/iris/tests/__init__.py +++ b/lib/iris/tests/__init__.py @@ -84,8 +84,8 @@ except ImportError: STRATIFY_AVAILABLE = False -#: Basepath for test results. _RESULT_PATH = os.path.join(os.path.dirname(__file__), "results") +"""Basepath for test results.""" if "--data-files-used" in sys.argv: sys.argv.remove("--data-files-used") diff --git a/lib/iris/tests/graphics/__init__.py b/lib/iris/tests/graphics/__init__.py index 1fe199c8b7..d124a5a25c 100644 --- a/lib/iris/tests/graphics/__init__.py +++ b/lib/iris/tests/graphics/__init__.py @@ -53,10 +53,12 @@ # GraphicsTestMixin. _lock = threading.Lock() -#: Default perceptual hash size. HASH_SIZE = 16 -#: Default maximum perceptual hash hamming distance. +"""Default perceptual hash size.""" + HAMMING_DISTANCE = 2 +"""Default maximum perceptual hash hamming distance.""" + # Prefix for image test results (that aren't yet verified as good to add to # reference images) RESULT_PREFIX = "result-" @@ -164,7 +166,7 @@ def check_graphic(test_id: str, results_dir: Union[str, Path]) -> None: dev_mode = os.environ.get("IRIS_TEST_CREATE_MISSING") - #: The path where the images generated by the tests should go. + # The path where the images generated by the tests should go. test_output_dir = _output_dir() test_output_dir.mkdir(exist_ok=True) diff --git a/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py b/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py index 284d52d3f9..5d751ff5fb 100644 --- a/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py +++ b/lib/iris/tests/unit/analysis/regrid/test_RectilinearRegridder.py @@ -45,8 +45,6 @@ def dim_extender(arr): target_y = np.linspace(0.5, 51, 3) self.target_x, self.target_y = np.meshgrid(target_x, target_y) - #: Expected values, which not quite the analytical value, but - #: representative of the bilinear interpolation scheme. self.expected = np.array( [ [ @@ -71,6 +69,8 @@ def dim_extender(arr): ] ] ) + """Expected values, which not quite the analytical value, but + representative of the bilinear interpolation scheme.""" self.x_dim = 2 self.y_dim = 1 diff --git a/lib/iris/tests/unit/experimental/stratify/test_relevel.py b/lib/iris/tests/unit/experimental/stratify/test_relevel.py index 1f0a5618aa..aebfeafdcb 100644 --- a/lib/iris/tests/unit/experimental/stratify/test_relevel.py +++ b/lib/iris/tests/unit/experimental/stratify/test_relevel.py @@ -28,10 +28,12 @@ class Test(tests.IrisTest): def setUp(self): cube = stock.simple_3d()[:, :1, :1] - #: The data from which to get the levels. self.src_levels = cube.copy() - #: The data to interpolate. + """The data from which to get the levels.""" + self.cube = cube.copy() + """The data to interpolate.""" + self.cube.rename("foobar") self.cube *= 10 self.coord = self.src_levels.coord("wibble") diff --git a/lib/iris/time.py b/lib/iris/time.py index f2bc4a08ce..16d1dbb682 100644 --- a/lib/iris/time.py +++ b/lib/iris/time.py @@ -40,11 +40,11 @@ class PartialDateTime: "microsecond", ) - #: A dummy value provided as a workaround to allow comparisons with - #: :class:`datetime.datetime`. - #: See https://bugs.python.org/issue8005. - #: NB. It doesn't even matter what this value is. timetuple = None + """A dummy value provided as a workaround. + allow comparisons with :class:`datetime.datetime`. + See https://bugs.python.org/issue8005. + NB. It doesn't even matter what this value is.""" def __init__( self, diff --git a/noxfile.py b/noxfile.py index d74a964e94..beabcb4a88 100644 --- a/noxfile.py +++ b/noxfile.py @@ -11,26 +11,29 @@ import nox from nox.logger import logger -#: Default to reusing any pre-existing nox environments. nox.options.reuse_existing_virtualenvs = True +"""Default to reusing any pre-existing nox environments.""" -#: Python versions we can run sessions under +# Python versions we can run sessions under""" _PY_VERSIONS_ALL = ["3.10", "3.11", "3.12"] + +# Python versions latest""" _PY_VERSION_LATEST = _PY_VERSIONS_ALL[-1] -#: One specific python version for docs builds _PY_VERSION_DOCSBUILD = _PY_VERSION_LATEST +"""One specific python version for docs builds""" -#: Cirrus-CI environment variable hook. PY_VER = os.environ.get("PY_VER", _PY_VERSIONS_ALL) +"""Cirrus-CI environment variable hook.""" -#: Default cartopy cache directory. CARTOPY_CACHE_DIR = os.environ.get("HOME") / Path(".local/share/cartopy") +"""Default cartopy cache directory.""" # https://github.com/numpy/numpy/pull/19478 # https://github.com/matplotlib/matplotlib/pull/22099 -#: Common session environment variables. + ENV = dict(NPY_DISABLE_CPU_FEATURES="AVX512F,AVX512CD,AVX512_SKX") +"""Common session environment variables.""" def session_lockfile(session: nox.sessions.Session) -> Path: diff --git a/requirements/locks/py310-linux-64.lock b/requirements/locks/py310-linux-64.lock index 37fd003043..b1418334d7 100644 --- a/requirements/locks/py310-linux-64.lock +++ b/requirements/locks/py310-linux-64.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: ae0608976ff47569c86692e74307d174a2bf60467441b37c1f0679cff7953c4c +# input_hash: 23ca65b44f98c885eddb5a48c90a6dbdae054690364e0048ff656cd25ecf0229 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda#23ab7665c5f63cfb9f1f6195256daac6 @@ -9,7 +9,6 @@ https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed3 https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2#4d59c254e01d9cde7957100457e2d5fb https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda#cbbe59391138ea5ad3658c76912e147f https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda#b80f2f396ca2c28b8c14c437a4ed1e74 -https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-h59595ed_0.conda#df9ae69b85e0cab9bde23eff1e87f183 https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda#26322ec5d7712c3ded99dd656142b8ce https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda#161081fc7cec0bfda0d86d7cb595f8d8 https://conda.anaconda.org/conda-forge/linux-64/utfcpp-4.0.5-ha770c72_0.conda#25965c1d1d5fc00ce2b663b73008e3b7 @@ -18,20 +17,20 @@ https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda# https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2#73aaf86a425cc6e73fcf236a5a46396d https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda#ca0fad6a41ddaef54a153b78eccb5037 +https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda#7ed427f0871fd41cb1d9c17727c17589 https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda#62ee74e96c5ebb0af99386de58cf9553 -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.32.2-h4bc722e_0.conda#8024af1ee7078e37fa3101c0a0296af2 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.32.3-h4bc722e_0.conda#7624e34ee6baebfc80d67bac76cc9d9d https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda#418c6ca5929a611cbd69204907a83995 https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.10-h36c2ea0_0.tar.bz2#ac7bc6a654f8f41b352b38f4051135f8 -https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda#985f2f453fb72408d6b6f1be0f324033 -https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda#3bf7b9fd5a7136126e0234db4b87c8b6 +https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda#fcd2016d1d299f654f81021e27496818 https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2#30186d27e2c9fa62b45fb1476b7200e3 https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2#a8832b479f93521a9e7b5b743803be51 https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda#aec6c91c7371c26392a06708a73c70e5 -https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda#8e88f9389f1165d7c0936fe40d9a9a79 +https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.21-h4bc722e_0.conda#36ce76665bf67f5aac36be7a0d21b7f3 https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda#172bf1cd1ff8629f2b1179945ed45055 https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda#e7ba12deb7020dd080c6c70e7b6f6a3d https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 -https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda#172bcc51059416e7ce99e7b528cede83 +https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda#efab66b82ec976930b96d62a976de8e7 https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda#6456c2620c990cd8dde2428a27ba0bc5 https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda#d66573916ffcf376178462f1b61c941e https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda#ea25936bb4080d843790b586850f82b8 @@ -46,24 +45,18 @@ https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda# https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda#b26e8aa824079e1be0294e7152ca4559 https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda#5aa797f8787fe7a17d1b0821485b5adc https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda#57d7dc60e9325e3de37ff8dffd18e814 -https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda#ec7398d21e2651e0dcb0044d03b9a339 https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda#fcea371545eda051b6deafb24889fc69 https://conda.anaconda.org/conda-forge/linux-64/nettle-3.9.1-h7ab15ed_0.conda#2bf1915cc107738811368afcb0993a59 https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.2-hd590300_1.conda#c66f837ac65e4d1cdeb80e2a1d5fcc3d https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4bc722e_2.conda#e1b454497f9f7c1147fdde4b53f1b512 https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2#22dad4df6e8630e8dff2428f6f6a7036 https://conda.anaconda.org/conda-forge/linux-64/x264-1!164.3095-h166bdaf_2.tar.bz2#6c99772d483f566d59e25037fea2c4b1 -https://conda.anaconda.org/conda-forge/linux-64/xorg-damageproto-1.2.1-h7f98852_1002.tar.bz2#58c9bb067637c5a13a045a7124eeb027 -https://conda.anaconda.org/conda-forge/linux-64/xorg-glproto-1.4.17-h7f98852_1002.tar.bz2#e41bf01f80d46be87dcae2333a766e75 https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2#4b230e8381279d76131116660f5a241a https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda#b462a33c0be1421532f28bfe8f4a7514 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda#2c80dc38fface310c9bd81b17037fee5 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2#be93aabceefa2fac576e971aef407908 -https://conda.anaconda.org/conda-forge/linux-64/xorg-randrproto-1.5.0-h7f98852_1001.tar.bz2#68cce654461713977dac6f9ac1bce89a https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2#06feff3d2634e3097ce2fe681474b534 -https://conda.anaconda.org/conda-forge/linux-64/xorg-util-macros-1.19.3-h7f98852_0.tar.bz2#b1780cc89cf3949f670d6ca2aa6a7e42 https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda#bce9f945da8ad2ae9b1d7165a64d0f87 -https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2#3ceea9668625c18f19530de98b15d5b0 https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2#b4a4381d54784606820704f7b5f05a15 https://conda.anaconda.org/conda-forge/linux-64/xxhash-0.8.2-hd590300_0.conda#f08fb5c89edfc4aadee1c81d4cfb1fa1 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161070d867d1b1204ea749c8eec4ef0 @@ -72,21 +65,21 @@ https://conda.anaconda.org/conda-forge/linux-64/aom-3.9.1-hac33072_0.conda#34672 https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda#c2f83a5ddadadcdb08fe05863295ee97 https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda#b1b879d6d093f55dd40d58b5eb2f0699 https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda#53fb86322bdb89496d7579fe3f02fd61 -https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda#621d814955342209dc8e7f87c41f1ba0 +https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-he02047a_1.conda#aab9195bc018b82dc77a84584b36cce9 https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda#c94a5994ef49749880a8139cf9afcbe1 https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda#f87c7b7c2cb45f323ffbce941c78ab7c https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda#bd77f8da987968ec3927990495dc22e4 -https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda#cc47e1facc155f91abd89b11e48e72ff +https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda#8b189310083baabfb622af68fd9d3ae3 https://conda.anaconda.org/conda-forge/linux-64/jsoncpp-1.9.5-h4bd325d_1.tar.bz2#ae7f50dd1e78c7e78b5d2cf7062e559d https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2#76bbff344f0134279f225174e9064c8f https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_he02047a_1.conda#c48fc56ec03229f294176923c3265c05 https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda#5e97e271911b8b2001a8b71860c32faa -https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda#dd197c968bf9760bba0031888d431ede +https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda#4fab9799da9571266d05ca5503330655 https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda#f07002e225d7a60a694d42a7bf5ff53f https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda#5fc11c6020d421960607d821310fcd4d https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.122-h4ab18f5_0.conda#bbfc4dbe5e97b385ef088f354d65e563 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 -https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda#b63d9b6da3653179a278077f0de20014 +https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda#9aba7960731e6b4547b3a52f812ed801 https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda#f4ca84fbd6d06b0a052fb2d5b96dde41 https://conda.anaconda.org/conda-forge/linux-64/libmo_unpack-3.1.2-hf484d3e_1001.tar.bz2#95f32a6a5a666d33886ca5627239f03d https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda#700ac6ea6d53d5510591c4344d5c989a @@ -99,9 +92,11 @@ https://conda.anaconda.org/conda-forge/linux-64/libvpx-1.14.1-hac33072_0.conda#c https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda#151cba22b85a989c2d6ef9633ffee1e4 https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda#ac79812548e7e8cf61f7b0abdef01d3b https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda#318b08df404f9c9be5712aaa5a6f0bb0 +https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-h70512c7_5.conda#4b652e3e572cbb3f297e77c96313faea +https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-he02047a_1.conda#e46f7ac4917215b49df2ea09a694a3fa https://conda.anaconda.org/conda-forge/linux-64/openh264-2.4.1-h59595ed_0.conda#3dfcf61b8e78af08110f5229f79580af https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2#56ee94e34b71742bbdfa832c974e47a8 -https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda#3914f7ac1761dce57102c72ca7c35d01 +https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda#df359c09c41cd186fffb93a2d87aa6f5 https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda#71004cbf7924e19c02746ccde9fd7123 https://conda.anaconda.org/conda-forge/linux-64/pugixml-1.14-h59595ed_0.conda#2c97dd90633508b422c11bd3018206ab https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 @@ -119,22 +114,29 @@ https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.cond https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda#9ae35c3d96db2c94ce0cef86efdfa2cb https://conda.anaconda.org/conda-forge/linux-64/gl2ps-1.4.2-hae5d5c5_1.conda#00e642ec191a19bf806a3915800e9524 https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda#3f43953b7d3fb3aaa1d0d0723d91e368 -https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda#02e41ab5834dcdcc8590cf29d9526f50 -https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda#6ea440297aacee4893f02ad759e6ffbc +https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda#1091193789bb830127ed067a9e01ac57 +https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h315aac3_2.conda#b0143a3e98136a680b728fdf9b42a258 https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda#ae05ece66d3924ac3d48b4aa3fa96cec https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda#6945825cebd2aeb16af4c69d97c32c13 https://conda.anaconda.org/conda-forge/linux-64/libtheora-1.1.1-h4ab18f5_1006.conda#553281a034e9cf8693c9df49f6c78ea1 -https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda#66f03896ffbe1a110ffda05c7a856504 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-h4c95cb1_3.conda#0ac9aff6010a7751961c8e4b863a40e7 +https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h46a8edc_4.conda#a7e3a62981350e232e0e7345b5aea580 +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-he7c6b58_4.conda#08a9265c637230c37cb1be4a6cad4536 +https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-ha479ceb_5.conda#82776ee8145b9d1fd6546604de4b351d https://conda.anaconda.org/conda-forge/linux-64/python-3.10.14-hd12c33a_0_cpython.conda#2b4ba962994e8bd4be9ff5b64b75aff2 https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda#77ea8dff5cf8550cc8f5629a6af56323 https://conda.anaconda.org/conda-forge/linux-64/udunits2-2.2.28-h40f5838_3.conda#6bb8deb138f87c9d48320ac21b87e7a1 https://conda.anaconda.org/conda-forge/noarch/wayland-protocols-1.36-hd8ed1ab_0.conda#c6f690e7d4abf562161477f14533cfd8 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda#8637c3e5821654d0edf97e2b0404b443 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda#ad748ccca349aec3e91743e08b5e2b50 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda#0e0cbe0564d03a99afd5fd7b362feecd +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda#608e0ef8256b81d04456e8d211eee3e8 https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda#4a6d410296d7e39f00bacdee7df046e9 +https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.3.5-pyhd8ed1ab_0.conda#d904abda207d2dba054fd820d34bbaee https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda#def531a3ac77b7fb8c21d17bb5d0badb https://conda.anaconda.org/conda-forge/noarch/antlr-python-runtime-4.11.1-pyhd8ed1ab_0.tar.bz2#15109c4977d39ad7aa3423f57243e286 +https://conda.anaconda.org/conda-forge/noarch/anyascii-0.3.2-pyhd8ed1ab_0.conda#70b6fc71d80ea6176f5302ebbeb13d8a https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda#f730d54ba9cd543666d7220c9f7ed563 -https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda#5e4c0743c70186509d1412e03c2d8dfa +https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda#6732fa52eb8e66e5afeb32db8701a791 https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda#f27a24d46e3ea7b70a1f98e50c62508f https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda#1f95722c94f00b69af69a066c7433714 https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda#24e7fd6ca65997938fff9e5ab6f653e4 @@ -145,7 +147,8 @@ https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 https://conda.anaconda.org/conda-forge/noarch/colorcet-3.1.0-pyhd8ed1ab_0.conda#4d155b600b63bc6ba89d91fab74238f8 https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda#5cd86562580f274031ede6aa6aa24441 -https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.10-py310hc6cd4ac_0.conda#bd1d71ee240be36f1d85c86177d6964f +https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.11-py310hea249c9_0.conda#f67268cb88129183c3368663f45932eb +https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2#ecfff944ba3960ecb334b9a2663d708d https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda#db16c66b759a64dc5183d69cc3745a52 https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_0.conda#e8cd5d629f65bdf0f3bb312cde14659e https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda#d02ae936e42063ca46af6cdad2dbd1e0 @@ -155,7 +158,7 @@ https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.con https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.1-py310h2372a71_0.conda#f20cd4d9c1f4a8377d0818c819918bbb https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda#996bf792cdb8c0ac38ff54b9fde56841 https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.12-hb9ae30d_0.conda#201db6c2d9a3c5e46573ac4cb2e92f4f -https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda#219ba82e95d7614cf7140d2a4afc0926 +https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda#c7f243bbaea97cd6ea1edd693270100e https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda#4d8df0b0db060d33c9a702ada998a8fe https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2#914d6646c4dbb1fd3ff539830a12fd71 https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2#9f765cbfab6870c8435b9eefecd7a1f4 @@ -165,12 +168,12 @@ https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda https://conda.anaconda.org/conda-forge/noarch/iris-sample-data-2.4.0-pyhd8ed1ab_0.tar.bz2#18ee9c07cf945a33f92caf1ee3d23ad9 https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py310hd41b1e2_1.conda#b8d67603d43b23ce7e988a5d81a7ab79 https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda#51bb7010fc86f70eee639b4bb7a894f5 -https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda#32ddb97f897740641d8d46a829ce1704 -https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda#1a2a0cd3153464fee6646f3dd6dad9b8 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda#b8afb3e3cb3423cc445cf611ab95fdb0 +https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-23_linux64_openblas.conda#96c8450a40aa2b9733073a9460de972c +https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda#d4529f4dff3057982a7617c7ac58fde3 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.9.1-hdb1bdb2_0.conda#7da1d242ca3591e174a3c7d82230d3c0 https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.1-default_hecaa2ac_1000.conda#f54aeebefb5c5ff84eca4fb05ca8aa3a -https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-h8b73ec9_1.conda#16d94b3586ef3558e5a583598524deb4 -https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.4.0-h2c329e2_0.conda#80030debaa84cfc31755d53742df3ca6 +https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-h8b73ec9_2.conda#2e25bb2f53e4a48873a936f8ef53e592 +https://conda.anaconda.org/conda-forge/linux-64/libpq-16.4-h482b261_0.conda#0f74c5581623f860e7baca042d9d7139 https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 https://conda.anaconda.org/conda-forge/linux-64/loguru-0.7.2-py310hff52083_1.conda#157e6221a079a60c7f6f6fcb87c722aa https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py310h2372a71_0.conda#f6703fa0214a00bf49d1bef6dc7672d0 @@ -190,9 +193,9 @@ https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda#98206ea9954216ee7540f0c773f2104d https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-3.4.1-py310h2372a71_0.conda#b631b889b0b4bc2fca7b8b977ca484b2 https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda#3eeeeb9e4827ace8c0c1419c85d590ad -https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda#bb010e368de4940771368bc3dc4c63e7 +https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py310h5b4e0ec_0.conda#ad8de7b4ac482217959cc1e8fe0cc56d https://conda.anaconda.org/conda-forge/noarch/scooby-0.10.0-pyhd8ed1ab_0.conda#9e57330f431abbb4c88a5f898a4ba223 -https://conda.anaconda.org/conda-forge/noarch/setuptools-71.0.3-pyhd8ed1ab_0.conda#d4b6e6ce2f7bcaec484b81c447df1028 +https://conda.anaconda.org/conda-forge/noarch/setuptools-72.1.0-pyhd8ed1ab_0.conda#e06d4c26df4f958a8d38696f2c344d15 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2#6d6552722448103793743dabfbda532d @@ -205,53 +208,60 @@ https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda#2f https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py310hc51659f_0.conda#c5a6aac4a1e0989986d9f06b3c2be2a0 https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda#ebe6952715e1d5eb567eeebf25250fa7 https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py310h2372a71_0.conda#72637c58d36d9475fda24700c9796f19 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda#0b5293a157c2b5cd513dd1b03d8d3aae +https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda#d44e3b085abcaef02983c6305b84b584 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda#a0901183f08b6c7107aab109733a3c91 +https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda#b193af204da1bfb8c13882d131a14bd2 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda#82b6df12252e6f32402b96dacc656fec https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2#e9a21aa4d5e3e5f1aed71e8cefd46b6a https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda#ed67c36f215b310412b2af935bf3e530 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda#ae92aab42726eb29d16488924f7312cb https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda#cf30c2c15b82aacb07f9c09e28ff2275 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda#49808e59df5535116f6878b2a820d6f4 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.0-pyhd8ed1ab_0.conda#05b6bcb391b5be17374f7ad0aeedc479 https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.5-pyhd8ed1ab_0.conda#1bb1ef9806a9a20872434f58b3e7fc1a https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2#d1e1eb7e21a9e2c74279d87dafb68156 https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda#9669586875baeced8fc30c0826c3270e https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda#332493000404d8411859539a5a630865 -https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda#b6d90276c5aee9b4407dd94eb0cd40a8 -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda#45846a970e71ac98fd327da5d40a0a2c +https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda#fceaedf1cdbcb02df9699a0d9b005292 +https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py310h2fdcea3_0.conda#6ac912f6208a15d35955ab73a4e5efda https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda#7c2b6931f9b3548ed78478332095c3e9 -https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.0-py310h5b4e0ec_0.conda#a13d72c877b47870042897a0e667cd3a +https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.1-py310h5b4e0ec_0.conda#9767c8416fd3b2197dbfedd5ea971337 https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py310h2372a71_0.conda#21362970a6fea90ca507c253c20465f2 https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py310h5b4e0ec_0.conda#2c5257cb35d1946f5e80a0cfd69ed7ec https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2#b748fbf7060927a6e82df7cb5ee8f097 https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda#7e1729554e209627636a0f6fabcdd115 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda#3286556cdd99048d198f72c3f6f69103 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.2.0-pyha770c72_0.conda#c261d14fc7f49cdd403868998a18c318 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda#7b86ecb7d3557821c649b3c31e3eb9f2 -https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda#4b31699e0ec5de64d5896e580389c9a1 -https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h119a65a_9.conda#cfebc557e54905dadc355c0e9f003004 +https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-23_linux64_openblas.conda#eede29b40efa878cbe5bdcb767e97310 +https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp18.1-18.1.8-default_hf981a13_2.conda#b0f8c590aa86d9bee5987082f7f15bdf +https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h9def88c_2.conda#ba2d12adbea9de311297f2b577f4bb86 +https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-hd3e95f3_10.conda#30ee3a29c84cf7b842a8c5828c4b7c13 +https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.0-ha6d2627_1004.conda#df069bea331c8486ac21814969301c1f https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.7-hd590300_0.conda#2b7b0d827c6447cc1d85dc06d5b5de46 -https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda#b083767b6c877e24ee597d93b87ab838 +https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-23_linux64_openblas.conda#2af0879961951987e464722fd00ec1e0 https://conda.anaconda.org/conda-forge/linux-64/libva-2.22.0-hb711507_0.conda#d12f659072132c9d16e497073fc1f68b +https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda#e2eaefa4de2b7237af7c907b8bbc760a https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda#dfe0528d0f1c16c1f7c528ea5536ab30 https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda#0badf9c54e24cecfb0ad2f99d680c163 https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py310hebfe307_0.conda#89d70dfe2d59edcefc3881be6bff33a6 -https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda#f586ac1e56c8638b64f9c8122a7b8a67 +https://conda.anaconda.org/conda-forge/noarch/pip-24.2-pyhd8ed1ab_0.conda#6721aef6bfe5937abe70181545dd2c51 https://conda.anaconda.org/conda-forge/linux-64/proj-9.3.1-h1d62c97_0.conda#44ec51d0857d9be26158bb85caa74fdb -https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda#0f3f49c22c7ef3a1195fa61dad3c43be +https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda#e010a224b90f1f623a917c35addbb924 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda#2cf4264fffb9e6eff6031c5b6884d61c https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.12.0-h434a139_3.conda#c667c11d1e488a38220ede8a34441bff https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda#52d648bd608f5737b123f510bb5514b5 https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda#284008712816c64c85bf2b7fa9f3b264 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.5-h7f98852_1.tar.bz2#bebd3814ec2355fab6a474b07ed73093 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.2-h7f98852_1.tar.bz2#5b0f7da25a4556c9619c3e4b4a98ab07 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.4-h4ab18f5_2.conda#79e46d4a6ccecb7ee1912042958a8758 https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.4-py310h2372a71_0.conda#4ad35c8f6a64a6ab708780dad603aef4 +https://conda.anaconda.org/conda-forge/linux-64/astroid-3.3.2-py310hff52083_0.conda#4c866e50f9b72e6a6c0aaa9ca367f1b3 https://conda.anaconda.org/conda-forge/noarch/asv_runner-0.2.1-pyhd8ed1ab_0.conda#fdcbeb072c80c805a2ededaa5f91cd79 https://conda.anaconda.org/conda-forge/noarch/async-timeout-4.0.3-pyhd8ed1ab_0.conda#3ce482ec3066e6d809dbbb1d1679f215 +https://conda.anaconda.org/conda-forge/linux-64/glew-2.1.0-h9c3ff4c_2.tar.bz2#fb05eb5c47590b247658243d27fc32f1 https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.9-hb077bed_0.conda#33eded89024f21659b1975886a4acf70 -https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hfac3d4d_0.conda#c7b47c64af53e8ecee01d101eeab2342 -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda#5f8c8ebbe6413a7838cf6ecf14d5d31b +https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda#76b32dcf243444aea9c6b804bcfa40b8 +https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.2.0-hd8ed1ab_0.conda#0fd030dce707a6654472cf7619b0b01b https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.4-pyhd8ed1ab_0.conda#a284ff318fbdb0dd83928275b4b6087c https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda#a908e463c710bd6b10a9eaa89fdf003c -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-2024.2.0-h2da1b83_1.conda#9511859bf5221238a2d3fb5322af01d5 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-2024.3.0-h2da1b83_0.conda#bb7a2589859c7475e38c1af677e16698 https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py310hb13e2d6_0.conda#6593de64c935768b6bad3e19b3e978be https://conda.anaconda.org/conda-forge/noarch/pbr-6.0.0-pyhd8ed1ab_0.conda#8dbab5ba746ed14aa32cb232dc437f8f https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py310hd5c30f3_5.conda#dc2ee770a2299307f3c127af79160d25 @@ -261,69 +271,69 @@ https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-8.1.0-pyhd8ed1ab_0. https://conda.anaconda.org/conda-forge/linux-64/tbb-devel-2021.12.0-hfcbfbdb_3.conda#dd410ed856f34c994f1549079ff601bf https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py310hd41b1e2_4.conda#35e87277fba9944b8a975113538bb5df https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py310h64cae3c_0.conda#b527de1849629f2635dafc77745b015a -https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.9.5-py310h2372a71_0.conda#00b6dda5bb36ac4226a051db2d406d22 +https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.10.3-py310h5b4e0ec_0.conda#dbdc5a34d9a4796ab695512d6b9c2313 https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py310h261611a_0.conda#5c0e2cd80ceab2ac5201459cc016b88b https://conda.anaconda.org/conda-forge/noarch/colorspacious-1.1.2-pyh24bf2e0_0.tar.bz2#b73afa0d009a51cabd3ec99c4d2ef4f3 https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py310hd41b1e2_0.conda#60ee50b1968f802f2a487ba36d4cce0d -https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda#755e47653ae38f5c50f1435af756e844 +https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.8.0-pyhd8ed1ab_0.conda#bf68bf9ff9a18f1b17aa8c817225aee0 https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda#f80cc5989f445f23b1622d6c455896d9 -https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.1-h39113c1_2.conda#25db2ea6b8fefce451369e2cc826f6f4 -https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-1.0.1-h97afed2_0.conda#00bd7406d24d6574f2de3839b60e0925 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-batch-plugin-2024.2.0-hb045406_1.conda#70d82a64e6d07f4d6e07cae6b0bd4bd1 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-plugin-2024.2.0-hb045406_1.conda#f1e2a8ded23cef03804c4edb2edfb986 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-hetero-plugin-2024.2.0-h5c03a75_1.conda#95d2d3baaa1e456ef65c713a5d99b815 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-cpu-plugin-2024.2.0-h2da1b83_1.conda#9e49f87d8f99dc9724f52b3fac904106 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-gpu-plugin-2024.2.0-h2da1b83_1.conda#a9712fae44d01d906e228c49235e3b89 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-npu-plugin-2024.2.0-he02047a_1.conda#5c2d064181e686cf5cfac6f1a1ee4e91 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-ir-frontend-2024.2.0-h5c03a75_1.conda#89addf0fc0f489fa0c076f1c8c0d62bf -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-onnx-frontend-2024.2.0-h07e8aee_1.conda#9b0a13989b35302e47da13842683804d -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-paddle-frontend-2024.2.0-h07e8aee_1.conda#7b3680d3fd00e1f91d5faf9c97c7ae78 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-pytorch-frontend-2024.2.0-he02047a_1.conda#ac43b516c128411f84f1e19c875998f1 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-frontend-2024.2.0-h39126c6_1.conda#11acf52cac790edcf087b89e83834f7d -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-lite-frontend-2024.2.0-he02047a_1.conda#e7f91b35e3aa7abe880fc9192a761fc0 +https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.3-h1dc1e6a_0.conda#2a66267ba586dadd110cc991063cfff7 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-batch-plugin-2024.3.0-hb045406_0.conda#2a18663e879095118cb851620b175436 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-plugin-2024.3.0-hb045406_0.conda#45bf3996fcd0caf69a3dd63b7fc7cd9e +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-hetero-plugin-2024.3.0-h5c03a75_0.conda#030fd5b2ce0b19c2c4db10890e121970 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-cpu-plugin-2024.3.0-h2da1b83_0.conda#98d9fdbb32d375ba877166737430afc4 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-gpu-plugin-2024.3.0-h2da1b83_0.conda#c0957603b82ec549c119f7103968c62d +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-npu-plugin-2024.3.0-h2da1b83_0.conda#81879bcb0d246113118ab274965f11be +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-ir-frontend-2024.3.0-h5c03a75_0.conda#a512abca9b69f972671ff03f818b93f7 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-onnx-frontend-2024.3.0-h07e8aee_0.conda#89ab3cfdbf7b9a94643332cf0a8ec0e9 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-paddle-frontend-2024.3.0-h07e8aee_0.conda#b0516d69280d72da03d20d8cc8172b15 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-pytorch-frontend-2024.3.0-he02047a_0.conda#92654c43075ffd142caae9417bab9c11 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-frontend-2024.3.0-h39126c6_0.conda#5d49cf778f9dadc9438073b9b4bdf587 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-lite-frontend-2024.3.0-he02047a_0.conda#177e64dac3b9f83f0a505b25c698dc09 https://conda.anaconda.org/conda-forge/linux-64/mo_pack-0.3.0-py310h2372a71_1.conda#dfcf64f67961eb9686676f96fdb4b4d1 https://conda.anaconda.org/conda-forge/linux-64/netcdf-fortran-4.6.1-nompi_h228c76a_104.conda#91bc3ac73308181d55a09d9e4aeb4496 https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py310hf9f9076_1.conda#18100768350158f1795ab9ad7d06d5ca https://conda.anaconda.org/conda-forge/linux-64/pango-1.54.0-h4c5309f_1.conda#7df02e445367703cd87a574046e3a6f0 https://conda.anaconda.org/conda-forge/linux-64/pykdtree-1.3.12-py310h261611a_1.conda#d524e0873c62fcfcc154708772d014df -https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.6.0-py310h261611a_0.conda#04a405ee0bccb4de8d1ed0c87704f5f6 +https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.7.0-py310h91a95bf_0.conda#c061c6689f1460be705892f53c84ac26 +https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.7.2-hb12f9c5_4.conda#5dd4fddb73e5e4fef38ef54f35c155cd https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py310h93e2701_1.conda#c6b2a8134aa49940afe552f69bdef957 https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.5-py310h019a838_0.conda#2902ec08257b19d75d08a375cdc37c2c https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-apidoc-0.3.0-py_1.tar.bz2#855b087883443abb10f5faf6eef40860 https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda#e804c43f58255e977093a2298e442bb8 https://conda.anaconda.org/conda-forge/linux-64/cf-units-3.2.0-py310h261611a_5.conda#643414a9f73226b2a6a43a4800734d3b -https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda#2ae917b0098f286f63f69ec9365fb0b1 -https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.191-h924a536_0.conda#73d050766060acd2b3a289f27d857090 +https://conda.anaconda.org/conda-forge/noarch/distributed-2024.8.0-pyhd8ed1ab_0.conda#f9a7fbaeb79d4b57d1ed742930b4eec4 https://conda.anaconda.org/conda-forge/linux-64/esmf-8.6.1-nompi_h0a5817f_2.conda#e23c62f75f67166cf4ca137fc8bcdce7 -https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-7.0.1-gpl_h9be9148_104.conda#107fd9222d9f628608b07b69abba9420 +https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-7.0.2-gpl_h0db5852_100.conda#327684cc0682b8daa4b25f48d45e1dc7 https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h6470451_5.conda#1483ba046164be27df7f6eddbcec3a12 https://conda.anaconda.org/conda-forge/noarch/imagehash-4.3.1-pyhd8ed1ab_0.tar.bz2#132ad832787a2156be1f1b309835001a https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.58.2-h9564881_1.conda#c6a47e6f551890e82e92e4c1b84be353 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py310hef631a5_2.conda#b3fa3fc2a0fa8b53b913c94297b12e27 https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py310hf3005e6_101.conda#409736627835306542425033e2a41dd2 -https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda#724bc4489c1174fc8e3233b0624fa51f +https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda#1822e87a5d357f79c6aab871d86fb062 https://conda.anaconda.org/conda-forge/linux-64/python-stratify-0.3.0-py310h261611a_2.conda#62de771a916e107222348d9ae612b0c5 https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda#5ede4753180c7a550a443c430dc8ab52 -https://conda.anaconda.org/conda-forge/noarch/wslink-2.1.1-pyhd8ed1ab_0.conda#6b1aef9c878c58baa7bb9f0d44457174 +https://conda.anaconda.org/conda-forge/noarch/wslink-2.1.2-pyhd8ed1ab_0.conda#4cbb17383064ccfb46797aea03d70fc7 https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.23.0-py310hf9f9076_1.conda#dd5c97834c12bae782b35261e0bea7b4 https://conda.anaconda.org/conda-forge/noarch/cmocean-4.0.3-pyhd8ed1ab_0.conda#53df00540de0348ed1b2a62684dd912b https://conda.anaconda.org/conda-forge/noarch/esmpy-8.6.1-pyhc1e730c_0.conda#25a9661177fd68bfdb4314fd658e5c3b https://conda.anaconda.org/conda-forge/linux-64/graphviz-11.0.0-hc68bbd7_0.conda#52a531ef95358086a56086c45d97ab75 -https://conda.anaconda.org/conda-forge/linux-64/mesalib-24.1.4-h3ac77ca_0.conda#083464147e4169cf088522070964e0cf https://conda.anaconda.org/conda-forge/noarch/nc-time-axis-1.4.1-pyhd8ed1ab_0.tar.bz2#281b58948bf60a2582de9e548bcc5369 https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda#8dab97d8a9616e07d779782995710aed -https://conda.anaconda.org/conda-forge/linux-64/vtk-base-9.3.1-osmesa_py310ha0fd742_101.conda#b9addfb3506a4e2d831f1c7a66d06fe7 -https://conda.anaconda.org/conda-forge/linux-64/vtk-io-ffmpeg-9.3.1-osmesa_py310hd1cd433_101.conda#bd12505efaf8ce18d23fe74721b3e186 -https://conda.anaconda.org/conda-forge/linux-64/vtk-9.3.1-osmesa_py310h7c0142d_101.conda#4e64cbf6d1c4d0eb1d8d86d12c4b777c -https://conda.anaconda.org/conda-forge/noarch/pyvista-0.44.0-pyhd8ed1ab_0.conda#16270d42141769c8342e067d25acc6ce +https://conda.anaconda.org/conda-forge/linux-64/vtk-base-9.3.1-qt_py310he980d54_201.conda#1441f68d1904de22704db8d6224ea38f +https://conda.anaconda.org/conda-forge/linux-64/vtk-io-ffmpeg-9.3.1-qt_py310he1e5eab_201.conda#94b3c3d60d08a8b013d417884d8bb0f7 +https://conda.anaconda.org/conda-forge/linux-64/vtk-9.3.1-qt_py310hadc0db7_201.conda#ff0388cff08839605a8e55cdcc385980 +https://conda.anaconda.org/conda-forge/noarch/pyvista-0.44.1-pyhd8ed1ab_0.conda#0731b45087c0358ca8b7d9fe855dec1a https://conda.anaconda.org/conda-forge/noarch/geovista-0.5.1-pyhd8ed1ab_0.conda#22958696ccc609071ba40867090bfd3a https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.4-pyhd8ed1ab_0.conda#c7c50dd5192caa58a05e6a4248a27acb +https://conda.anaconda.org/conda-forge/noarch/sphinx-autoapi-3.2.1-pyhd8ed1ab_0.conda#5147fb23b7c38041fadea123fb4bbe4e https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 -https://conda.anaconda.org/conda-forge/noarch/sphinx-design-0.6.0-pyhd8ed1ab_0.conda#b04f3c04e4f7939c6207dc0c0355f468 -https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.16.0-pyhd8ed1ab_0.conda#add28691ee89e875b190eda07929d5d4 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda#611a35a27914fac3aa37611a6fe40bb5 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda#d7e4954df0d3aea2eacc7835ad12671d -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda#7e1e7437273682ada2ed5e9e9714b140 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda#26acae54b06f178681bfb551760f5dd1 -https://conda.anaconda.org/conda-forge/noarch/sphinx-7.4.5-pyhd8ed1ab_0.conda#98a3e9786dd637216c6a028f5061cd71 +https://conda.anaconda.org/conda-forge/noarch/sphinx-design-0.6.1-pyhd8ed1ab_0.conda#51b2433e4a223b14defee96d3caf9bab +https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.17.1-pyhd8ed1ab_0.conda#0adfccc6e7269a29a63c1c8ee3c6d8ba +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_0.conda#9075bd8c033f0257122300db914e49c9 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-2.0.0-pyhd8ed1ab_0.conda#b3bcc38c471ebb738854f52a36059b48 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_0.conda#e25640d692c02e8acfff0372f547e940 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_0.conda#d6e5ea5fe00164ac6c2dcc5d76a42192 +https://conda.anaconda.org/conda-forge/noarch/sphinx-7.4.7-pyhd8ed1ab_0.conda#c568e260463da2528ecfd7c5a0b41bbd https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda#e507335cb4ca9cff4c3d0fa9cdab255e + diff --git a/requirements/locks/py311-linux-64.lock b/requirements/locks/py311-linux-64.lock index 9ef2aa51f7..43f9562f02 100644 --- a/requirements/locks/py311-linux-64.lock +++ b/requirements/locks/py311-linux-64.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: 68bd288d5cf8db4a84a47fd6676db6b9710bd88e4fdb0b2228991b72ac3d4336 +# input_hash: fa7975495fd8929a2c38f03596fcdfb35679c5755c2760ffceda78251078c6b6 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda#23ab7665c5f63cfb9f1f6195256daac6 @@ -9,7 +9,6 @@ https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed3 https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2#4d59c254e01d9cde7957100457e2d5fb https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda#cbbe59391138ea5ad3658c76912e147f https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda#b80f2f396ca2c28b8c14c437a4ed1e74 -https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-h59595ed_0.conda#df9ae69b85e0cab9bde23eff1e87f183 https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda#d786502c97404c94d7d58d258a445a65 https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda#161081fc7cec0bfda0d86d7cb595f8d8 https://conda.anaconda.org/conda-forge/linux-64/utfcpp-4.0.5-ha770c72_0.conda#25965c1d1d5fc00ce2b663b73008e3b7 @@ -18,20 +17,20 @@ https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda# https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2#73aaf86a425cc6e73fcf236a5a46396d https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda#ca0fad6a41ddaef54a153b78eccb5037 +https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda#7ed427f0871fd41cb1d9c17727c17589 https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda#62ee74e96c5ebb0af99386de58cf9553 -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.32.2-h4bc722e_0.conda#8024af1ee7078e37fa3101c0a0296af2 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.32.3-h4bc722e_0.conda#7624e34ee6baebfc80d67bac76cc9d9d https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda#418c6ca5929a611cbd69204907a83995 https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.10-h36c2ea0_0.tar.bz2#ac7bc6a654f8f41b352b38f4051135f8 -https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda#985f2f453fb72408d6b6f1be0f324033 -https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda#3bf7b9fd5a7136126e0234db4b87c8b6 +https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda#fcd2016d1d299f654f81021e27496818 https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2#30186d27e2c9fa62b45fb1476b7200e3 https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2#a8832b479f93521a9e7b5b743803be51 https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda#aec6c91c7371c26392a06708a73c70e5 -https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda#8e88f9389f1165d7c0936fe40d9a9a79 +https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.21-h4bc722e_0.conda#36ce76665bf67f5aac36be7a0d21b7f3 https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda#172bf1cd1ff8629f2b1179945ed45055 https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda#e7ba12deb7020dd080c6c70e7b6f6a3d https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 -https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda#172bcc51059416e7ce99e7b528cede83 +https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda#efab66b82ec976930b96d62a976de8e7 https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda#6456c2620c990cd8dde2428a27ba0bc5 https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda#d66573916ffcf376178462f1b61c941e https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda#ea25936bb4080d843790b586850f82b8 @@ -46,24 +45,18 @@ https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda# https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda#b26e8aa824079e1be0294e7152ca4559 https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda#5aa797f8787fe7a17d1b0821485b5adc https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda#57d7dc60e9325e3de37ff8dffd18e814 -https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda#ec7398d21e2651e0dcb0044d03b9a339 https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda#fcea371545eda051b6deafb24889fc69 https://conda.anaconda.org/conda-forge/linux-64/nettle-3.9.1-h7ab15ed_0.conda#2bf1915cc107738811368afcb0993a59 https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.2-hd590300_1.conda#c66f837ac65e4d1cdeb80e2a1d5fcc3d https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4bc722e_2.conda#e1b454497f9f7c1147fdde4b53f1b512 https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2#22dad4df6e8630e8dff2428f6f6a7036 https://conda.anaconda.org/conda-forge/linux-64/x264-1!164.3095-h166bdaf_2.tar.bz2#6c99772d483f566d59e25037fea2c4b1 -https://conda.anaconda.org/conda-forge/linux-64/xorg-damageproto-1.2.1-h7f98852_1002.tar.bz2#58c9bb067637c5a13a045a7124eeb027 -https://conda.anaconda.org/conda-forge/linux-64/xorg-glproto-1.4.17-h7f98852_1002.tar.bz2#e41bf01f80d46be87dcae2333a766e75 https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2#4b230e8381279d76131116660f5a241a https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda#b462a33c0be1421532f28bfe8f4a7514 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda#2c80dc38fface310c9bd81b17037fee5 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2#be93aabceefa2fac576e971aef407908 -https://conda.anaconda.org/conda-forge/linux-64/xorg-randrproto-1.5.0-h7f98852_1001.tar.bz2#68cce654461713977dac6f9ac1bce89a https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2#06feff3d2634e3097ce2fe681474b534 -https://conda.anaconda.org/conda-forge/linux-64/xorg-util-macros-1.19.3-h7f98852_0.tar.bz2#b1780cc89cf3949f670d6ca2aa6a7e42 https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda#bce9f945da8ad2ae9b1d7165a64d0f87 -https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2#3ceea9668625c18f19530de98b15d5b0 https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2#b4a4381d54784606820704f7b5f05a15 https://conda.anaconda.org/conda-forge/linux-64/xxhash-0.8.2-hd590300_0.conda#f08fb5c89edfc4aadee1c81d4cfb1fa1 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161070d867d1b1204ea749c8eec4ef0 @@ -72,21 +65,21 @@ https://conda.anaconda.org/conda-forge/linux-64/aom-3.9.1-hac33072_0.conda#34672 https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda#c2f83a5ddadadcdb08fe05863295ee97 https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda#b1b879d6d093f55dd40d58b5eb2f0699 https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda#53fb86322bdb89496d7579fe3f02fd61 -https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda#621d814955342209dc8e7f87c41f1ba0 +https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-he02047a_1.conda#aab9195bc018b82dc77a84584b36cce9 https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda#c94a5994ef49749880a8139cf9afcbe1 https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda#f87c7b7c2cb45f323ffbce941c78ab7c https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda#bd77f8da987968ec3927990495dc22e4 -https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda#cc47e1facc155f91abd89b11e48e72ff +https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda#8b189310083baabfb622af68fd9d3ae3 https://conda.anaconda.org/conda-forge/linux-64/jsoncpp-1.9.5-h4bd325d_1.tar.bz2#ae7f50dd1e78c7e78b5d2cf7062e559d https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2#76bbff344f0134279f225174e9064c8f https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_he02047a_1.conda#c48fc56ec03229f294176923c3265c05 https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda#5e97e271911b8b2001a8b71860c32faa -https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda#dd197c968bf9760bba0031888d431ede +https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda#4fab9799da9571266d05ca5503330655 https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda#f07002e225d7a60a694d42a7bf5ff53f https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda#5fc11c6020d421960607d821310fcd4d https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.122-h4ab18f5_0.conda#bbfc4dbe5e97b385ef088f354d65e563 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 -https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda#b63d9b6da3653179a278077f0de20014 +https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda#9aba7960731e6b4547b3a52f812ed801 https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda#f4ca84fbd6d06b0a052fb2d5b96dde41 https://conda.anaconda.org/conda-forge/linux-64/libmo_unpack-3.1.2-hf484d3e_1001.tar.bz2#95f32a6a5a666d33886ca5627239f03d https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda#700ac6ea6d53d5510591c4344d5c989a @@ -99,9 +92,11 @@ https://conda.anaconda.org/conda-forge/linux-64/libvpx-1.14.1-hac33072_0.conda#c https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda#151cba22b85a989c2d6ef9633ffee1e4 https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda#ac79812548e7e8cf61f7b0abdef01d3b https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda#318b08df404f9c9be5712aaa5a6f0bb0 +https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-h70512c7_5.conda#4b652e3e572cbb3f297e77c96313faea +https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-he02047a_1.conda#e46f7ac4917215b49df2ea09a694a3fa https://conda.anaconda.org/conda-forge/linux-64/openh264-2.4.1-h59595ed_0.conda#3dfcf61b8e78af08110f5229f79580af https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2#56ee94e34b71742bbdfa832c974e47a8 -https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda#3914f7ac1761dce57102c72ca7c35d01 +https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda#df359c09c41cd186fffb93a2d87aa6f5 https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda#71004cbf7924e19c02746ccde9fd7123 https://conda.anaconda.org/conda-forge/linux-64/pugixml-1.14-h59595ed_0.conda#2c97dd90633508b422c11bd3018206ab https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 @@ -119,22 +114,30 @@ https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.cond https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda#9ae35c3d96db2c94ce0cef86efdfa2cb https://conda.anaconda.org/conda-forge/linux-64/gl2ps-1.4.2-hae5d5c5_1.conda#00e642ec191a19bf806a3915800e9524 https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda#3f43953b7d3fb3aaa1d0d0723d91e368 -https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda#02e41ab5834dcdcc8590cf29d9526f50 -https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda#6ea440297aacee4893f02ad759e6ffbc +https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda#1091193789bb830127ed067a9e01ac57 +https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h315aac3_2.conda#b0143a3e98136a680b728fdf9b42a258 https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda#ae05ece66d3924ac3d48b4aa3fa96cec https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda#6945825cebd2aeb16af4c69d97c32c13 https://conda.anaconda.org/conda-forge/linux-64/libtheora-1.1.1-h4ab18f5_1006.conda#553281a034e9cf8693c9df49f6c78ea1 -https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda#66f03896ffbe1a110ffda05c7a856504 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-h4c95cb1_3.conda#0ac9aff6010a7751961c8e4b863a40e7 +https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h46a8edc_4.conda#a7e3a62981350e232e0e7345b5aea580 +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-he7c6b58_4.conda#08a9265c637230c37cb1be4a6cad4536 +https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-ha479ceb_5.conda#82776ee8145b9d1fd6546604de4b351d https://conda.anaconda.org/conda-forge/linux-64/python-3.11.9-hb806964_0_cpython.conda#ac68acfa8b558ed406c75e98d3428d7b https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda#77ea8dff5cf8550cc8f5629a6af56323 https://conda.anaconda.org/conda-forge/linux-64/udunits2-2.2.28-h40f5838_3.conda#6bb8deb138f87c9d48320ac21b87e7a1 https://conda.anaconda.org/conda-forge/noarch/wayland-protocols-1.36-hd8ed1ab_0.conda#c6f690e7d4abf562161477f14533cfd8 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda#8637c3e5821654d0edf97e2b0404b443 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda#ad748ccca349aec3e91743e08b5e2b50 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda#0e0cbe0564d03a99afd5fd7b362feecd +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda#608e0ef8256b81d04456e8d211eee3e8 https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda#4a6d410296d7e39f00bacdee7df046e9 +https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.3.5-pyhd8ed1ab_0.conda#d904abda207d2dba054fd820d34bbaee https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda#def531a3ac77b7fb8c21d17bb5d0badb https://conda.anaconda.org/conda-forge/noarch/antlr-python-runtime-4.11.1-pyhd8ed1ab_0.tar.bz2#15109c4977d39ad7aa3423f57243e286 +https://conda.anaconda.org/conda-forge/noarch/anyascii-0.3.2-pyhd8ed1ab_0.conda#70b6fc71d80ea6176f5302ebbeb13d8a +https://conda.anaconda.org/conda-forge/linux-64/astroid-3.3.2-py311h38be061_0.conda#015f27cfbc90064c5df4d181314e7d63 https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda#f730d54ba9cd543666d7220c9f7ed563 -https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda#5e4c0743c70186509d1412e03c2d8dfa +https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda#6732fa52eb8e66e5afeb32db8701a791 https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda#f27a24d46e3ea7b70a1f98e50c62508f https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hb755f60_1.conda#cce9e7c3f1c307f2a5fb08a2922d6164 https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda#24e7fd6ca65997938fff9e5ab6f653e4 @@ -145,7 +148,8 @@ https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 https://conda.anaconda.org/conda-forge/noarch/colorcet-3.1.0-pyhd8ed1ab_0.conda#4d155b600b63bc6ba89d91fab74238f8 https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda#5cd86562580f274031ede6aa6aa24441 -https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.10-py311hb755f60_0.conda#f3a8a500a2e743ff92f418f0eaf9bf71 +https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.11-py311hf86e51f_0.conda#9f66da0a75608eeeaaa5dc07b8162c68 +https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2#ecfff944ba3960ecb334b9a2663d708d https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda#db16c66b759a64dc5183d69cc3745a52 https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_0.conda#e8cd5d629f65bdf0f3bb312cde14659e https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda#d02ae936e42063ca46af6cdad2dbd1e0 @@ -155,7 +159,7 @@ https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.con https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.1-py311h459d7ec_0.conda#b267e553a337e1878512621e374845c5 https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda#996bf792cdb8c0ac38ff54b9fde56841 https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.12-hb9ae30d_0.conda#201db6c2d9a3c5e46573ac4cb2e92f4f -https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda#219ba82e95d7614cf7140d2a4afc0926 +https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda#c7f243bbaea97cd6ea1edd693270100e https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda#4d8df0b0db060d33c9a702ada998a8fe https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2#914d6646c4dbb1fd3ff539830a12fd71 https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2#9f765cbfab6870c8435b9eefecd7a1f4 @@ -165,12 +169,12 @@ https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda https://conda.anaconda.org/conda-forge/noarch/iris-sample-data-2.4.0-pyhd8ed1ab_0.tar.bz2#18ee9c07cf945a33f92caf1ee3d23ad9 https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py311h9547e67_1.conda#2c65bdf442b0d37aad080c8a4e0d452f https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda#51bb7010fc86f70eee639b4bb7a894f5 -https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda#32ddb97f897740641d8d46a829ce1704 -https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda#1a2a0cd3153464fee6646f3dd6dad9b8 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda#b8afb3e3cb3423cc445cf611ab95fdb0 +https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-23_linux64_openblas.conda#96c8450a40aa2b9733073a9460de972c +https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda#d4529f4dff3057982a7617c7ac58fde3 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.9.1-hdb1bdb2_0.conda#7da1d242ca3591e174a3c7d82230d3c0 https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.1-default_hecaa2ac_1000.conda#f54aeebefb5c5ff84eca4fb05ca8aa3a -https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-h8b73ec9_1.conda#16d94b3586ef3558e5a583598524deb4 -https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.4.0-h2c329e2_0.conda#80030debaa84cfc31755d53742df3ca6 +https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-h8b73ec9_2.conda#2e25bb2f53e4a48873a936f8ef53e592 +https://conda.anaconda.org/conda-forge/linux-64/libpq-16.4-h482b261_0.conda#0f74c5581623f860e7baca042d9d7139 https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 https://conda.anaconda.org/conda-forge/linux-64/loguru-0.7.2-py311h38be061_1.conda#94a4521bd7933a66d76b0274dbf8d2dd https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py311h459d7ec_0.conda#a322b4185121935c871d201ae00ac143 @@ -190,9 +194,9 @@ https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda#98206ea9954216ee7540f0c773f2104d https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-3.4.1-py311h459d7ec_0.conda#60b5332b3989fda37884b92c7afd6a91 https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda#3eeeeb9e4827ace8c0c1419c85d590ad -https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py311h459d7ec_1.conda#52719a74ad130de8fb5d047dc91f247a +https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py311h61187de_0.conda#76439451605390254b85d8da6f8d962a https://conda.anaconda.org/conda-forge/noarch/scooby-0.10.0-pyhd8ed1ab_0.conda#9e57330f431abbb4c88a5f898a4ba223 -https://conda.anaconda.org/conda-forge/noarch/setuptools-71.0.3-pyhd8ed1ab_0.conda#d4b6e6ce2f7bcaec484b81c447df1028 +https://conda.anaconda.org/conda-forge/noarch/setuptools-72.1.0-pyhd8ed1ab_0.conda#e06d4c26df4f958a8d38696f2c344d15 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2#6d6552722448103793743dabfbda532d @@ -204,53 +208,59 @@ https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5 https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda#2fcb582444635e2c402e8569bb94e039 https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py311h331c9d8_0.conda#e29e451c96bf8e81a5760b7565c6ed2c https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda#ebe6952715e1d5eb567eeebf25250fa7 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda#0b5293a157c2b5cd513dd1b03d8d3aae +https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda#d44e3b085abcaef02983c6305b84b584 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda#a0901183f08b6c7107aab109733a3c91 +https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda#b193af204da1bfb8c13882d131a14bd2 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda#82b6df12252e6f32402b96dacc656fec https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2#e9a21aa4d5e3e5f1aed71e8cefd46b6a https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda#ed67c36f215b310412b2af935bf3e530 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda#ae92aab42726eb29d16488924f7312cb https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda#cf30c2c15b82aacb07f9c09e28ff2275 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda#49808e59df5535116f6878b2a820d6f4 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.0-pyhd8ed1ab_0.conda#05b6bcb391b5be17374f7ad0aeedc479 https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.5-pyhd8ed1ab_0.conda#1bb1ef9806a9a20872434f58b3e7fc1a https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2#d1e1eb7e21a9e2c74279d87dafb68156 https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda#9669586875baeced8fc30c0826c3270e https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda#332493000404d8411859539a5a630865 -https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda#b6d90276c5aee9b4407dd94eb0cd40a8 -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py311hb3a22ac_0.conda#b3469563ac5e808b0cd92810d0697043 +https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda#fceaedf1cdbcb02df9699a0d9b005292 +https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py311ha8e6434_0.conda#32259cd17741b52be10cd23a26cca23a https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda#7c2b6931f9b3548ed78478332095c3e9 -https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.0-py311h61187de_0.conda#88eac8e0e69d850b235824f87e5cfd1b +https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.1-py311h61187de_0.conda#1a4c475c89ad142967256d0c7237f298 https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py311h459d7ec_0.conda#13d385f635d7fbe9acc93600f67a6cb4 https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py311h61187de_0.conda#bcbe6c9db1c25900c3808b8974e1bb90 https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2#b748fbf7060927a6e82df7cb5ee8f097 https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda#7e1729554e209627636a0f6fabcdd115 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda#3286556cdd99048d198f72c3f6f69103 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.2.0-pyha770c72_0.conda#c261d14fc7f49cdd403868998a18c318 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda#7b86ecb7d3557821c649b3c31e3eb9f2 -https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda#4b31699e0ec5de64d5896e580389c9a1 -https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h119a65a_9.conda#cfebc557e54905dadc355c0e9f003004 +https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-23_linux64_openblas.conda#eede29b40efa878cbe5bdcb767e97310 +https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp18.1-18.1.8-default_hf981a13_2.conda#b0f8c590aa86d9bee5987082f7f15bdf +https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h9def88c_2.conda#ba2d12adbea9de311297f2b577f4bb86 +https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-hd3e95f3_10.conda#30ee3a29c84cf7b842a8c5828c4b7c13 +https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.0-ha6d2627_1004.conda#df069bea331c8486ac21814969301c1f https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.7-hd590300_0.conda#2b7b0d827c6447cc1d85dc06d5b5de46 -https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda#b083767b6c877e24ee597d93b87ab838 +https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-23_linux64_openblas.conda#2af0879961951987e464722fd00ec1e0 https://conda.anaconda.org/conda-forge/linux-64/libva-2.22.0-hb711507_0.conda#d12f659072132c9d16e497073fc1f68b +https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda#e2eaefa4de2b7237af7c907b8bbc760a https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda#dfe0528d0f1c16c1f7c528ea5536ab30 https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda#0badf9c54e24cecfb0ad2f99d680c163 https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py311h82a398c_0.conda#b9e0ac1f5564b6572a6d702c04207be8 -https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda#f586ac1e56c8638b64f9c8122a7b8a67 +https://conda.anaconda.org/conda-forge/noarch/pip-24.2-pyhd8ed1ab_0.conda#6721aef6bfe5937abe70181545dd2c51 https://conda.anaconda.org/conda-forge/linux-64/proj-9.3.1-h1d62c97_0.conda#44ec51d0857d9be26158bb85caa74fdb -https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda#0f3f49c22c7ef3a1195fa61dad3c43be +https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda#e010a224b90f1f623a917c35addbb924 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda#2cf4264fffb9e6eff6031c5b6884d61c https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.12.0-h434a139_3.conda#c667c11d1e488a38220ede8a34441bff https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda#52d648bd608f5737b123f510bb5514b5 https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda#284008712816c64c85bf2b7fa9f3b264 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.5-h7f98852_1.tar.bz2#bebd3814ec2355fab6a474b07ed73093 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.2-h7f98852_1.tar.bz2#5b0f7da25a4556c9619c3e4b4a98ab07 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.4-h4ab18f5_2.conda#79e46d4a6ccecb7ee1912042958a8758 https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.4-py311h459d7ec_0.conda#fff0f2058e9d86c8bf5848ee93917a8d -https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.9.5-py311h459d7ec_0.conda#0175d2636cc41dc019b51462c13ce225 +https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.10.3-py311h61187de_0.conda#b3b58253d1691fafecc512f7a995e12b https://conda.anaconda.org/conda-forge/noarch/asv_runner-0.2.1-pyhd8ed1ab_0.conda#fdcbeb072c80c805a2ededaa5f91cd79 +https://conda.anaconda.org/conda-forge/linux-64/glew-2.1.0-h9c3ff4c_2.tar.bz2#fb05eb5c47590b247658243d27fc32f1 https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.9-hb077bed_0.conda#33eded89024f21659b1975886a4acf70 -https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hfac3d4d_0.conda#c7b47c64af53e8ecee01d101eeab2342 -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda#5f8c8ebbe6413a7838cf6ecf14d5d31b +https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda#76b32dcf243444aea9c6b804bcfa40b8 +https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.2.0-hd8ed1ab_0.conda#0fd030dce707a6654472cf7619b0b01b https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.4-pyhd8ed1ab_0.conda#a284ff318fbdb0dd83928275b4b6087c https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda#a908e463c710bd6b10a9eaa89fdf003c -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-2024.2.0-h2da1b83_1.conda#9511859bf5221238a2d3fb5322af01d5 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-2024.3.0-h2da1b83_0.conda#bb7a2589859c7475e38c1af677e16698 https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda#a502d7aad449a1206efb366d6a12c52d https://conda.anaconda.org/conda-forge/noarch/pbr-6.0.0-pyhd8ed1ab_0.conda#8dbab5ba746ed14aa32cb232dc437f8f https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py311hca0b8b9_5.conda#cac429fcb9126d5e6f02c8ba61c2a811 @@ -263,65 +273,65 @@ https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py311h5cd10c7_0 https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py311h18e1886_0.conda#0eb1e6c7d10285ec12e01f73d1896d93 https://conda.anaconda.org/conda-forge/noarch/colorspacious-1.1.2-pyh24bf2e0_0.tar.bz2#b73afa0d009a51cabd3ec99c4d2ef4f3 https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py311h9547e67_0.conda#74ad0ae64f1ef565e27eda87fa749e84 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda#755e47653ae38f5c50f1435af756e844 +https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.8.0-pyhd8ed1ab_0.conda#bf68bf9ff9a18f1b17aa8c817225aee0 https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda#f80cc5989f445f23b1622d6c455896d9 -https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.1-h39113c1_2.conda#25db2ea6b8fefce451369e2cc826f6f4 -https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-1.0.1-h97afed2_0.conda#00bd7406d24d6574f2de3839b60e0925 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-batch-plugin-2024.2.0-hb045406_1.conda#70d82a64e6d07f4d6e07cae6b0bd4bd1 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-plugin-2024.2.0-hb045406_1.conda#f1e2a8ded23cef03804c4edb2edfb986 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-hetero-plugin-2024.2.0-h5c03a75_1.conda#95d2d3baaa1e456ef65c713a5d99b815 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-cpu-plugin-2024.2.0-h2da1b83_1.conda#9e49f87d8f99dc9724f52b3fac904106 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-gpu-plugin-2024.2.0-h2da1b83_1.conda#a9712fae44d01d906e228c49235e3b89 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-npu-plugin-2024.2.0-he02047a_1.conda#5c2d064181e686cf5cfac6f1a1ee4e91 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-ir-frontend-2024.2.0-h5c03a75_1.conda#89addf0fc0f489fa0c076f1c8c0d62bf -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-onnx-frontend-2024.2.0-h07e8aee_1.conda#9b0a13989b35302e47da13842683804d -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-paddle-frontend-2024.2.0-h07e8aee_1.conda#7b3680d3fd00e1f91d5faf9c97c7ae78 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-pytorch-frontend-2024.2.0-he02047a_1.conda#ac43b516c128411f84f1e19c875998f1 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-frontend-2024.2.0-h39126c6_1.conda#11acf52cac790edcf087b89e83834f7d -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-lite-frontend-2024.2.0-he02047a_1.conda#e7f91b35e3aa7abe880fc9192a761fc0 +https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.3-h1dc1e6a_0.conda#2a66267ba586dadd110cc991063cfff7 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-batch-plugin-2024.3.0-hb045406_0.conda#2a18663e879095118cb851620b175436 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-plugin-2024.3.0-hb045406_0.conda#45bf3996fcd0caf69a3dd63b7fc7cd9e +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-hetero-plugin-2024.3.0-h5c03a75_0.conda#030fd5b2ce0b19c2c4db10890e121970 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-cpu-plugin-2024.3.0-h2da1b83_0.conda#98d9fdbb32d375ba877166737430afc4 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-gpu-plugin-2024.3.0-h2da1b83_0.conda#c0957603b82ec549c119f7103968c62d +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-npu-plugin-2024.3.0-h2da1b83_0.conda#81879bcb0d246113118ab274965f11be +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-ir-frontend-2024.3.0-h5c03a75_0.conda#a512abca9b69f972671ff03f818b93f7 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-onnx-frontend-2024.3.0-h07e8aee_0.conda#89ab3cfdbf7b9a94643332cf0a8ec0e9 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-paddle-frontend-2024.3.0-h07e8aee_0.conda#b0516d69280d72da03d20d8cc8172b15 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-pytorch-frontend-2024.3.0-he02047a_0.conda#92654c43075ffd142caae9417bab9c11 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-frontend-2024.3.0-h39126c6_0.conda#5d49cf778f9dadc9438073b9b4bdf587 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-lite-frontend-2024.3.0-he02047a_0.conda#177e64dac3b9f83f0a505b25c698dc09 https://conda.anaconda.org/conda-forge/linux-64/mo_pack-0.3.0-py311h459d7ec_1.conda#45b8d355bbcdd27588c2d266bcfdff84 https://conda.anaconda.org/conda-forge/linux-64/netcdf-fortran-4.6.1-nompi_h228c76a_104.conda#91bc3ac73308181d55a09d9e4aeb4496 https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py311h14de704_1.conda#84e2dd379d4edec4dd6382861486104d https://conda.anaconda.org/conda-forge/linux-64/pango-1.54.0-h4c5309f_1.conda#7df02e445367703cd87a574046e3a6f0 https://conda.anaconda.org/conda-forge/linux-64/pykdtree-1.3.12-py311h18e1886_1.conda#62b842b69b2ccd337be298406591c18c -https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.6.0-py311h18e1886_0.conda#f43c7f60c7b1e7a7cc4234d28520b06a +https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.7.0-py311h07ce7c0_0.conda#73a9996e4b765455696b53bf74865b09 +https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.7.2-hb12f9c5_4.conda#5dd4fddb73e5e4fef38ef54f35c155cd https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py311h517d4fd_1.conda#481fd009b2d863f526f60ca19cb7880b https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.5-py311h5925939_0.conda#105ce0d9e7aa0324031a3abaf9ec71f7 https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-apidoc-0.3.0-py_1.tar.bz2#855b087883443abb10f5faf6eef40860 https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda#e804c43f58255e977093a2298e442bb8 -https://conda.anaconda.org/conda-forge/noarch/wslink-2.1.1-pyhd8ed1ab_0.conda#6b1aef9c878c58baa7bb9f0d44457174 +https://conda.anaconda.org/conda-forge/noarch/wslink-2.1.2-pyhd8ed1ab_0.conda#4cbb17383064ccfb46797aea03d70fc7 https://conda.anaconda.org/conda-forge/linux-64/cf-units-3.2.0-py311h18e1886_5.conda#6cd3facab7a79de14abb1a86a2d830fa -https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda#2ae917b0098f286f63f69ec9365fb0b1 -https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.191-h924a536_0.conda#73d050766060acd2b3a289f27d857090 +https://conda.anaconda.org/conda-forge/noarch/distributed-2024.8.0-pyhd8ed1ab_0.conda#f9a7fbaeb79d4b57d1ed742930b4eec4 https://conda.anaconda.org/conda-forge/linux-64/esmf-8.6.1-nompi_h0a5817f_2.conda#e23c62f75f67166cf4ca137fc8bcdce7 -https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-7.0.1-gpl_h9be9148_104.conda#107fd9222d9f628608b07b69abba9420 +https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-7.0.2-gpl_h0db5852_100.conda#327684cc0682b8daa4b25f48d45e1dc7 https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h6470451_5.conda#1483ba046164be27df7f6eddbcec3a12 https://conda.anaconda.org/conda-forge/noarch/imagehash-4.3.1-pyhd8ed1ab_0.tar.bz2#132ad832787a2156be1f1b309835001a https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.58.2-h9564881_1.conda#c6a47e6f551890e82e92e4c1b84be353 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py311ha4ca890_2.conda#0848e2084cbb57014f232f48568561af https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py311h25b3b55_101.conda#936afeddfa3704eb834d0887b0838826 -https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda#724bc4489c1174fc8e3233b0624fa51f +https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda#1822e87a5d357f79c6aab871d86fb062 https://conda.anaconda.org/conda-forge/linux-64/python-stratify-0.3.0-py311h18e1886_2.conda#b1e90d33ae504ac06a3928a2dc5654ba https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda#5ede4753180c7a550a443c430dc8ab52 +https://conda.anaconda.org/conda-forge/linux-64/vtk-base-9.3.1-qt_py311h82d2dff_201.conda#a92f40bbb288ba5e4ccd1e3e98b49da2 https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.23.0-py311h14de704_1.conda#27e5956e552c6e71f56cb1ec042617a8 https://conda.anaconda.org/conda-forge/noarch/cmocean-4.0.3-pyhd8ed1ab_0.conda#53df00540de0348ed1b2a62684dd912b https://conda.anaconda.org/conda-forge/noarch/esmpy-8.6.1-pyhc1e730c_0.conda#25a9661177fd68bfdb4314fd658e5c3b https://conda.anaconda.org/conda-forge/linux-64/graphviz-11.0.0-hc68bbd7_0.conda#52a531ef95358086a56086c45d97ab75 -https://conda.anaconda.org/conda-forge/linux-64/mesalib-24.1.4-h3ac77ca_0.conda#083464147e4169cf088522070964e0cf https://conda.anaconda.org/conda-forge/noarch/nc-time-axis-1.4.1-pyhd8ed1ab_0.tar.bz2#281b58948bf60a2582de9e548bcc5369 https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda#8dab97d8a9616e07d779782995710aed -https://conda.anaconda.org/conda-forge/linux-64/vtk-base-9.3.1-osmesa_py311h530c62d_101.conda#44a9e14d9b8b37da5c3ed16e322fe1b9 -https://conda.anaconda.org/conda-forge/linux-64/vtk-io-ffmpeg-9.3.1-osmesa_py311hd1cd433_101.conda#76155b70563f6b760be46a48c28ecdb1 -https://conda.anaconda.org/conda-forge/linux-64/vtk-9.3.1-osmesa_py311h7c0142d_101.conda#5ee9d2a935edb5bfe706687dcd63ad3c -https://conda.anaconda.org/conda-forge/noarch/pyvista-0.44.0-pyhd8ed1ab_0.conda#16270d42141769c8342e067d25acc6ce +https://conda.anaconda.org/conda-forge/linux-64/vtk-io-ffmpeg-9.3.1-qt_py311he1e5eab_201.conda#92f5ad95b93439c965890171084e3955 +https://conda.anaconda.org/conda-forge/linux-64/vtk-9.3.1-qt_py311hadc0db7_201.conda#bb3b7f4553e1f87b1346cb0157808e0b +https://conda.anaconda.org/conda-forge/noarch/pyvista-0.44.1-pyhd8ed1ab_0.conda#0731b45087c0358ca8b7d9fe855dec1a https://conda.anaconda.org/conda-forge/noarch/geovista-0.5.1-pyhd8ed1ab_0.conda#22958696ccc609071ba40867090bfd3a https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.4-pyhd8ed1ab_0.conda#c7c50dd5192caa58a05e6a4248a27acb +https://conda.anaconda.org/conda-forge/noarch/sphinx-autoapi-3.2.1-pyhd8ed1ab_0.conda#5147fb23b7c38041fadea123fb4bbe4e https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 -https://conda.anaconda.org/conda-forge/noarch/sphinx-design-0.6.0-pyhd8ed1ab_0.conda#b04f3c04e4f7939c6207dc0c0355f468 -https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.16.0-pyhd8ed1ab_0.conda#add28691ee89e875b190eda07929d5d4 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda#611a35a27914fac3aa37611a6fe40bb5 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda#d7e4954df0d3aea2eacc7835ad12671d -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda#7e1e7437273682ada2ed5e9e9714b140 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda#26acae54b06f178681bfb551760f5dd1 -https://conda.anaconda.org/conda-forge/noarch/sphinx-7.4.5-pyhd8ed1ab_0.conda#98a3e9786dd637216c6a028f5061cd71 +https://conda.anaconda.org/conda-forge/noarch/sphinx-design-0.6.1-pyhd8ed1ab_0.conda#51b2433e4a223b14defee96d3caf9bab +https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.17.1-pyhd8ed1ab_0.conda#0adfccc6e7269a29a63c1c8ee3c6d8ba +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_0.conda#9075bd8c033f0257122300db914e49c9 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-2.0.0-pyhd8ed1ab_0.conda#b3bcc38c471ebb738854f52a36059b48 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_0.conda#e25640d692c02e8acfff0372f547e940 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_0.conda#d6e5ea5fe00164ac6c2dcc5d76a42192 +https://conda.anaconda.org/conda-forge/noarch/sphinx-7.4.7-pyhd8ed1ab_0.conda#c568e260463da2528ecfd7c5a0b41bbd https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda#e507335cb4ca9cff4c3d0fa9cdab255e + diff --git a/requirements/locks/py312-linux-64.lock b/requirements/locks/py312-linux-64.lock index ccf1c78c28..42019aa603 100644 --- a/requirements/locks/py312-linux-64.lock +++ b/requirements/locks/py312-linux-64.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: 7a4a6d9e72f2080d74f07a6f99d51fc689c72fca556a978061ea868b4369610d +# input_hash: b01f540117b3f19d75cbac1fcd1f1f9413d1378608b39ff13357913f16e8a073 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda#23ab7665c5f63cfb9f1f6195256daac6 @@ -9,7 +9,6 @@ https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed3 https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2#4d59c254e01d9cde7957100457e2d5fb https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda#cbbe59391138ea5ad3658c76912e147f https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda#b80f2f396ca2c28b8c14c437a4ed1e74 -https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-h59595ed_0.conda#df9ae69b85e0cab9bde23eff1e87f183 https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda#dccc2d142812964fcc6abdc97b672dff https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda#161081fc7cec0bfda0d86d7cb595f8d8 https://conda.anaconda.org/conda-forge/linux-64/utfcpp-4.0.5-ha770c72_0.conda#25965c1d1d5fc00ce2b663b73008e3b7 @@ -18,20 +17,20 @@ https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda# https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2#73aaf86a425cc6e73fcf236a5a46396d https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda#ca0fad6a41ddaef54a153b78eccb5037 +https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda#7ed427f0871fd41cb1d9c17727c17589 https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda#62ee74e96c5ebb0af99386de58cf9553 -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.32.2-h4bc722e_0.conda#8024af1ee7078e37fa3101c0a0296af2 +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.32.3-h4bc722e_0.conda#7624e34ee6baebfc80d67bac76cc9d9d https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda#418c6ca5929a611cbd69204907a83995 https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.10-h36c2ea0_0.tar.bz2#ac7bc6a654f8f41b352b38f4051135f8 -https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda#985f2f453fb72408d6b6f1be0f324033 -https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda#3bf7b9fd5a7136126e0234db4b87c8b6 +https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda#fcd2016d1d299f654f81021e27496818 https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2#30186d27e2c9fa62b45fb1476b7200e3 https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2#a8832b479f93521a9e7b5b743803be51 https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda#aec6c91c7371c26392a06708a73c70e5 -https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda#8e88f9389f1165d7c0936fe40d9a9a79 +https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.21-h4bc722e_0.conda#36ce76665bf67f5aac36be7a0d21b7f3 https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda#172bf1cd1ff8629f2b1179945ed45055 https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda#e7ba12deb7020dd080c6c70e7b6f6a3d https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 -https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda#172bcc51059416e7ce99e7b528cede83 +https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda#efab66b82ec976930b96d62a976de8e7 https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda#6456c2620c990cd8dde2428a27ba0bc5 https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda#d66573916ffcf376178462f1b61c941e https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda#ea25936bb4080d843790b586850f82b8 @@ -46,24 +45,18 @@ https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda# https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda#b26e8aa824079e1be0294e7152ca4559 https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda#5aa797f8787fe7a17d1b0821485b5adc https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda#57d7dc60e9325e3de37ff8dffd18e814 -https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda#ec7398d21e2651e0dcb0044d03b9a339 https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda#fcea371545eda051b6deafb24889fc69 https://conda.anaconda.org/conda-forge/linux-64/nettle-3.9.1-h7ab15ed_0.conda#2bf1915cc107738811368afcb0993a59 https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.2-hd590300_1.conda#c66f837ac65e4d1cdeb80e2a1d5fcc3d https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4bc722e_2.conda#e1b454497f9f7c1147fdde4b53f1b512 https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2#22dad4df6e8630e8dff2428f6f6a7036 https://conda.anaconda.org/conda-forge/linux-64/x264-1!164.3095-h166bdaf_2.tar.bz2#6c99772d483f566d59e25037fea2c4b1 -https://conda.anaconda.org/conda-forge/linux-64/xorg-damageproto-1.2.1-h7f98852_1002.tar.bz2#58c9bb067637c5a13a045a7124eeb027 -https://conda.anaconda.org/conda-forge/linux-64/xorg-glproto-1.4.17-h7f98852_1002.tar.bz2#e41bf01f80d46be87dcae2333a766e75 https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2#4b230e8381279d76131116660f5a241a https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda#b462a33c0be1421532f28bfe8f4a7514 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda#2c80dc38fface310c9bd81b17037fee5 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2#be93aabceefa2fac576e971aef407908 -https://conda.anaconda.org/conda-forge/linux-64/xorg-randrproto-1.5.0-h7f98852_1001.tar.bz2#68cce654461713977dac6f9ac1bce89a https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2#06feff3d2634e3097ce2fe681474b534 -https://conda.anaconda.org/conda-forge/linux-64/xorg-util-macros-1.19.3-h7f98852_0.tar.bz2#b1780cc89cf3949f670d6ca2aa6a7e42 https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda#bce9f945da8ad2ae9b1d7165a64d0f87 -https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2#3ceea9668625c18f19530de98b15d5b0 https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2#b4a4381d54784606820704f7b5f05a15 https://conda.anaconda.org/conda-forge/linux-64/xxhash-0.8.2-hd590300_0.conda#f08fb5c89edfc4aadee1c81d4cfb1fa1 https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161070d867d1b1204ea749c8eec4ef0 @@ -72,21 +65,21 @@ https://conda.anaconda.org/conda-forge/linux-64/aom-3.9.1-hac33072_0.conda#34672 https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda#c2f83a5ddadadcdb08fe05863295ee97 https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda#b1b879d6d093f55dd40d58b5eb2f0699 https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda#53fb86322bdb89496d7579fe3f02fd61 -https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda#621d814955342209dc8e7f87c41f1ba0 +https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-he02047a_1.conda#aab9195bc018b82dc77a84584b36cce9 https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda#c94a5994ef49749880a8139cf9afcbe1 https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda#f87c7b7c2cb45f323ffbce941c78ab7c https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda#bd77f8da987968ec3927990495dc22e4 -https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda#cc47e1facc155f91abd89b11e48e72ff +https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda#8b189310083baabfb622af68fd9d3ae3 https://conda.anaconda.org/conda-forge/linux-64/jsoncpp-1.9.5-h4bd325d_1.tar.bz2#ae7f50dd1e78c7e78b5d2cf7062e559d https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2#76bbff344f0134279f225174e9064c8f https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_he02047a_1.conda#c48fc56ec03229f294176923c3265c05 https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda#5e97e271911b8b2001a8b71860c32faa -https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda#dd197c968bf9760bba0031888d431ede +https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda#4fab9799da9571266d05ca5503330655 https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda#f07002e225d7a60a694d42a7bf5ff53f https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda#5fc11c6020d421960607d821310fcd4d https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.122-h4ab18f5_0.conda#bbfc4dbe5e97b385ef088f354d65e563 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 -https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda#b63d9b6da3653179a278077f0de20014 +https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda#9aba7960731e6b4547b3a52f812ed801 https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda#f4ca84fbd6d06b0a052fb2d5b96dde41 https://conda.anaconda.org/conda-forge/linux-64/libmo_unpack-3.1.2-hf484d3e_1001.tar.bz2#95f32a6a5a666d33886ca5627239f03d https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda#700ac6ea6d53d5510591c4344d5c989a @@ -99,9 +92,11 @@ https://conda.anaconda.org/conda-forge/linux-64/libvpx-1.14.1-hac33072_0.conda#c https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda#151cba22b85a989c2d6ef9633ffee1e4 https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda#ac79812548e7e8cf61f7b0abdef01d3b https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda#318b08df404f9c9be5712aaa5a6f0bb0 +https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-h70512c7_5.conda#4b652e3e572cbb3f297e77c96313faea +https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-he02047a_1.conda#e46f7ac4917215b49df2ea09a694a3fa https://conda.anaconda.org/conda-forge/linux-64/openh264-2.4.1-h59595ed_0.conda#3dfcf61b8e78af08110f5229f79580af https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2#56ee94e34b71742bbdfa832c974e47a8 -https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda#3914f7ac1761dce57102c72ca7c35d01 +https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda#df359c09c41cd186fffb93a2d87aa6f5 https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda#71004cbf7924e19c02746ccde9fd7123 https://conda.anaconda.org/conda-forge/linux-64/pugixml-1.14-h59595ed_0.conda#2c97dd90633508b422c11bd3018206ab https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 @@ -119,22 +114,30 @@ https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.cond https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda#9ae35c3d96db2c94ce0cef86efdfa2cb https://conda.anaconda.org/conda-forge/linux-64/gl2ps-1.4.2-hae5d5c5_1.conda#00e642ec191a19bf806a3915800e9524 https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda#3f43953b7d3fb3aaa1d0d0723d91e368 -https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda#02e41ab5834dcdcc8590cf29d9526f50 -https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda#6ea440297aacee4893f02ad759e6ffbc +https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda#1091193789bb830127ed067a9e01ac57 +https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h315aac3_2.conda#b0143a3e98136a680b728fdf9b42a258 https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda#ae05ece66d3924ac3d48b4aa3fa96cec https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda#6945825cebd2aeb16af4c69d97c32c13 https://conda.anaconda.org/conda-forge/linux-64/libtheora-1.1.1-h4ab18f5_1006.conda#553281a034e9cf8693c9df49f6c78ea1 -https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda#66f03896ffbe1a110ffda05c7a856504 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-h4c95cb1_3.conda#0ac9aff6010a7751961c8e4b863a40e7 -https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda#d73490214f536cccb5819e9873048c92 +https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h46a8edc_4.conda#a7e3a62981350e232e0e7345b5aea580 +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-he7c6b58_4.conda#08a9265c637230c37cb1be4a6cad4536 +https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-ha479ceb_5.conda#82776ee8145b9d1fd6546604de4b351d +https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda#9c56c4df45f6571b13111d8df2448692 https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda#77ea8dff5cf8550cc8f5629a6af56323 https://conda.anaconda.org/conda-forge/linux-64/udunits2-2.2.28-h40f5838_3.conda#6bb8deb138f87c9d48320ac21b87e7a1 https://conda.anaconda.org/conda-forge/noarch/wayland-protocols-1.36-hd8ed1ab_0.conda#c6f690e7d4abf562161477f14533cfd8 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda#8637c3e5821654d0edf97e2b0404b443 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda#ad748ccca349aec3e91743e08b5e2b50 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda#0e0cbe0564d03a99afd5fd7b362feecd +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda#608e0ef8256b81d04456e8d211eee3e8 https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda#4a6d410296d7e39f00bacdee7df046e9 +https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.3.5-pyhd8ed1ab_0.conda#d904abda207d2dba054fd820d34bbaee https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda#def531a3ac77b7fb8c21d17bb5d0badb https://conda.anaconda.org/conda-forge/noarch/antlr-python-runtime-4.11.1-pyhd8ed1ab_0.tar.bz2#15109c4977d39ad7aa3423f57243e286 +https://conda.anaconda.org/conda-forge/noarch/anyascii-0.3.2-pyhd8ed1ab_0.conda#70b6fc71d80ea6176f5302ebbeb13d8a +https://conda.anaconda.org/conda-forge/linux-64/astroid-3.3.2-py312h7900ff3_0.conda#27e6255e79adee82d904e34aabc9ad31 https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda#f730d54ba9cd543666d7220c9f7ed563 -https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda#5e4c0743c70186509d1412e03c2d8dfa +https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda#6732fa52eb8e66e5afeb32db8701a791 https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda#f27a24d46e3ea7b70a1f98e50c62508f https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda#45801a89533d3336a365284d93298e36 https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda#24e7fd6ca65997938fff9e5ab6f653e4 @@ -145,7 +148,8 @@ https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 https://conda.anaconda.org/conda-forge/noarch/colorcet-3.1.0-pyhd8ed1ab_0.conda#4d155b600b63bc6ba89d91fab74238f8 https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda#5cd86562580f274031ede6aa6aa24441 -https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.10-py312h30efb56_0.conda#b119273bff37284cbcb9281c1e85e67d +https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.11-py312hca68cad_0.conda#f824c60def49466ad5b9aed4eaa23c28 +https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2#ecfff944ba3960ecb334b9a2663d708d https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda#db16c66b759a64dc5183d69cc3745a52 https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_0.conda#e8cd5d629f65bdf0f3bb312cde14659e https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda#d02ae936e42063ca46af6cdad2dbd1e0 @@ -155,7 +159,7 @@ https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.con https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.1-py312h98912ed_0.conda#2715764dfa5fb00343e03d5a59b64582 https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda#996bf792cdb8c0ac38ff54b9fde56841 https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.12-hb9ae30d_0.conda#201db6c2d9a3c5e46573ac4cb2e92f4f -https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda#219ba82e95d7614cf7140d2a4afc0926 +https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda#c7f243bbaea97cd6ea1edd693270100e https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda#4d8df0b0db060d33c9a702ada998a8fe https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2#914d6646c4dbb1fd3ff539830a12fd71 https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2#9f765cbfab6870c8435b9eefecd7a1f4 @@ -165,12 +169,12 @@ https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda https://conda.anaconda.org/conda-forge/noarch/iris-sample-data-2.4.0-pyhd8ed1ab_0.tar.bz2#18ee9c07cf945a33f92caf1ee3d23ad9 https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py312h8572e83_1.conda#c1e71f2bc05d8e8e033aefac2c490d05 https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda#51bb7010fc86f70eee639b4bb7a894f5 -https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda#32ddb97f897740641d8d46a829ce1704 -https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda#1a2a0cd3153464fee6646f3dd6dad9b8 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda#b8afb3e3cb3423cc445cf611ab95fdb0 +https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-23_linux64_openblas.conda#96c8450a40aa2b9733073a9460de972c +https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda#d4529f4dff3057982a7617c7ac58fde3 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.9.1-hdb1bdb2_0.conda#7da1d242ca3591e174a3c7d82230d3c0 https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.1-default_hecaa2ac_1000.conda#f54aeebefb5c5ff84eca4fb05ca8aa3a -https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-h8b73ec9_1.conda#16d94b3586ef3558e5a583598524deb4 -https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.4.0-h2c329e2_0.conda#80030debaa84cfc31755d53742df3ca6 +https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-h8b73ec9_2.conda#2e25bb2f53e4a48873a936f8ef53e592 +https://conda.anaconda.org/conda-forge/linux-64/libpq-16.4-h482b261_0.conda#0f74c5581623f860e7baca042d9d7139 https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 https://conda.anaconda.org/conda-forge/linux-64/loguru-0.7.2-py312h7900ff3_1.conda#507696b7c888a8b872b50f24ac860089 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda#6ff0b9582da2d4a74a1f9ae1f9ce2af6 @@ -190,9 +194,9 @@ https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda#98206ea9954216ee7540f0c773f2104d https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-3.4.1-py312h98912ed_0.conda#a8f9739e0ada2320148c92ddd608864f https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda#3eeeeb9e4827ace8c0c1419c85d590ad -https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py312h98912ed_1.conda#e3fd78d8d490af1d84763b9fe3f2e552 +https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h41a817b_0.conda#1779c9cbd9006415ab7bb9e12747e9d1 https://conda.anaconda.org/conda-forge/noarch/scooby-0.10.0-pyhd8ed1ab_0.conda#9e57330f431abbb4c88a5f898a4ba223 -https://conda.anaconda.org/conda-forge/noarch/setuptools-71.0.3-pyhd8ed1ab_0.conda#d4b6e6ce2f7bcaec484b81c447df1028 +https://conda.anaconda.org/conda-forge/noarch/setuptools-72.1.0-pyhd8ed1ab_0.conda#e06d4c26df4f958a8d38696f2c344d15 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2#6d6552722448103793743dabfbda532d @@ -204,53 +208,59 @@ https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5 https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda#2fcb582444635e2c402e8569bb94e039 https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h9a8786e_0.conda#fd9c83fde763b494f07acee1404c280e https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda#ebe6952715e1d5eb567eeebf25250fa7 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda#0b5293a157c2b5cd513dd1b03d8d3aae +https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda#d44e3b085abcaef02983c6305b84b584 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda#a0901183f08b6c7107aab109733a3c91 +https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda#b193af204da1bfb8c13882d131a14bd2 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda#82b6df12252e6f32402b96dacc656fec https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2#e9a21aa4d5e3e5f1aed71e8cefd46b6a https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda#ed67c36f215b310412b2af935bf3e530 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda#ae92aab42726eb29d16488924f7312cb https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda#cf30c2c15b82aacb07f9c09e28ff2275 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda#49808e59df5535116f6878b2a820d6f4 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.0-pyhd8ed1ab_0.conda#05b6bcb391b5be17374f7ad0aeedc479 https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.5-pyhd8ed1ab_0.conda#1bb1ef9806a9a20872434f58b3e7fc1a https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2#d1e1eb7e21a9e2c74279d87dafb68156 https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda#9669586875baeced8fc30c0826c3270e https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda#332493000404d8411859539a5a630865 -https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda#b6d90276c5aee9b4407dd94eb0cd40a8 -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py312hf06ca03_0.conda#56b0ca764ce23cc54f3f7e2a7b970f6d +https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda#fceaedf1cdbcb02df9699a0d9b005292 +https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py312h1671c18_0.conda#33dee889f41b0ba6dbe5ddbe70ebf263 https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda#7c2b6931f9b3548ed78478332095c3e9 -https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.0-py312h41a817b_0.conda#66c68c204a3eaabc3b4221f1c4bcebbe +https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.1-py312h41a817b_0.conda#4006636c39312dc42f8504475be3800f https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py312h98912ed_0.conda#a4fbffb84a54767266c69e3699078a00 https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py312h41a817b_0.conda#da921c56bcf69a8b97216ecec0cc4015 https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2#b748fbf7060927a6e82df7cb5ee8f097 https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda#7e1729554e209627636a0f6fabcdd115 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda#3286556cdd99048d198f72c3f6f69103 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.2.0-pyha770c72_0.conda#c261d14fc7f49cdd403868998a18c318 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda#7b86ecb7d3557821c649b3c31e3eb9f2 -https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda#4b31699e0ec5de64d5896e580389c9a1 -https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h119a65a_9.conda#cfebc557e54905dadc355c0e9f003004 +https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-23_linux64_openblas.conda#eede29b40efa878cbe5bdcb767e97310 +https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp18.1-18.1.8-default_hf981a13_2.conda#b0f8c590aa86d9bee5987082f7f15bdf +https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h9def88c_2.conda#ba2d12adbea9de311297f2b577f4bb86 +https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-hd3e95f3_10.conda#30ee3a29c84cf7b842a8c5828c4b7c13 +https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.0-ha6d2627_1004.conda#df069bea331c8486ac21814969301c1f https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.7-hd590300_0.conda#2b7b0d827c6447cc1d85dc06d5b5de46 -https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda#b083767b6c877e24ee597d93b87ab838 +https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-23_linux64_openblas.conda#2af0879961951987e464722fd00ec1e0 https://conda.anaconda.org/conda-forge/linux-64/libva-2.22.0-hb711507_0.conda#d12f659072132c9d16e497073fc1f68b +https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda#e2eaefa4de2b7237af7c907b8bbc760a https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda#dfe0528d0f1c16c1f7c528ea5536ab30 https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda#0badf9c54e24cecfb0ad2f99d680c163 https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py312h287a98d_0.conda#59ea71eed98aee0bebbbdd3b118167c7 -https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda#f586ac1e56c8638b64f9c8122a7b8a67 +https://conda.anaconda.org/conda-forge/noarch/pip-24.2-pyhd8ed1ab_0.conda#6721aef6bfe5937abe70181545dd2c51 https://conda.anaconda.org/conda-forge/linux-64/proj-9.3.1-h1d62c97_0.conda#44ec51d0857d9be26158bb85caa74fdb -https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda#0f3f49c22c7ef3a1195fa61dad3c43be +https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.2-pyhd8ed1ab_0.conda#e010a224b90f1f623a917c35addbb924 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda#2cf4264fffb9e6eff6031c5b6884d61c https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.12.0-h434a139_3.conda#c667c11d1e488a38220ede8a34441bff https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda#52d648bd608f5737b123f510bb5514b5 https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda#284008712816c64c85bf2b7fa9f3b264 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.5-h7f98852_1.tar.bz2#bebd3814ec2355fab6a474b07ed73093 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.2-h7f98852_1.tar.bz2#5b0f7da25a4556c9619c3e4b4a98ab07 +https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.4-h4ab18f5_2.conda#79e46d4a6ccecb7ee1912042958a8758 https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.4-py312h98912ed_0.conda#ec3eb4803df33e90a41bc216a68d02f1 -https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.9.5-py312h98912ed_0.conda#edc01db954d139fe398a5f378f96ab4d +https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.10.3-py312h41a817b_0.conda#9efe6ef5d30d2788edbaec60b0aaad45 https://conda.anaconda.org/conda-forge/noarch/asv_runner-0.2.1-pyhd8ed1ab_0.conda#fdcbeb072c80c805a2ededaa5f91cd79 +https://conda.anaconda.org/conda-forge/linux-64/glew-2.1.0-h9c3ff4c_2.tar.bz2#fb05eb5c47590b247658243d27fc32f1 https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.9-hb077bed_0.conda#33eded89024f21659b1975886a4acf70 -https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hfac3d4d_0.conda#c7b47c64af53e8ecee01d101eeab2342 -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda#5f8c8ebbe6413a7838cf6ecf14d5d31b +https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda#76b32dcf243444aea9c6b804bcfa40b8 +https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.2.0-hd8ed1ab_0.conda#0fd030dce707a6654472cf7619b0b01b https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.4-pyhd8ed1ab_0.conda#a284ff318fbdb0dd83928275b4b6087c https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda#a908e463c710bd6b10a9eaa89fdf003c -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-2024.2.0-h2da1b83_1.conda#9511859bf5221238a2d3fb5322af01d5 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-2024.3.0-h2da1b83_0.conda#bb7a2589859c7475e38c1af677e16698 https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda#d8285bea2a350f63fab23bf460221f3f https://conda.anaconda.org/conda-forge/noarch/pbr-6.0.0-pyhd8ed1ab_0.conda#8dbab5ba746ed14aa32cb232dc437f8f https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py312h38f1c37_5.conda#867baf2a7c5c6147e05ecc90f6c52a0c @@ -263,65 +273,65 @@ https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h3483029_0 https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312h085067d_0.conda#864d9e92f012bcc49650428d5343c98a https://conda.anaconda.org/conda-forge/noarch/colorspacious-1.1.2-pyh24bf2e0_0.tar.bz2#b73afa0d009a51cabd3ec99c4d2ef4f3 https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py312h8572e83_0.conda#12c6a831ef734f0b2dd4caff514cbb7f -https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda#755e47653ae38f5c50f1435af756e844 +https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.8.0-pyhd8ed1ab_0.conda#bf68bf9ff9a18f1b17aa8c817225aee0 https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda#f80cc5989f445f23b1622d6c455896d9 -https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.1-h39113c1_2.conda#25db2ea6b8fefce451369e2cc826f6f4 -https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-1.0.1-h97afed2_0.conda#00bd7406d24d6574f2de3839b60e0925 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-batch-plugin-2024.2.0-hb045406_1.conda#70d82a64e6d07f4d6e07cae6b0bd4bd1 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-plugin-2024.2.0-hb045406_1.conda#f1e2a8ded23cef03804c4edb2edfb986 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-hetero-plugin-2024.2.0-h5c03a75_1.conda#95d2d3baaa1e456ef65c713a5d99b815 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-cpu-plugin-2024.2.0-h2da1b83_1.conda#9e49f87d8f99dc9724f52b3fac904106 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-gpu-plugin-2024.2.0-h2da1b83_1.conda#a9712fae44d01d906e228c49235e3b89 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-npu-plugin-2024.2.0-he02047a_1.conda#5c2d064181e686cf5cfac6f1a1ee4e91 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-ir-frontend-2024.2.0-h5c03a75_1.conda#89addf0fc0f489fa0c076f1c8c0d62bf -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-onnx-frontend-2024.2.0-h07e8aee_1.conda#9b0a13989b35302e47da13842683804d -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-paddle-frontend-2024.2.0-h07e8aee_1.conda#7b3680d3fd00e1f91d5faf9c97c7ae78 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-pytorch-frontend-2024.2.0-he02047a_1.conda#ac43b516c128411f84f1e19c875998f1 -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-frontend-2024.2.0-h39126c6_1.conda#11acf52cac790edcf087b89e83834f7d -https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-lite-frontend-2024.2.0-he02047a_1.conda#e7f91b35e3aa7abe880fc9192a761fc0 +https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.3-h1dc1e6a_0.conda#2a66267ba586dadd110cc991063cfff7 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-batch-plugin-2024.3.0-hb045406_0.conda#2a18663e879095118cb851620b175436 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-auto-plugin-2024.3.0-hb045406_0.conda#45bf3996fcd0caf69a3dd63b7fc7cd9e +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-hetero-plugin-2024.3.0-h5c03a75_0.conda#030fd5b2ce0b19c2c4db10890e121970 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-cpu-plugin-2024.3.0-h2da1b83_0.conda#98d9fdbb32d375ba877166737430afc4 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-gpu-plugin-2024.3.0-h2da1b83_0.conda#c0957603b82ec549c119f7103968c62d +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-intel-npu-plugin-2024.3.0-h2da1b83_0.conda#81879bcb0d246113118ab274965f11be +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-ir-frontend-2024.3.0-h5c03a75_0.conda#a512abca9b69f972671ff03f818b93f7 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-onnx-frontend-2024.3.0-h07e8aee_0.conda#89ab3cfdbf7b9a94643332cf0a8ec0e9 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-paddle-frontend-2024.3.0-h07e8aee_0.conda#b0516d69280d72da03d20d8cc8172b15 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-pytorch-frontend-2024.3.0-he02047a_0.conda#92654c43075ffd142caae9417bab9c11 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-frontend-2024.3.0-h39126c6_0.conda#5d49cf778f9dadc9438073b9b4bdf587 +https://conda.anaconda.org/conda-forge/linux-64/libopenvino-tensorflow-lite-frontend-2024.3.0-he02047a_0.conda#177e64dac3b9f83f0a505b25c698dc09 https://conda.anaconda.org/conda-forge/linux-64/mo_pack-0.3.0-py312h98912ed_1.conda#d5273d1e67b7b3a871a0a711c6532a2f https://conda.anaconda.org/conda-forge/linux-64/netcdf-fortran-4.6.1-nompi_h228c76a_104.conda#91bc3ac73308181d55a09d9e4aeb4496 https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py312h1d6d2e6_1.conda#ae00b61f3000d2284d1f2584d4dfafa8 https://conda.anaconda.org/conda-forge/linux-64/pango-1.54.0-h4c5309f_1.conda#7df02e445367703cd87a574046e3a6f0 https://conda.anaconda.org/conda-forge/linux-64/pykdtree-1.3.12-py312h085067d_1.conda#7aeadf26294d5e86c0d40d0f960f5366 -https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.6.0-py312h085067d_0.conda#092b4c0b822e36ed686010d2578953f1 +https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.7.0-py312h4fc7734_0.conda#33e6453cf4cd53f276cc2ed1bb91b0a4 +https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.7.2-hb12f9c5_4.conda#5dd4fddb73e5e4fef38ef54f35c155cd https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py312hc2bc53b_1.conda#eae80145f63aa04a02dda456d4883b46 https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.5-py312h8413631_0.conda#3e67354b24c7ee057ddee367f310ad3e https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-apidoc-0.3.0-py_1.tar.bz2#855b087883443abb10f5faf6eef40860 https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda#e804c43f58255e977093a2298e442bb8 -https://conda.anaconda.org/conda-forge/noarch/wslink-2.1.1-pyhd8ed1ab_0.conda#6b1aef9c878c58baa7bb9f0d44457174 +https://conda.anaconda.org/conda-forge/noarch/wslink-2.1.2-pyhd8ed1ab_0.conda#4cbb17383064ccfb46797aea03d70fc7 https://conda.anaconda.org/conda-forge/linux-64/cf-units-3.2.0-py312h085067d_5.conda#b40cdf87aee69ccf162022579cb99afb -https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda#2ae917b0098f286f63f69ec9365fb0b1 -https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.191-h924a536_0.conda#73d050766060acd2b3a289f27d857090 +https://conda.anaconda.org/conda-forge/noarch/distributed-2024.8.0-pyhd8ed1ab_0.conda#f9a7fbaeb79d4b57d1ed742930b4eec4 https://conda.anaconda.org/conda-forge/linux-64/esmf-8.6.1-nompi_h0a5817f_2.conda#e23c62f75f67166cf4ca137fc8bcdce7 -https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-6.1.1-gpl_h9be9148_116.conda#b89791728e73df731d1560f936147a01 +https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-7.0.2-gpl_h0db5852_100.conda#327684cc0682b8daa4b25f48d45e1dc7 https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h6470451_5.conda#1483ba046164be27df7f6eddbcec3a12 https://conda.anaconda.org/conda-forge/noarch/imagehash-4.3.1-pyhd8ed1ab_0.tar.bz2#132ad832787a2156be1f1b309835001a https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.58.2-h9564881_1.conda#c6a47e6f551890e82e92e4c1b84be353 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py312h20ab3a6_2.conda#fbfe798f83f0d66410903ad8f40d5283 https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h1ef7fb6_101.conda#c67cc8e3a34c5cb8920c79918112e96f -https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda#724bc4489c1174fc8e3233b0624fa51f +https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda#1822e87a5d357f79c6aab871d86fb062 https://conda.anaconda.org/conda-forge/linux-64/python-stratify-0.3.0-py312h085067d_2.conda#1e88f5023d2af511e48e4489b45b9f9b https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda#5ede4753180c7a550a443c430dc8ab52 +https://conda.anaconda.org/conda-forge/linux-64/vtk-base-9.3.1-qt_py312h86f6322_201.conda#1fc58af0771e8586f2a2c300bc53d565 https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.23.0-py312h1d6d2e6_1.conda#6392d3ce615ab0f32bc39b07f8f4c300 https://conda.anaconda.org/conda-forge/noarch/cmocean-4.0.3-pyhd8ed1ab_0.conda#53df00540de0348ed1b2a62684dd912b https://conda.anaconda.org/conda-forge/noarch/esmpy-8.6.1-pyhc1e730c_0.conda#25a9661177fd68bfdb4314fd658e5c3b https://conda.anaconda.org/conda-forge/linux-64/graphviz-11.0.0-hc68bbd7_0.conda#52a531ef95358086a56086c45d97ab75 -https://conda.anaconda.org/conda-forge/linux-64/mesalib-24.1.4-h3ac77ca_0.conda#083464147e4169cf088522070964e0cf https://conda.anaconda.org/conda-forge/noarch/nc-time-axis-1.4.1-pyhd8ed1ab_0.tar.bz2#281b58948bf60a2582de9e548bcc5369 https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda#8dab97d8a9616e07d779782995710aed -https://conda.anaconda.org/conda-forge/linux-64/vtk-base-9.3.1-osmesa_py312hb25cddc_101.conda#503f5be16a4df665d9a068ce9588c2a1 -https://conda.anaconda.org/conda-forge/linux-64/vtk-io-ffmpeg-9.3.1-osmesa_py312hde2fd57_101.conda#eef52b2d6c8c72871bd16858eecc7d1a -https://conda.anaconda.org/conda-forge/linux-64/vtk-9.3.1-osmesa_py312h7c0142d_101.conda#2f6fe962f2b2e2986bbed13a78e6aa3f -https://conda.anaconda.org/conda-forge/noarch/pyvista-0.44.0-pyhd8ed1ab_0.conda#16270d42141769c8342e067d25acc6ce +https://conda.anaconda.org/conda-forge/linux-64/vtk-io-ffmpeg-9.3.1-qt_py312he1e5eab_201.conda#7de6ce9316c748766c99d6f77e11dc6b +https://conda.anaconda.org/conda-forge/linux-64/vtk-9.3.1-qt_py312hadc0db7_201.conda#f5342c9104ad5f2f0aa9b571189ae96a +https://conda.anaconda.org/conda-forge/noarch/pyvista-0.44.1-pyhd8ed1ab_0.conda#0731b45087c0358ca8b7d9fe855dec1a https://conda.anaconda.org/conda-forge/noarch/geovista-0.5.1-pyhd8ed1ab_0.conda#22958696ccc609071ba40867090bfd3a https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.4-pyhd8ed1ab_0.conda#c7c50dd5192caa58a05e6a4248a27acb +https://conda.anaconda.org/conda-forge/noarch/sphinx-autoapi-3.2.1-pyhd8ed1ab_0.conda#5147fb23b7c38041fadea123fb4bbe4e https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 -https://conda.anaconda.org/conda-forge/noarch/sphinx-design-0.6.0-pyhd8ed1ab_0.conda#b04f3c04e4f7939c6207dc0c0355f468 -https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.16.0-pyhd8ed1ab_0.conda#add28691ee89e875b190eda07929d5d4 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda#611a35a27914fac3aa37611a6fe40bb5 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda#d7e4954df0d3aea2eacc7835ad12671d -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda#7e1e7437273682ada2ed5e9e9714b140 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda#26acae54b06f178681bfb551760f5dd1 -https://conda.anaconda.org/conda-forge/noarch/sphinx-7.4.5-pyhd8ed1ab_0.conda#98a3e9786dd637216c6a028f5061cd71 +https://conda.anaconda.org/conda-forge/noarch/sphinx-design-0.6.1-pyhd8ed1ab_0.conda#51b2433e4a223b14defee96d3caf9bab +https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.17.1-pyhd8ed1ab_0.conda#0adfccc6e7269a29a63c1c8ee3c6d8ba +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_0.conda#9075bd8c033f0257122300db914e49c9 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-2.0.0-pyhd8ed1ab_0.conda#b3bcc38c471ebb738854f52a36059b48 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_0.conda#e25640d692c02e8acfff0372f547e940 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_0.conda#d6e5ea5fe00164ac6c2dcc5d76a42192 +https://conda.anaconda.org/conda-forge/noarch/sphinx-7.4.7-pyhd8ed1ab_0.conda#c568e260463da2528ecfd7c5a0b41bbd https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda#e507335cb4ca9cff4c3d0fa9cdab255e + diff --git a/requirements/py310.yml b/requirements/py310.yml index 309f8aa9a2..244f3e6856 100644 --- a/requirements/py310.yml +++ b/requirements/py310.yml @@ -20,6 +20,7 @@ dependencies: - netcdf4 - numpy >=1.24, !=1.24.3, <2 - python-xxhash + - proj =9.3.1 - pyproj - scipy - shapely !=1.8.3 @@ -50,6 +51,7 @@ dependencies: # Documentation dependencies. - sphinx - sphinxcontrib-apidoc + - sphinx-autoapi >=3.2.0 - sphinx-copybutton - sphinx-gallery >=0.11.0 - sphinx-design @@ -57,4 +59,4 @@ dependencies: # Temporary minimum pins. # See https://github.com/SciTools/iris/pull/5051 - - graphviz >=6.0.0 + - graphviz >=6.0.0, <=11.0 diff --git a/requirements/py311.yml b/requirements/py311.yml index 58d71ddd52..d2cebb9a51 100644 --- a/requirements/py311.yml +++ b/requirements/py311.yml @@ -20,6 +20,7 @@ dependencies: - netcdf4 - numpy >=1.24, !=1.24.3, <2 - python-xxhash + - proj =9.3.1 - pyproj - scipy - shapely !=1.8.3 @@ -50,6 +51,7 @@ dependencies: # Documentation dependencies. - sphinx - sphinxcontrib-apidoc + - sphinx-autoapi >=3.2.0 - sphinx-copybutton - sphinx-gallery >=0.11.0 - sphinx-design @@ -57,4 +59,4 @@ dependencies: # Temporary minimum pins. # See https://github.com/SciTools/iris/pull/5051 - - graphviz >=6.0.0 + - graphviz >=6.0.0, <=11.0 diff --git a/requirements/py312.yml b/requirements/py312.yml index e1e62e52d9..8f82e6bee8 100644 --- a/requirements/py312.yml +++ b/requirements/py312.yml @@ -20,6 +20,7 @@ dependencies: - netcdf4 - numpy >=1.24, !=1.24.3, <2 - python-xxhash + - proj =9.3.1 - pyproj - scipy - shapely !=1.8.3 @@ -50,6 +51,7 @@ dependencies: # Documentation dependencies. - sphinx - sphinxcontrib-apidoc + - sphinx-autoapi >=3.2.0 - sphinx-copybutton - sphinx-gallery >=0.11.0 - sphinx-design @@ -57,4 +59,4 @@ dependencies: # Temporary minimum pins. # See https://github.com/SciTools/iris/pull/5051 - - graphviz >=6.0.0 + - graphviz >=6.0.0, <=11.0