From b59bd49fd5a9fe4356d563b205a3294fccca0e3e Mon Sep 17 00:00:00 2001 From: raceychan Date: Wed, 5 Mar 2025 05:32:22 +0800 Subject: [PATCH] feat: remove unresolvable dependency error by default --- CHANGELOG.md | 44 +- ididi/_node.py | 4 +- ididi/config.py | 18 +- ididi/errors.py | 38 +- ididi/graph.pxd | 2 +- ididi/graph.pyx | 21 +- ididi/interfaces.py | 4 +- makefile | 4 +- pixi.lock | 801 +++++++++--------- pyproject.toml | 6 +- tests/features/test_node_ignore.py | 7 +- tests/features/test_static_resolve.py | 5 +- tests/regression/test_bug_fixes.py | 19 +- .../regression/test_facotry_return_generic.py | 22 +- tests/test_graph.py | 15 +- tests/versions/test_v1_5_1.py | 3 +- tests/versions/test_v1_5_2.py | 20 + 17 files changed, 533 insertions(+), 500 deletions(-) create mode 100644 tests/versions/test_v1_5_2.py diff --git a/CHANGELOG.md b/CHANGELOG.md index e23284ac..fab800f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1299,4 +1299,46 @@ as well as dg.factory(InfraBuilder().repo_maker) ``` -we need to test to see if this already works +NOTE: we need to test to see if this already works + + + +- Make sure this won't break + +```python +async def create_user(name: Query[str]): + ... + +dg = Graph(ignore=Query) +dg.analyze(create_user) +``` + +```python +>>> from typing import * +>>> type Q[T] = Annotated[T, "aloha"] +>>> type(Q) + +>>> type(Q[str]) + + +assert get_origin(Q[str]) is Q +``` + +possible solution: +when we analyze +```python +def analyze_params( + self, ufunc: Callable[P, T], config: NodeConfig = DefaultConfig +) -> tuple[bool, list[tuple[str, IDependent[Any]]]]: + deps = Dependencies.from_signature( + signature=get_typed_signature(ufunc), function=ufunc + ) + depends_on_resource: bool = False + unresolved: list[tuple[str, IDependent[Any]]] = [] + + for i, (name, param) in enumerate(deps.items()): + param_type = get_origin(param.param_type) or param.param_type + + if param_type in config.ignore: + continue +``` \ No newline at end of file diff --git a/ididi/_node.py b/ididi/_node.py index 8ece258c..d9c86490 100644 --- a/ididi/_node.py +++ b/ididi/_node.py @@ -348,10 +348,10 @@ def is_resource(self) -> bool: return self.factory_type in ("resource", "aresource") def analyze_unsolved_params( - self, ignore: frozenset[Any] = EmptyIgnore + self, ignore: tuple[Any] = EmptyIgnore ) -> Generator[Dependency, None, None]: "params that needs to be statically resolved" - ignore = ignore | self.config.ignore + ignore = ignore + self.config.ignore for i, (name, param) in enumerate(self.dependencies.items()): if i in ignore or name in ignore: diff --git a/ididi/config.py b/ididi/config.py index 7dfc2f4f..2299c656 100644 --- a/ididi/config.py +++ b/ididi/config.py @@ -3,7 +3,7 @@ from .interfaces import GraphIgnore, GraphIgnoreConfig, NodeIgnore, NodeIgnoreConfig -EmptyIgnore: Final[frozenset[Any]] = frozenset() +EmptyIgnore: Final[tuple[Any]] = tuple() class FrozenSlot: @@ -49,14 +49,14 @@ def __init__( ignore: NodeIgnoreConfig = EmptyIgnore, ): - if not isinstance(ignore, frozenset): + if not isinstance(ignore, tuple): if isinstance(ignore, Iterable): if isinstance(ignore, str): - ignore = frozenset([ignore]) + ignore = tuple((ignore,)) else: - ignore = frozenset(ignore) + ignore = tuple(ignore) else: - ignore = frozenset([ignore]) + ignore = (ignore,) object.__setattr__(self, "ignore", ignore) object.__setattr__(self, "reuse", reuse) @@ -69,14 +69,14 @@ class GraphConfig(FrozenSlot): def __init__(self, *, self_inject: bool, ignore: GraphIgnoreConfig): - if not isinstance(ignore, frozenset): + if not isinstance(ignore, tuple): if isinstance(ignore, Iterable): if isinstance(ignore, str): - ignore = frozenset([ignore]) + ignore = tuple((ignore,)) else: - ignore = frozenset(ignore) + ignore = tuple(ignore) else: - ignore = frozenset([ignore]) + ignore = (ignore,) object.__setattr__(self, "self_inject", self_inject) object.__setattr__(self, "ignore", ignore) diff --git a/ididi/errors.py b/ididi/errors.py index 539f06bc..be20ca35 100644 --- a/ididi/errors.py +++ b/ididi/errors.py @@ -108,25 +108,25 @@ class UnsolvableParameterError(UnsolvableNodeError): """ -class UnsolvableDependencyError(UnsolvableParameterError): - """ - Raised when a dependency parameter can't be built. - """ - - def __init__( - self, - *, - dep_name: str, - factory: Union[Callable[..., Any], type], - dependent_type: Callable[..., Any], - dependency_type: Callable[..., Any], - ): - type_repr = getattr(dependency_type, "__name__", str(dependency_type)) - param_repr = f" * {dependent_type.__name__}({dep_name}: {type_repr}) \n value of `{dep_name}` must be provided" - self.message = ( - f"Unable to resolve dependency for parameter in {factory}, \n{param_repr}" - ) - super().__init__(self.message) +# class UnsolvableDependencyError(UnsolvableParameterError): +# """ +# Raised when a dependency parameter can't be built. +# """ + +# def __init__( +# self, +# *, +# dep_name: str, +# factory: Union[Callable[..., Any], type], +# dependent_type: Callable[..., Any], +# dependency_type: Callable[..., Any], +# ): +# type_repr = getattr(dependency_type, "__name__", str(dependency_type)) +# param_repr = f" * {dependent_type.__name__}({dep_name}: {type_repr}) \n value of `{dep_name}` must be provided" +# self.message = ( +# f"Unable to resolve dependency for parameter in {factory}, \n{param_repr}" +# ) +# super().__init__(self.message) class ForwardReferenceNotFoundError(UnsolvableParameterError): diff --git a/ididi/graph.pxd b/ididi/graph.pxd index 42dc1a7c..31e25ebf 100644 --- a/ididi/graph.pxd +++ b/ididi/graph.pxd @@ -6,7 +6,7 @@ cdef class Resolver: cdef readonly dict _nodes cdef readonly dict _analyzed_nodes cdef readonly TypeRegistry _type_registry - cdef readonly frozenset _ignore + cdef readonly tuple _ignore cdef readonly object _workers cdef readonly set _registered_singletons diff --git a/ididi/graph.pyx b/ididi/graph.pyx index c8a45511..cfe411f9 100644 --- a/ididi/graph.pyx +++ b/ididi/graph.pyx @@ -57,7 +57,6 @@ from .errors import ( ResourceOutsideScopeError, ReusabilityConflictError, TopLevelBulitinTypeError, - UnsolvableDependencyError, UnsolvableNodeError, ) from .interfaces import ( @@ -449,7 +448,7 @@ cdef class Resolver: dependent: INode[P, T], *, config: NodeConfig = DefaultConfig, - ignore: frozenset[str] = EmptyIgnore, + ignore: tuple[str] = EmptyIgnore, ) -> DependentNode: if node := self._analyzed_nodes.get(dependent): return node @@ -463,7 +462,7 @@ cdef class Resolver: def dfs(dep: IDependent[T]) -> DependentNode: # when we register a concrete node we also register its bases to type_registry - cdef frozenset node_graph_ignore + cdef tuple node_graph_ignore if dep in self._analyzed_nodes: return self._analyzed_nodes[dep] @@ -477,7 +476,7 @@ cdef class Resolver: current_path.append(dep) if ignore is not self._ignore: - node_graph_ignore = ignore | self._ignore + node_graph_ignore = ignore + self._ignore else: node_graph_ignore = ignore @@ -506,12 +505,8 @@ cdef class Resolver: if is_provided(param.default_): continue if param.unresolvable: - raise UnsolvableDependencyError( - dep_name=param.name, - dependent_type=dep, - dependency_type=param.param_type, - factory=node.factory, - ) + continue + try: fnode = dfs(param_type) except UnsolvableNodeError as une: @@ -633,7 +628,7 @@ cdef class Resolver: if resolution := self._resolved_singletons.get(dependent): return resolution - provided_params = frozenset(overrides) + provided_params = tuple(overrides) node: DependentNode = self.analyze(dependent, ignore=provided_params) return _resolve_dfs( @@ -653,7 +648,7 @@ cdef class Resolver: if resolution := self._resolved_singletons.get(dependent): return resolution - provided_params = frozenset(overrides) + provided_params = tuple(overrides) node: DependentNode = self.analyze(dependent, ignore=provided_params) return await _aresolve_dfs( self, self._nodes, self._resolved_singletons, node.dependent, overrides @@ -663,7 +658,7 @@ cdef class Resolver: self, dependent: INode[P, T], config: NodeConfig = DefaultConfig ) -> DependentNode: merged_config = NodeConfig( - reuse=config.reuse, ignore=self._ignore | config.ignore + reuse=config.reuse, ignore=self._ignore + config.ignore ) node = DependentNode.from_node(dependent, config=merged_config) if node.function_dependent: diff --git a/ididi/interfaces.py b/ididi/interfaces.py index 7608b534..0c141be0 100644 --- a/ididi/interfaces.py +++ b/ididi/interfaces.py @@ -41,8 +41,8 @@ ] INode = Union[INodeFactory[P, R], type[R]] -NodeIgnore = frozenset[Union[str, int, type, TypeAliasType]] -GraphIgnore = frozenset[Union[str, type, TypeAliasType]] +NodeIgnore = tuple[Union[str, int, type, TypeAliasType]] +GraphIgnore = tuple[Union[str, type, TypeAliasType]] NodeConfigParam = Union[str, int, type, TypeAliasType] GraphConfigParam = Union[str, type, TypeAliasType] diff --git a/makefile b/makefile index f6976cf6..0b6927ce 100644 --- a/makefile +++ b/makefile @@ -10,7 +10,7 @@ clean: find ididi \( -name "*.c" -o -name "*.so" -o -name "*.html" \) -type f -exec rm -f {} \; .PHONY: test -test: +test: compile pixi run -e test pytest -m "not benchmark" -vx --capture=fd tests/ .PHONY: debug @@ -125,7 +125,7 @@ git-push: local-build: @echo "Building version $(VERSION)..." - @pixi run -e publish python setup.py build_ext --inplace + @pixi run -e publish python setup.py sdist bdist_wheel .PHONY: cibuild cibuild: diff --git a/pixi.lock b/pixi.lock index fe81f86a..585c4d97 100644 --- a/pixi.lock +++ b/pixi.lock @@ -7,32 +7,33 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py39hbce0bbb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py312h2614dfc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.6.3-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h4ab18f5_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1w-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-5_cp39.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.0-hab00c5b_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.6.3-hbcc6ac9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.6.3-hbcc6ac9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.6.3-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h4ab18f5_6.conda dev: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -42,7 +43,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py39h8cd3c5a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h66e93f0_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.4-pyhd8ed1ab_1.conda @@ -51,18 +52,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.2.0-h82add2a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py39hf88036b_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py39he32792d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py39hbce0bbb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.12-py39hf88036b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py312h2614dfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.12-py312h2ec8cdc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda @@ -85,7 +87,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.10.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py39hf3d152e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.23.0-hd8ed1ab_1.conda @@ -101,20 +103,26 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.6.3-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h4ab18f5_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py39h9399b63_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.1-pyhd8ed1ab_0.conda @@ -129,7 +137,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1w-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/paginate-0.5.7-pyhd8ed1ab_1.conda @@ -143,41 +151,40 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.50-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.50-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.1-py39h8cd3c5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.0-hab00c5b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-5_cp39.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py39h9399b63_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h178313f_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-env-tag-0.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py39h4e4fb57_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.1-py312hbf22597_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py39h8cd3c5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.22.3-py39he612d8f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.23.1-py312h3b7be25_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py39h8cd3c5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20241206-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda @@ -186,7 +193,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py39hf3d152e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py312h7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.11.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -196,10 +203,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.6.3-hbcc6ac9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.6.3-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h59595ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h4ab18f5_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py39h08a7858_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda publish: channels: @@ -211,18 +217,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bashlex-0.18-py39hf3d152e_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bashlex-0.18-py312h7900ff3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bracex-2.2.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py39hf88036b_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py39he32792d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cibuildwheel-2.21.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-2024.11.20-py39h8cd3c5a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-39.0.0-py39hd598818_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py39hbce0bbb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-2024.11.20-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-44.0.2-py312hda17c39_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py312h2614dfc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h48d8840_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.2.18-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_1.conda @@ -231,10 +238,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.68.4-h9c3ff4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.68.4-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.2-hf974151_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.2-hb6ce0ca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.14.0-pyhd8ed1ab_1.conda @@ -254,33 +259,31 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.6.0-pyha804496_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.68.4-h3e27bee_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.2-hf974151_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.6.3-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h4ab18f5_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.20-py39he612d8f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1w-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.20-py312h12e396e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre-8.45-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda @@ -289,24 +292,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pygithub-2.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.5.0-py39hd1e30aa_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.5.0-py312h66e93f0_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.0-hab00c5b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-5_cp39.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py39h9399b63_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h178313f_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py39hf3d152e_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda @@ -320,14 +322,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.9.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.5.26-h0f3a69f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.29.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.2-py39h8cd3c5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.2-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.6.3-hbcc6ac9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.6.3-hbcc6ac9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.6.3-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h4ab18f5_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py39h08a7858_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda test: channels: @@ -337,11 +338,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.36.0-h3371d22_4.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.16.0-h6cf1ce9_1008.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.10-py39h9399b63_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py39hbce0bbb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.12-py312h178313f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py312h2614dfc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 @@ -371,17 +373,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.14-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h6ad9fb6_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.68.4-h3e27bee_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.2-hf974151_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.6.3-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.52.2-hc3c00ef_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda @@ -396,22 +399,21 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.9.12-h72842e0_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h4ab18f5_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1w-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pango-1.48.10-h54213e6_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre-8.45-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.44.2-h29eaf8c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyinstrument-5.0.1-py39h8cd3c5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyinstrument-5.0.1-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-asyncio-0.24.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.0-hab00c5b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-graphviz-0.20.3-pyh91182bf_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-5_cp39.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda @@ -484,21 +486,19 @@ packages: - pkg:pypi/argon2-cffi?source=hash-mapping size: 18594 timestamp: 1733311166338 -- conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py39h8cd3c5a_5.conda - sha256: a3321ceda55121c4ef6ca08a966b2d5c2a4078ad40625cb43d1bab49329b1700 - md5: ebf59f90740b2b77e3d71c6855a7935d +- conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h66e93f0_5.conda + sha256: 3cbc3b026f5c3f26de696ead10607db8d80cbb003d87669ac3b02e884f711978 + md5: 1505fc57c305c0a3174ea7aae0a0db25 depends: - __glibc >=2.17,<3.0.a0 - cffi >=1.0.1 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - purls: - - pkg:pypi/argon2-cffi-bindings?source=hash-mapping - size: 34122 - timestamp: 1725356676809 + size: 34847 + timestamp: 1725356749774 - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_1.conda sha256: c4b0bdb3d5dee50b60db92f99da3e4c524d5240aafc0a5fcc15e45ae2d1a3cd1 md5: 46b53236fdd990271b03c3978d4218a9 @@ -596,16 +596,16 @@ packages: - pkg:pypi/backports-tarfile?source=hash-mapping size: 32786 timestamp: 1733325872620 -- conda: https://conda.anaconda.org/conda-forge/linux-64/bashlex-0.18-py39hf3d152e_2.conda - sha256: 86e3d23f9c01607bbaa82906b94f4c4c48a1124ab544470de2eca6596c9d5ef8 - md5: 67e64f7af00810b8ad19100c58a0768b +- conda: https://conda.anaconda.org/conda-forge/linux-64/bashlex-0.18-py312h7900ff3_2.conda + sha256: 5c005d24386f0e045ba270cff5ace52c52ecd5a1ed245efc1ded3837c1fde959 + md5: b8e14ce60245f510d941adeac10ae896 depends: - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: GPL-3.0-only license_family: GPL - size: 127193 - timestamp: 1725526501869 + size: 157555 + timestamp: 1725526503655 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_1.conda sha256: fca842ab7be052eea1037ebee17ac25cc79c626382dd2187b5c6e007b9d9f65f md5: d48f7e9fdec44baf6d1da416fe402b04 @@ -651,23 +651,31 @@ packages: license_family: MIT size: 14045 timestamp: 1636190617443 -- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py39hf88036b_2.conda - sha256: 6b5ad1d89519f926138cd146bc475d42ccbd8239849fa8677031160e17f30202 - md5: 8ea5af6ac902f1a4429190970d9099ce +- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + sha256: f2a59ccd20b4816dea9a2a5cb917eb69728271dbf1aeab4e1b7e609330a50b6f + md5: b0b867af6fc74b2a0aa206da29c0f3cf depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - libstdcxx >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 constrains: - libbrotlicommon 1.1.0 hb9d3cd8_2 license: MIT license_family: MIT - purls: - - pkg:pypi/brotli?source=hash-mapping - size: 349166 - timestamp: 1725267838006 + size: 349867 + timestamp: 1725267732089 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + size: 252783 + timestamp: 1720974456583 - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda sha256: bf832198976d559ab44d6cdb315642655547e26d826e34da67cbee6624cda189 md5: 19f3a56f68d2fd06c516076bff482c52 @@ -729,21 +737,20 @@ packages: - pkg:pypi/certifi?source=hash-mapping size: 161642 timestamp: 1734380604767 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.6-py39he32792d_0.tar.bz2 - sha256: 29bb46a5a1a37d10b0d75097cc7fdfe7664f602ae614dd77232c6d5994dd24cb - md5: 826d864bbf3d58d730a49557d9c29b80 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457 + md5: a861504bbea4161a9170b85d4d2be840 depends: - - libffi >=3.3,<3.4.0a0 - - libgcc-ng >=9.3.0 + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 - pycparser - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - purls: - - pkg:pypi/cffi?source=hash-mapping - size: 232441 - timestamp: 1625835510372 + size: 294403 + timestamp: 1725560714366 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda sha256: 4e0ee91b97e5de3e74567bdacea27f0139709fceca4db8adffbe24deffccb09b md5: e83a31202d1c0a000fce3e9cf3825875 @@ -786,21 +793,19 @@ packages: - pkg:pypi/click?source=hash-mapping size: 84705 timestamp: 1734858922844 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-2024.11.20-py39h8cd3c5a_0.conda - sha256: 49d6db8e9cc25c55072ad4b3841216084cbc5c5349cf735bd43318463b232ac0 - md5: 153a8fcc6ea43aca11daf82f66abdcdd +- conda: https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-2024.11.20-py312h66e93f0_0.conda + sha256: 294643f1ad5cbaa8646f803b89cc2da2b43c41cf4d3855883662ab0bb5455d3e + md5: bf99b4a864e31ecd9244affd27f3ceb6 depends: - __glibc >=2.17,<3.0.a0 - cffi >=1.0.0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - purls: - - pkg:pypi/cmarkgfm?source=hash-mapping - size: 140037 - timestamp: 1732193383789 + size: 139452 + timestamp: 1732193337513 - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 md5: 962b9857ee8e7018c22f2776ffa0b2d7 @@ -824,49 +829,48 @@ packages: - pkg:pypi/comm?source=hash-mapping size: 12103 timestamp: 1733503053903 -- conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.10-py39h9399b63_0.conda - sha256: 5b9ac5b820a056ab2908372789620c2829eda7a6be4ad29398868c92d45c154c - md5: cf3d6b6d3e8aba0a9ea3dec4d05c9380 +- conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.12-py312h178313f_0.conda + sha256: 4e619659a08fe46f48a04ee391888b04f60af92e8a587ca3b69cbefbe1b7b7f8 + md5: 5be370f84dac4fbd6596db97924ee101 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - tomli license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/coverage?source=hash-mapping - size: 290443 - timestamp: 1735245530337 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-39.0.0-py39hd598818_0.conda - sha256: 9d6652ae8aafe6023efe495c87c48da89b0825470e668d1d90f5fde0b6cb09ba - md5: 8b8923de82864744f8150b6307f4039a + size: 366622 + timestamp: 1739302185140 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-44.0.2-py312hda17c39_0.conda + sha256: df45e7c376d2dbdac6cedace080164b33a15b2f2f3ef8920e0ea934f9d87fd7b + md5: 9b4ab17c7654fe98ef6cd9a0021cd7bb depends: + - __glibc >=2.17,<3.0.a0 - cffi >=1.12 - - libgcc-ng >=12 - - openssl >=1.1.1s,<1.1.2a - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - libgcc >=13 + - openssl >=3.4.1,<4.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT license_family: BSD - purls: - - pkg:pypi/cryptography?source=hash-mapping - size: 1436588 - timestamp: 1672672813998 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py39hbce0bbb_0.conda - sha256: 1f3b2f6bb877a6122cc3a5ab4cc16e2fa938139c4ce370a5e18189062ffb1eb1 - md5: ffa17d1836905c83addf6bc1708881a5 + size: 1590060 + timestamp: 1740893871300 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py312h2614dfc_0.conda + sha256: de815476da537b911e2ceeb7f76b445d0c76b3d5fad35600ed28bc8d19302127 + md5: e5d2a28866ee990a340bde1eabde587a depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - libstdcxx >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: APACHE - size: 3222753 - timestamp: 1739228211039 + size: 3766553 + timestamp: 1739228870146 - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h48d8840_2.tar.bz2 sha256: 39092eb6675b9ad4dcbc31e1ec42fb4e01a71eab4e51768e413bb7aafdbfee95 md5: eba672c69baf366fdedd1c6f702dbb81 @@ -880,21 +884,19 @@ packages: purls: [] size: 585242 timestamp: 1616778916368 -- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.12-py39hf88036b_0.conda - sha256: 987b6e3ab4aabdc0e4c8c325552c694fd9311f985f3dd6b30e47c7a7e48160d0 - md5: fea41cd6f4815e2bdcb7c32e0b2e03ed +- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.12-py312h2ec8cdc_0.conda + sha256: f88c3a7ff384d1726aea2cb2342cf67f1502915391860335c40ab81d7e381e30 + md5: 6be6dcb4bffd1d456bdad28341d507bd depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - libstdcxx >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - purls: - - pkg:pypi/debugpy?source=hash-mapping - size: 2122965 - timestamp: 1737269919982 + size: 2646757 + timestamp: 1737269937348 - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_1.conda sha256: 84e5120c97502a3785e8c3241c3bf51f64b4d445f13b4d2445db00d9816fe479 md5: d622d8d7ee8868870f9cbe259f381181 @@ -1167,31 +1169,27 @@ packages: purls: [] size: 77248 timestamp: 1712692454246 -- conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.68.4-h9c3ff4c_0.tar.bz2 - sha256: c4d12084afdaed3db189d7f273d0cdc48bad2928f01ef6bf7e6fc53af91257b1 - md5: 8b8a2eca3496b279cd4f45888490437f +- conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.2-hf974151_0.conda + sha256: d10a0f194d2c125617352a81a4ff43a17cf5835e88e8f151da9f9710e2db176d + md5: d427988dc3dbd0a4c136f52db356cc6a depends: - - gettext >=0.19.8.1,<1.0a0 - - glib-tools 2.68.4 h9c3ff4c_0 - - libgcc-ng >=9.4.0 - - libglib 2.68.4 h3e27bee_0 - - libstdcxx-ng >=9.4.0 + - glib-tools 2.80.2 hb6ce0ca_0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libglib 2.80.2 hf974151_0 - python * license: LGPL-2.1-or-later - purls: [] - size: 457282 - timestamp: 1629404183969 -- conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.68.4-h9c3ff4c_0.tar.bz2 - sha256: 8e48b90a829137572ccd043629c7e1b8a6201e396675be93e24ca73f8ec2d98d - md5: 1e3e305bf1db79b99c3255b557751519 + size: 600389 + timestamp: 1715252749399 +- conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.2-hb6ce0ca_0.conda + sha256: 221cd047f998301b96b1517d9f7d3fb0e459e8ee18778a1211f302496f6e110d + md5: a965aeaf060289528a3fbe09326edae2 depends: - - libgcc-ng >=9.4.0 - - libglib 2.68.4 h3e27bee_0 - - libstdcxx-ng >=9.4.0 + - libgcc-ng >=12 + - libglib 2.80.2 hf974151_0 license: LGPL-2.1-or-later - purls: [] - size: 87780 - timestamp: 1629404143138 + size: 114359 + timestamp: 1715252713902 - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda sha256: 0595b009f20f8f60f13a6398e7cdcbd2acea5f986633adcf85f5a2283c992add md5: f87c7b7c2cb45f323ffbce941c78ab7c @@ -1647,18 +1645,16 @@ packages: - pkg:pypi/json5?source=hash-mapping size: 31573 timestamp: 1733272196759 -- conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py39hf3d152e_1.conda - sha256: 933d28dec625d72877b0bb19acc17f50a8dc21377cbf8d607aeee9ac51ed47b4 - md5: ab01fa677a681147a10f39680e6886fa +- conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_1.conda + sha256: 76ccb7bffc7761d1d3133ffbe1f7f1710a0f0d9aaa9f7ea522652e799f3601f4 + md5: 6b51f7459ea4073eeb5057207e2e1e3d depends: - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/jsonpointer?source=hash-mapping - size: 15743 - timestamp: 1725303072097 + size: 17277 + timestamp: 1725303032027 - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda sha256: be992a99e589146f229c58fe5083e0b60551d774511c494f91fe011931bd7893 md5: a3cead9264b331b32fe8f0aabc967522 @@ -1939,6 +1935,28 @@ packages: - pkg:pypi/keyring?source=hash-mapping size: 36985 timestamp: 1735210286595 +- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + md5: 30186d27e2c9fa62b45fb1476b7200e3 + depends: + - libgcc-ng >=10.3.0 + license: LGPL-2.1-or-later + size: 117831 + timestamp: 1646151697040 +- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda + sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 + md5: 3f43953b7d3fb3aaa1d0d0723d91e368 + depends: + - keyutils >=1.6.1,<2.0a0 + - libedit >=3.1.20191231,<3.2.0a0 + - libedit >=3.1.20191231,<4.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - openssl >=3.3.1,<4.0a0 + license: MIT + license_family: MIT + size: 1370023 + timestamp: 1719463201255 - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe md5: 048b02e3962f066da18efe3a21b77672 @@ -1994,6 +2012,18 @@ packages: purls: [] size: 82697 timestamp: 1662888469663 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 + md5: c277e0a4d549b03ac1e9d6cbbe3d017b + depends: + - ncurses + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - ncurses >=6.5,<7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 134676 + timestamp: 1738479519902 - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26 md5: db833e03127376d461e1e13e76f09b6c @@ -2007,17 +2037,16 @@ packages: purls: [] size: 73304 timestamp: 1730967041968 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_2.tar.bz2 - sha256: bfa80758d38a4f50089c38340b4577d476daaf10967ab2dfc2de9650854705f0 - md5: 665369991d8dd290ac5ee92fce3e6bf5 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda + sha256: 67a6c95e33ebc763c1adc3455b9a9ecde901850eb2fceb8e646cc05ef3a663da + md5: e3eb7806380bc8bcecba6d749ad5f026 depends: - - libgcc-ng >=7.5.0 - - libstdcxx-ng >=7.5.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT - purls: [] - size: 52624 - timestamp: 1607352031860 + size: 53415 + timestamp: 1739260413716 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569 md5: 3cb76c3f10d3bc7f1105b2fc9db984df @@ -2086,23 +2115,20 @@ packages: purls: [] size: 36790 timestamp: 1723626032786 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.68.4-h3e27bee_0.tar.bz2 - sha256: be3cb15ddabaccd0114cb8cd126a32587485370c1489e86714ef405565a85c7d - md5: 23767bef4fd0fb2bda64405df72c9454 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.2-hf974151_0.conda + sha256: 93e03b6cf4765bc06d64fa3dac65f22c53ae4a30247bb0e2dea0bd9c47a3fb26 + md5: 72724f6a78ecb15559396966226d5838 depends: - - gettext >=0.19.8.1,<1.0a0 - - libffi >=3.3,<3.4.0a0 - - libgcc-ng >=9.4.0 - - libiconv >=1.16,<2.0.0a0 - - libstdcxx-ng >=9.4.0 - - pcre >=8.45,<9.0a0 - - zlib >=1.2.11,<1.3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<2.0.0a0 + - pcre2 >=10.43,<10.44.0a0 constrains: - - glib 2.68.4 *_0 + - glib 2.80.2 *_0 license: LGPL-2.1-or-later - purls: [] - size: 3181061 - timestamp: 1629404101540 + size: 3912673 + timestamp: 1715252654366 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63 md5: cc3573974587f12dda90d96e3e55a702 @@ -2145,6 +2171,15 @@ packages: purls: [] size: 376794 timestamp: 1733407421190 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + size: 33408 + timestamp: 1697359010159 - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997 md5: 009981dd9cfcaa4dbfa25ffaed86bcae @@ -2170,15 +2205,14 @@ packages: purls: [] size: 5447834 timestamp: 1634566008469 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 - sha256: 53da0c8b79659df7b53eebdb80783503ce72fb4b10ed6e9e05cc0e9e4207a130 - md5: c3788462a6fbddafdb413a9f9053e58d +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda + sha256: 0105bd108f19ea8e6a78d2d994a6d4a8db16d19a41212070d2d1d48a63c34161 + md5: a587892d3c13b6621a6091be690dbca2 depends: - - libgcc-ng >=7.5.0 + - libgcc-ng >=12 license: ISC - purls: [] - size: 374999 - timestamp: 1605135674116 + size: 205978 + timestamp: 1716828628198 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 md5: 18aa975d2094c34aef978060ae7da7d8 @@ -2339,22 +2373,20 @@ packages: - pkg:pypi/markdown-it-py?source=hash-mapping size: 64430 timestamp: 1733250550053 -- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py39h9399b63_1.conda - sha256: a8bce47de4572f46da0713f54bdf54a3ca7bb65d0fa3f5d94dd967f6db43f2e9 - md5: 7821f0938aa629b9f17efd98c300a487 +- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda + sha256: 4a6bf68d2a2b669fecc9a4a009abd1cf8e72c2289522ff00d81b5a6e51ae78f5 + md5: eb227c3e0bf58f5bd69c0532b157975b depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 constrains: - jinja2 >=3.0.0 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/markupsafe?source=hash-mapping - size: 22897 - timestamp: 1733219847480 + size: 24604 + timestamp: 1733219911494 - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda sha256: 69b7dc7131703d3d60da9b0faa6dd8acbf6f6c396224cf6aef3e855b8c0c41c6 md5: af6ab708897df59bd6e7283ceab1b56b @@ -2570,22 +2602,20 @@ packages: - pkg:pypi/nest-asyncio?source=hash-mapping size: 11543 timestamp: 1733325673691 -- conda: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.20-py39he612d8f_0.conda - sha256: 28227c4412f3f98b96eff69cfdb838dfee4a81de85834eb8647f9660c3bb6768 - md5: 5303fec0a5cd3a45b0d7c99a11d45290 +- conda: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.20-py312h12e396e_0.conda + sha256: a96e27a2831030603b37f3849bf55f113a385b241bde6b798938e1dd67ba319d + md5: a5f1a3232140bdc69987110387e1a62e depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 constrains: - __glibc >=2.17 license: MIT license_family: MIT - purls: - - pkg:pypi/nh3?source=hash-mapping - size: 638323 - timestamp: 1734483793843 + size: 637638 + timestamp: 1734483706753 - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.3.2-pyhd8ed1ab_0.conda sha256: 07138543549d6672376115a000c5fd26c3711f0b2b5c9464889bccfe711d8e59 md5: 48b0461a947a0537427fc836b9bd2d33 @@ -2615,17 +2645,17 @@ packages: - pkg:pypi/notebook-shim?source=hash-mapping size: 16817 timestamp: 1733408419340 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1w-hd590300_0.conda - sha256: 4fe19885c77f0758084feb54954bd1977dfeeab7134fba0a1d9c0cfff821d6bd - md5: 301e70057a3bd399640bb16bbdf87995 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda + sha256: cbf62df3c79a5c2d113247ddea5658e9ff3697b6e741c210656e239ecaf1768f + md5: 41adf927e746dc75ecf0ef841c454e48 depends: + - __glibc >=2.17,<3.0.a0 - ca-certificates - - libgcc-ng >=12 - license: OpenSSL + - libgcc >=13 + license: Apache-2.0 license_family: Apache - purls: [] - size: 1956010 - timestamp: 1694461292959 + size: 2939306 + timestamp: 1739301879343 - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda sha256: 1840bd90d25d4930d60f57b4f38d4e0ae3f5b8db2819638709c36098c6ba770c md5: e51f1e4089cad105b6cac64bd8166587 @@ -2710,17 +2740,17 @@ packages: - pkg:pypi/pathspec?source=hash-mapping size: 41075 timestamp: 1733233471940 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre-8.45-h9c3ff4c_0.tar.bz2 - sha256: 8f35c244b1631a4f31fb1d66ab6e1d9bfac0ca9b679deced1112c7225b3ad138 - md5: c05d1820a6d34ff07aaaab7a9b7eddaa +- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda + sha256: 766dd986a7ed6197676c14699000bba2625fd26c8a890fcb7a810e5cf56155bc + md5: 8292dea9e022d9610a11fce5e0896ed8 depends: - - libgcc-ng >=9.3.0 - - libstdcxx-ng >=9.3.0 + - bzip2 >=1.0.8,<2.0a0 + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 license: BSD-3-Clause license_family: BSD - purls: [] - size: 259377 - timestamp: 1623788789327 + size: 950847 + timestamp: 1708118050286 - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda sha256: 202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a md5: d0d408b1f18883a944376da5cf8101ea @@ -2822,20 +2852,18 @@ packages: purls: [] size: 6765 timestamp: 1737453458406 -- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.1-py39h8cd3c5a_0.conda - sha256: ba51644107fb105f470231a6de2a906b07c7b4046041aa618585670ad20333f8 - md5: 287b29f8df0363b2a53a5a6e6ce4fa5c +- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py312h66e93f0_0.conda + sha256: 158047d7a80e588c846437566d0df64cec5b0284c7184ceb4f3c540271406888 + md5: 8e30db4239508a538e4a3b3cdf5b9616 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/psutil?source=hash-mapping - size: 364359 - timestamp: 1735327498648 + size: 466219 + timestamp: 1740663246825 - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973 md5: b3c17d95b5a10c6e64a21fa17573e70e @@ -2907,20 +2935,18 @@ packages: - pkg:pypi/pygments?source=hash-mapping size: 888600 timestamp: 1736243563082 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyinstrument-5.0.1-py39h8cd3c5a_0.conda - sha256: 9d72145eb775c7152895d762f121c195ac130a36f28cd066ff03c48908f2535b - md5: 81005caf58c11114bf000edbc627daa7 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyinstrument-5.0.1-py312h66e93f0_0.conda + sha256: 3f1c0bc95f2c46dcd107f44cf742ee1fa40ba22e244f01083654743bbbcf28f3 + md5: 9f1d7b421e4c8fd00009490613db64d4 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/pyinstrument?source=hash-mapping - size: 155299 - timestamp: 1737774500319 + size: 182333 + timestamp: 1737774425235 - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda sha256: 158d8911e873e2a339c27768933747bf9c2aec1caa038f1b7b38a011734a956f md5: 84c5c40ea7c5bbc6243556e5daed20e7 @@ -2945,20 +2971,21 @@ packages: - pkg:pypi/pymdown-extensions?source=compressed-mapping size: 168695 timestamp: 1738439213597 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.5.0-py39hd1e30aa_3.conda - sha256: 92ab9febd08bf59bd21ca851829b7af075b9b182aecc54e025fcbad620034897 - md5: b7595c0ba694ee1b6cca8d6e76d9f3f8 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.5.0-py312h66e93f0_4.conda + sha256: 9b3849d530055c1dff2a068628a4570f55d02156d78ec00b8efbc37af396aee9 + md5: c47ede9450b5347c1933ccb552fca707 depends: + - __glibc >=2.17,<3.0.a0 - cffi >=1.4.1 - - libgcc-ng >=12 - - libsodium >=1.0.18,<1.0.19.0a0 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - six license: Apache-2.0 license_family: Apache - size: 1177867 - timestamp: 1695545050571 + size: 1186774 + timestamp: 1725739367009 - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 md5: 461219d1a5bd61342293efa2c0c90eac @@ -3014,29 +3041,32 @@ packages: license_family: MIT size: 26256 timestamp: 1733223113491 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2 - build_number: 5 - sha256: 4268b9d64b93e148a343fb31b2ece72fb9bb6e1730a8f0fbf158d2b9bd958cd2 - md5: d26d64e4cf67cbfab3caf9176c9255de - depends: - - ld_impl_linux-64 - - libffi >=3.3,<3.4.0a0 - - libgcc-ng >=9.3.0 - - libstdcxx-ng >=9.3.0 - - ncurses >=6.2,<7.0.0a0 - - openssl >=1.1.1h,<1.1.2a - - readline >=8.0,<9.0a0 - - sqlite >=3.33.0,<4.0a0 - - tk >=8.6.10,<8.7.0a0 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.0-hab00c5b_0_cpython.conda + sha256: 5398ebae6a1ccbfd3f76361eac75f3ac071527a8072627c4bf9008c689034f48 + md5: 7f97faab5bebcc2580f4f299285323da + depends: + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.5.0,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libnsl >=2.0.0,<2.1.0a0 + - libsqlite >=3.43.0,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libzlib >=1.2.13,<2.0.0a0 + - ncurses >=6.4,<7.0a0 + - openssl >=3.1.3,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 - tzdata - - xz >=5.2.5,<6.0.0a0 - - zlib >=1.2.11,<1.3.0a0 + - xz >=5.2.6,<6.0a0 constrains: - - python_abi 3.9.* *_cp39 + - python_abi 3.12.* *_cp312 + arch: x86_64 + platform: linux license: Python-2.0 - purls: [] - size: 30099820 - timestamp: 1606378485555 + size: 32123473 + timestamp: 1696324522323 - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda sha256: a50052536f1ef8516ed11a844f9413661829aa083304dc624c5925298d078d79 md5: 5ba79d7c71f03c678c8ead841f347d6e @@ -3083,17 +3113,16 @@ packages: - pkg:pypi/python-json-logger?source=hash-mapping size: 13383 timestamp: 1677079727691 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-5_cp39.conda +- conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda build_number: 5 - sha256: 019e2f8bca1d1f1365fbb9965cd95bb395c92c89ddd03165db82f5ae89a20812 - md5: 40363a30db350596b5f225d0d5a33328 + sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 + md5: 0424ae29b104430108f5218a66db7260 constrains: - - python 3.9.* *_cpython + - python 3.12.* *_cpython license: BSD-3-Clause license_family: BSD - purls: [] - size: 6193 - timestamp: 1723823354399 + size: 6238 + timestamp: 1723823388266 - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda sha256: bc35995ecbd38693567fc143d3e6008e53cff900b453412cae48ffa535f25d1f md5: d451ccded808abf6511f0a2ac9bb9dcc @@ -3105,21 +3134,19 @@ packages: - pkg:pypi/pytz?source=compressed-mapping size: 186859 timestamp: 1738317649432 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py39h9399b63_2.conda - sha256: fe968067dce0002983d2e187b28a7466afe8522e4f3edde01627a572025f3a4f - md5: 13fd88296a9f19f5e3ac0c69d4b64cc6 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h178313f_2.conda + sha256: 159cba13a93b3fe084a1eb9bda0a07afc9148147647f0d437c3c3da60980503b + md5: cf2485f39740de96e2a7f2bb18ed2fee depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT - purls: - - pkg:pypi/pyyaml?source=hash-mapping - size: 181843 - timestamp: 1737455034168 + size: 206903 + timestamp: 1737454910324 - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-env-tag-0.1-pyhd8ed1ab_1.conda sha256: 313b597524729b9df052a3a15750df53f9a6a020dbe322a38c0995227e40ee8c md5: 02a556b5c344b576bbb7ad2a2c6f2246 @@ -3132,23 +3159,21 @@ packages: - pkg:pypi/pyyaml-env-tag?source=hash-mapping size: 9940 timestamp: 1734344363898 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py39h4e4fb57_1.conda - sha256: 6959f580ec81193c9a1c13b57f144954a131ab5df8391ec5794fccff9be5a393 - md5: 4f303fde372f5ed6a85e3cd895bda96d +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.1-py312hbf22597_0.conda + sha256: 90ec0da0317d3d76990a40c61e1709ef859dd3d8c63838bad2814f46a63c8a2e + md5: 7cec8d0dac15a2d9fea8e49879aa779d depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - libsodium >=1.0.18,<1.0.19.0a0 + - libsodium >=1.0.20,<1.0.21.0a0 - libstdcxx >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/pyzmq?source=hash-mapping - size: 336760 - timestamp: 1725430560555 + size: 382698 + timestamp: 1738271121975 - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 md5: 47d31b792659ce70f470b5c82fdfb7a4 @@ -3190,20 +3215,18 @@ packages: - pkg:pypi/referencing?source=hash-mapping size: 51668 timestamp: 1737836872415 -- conda: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py39h8cd3c5a_0.conda - sha256: e0972f677b955cadcf5416182b57dba91e5d51ec88f42cf93637574319764e2a - md5: 594b95d10937835bbae307111b7ee65b +- conda: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py312h66e93f0_0.conda + sha256: fcb5687d3ec5fff580b64b8fb649d9d65c999a91a5c3108a313ecdd2de99f06b + md5: 647770db979b43f9c9ca25dcfa7dc4e4 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: Python-2.0 license_family: PSF - purls: - - pkg:pypi/regex?source=hash-mapping - size: 349800 - timestamp: 1730952301394 + size: 402821 + timestamp: 1730952378415 - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda sha256: d701ca1136197aa121bbbe0e8c18db6b5c94acbd041c2b43c70e5ae104e1d8ad md5: a9b9368f3701a417eac9edbcae7cb737 @@ -3281,37 +3304,33 @@ packages: - pkg:pypi/rich?source=hash-mapping size: 185646 timestamp: 1733342347277 -- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.22.3-py39he612d8f_0.conda - sha256: c6511ecfa2ed7ee728b58926cfa14b830a7301cd5a0bd9062e6bc085f226ec4d - md5: f78f4ac18603f12bcabec0219df9ea15 +- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.23.1-py312h3b7be25_0.conda + sha256: 0378f8010ef166cea7fcb0d502e3c85fd96442e445aab7e66f8702deb9ab1e26 + md5: b9cb8c7bcbe3df8e640b244ed096b8e2 depends: - - __glibc >=2.17,<3.0.a0 + - python - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.12.* *_cp312 constrains: - __glibc >=2.17 license: MIT license_family: MIT - purls: - - pkg:pypi/rpds-py?source=hash-mapping - size: 352549 - timestamp: 1733366850206 -- conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py39hf3d152e_3.conda - sha256: 02c456dcf6947b25246bb6327012a3c375c7e916e11ca23665427cf98ec5a184 - md5: 49e960e84cd58e2fdc8bad42f0955a27 + size: 394314 + timestamp: 1740153296343 +- conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda + sha256: c6d5d0bc7fb6cbfa3b8be8f2399a3c1308b3392a4e20bd1a0f29a828fda5ab20 + md5: 4840da9db2808db946a0d979603c6de4 depends: - cryptography - dbus - jeepney >=0.6 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/secretstorage?source=hash-mapping - size: 26998 - timestamp: 1725915722997 + size: 31601 + timestamp: 1725915741329 - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_1.conda sha256: 00926652bbb8924e265caefdb1db100f86a479e8f1066efe395d5552dde54d02 md5: 938c8de6b9de091997145b3bf25cdbf9 @@ -3377,19 +3396,6 @@ packages: - pkg:pypi/soupsieve?source=hash-mapping size: 36754 timestamp: 1693929424267 -- conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda - sha256: e849d576e52bf3e6fc5786f89b7d76978f2e2438587826c95570324cb572e52b - md5: 77ea8dff5cf8550cc8f5629a6af56323 - depends: - - libgcc-ng >=12 - - libsqlite 3.46.0 hde9e2c9_0 - - libzlib >=1.2.13,<2.0a0 - - ncurses >=6.5,<7.0a0 - - readline >=8.2,<9.0a0 - license: Unlicense - purls: [] - size: 860352 - timestamp: 1718050658212 - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda sha256: 570da295d421661af487f1595045760526964f41471021056e993e73089e9c41 md5: b1b505328da7a6b246787df4b5a49fbc @@ -3485,20 +3491,18 @@ packages: - pkg:pypi/tomlkit?source=hash-mapping size: 37372 timestamp: 1733230836889 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py39h8cd3c5a_0.conda - sha256: 3c9a90f755ce097ab884bf1ea99ac1033007753a6538cae65747fddc4b74481e - md5: ebfd05ae1501660e995a8b6bbe02a391 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py312h66e93f0_0.conda + sha256: 062a3a3a37fa8615ce57929ba7e982c76f5a5810bcebd435950f6d6c4147c310 + md5: e417822cb989e80a0d2b1b576fdd1657 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache - purls: - - pkg:pypi/tornado?source=hash-mapping - size: 642001 - timestamp: 1732616065142 + size: 840414 + timestamp: 1732616043734 - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959 md5: 019a7385be9af33791c989871317e1ed @@ -3658,19 +3662,17 @@ packages: - pkg:pypi/virtualenv?source=compressed-mapping size: 3501167 timestamp: 1737145224475 -- conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py39hf3d152e_0.conda - sha256: 99c0ed0fc7d4f7e6a88486883a8190137abf7506b693af1124a51e7a68b017d4 - md5: 45f3cced56eb307a83e5fbfa6d54c3ec +- conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py312h7900ff3_0.conda + sha256: 2436c4736b8135801f6bfcd09c7283f2d700a66a90ebd14b666b996e33ef8c9a + md5: 687b37d1325f228429409465e811c0bc depends: - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - pyyaml >=3.10 license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/watchdog?source=hash-mapping - size: 114330 - timestamp: 1730492963996 + size: 140940 + timestamp: 1730493008472 - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_1.conda sha256: f21e63e8f7346f9074fd00ca3b079bd3d2fa4d71f1f89d5b6934bf31446dc2a5 md5: b68980f2495d096e71c7fd9d7ccf63e6 @@ -3726,18 +3728,18 @@ packages: - pkg:pypi/widgetsnbextension?source=hash-mapping size: 898402 timestamp: 1733128654300 -- conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.2-py39h8cd3c5a_0.conda - sha256: f21d6d1404061b8cc8cb7bf39f62920d6e0098c3cdab353b5d956d3ad50c3834 - md5: 26f043eb814e120552daa0859d58d7e9 +- conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.2-py312h66e93f0_0.conda + sha256: ed3a1700ecc5d38c7e7dc7d2802df1bc1da6ba3d6f6017448b8ded0affb4ae00 + md5: 669e63af87710f8d52fdec9d4d63b404 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: BSD-2-Clause license_family: BSD - size: 56219 - timestamp: 1736869579960 + size: 63590 + timestamp: 1736869574299 - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda sha256: c12396aabb21244c212e488bbdc4abcdef0b7404b15761d9329f5a4a39113c4b md5: fb901ff28063514abb6046c9ec2c4a45 @@ -3866,18 +3868,19 @@ packages: purls: [] size: 89141 timestamp: 1641346969816 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h59595ed_1.conda - sha256: 3bec658f5c23abf5e200d98418add7a20ff7b45c928ad4560525bef899496256 - md5: 7fc9d3288d2420bb3637647621018000 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda + sha256: a4dc72c96848f764bb5a5176aa93dd1e9b9e52804137b99daeebba277b31ea10 + md5: 3947a35e916fcc6b9825449affbf4214 depends: - - libgcc-ng >=12 - - libsodium >=1.0.18,<1.0.19.0a0 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 license: MPL-2.0 license_family: MOZILLA - purls: [] - size: 343438 - timestamp: 1709135220800 + size: 335400 + timestamp: 1731585026517 - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda sha256: 567c04f124525c97a096b65769834b7acb047db24b15a56888a322bf3966c3e1 md5: 0c3cc595284c5e8f0f9900a9b228a332 @@ -3900,23 +3903,21 @@ packages: purls: [] size: 92883 timestamp: 1716874088980 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py39h08a7858_1.conda - sha256: 76a45ef349517eaab1492f17f9c807ccbf1971961c6e90d454fbedbed7e257ad - md5: cd9fa334e11886738f17254f52210bc3 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + sha256: b97015e146437283f2213ff0e95abdc8e2480150634d81fbae6b96ee09f5e50b + md5: 8b7069e9792ee4e5b4919a7a306d2e67 depends: - __glibc >=2.17,<3.0.a0 - cffi >=1.11 - libgcc >=13 - - python >=3.9,<3.10.0a0 - - python_abi 3.9.* *_cp39 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/zstandard?source=hash-mapping - size: 407017 - timestamp: 1725305769438 + size: 419552 + timestamp: 1725305670210 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b md5: 4d056880988120e29d75bfff282e0f45 diff --git a/pyproject.toml b/pyproject.toml index 2549fe04..19717899 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -81,7 +81,7 @@ publish = { features = ["publish"], solve-group = "default" } test = { features = ["test"], solve-group = "default" } [tool.pixi.dependencies] -python = "3.9.0.*" +python = "==3.12" typing_extensions = ">=4.12.2,<5" cython = "==3.0.12" @@ -120,8 +120,6 @@ build = "cp39* cp310* cp311* cp312* cp313*" build = { cmd = "hatch build", inputs = ["ididi/*"], outputs = ["dist/*"] } # Upload to custom GCP registry using twine check = { cmd = "twine check" } -publish = { cmd = "twine upload --skip-existing dist/*", depends-on = [ - "build", -] } +publish = { cmd = "twine upload --skip-existing dist/*"} test-publish = { cmd = "twine upload --repository testpypi --skip-existing dist/" } patch = { cmd = "hatch version patch" } diff --git a/tests/features/test_node_ignore.py b/tests/features/test_node_ignore.py index 3274a62b..551c2ac3 100644 --- a/tests/features/test_node_ignore.py +++ b/tests/features/test_node_ignore.py @@ -1,7 +1,6 @@ import pytest from ididi import Graph, Ignore -from ididi.errors import UnsolvableDependencyError class IgnoreNode: @@ -13,16 +12,14 @@ def __init__(self, name: str, age: int): def test_direct_resolve_fail(): dg = Graph() dg.node(IgnoreNode) - with pytest.raises(UnsolvableDependencyError): - dg.analyze(IgnoreNode) + dg.analyze(IgnoreNode) def test_resolve_fail_with_partial_ignore(): dg = Graph() dg.node(ignore=("name",))(IgnoreNode) - with pytest.raises(UnsolvableDependencyError): - dg.analyze(IgnoreNode) + dg.analyze(IgnoreNode) def test_resolve_with_ignore(): diff --git a/tests/features/test_static_resolve.py b/tests/features/test_static_resolve.py index caab9790..bad83660 100644 --- a/tests/features/test_static_resolve.py +++ b/tests/features/test_static_resolve.py @@ -1,6 +1,6 @@ import pytest -from ididi.errors import ForwardReferenceNotFoundError, UnsolvableDependencyError +from ididi.errors import ForwardReferenceNotFoundError from ididi.graph import Graph # Create test classes with various dependency patterns @@ -134,8 +134,7 @@ class UserService: def __init__(self, repository: Repository): self.repository = repository - with pytest.raises(UnsolvableDependencyError): - dg.analyze(UserService) + dg.analyze(UserService) async def test_analyze_a_factory(dg: Graph): diff --git a/tests/regression/test_bug_fixes.py b/tests/regression/test_bug_fixes.py index 90be06bb..f572c853 100644 --- a/tests/regression/test_bug_fixes.py +++ b/tests/regression/test_bug_fixes.py @@ -8,7 +8,6 @@ ABCNotImplementedError, ForwardReferenceNotFoundError, ProtocolFacotryNotProvidedError, - UnsolvableDependencyError, ) dg = Graph() @@ -16,12 +15,10 @@ def test_protocols(): class Cache(ty.Protocol): - def get(self, key: str) -> str: - ... + def get(self, key: str) -> str: ... class MemoryCache: - def get(self, key: str) -> str: - ... + def get(self, key: str) -> str: ... @dg.node class Registry: @@ -41,8 +38,7 @@ def cache_factory() -> Cache: def test_abc(): class AbstractEngine(abc.ABC): @abc.abstractmethod - def run(self) -> None: - ... + def run(self) -> None: ... @dg.node class Database: @@ -61,8 +57,7 @@ def run(self): @dg.node class Engine(AbstractEngine): - def run(self): - ... + def run(self): ... dg.resolve(AbstractEngine) @@ -75,8 +70,7 @@ def run(self): @dg.node class Engine(AbstractEngine): - def run(self): - ... + def run(self): ... @dg.node class Database: @@ -153,7 +147,7 @@ class Service: def __init__(self, a: ty.Union[int, str]): self.a = a - with pytest.raises(UnsolvableDependencyError): + with pytest.raises(TypeError): dg.resolve(Service) @dg.node @@ -190,7 +184,6 @@ def __init__(self, a: str): def service_factory(ddd: ty.Any = 3) -> AnyService: return AnyService("test") - # with pytest.raises(UnsolvableDependencyError): dg.resolve(AnyService) diff --git a/tests/regression/test_facotry_return_generic.py b/tests/regression/test_facotry_return_generic.py index 6e83cd1a..c118ba4a 100644 --- a/tests/regression/test_facotry_return_generic.py +++ b/tests/regression/test_facotry_return_generic.py @@ -3,11 +3,7 @@ import pytest from ididi import Graph, Ignore -from ididi.errors import ( - ForwardReferenceNotFoundError, - UnsolvableDependencyError, - UnsolvableReturnTypeError, -) +from ididi.errors import ForwardReferenceNotFoundError, UnsolvableReturnTypeError dg = Graph() # Define a generic type variable @@ -49,23 +45,19 @@ def test_emptry_return_factory(): with pytest.raises(UnsolvableReturnTypeError): @dg.node - def animal_factory(animal_type: str): - ... + def animal_factory(animal_type: str): ... with pytest.raises(ForwardReferenceNotFoundError): @dg.node - def animal_factory(animtal_type: str = "test") -> "Normal": - ... + def animal_factory(animtal_type: str = "test") -> "Normal": ... -class UserService: - ... +class UserService: ... @dg.node -def user_service_factory() -> "UserService": - ... +def user_service_factory() -> "UserService": ... def test_forward_factory(): @@ -82,7 +74,7 @@ def test_direct_resolve_with_override(): dg = Graph() # this should not raise ididi.errors.UnsolvableDependencyError # since animal_type is provided, we should not care about resolvability - with pytest.raises(UnsolvableDependencyError): - dg.analyze(animal_factory) + + dg.analyze(animal_factory) dg.resolve(animal_factory, animal_type="cat") diff --git a/tests/test_graph.py b/tests/test_graph.py index 34db8b00..21c8052f 100644 --- a/tests/test_graph.py +++ b/tests/test_graph.py @@ -18,7 +18,7 @@ NotSupportedError, PositionalOverrideError, TopLevelBulitinTypeError, - UnsolvableDependencyError, + ) T = ty.TypeVar("T") @@ -396,14 +396,13 @@ class BadService: def __init__(self, bad: None): # object is not a proper annotation self.bad = bad - with pytest.raises(UnsolvableDependencyError): + with pytest.raises(TypeError): dg.resolve(BadService) class New: def __init__(self, name: str): ... - with pytest.raises(UnsolvableDependencyError): - dg.resolve(New) + dg.resolve(New, name="aloha") class Old: def __init__(self, age: int = 3): ... @@ -413,8 +412,7 @@ def new_factory(age: int) -> New: dg.node(new_factory) - with pytest.raises(UnsolvableDependencyError): - dg.resolve(New) + dg.resolve(New, age=5) def test_dependency_override(dg: Graph): @@ -623,9 +621,8 @@ def __init__(self, b: Base, age: int): self.b = b self.age = age - with pytest.raises(UnsolvableDependencyError): - dg.node(reuse=False)(Sub) - dg.analyze(Sub) + dg.node(reuse=False)(Sub) + dg.analyze(Sub) dg.reset(clear_nodes=True) diff --git a/tests/versions/test_v1_5_1.py b/tests/versions/test_v1_5_1.py index 3a1d6786..5d33ec7d 100644 --- a/tests/versions/test_v1_5_1.py +++ b/tests/versions/test_v1_5_1.py @@ -3,7 +3,6 @@ import pytest from ididi import Graph, Ignore, use -from ididi.errors import UnsolvableDependencyError def test_complex_resolve(): @@ -54,5 +53,5 @@ def main( assert d == "f" return a + b + c - with pytest.raises(UnsolvableDependencyError): + with pytest.raises(TypeError): dg.resolve(main, a=1, b=2, k="f") diff --git a/tests/versions/test_v1_5_2.py b/tests/versions/test_v1_5_2.py new file mode 100644 index 00000000..58396b2d --- /dev/null +++ b/tests/versions/test_v1_5_2.py @@ -0,0 +1,20 @@ +from typing import Annotated + +from ididi import Graph, Ignore, use + +type Q[T] = Annotated[T, "Q"] + + +def get_q(q: Q[str]) -> Ignore[int]: ... + + +async def create_user(q: Q[str], dep: Annotated[int, use(get_q)]) -> Ignore[int]: + return q + + +async def test_ignore_alias(): + dg = Graph() + + node = dg.analyze(create_user, ignore=(Q,)) + + assert await dg.resolve(create_user, q=5) == 5