diff --git a/.codeclimate.yml b/.codeclimate.yml
index 91cc1320..ec630c09 100644
--- a/.codeclimate.yml
+++ b/.codeclimate.yml
@@ -4,7 +4,7 @@ checks:
argument-count:
enabled: true
config:
- threshold: 6
+ threshold: 10 # as long as not hitting too-many-positional-arguments
complex-logic:
enabled: true
config:
diff --git a/.github/workflows/issue_to_jira.yml b/.github/workflows/issue_to_jira.yml
index 3054aa23..057d0782 100644
--- a/.github/workflows/issue_to_jira.yml
+++ b/.github/workflows/issue_to_jira.yml
@@ -1,5 +1,3 @@
-# This workflow will create a JIRA issue upon creation of a GitHub issue
-
name: Create JIRA issue
on:
@@ -7,30 +5,8 @@ on:
types: [opened]
jobs:
- new_jira_issue:
- runs-on: ubuntu-latest
-
- steps:
- - name: JIRA Login
- uses: atlassian/gajira-login@v3.0.1
- env:
- JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
- JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
- JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
- - name: Jira Create issue
- id: create_jira_issue
- uses: atlassian/gajira-create@v3.0.1
- with:
- project: GEOPY
- issuetype: Story
- summary: ${{ github.event.issue.title }}
- description: "_from [GitHub issue #${{ github.event.issue.number }}|${{ github.event.issue.html_url }}]_"
- # Additional fields in JSON format
- fields: '{"components": [{"name": "geoapps"}]}'
- - name: Post JIRA link
- uses: peter-evans/create-or-update-comment@v3
- with:
- # The number of the issue or pull request in which to create a comment.
- issue-number: ${{ github.event.issue.number }}
- # The comment body.
- body: "JIRA issue [${{ steps.create_jira_issue.outputs.issue }}] was created."
+ call-workflow-create-jira-issue:
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-jira-issue_to_jira.yml@main
+ secrets: inherit
+ with:
+ project-key: 'GEOPY'
diff --git a/.github/workflows/pr_add_jira_summary.yml b/.github/workflows/pr_add_jira_summary.yml
index f0c8a8dd..794bf3f0 100644
--- a/.github/workflows/pr_add_jira_summary.yml
+++ b/.github/workflows/pr_add_jira_summary.yml
@@ -1,6 +1,3 @@
-# This workflow will comment the PR with the JIRA issue summary
-# if a JIRA issue number is detected in the branch name or title
-
name: Add JIRA issue summary
on:
@@ -8,57 +5,6 @@ on:
types: [opened]
jobs:
- add_jira_summary:
- runs-on: ubuntu-latest
-
- steps:
- - name: Find JIRA issue key
- id: find_jira_key
- env:
- HEAD_REF: ${{ github.head_ref}}
- PR_TITLE: ${{ github.event.pull_request.title }}
- run: >
- echo $HEAD_REF $PR_TITLE
- | echo "issue_key=$(
- grep -osi "\b\(GA\|GEOPY\|DEVOPS\)[ #-]*[0-9]\+"
- | head -n1
- | sed -E "s/([A-Z]+)[-# ]*([0-9]+)/\1-\2/i"
- | tr [:lower:] [:upper:]
- )"
- >> $GITHUB_OUTPUT
- - name: Get JIRA summary
- id: get_jira_summary
- if: ${{ steps.find_jira_key.outputs.issue_key }}
- env:
- JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
- JIRA_BASIC_AUTH: ${{ secrets.JIRA_BASIC_AUTH }}
- run: >
- curl -sS -X GET
- -H "Authorization: Basic $JIRA_BASIC_AUTH"
- -H "Content-Type: application/json"
- "$JIRA_BASE_URL/rest/api/2/issue/${{ steps.find_jira_key.outputs.issue_key }}"
- | echo "summary=$(jq -r '.fields.summary // empty')" >> $GITHUB_OUTPUT
- - name: Extract PR title
- id: get_pr_title
- env:
- PR_TITLE: ${{ github.event.pull_request.title }}
- run: |
- echo "text=$(echo $PR_TITLE | sed -E "s/^\s*[?[A-Z]+[-# ]*[0-9]+]?[-: ]*(.*)/\1/i")" >> $GITHUB_OUTPUT
- - name: Add comment
- if: ${{ steps.find_jira_key.outputs.issue_key }}
- env:
- ISSUE_SUMMARY: ${{ steps.get_jira_summary.outputs.summary }}
- TITLE_TEXT: ${{ steps.get_pr_title.outputs.text }}
- PR_BODY: ${{ github.event.pull_request.body }}
- run: >
- jq
- --arg ISSUE_ID "${{ steps.find_jira_key.outputs.issue_key }}"
- --arg ISSUE_SUMMARY "$(cat <<< $ISSUE_SUMMARY)"
- --arg TITLE_TEXT "$(cat <<< ${TITLE_TEXT:-$ISSUE_SUMMARY})"
- --arg PR_BODY "$(cat <<< $PR_BODY)"
- -c '{"title": ($ISSUE_ID + ": " + $TITLE_TEXT), "body": ("**" + $ISSUE_ID + " - " + $ISSUE_SUMMARY + "**\n" + $PR_BODY)}' <<< {}
- | curl -sS -X POST -d @-
- -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}"
- -H "Content-Type: application/json"
- "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/pulls/${{ github.event.pull_request.number }}"
- > /dev/null
+ call-workflow-add-jira-issue-summary:
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-jira-pr_add_jira_summary.yml@main
+ secrets: inherit
diff --git a/.github/workflows/pytest-unix-os.yaml b/.github/workflows/pytest-unix-os.yaml
deleted file mode 100644
index 2798e6ea..00000000
--- a/.github/workflows/pytest-unix-os.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: pytest on Unix OS
-
-on:
- pull_request:
- types: [opened, synchronize, reopened, ready_for_review]
- branches:
- - develop
- - main
- - release/**
- - feature/**
- - hotfix/**
- push:
- branches:
- - develop
- - main
- - release/**
- - feature/**
- - hotfix/**
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- pytest:
- name: pytest (Unix)
- if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
- strategy:
- fail-fast: false
- matrix:
- python_ver: ['3.10']
- os: [ubuntu-latest]
- runs-on: ${{ matrix.os }}
- defaults:
- run:
- shell: bash -l {0}
- env:
- PYTHONUTF8: 1
- CONDA_CHANNEL_PRIORITY: strict
- PIP_NO_DEPS: 1 # all dependencies are installed from conda
- CONDA_LOCK_ENV_FILE: environments/py-${{ matrix.python_ver }}-${{ startsWith(matrix.os, 'macos') && 'osx' || 'linux' }}-64-dev.conda.lock.yml
- steps:
- - uses: actions/checkout@v4
- with:
- lfs: true
- - name: Setup conda env
- uses: mamba-org/setup-micromamba@v1
- with:
- environment-file: ${{ env.CONDA_LOCK_ENV_FILE }}
- environment-name: test_env
- cache-downloads: true
- - name: pytest
- run: pytest --cov --cov-report=xml
diff --git a/.github/workflows/pytest-windows.yaml b/.github/workflows/pytest-windows.yaml
deleted file mode 100644
index cb092c80..00000000
--- a/.github/workflows/pytest-windows.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-name: pytest on Windows
-
-on:
- pull_request:
- types: [opened, synchronize, reopened, ready_for_review]
- branches:
- - develop
- - main
- - release/**
- - feature/**
- - hotfix/**
- push:
- branches:
- - develop
- - main
- - release/**
- - feature/**
- - hotfix/**
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- pytest:
- name: pytest (Windows)
- if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
- strategy:
- fail-fast: false
- matrix:
- python_ver: ['3.10']
- defaults:
- run:
- shell: bash
- runs-on: windows-latest
- env:
- PYTHONUTF8: 1
- CONDA_CHANNEL_PRIORITY: strict
- PIP_NO_DEPS: 1 # all dependencies are installed from conda
- CONDA_LOCK_ENV_FILE: environments/py-${{ matrix.python_ver }}-win-64-dev.conda.lock.yml
- steps:
- - uses: actions/checkout@v4
- with:
- lfs: true
- - name: Setup conda env
- uses: mamba-org/setup-micromamba@v1
- with:
- environment-file: ${{ env.CONDA_LOCK_ENV_FILE }}
- environment-name: test_env
- init-shell: bash
- cache-downloads: true
- - name: pytest
- shell: bash -el {0}
- run: pytest --cov --cov-report=xml
- - name: Codecov
- if: ${{ success() && matrix.python_ver == '3.10' }}
- uses: codecov/codecov-action@v4
- with:
- name: GitHub
- fail_ci_if_error: true
- token: ${{ secrets.CODECOV_TOKEN }}
diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml
new file mode 100644
index 00000000..c6da3eb1
--- /dev/null
+++ b/.github/workflows/python_analysis.yml
@@ -0,0 +1,43 @@
+name: Python analysis
+
+on:
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ branches:
+ - develop
+ - main
+ - release/**
+ - feature/**
+ - hotfix/**
+ push:
+ branches:
+ - develop
+ - main
+ - release/**
+ - feature/**
+ - hotfix/**
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
+jobs:
+ call-workflow-static-analysis:
+ name: Static analysis
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@main
+ with:
+ package-manager: 'conda'
+ app-name: 'geoapps_utils'
+ python-version: '3.10'
+ call-workflow-pytest:
+ name: Pytest
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main
+ with:
+ package-manager: 'conda'
+ python-versions: '["3.10", "3.11", "3.12"]'
+ os: '["windows-latest", "ubuntu-latest"]'
+ cache-number: 1
+ codecov-reference-python-version: '3.10'
+ codecov-reference-os: '["windows-latest"]'
+ secrets:
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
diff --git a/.github/workflows/python_deploy_dev.yml b/.github/workflows/python_deploy_dev.yml
new file mode 100644
index 00000000..15fc52fa
--- /dev/null
+++ b/.github/workflows/python_deploy_dev.yml
@@ -0,0 +1,35 @@
+name: Deploy python package in development
+
+on:
+ push:
+ tags:
+ - 'v*' # Push events to every version tag (eg. v1.0.0)
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
+ cancel-in-progress: true
+
+jobs:
+ call-workflow-conda-publish:
+ name: Publish development conda package on JFrog Artifactory
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_conda_package.yml@main
+ with:
+ package-name: 'geoapps-utils'
+ python-version: '3.10'
+ virtual-repo-names: '["public-conda-dev"]'
+ secrets:
+ JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }}
+ JFROG_ARTIFACTORY_TOKEN: ${{ secrets.JFROG_ARTIFACTORY_TOKEN }}
+ call-workflow-pypi-publish:
+ name: Publish development pypi package (JFrog Artifactory, TestPyPI)
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_pypi_package.yml@main
+ with:
+ package-manager: 'poetry'
+ package-name: 'geoapps-utils'
+ version-tag: ${{ github.ref_name }}
+ python-version: '3.10'
+ virtual-repo-names: '["public-pypi-dev", "test-pypi"]'
+ secrets:
+ JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }}
+ JFROG_ARTIFACTORY_TOKEN: ${{ secrets.JFROG_ARTIFACTORY_TOKEN }}
+ PYPI_TOKEN: ${{ secrets.TEST_PYPI_TOKEN }}
diff --git a/.github/workflows/python_deploy_prod.yml b/.github/workflows/python_deploy_prod.yml
new file mode 100644
index 00000000..fe05a7a2
--- /dev/null
+++ b/.github/workflows/python_deploy_prod.yml
@@ -0,0 +1,56 @@
+name: Deploy python package in production
+
+on:
+ release:
+ types: [published]
+ workflow_dispatch:
+ inputs:
+ release-tag:
+ description: 'Tag for the existing (draft) release to publish assets from'
+ required: true
+ publish-conda:
+ description: 'Publish Conda package'
+ required: false
+ type: boolean
+ default: true
+ publish-pypi:
+ description: 'Publish PyPI package'
+ required: false
+ type: boolean
+ default: true
+ environment:
+ description: 'The environment to publish to'
+ required: true
+ type: choice
+ default: prod
+ options:
+ - prod
+ - dev
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.release.tag_name || github.event.inputs.release-tag || github.run_id }}
+ cancel-in-progress: true
+
+jobs:
+ call-workflow-conda-release:
+ name: Publish production Conda package on JFrog Artifactory
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-release_conda_assets.yml@main
+ if: ${{ github.event_name == 'release' || github.event.inputs.publish-conda == 'true' }}
+ with:
+ virtual-repo-names: '["public-conda-${{ inputs.environment }}"]'
+ release-tag: ${{ github.event.release.tag_name || github.event.inputs.release-tag }}
+ secrets:
+ JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }}
+ JFROG_ARTIFACTORY_TOKEN: ${{ secrets.JFROG_ARTIFACTORY_TOKEN }}
+ call-workflow-pypi-release:
+ name: Publish production PyPI package (JFrog Artifactory, PyPI)
+ if: ${{ github.event_name == 'release' || github.event.inputs.publish-pypi == 'true' }}
+ uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-release_pypi_assets.yml@main
+ with:
+ package-name: 'geoapps-utils'
+ virtual-repo-names: ${{ inputs.environment == 'prod' && '["public-pypi-prod", "pypi"]' || '["public-pypi-dev", "test-pypi"]' }}
+ release-tag: ${{ github.event.release.tag_name || github.event.inputs.release-tag }}
+ secrets:
+ JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }}
+ JFROG_ARTIFACTORY_TOKEN: ${{ secrets.JFROG_ARTIFACTORY_TOKEN }}
+ PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml
deleted file mode 100644
index 34f456f8..00000000
--- a/.github/workflows/static-analysis.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-name: static analysis
-
-on:
- pull_request:
- types: [opened, synchronize, reopened, ready_for_review]
- branches:
- - develop
- - main
- - release/**
- - feature/**
- - hotfix/**
- push:
- branches:
- - develop
- - main
- - release/**
- - feature/**
- - hotfix/**
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-env:
- source_dir: geoapps_utils
-
-jobs:
- pylint:
- name: pylint
- if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
- runs-on: ubuntu-latest
- defaults:
- run:
- shell: bash -l {0}
- env:
- PYTHONUTF8: 1
- CONDA_CHANNEL_PRIORITY: strict
- PIP_NO_DEPS: 1 # all dependencies are installed from conda
- CONDA_LOCK_ENV_FILE: environments/py-3.10-linux-64-dev.conda.lock.yml
- steps:
- - uses: actions/checkout@v4
- - name: Setup conda env
- uses: mamba-org/setup-micromamba@v1
- with:
- environment-file: ${{ env.CONDA_LOCK_ENV_FILE }}
- environment-name: linter_env
- cache-downloads: true
- - name: capture modified files
- if: github.event_name == 'pull_request'
- run: >-
- git fetch --deepen=500 origin ${{github.base_ref}}
- && echo "FILES_PARAM=$(
- git diff --diff-filter=AM --name-only refs/remotes/origin/${{github.base_ref}}... -- | grep -E "^(${source_dir}|tests)/.*\.py$" | xargs
- )" >> $GITHUB_ENV
- - name: Run pylint on modified files
- if: github.event_name == 'pull_request' && env.FILES_PARAM
- run: pylint $FILES_PARAM
- - name: Run pylint on all files
- if: github.event_name == 'push'
- run: pylint $source_dir tests
diff --git a/.gitignore b/.gitignore
index 052dc933..59610bf2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -144,3 +144,4 @@ dmypy.json
# tempory generated files
pyproject-sha.toml
+/poetry.lock
diff --git a/.idea/copyright/MiraGeoscience.xml b/.idea/copyright/MiraGeoscience.xml
index 77e6bf9b..3452f2a4 100644
--- a/.idea/copyright/MiraGeoscience.xml
+++ b/.idea/copyright/MiraGeoscience.xml
@@ -1,6 +1,8 @@
-
+
+
+
-
+
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
index a129283c..e88ed244 100644
--- a/.idea/copyright/profiles_settings.xml
+++ b/.idea/copyright/profiles_settings.xml
@@ -3,5 +3,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/.idea/scopes/sources.xml b/.idea/scopes/sources.xml
index 919589bf..2bd05567 100644
--- a/.idea/scopes/sources.xml
+++ b/.idea/scopes/sources.xml
@@ -1,3 +1,3 @@
-
-
+
+
\ No newline at end of file
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 190c8473..82c0f32d 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -2,7 +2,7 @@
default_language_version:
python: python3
exclude: ^docs/(conf.py|_ext/)
-default_stages: [commit,push]
+default_stages: [pre-commit,pre-push]
fail_fast: false
ci:
@@ -12,35 +12,25 @@ ci:
repos:
- repo: https://github.com/hadialqattan/pycln
- rev: v2.4.0
+ rev: v2.5.0
hooks:
- id: pycln
args: [--config=pyproject.toml]
-- repo: https://github.com/PyCQA/isort
- rev: 5.13.2
+- repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: v0.9.0
hooks:
- - id: isort
- additional_dependencies: [tomli] # to read config from pyproject.toml
-- repo: https://github.com/psf/black
- rev: 24.4.2
- hooks:
- - id: black
-- repo: https://github.com/PyCQA/flake8
- rev: 7.0.0
- hooks:
- - id: flake8
-- repo: https://github.com/asottile/pyupgrade
- rev: v3.15.2
- hooks:
- - id: pyupgrade
- args: [--py310-plus]
- exclude: numerical
+ - id: ruff
+ args:
+ - --fix
+ - --exit-non-zero-on-fix
+# - --unsafe-fixes
+ - id: ruff-format
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v1.10.0
+ rev: v1.14.1
hooks:
- id: mypy
additional_dependencies: [
- numpy==1.26.*, # pre-commit CI does not provide numpy 1.23.*
+ numpy==1.26.*,
pydantic==2.5.*,
tomli, # to read config from pyproject.toml
types-PyYAML,
@@ -48,10 +38,18 @@ repos:
]
exclude: ^(docs|geoapps_utils-assets)/
- repo: https://github.com/codingjoe/relint
- rev: 3.1.1
+ rev: 3.3.1
hooks:
- id: relint
args: [-W] # to fail on warnings
+- repo: https://github.com/MiraGeoscience/pre-commit-hooks
+ rev: v1.0.2
+ hooks:
+ - id: check-copyright
+ files: (^package\.rst|^LICENSE|^README(|-dev)\.rst|\.py|\.pyi)$
+ exclude: (^\.|^docs/)
+ - id: prepare-commit-msg
+ - id: check-commit-msg
- repo: local
hooks:
- id: pylint
@@ -60,32 +58,15 @@ repos:
language: system
require_serial: true # pylint does its own parallelism
types: [python]
- exclude: ^(devtools|docs)/
- - id: check-copyright
- name: Check copyright
- entry: python devtools/check-copyright.py
- language: python
- types: [text]
- files: (^LICENSE|^README(|-dev).rst|\.py|\.pyi)$
- exclude: (^\.|^docs/)
- - id: prepare-commit-msg
- stages: [prepare-commit-msg]
- name: Prepare commit message
- entry: python devtools/git_message_hook.py --prepare
- language: python
- - id: check-commit-msg
- stages: [commit-msg]
- name: Check commit message
- entry: python devtools/git_message_hook.py --check
- language: python
+ exclude: ^(devtools|docs|geoapps_utils-assets)/
- repo: https://github.com/codespell-project/codespell
- rev: v2.2.6
+ rev: v2.3.0
hooks:
- id: codespell
exclude: (-lock\.ya?ml|\benvironments/.*\.ya?ml|\.ipynb|^THIRD_PARTY_SOFTWARE\.rst)$
entry: codespell -I .codespellignore
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.6.0
+ rev: v5.0.0
hooks:
- id: trailing-whitespace
exclude: \.mdj$
@@ -93,7 +74,8 @@ repos:
exclude_types: [jupyter]
- id: check-toml
- id: check-yaml
-# - id: check-added-large-files # crashing on some configuration. To be investigated
+ exclude: ^meta.yaml$
+ - id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
- id: debug-statements
@@ -113,7 +95,7 @@ repos:
exclude_types: [jupyter]
exclude: ^docs/(.*/)?images/
- repo: https://github.com/rstcheck/rstcheck
- rev: v6.2.0
+ rev: v6.2.4
hooks:
- id: rstcheck
exclude: ^THIRD_PARTY_SOFTWARE.rst$
diff --git a/LICENSE b/LICENSE
index 2bc2331d..9c6ee51f 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2023-2024 Mira Geoscience
+Copyright (c) 2023-2025 Mira Geoscience
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README-dev.rst b/README-dev.rst
index a4541044..e0d49c2c 100644
--- a/README-dev.rst
+++ b/README-dev.rst
@@ -335,4 +335,4 @@ Here is a suggestion for some plugins you can install in PyCharm.
Copyright
^^^^^^^^^
-Copyright (c) 2023-2024 Mira Geoscience Ltd.
+Copyright (c) 2023-2025 Mira Geoscience Ltd.
diff --git a/README.rst b/README.rst
index 264aeb22..99a7461e 100644
--- a/README.rst
+++ b/README.rst
@@ -2,9 +2,9 @@
..
- .. |docs| image:: https://readthedocs.org/projects/geoapps-utils/badge/
+ .. |docs| image:: https://readthedocs.com/projects/mirageoscience-geoapps-utils/badge/?version=latest
:alt: Documentation Status
- :target: https://geoapps-utils.readthedocs.io/en/latest/?badge=latest
+ :target: https://mirageoscience-geoapps-utils.readthedocs-hosted.com/en/latest/?badge=latest
.. |coverage| image:: https://codecov.io/gh/MiraGeoscience/geoapps-utils/graph/badge.svg?token=Z0Q0T1U5LH
:alt: Code coverage
@@ -47,7 +47,7 @@ used by `geoapps `_.
..
Documentation
^^^^^^^^^^^^^
- `Online documentation `_
+ `Online documentation `_
Installation
@@ -137,7 +137,7 @@ To configure the development environment and tools, please see `README-dev.rst`_
Third Party Software
^^^^^^^^^^^^^^^^^^^^
-The geoapps-utils package may provide links to third party libraries or code (collectively “Third Party Software”)
+The geoapps-utils package may provide links to third party libraries or code (collectively "Third Party Software")
to implement various functions. Third Party Software does not comprise part of the Software.
The use of Third Party Software is governed by the terms of such software license(s).
Third Party Software notices and/or additional terms and conditions are located in the
@@ -171,4 +171,4 @@ SOFTWARE.
Copyright
^^^^^^^^^
-Copyright (c) 2023-2024 Mira Geoscience Ltd.
+Copyright (c) 2023-2025 Mira Geoscience Ltd.
diff --git a/deps-lock-config.yaml b/deps-lock-config.yaml
index a45a2433..0ee84c55 100644
--- a/deps-lock-config.yaml
+++ b/deps-lock-config.yaml
@@ -1,5 +1,5 @@
-suffix_for_extras:
- "": ["dash"]
include_dev: True
py_versions:
- "3.10"
+ - "3.11"
+ - "3.12"
diff --git a/devtools/check-copyright.py b/devtools/check-copyright.py
deleted file mode 100644
index e6d001a0..00000000
--- a/devtools/check-copyright.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python3
-
-# Copyright (c) 2022-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
-from __future__ import annotations
-
-import re
-import sys
-from datetime import date
-
-if __name__ == "__main__":
- current_year = date.today().year
- copyright_re = re.compile(
- rf"\bcopyright \(c\) (:?\d{{4}}-|)\b{current_year}\b", re.IGNORECASE
- )
- files = sys.argv[1:]
- max_lines = 10
- report_files = []
- for f in files:
- with open(f, encoding="utf-8") as file:
- count = 0
- has_dated_copyright = False
- for line in file:
- count += 1
- if count >= max_lines and not (
- f.endswith("README.rst") or f.endswith("README-dev.rst")
- ):
- break
- if re.search(copyright_re, line):
- has_dated_copyright = True
- break
-
- if not has_dated_copyright:
- report_files.append(f)
-
- if len(report_files) > 0:
- for f in report_files:
- sys.stderr.write(f"{f}: No copyright or invalid year\n")
- sys.exit(1)
-
-# readonly CURRENT_YEAR=$(date +"%Y")
-
-# if ! grep -e "Copyright (c) .*$CURRENT_YEAR" $(head -10 $f) 2>&1 1>/dev/null; then
-# echo "File '$f' has no copyright or an invalid year"
-# exit 1
-# fi
diff --git a/devtools/git_message_hook.py b/devtools/git_message_hook.py
deleted file mode 100644
index ed99d27f..00000000
--- a/devtools/git_message_hook.py
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/usr/bin/env python3
-
-# Copyright (c) 2022-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
-"""Some Git pre-commit hooks implementations."""
-
-from __future__ import annotations
-
-import argparse
-import re
-import shlex
-import subprocess
-import sys
-
-
-def get_jira_id(text) -> str:
- """Detect a JIRA issue ID at the begging of the given text.
-
- :return: the JIRA issue ID if found, else empty string
- """
-
- class JiraPattern:
- """Internal class that encapsulates the regular expression for the JIRA pattern,
- making sure it gets compiled only once."""
-
- __pattern = re.compile(
- r"(?:GEOPY|DEVOPS|QA|GI|GA|GMS|VPem1D|VPem3D|VPmg|UBCGIF|LICMGR)-\d+"
- )
-
- @staticmethod
- def get():
- """:return: the compiled regular expression for the JIRA pattern"""
- return JiraPattern.__pattern
-
- # use re.match() rather than re.search() to enforce the JIRA reference to be at the beginning
- match = re.match(JiraPattern.get(), text.strip())
- return match.group(0) if match else ""
-
-
-def get_branch_name() -> str | None:
- """:return: the name of the current branch"""
-
- git_proc = subprocess.run(
- shlex.split("git branch --list"), stdout=subprocess.PIPE, text=True, check=False
- )
-
- # cannot use HEAD during rebase
- # git_proc = subprocess.run(
- # shlex.split('git symbolic-ref --short HEAD'), stdout=subprocess.PIPE, universal_newlines=True
- # )
- # Note: version above suggested by Atlassian. Could also use: git rev-parse --abbrev-ref HEAD
-
- if git_proc.returncode != 0:
- return None
-
- current_branch = None
- # current branch is prefixed by '*'
- for line in git_proc.stdout.splitlines():
- stripped = line.strip()
- if stripped and stripped[0] == "*":
- current_branch = stripped[1:]
- break
- assert current_branch is not None
-
- class RebasingPattern:
- """Internal class that encapsulates the regular expression for the rebasing
- message pattern, making sure it gets compiled only once."""
-
- __pattern = re.compile(r"\(.*\s(\S+)\s*\)")
-
- @staticmethod
- def get():
- """:return: the compiled regular expression for the Rebasing pattern"""
- return RebasingPattern.__pattern
-
- match = re.match(RebasingPattern.get(), current_branch.strip())
- if match:
- return match.group(1)
-
- return current_branch
-
-
-def check_commit_message(filepath: str) -> tuple[bool, str]:
- """Check if the branch name or the commit message starts with a reference to JIRA,
- and if the message meets the minimum required length for the summary line.
-
- The JIRA reference has to be at the beginning of the branch name, or of the commit
- message.
- :return: a tuple telling whether the commit message is valid or not, and an error
- message (empty in case the message is valid).
- """
-
- branch_jira_id = ""
- branch_name = get_branch_name()
- if branch_name:
- branch_jira_id = get_jira_id(branch_name)
-
- message_jira_id = ""
- first_line = None
- with open(filepath) as message_file:
- for line in message_file:
- if not line.startswith("#") and len(line.strip()) > 0:
- # test only the first non-comment line that is not empty
- # (should we reject messages with empty first line?)
- first_line = line
- message_jira_id = get_jira_id(first_line)
- break
- assert first_line is not None
-
- if not branch_jira_id and not (
- message_jira_id or first_line.strip().lower().startswith("merge")
- ):
- return (
- False,
- "Either the branch name or the commit message must start with a JIRA ID.",
- )
-
- if branch_jira_id and message_jira_id and branch_jira_id != message_jira_id:
- return (
- False,
- "Different JIRA ID in commit message %s and in branch name %s."
- % (message_jira_id, branch_jira_id),
- )
-
- stripped_message_line = ""
- if first_line:
- stripped_message_line = first_line.strip()
- if message_jira_id:
- stripped_message_line = stripped_message_line[
- len(message_jira_id) + 1 :
- ].strip()
-
- min_required_length = 10
- if len(stripped_message_line) < min_required_length:
- return (
- False,
- "First line of commit message must be at least %s characters long, "
- "beyond the JIRA ID." % min_required_length,
- )
-
- return True, ""
-
-
-def check_commit_msg(filepath: str) -> None:
- """To be used a the Git commit-msg hook.
-
- Exit with non-0 status if the commit message is deemed invalid.
- """
-
- (is_valid, error_message) = check_commit_message(filepath)
- if not is_valid:
- print(
- """commit-msg hook: **ERROR** %s
- Message has been saved to %s."""
- % (error_message, filepath)
- )
- sys.exit(1)
-
-
-def prepare_commit_msg(filepath: str, source: str | None = None) -> None:
- """To be used a the Git prepare-commit-msg hook.
-
- Will add the JIRA ID found in the branch name in case it is missing from the commit
- message.
- """
-
- branch_jira_id = ""
- branch_name = get_branch_name()
- if branch_name:
- branch_jira_id = get_jira_id(branch_name)
-
- if not branch_jira_id:
- return
-
- if source not in [None, "message", "template"]:
- return
-
- with open(filepath, "r+", encoding="utf-8") as message_file:
- message_has_jira_id = False
- message_lines = message_file.readlines()
- for line_index, line_content in enumerate(message_lines):
- if not line_content.startswith("#"):
- # test only the first non-comment line
- message_jira_id = get_jira_id(line_content)
- if not message_jira_id:
- message_lines[line_index] = branch_jira_id + ": " + line_content
- message_has_jira_id = True
- break
-
- if not message_has_jira_id:
- # message is empty or all lines are comments: insert JIRA ID at the very beginning
- message_lines.insert(0, branch_jira_id + ": ")
-
- message_file.seek(0, 0)
- message_file.write("".join(message_lines))
-
-
-if __name__ == "__main__":
- parser = argparse.ArgumentParser()
- parser.add_argument("msg_file", help="the message file")
- group = parser.add_mutually_exclusive_group(required=True)
- group.add_argument(
- "-p", "--prepare", action="store_true", help="prepare the commit message"
- )
- group.add_argument(
- "-c",
- "--check",
- action="store_true",
- help="check if the commit message is valid",
- )
- parser.add_argument("args", nargs=argparse.REMAINDER)
-
- args = parser.parse_args()
- if args.prepare:
- prepare_commit_msg(args.msg_file, *args.args)
- elif args.check:
- check_commit_msg(args.msg_file)
diff --git a/environments/env-python-3.11.yml b/environments/env-python-3.11.yml
new file mode 100644
index 00000000..6e378495
--- /dev/null
+++ b/environments/env-python-3.11.yml
@@ -0,0 +1,3 @@
+dependencies:
+ - python=3.11.*
+ - pip
diff --git a/environments/env-python-3.12.yml b/environments/env-python-3.12.yml
new file mode 100644
index 00000000..edaff3d2
--- /dev/null
+++ b/environments/env-python-3.12.yml
@@ -0,0 +1,3 @@
+dependencies:
+ - python=3.12.*
+ - pip
diff --git a/environments/py-3.10-linux-64-dev.conda.lock.yml b/environments/py-3.10-linux-64-dev.conda.lock.yml
index a84afb5d..9a68ec2e 100644
--- a/environments/py-3.10-linux-64-dev.conda.lock.yml
+++ b/environments/py-3.10-linux-64-dev.conda.lock.yml
@@ -1,215 +1,103 @@
# Generated by conda-lock.
# platform: linux-64
-# input_hash: 9b37e5a142165550fe11aeb05fc1ba8b0a1ac200cb3bd001ca2b405fad6056f5
+# input_hash: 0cc845716fe4c3a0a6c805f68b1ba545413cab38b24184e2bba8beb58dcfee5a
channels:
- conda-forge
+ - nodefaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- - alsa-lib=1.2.12=h4ab18f5_0
- - annotated-types=0.7.0=pyhd8ed1ab_0
- - astroid=3.2.2=py310hff52083_0
- - attr=2.5.1=h166bdaf_1
- - blinker=1.8.2=pyhd8ed1ab_0
- - brotli-python=1.1.0=py310hc6cd4ac_1
- - bzip2=1.0.8=hd590300_5
- - c-ares=1.28.1=hd590300_0
- - ca-certificates=2024.6.2=hbcca054_0
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - astroid=3.3.8=py310hff52083_0
+ - bzip2=1.0.8=h4bc722e_7
+ - c-ares=1.34.4=hb9d3cd8_0
+ - ca-certificates=2024.12.14=hbcca054_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- - cairo=1.18.0=h3faef2a_0
- - certifi=2024.6.2=pyhd8ed1ab_0
- - charset-normalizer=3.3.2=pyhd8ed1ab_0
- - click=8.1.7=unix_pyh707e725_0
- - colorama=0.4.6=pyhd8ed1ab_0
- - coverage=7.5.3=py310hc51659f_0
- - dash=2.17.1=pyhd8ed1ab_0
- - dbus=1.13.6=h5008d03_3
- - dill=0.3.8=pyhd8ed1ab_0
- - exceptiongroup=1.2.0=pyhd8ed1ab_2
- - expat=2.6.2=h59595ed_0
- - flask=3.0.3=pyhd8ed1ab_0
- - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- - font-ttf-inconsolata=3.000=h77eed37_0
- - font-ttf-source-code-pro=2.038=h77eed37_0
- - font-ttf-ubuntu=0.83=h77eed37_2
- - fontconfig=2.14.2=h14ed4e7_0
- - fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - colorama=0.4.6=pyhd8ed1ab_1
+ - coverage=7.6.10=py310h89163eb_0
+ - dill=0.3.9=pyhd8ed1ab_1
+ - exceptiongroup=1.2.2=pyhd8ed1ab_1
- freetype=2.12.1=h267a509_2
- - gettext=0.22.5=h59595ed_2
- - gettext-tools=0.22.5=h59595ed_2
- - giflib=5.2.2=hd590300_0
- - glib=2.80.2=h8a4344b_1
- - glib-tools=2.80.2=h73ef956_1
- - graphite2=1.3.13=h59595ed_1003
- - gst-plugins-base=1.22.9=hfa15dee_1
- - gstreamer=1.22.9=h98fc4e7_1
- - h5py=3.11.0=nompi_py310hf054cd7_102
- - harfbuzz=8.5.0=hfac3d4d_0
- - hdf5=1.14.3=nompi_hdf9ad27_105
- - icu=73.2=h59595ed_0
- - idna=3.7=pyhd8ed1ab_0
- - importlib-metadata=7.1.0=pyha770c72_0
- - iniconfig=2.0.0=pyhd8ed1ab_0
- - isort=5.13.2=pyhd8ed1ab_0
- - itsdangerous=2.2.0=pyhd8ed1ab_0
- - jinja2=3.1.4=pyhd8ed1ab_0
+ - h5py=3.12.1=nompi_py310hacc6608_103
+ - hdf5=1.14.4=nompi_h2d575fe_105
+ - iniconfig=2.0.0=pyhd8ed1ab_1
+ - isort=5.13.2=pyhd8ed1ab_1
+ - jinja2=3.1.5=pyhd8ed1ab_0
- keyutils=1.6.1=h166bdaf_0
- - krb5=1.21.2=h659d440_0
- - lame=3.100=h166bdaf_1003
+ - krb5=1.21.3=h659f571_0
- lcms2=2.16=hb7c19ff_0
- - ld_impl_linux-64=2.40=hf3520f5_7
+ - ld_impl_linux-64=2.43=h712a8e2_2
- lerc=4.0.0=h27087fc_0
- libaec=1.1.3=h59595ed_0
- - libasprintf=0.22.5=h661eb56_2
- - libasprintf-devel=0.22.5=h661eb56_2
- - libblas=3.9.0=20_linux64_openblas
- - libcap=2.69=h0f662aa_0
- - libcblas=3.9.0=20_linux64_openblas
- - libclang-cpp15=15.0.7=default_h127d8a8_5
- - libclang13=18.1.7=default_h087397f_0
- - libcups=2.3.3=h4637d8d_4
- - libcurl=8.8.0=hca28451_0
- - libdeflate=1.20=hd590300_0
- - libedit=3.1.20191231=he28a2e2_2
+ - libblas=3.9.0=26_linux64_openblas
+ - libcblas=3.9.0=26_linux64_openblas
+ - libcurl=8.11.1=h332b0f4_0
+ - libdeflate=1.23=h4ddbbb0_0
+ - libedit=3.1.20240808=pl5321h7949ede_0
- libev=4.33=hd590300_2
- - libevent=2.1.12=hf998b51_1
- - libexpat=2.6.2=h59595ed_0
- libffi=3.4.2=h7f98852_5
- - libflac=1.4.3=h59595ed_0
- - libgcc-ng=13.2.0=h77fa898_10
- - libgcrypt=1.10.3=hd590300_0
- - libgettextpo=0.22.5=h59595ed_2
- - libgettextpo-devel=0.22.5=h59595ed_2
- - libgfortran-ng=13.2.0=h69a702a_10
- - libgfortran5=13.2.0=h3d2ce59_10
- - libglib=2.80.2=h8a4344b_1
- - libgomp=13.2.0=h77fa898_10
- - libgpg-error=1.49=h4f305b6_0
- - libiconv=1.17=hd590300_2
+ - libgcc=14.2.0=h77fa898_1
+ - libgcc-ng=14.2.0=h69a702a_1
+ - libgfortran=14.2.0=h69a702a_1
+ - libgfortran5=14.2.0=hd5240d6_1
+ - libgomp=14.2.0=h77fa898_1
- libjpeg-turbo=3.0.0=hd590300_1
- - liblapack=3.9.0=20_linux64_openblas
- - libllvm15=15.0.7=hb3ce162_4
- - libllvm18=18.1.7=hc9dba70_1
- - libnghttp2=1.58.0=h47da74e_1
+ - liblapack=3.9.0=26_linux64_openblas
+ - liblzma=5.6.3=hb9d3cd8_1
+ - libnghttp2=1.64.0=h161d5f1_0
- libnsl=2.0.1=hd590300_0
- - libogg=1.3.4=h7f98852_1
- - libopenblas=0.3.25=pthreads_h413a1c8_0
- - libopus=1.3.1=h7f98852_1
- - libpng=1.6.43=h2797004_0
- - libpq=16.3=ha72fbe1_0
- - libsndfile=1.2.2=hc60ed4a_1
- - libsqlite=3.46.0=hde9e2c9_0
- - libssh2=1.11.0=h0841786_0
- - libstdcxx-ng=13.2.0=hc0a3c3a_10
- - libsystemd0=255=h3516f8a_1
- - libtiff=4.6.0=h1dd3fc0_3
+ - libopenblas=0.3.28=pthreads_h94d23a6_1
+ - libpng=1.6.45=h943b412_0
+ - libsqlite=3.47.2=hee588c1_0
+ - libssh2=1.11.1=hf672d98_0
+ - libstdcxx=14.2.0=hc0a3c3a_1
+ - libstdcxx-ng=14.2.0=h4852527_1
+ - libtiff=4.7.0=hd9ff511_3
- libuuid=2.38.1=h0b41bf4_0
- - libvorbis=1.3.7=h9c3ff4c_0
- - libwebp=1.4.0=h2c329e2_0
- - libwebp-base=1.4.0=hd590300_0
- - libxcb=1.15=h0b41bf4_0
+ - libwebp-base=1.5.0=h851e524_0
+ - libxcb=1.17.0=h8a09558_0
- libxcrypt=4.4.36=hd590300_1
- - libxkbcommon=1.7.0=h662e7e4_0
- - libxml2=2.12.7=hc051c1a_1
- - libxslt=1.1.39=h76b75d6_0
- - libzlib=1.3.1=h4ab18f5_1
- - lz4-c=1.9.4=hcb278e6_0
- - markupsafe=2.1.5=py310h2372a71_0
- - mccabe=0.7.0=pyhd8ed1ab_0
- - mpg123=1.32.6=h59595ed_0
- - mysql-common=8.3.0=hf1915f5_4
- - mysql-libs=8.3.0=hca2cd23_4
- - ncurses=6.5=h59595ed_0
- - nest-asyncio=1.6.0=pyhd8ed1ab_0
- - nspr=4.35=h27087fc_0
- - nss=3.101=h593d115_0
- - numpy=1.23.5=py310h53a5b5f_0
- - openjpeg=2.5.2=h488ebb8_0
- - openssl=3.3.1=h4ab18f5_0
- - packaging=24.1=pyhd8ed1ab_0
- - pcre2=10.44=h0f59acf_0
- - pillow=10.3.0=py310hf73ecf8_0
- - pip=24.0=pyhd8ed1ab_0
- - pixman=0.43.2=h59595ed_0
- - platformdirs=4.2.2=pyhd8ed1ab_0
- - plotly=5.22.0=pyhd8ed1ab_0
- - pluggy=1.5.0=pyhd8ed1ab_0
- - pooch=1.8.2=pyhd8ed1ab_0
- - pthread-stubs=0.4=h36c2ea0_1001
- - pulseaudio-client=17.0=hb77b528_0
- - pydantic=2.5.3=pyhd8ed1ab_0
- - pydantic-core=2.14.6=py310hcb5633a_1
- - pygments=2.18.0=pyhd8ed1ab_0
- - pylint=3.2.3=pyhd8ed1ab_0
- - pyqt=5.15.4=py310h29803b5_1
- - pyqt5-sip=12.9.0=py310hd8f1fbe_1
- - pyqtwebengine=5.15.4=py310h29803b5_1
- - pyside2=5.15.8=py310hffc9498_4
- - pysocks=1.7.1=pyha2e5f31_6
- - pytest=8.2.2=pyhd8ed1ab_0
- - pytest-cov=5.0.0=pyhd8ed1ab_0
- - python=3.10.14=hd12c33a_0_cpython
- - python_abi=3.10=4_cp310
- - qt-main=5.15.8=h112747c_20
- - qt-webengine=5.15.8=h3e791b3_6
+ - libzlib=1.3.1=hb9d3cd8_2
+ - markupsafe=3.0.2=py310h89163eb_1
+ - mccabe=0.7.0=pyhd8ed1ab_1
+ - ncurses=6.5=he02047a_1
+ - numpy=1.26.4=py310hb13e2d6_0
+ - openjpeg=2.5.3=h5fbd93e_0
+ - openssl=3.4.0=h7b32b05_1
+ - packaging=24.2=pyhd8ed1ab_2
+ - pillow=10.3.0=py310hebfe307_1
+ - pip=24.3.1=pyh8b19718_2
+ - platformdirs=4.3.6=pyhd8ed1ab_1
+ - pluggy=1.5.0=pyhd8ed1ab_1
+ - pthread-stubs=0.4=hb9d3cd8_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py310h505e2c1_0
+ - pygments=2.19.1=pyhd8ed1ab_0
+ - pylint=3.3.3=pyhd8ed1ab_0
+ - pytest=8.3.4=pyhd8ed1ab_1
+ - pytest-cov=6.0.0=pyhd8ed1ab_1
+ - python=3.10.16=he725a3c_1_cpython
+ - python_abi=3.10=5_cp310
+ - pyyaml=6.0.2=py310ha75aee5_1
- readline=8.2=h8228510_1
- - requests=2.32.3=pyhd8ed1ab_0
- - retrying=1.3.3=py_2
- - scipy=1.10.1=py310ha4c1d20_3
- - setuptools=70.0.0=pyhd8ed1ab_0
- - sip=6.5.1=py310h122e73d_2
- - six=1.16.0=pyh6c4a22f_0
- - tenacity=8.3.0=pyhd8ed1ab_0
+ - scipy=1.14.1=py310hfcf56fc_2
+ - setuptools=75.8.0=pyhff2d567_0
- tk=8.6.13=noxft_h4845f30_101
- - toml=0.10.2=pyhd8ed1ab_0
- - tomli=2.0.1=pyhd8ed1ab_0
- - tomlkit=0.12.5=pyha770c72_0
- - typing-extensions=4.12.2=hd8ed1ab_0
- - typing_extensions=4.12.2=pyha770c72_0
- - tzdata=2024a=h0c530f3_0
- - urllib3=2.2.1=pyhd8ed1ab_0
- - werkzeug=3.0.3=pyhd8ed1ab_0
- - wheel=0.43.0=pyhd8ed1ab_1
- - xcb-util=0.4.0=hd590300_1
- - xcb-util-image=0.4.0=h8ee46fc_1
- - xcb-util-keysyms=0.4.0=h8ee46fc_1
- - xcb-util-renderutil=0.3.9=hd590300_1
- - xcb-util-wm=0.4.1=h8ee46fc_1
- - xkeyboard-config=2.42=h4ab18f5_0
- - xorg-compositeproto=0.4.2=h7f98852_1001
- - xorg-damageproto=1.2.1=h7f98852_1002
- - xorg-fixesproto=5.0=h7f98852_1002
- - xorg-inputproto=2.3.2=h7f98852_1002
- - xorg-kbproto=1.0.7=h7f98852_1002
- - xorg-libice=1.1.1=hd590300_0
- - xorg-libsm=1.2.4=h7391055_0
- - xorg-libx11=1.8.9=h8ee46fc_0
- - xorg-libxau=1.0.11=hd590300_0
- - xorg-libxcomposite=0.4.6=h0b41bf4_1
- - xorg-libxdamage=1.1.5=h7f98852_1
- - xorg-libxdmcp=1.1.3=h7f98852_0
- - xorg-libxext=1.3.4=h0b41bf4_2
- - xorg-libxfixes=5.0.3=h7f98852_1004
- - xorg-libxi=1.7.10=h7f98852_0
- - xorg-libxrandr=1.5.2=h7f98852_1
- - xorg-libxrender=0.9.11=hd590300_0
- - xorg-libxtst=1.2.3=h7f98852_1002
- - xorg-randrproto=1.5.0=h7f98852_1001
- - xorg-recordproto=1.14.2=h7f98852_1002
- - xorg-renderproto=0.11.1=h7f98852_1002
- - xorg-util-macros=1.19.3=h7f98852_0
- - xorg-xextproto=7.3.0=h0b41bf4_1003
- - xorg-xf86vidmodeproto=2.3.1=h7f98852_1002
- - xorg-xproto=7.0.31=h7f98852_1007
- - xz=5.2.6=h166bdaf_0
- - zipp=3.19.2=pyhd8ed1ab_0
- - zlib=1.3.1=h4ab18f5_1
+ - toml=0.10.2=pyhd8ed1ab_1
+ - tomli=2.2.1=pyhd8ed1ab_1
+ - tomlkit=0.13.2=pyha770c72_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=hb9d3cd8_0
+ - xorg-libxdmcp=1.1.5=hb9d3cd8_0
+ - yaml=0.2.5=h7f98852_2
- zstd=1.5.6=ha6fb4c9_0
- pip:
- - geoh5py === 0.9.0 --hash=sha256:dd2d16a9ed409f4bad13e165d1ad81641e3be941ba35c6c6a66a8ed4950271f7
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
variables:
KMP_WARNINGS: 0
diff --git a/environments/py-3.10-linux-64.conda.lock.yml b/environments/py-3.10-linux-64.conda.lock.yml
index 2c99aea2..5569f038 100644
--- a/environments/py-3.10-linux-64.conda.lock.yml
+++ b/environments/py-3.10-linux-64.conda.lock.yml
@@ -1,199 +1,81 @@
# Generated by conda-lock.
# platform: linux-64
-# input_hash: 9b37e5a142165550fe11aeb05fc1ba8b0a1ac200cb3bd001ca2b405fad6056f5
+# input_hash: 0cc845716fe4c3a0a6c805f68b1ba545413cab38b24184e2bba8beb58dcfee5a
channels:
- conda-forge
+ - nodefaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- - alsa-lib=1.2.12=h4ab18f5_0
- - annotated-types=0.7.0=pyhd8ed1ab_0
- - attr=2.5.1=h166bdaf_1
- - blinker=1.8.2=pyhd8ed1ab_0
- - brotli-python=1.1.0=py310hc6cd4ac_1
- - bzip2=1.0.8=hd590300_5
- - c-ares=1.28.1=hd590300_0
- - ca-certificates=2024.6.2=hbcca054_0
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - bzip2=1.0.8=h4bc722e_7
+ - c-ares=1.34.4=hb9d3cd8_0
+ - ca-certificates=2024.12.14=hbcca054_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- - cairo=1.18.0=h3faef2a_0
- - certifi=2024.6.2=pyhd8ed1ab_0
- - charset-normalizer=3.3.2=pyhd8ed1ab_0
- - click=8.1.7=unix_pyh707e725_0
- - dash=2.17.1=pyhd8ed1ab_0
- - dbus=1.13.6=h5008d03_3
- - expat=2.6.2=h59595ed_0
- - flask=3.0.3=pyhd8ed1ab_0
- - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- - font-ttf-inconsolata=3.000=h77eed37_0
- - font-ttf-source-code-pro=2.038=h77eed37_0
- - font-ttf-ubuntu=0.83=h77eed37_2
- - fontconfig=2.14.2=h14ed4e7_0
- - fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
- freetype=2.12.1=h267a509_2
- - gettext=0.22.5=h59595ed_2
- - gettext-tools=0.22.5=h59595ed_2
- - giflib=5.2.2=hd590300_0
- - glib=2.80.2=h8a4344b_1
- - glib-tools=2.80.2=h73ef956_1
- - graphite2=1.3.13=h59595ed_1003
- - gst-plugins-base=1.22.9=hfa15dee_1
- - gstreamer=1.22.9=h98fc4e7_1
- - h5py=3.11.0=nompi_py310hf054cd7_102
- - harfbuzz=8.5.0=hfac3d4d_0
- - hdf5=1.14.3=nompi_hdf9ad27_105
- - icu=73.2=h59595ed_0
- - idna=3.7=pyhd8ed1ab_0
- - importlib-metadata=7.1.0=pyha770c72_0
- - itsdangerous=2.2.0=pyhd8ed1ab_0
- - jinja2=3.1.4=pyhd8ed1ab_0
+ - h5py=3.12.1=nompi_py310hacc6608_103
+ - hdf5=1.14.4=nompi_h2d575fe_105
- keyutils=1.6.1=h166bdaf_0
- - krb5=1.21.2=h659d440_0
- - lame=3.100=h166bdaf_1003
+ - krb5=1.21.3=h659f571_0
- lcms2=2.16=hb7c19ff_0
- - ld_impl_linux-64=2.40=hf3520f5_7
+ - ld_impl_linux-64=2.43=h712a8e2_2
- lerc=4.0.0=h27087fc_0
- libaec=1.1.3=h59595ed_0
- - libasprintf=0.22.5=h661eb56_2
- - libasprintf-devel=0.22.5=h661eb56_2
- - libblas=3.9.0=20_linux64_openblas
- - libcap=2.69=h0f662aa_0
- - libcblas=3.9.0=20_linux64_openblas
- - libclang-cpp15=15.0.7=default_h127d8a8_5
- - libclang13=18.1.7=default_h087397f_0
- - libcups=2.3.3=h4637d8d_4
- - libcurl=8.8.0=hca28451_0
- - libdeflate=1.20=hd590300_0
- - libedit=3.1.20191231=he28a2e2_2
+ - libblas=3.9.0=26_linux64_openblas
+ - libcblas=3.9.0=26_linux64_openblas
+ - libcurl=8.11.1=h332b0f4_0
+ - libdeflate=1.23=h4ddbbb0_0
+ - libedit=3.1.20240808=pl5321h7949ede_0
- libev=4.33=hd590300_2
- - libevent=2.1.12=hf998b51_1
- - libexpat=2.6.2=h59595ed_0
- libffi=3.4.2=h7f98852_5
- - libflac=1.4.3=h59595ed_0
- - libgcc-ng=13.2.0=h77fa898_10
- - libgcrypt=1.10.3=hd590300_0
- - libgettextpo=0.22.5=h59595ed_2
- - libgettextpo-devel=0.22.5=h59595ed_2
- - libgfortran-ng=13.2.0=h69a702a_10
- - libgfortran5=13.2.0=h3d2ce59_10
- - libglib=2.80.2=h8a4344b_1
- - libgomp=13.2.0=h77fa898_10
- - libgpg-error=1.49=h4f305b6_0
- - libiconv=1.17=hd590300_2
+ - libgcc=14.2.0=h77fa898_1
+ - libgcc-ng=14.2.0=h69a702a_1
+ - libgfortran=14.2.0=h69a702a_1
+ - libgfortran5=14.2.0=hd5240d6_1
+ - libgomp=14.2.0=h77fa898_1
- libjpeg-turbo=3.0.0=hd590300_1
- - liblapack=3.9.0=20_linux64_openblas
- - libllvm15=15.0.7=hb3ce162_4
- - libllvm18=18.1.7=hc9dba70_1
- - libnghttp2=1.58.0=h47da74e_1
+ - liblapack=3.9.0=26_linux64_openblas
+ - liblzma=5.6.3=hb9d3cd8_1
+ - libnghttp2=1.64.0=h161d5f1_0
- libnsl=2.0.1=hd590300_0
- - libogg=1.3.4=h7f98852_1
- - libopenblas=0.3.25=pthreads_h413a1c8_0
- - libopus=1.3.1=h7f98852_1
- - libpng=1.6.43=h2797004_0
- - libpq=16.3=ha72fbe1_0
- - libsndfile=1.2.2=hc60ed4a_1
- - libsqlite=3.46.0=hde9e2c9_0
- - libssh2=1.11.0=h0841786_0
- - libstdcxx-ng=13.2.0=hc0a3c3a_10
- - libsystemd0=255=h3516f8a_1
- - libtiff=4.6.0=h1dd3fc0_3
+ - libopenblas=0.3.28=pthreads_h94d23a6_1
+ - libpng=1.6.45=h943b412_0
+ - libsqlite=3.47.2=hee588c1_0
+ - libssh2=1.11.1=hf672d98_0
+ - libstdcxx=14.2.0=hc0a3c3a_1
+ - libstdcxx-ng=14.2.0=h4852527_1
+ - libtiff=4.7.0=hd9ff511_3
- libuuid=2.38.1=h0b41bf4_0
- - libvorbis=1.3.7=h9c3ff4c_0
- - libwebp=1.4.0=h2c329e2_0
- - libwebp-base=1.4.0=hd590300_0
- - libxcb=1.15=h0b41bf4_0
+ - libwebp-base=1.5.0=h851e524_0
+ - libxcb=1.17.0=h8a09558_0
- libxcrypt=4.4.36=hd590300_1
- - libxkbcommon=1.7.0=h662e7e4_0
- - libxml2=2.12.7=hc051c1a_1
- - libxslt=1.1.39=h76b75d6_0
- - libzlib=1.3.1=h4ab18f5_1
- - lz4-c=1.9.4=hcb278e6_0
- - markupsafe=2.1.5=py310h2372a71_0
- - mpg123=1.32.6=h59595ed_0
- - mysql-common=8.3.0=hf1915f5_4
- - mysql-libs=8.3.0=hca2cd23_4
- - ncurses=6.5=h59595ed_0
- - nest-asyncio=1.6.0=pyhd8ed1ab_0
- - nspr=4.35=h27087fc_0
- - nss=3.101=h593d115_0
- - numpy=1.23.5=py310h53a5b5f_0
- - openjpeg=2.5.2=h488ebb8_0
- - openssl=3.3.1=h4ab18f5_0
- - packaging=24.1=pyhd8ed1ab_0
- - pcre2=10.44=h0f59acf_0
- - pillow=10.3.0=py310hf73ecf8_0
- - pip=24.0=pyhd8ed1ab_0
- - pixman=0.43.2=h59595ed_0
- - platformdirs=4.2.2=pyhd8ed1ab_0
- - plotly=5.22.0=pyhd8ed1ab_0
- - pooch=1.8.2=pyhd8ed1ab_0
- - pthread-stubs=0.4=h36c2ea0_1001
- - pulseaudio-client=17.0=hb77b528_0
- - pydantic=2.5.3=pyhd8ed1ab_0
- - pydantic-core=2.14.6=py310hcb5633a_1
- - pyqt=5.15.4=py310h29803b5_1
- - pyqt5-sip=12.9.0=py310hd8f1fbe_1
- - pyqtwebengine=5.15.4=py310h29803b5_1
- - pyside2=5.15.8=py310hffc9498_4
- - pysocks=1.7.1=pyha2e5f31_6
- - python=3.10.14=hd12c33a_0_cpython
- - python_abi=3.10=4_cp310
- - qt-main=5.15.8=h112747c_20
- - qt-webengine=5.15.8=h3e791b3_6
+ - libzlib=1.3.1=hb9d3cd8_2
+ - ncurses=6.5=he02047a_1
+ - numpy=1.26.4=py310hb13e2d6_0
+ - openjpeg=2.5.3=h5fbd93e_0
+ - openssl=3.4.0=h7b32b05_1
+ - pillow=10.3.0=py310hebfe307_1
+ - pip=24.3.1=pyh8b19718_2
+ - pthread-stubs=0.4=hb9d3cd8_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py310h505e2c1_0
+ - python=3.10.16=he725a3c_1_cpython
+ - python_abi=3.10=5_cp310
- readline=8.2=h8228510_1
- - requests=2.32.3=pyhd8ed1ab_0
- - retrying=1.3.3=py_2
- - scipy=1.10.1=py310ha4c1d20_3
- - setuptools=70.0.0=pyhd8ed1ab_0
- - sip=6.5.1=py310h122e73d_2
- - six=1.16.0=pyh6c4a22f_0
- - tenacity=8.3.0=pyhd8ed1ab_0
+ - scipy=1.14.1=py310hfcf56fc_2
+ - setuptools=75.8.0=pyhff2d567_0
- tk=8.6.13=noxft_h4845f30_101
- - typing-extensions=4.12.2=hd8ed1ab_0
- - typing_extensions=4.12.2=pyha770c72_0
- - tzdata=2024a=h0c530f3_0
- - urllib3=2.2.1=pyhd8ed1ab_0
- - werkzeug=3.0.3=pyhd8ed1ab_0
- - wheel=0.43.0=pyhd8ed1ab_1
- - xcb-util=0.4.0=hd590300_1
- - xcb-util-image=0.4.0=h8ee46fc_1
- - xcb-util-keysyms=0.4.0=h8ee46fc_1
- - xcb-util-renderutil=0.3.9=hd590300_1
- - xcb-util-wm=0.4.1=h8ee46fc_1
- - xkeyboard-config=2.42=h4ab18f5_0
- - xorg-compositeproto=0.4.2=h7f98852_1001
- - xorg-damageproto=1.2.1=h7f98852_1002
- - xorg-fixesproto=5.0=h7f98852_1002
- - xorg-inputproto=2.3.2=h7f98852_1002
- - xorg-kbproto=1.0.7=h7f98852_1002
- - xorg-libice=1.1.1=hd590300_0
- - xorg-libsm=1.2.4=h7391055_0
- - xorg-libx11=1.8.9=h8ee46fc_0
- - xorg-libxau=1.0.11=hd590300_0
- - xorg-libxcomposite=0.4.6=h0b41bf4_1
- - xorg-libxdamage=1.1.5=h7f98852_1
- - xorg-libxdmcp=1.1.3=h7f98852_0
- - xorg-libxext=1.3.4=h0b41bf4_2
- - xorg-libxfixes=5.0.3=h7f98852_1004
- - xorg-libxi=1.7.10=h7f98852_0
- - xorg-libxrandr=1.5.2=h7f98852_1
- - xorg-libxrender=0.9.11=hd590300_0
- - xorg-libxtst=1.2.3=h7f98852_1002
- - xorg-randrproto=1.5.0=h7f98852_1001
- - xorg-recordproto=1.14.2=h7f98852_1002
- - xorg-renderproto=0.11.1=h7f98852_1002
- - xorg-util-macros=1.19.3=h7f98852_0
- - xorg-xextproto=7.3.0=h0b41bf4_1003
- - xorg-xf86vidmodeproto=2.3.1=h7f98852_1002
- - xorg-xproto=7.0.31=h7f98852_1007
- - xz=5.2.6=h166bdaf_0
- - zipp=3.19.2=pyhd8ed1ab_0
- - zlib=1.3.1=h4ab18f5_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=hb9d3cd8_0
+ - xorg-libxdmcp=1.1.5=hb9d3cd8_0
- zstd=1.5.6=ha6fb4c9_0
- pip:
- - geoh5py === 0.9.0 --hash=sha256:dd2d16a9ed409f4bad13e165d1ad81641e3be941ba35c6c6a66a8ed4950271f7
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
variables:
KMP_WARNINGS: 0
diff --git a/environments/py-3.10-win-64-dev.conda.lock.yml b/environments/py-3.10-win-64-dev.conda.lock.yml
index 950603e1..f57e425d 100644
--- a/environments/py-3.10-win-64-dev.conda.lock.yml
+++ b/environments/py-3.10-win-64-dev.conda.lock.yml
@@ -1,145 +1,96 @@
# Generated by conda-lock.
# platform: win-64
-# input_hash: 47faa0574b6f22dceaba2976bef3caeceea171d9b61eb92504d570632ea06038
+# input_hash: ee039f6fa2d6dd5397547b7760e47261b11d58e5c0f85713ef59c027ce302715
channels:
- conda-forge
+ - nodefaults
dependencies:
- - annotated-types=0.7.0=pyhd8ed1ab_0
- - astroid=3.2.2=py310h5588dad_0
- - blinker=1.8.2=pyhd8ed1ab_0
- - brotli-python=1.1.0=py310h00ffb61_1
- - bzip2=1.0.8=hcfcfb64_5
- - ca-certificates=2024.6.2=h56e8100_0
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - astroid=3.3.8=py310h5588dad_0
+ - bzip2=1.0.8=h2466b09_7
+ - ca-certificates=2024.12.14=h56e8100_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- - certifi=2024.6.2=pyhd8ed1ab_0
- - charset-normalizer=3.3.2=pyhd8ed1ab_0
- - click=8.1.7=win_pyh7428d3b_0
- - colorama=0.4.6=pyhd8ed1ab_0
- - coverage=7.5.3=py310ha8f682b_0
- - dash=2.17.1=pyhd8ed1ab_0
- - dill=0.3.8=pyhd8ed1ab_0
- - exceptiongroup=1.2.0=pyhd8ed1ab_2
- - flask=3.0.3=pyhd8ed1ab_0
+ - colorama=0.4.6=pyhd8ed1ab_1
+ - coverage=7.6.10=py310h38315fa_0
+ - dill=0.3.9=pyhd8ed1ab_1
+ - exceptiongroup=1.2.2=pyhd8ed1ab_1
- freetype=2.12.1=hdaf720e_2
- - gettext=0.22.5=h5728263_2
- - gettext-tools=0.22.5=h7d00a51_2
- - glib=2.80.2=h7025463_1
- - glib-tools=2.80.2=h4394cf3_1
- - gst-plugins-base=1.22.9=h001b923_1
- - gstreamer=1.22.9=hb4038d2_1
- - h5py=3.11.0=nompi_py310h2b0be38_102
- - hdf5=1.14.3=nompi_h2b43c12_105
- - icu=73.2=h63175ca_0
- - idna=3.7=pyhd8ed1ab_0
- - importlib-metadata=7.1.0=pyha770c72_0
- - iniconfig=2.0.0=pyhd8ed1ab_0
- - intel-openmp=2024.1.0=h57928b3_966
- - isort=5.13.2=pyhd8ed1ab_0
- - itsdangerous=2.2.0=pyhd8ed1ab_0
- - jinja2=3.1.4=pyhd8ed1ab_0
- - krb5=1.21.2=heb0366b_0
+ - h5py=3.12.1=nompi_py310h972678a_103
+ - hdf5=1.14.4=nompi_hd5d9e70_105
+ - iniconfig=2.0.0=pyhd8ed1ab_1
+ - intel-openmp=2024.2.1=h57928b3_1083
+ - isort=5.13.2=pyhd8ed1ab_1
+ - jinja2=3.1.5=pyhd8ed1ab_0
+ - krb5=1.21.3=hdf4eb48_0
- lcms2=2.16=h67d730c_0
- lerc=4.0.0=h63175ca_0
- libaec=1.1.3=h63175ca_0
- - libasprintf=0.22.5=h5728263_2
- - libasprintf-devel=0.22.5=h5728263_2
- - libblas=3.9.0=22_win64_mkl
- - libcblas=3.9.0=22_win64_mkl
- - libclang13=18.1.7=default_h97ce8ae_0
- - libcurl=8.8.0=hd5e4a3a_0
- - libdeflate=1.20=hcfcfb64_0
+ - libblas=3.9.0=26_win64_mkl
+ - libcblas=3.9.0=26_win64_mkl
+ - libcurl=8.11.1=h88aaa65_0
+ - libdeflate=1.23=h9062f6e_0
- libffi=3.4.2=h8ffe710_5
- - libgettextpo=0.22.5=h5728263_2
- - libgettextpo-devel=0.22.5=h5728263_2
- - libglib=2.80.2=h7025463_1
- - libhwloc=2.10.0=default_h8125262_1001
+ - libgcc=14.2.0=h1383e82_1
+ - libgomp=14.2.0=h1383e82_1
+ - libhwloc=2.11.2=default_ha69328c_1001
- libiconv=1.17=hcfcfb64_2
- - libintl=0.22.5=h5728263_2
- - libintl-devel=0.22.5=h5728263_2
- libjpeg-turbo=3.0.0=hcfcfb64_1
- - liblapack=3.9.0=22_win64_mkl
- - libogg=1.3.4=h8ffe710_1
- - libpng=1.6.43=h19919ed_0
- - libsqlite=3.46.0=h2466b09_0
- - libssh2=1.11.0=h7dfc565_0
- - libtiff=4.6.0=hddb2be6_3
- - libvorbis=1.3.7=h0e60522_0
- - libwebp=1.4.0=h2466b09_0
- - libwebp-base=1.4.0=hcfcfb64_0
- - libxcb=1.15=hcd874cb_0
- - libxml2=2.12.7=h283a6d9_1
- - libxslt=1.1.39=h3df6e99_0
- - libzlib=1.3.1=h2466b09_1
- - m2w64-gcc-libgfortran=5.3.0=6
- - m2w64-gcc-libs=5.3.0=7
- - m2w64-gcc-libs-core=5.3.0=7
- - m2w64-gmp=6.1.0=2
- - m2w64-libwinpthread-git=5.0.0.4634.697f757=2
- - markupsafe=2.1.5=py310h8d17308_0
- - mccabe=0.7.0=pyhd8ed1ab_0
- - mkl=2024.1.0=h66d3029_692
- - msys2-conda-epoch=20160418=1
- - nest-asyncio=1.6.0=pyhd8ed1ab_0
- - numpy=1.23.5=py310h4a8f9c9_0
- - openjpeg=2.5.2=h3d672ee_0
- - openssl=3.3.1=h2466b09_0
- - packaging=24.1=pyhd8ed1ab_0
- - pcre2=10.44=h3d7b363_0
- - pillow=10.3.0=py310hf5d6e66_0
- - pip=24.0=pyhd8ed1ab_0
- - platformdirs=4.2.2=pyhd8ed1ab_0
- - plotly=5.22.0=pyhd8ed1ab_0
- - pluggy=1.5.0=pyhd8ed1ab_0
- - pooch=1.8.2=pyhd8ed1ab_0
- - pthread-stubs=0.4=hcd874cb_1001
- - pthreads-win32=2.9.1=hfa6e2cd_3
- - pydantic=2.5.3=pyhd8ed1ab_0
- - pydantic-core=2.14.6=py310h87d50f1_1
- - pygments=2.18.0=pyhd8ed1ab_0
- - pylint=3.2.3=pyhd8ed1ab_0
- - pyqt=5.15.4=py310hbabf5d4_1
- - pyqt5-sip=12.9.0=py310h8a704f9_1
- - pyqtwebengine=5.15.4=py310hbabf5d4_1
- - pyside2=5.15.8=py310h1e56762_4
- - pysocks=1.7.1=pyh0701188_6
- - pytest=8.2.2=pyhd8ed1ab_0
- - pytest-cov=5.0.0=pyhd8ed1ab_0
- - python=3.10.14=h4de0772_0_cpython
- - python_abi=3.10=4_cp310
- - qt-main=5.15.8=h9e85ed6_20
- - qt-webengine=5.15.8=h4bf5c4e_4
- - requests=2.32.3=pyhd8ed1ab_0
- - retrying=1.3.3=py_2
- - scipy=1.10.1=py310h578b7cb_3
- - setuptools=70.0.0=pyhd8ed1ab_0
- - sip=6.5.1=py310h8a704f9_2
- - six=1.16.0=pyh6c4a22f_0
- - tbb=2021.12.0=hc790b64_1
- - tenacity=8.3.0=pyhd8ed1ab_0
+ - liblapack=3.9.0=26_win64_mkl
+ - liblzma=5.6.3=h2466b09_1
+ - libpng=1.6.45=had7236b_0
+ - libsqlite=3.47.2=h67fdade_0
+ - libssh2=1.11.1=he619c9f_0
+ - libtiff=4.7.0=h797046b_3
+ - libwebp-base=1.5.0=h3b0e114_0
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_8
+ - libxcb=1.17.0=h0e4246c_0
+ - libxml2=2.13.5=he286e8c_1
+ - libzlib=1.3.1=h2466b09_2
+ - markupsafe=3.0.2=py310h38315fa_1
+ - mccabe=0.7.0=pyhd8ed1ab_1
+ - mkl=2024.2.2=h66d3029_15
+ - numpy=1.26.4=py310hf667824_0
+ - openjpeg=2.5.3=h4d64b90_0
+ - openssl=3.4.0=ha4e3fda_1
+ - packaging=24.2=pyhd8ed1ab_2
+ - pillow=10.3.0=py310h3e38d90_1
+ - pip=24.3.1=pyh8b19718_2
+ - platformdirs=4.3.6=pyhd8ed1ab_1
+ - pluggy=1.5.0=pyhd8ed1ab_1
+ - pthread-stubs=0.4=h0e40799_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py310hc226416_0
+ - pygments=2.19.1=pyhd8ed1ab_0
+ - pylint=3.3.3=pyhd8ed1ab_0
+ - pytest=8.3.4=pyhd8ed1ab_1
+ - pytest-cov=6.0.0=pyhd8ed1ab_1
+ - python=3.10.16=h37870fc_1_cpython
+ - python_abi=3.10=5_cp310
+ - pyyaml=6.0.2=py310ha8f682b_1
+ - scipy=1.14.1=py310hbd0dde3_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tbb=2021.13.0=h62715c5_1
- tk=8.6.13=h5226925_1
- - toml=0.10.2=pyhd8ed1ab_0
- - tomli=2.0.1=pyhd8ed1ab_0
- - tomlkit=0.12.5=pyha770c72_0
- - typing-extensions=4.12.2=hd8ed1ab_0
- - typing_extensions=4.12.2=pyha770c72_0
- - tzdata=2024a=h0c530f3_0
- - ucrt=10.0.22621.0=h57928b3_0
- - urllib3=2.2.1=pyhd8ed1ab_0
- - vc=14.3=h8a93ad2_20
- - vc14_runtime=14.40.33810=ha82c5b3_20
- - vs2015_runtime=14.40.33810=h3bf8584_20
- - werkzeug=3.0.3=pyhd8ed1ab_0
- - wheel=0.43.0=pyhd8ed1ab_1
- - win_inet_pton=1.1.0=pyhd8ed1ab_6
- - xorg-libxau=1.0.11=hcd874cb_0
- - xorg-libxdmcp=1.1.3=hcd874cb_0
- - xz=5.2.6=h8d14728_0
- - zipp=3.19.2=pyhd8ed1ab_0
+ - toml=0.10.2=pyhd8ed1ab_1
+ - tomli=2.2.1=pyhd8ed1ab_1
+ - tomlkit=0.13.2=pyha770c72_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - ucrt=10.0.22621.0=h57928b3_1
+ - vc=14.3=ha32ba9b_23
+ - vc14_runtime=14.42.34433=he29a5d6_23
+ - vs2015_runtime=14.42.34433=hdffcdeb_23
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=h0e40799_0
+ - xorg-libxdmcp=1.1.5=h0e40799_0
+ - yaml=0.2.5=h8ffe710_2
- zstd=1.5.6=h0ea2cb4_0
- pip:
- - geoh5py === 0.9.0 --hash=sha256:dd2d16a9ed409f4bad13e165d1ad81641e3be941ba35c6c6a66a8ed4950271f7
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
variables:
KMP_WARNINGS: 0
diff --git a/environments/py-3.10-win-64.conda.lock.yml b/environments/py-3.10-win-64.conda.lock.yml
index 9d53f213..701af0d5 100644
--- a/environments/py-3.10-win-64.conda.lock.yml
+++ b/environments/py-3.10-win-64.conda.lock.yml
@@ -1,129 +1,74 @@
# Generated by conda-lock.
# platform: win-64
-# input_hash: 47faa0574b6f22dceaba2976bef3caeceea171d9b61eb92504d570632ea06038
+# input_hash: ee039f6fa2d6dd5397547b7760e47261b11d58e5c0f85713ef59c027ce302715
channels:
- conda-forge
+ - nodefaults
dependencies:
- - annotated-types=0.7.0=pyhd8ed1ab_0
- - blinker=1.8.2=pyhd8ed1ab_0
- - brotli-python=1.1.0=py310h00ffb61_1
- - bzip2=1.0.8=hcfcfb64_5
- - ca-certificates=2024.6.2=h56e8100_0
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - bzip2=1.0.8=h2466b09_7
+ - ca-certificates=2024.12.14=h56e8100_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- - certifi=2024.6.2=pyhd8ed1ab_0
- - charset-normalizer=3.3.2=pyhd8ed1ab_0
- - click=8.1.7=win_pyh7428d3b_0
- - dash=2.17.1=pyhd8ed1ab_0
- - flask=3.0.3=pyhd8ed1ab_0
- freetype=2.12.1=hdaf720e_2
- - gettext=0.22.5=h5728263_2
- - gettext-tools=0.22.5=h7d00a51_2
- - glib=2.80.2=h7025463_1
- - glib-tools=2.80.2=h4394cf3_1
- - gst-plugins-base=1.22.9=h001b923_1
- - gstreamer=1.22.9=hb4038d2_1
- - h5py=3.11.0=nompi_py310h2b0be38_102
- - hdf5=1.14.3=nompi_h2b43c12_105
- - icu=73.2=h63175ca_0
- - idna=3.7=pyhd8ed1ab_0
- - importlib-metadata=7.1.0=pyha770c72_0
- - intel-openmp=2024.1.0=h57928b3_966
- - itsdangerous=2.2.0=pyhd8ed1ab_0
- - jinja2=3.1.4=pyhd8ed1ab_0
- - krb5=1.21.2=heb0366b_0
+ - h5py=3.12.1=nompi_py310h972678a_103
+ - hdf5=1.14.4=nompi_hd5d9e70_105
+ - intel-openmp=2024.2.1=h57928b3_1083
+ - krb5=1.21.3=hdf4eb48_0
- lcms2=2.16=h67d730c_0
- lerc=4.0.0=h63175ca_0
- libaec=1.1.3=h63175ca_0
- - libasprintf=0.22.5=h5728263_2
- - libasprintf-devel=0.22.5=h5728263_2
- - libblas=3.9.0=22_win64_mkl
- - libcblas=3.9.0=22_win64_mkl
- - libclang13=18.1.7=default_h97ce8ae_0
- - libcurl=8.8.0=hd5e4a3a_0
- - libdeflate=1.20=hcfcfb64_0
+ - libblas=3.9.0=26_win64_mkl
+ - libcblas=3.9.0=26_win64_mkl
+ - libcurl=8.11.1=h88aaa65_0
+ - libdeflate=1.23=h9062f6e_0
- libffi=3.4.2=h8ffe710_5
- - libgettextpo=0.22.5=h5728263_2
- - libgettextpo-devel=0.22.5=h5728263_2
- - libglib=2.80.2=h7025463_1
- - libhwloc=2.10.0=default_h8125262_1001
+ - libgcc=14.2.0=h1383e82_1
+ - libgomp=14.2.0=h1383e82_1
+ - libhwloc=2.11.2=default_ha69328c_1001
- libiconv=1.17=hcfcfb64_2
- - libintl=0.22.5=h5728263_2
- - libintl-devel=0.22.5=h5728263_2
- libjpeg-turbo=3.0.0=hcfcfb64_1
- - liblapack=3.9.0=22_win64_mkl
- - libogg=1.3.4=h8ffe710_1
- - libpng=1.6.43=h19919ed_0
- - libsqlite=3.46.0=h2466b09_0
- - libssh2=1.11.0=h7dfc565_0
- - libtiff=4.6.0=hddb2be6_3
- - libvorbis=1.3.7=h0e60522_0
- - libwebp=1.4.0=h2466b09_0
- - libwebp-base=1.4.0=hcfcfb64_0
- - libxcb=1.15=hcd874cb_0
- - libxml2=2.12.7=h283a6d9_1
- - libxslt=1.1.39=h3df6e99_0
- - libzlib=1.3.1=h2466b09_1
- - m2w64-gcc-libgfortran=5.3.0=6
- - m2w64-gcc-libs=5.3.0=7
- - m2w64-gcc-libs-core=5.3.0=7
- - m2w64-gmp=6.1.0=2
- - m2w64-libwinpthread-git=5.0.0.4634.697f757=2
- - markupsafe=2.1.5=py310h8d17308_0
- - mkl=2024.1.0=h66d3029_692
- - msys2-conda-epoch=20160418=1
- - nest-asyncio=1.6.0=pyhd8ed1ab_0
- - numpy=1.23.5=py310h4a8f9c9_0
- - openjpeg=2.5.2=h3d672ee_0
- - openssl=3.3.1=h2466b09_0
- - packaging=24.1=pyhd8ed1ab_0
- - pcre2=10.44=h3d7b363_0
- - pillow=10.3.0=py310hf5d6e66_0
- - pip=24.0=pyhd8ed1ab_0
- - platformdirs=4.2.2=pyhd8ed1ab_0
- - plotly=5.22.0=pyhd8ed1ab_0
- - pooch=1.8.2=pyhd8ed1ab_0
- - pthread-stubs=0.4=hcd874cb_1001
- - pthreads-win32=2.9.1=hfa6e2cd_3
- - pydantic=2.5.3=pyhd8ed1ab_0
- - pydantic-core=2.14.6=py310h87d50f1_1
- - pyqt=5.15.4=py310hbabf5d4_1
- - pyqt5-sip=12.9.0=py310h8a704f9_1
- - pyqtwebengine=5.15.4=py310hbabf5d4_1
- - pyside2=5.15.8=py310h1e56762_4
- - pysocks=1.7.1=pyh0701188_6
- - python=3.10.14=h4de0772_0_cpython
- - python_abi=3.10=4_cp310
- - qt-main=5.15.8=h9e85ed6_20
- - qt-webengine=5.15.8=h4bf5c4e_4
- - requests=2.32.3=pyhd8ed1ab_0
- - retrying=1.3.3=py_2
- - scipy=1.10.1=py310h578b7cb_3
- - setuptools=70.0.0=pyhd8ed1ab_0
- - sip=6.5.1=py310h8a704f9_2
- - six=1.16.0=pyh6c4a22f_0
- - tbb=2021.12.0=hc790b64_1
- - tenacity=8.3.0=pyhd8ed1ab_0
+ - liblapack=3.9.0=26_win64_mkl
+ - liblzma=5.6.3=h2466b09_1
+ - libpng=1.6.45=had7236b_0
+ - libsqlite=3.47.2=h67fdade_0
+ - libssh2=1.11.1=he619c9f_0
+ - libtiff=4.7.0=h797046b_3
+ - libwebp-base=1.5.0=h3b0e114_0
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_8
+ - libxcb=1.17.0=h0e4246c_0
+ - libxml2=2.13.5=he286e8c_1
+ - libzlib=1.3.1=h2466b09_2
+ - mkl=2024.2.2=h66d3029_15
+ - numpy=1.26.4=py310hf667824_0
+ - openjpeg=2.5.3=h4d64b90_0
+ - openssl=3.4.0=ha4e3fda_1
+ - pillow=10.3.0=py310h3e38d90_1
+ - pip=24.3.1=pyh8b19718_2
+ - pthread-stubs=0.4=h0e40799_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py310hc226416_0
+ - python=3.10.16=h37870fc_1_cpython
+ - python_abi=3.10=5_cp310
+ - scipy=1.14.1=py310hbd0dde3_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tbb=2021.13.0=h62715c5_1
- tk=8.6.13=h5226925_1
- - typing-extensions=4.12.2=hd8ed1ab_0
- - typing_extensions=4.12.2=pyha770c72_0
- - tzdata=2024a=h0c530f3_0
- - ucrt=10.0.22621.0=h57928b3_0
- - urllib3=2.2.1=pyhd8ed1ab_0
- - vc=14.3=h8a93ad2_20
- - vc14_runtime=14.40.33810=ha82c5b3_20
- - vs2015_runtime=14.40.33810=h3bf8584_20
- - werkzeug=3.0.3=pyhd8ed1ab_0
- - wheel=0.43.0=pyhd8ed1ab_1
- - win_inet_pton=1.1.0=pyhd8ed1ab_6
- - xorg-libxau=1.0.11=hcd874cb_0
- - xorg-libxdmcp=1.1.3=hcd874cb_0
- - xz=5.2.6=h8d14728_0
- - zipp=3.19.2=pyhd8ed1ab_0
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - ucrt=10.0.22621.0=h57928b3_1
+ - vc=14.3=ha32ba9b_23
+ - vc14_runtime=14.42.34433=he29a5d6_23
+ - vs2015_runtime=14.42.34433=hdffcdeb_23
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=h0e40799_0
+ - xorg-libxdmcp=1.1.5=h0e40799_0
- zstd=1.5.6=h0ea2cb4_0
- pip:
- - geoh5py === 0.9.0 --hash=sha256:dd2d16a9ed409f4bad13e165d1ad81641e3be941ba35c6c6a66a8ed4950271f7
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
variables:
KMP_WARNINGS: 0
diff --git a/environments/py-3.11-linux-64-dev.conda.lock.yml b/environments/py-3.11-linux-64-dev.conda.lock.yml
new file mode 100644
index 00000000..d1d857ce
--- /dev/null
+++ b/environments/py-3.11-linux-64-dev.conda.lock.yml
@@ -0,0 +1,104 @@
+# Generated by conda-lock.
+# platform: linux-64
+# input_hash: a9905f1b5583d7d9f9c71efa8cb896c8de8d219a5d086115d65d93a6400043bc
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _libgcc_mutex=0.1=conda_forge
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - astroid=3.3.8=py311h38be061_0
+ - bzip2=1.0.8=h4bc722e_7
+ - c-ares=1.34.4=hb9d3cd8_0
+ - ca-certificates=2024.12.14=hbcca054_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - colorama=0.4.6=pyhd8ed1ab_1
+ - coverage=7.6.10=py311h2dc5d0c_0
+ - dill=0.3.9=pyhd8ed1ab_1
+ - exceptiongroup=1.2.2=pyhd8ed1ab_1
+ - freetype=2.12.1=h267a509_2
+ - h5py=3.12.1=nompi_py311h5ed33ec_103
+ - hdf5=1.14.4=nompi_h2d575fe_105
+ - iniconfig=2.0.0=pyhd8ed1ab_1
+ - isort=5.13.2=pyhd8ed1ab_1
+ - jinja2=3.1.5=pyhd8ed1ab_0
+ - keyutils=1.6.1=h166bdaf_0
+ - krb5=1.21.3=h659f571_0
+ - lcms2=2.16=hb7c19ff_0
+ - ld_impl_linux-64=2.43=h712a8e2_2
+ - lerc=4.0.0=h27087fc_0
+ - libaec=1.1.3=h59595ed_0
+ - libblas=3.9.0=26_linux64_openblas
+ - libcblas=3.9.0=26_linux64_openblas
+ - libcurl=8.11.1=h332b0f4_0
+ - libdeflate=1.23=h4ddbbb0_0
+ - libedit=3.1.20240808=pl5321h7949ede_0
+ - libev=4.33=hd590300_2
+ - libexpat=2.6.4=h5888daf_0
+ - libffi=3.4.2=h7f98852_5
+ - libgcc=14.2.0=h77fa898_1
+ - libgcc-ng=14.2.0=h69a702a_1
+ - libgfortran=14.2.0=h69a702a_1
+ - libgfortran5=14.2.0=hd5240d6_1
+ - libgomp=14.2.0=h77fa898_1
+ - libjpeg-turbo=3.0.0=hd590300_1
+ - liblapack=3.9.0=26_linux64_openblas
+ - liblzma=5.6.3=hb9d3cd8_1
+ - libnghttp2=1.64.0=h161d5f1_0
+ - libnsl=2.0.1=hd590300_0
+ - libopenblas=0.3.28=pthreads_h94d23a6_1
+ - libpng=1.6.45=h943b412_0
+ - libsqlite=3.47.2=hee588c1_0
+ - libssh2=1.11.1=hf672d98_0
+ - libstdcxx=14.2.0=hc0a3c3a_1
+ - libstdcxx-ng=14.2.0=h4852527_1
+ - libtiff=4.7.0=hd9ff511_3
+ - libuuid=2.38.1=h0b41bf4_0
+ - libwebp-base=1.5.0=h851e524_0
+ - libxcb=1.17.0=h8a09558_0
+ - libxcrypt=4.4.36=hd590300_1
+ - libzlib=1.3.1=hb9d3cd8_2
+ - markupsafe=3.0.2=py311h2dc5d0c_1
+ - mccabe=0.7.0=pyhd8ed1ab_1
+ - ncurses=6.5=he02047a_1
+ - numpy=1.26.4=py311h64a7726_0
+ - openjpeg=2.5.3=h5fbd93e_0
+ - openssl=3.4.0=h7b32b05_1
+ - packaging=24.2=pyhd8ed1ab_2
+ - pillow=10.3.0=py311h82a398c_1
+ - pip=24.3.1=pyh8b19718_2
+ - platformdirs=4.3.6=pyhd8ed1ab_1
+ - pluggy=1.5.0=pyhd8ed1ab_1
+ - pthread-stubs=0.4=hb9d3cd8_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py311h9e33e62_0
+ - pygments=2.19.1=pyhd8ed1ab_0
+ - pylint=3.3.3=pyhd8ed1ab_0
+ - pytest=8.3.4=pyhd8ed1ab_1
+ - pytest-cov=6.0.0=pyhd8ed1ab_1
+ - python=3.11.11=h9e4cc4f_1_cpython
+ - python_abi=3.11=5_cp311
+ - pyyaml=6.0.2=py311h9ecbd09_1
+ - readline=8.2=h8228510_1
+ - scipy=1.14.1=py311he9a78e4_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tk=8.6.13=noxft_h4845f30_101
+ - toml=0.10.2=pyhd8ed1ab_1
+ - tomli=2.2.1=pyhd8ed1ab_1
+ - tomlkit=0.13.2=pyha770c72_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=hb9d3cd8_0
+ - xorg-libxdmcp=1.1.5=hb9d3cd8_0
+ - yaml=0.2.5=h7f98852_2
+ - zstd=1.5.6=ha6fb4c9_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/environments/py-3.11-linux-64.conda.lock.yml b/environments/py-3.11-linux-64.conda.lock.yml
new file mode 100644
index 00000000..16a0d098
--- /dev/null
+++ b/environments/py-3.11-linux-64.conda.lock.yml
@@ -0,0 +1,82 @@
+# Generated by conda-lock.
+# platform: linux-64
+# input_hash: a9905f1b5583d7d9f9c71efa8cb896c8de8d219a5d086115d65d93a6400043bc
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _libgcc_mutex=0.1=conda_forge
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - bzip2=1.0.8=h4bc722e_7
+ - c-ares=1.34.4=hb9d3cd8_0
+ - ca-certificates=2024.12.14=hbcca054_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - freetype=2.12.1=h267a509_2
+ - h5py=3.12.1=nompi_py311h5ed33ec_103
+ - hdf5=1.14.4=nompi_h2d575fe_105
+ - keyutils=1.6.1=h166bdaf_0
+ - krb5=1.21.3=h659f571_0
+ - lcms2=2.16=hb7c19ff_0
+ - ld_impl_linux-64=2.43=h712a8e2_2
+ - lerc=4.0.0=h27087fc_0
+ - libaec=1.1.3=h59595ed_0
+ - libblas=3.9.0=26_linux64_openblas
+ - libcblas=3.9.0=26_linux64_openblas
+ - libcurl=8.11.1=h332b0f4_0
+ - libdeflate=1.23=h4ddbbb0_0
+ - libedit=3.1.20240808=pl5321h7949ede_0
+ - libev=4.33=hd590300_2
+ - libexpat=2.6.4=h5888daf_0
+ - libffi=3.4.2=h7f98852_5
+ - libgcc=14.2.0=h77fa898_1
+ - libgcc-ng=14.2.0=h69a702a_1
+ - libgfortran=14.2.0=h69a702a_1
+ - libgfortran5=14.2.0=hd5240d6_1
+ - libgomp=14.2.0=h77fa898_1
+ - libjpeg-turbo=3.0.0=hd590300_1
+ - liblapack=3.9.0=26_linux64_openblas
+ - liblzma=5.6.3=hb9d3cd8_1
+ - libnghttp2=1.64.0=h161d5f1_0
+ - libnsl=2.0.1=hd590300_0
+ - libopenblas=0.3.28=pthreads_h94d23a6_1
+ - libpng=1.6.45=h943b412_0
+ - libsqlite=3.47.2=hee588c1_0
+ - libssh2=1.11.1=hf672d98_0
+ - libstdcxx=14.2.0=hc0a3c3a_1
+ - libstdcxx-ng=14.2.0=h4852527_1
+ - libtiff=4.7.0=hd9ff511_3
+ - libuuid=2.38.1=h0b41bf4_0
+ - libwebp-base=1.5.0=h851e524_0
+ - libxcb=1.17.0=h8a09558_0
+ - libxcrypt=4.4.36=hd590300_1
+ - libzlib=1.3.1=hb9d3cd8_2
+ - ncurses=6.5=he02047a_1
+ - numpy=1.26.4=py311h64a7726_0
+ - openjpeg=2.5.3=h5fbd93e_0
+ - openssl=3.4.0=h7b32b05_1
+ - pillow=10.3.0=py311h82a398c_1
+ - pip=24.3.1=pyh8b19718_2
+ - pthread-stubs=0.4=hb9d3cd8_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py311h9e33e62_0
+ - python=3.11.11=h9e4cc4f_1_cpython
+ - python_abi=3.11=5_cp311
+ - readline=8.2=h8228510_1
+ - scipy=1.14.1=py311he9a78e4_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tk=8.6.13=noxft_h4845f30_101
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=hb9d3cd8_0
+ - xorg-libxdmcp=1.1.5=hb9d3cd8_0
+ - zstd=1.5.6=ha6fb4c9_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/environments/py-3.11-win-64-dev.conda.lock.yml b/environments/py-3.11-win-64-dev.conda.lock.yml
new file mode 100644
index 00000000..d3004c43
--- /dev/null
+++ b/environments/py-3.11-win-64-dev.conda.lock.yml
@@ -0,0 +1,97 @@
+# Generated by conda-lock.
+# platform: win-64
+# input_hash: ff4199daa11db42b0b09f0d9c2e0d77c483a993f0bbfed46cb167a15ec5dcb75
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - astroid=3.3.8=py311h1ea47a8_0
+ - bzip2=1.0.8=h2466b09_7
+ - ca-certificates=2024.12.14=h56e8100_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - colorama=0.4.6=pyhd8ed1ab_1
+ - coverage=7.6.10=py311h5082efb_0
+ - dill=0.3.9=pyhd8ed1ab_1
+ - exceptiongroup=1.2.2=pyhd8ed1ab_1
+ - freetype=2.12.1=hdaf720e_2
+ - h5py=3.12.1=nompi_py311haea1c80_103
+ - hdf5=1.14.4=nompi_hd5d9e70_105
+ - iniconfig=2.0.0=pyhd8ed1ab_1
+ - intel-openmp=2024.2.1=h57928b3_1083
+ - isort=5.13.2=pyhd8ed1ab_1
+ - jinja2=3.1.5=pyhd8ed1ab_0
+ - krb5=1.21.3=hdf4eb48_0
+ - lcms2=2.16=h67d730c_0
+ - lerc=4.0.0=h63175ca_0
+ - libaec=1.1.3=h63175ca_0
+ - libblas=3.9.0=26_win64_mkl
+ - libcblas=3.9.0=26_win64_mkl
+ - libcurl=8.11.1=h88aaa65_0
+ - libdeflate=1.23=h9062f6e_0
+ - libexpat=2.6.4=he0c23c2_0
+ - libffi=3.4.2=h8ffe710_5
+ - libgcc=14.2.0=h1383e82_1
+ - libgomp=14.2.0=h1383e82_1
+ - libhwloc=2.11.2=default_ha69328c_1001
+ - libiconv=1.17=hcfcfb64_2
+ - libjpeg-turbo=3.0.0=hcfcfb64_1
+ - liblapack=3.9.0=26_win64_mkl
+ - liblzma=5.6.3=h2466b09_1
+ - libpng=1.6.45=had7236b_0
+ - libsqlite=3.47.2=h67fdade_0
+ - libssh2=1.11.1=he619c9f_0
+ - libtiff=4.7.0=h797046b_3
+ - libwebp-base=1.5.0=h3b0e114_0
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_8
+ - libxcb=1.17.0=h0e4246c_0
+ - libxml2=2.13.5=he286e8c_1
+ - libzlib=1.3.1=h2466b09_2
+ - markupsafe=3.0.2=py311h5082efb_1
+ - mccabe=0.7.0=pyhd8ed1ab_1
+ - mkl=2024.2.2=h66d3029_15
+ - numpy=1.26.4=py311h0b4df5a_0
+ - openjpeg=2.5.3=h4d64b90_0
+ - openssl=3.4.0=ha4e3fda_1
+ - packaging=24.2=pyhd8ed1ab_2
+ - pillow=10.3.0=py311h5592be9_1
+ - pip=24.3.1=pyh8b19718_2
+ - platformdirs=4.3.6=pyhd8ed1ab_1
+ - pluggy=1.5.0=pyhd8ed1ab_1
+ - pthread-stubs=0.4=h0e40799_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py311h533ab2d_0
+ - pygments=2.19.1=pyhd8ed1ab_0
+ - pylint=3.3.3=pyhd8ed1ab_0
+ - pytest=8.3.4=pyhd8ed1ab_1
+ - pytest-cov=6.0.0=pyhd8ed1ab_1
+ - python=3.11.11=h3f84c4b_1_cpython
+ - python_abi=3.11=5_cp311
+ - pyyaml=6.0.2=py311he736701_1
+ - scipy=1.14.1=py311hf16d85f_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tbb=2021.13.0=h62715c5_1
+ - tk=8.6.13=h5226925_1
+ - toml=0.10.2=pyhd8ed1ab_1
+ - tomli=2.2.1=pyhd8ed1ab_1
+ - tomlkit=0.13.2=pyha770c72_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - ucrt=10.0.22621.0=h57928b3_1
+ - vc=14.3=ha32ba9b_23
+ - vc14_runtime=14.42.34433=he29a5d6_23
+ - vs2015_runtime=14.42.34433=hdffcdeb_23
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=h0e40799_0
+ - xorg-libxdmcp=1.1.5=h0e40799_0
+ - yaml=0.2.5=h8ffe710_2
+ - zstd=1.5.6=h0ea2cb4_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/environments/py-3.11-win-64.conda.lock.yml b/environments/py-3.11-win-64.conda.lock.yml
new file mode 100644
index 00000000..725b9bf4
--- /dev/null
+++ b/environments/py-3.11-win-64.conda.lock.yml
@@ -0,0 +1,75 @@
+# Generated by conda-lock.
+# platform: win-64
+# input_hash: ff4199daa11db42b0b09f0d9c2e0d77c483a993f0bbfed46cb167a15ec5dcb75
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - bzip2=1.0.8=h2466b09_7
+ - ca-certificates=2024.12.14=h56e8100_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - freetype=2.12.1=hdaf720e_2
+ - h5py=3.12.1=nompi_py311haea1c80_103
+ - hdf5=1.14.4=nompi_hd5d9e70_105
+ - intel-openmp=2024.2.1=h57928b3_1083
+ - krb5=1.21.3=hdf4eb48_0
+ - lcms2=2.16=h67d730c_0
+ - lerc=4.0.0=h63175ca_0
+ - libaec=1.1.3=h63175ca_0
+ - libblas=3.9.0=26_win64_mkl
+ - libcblas=3.9.0=26_win64_mkl
+ - libcurl=8.11.1=h88aaa65_0
+ - libdeflate=1.23=h9062f6e_0
+ - libexpat=2.6.4=he0c23c2_0
+ - libffi=3.4.2=h8ffe710_5
+ - libgcc=14.2.0=h1383e82_1
+ - libgomp=14.2.0=h1383e82_1
+ - libhwloc=2.11.2=default_ha69328c_1001
+ - libiconv=1.17=hcfcfb64_2
+ - libjpeg-turbo=3.0.0=hcfcfb64_1
+ - liblapack=3.9.0=26_win64_mkl
+ - liblzma=5.6.3=h2466b09_1
+ - libpng=1.6.45=had7236b_0
+ - libsqlite=3.47.2=h67fdade_0
+ - libssh2=1.11.1=he619c9f_0
+ - libtiff=4.7.0=h797046b_3
+ - libwebp-base=1.5.0=h3b0e114_0
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_8
+ - libxcb=1.17.0=h0e4246c_0
+ - libxml2=2.13.5=he286e8c_1
+ - libzlib=1.3.1=h2466b09_2
+ - mkl=2024.2.2=h66d3029_15
+ - numpy=1.26.4=py311h0b4df5a_0
+ - openjpeg=2.5.3=h4d64b90_0
+ - openssl=3.4.0=ha4e3fda_1
+ - pillow=10.3.0=py311h5592be9_1
+ - pip=24.3.1=pyh8b19718_2
+ - pthread-stubs=0.4=h0e40799_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py311h533ab2d_0
+ - python=3.11.11=h3f84c4b_1_cpython
+ - python_abi=3.11=5_cp311
+ - scipy=1.14.1=py311hf16d85f_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tbb=2021.13.0=h62715c5_1
+ - tk=8.6.13=h5226925_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - ucrt=10.0.22621.0=h57928b3_1
+ - vc=14.3=ha32ba9b_23
+ - vc14_runtime=14.42.34433=he29a5d6_23
+ - vs2015_runtime=14.42.34433=hdffcdeb_23
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=h0e40799_0
+ - xorg-libxdmcp=1.1.5=h0e40799_0
+ - zstd=1.5.6=h0ea2cb4_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/environments/py-3.12-linux-64-dev.conda.lock.yml b/environments/py-3.12-linux-64-dev.conda.lock.yml
new file mode 100644
index 00000000..4b1ad2df
--- /dev/null
+++ b/environments/py-3.12-linux-64-dev.conda.lock.yml
@@ -0,0 +1,104 @@
+# Generated by conda-lock.
+# platform: linux-64
+# input_hash: 23b59ff23bd5cf90f4c39b31d860488a17a6a6ac162abd8b97ad4eb36859f59b
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _libgcc_mutex=0.1=conda_forge
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - astroid=3.3.8=py312h7900ff3_0
+ - bzip2=1.0.8=h4bc722e_7
+ - c-ares=1.34.4=hb9d3cd8_0
+ - ca-certificates=2024.12.14=hbcca054_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - colorama=0.4.6=pyhd8ed1ab_1
+ - coverage=7.6.10=py312h178313f_0
+ - dill=0.3.9=pyhd8ed1ab_1
+ - exceptiongroup=1.2.2=pyhd8ed1ab_1
+ - freetype=2.12.1=h267a509_2
+ - h5py=3.12.1=nompi_py312hd203070_103
+ - hdf5=1.14.4=nompi_h2d575fe_105
+ - iniconfig=2.0.0=pyhd8ed1ab_1
+ - isort=5.13.2=pyhd8ed1ab_1
+ - jinja2=3.1.5=pyhd8ed1ab_0
+ - keyutils=1.6.1=h166bdaf_0
+ - krb5=1.21.3=h659f571_0
+ - lcms2=2.16=hb7c19ff_0
+ - ld_impl_linux-64=2.43=h712a8e2_2
+ - lerc=4.0.0=h27087fc_0
+ - libaec=1.1.3=h59595ed_0
+ - libblas=3.9.0=26_linux64_openblas
+ - libcblas=3.9.0=26_linux64_openblas
+ - libcurl=8.11.1=h332b0f4_0
+ - libdeflate=1.23=h4ddbbb0_0
+ - libedit=3.1.20240808=pl5321h7949ede_0
+ - libev=4.33=hd590300_2
+ - libexpat=2.6.4=h5888daf_0
+ - libffi=3.4.2=h7f98852_5
+ - libgcc=14.2.0=h77fa898_1
+ - libgcc-ng=14.2.0=h69a702a_1
+ - libgfortran=14.2.0=h69a702a_1
+ - libgfortran5=14.2.0=hd5240d6_1
+ - libgomp=14.2.0=h77fa898_1
+ - libjpeg-turbo=3.0.0=hd590300_1
+ - liblapack=3.9.0=26_linux64_openblas
+ - liblzma=5.6.3=hb9d3cd8_1
+ - libnghttp2=1.64.0=h161d5f1_0
+ - libnsl=2.0.1=hd590300_0
+ - libopenblas=0.3.28=pthreads_h94d23a6_1
+ - libpng=1.6.45=h943b412_0
+ - libsqlite=3.47.2=hee588c1_0
+ - libssh2=1.11.1=hf672d98_0
+ - libstdcxx=14.2.0=hc0a3c3a_1
+ - libstdcxx-ng=14.2.0=h4852527_1
+ - libtiff=4.7.0=hd9ff511_3
+ - libuuid=2.38.1=h0b41bf4_0
+ - libwebp-base=1.5.0=h851e524_0
+ - libxcb=1.17.0=h8a09558_0
+ - libxcrypt=4.4.36=hd590300_1
+ - libzlib=1.3.1=hb9d3cd8_2
+ - markupsafe=3.0.2=py312h178313f_1
+ - mccabe=0.7.0=pyhd8ed1ab_1
+ - ncurses=6.5=he02047a_1
+ - numpy=1.26.4=py312heda63a1_0
+ - openjpeg=2.5.3=h5fbd93e_0
+ - openssl=3.4.0=h7b32b05_1
+ - packaging=24.2=pyhd8ed1ab_2
+ - pillow=10.3.0=py312h287a98d_1
+ - pip=24.3.1=pyh8b19718_2
+ - platformdirs=4.3.6=pyhd8ed1ab_1
+ - pluggy=1.5.0=pyhd8ed1ab_1
+ - pthread-stubs=0.4=hb9d3cd8_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py312h12e396e_0
+ - pygments=2.19.1=pyhd8ed1ab_0
+ - pylint=3.3.3=pyhd8ed1ab_0
+ - pytest=8.3.4=pyhd8ed1ab_1
+ - pytest-cov=6.0.0=pyhd8ed1ab_1
+ - python=3.12.8=h9e4cc4f_1_cpython
+ - python_abi=3.12=5_cp312
+ - pyyaml=6.0.2=py312h66e93f0_1
+ - readline=8.2=h8228510_1
+ - scipy=1.14.1=py312h62794b6_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tk=8.6.13=noxft_h4845f30_101
+ - toml=0.10.2=pyhd8ed1ab_1
+ - tomli=2.2.1=pyhd8ed1ab_1
+ - tomlkit=0.13.2=pyha770c72_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=hb9d3cd8_0
+ - xorg-libxdmcp=1.1.5=hb9d3cd8_0
+ - yaml=0.2.5=h7f98852_2
+ - zstd=1.5.6=ha6fb4c9_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/environments/py-3.12-linux-64.conda.lock.yml b/environments/py-3.12-linux-64.conda.lock.yml
new file mode 100644
index 00000000..d6a9fe9f
--- /dev/null
+++ b/environments/py-3.12-linux-64.conda.lock.yml
@@ -0,0 +1,82 @@
+# Generated by conda-lock.
+# platform: linux-64
+# input_hash: 23b59ff23bd5cf90f4c39b31d860488a17a6a6ac162abd8b97ad4eb36859f59b
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _libgcc_mutex=0.1=conda_forge
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - bzip2=1.0.8=h4bc722e_7
+ - c-ares=1.34.4=hb9d3cd8_0
+ - ca-certificates=2024.12.14=hbcca054_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - freetype=2.12.1=h267a509_2
+ - h5py=3.12.1=nompi_py312hd203070_103
+ - hdf5=1.14.4=nompi_h2d575fe_105
+ - keyutils=1.6.1=h166bdaf_0
+ - krb5=1.21.3=h659f571_0
+ - lcms2=2.16=hb7c19ff_0
+ - ld_impl_linux-64=2.43=h712a8e2_2
+ - lerc=4.0.0=h27087fc_0
+ - libaec=1.1.3=h59595ed_0
+ - libblas=3.9.0=26_linux64_openblas
+ - libcblas=3.9.0=26_linux64_openblas
+ - libcurl=8.11.1=h332b0f4_0
+ - libdeflate=1.23=h4ddbbb0_0
+ - libedit=3.1.20240808=pl5321h7949ede_0
+ - libev=4.33=hd590300_2
+ - libexpat=2.6.4=h5888daf_0
+ - libffi=3.4.2=h7f98852_5
+ - libgcc=14.2.0=h77fa898_1
+ - libgcc-ng=14.2.0=h69a702a_1
+ - libgfortran=14.2.0=h69a702a_1
+ - libgfortran5=14.2.0=hd5240d6_1
+ - libgomp=14.2.0=h77fa898_1
+ - libjpeg-turbo=3.0.0=hd590300_1
+ - liblapack=3.9.0=26_linux64_openblas
+ - liblzma=5.6.3=hb9d3cd8_1
+ - libnghttp2=1.64.0=h161d5f1_0
+ - libnsl=2.0.1=hd590300_0
+ - libopenblas=0.3.28=pthreads_h94d23a6_1
+ - libpng=1.6.45=h943b412_0
+ - libsqlite=3.47.2=hee588c1_0
+ - libssh2=1.11.1=hf672d98_0
+ - libstdcxx=14.2.0=hc0a3c3a_1
+ - libstdcxx-ng=14.2.0=h4852527_1
+ - libtiff=4.7.0=hd9ff511_3
+ - libuuid=2.38.1=h0b41bf4_0
+ - libwebp-base=1.5.0=h851e524_0
+ - libxcb=1.17.0=h8a09558_0
+ - libxcrypt=4.4.36=hd590300_1
+ - libzlib=1.3.1=hb9d3cd8_2
+ - ncurses=6.5=he02047a_1
+ - numpy=1.26.4=py312heda63a1_0
+ - openjpeg=2.5.3=h5fbd93e_0
+ - openssl=3.4.0=h7b32b05_1
+ - pillow=10.3.0=py312h287a98d_1
+ - pip=24.3.1=pyh8b19718_2
+ - pthread-stubs=0.4=hb9d3cd8_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py312h12e396e_0
+ - python=3.12.8=h9e4cc4f_1_cpython
+ - python_abi=3.12=5_cp312
+ - readline=8.2=h8228510_1
+ - scipy=1.14.1=py312h62794b6_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tk=8.6.13=noxft_h4845f30_101
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=hb9d3cd8_0
+ - xorg-libxdmcp=1.1.5=hb9d3cd8_0
+ - zstd=1.5.6=ha6fb4c9_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/environments/py-3.12-win-64-dev.conda.lock.yml b/environments/py-3.12-win-64-dev.conda.lock.yml
new file mode 100644
index 00000000..b860a9ac
--- /dev/null
+++ b/environments/py-3.12-win-64-dev.conda.lock.yml
@@ -0,0 +1,97 @@
+# Generated by conda-lock.
+# platform: win-64
+# input_hash: b9c1486ae67f95c128a32abaaf377850d741f91d594152d9f62abd651282b6bd
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - astroid=3.3.8=py312h2e8e312_0
+ - bzip2=1.0.8=h2466b09_7
+ - ca-certificates=2024.12.14=h56e8100_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - colorama=0.4.6=pyhd8ed1ab_1
+ - coverage=7.6.10=py312h31fea79_0
+ - dill=0.3.9=pyhd8ed1ab_1
+ - exceptiongroup=1.2.2=pyhd8ed1ab_1
+ - freetype=2.12.1=hdaf720e_2
+ - h5py=3.12.1=nompi_py312h0db4ba1_103
+ - hdf5=1.14.4=nompi_hd5d9e70_105
+ - iniconfig=2.0.0=pyhd8ed1ab_1
+ - intel-openmp=2024.2.1=h57928b3_1083
+ - isort=5.13.2=pyhd8ed1ab_1
+ - jinja2=3.1.5=pyhd8ed1ab_0
+ - krb5=1.21.3=hdf4eb48_0
+ - lcms2=2.16=h67d730c_0
+ - lerc=4.0.0=h63175ca_0
+ - libaec=1.1.3=h63175ca_0
+ - libblas=3.9.0=26_win64_mkl
+ - libcblas=3.9.0=26_win64_mkl
+ - libcurl=8.11.1=h88aaa65_0
+ - libdeflate=1.23=h9062f6e_0
+ - libexpat=2.6.4=he0c23c2_0
+ - libffi=3.4.2=h8ffe710_5
+ - libgcc=14.2.0=h1383e82_1
+ - libgomp=14.2.0=h1383e82_1
+ - libhwloc=2.11.2=default_ha69328c_1001
+ - libiconv=1.17=hcfcfb64_2
+ - libjpeg-turbo=3.0.0=hcfcfb64_1
+ - liblapack=3.9.0=26_win64_mkl
+ - liblzma=5.6.3=h2466b09_1
+ - libpng=1.6.45=had7236b_0
+ - libsqlite=3.47.2=h67fdade_0
+ - libssh2=1.11.1=he619c9f_0
+ - libtiff=4.7.0=h797046b_3
+ - libwebp-base=1.5.0=h3b0e114_0
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_8
+ - libxcb=1.17.0=h0e4246c_0
+ - libxml2=2.13.5=he286e8c_1
+ - libzlib=1.3.1=h2466b09_2
+ - markupsafe=3.0.2=py312h31fea79_1
+ - mccabe=0.7.0=pyhd8ed1ab_1
+ - mkl=2024.2.2=h66d3029_15
+ - numpy=1.26.4=py312h8753938_0
+ - openjpeg=2.5.3=h4d64b90_0
+ - openssl=3.4.0=ha4e3fda_1
+ - packaging=24.2=pyhd8ed1ab_2
+ - pillow=10.3.0=py312h381445a_1
+ - pip=24.3.1=pyh8b19718_2
+ - platformdirs=4.3.6=pyhd8ed1ab_1
+ - pluggy=1.5.0=pyhd8ed1ab_1
+ - pthread-stubs=0.4=h0e40799_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py312h2615798_0
+ - pygments=2.19.1=pyhd8ed1ab_0
+ - pylint=3.3.3=pyhd8ed1ab_0
+ - pytest=8.3.4=pyhd8ed1ab_1
+ - pytest-cov=6.0.0=pyhd8ed1ab_1
+ - python=3.12.8=h3f84c4b_1_cpython
+ - python_abi=3.12=5_cp312
+ - pyyaml=6.0.2=py312h4389bb4_1
+ - scipy=1.14.1=py312h337df96_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tbb=2021.13.0=h62715c5_1
+ - tk=8.6.13=h5226925_1
+ - toml=0.10.2=pyhd8ed1ab_1
+ - tomli=2.2.1=pyhd8ed1ab_1
+ - tomlkit=0.13.2=pyha770c72_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - ucrt=10.0.22621.0=h57928b3_1
+ - vc=14.3=ha32ba9b_23
+ - vc14_runtime=14.42.34433=he29a5d6_23
+ - vs2015_runtime=14.42.34433=hdffcdeb_23
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=h0e40799_0
+ - xorg-libxdmcp=1.1.5=h0e40799_0
+ - yaml=0.2.5=h8ffe710_2
+ - zstd=1.5.6=h0ea2cb4_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/environments/py-3.12-win-64.conda.lock.yml b/environments/py-3.12-win-64.conda.lock.yml
new file mode 100644
index 00000000..57077ca3
--- /dev/null
+++ b/environments/py-3.12-win-64.conda.lock.yml
@@ -0,0 +1,75 @@
+# Generated by conda-lock.
+# platform: win-64
+# input_hash: b9c1486ae67f95c128a32abaaf377850d741f91d594152d9f62abd651282b6bd
+
+channels:
+ - conda-forge
+ - nodefaults
+dependencies:
+ - _openmp_mutex=4.5=2_gnu
+ - annotated-types=0.7.0=pyhd8ed1ab_1
+ - bzip2=1.0.8=h2466b09_7
+ - ca-certificates=2024.12.14=h56e8100_0
+ - cached-property=1.5.2=hd8ed1ab_1
+ - cached_property=1.5.2=pyha770c72_1
+ - freetype=2.12.1=hdaf720e_2
+ - h5py=3.12.1=nompi_py312h0db4ba1_103
+ - hdf5=1.14.4=nompi_hd5d9e70_105
+ - intel-openmp=2024.2.1=h57928b3_1083
+ - krb5=1.21.3=hdf4eb48_0
+ - lcms2=2.16=h67d730c_0
+ - lerc=4.0.0=h63175ca_0
+ - libaec=1.1.3=h63175ca_0
+ - libblas=3.9.0=26_win64_mkl
+ - libcblas=3.9.0=26_win64_mkl
+ - libcurl=8.11.1=h88aaa65_0
+ - libdeflate=1.23=h9062f6e_0
+ - libexpat=2.6.4=he0c23c2_0
+ - libffi=3.4.2=h8ffe710_5
+ - libgcc=14.2.0=h1383e82_1
+ - libgomp=14.2.0=h1383e82_1
+ - libhwloc=2.11.2=default_ha69328c_1001
+ - libiconv=1.17=hcfcfb64_2
+ - libjpeg-turbo=3.0.0=hcfcfb64_1
+ - liblapack=3.9.0=26_win64_mkl
+ - liblzma=5.6.3=h2466b09_1
+ - libpng=1.6.45=had7236b_0
+ - libsqlite=3.47.2=h67fdade_0
+ - libssh2=1.11.1=he619c9f_0
+ - libtiff=4.7.0=h797046b_3
+ - libwebp-base=1.5.0=h3b0e114_0
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_8
+ - libxcb=1.17.0=h0e4246c_0
+ - libxml2=2.13.5=he286e8c_1
+ - libzlib=1.3.1=h2466b09_2
+ - mkl=2024.2.2=h66d3029_15
+ - numpy=1.26.4=py312h8753938_0
+ - openjpeg=2.5.3=h4d64b90_0
+ - openssl=3.4.0=ha4e3fda_1
+ - pillow=10.3.0=py312h381445a_1
+ - pip=24.3.1=pyh8b19718_2
+ - pthread-stubs=0.4=h0e40799_1002
+ - pydantic=2.10.5=pyh3cfb1c2_0
+ - pydantic-core=2.27.2=py312h2615798_0
+ - python=3.12.8=h3f84c4b_1_cpython
+ - python_abi=3.12=5_cp312
+ - scipy=1.14.1=py312h337df96_2
+ - setuptools=75.8.0=pyhff2d567_0
+ - tbb=2021.13.0=h62715c5_1
+ - tk=8.6.13=h5226925_1
+ - typing-extensions=4.12.2=hd8ed1ab_1
+ - typing_extensions=4.12.2=pyha770c72_1
+ - tzdata=2024b=hc8b5060_0
+ - ucrt=10.0.22621.0=h57928b3_1
+ - vc=14.3=ha32ba9b_23
+ - vc14_runtime=14.42.34433=he29a5d6_23
+ - vs2015_runtime=14.42.34433=hdffcdeb_23
+ - wheel=0.45.1=pyhd8ed1ab_1
+ - xorg-libxau=1.0.12=h0e40799_0
+ - xorg-libxdmcp=1.1.5=h0e40799_0
+ - zstd=1.5.6=h0ea2cb4_0
+ - pip:
+ - geoh5py == 0.10.0rc1 --hash=sha256:50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+
+variables:
+ KMP_WARNINGS: 0
diff --git a/geoapps_utils-assets/__init__.py b/geoapps_utils-assets/__init__.py
new file mode 100644
index 00000000..348e9ed6
--- /dev/null
+++ b/geoapps_utils-assets/__init__.py
@@ -0,0 +1,9 @@
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2022-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/geoapps_utils-assets/uijson/base.ui.json b/geoapps_utils-assets/uijson/base.ui.json
new file mode 100644
index 00000000..d19fde88
--- /dev/null
+++ b/geoapps_utils-assets/uijson/base.ui.json
@@ -0,0 +1,10 @@
+{
+ "version": "0.0.0",
+ "title": "base",
+ "conda_environment": "myenv",
+ "run_command": "geoapps_utils.driver.driver",
+ "geoh5": "",
+ "monitoring_directory": "",
+ "workspace_geoh5": "",
+ "out_group": ""
+}
diff --git a/geoapps_utils/__init__.py b/geoapps_utils/__init__.py
index 1078fcc0..d5c30f65 100644
--- a/geoapps_utils/__init__.py
+++ b/geoapps_utils/__init__.py
@@ -1,10 +1,48 @@
-# Copyright (c) 2022-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2022-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
-__version__ = "0.3.0"
+
+__version__ = "0.4.0"
+
+from pathlib import Path
+
+from geoapps_utils.utils import (
+ conversions,
+ formatters,
+ importing,
+ iterables,
+ locations,
+ numerical,
+ plotting,
+ transformations,
+ workspace,
+)
+from geoapps_utils.utils.importing import assets_path as assets_path_impl
+
+
+def assets_path() -> Path:
+ """Return the path to the assets folder."""
+ return assets_path_impl(__file__)
+
+
+__all__ = [
+ "assets_path",
+ "conversions",
+ "formatters",
+ "importing",
+ "iterables",
+ "locations",
+ "numerical",
+ "plotting",
+ "transformations",
+ "workspace",
+]
diff --git a/geoapps_utils/application/__init__.py b/geoapps_utils/application/__init__.py
deleted file mode 100644
index f333bfb3..00000000
--- a/geoapps_utils/application/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
diff --git a/geoapps_utils/application/dash_application.py b/geoapps_utils/application/dash_application.py
deleted file mode 100644
index 92156a41..00000000
--- a/geoapps_utils/application/dash_application.py
+++ /dev/null
@@ -1,685 +0,0 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
-from __future__ import annotations
-
-import base64
-import io
-import json
-import os
-import signal
-import socket
-import sys
-import threading
-import uuid
-from abc import ABC, abstractmethod
-from pathlib import Path
-from typing import Any
-
-import numpy as np
-from dash import Dash, callback_context, dcc, no_update
-from dash.dependencies import Input, Output, State
-from dash.development.base_component import Component
-from flask import Flask
-from geoh5py.data import Data
-from geoh5py.groups import PropertyGroup
-from geoh5py.objects import ObjectBase
-from geoh5py.shared import Entity
-from geoh5py.shared.utils import fetch_active_workspace, is_uuid
-from geoh5py.ui_json import InputFile
-from geoh5py.workspace import Workspace
-from PySide2 import QtCore, QtWebEngineWidgets
-from PySide2.QtWidgets import QApplication, QHBoxLayout, QMainWindow, QWidget
-
-from geoapps_utils.application.layout import object_selection_layout
-from geoapps_utils.driver.params import BaseParams
-
-
-class BaseDashApplication(ABC):
- """
- Base class for geoapps dash applications
- """
-
- _param_class: type = BaseParams
- _driver_class = None
-
- def __init__(
- self,
- ui_json: InputFile | None = None,
- ui_json_data: dict | None = None,
- params: BaseParams | None = None,
- ):
- """
- Set initial ui_json_data from input file and open workspace.
- """
- self._app_initializer: dict | None = None
- self._workspace: Workspace | None = None
-
- if isinstance(params, BaseParams):
- # Launched from notebook
- # Params for initialization are coming from params
- # ui_json_data is provided
- self.params = params
-
- elif (
- ui_json is not None
- and ui_json.path is not None
- and Path(ui_json.path).exists()
- ):
- # Launched from terminal
- # Params for initialization are coming from ui_json
- # ui_json_data starts as None
- self.params = self._param_class(ui_json)
-
- input_file = self.params.input_file
-
- if input_file is None:
- raise ValueError("No input file provided.")
-
- if ui_json_data is not None:
- with fetch_active_workspace(self.params.geoh5):
- for key, value in ui_json_data.items():
- setattr(self.params, key, value)
-
- json_data = input_file.demote(self.params.to_dict())
-
- self._ui_json_data = json_data
-
- assert self.params is not None, "No parameters provided."
- self.workspace = self.params.geoh5
-
- if self._driver_class is not None:
- self.driver = self._driver_class(self.params)
-
- @property
- @abstractmethod
- def app(self) -> Dash:
- """Dash app"""
-
- def get_data_options(
- self,
- ui_json_data: dict,
- object_uid: str | None,
- object_name: str = "objects",
- trigger: str | None = None,
- ) -> list:
- """
- Get data dropdown options from a given object.
-
- :param ui_json_data: Uploaded ui.json data to read object from.
- :param object_uid: Selected object in object dropdown.
- :param object_name: Object parameter name in ui.json.
- :param trigger: Callback trigger.
-
- :return options: Data dropdown options.
- """
- obj = None
- if trigger == "ui_json_data" and object_name in ui_json_data:
- if is_uuid(ui_json_data[object_name]):
- object_uid = ui_json_data[object_name]
- elif self.workspace.get_entity(ui_json_data[object_name])[0] is not None:
- object_uid = self.workspace.get_entity(ui_json_data[object_name])[0].uid
-
- if object_uid is not None and is_uuid(object_uid):
- for entity in self.workspace.get_entity(uuid.UUID(object_uid)):
- if isinstance(entity, ObjectBase):
- obj = entity
-
- if obj:
- options = []
- for child in obj.children:
- if isinstance(child, Data):
- if child.name != "Visual Parameters":
- options.append(
- {"label": child.name, "value": "{" + str(child.uid) + "}"}
- )
- options = sorted(options, key=lambda d: d["label"])
-
- return options
- return []
-
- def get_params_dict(self, update_dict: dict) -> dict:
- """
- Get dict of current params.
-
- :param update_dict: Dict of parameters with new values to convert to a params dict.
-
- :return output_dict: Dict of current params.
- """
- if self.params is None:
- return {}
-
- output_dict: dict[str, Any] = {}
- # Get validations to know expected type for keys in self.params.
- validations = self.params.validations
-
- # Loop through self.params and update self.params with locals_dict.
- for key in self.params.to_dict():
- if key not in update_dict:
- continue
- if validations is not None:
- if bool in validations[key]["types"] and isinstance(
- update_dict[key], list
- ):
- # Convert from dash component checklist to bool
- if not update_dict[key]:
- output_dict[key] = False
- else:
- output_dict[key] = True
- continue
- if (
- float in validations[key]["types"]
- and int not in validations[key]["types"]
- and isinstance(update_dict[key], int)
- ):
- # Checking for values that Dash has given as int when they should be floats.
- output_dict[key] = float(update_dict[key])
- continue
- if is_uuid(update_dict[key]):
- output_dict[key] = self.workspace.get_entity(
- uuid.UUID(update_dict[key])
- )[0]
- else:
- output_dict[key] = update_dict[key]
- return output_dict
-
- @staticmethod
- def init_vals(
- layout: list[Component], ui_json_data: dict, kwargs: dict | None = None
- ):
- """
- Initialize dash components in layout from ui_json_data.
-
- :param layout: Dash layout.
- :param ui_json_data: Uploaded ui.json data.
- :param kwargs: Optional properties to set for components.
- """
-
- for comp in layout:
- BaseDashApplication._init_component(comp, ui_json_data, kwargs=kwargs)
-
- @staticmethod
- def _init_component(
- comp: Component, ui_json_data: dict, kwargs: dict | None = None
- ):
- """
- Initialize dash component from ui_json_data.
-
- :param comp: Dash component.
- :param ui_json_data: Uploaded ui.json data.
- :param kwargs: Optional properties to set for components.
- """
- if isinstance(comp, dcc.Markdown):
- return
- if hasattr(comp, "children"):
- BaseDashApplication.init_vals(comp.children, ui_json_data, kwargs)
- return
-
- if kwargs is not None and hasattr(comp, "id") and comp.id in kwargs:
- for prop in kwargs[comp.id]:
- setattr(comp, prop["property"], prop["value"])
- return
-
- if hasattr(comp, "id") and comp.id in ui_json_data:
- if isinstance(comp, dcc.Store):
- comp.data = ui_json_data[comp.id]
- return
-
- if isinstance(comp, dcc.Dropdown):
- comp.value = ui_json_data[comp.id]
- if comp.value is None:
- comp.value = "None"
- if not hasattr(comp, "options"):
- comp_option = ui_json_data[comp.id]
- if comp_option is None:
- comp_option = "None"
- comp.options = [comp_option]
- return
-
- if isinstance(comp, dcc.Checklist):
- comp.value = []
- if ui_json_data[comp.id]:
- comp.value = [True]
-
- else:
- comp.value = ui_json_data[comp.id]
-
- @staticmethod
- def update_visibility_from_checklist(checklist_val: list[bool]) -> dict:
- """
- Update visibility of a component from a checklist value.
-
- :param checklist_val: Checklist value.
-
- :return visibility: Component style.
- """
- if checklist_val:
- return {"display": "block"}
- return {"display": "none"}
-
- @property
- def params(self) -> BaseParams:
- """
- Application parameters
- """
- return self._params
-
- @params.setter
- def params(self, params: BaseParams):
- assert isinstance(
- params, BaseParams
- ), f"Input parameters must be an instance of {BaseParams}"
-
- self._params = params
-
- @property
- def workspace(self):
- """
- Current workspace.
- """
- return self._workspace
-
- @workspace.setter
- def workspace(self, workspace):
- # Close old workspace
- if self._workspace is not None:
- self._workspace.close()
- self._workspace = workspace
-
-
-class ObjectSelection:
- """
- Dash app to select workspace and object.
-
- Creates temporary workspace with the object, and
- opens a Qt window to run an app.
- """
-
- def __init__(
- self,
- app_name: str,
- app_initializer: dict,
- app_class: type[BaseDashApplication],
- param_class: type[BaseParams],
- **kwargs,
- ):
- self._app_initializer: dict | None = None
- self._app_name = None
- self._app_class = BaseDashApplication
- self._param_class = BaseParams
- self._workspace = None
-
- self.app_name = app_name
- self.app_class = app_class
- self.param_class = param_class
-
- app_initializer.update(kwargs)
- self.params = self.param_class(**app_initializer)
- self._app_initializer = {
- key: value
- for key, value in app_initializer.items()
- if key not in self.params.param_names
- }
- self.workspace = self.params.geoh5
-
- external_stylesheets = None
- server = Flask(__name__)
- self.app = Dash(
- server=server,
- url_base_pathname=os.environ.get("JUPYTERHUB_SERVICE_PREFIX", "/"),
- external_stylesheets=external_stylesheets,
- )
- self.app.layout = object_selection_layout
-
- # Set up callbacks
- self.app.callback(
- Output(component_id="objects", component_property="options"),
- Output(component_id="objects", component_property="value"),
- Output(component_id="ui_json_data", component_property="data"),
- Output(component_id="upload", component_property="filename"),
- Output(component_id="upload", component_property="contents"),
- Input(component_id="ui_json_data", component_property="data"),
- Input(component_id="upload", component_property="filename"),
- Input(component_id="upload", component_property="contents"),
- Input(component_id="objects", component_property="value"),
- )(self.update_object_options)
- self.app.callback(
- Output(component_id="launch_app_markdown", component_property="children"),
- State(component_id="objects", component_property="value"),
- Input(component_id="launch_app", component_property="n_clicks"),
- )(self.launch_qt)
-
- def update_object_options(
- self,
- ui_json_data: dict,
- filename: str,
- contents: str,
- objects: str,
- trigger: str | None = None,
- ) -> tuple:
- """
- This function is called when a file is uploaded. It sets the new workspace, sets the dcc
- ui_json_data component, and sets the new object options and values.
-
- :param filename: Uploaded filename. Workspace or ui.json.
- :param contents: Uploaded file contents. Workspace or ui.json.
- :param trigger: Dash component which triggered the callback.
-
- :return object_options: New object dropdown options.
- :return object_value: New object value.
- :return ui_json_data: Uploaded ui_json data.
- :return filename: Return None to reset the filename so the same file can be chosen twice
- in a row.
- :return contents: Return None to reset the contents so the same file can be chosen twice
- in a row.
- """
- if trigger is None:
- trigger = callback_context.triggered[0]["prop_id"].split(".")[0]
-
- if trigger != "":
- # Remove entities from ui_json_data
- inp_ui_json_data = ui_json_data.copy()
- for key, value in inp_ui_json_data.items():
- if is_uuid(value) or isinstance(value, Entity):
- setattr(self.params, key, None)
- del ui_json_data[key]
- if trigger == "objects":
- return no_update, objects, ui_json_data, None, None
-
- object_options, object_value = no_update, None
- if contents is not None and filename is not None:
- if filename.endswith(".ui.json"):
- # Uploaded ui.json
- _, content_string = contents.split(",")
- ui_json = json.loads(base64.b64decode(content_string))
- self.workspace = Workspace(ui_json["geoh5"], mode="r")
- # Create ifile from ui.json
- ifile = InputFile(ui_json=ui_json)
- self.params = self.param_class(ifile)
- # Demote ifile data so it can be stored as a string
- if ifile.data is not None:
- ui_json_data = ifile.demote(ifile.data.copy())
- # Get new object value for dropdown from ui.json
- object_value = ui_json_data["objects"]
- elif filename.endswith(".geoh5"):
- # Uploaded workspace
- _, content_string = contents.split(",")
- self.workspace = Workspace(
- io.BytesIO(base64.b64decode(content_string)), mode="r"
- )
- # Update self.params with new workspace, but keep unaffected params the same.
- new_params = self.params.to_dict()
- for key, value in new_params.items():
- if isinstance(value, Entity):
- new_params[key] = None
- new_params["geoh5"] = self.workspace
- self.params = self.param_class(**new_params)
- elif trigger == "":
- ui_json_data = self._ui_json_data_from_params()
- object_value = ui_json_data["objects"]
-
- # Get new options for object dropdown
- if self.workspace is not None:
- object_options = [
- {
- "label": obj.parent.name + "/" + obj.name,
- "value": "{" + str(obj.uid) + "}",
- }
- for obj in self.workspace.objects
- ]
-
- return object_options, object_value, ui_json_data, None, None
-
- def _ui_json_data_from_params(self) -> dict[str, Any]:
- """Returns app json data initialized from self.params"""
- assert (
- self.params.input_file is not None
- ), "No input file provided in parameters."
-
- ifile = InputFile(
- ui_json=self.params.input_file.ui_json,
- validate=False,
- )
- ifile.update_ui_values(self.params.to_dict())
- ui_json_data = {}
- if ifile.data is not None:
- ui_json_data = ifile.demote(ifile.data)
- if self._app_initializer is not None:
- ui_json_data.update(self._app_initializer)
- return ui_json_data
-
- @staticmethod
- def get_port() -> int:
- """
- Loop through a list of ports to find an available port.
-
- :return port: Available port.
- """
- open_port = None
- for port in np.arange(8050, 8101):
- with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
- in_use = sock.connect_ex(("localhost", port)) == 0
- if in_use is False:
- open_port = port
- break
- if open_port is None:
- raise RuntimeError("No open port found.")
- return open_port
-
- @staticmethod
- def start_server(
- port: int,
- app_class: type[BaseDashApplication],
- ui_json: InputFile | None = None,
- ui_json_data: dict | None = None,
- params: BaseParams | None = None,
- ):
- """
- Launch dash app server using given port.
-
- :param port: Port for where to launch server.
- :param app_class: Type of app to create.
- :param ui_json: ifile corresponding to the ui_json_data.
- :param ui_json_data: Dict of current params to provide to app init.
- :param params: Current params to pass to new app.
- """
- app = app_class(ui_json=ui_json, ui_json_data=ui_json_data, params=params)
- app.app.run(jupyter_mode="external", host="127.0.0.1", port=port)
-
- @staticmethod
- def make_qt_window(app_name: str | None, port: int):
- """
- Make Qt window and load dash url with the given port.
-
- :param app_name: App name to display as Qt window title.
- :param port: Port where the dash app has been launched.
- """
- app = QApplication(sys.argv)
- win = MainWindow()
-
- browser = QtWebEngineWidgets.QWebEngineView()
- browser.load(QtCore.QUrl("http://127.0.0.1:" + str(port)))
-
- win.setWindowTitle(app_name)
-
- central_widget = QWidget()
- central_widget.setMinimumSize(600, 400)
- win.setCentralWidget(central_widget)
- lay = QHBoxLayout(central_widget)
- lay.addWidget(browser)
-
- win.showMaximized()
- app.exec_() # running the Qt app
- os.kill(os.getpid(), signal.SIGTERM) # shut down dash server and notebook
-
- def launch_qt(self, objects: str, n_clicks: int) -> str:
- """
- Launch the Qt app when launch app button is clicked.
-
- :param objects: Selected object uid.
- :param n_clicks: Number of times button has been clicked; triggers callback.
-
- :return launch_app_markdown: Empty string since callbacks must have output.
- """
- del n_clicks # unused argument
-
- triggers = [c["prop_id"].split(".")[0] for c in callback_context.triggered]
- if not (
- "launch_app" in triggers
- and objects is not None
- and self.workspace is not None
- ):
- return ""
-
- # Start server
- port = ObjectSelection.get_port()
- threading.Thread(
- target=self.start_server,
- args=(port, self.app_class, None, None, self.params),
- daemon=True,
- ).start()
-
- # Make Qt window
- self.make_qt_window(self.app_name, port)
- return ""
-
- @staticmethod
- def _copy_property_groups(source_groups: list[ObjectBase], param_dict: dict):
- """Copy any property groups over to param_dict of temporary workspace"""
- temp_prop_groups = param_dict["objects"].property_groups
- for group in source_groups:
- if not isinstance(group, PropertyGroup):
- continue
- for temp_group in temp_prop_groups:
- if temp_group.name != group.name:
- continue
- for key, value in param_dict.items():
- if hasattr(value, "uid") and value.uid == group.uid:
- param_dict[key] = temp_group.uid
-
- @staticmethod
- def run(app_name: str, app_class: BaseDashApplication, ui_json: InputFile):
- """
- Launch Qt app from terminal.
-
- :param app_name: Name of app to display as Qt window title.
- :param app_class: Type of app to create.
- :param ui_json: Input file to pass to app for initialization.
- """
- # Start server
- port = ObjectSelection.get_port()
- threading.Thread(
- target=ObjectSelection.start_server,
- args=(port, app_class, ui_json),
- daemon=True,
- ).start()
-
- # Make Qt window
- ObjectSelection.make_qt_window(app_name, port)
-
- @property
- def app_name(self) -> str | None:
- """
- Name of app that appears as Qt window title.
- """
- return self._app_name
-
- @app_name.setter
- def app_name(self, val):
- if not isinstance(val, str) and (val is not None):
- raise TypeError("Value for attribute `app_name` should be 'str' or 'None'")
- self._app_name = val
-
- @property
- def app_class(self) -> type[BaseDashApplication]:
- """
- The kind of app to launch.
- """
- return self._app_class
-
- @app_class.setter
- def app_class(self, val):
- if not issubclass(val, BaseDashApplication):
- raise TypeError(
- "Value for attribute `app_class` should be a subclass of "
- ":obj:`geoapps_utils.application.BaseDashApplication`"
- )
- self._app_class = val
-
- @property
- def param_class(self) -> type[BaseParams]:
- """
- The param class associated with the launched app.
- """
- return self._param_class
-
- @param_class.setter
- def param_class(self, val):
- if not issubclass(val, BaseParams):
- raise TypeError(
- "Value for attribute `param_class` should be a subclass of "
- ":obj:`geoapps_utils.driver.params.BaseParams`"
- )
- self._param_class = val
-
- @property
- def workspace(self) -> Workspace | None:
- """
- Input workspace.
- """
- return self._workspace
-
- @workspace.setter
- def workspace(self, val):
- if not isinstance(val, Workspace) and (val is not None):
- raise TypeError(
- "Value for attribute `workspace` should be :obj:`geoh5py.workspace.Workspace`"
- " or 'None'"
- )
- if self._workspace is not None:
- # Close old workspace
- self._workspace.close()
- self._workspace = val
-
-
-class MainWindow(QMainWindow):
- def __init__(self, parent=None):
- super().__init__(parent)
- self.aspect_ratio = 1.5
-
- def resizeEvent(self, event):
- QMainWindow.resizeEvent(self, event)
-
- # Get window size
- height = self.size().height()
- width = self.size().width()
-
- # Figure out which direction to expand in
- width_diff = height * self.aspect_ratio
- height_diff = width / self.aspect_ratio
-
- new_width, new_height = width, height
-
- if (
- self.centralWidget().minimumSize().height() < height
- and self.centralWidget().minimumSize().width() < width
- ):
- return
-
- if width_diff < height_diff and width > width_diff:
- new_width = width_diff
- new_height = height * self.aspect_ratio
- elif height > height_diff:
- new_height = height_diff
- new_width = width * self.aspect_ratio
-
- width_margin = np.floor((width - new_width) / 2)
- height_margin = np.floor((height - new_height) / 2)
-
- self.setContentsMargins(
- width_margin, height_margin, width_margin, height_margin
- )
diff --git a/geoapps_utils/application/layout.py b/geoapps_utils/application/layout.py
deleted file mode 100644
index 5718c463..00000000
--- a/geoapps_utils/application/layout.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
-from __future__ import annotations
-
-from dash import dcc, html
-
-workspace_layout = html.Div(
- [
- dcc.Upload(
- id="upload",
- children=html.Button("Upload Workspace/ui.json"),
- style={"margin_bottom": "40px"},
- ),
- html.Div(
- [
- dcc.Markdown(
- children="Object:",
- style={
- "width": "20%",
- "display": "inline-block",
- "margin-top": "20px",
- "vertical-align": "bottom",
- },
- ),
- dcc.Dropdown(
- id="objects",
- style={
- "width": "65%",
- "display": "inline-block",
- "margin_bottom": "40px",
- "vertical-align": "bottom",
- },
- ),
- ]
- ),
- ]
-)
-
-launch_qt_layout = html.Div(
- [
- html.Div(
- [
- html.Button("Launch App", id="launch_app", n_clicks=0),
- dcc.Markdown(
- children="",
- id="launch_app_markdown",
- style={"width": "50%", "display": "inline-block"},
- ),
- ],
- style={"margin_top": "40px"},
- ),
- dcc.Store(id="ui_json_data"),
- ]
-)
-
-object_selection_layout = html.Div([workspace_layout, launch_qt_layout])
-
-export_layout = html.Div(
- [
- html.Div(
- [
- dcc.Markdown(
- "Save as", style={"width": "25%", "display": "inline-block"}
- ),
- dcc.Input(
- id="ga_group_name",
- style={"width": "25%", "display": "inline-block"},
- ),
- ]
- ),
- html.Div(
- [
- dcc.Markdown(
- children="Output path",
- style={"width": "25%", "display": "inline-block"},
- ),
- dcc.Input(
- id="monitoring_directory",
- style={
- "width": "50%",
- "display": "inline-block",
- "margin_bottom": "20px",
- },
- ),
- ]
- ),
- dcc.Checklist(
- id="live_link",
- options=[{"label": "Geoscience ANALYST Pro - Live link", "value": True}],
- value=[],
- style={"margin_bottom": "20px"},
- ),
- html.Button("Export", id="export"),
- dcc.Markdown(id="output_message"),
- ]
-)
diff --git a/geoapps_utils/driver/__init__.py b/geoapps_utils/driver/__init__.py
index f333bfb3..5197aa21 100644
--- a/geoapps_utils/driver/__init__.py
+++ b/geoapps_utils/driver/__init__.py
@@ -1,6 +1,9 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/geoapps_utils/driver/data.py b/geoapps_utils/driver/data.py
index f31bb95e..cb3b75d4 100644
--- a/geoapps_utils/driver/data.py
+++ b/geoapps_utils/driver/data.py
@@ -1,14 +1,19 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
from __future__ import annotations
+from copy import copy
from pathlib import Path
-from typing import Any
+from typing import Any, ClassVar
from geoh5py.ui_json import InputFile
from geoh5py.workspace import Workspace
@@ -29,21 +34,22 @@ class BaseData(BaseModel):
:param workspace_geoh5: Current workspace, where results will be exported.
"""
- model_config = ConfigDict(arbitrary_types_allowed=True)
+ model_config = ConfigDict(frozen=True, arbitrary_types_allowed=True)
- _name: str = "base"
+ name: ClassVar[str] = "base"
+ default_ui_json: ClassVar[Path | None] = None
+ title: ClassVar[str] = "Base Data"
+ run_command: ClassVar[str] = "geoapps_utils.driver.driver"
- input_file: InputFile | None = None
conda_environment: str | None = None
geoh5: Workspace
monitoring_directory: str | Path | None = None
- run_command: str
- title: str
- workspace_geoh5: Workspace | None = None
+ workspace_geoh5: Path | None = None
+ _input_file: InputFile | None = None
@staticmethod
def collect_input_from_dict(
- base_model: BaseModel, data: dict[str, Any]
+ base_model: type[BaseModel], data: dict[str, Any]
) -> dict[str, dict | Any]:
"""
Recursively replace BaseModel objects with dictionary of 'data' values.
@@ -58,7 +64,8 @@ def collect_input_from_dict(
info.annotation, BaseModel
):
update[field] = BaseData.collect_input_from_dict(
- info.annotation, data # type: ignore
+ info.annotation,
+ data, # type: ignore
)
else:
if field in data:
@@ -80,14 +87,16 @@ def build(cls, input_data: InputFile | dict) -> Self:
if isinstance(input_data, InputFile) and input_data.data is not None:
data = input_data.data.copy()
- data["input_file"] = input_data
if not isinstance(data, dict):
raise TypeError("Input data must be a dictionary or InputFile.")
kwargs = BaseData.collect_input_from_dict(cls, data) # type: ignore
+ out = cls(**kwargs)
+ if isinstance(input_data, InputFile):
+ out._input_file = input_data
- return cls(**kwargs)
+ return out
def _recursive_flatten(self, data: dict[str, Any]) -> dict[str, Any]:
"""
@@ -118,6 +127,41 @@ def flatten(self) -> dict:
return out
@property
- def name(self) -> str:
- """Application name."""
- return self._name
+ def input_file(self) -> InputFile:
+ """Create an InputFile with data matching current parameter state."""
+
+ if self._input_file is None:
+ ifile = self._create_input_file_from_attributes()
+ else:
+ ifile = copy(self._input_file)
+ ifile.validate = False
+
+ return ifile
+
+ def _create_input_file_from_attributes(self) -> InputFile:
+ """
+ Create an InputFile with data matching current parameter state.
+ """
+ # ensure default uijson (PAth )exists or raise an error
+ if self.default_ui_json is None or not self.default_ui_json.exists():
+ raise FileNotFoundError(
+ f"Default uijson file '{self.default_ui_json}' not a valid path."
+ )
+
+ ifile = InputFile.read_ui_json(self.default_ui_json, validate=False)
+
+ attributes = self.flatten()
+
+ ifile.data = {
+ key: attributes.get(key, value) for key, value in ifile.data.items()
+ }
+
+ return ifile
+
+ def write_ui_json(self, path: Path) -> None:
+ """
+ Write the ui.json file for the application.
+
+ :param path: Path to write the ui.json file.
+ """
+ self.input_file.write_ui_json(path.name, str(path.parent))
diff --git a/geoapps_utils/driver/driver.py b/geoapps_utils/driver/driver.py
index fc451023..df5b3992 100644
--- a/geoapps_utils/driver/driver.py
+++ b/geoapps_utils/driver/driver.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -14,27 +17,32 @@
from geoh5py.objects import ObjectBase
from geoh5py.ui_json import InputFile, monitored_directory_copy
+from geoapps_utils.driver.data import BaseData
from geoapps_utils.driver.params import BaseParams
class BaseDriver(ABC):
"""
+ # todo: Get rid of BaseParams to have a more robust DriverClass
+
Base driver class.
+
+ :param params: Application parameters.
"""
- _params_class = BaseParams
+ _params_class: type[BaseData] | type[BaseParams] = BaseParams
_validations: dict | None = None
- def __init__(self, params: BaseParams):
- """
- :param params: Application parameters.
- """
+ def __init__(self, params: BaseParams | BaseData):
self._workspace: Workspace | None = None
self._out_group: str | None = None
- self._params: BaseParams
self.params = params
- if hasattr(self.params, "out_group") and self.params.out_group is None:
+ if (
+ hasattr(self.params, "out_group")
+ and self.params.out_group is None
+ and not issubclass(self._params_class, BaseData)
+ ):
self.params.out_group = self.out_group
@property
@@ -43,14 +51,17 @@ def out_group(self):
return self._out_group
@property
- def params(self) -> BaseParams:
+ def params(self):
"""Application parameters."""
return self._params
@params.setter
- def params(self, val: BaseParams):
- if not isinstance(val, BaseParams):
- raise TypeError("Parameters must be of type BaseParams.")
+ def params(self, val: BaseParams | BaseData):
+ if not isinstance(val, (BaseParams, BaseData)):
+ raise TypeError(
+ "Parameters must be of type BaseParams or BaseData,"
+ f" get {type(val)} instead."
+ )
self._params = val
@property
@@ -98,9 +109,10 @@ def start(cls, filepath: str | Path, driver_class=None):
filepath = Path(filepath).resolve()
ifile = InputFile.read_ui_json(filepath, validations=cls._validations)
- params = driver_class._params_class(ifile)
- print("Initializing application . . .")
- driver = driver_class(params)
+ with ifile.geoh5.open(mode="r+"):
+ params = driver_class._params_class.build(ifile)
+ print("Initializing application . . .")
+ driver = driver_class(params)
print("Running application . . .")
driver.run()
diff --git a/geoapps_utils/driver/params.py b/geoapps_utils/driver/params.py
index a738e0c1..b0fa1770 100644
--- a/geoapps_utils/driver/params.py
+++ b/geoapps_utils/driver/params.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -69,6 +72,7 @@ def __init__(
self._validate: bool = True
self._validations: dict[str, Any] | None = None
self._validation_options: dict | None = None
+ self._version: str | None = None
self._workpath: Path | None = None
self._workspace: str | None = None
self._workspace_geoh5: str | None = None
@@ -80,6 +84,22 @@ def __init__(
self._initialize(**kwargs)
+ @classmethod
+ def build(cls, input_data: InputFile) -> BaseParams:
+ """
+ Build a BaseParams object from an InputFile.
+
+ Mockup of Basedata.build() from driver/data.py
+
+ :param input_data: InputFile to create the parameters from.
+ """
+ if isinstance(input_data, InputFile):
+ return cls(input_file=input_data)
+
+ raise TypeError(
+ f"'input_data' must be an InputFile, get {type(input_data)} instead."
+ )
+
def _initialize(self, **kwargs):
"""
Custom actions to initialize the class and deal with input values.
@@ -142,7 +162,7 @@ def update(self, params_dict: dict[str, Any]):
params_dict = self.input_file.promote(params_dict)
for key, value in params_dict.items():
- if key not in self.ui_json.keys():
+ if not hasattr(self, key):
continue # ignores keys not in default_ui_json
setattr(self, key, value)
@@ -185,7 +205,7 @@ def validation_options(self) -> dict | None:
@validation_options.setter
def validation_options(self, value: dict | None):
- if not isinstance(value, (dict, type(None))):
+ if not isinstance(value, dict | type(None)):
raise UserWarning(
"Input 'validation_options' must a dictionary of options or None."
)
@@ -280,7 +300,9 @@ def free_parameter_dict(self) -> dict:
# "allof" -> ["object", "levels", "type", "distance"]
free_parameter_dict[group] = {}
forms = utils.collect(self.ui_json, "group", group)
- for label, key in zip(forms, self._free_parameter_keys):
+ for label, key in zip(
+ forms, self._free_parameter_keys, strict=False
+ ):
if key not in label.lower():
raise ValueError(
f"Malformed input refinement group {group}. "
@@ -309,9 +331,9 @@ def validations(self) -> dict[str, Any] | None:
@validations.setter
def validations(self, validations: dict[str, Any]):
- assert isinstance(
- validations, dict
- ), "Input value must be a dictionary of validations."
+ assert isinstance(validations, dict), (
+ "Input value must be a dictionary of validations."
+ )
self._validations = validations
@property
@@ -329,7 +351,7 @@ def geoh5(self, val):
self.setter_validator(
"geoh5",
val,
- fun=lambda x: Workspace(x) if isinstance(val, (str, Path)) else x,
+ fun=lambda x: Workspace(x) if isinstance(val, str | Path) else x,
)
@property
@@ -407,7 +429,7 @@ def input_file(self) -> InputFile | None:
@input_file.setter
def input_file(self, ifile: InputFile | None):
- if not isinstance(ifile, (type(None), InputFile)):
+ if not isinstance(ifile, type(None) | InputFile):
raise TypeError(
f"Value for 'input_file' must be {InputFile} or None. "
f"Provided {ifile} of type{type(ifile)}"
@@ -419,6 +441,17 @@ def input_file(self, ifile: InputFile | None):
self._input_file = ifile
+ @property
+ def version(self):
+ """
+ Application version.
+ """
+ return self._version
+
+ @version.setter
+ def version(self, val):
+ self.setter_validator("version", val)
+
def _uuid_promoter(self, uid: str | UUID) -> str | UUID | Entity:
"""
Promote a string to a UUID or entity if possible.
@@ -454,9 +487,10 @@ def setter_validator(self, key: str, value, fun=lambda x: x):
self.input_file is not None
and hasattr(self.input_file, "data")
and self.input_file.data is not None
+ and key in self.input_file.data
+ and value != self.input_file.data[key]
):
- if value != self.input_file.data[key]:
- self.input_file.set_data_value(key, value)
+ self.input_file.set_data_value(key, value)
setattr(self, f"_{key}", value)
diff --git a/geoapps_utils/formatters.py b/geoapps_utils/formatters.py
deleted file mode 100644
index b203c750..00000000
--- a/geoapps_utils/formatters.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
-from __future__ import annotations
-
-
-def string_name(value: str, characters: str = ".") -> str:
- """
- Find and replace characters in a string with underscores '_'.
-
- :param value: String to be validated
- :param characters: Characters to be replaced
-
- :return value: Re-formatted string
- """
- for char in characters:
- value = value.replace(char, "_")
- return value
diff --git a/geoapps_utils/importing.py b/geoapps_utils/importing.py
deleted file mode 100644
index d3ce82b1..00000000
--- a/geoapps_utils/importing.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
-from __future__ import annotations
-
-import warnings
-from contextlib import contextmanager
-from pathlib import Path
-
-
-@contextmanager
-def warn_module_not_found():
- """
- Context manager to suppress ModuleNotFoundError exceptions, and warn instead.
-
- After the exception is suppressed, execution proceeds with the next
- statement following the with statement.
-
- with warn_module_not_found():
- from ipywidgets import Widget
- # Execution still resumes here if ipywidget is not found
- """
- try:
- yield
- except ModuleNotFoundError as error:
- module_name = error.name
- err = (
- f"Module '{module_name}' is missing from the environment. "
- f"Consider installing with: 'conda install -c conda-forge {module_name}'"
- )
- warnings.warn(err)
-
-
-def assets_path(file: str) -> Path:
- """
- Return the path to the assets folder.
-
- :param file: Pathname of file from which the app was loaded.
- """
-
- parent = Path(file).parent
- folder_name = f"{parent.name}-assets"
- assets_folder = parent.parent / folder_name
- if not assets_folder.is_dir():
- raise RuntimeError(f"Assets folder not found: {assets_folder}")
-
- return assets_folder
diff --git a/geoapps_utils/numerical.py b/geoapps_utils/numerical.py
deleted file mode 100644
index 9a9200b0..00000000
--- a/geoapps_utils/numerical.py
+++ /dev/null
@@ -1,318 +0,0 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
-from __future__ import annotations
-
-from typing import Optional
-
-import numpy as np
-from pydantic import BaseModel
-from scipy.spatial import Delaunay, cKDTree
-
-
-class DetectionParameters(BaseModel):
- """
- Detection parameters expected by the ui.json file format.
-
- :param azimuth: Azimuth of the path.
- :param azimuth_tol: Tolerance for the azimuth of the path.
- :param damping: Damping factor between [0, 1] for the path roughness.
- :param min_edges: Minimum number of points in a curve.
- :param max_distance: Maximum distance between points in a curve.
- """
-
- azimuth: Optional[float] = None
- azimuth_tol: Optional[float] = None
- damping: float = 0
- min_edges: int = 1
- max_distance: Optional[float] = None
-
-
-def find_curves(
- vertices: np.ndarray,
- parts: np.ndarray,
- detection_params: DetectionParameters = DetectionParameters(),
-) -> list[list[list[float]]]:
- """
- Find curves in a set of points.
-
- :param vertices: Vertices for points.
- :param parts: Identifier for points belong to common parts.
- :param detection_params: Detection parameters expected for the parts connection.
-
- :return: List of curves.
- """
- tri = Delaunay(vertices, qhull_options="QJ")
- if tri.simplices is None:
- return []
-
- simplices: np.ndarray = tri.simplices
-
- edges = np.vstack(
- (
- simplices[:, :2],
- simplices[:, 1:],
- simplices[:, ::2],
- )
- )
- edges = np.sort(edges, axis=1)
- edges = np.unique(edges, axis=0)
- distances = np.linalg.norm(vertices[edges[:, 0]] - vertices[edges[:, 1]], axis=1)
- distance_sort = np.argsort(distances)
- edges, distances = edges[distance_sort, :], distances[distance_sort]
-
- if detection_params.max_distance is not None:
- edges = edges[distances <= detection_params.max_distance, :]
-
- # Reject edges with same vertices id
- edge_parts = parts[edges]
- edges = edges[edge_parts[:, 0] != edge_parts[:, 1]]
-
- if (
- detection_params.azimuth is not None
- and detection_params.azimuth_tol is not None
- ):
- ind = filter_segments_orientation(
- vertices, edges, detection_params.azimuth, detection_params.azimuth_tol
- )
- edges = edges[ind]
-
- # Walk edges until no more edges can be added
- mask = np.ones(vertices.shape[0], dtype=bool)
- out_curves = []
-
- for ind in range(edges.shape[0]):
- if not np.any(mask[edges[ind]]):
- continue
-
- mask[edges[ind]] = False
- path = [edges[ind]]
- path, mask = walk_edges(
- path, edges[ind], edges, vertices, detection_params.damping, mask=mask
- )
- path, mask = walk_edges(
- path, edges[ind][::-1], edges, vertices, detection_params.damping, mask=mask
- )
- if len(path) < detection_params.min_edges:
- continue
-
- out_curves.append(path)
-
- return out_curves
-
-
-def filter_segments_orientation(
- vertices: np.ndarray, edges: np.ndarray, azimuth: float, azimuth_tol: float
-):
- """
- Filter segments orientation.
-
- :param vertices: Vertices for points.
- :param edges: Edges for points.
- :param azimuth: Filter angle (degree) on segments orientation, clockwise from North.
- :param azimuth_tol: Tolerance (degree) on the azimuth.
-
- :return: Array of boolean.
- """
- vectors = vertices[edges[:, 1], :] - vertices[edges[:, 0], :]
- test_vector = np.array([np.sin(np.deg2rad(azimuth)), np.cos(np.deg2rad(azimuth))])
-
- angles = np.arccos(np.dot(vectors, test_vector) / np.linalg.norm(vectors, axis=1))
-
- return np.logical_or(
- np.abs(angles) < np.deg2rad(azimuth_tol),
- np.abs(angles - np.pi) < np.deg2rad(azimuth_tol),
- )
-
-
-def running_mean(
- values: np.ndarray, width: int = 1, method: str = "centered"
-) -> np.ndarray:
- """
- Compute a running mean of an array over a defined width.
-
- :param values: Input values to compute the running mean over
- :param width: Number of neighboring values to be used
- :param method: Choice between 'forward', 'backward' and ['centered'] averaging.
-
- :return mean_values: Averaged array values of shape(values, )
- """
- # Averaging vector (1/N)
- weights = np.r_[np.zeros(width + 1), np.ones_like(values)]
- sum_weights = np.cumsum(weights)
-
- mean = np.zeros_like(values)
-
- # Forward averaging
- if method in ["centered", "forward"]:
- padded = np.r_[np.zeros(width + 1), values]
- cumsum = np.cumsum(padded)
- mean += (cumsum[(width + 1) :] - cumsum[: (-width - 1)]) / (
- sum_weights[(width + 1) :] - sum_weights[: (-width - 1)]
- )
-
- # Backward averaging
- if method in ["centered", "backward"]:
- padded = np.r_[np.zeros(width + 1), values[::-1]]
- cumsum = np.cumsum(padded)
- mean += (
- (cumsum[(width + 1) :] - cumsum[: (-width - 1)])
- / (sum_weights[(width + 1) :] - sum_weights[: (-width - 1)])
- )[::-1]
-
- if method == "centered":
- mean /= 2.0
-
- return mean
-
-
-def traveling_salesman(locs: np.ndarray) -> np.ndarray:
- """
- Finds the order of a roughly linear point set.
- Uses the point furthest from the mean location as the starting point.
- :param: locs: Cartesian coordinates of points lying either roughly within a plane or a line.
- :param: return_index: Return the indices of the end points in the original array.
- """
- mean = locs[:, :2].mean(axis=0)
- current = np.argmax(np.linalg.norm(locs[:, :2] - mean, axis=1))
- order = [current]
- mask = np.ones(locs.shape[0], dtype=bool)
- mask[current] = False
-
- for _ in range(locs.shape[0] - 1):
- remaining = np.where(mask)[0]
- ind = np.argmin(np.linalg.norm(locs[current, :2] - locs[remaining, :2], axis=1))
- current = remaining[ind]
- order.append(current)
- mask[current] = False
-
- return np.asarray(order)
-
-
-def walk_edges( # pylint: disable=too-many-arguments
- path: list,
- incoming: list,
- edges: np.ndarray,
- vertices: np.ndarray,
- damping: float = 0.0,
- mask: np.ndarray | None = None,
-) -> tuple[list, np.ndarray]:
- """
- Find all edges connected to a point.
-
- :param path: Current list of edges forming a path.
- :param incoming: Incoming edge.
- :param edges: All edges.
- :param vertices: Direction of the edges.
- :param damping: Damping factor between [0, 1] for the path roughness.
- :param mask: Mask for nodes that have already been visited.
-
- :return: Edges connected to point.
- """
- if mask is None:
- mask = np.ones(edges.max() + 1, dtype=bool)
- mask[np.hstack(path).flatten()] = False
-
- if damping < 0 or damping > 1:
- raise ValueError("Damping must be between 0 and 1.")
-
- neighbours = np.where(
- np.any(edges == incoming[1], axis=1) & np.any(mask[edges], axis=1)
- )[0]
-
- if len(neighbours) == 0:
- return path, mask
-
- # Outgoing candidate nodes
- candidates = edges[neighbours][edges[neighbours] != incoming[1]]
-
- vectors = vertices[candidates, :] - vertices[incoming[1], :]
- in_vec = np.diff(vertices[incoming, :], axis=0).flatten()
- dot = np.dot(in_vec, vectors.T)
-
- if not np.any(dot > 0):
- return path, mask
-
- # Remove backward vectors
- vectors = vectors[dot > 0, :]
- candidates = candidates[dot > 0]
- dot = dot[dot > 0]
-
- # Compute the angle between the incoming vector and the outgoing vectors
- vec_lengths = np.linalg.norm(vectors, axis=1)
- angle = np.arccos(dot / (np.linalg.norm(in_vec) * vec_lengths) - 1e-10)
-
- # Minimize the torque
- sub_ind = np.argmin(angle ** (1 - damping) * vec_lengths)
- outgoing = [incoming[1], candidates[sub_ind]]
- mask[candidates[sub_ind]] = False
- path.append(outgoing)
-
- # Continue walking
- path, mask = walk_edges(path, outgoing, edges, vertices, damping, mask=mask)
-
- return path, mask
-
-
-def weighted_average( # pylint: disable=too-many-arguments, too-many-locals
- xyz_in: np.ndarray,
- xyz_out: np.ndarray,
- values: list,
- max_distance: float = np.inf,
- n: int = 8,
- return_indices: bool = False,
- threshold: float = 1e-1,
-) -> list | tuple[list, np.ndarray]:
- """
- Perform a inverse distance weighted averaging on a list of values.
-
- :param xyz_in: shape(*, 3) Input coordinate locations.
- :param xyz_out: shape(*, 3) Output coordinate locations.
- :param values: Values to be averaged from the input to output locations.
- :param max_distance: Maximum averaging distance beyond which values do not
- contribute to the average.
- :param n: Number of nearest neighbours used in the weighted average.
- :param return_indices: If True, return the indices of the nearest neighbours
- from the input locations.
- :param threshold: Small value added to the radial distance to avoid zero division.
- The value can also be used to smooth the interpolation.
-
- :return avg_values: List of values averaged to the output coordinates
- """
- n = np.min([xyz_in.shape[0], n])
- assert isinstance(values, list), "Input 'values' must be a list of numpy.ndarrays"
-
- assert all(
- vals.shape[0] == xyz_in.shape[0] for vals in values
- ), "Input 'values' must have the same shape as input 'locations'"
-
- avg_values = []
- for value in values:
- sub = ~np.isnan(value)
- tree = cKDTree(xyz_in[sub, :])
- rad, ind = tree.query(xyz_out, n)
- ind = np.c_[ind]
- rad = np.c_[rad]
- rad[rad > max_distance] = np.nan
-
- values_interp = np.zeros(xyz_out.shape[0])
- weight = np.zeros(xyz_out.shape[0])
-
- for i in range(n):
- v = value[sub][ind[:, i]] / (rad[:, i] + threshold)
- values_interp = np.nansum([values_interp, v], axis=0)
- w = 1.0 / (rad[:, i] + threshold)
- weight = np.nansum([weight, w], axis=0)
-
- values_interp[weight > 0] = values_interp[weight > 0] / weight[weight > 0]
- values_interp[weight == 0] = np.nan
- avg_values += [values_interp]
-
- if return_indices:
- return avg_values, ind
-
- return avg_values
diff --git a/geoapps_utils/utils/__init__.py b/geoapps_utils/utils/__init__.py
new file mode 100644
index 00000000..a23cf840
--- /dev/null
+++ b/geoapps_utils/utils/__init__.py
@@ -0,0 +1,9 @@
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2024-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/geoapps_utils/conversions.py b/geoapps_utils/utils/conversions.py
similarity index 55%
rename from geoapps_utils/conversions.py
rename to geoapps_utils/utils/conversions.py
index 4194a7d5..6225eb7e 100644
--- a/geoapps_utils/conversions.py
+++ b/geoapps_utils/utils/conversions.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
diff --git a/geoapps_utils/utils/formatters.py b/geoapps_utils/utils/formatters.py
new file mode 100644
index 00000000..a0ae6afc
--- /dev/null
+++ b/geoapps_utils/utils/formatters.py
@@ -0,0 +1,25 @@
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+from __future__ import annotations
+
+
+def string_name(value: str, characters: str = ".") -> str:
+ """
+ Find and replace characters in a string with underscores '_'.
+
+ :param value: String to be validated
+ :param characters: Characters to be replaced
+
+ :return value: Re-formatted string
+ """
+ for char in characters:
+ value = value.replace(char, "_")
+ return value
diff --git a/geoapps_utils/utils/importing.py b/geoapps_utils/utils/importing.py
new file mode 100644
index 00000000..b08d10bc
--- /dev/null
+++ b/geoapps_utils/utils/importing.py
@@ -0,0 +1,56 @@
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+from __future__ import annotations
+
+import warnings
+from contextlib import contextmanager
+from pathlib import Path
+
+
+@contextmanager
+def warn_module_not_found():
+ """
+ Context manager to suppress ModuleNotFoundError exceptions, and warn instead.
+
+ After the exception is suppressed, execution proceeds with the next
+ statement following the with statement.
+
+ with warn_module_not_found():
+ from ipywidgets import Widget
+ # Execution still resumes here if ipywidget is not found
+ """
+ try:
+ yield
+ except ModuleNotFoundError as error:
+ module_name = error.name
+ err = (
+ f"Module '{module_name}' is missing from the environment. "
+ f"Consider installing with: 'conda install -c conda-forge {module_name}'"
+ )
+ warnings.warn(err)
+
+
+def assets_path(module_path: Path | str) -> Path:
+ """
+ Return the path to the assets folder, for the given module.
+
+ :param module_path: Path of the module expected to have an associated asset folder.
+ """
+
+ source = Path(module_path).resolve()
+ if source.is_file():
+ source = source.parent
+ assets_folder_name = f"{source.name}-assets"
+ assets_folder = source.parent / assets_folder_name
+ if not assets_folder.is_dir():
+ raise RuntimeError(f"Assets folder not found: {assets_folder}")
+
+ return assets_folder
diff --git a/geoapps_utils/iterables.py b/geoapps_utils/utils/iterables.py
similarity index 79%
rename from geoapps_utils/iterables.py
rename to geoapps_utils/utils/iterables.py
index bad9ff3b..cb33a242 100644
--- a/geoapps_utils/iterables.py
+++ b/geoapps_utils/utils/iterables.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -14,7 +17,7 @@
from geoh5py.shared import Entity
from geoh5py.workspace import Workspace
-from geoapps_utils.conversions import string_to_numeric
+from geoapps_utils.utils.conversions import string_to_numeric
def find_value(labels: list, keywords: list, default=None) -> list:
@@ -96,7 +99,7 @@ def sorted_children_dict(
if isinstance(entity_obj, Entity):
children_dict = {}
for child in entity_obj.children: # type: ignore
- if not isinstance(child, (IntegerData, FloatData)):
+ if not isinstance(child, IntegerData | FloatData):
continue
children_dict[child.name] = child.uid
diff --git a/geoapps_utils/locations.py b/geoapps_utils/utils/locations.py
similarity index 58%
rename from geoapps_utils/locations.py
rename to geoapps_utils/utils/locations.py
index 59e0ff52..a8a9d958 100644
--- a/geoapps_utils/locations.py
+++ b/geoapps_utils/utils/locations.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -14,6 +17,37 @@
from geoh5py.data import Data
from geoh5py.objects import Grid2D, Points
from geoh5py.objects.grid_object import GridObject
+from scipy.interpolate import LinearNDInterpolator
+from scipy.spatial import Delaunay, cKDTree
+
+
+def mask_under_horizon(locations: np.ndarray, horizon: np.ndarray) -> np.ndarray:
+ """
+ Mask locations under a horizon.
+
+ :param locations: A 3D distribution of x, y, z points data as an array
+ of shape(*, 3).
+ :param horizon: A quasi-2D distribution of x, y, z points data as an
+ array of shape(*, 3) that forms a rough plane that intersects the
+ provided locations 3D point cloud.
+
+ :returns: A boolean array of shape(*, 1) where True values represent points
+ in the locations array that lie below the triangulated horizon.
+ """
+
+ delaunay_2d = Delaunay(horizon[:, :-1])
+ z_interpolate = LinearNDInterpolator(delaunay_2d, horizon[:, -1])
+ z_locations = z_interpolate(locations[:, :2])
+
+ outside = np.isnan(z_locations)
+ if any(outside):
+ tree = cKDTree(horizon)
+ _, nearest = tree.query(locations[outside, :])
+ z_locations[outside] = horizon[nearest, -1]
+
+ below_horizon = locations[:, -1] < z_locations
+
+ return below_horizon
def get_locations(workspace: Workspace, entity: UUID | Points | GridObject | Data):
@@ -35,7 +69,7 @@ def get_locations(workspace: Workspace, entity: UUID | Points | GridObject | Dat
else:
entity_obj = entity
- if not isinstance(entity_obj, (Points, GridObject, Data)):
+ if not isinstance(entity_obj, Points | GridObject | Data):
raise TypeError(
f"Entity must be of type Points, GridObject or Data, {type(entity_obj)} provided."
)
diff --git a/geoapps_utils/utils/numerical.py b/geoapps_utils/utils/numerical.py
new file mode 100644
index 00000000..137207a8
--- /dev/null
+++ b/geoapps_utils/utils/numerical.py
@@ -0,0 +1,139 @@
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+from __future__ import annotations
+
+import numpy as np
+from scipy.spatial import cKDTree
+
+
+def running_mean(
+ values: np.ndarray, width: int = 1, method: str = "centered"
+) -> np.ndarray:
+ """
+ Compute a running mean of an array over a defined width.
+
+ :param values: Input values to compute the running mean over
+ :param width: Number of neighboring values to be used
+ :param method: Choice between 'forward', 'backward' and ['centered'] averaging.
+
+ :return mean_values: Averaged array values of shape(values, )
+ """
+ # Averaging vector (1/N)
+ weights = np.r_[np.zeros(width + 1), np.ones_like(values)]
+ sum_weights = np.cumsum(weights)
+
+ mean = np.zeros_like(values)
+
+ # Forward averaging
+ if method in ["centered", "forward"]:
+ padded = np.r_[np.zeros(width + 1), values]
+ cumsum = np.cumsum(padded)
+ mean += (cumsum[(width + 1) :] - cumsum[: (-width - 1)]) / (
+ sum_weights[(width + 1) :] - sum_weights[: (-width - 1)]
+ )
+
+ # Backward averaging
+ if method in ["centered", "backward"]:
+ padded = np.r_[np.zeros(width + 1), values[::-1]]
+ cumsum = np.cumsum(padded)
+ mean += (
+ (cumsum[(width + 1) :] - cumsum[: (-width - 1)])
+ / (sum_weights[(width + 1) :] - sum_weights[: (-width - 1)])
+ )[::-1]
+
+ if method == "centered":
+ mean /= 2.0
+
+ return mean
+
+
+def traveling_salesman(locs: np.ndarray) -> np.ndarray:
+ """
+ Finds the order of a roughly linear point set.
+ Uses the point furthest from the mean location as the starting point.
+ :param: locs: Cartesian coordinates of points lying either roughly within a plane or a line.
+ :param: return_index: Return the indices of the end points in the original array.
+ """
+ mean = locs[:, :2].mean(axis=0)
+ current = np.argmax(np.linalg.norm(locs[:, :2] - mean, axis=1))
+ order = [current]
+ mask = np.ones(locs.shape[0], dtype=bool)
+ mask[current] = False
+
+ for _ in range(locs.shape[0] - 1):
+ remaining = np.where(mask)[0]
+ ind = np.argmin(np.linalg.norm(locs[current, :2] - locs[remaining, :2], axis=1))
+ current = remaining[ind]
+ order.append(current)
+ mask[current] = False
+
+ return np.asarray(order)
+
+
+def weighted_average( # pylint: disable=too-many-locals
+ xyz_in: np.ndarray,
+ xyz_out: np.ndarray,
+ values: list,
+ *,
+ max_distance: float = np.inf,
+ n: int = 8,
+ return_indices: bool = False,
+ threshold: float = 1e-1,
+) -> list | tuple[list, np.ndarray]:
+ """
+ Perform a inverse distance weighted averaging on a list of values.
+
+ :param xyz_in: shape(*, 3) Input coordinate locations.
+ :param xyz_out: shape(*, 3) Output coordinate locations.
+ :param values: Values to be averaged from the input to output locations.
+ :param max_distance: Maximum averaging distance beyond which values do not
+ contribute to the average.
+ :param n: Number of nearest neighbours used in the weighted average.
+ :param return_indices: If True, return the indices of the nearest neighbours
+ from the input locations.
+ :param threshold: Small value added to the radial distance to avoid zero division.
+ The value can also be used to smooth the interpolation.
+
+ :return avg_values: List of values averaged to the output coordinates
+ """
+ n = np.min([xyz_in.shape[0], n])
+ assert isinstance(values, list), "Input 'values' must be a list of numpy.ndarrays"
+
+ assert all(vals.shape[0] == xyz_in.shape[0] for vals in values), (
+ "Input 'values' must have the same shape as input 'locations'"
+ )
+
+ avg_values = []
+ for value in values:
+ sub = ~np.isnan(value)
+ tree = cKDTree(xyz_in[sub, :])
+ rad, ind = tree.query(xyz_out, n)
+ ind = np.c_[ind]
+ rad = np.c_[rad]
+ rad[rad > max_distance] = np.nan
+
+ values_interp = np.zeros(xyz_out.shape[0])
+ weight = np.zeros(xyz_out.shape[0])
+
+ for i in range(n):
+ v = value[sub][ind[:, i]] / (rad[:, i] + threshold)
+ values_interp = np.nansum([values_interp, v], axis=0)
+ w = 1.0 / (rad[:, i] + threshold)
+ weight = np.nansum([weight, w], axis=0)
+
+ values_interp[weight > 0] = values_interp[weight > 0] / weight[weight > 0]
+ values_interp[weight == 0] = np.nan
+ avg_values += [values_interp]
+
+ if return_indices:
+ return avg_values, ind
+
+ return avg_values
diff --git a/geoapps_utils/plotting.py b/geoapps_utils/utils/plotting.py
similarity index 67%
rename from geoapps_utils/plotting.py
rename to geoapps_utils/utils/plotting.py
index 13d31b76..5957f8aa 100644
--- a/geoapps_utils/plotting.py
+++ b/geoapps_utils/utils/plotting.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
import numpy as np
diff --git a/geoapps_utils/transformations.py b/geoapps_utils/utils/transformations.py
similarity index 67%
rename from geoapps_utils/transformations.py
rename to geoapps_utils/utils/transformations.py
index d71512d6..02859ea3 100644
--- a/geoapps_utils/transformations.py
+++ b/geoapps_utils/utils/transformations.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
import numpy as np
diff --git a/geoapps_utils/workspace.py b/geoapps_utils/utils/workspace.py
similarity index 64%
rename from geoapps_utils/workspace.py
rename to geoapps_utils/utils/workspace.py
index 28e955a8..27b9a28e 100644
--- a/geoapps_utils/workspace.py
+++ b/geoapps_utils/utils/workspace.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -32,7 +35,7 @@ def get_output_workspace(
new_live_link = False
time.sleep(1)
# Check if GA digested the file already
- if (isinstance(workspace.h5file, (Path, str))) and not Path(
+ if (isinstance(workspace.h5file, Path | str)) and not Path(
workspace.h5file
).is_file():
workpath = Path(workpath) / ".working"
diff --git a/meta.yaml b/meta.yaml
new file mode 100644
index 00000000..1551b6b7
--- /dev/null
+++ b/meta.yaml
@@ -0,0 +1,57 @@
+{% set name = "geoapps-utils" %}
+{% set version = "0.4.0" %}
+
+package:
+ name: {{ name|lower }}
+ version: {{ version }}
+
+source:
+ # url: https://github.com/MiraGeoscience/{{ name }}/archive/v{{ version }}.tar.gz
+ # sha256: 4671fc21594f465fe3975ffba037a4a053e63d7038aca6fbcf5da0913532fcc2
+ path: ../{{ name}}
+
+build:
+ noarch: python
+ script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation
+ number: 0
+
+requirements:
+ host:
+ - python >=3.10.0,<4.0.0
+ - poetry-core >=1.0.0
+ - setuptools
+ - pip
+ run:
+ - python >=3.10.0,<3.11
+ - numpy >=1.26.0,<1.27.0
+ - pydantic >=2.5.2,<2.6.0
+ - scipy >=1.14.0,<1.15.0
+ - geoh5py >=0.10.0b1,<0.11.0a.dev
+ - h5py >=3.2.1,<4.0.0
+ - pillow >=10.3.0,<10.4.0
+
+test:
+ source_files:
+ - tests/
+ imports:
+ - geoapps_utils
+ commands:
+ - pip check
+ requires:
+ - pip
+
+about:
+ home: https://www.mirageoscience.com/mining-industry-software/python-integration/
+ summary: 'Provides utility functions used by geoapps.'
+ description: |
+ The geoapps-utils package provides utility functions used by
+ (geoapps).
+ license: MIT
+ license_file:
+ - LICENSE
+ dev_url: https://github.com/MiraGeoscience/geoapps-utils
+
+extra:
+ recipe-maintainers:
+ - SophieCurinier
+ - sebhmg
diff --git a/py-3.10.conda-lock.yml b/py-3.10.conda-lock.yml
index aac3ddee..42c1faa4 100644
--- a/py-3.10.conda-lock.yml
+++ b/py-3.10.conda-lock.yml
@@ -8,8 +8,6 @@
# conda-lock install -n YOURENV py-3.10.conda-lock.yml
# This lock contains optional development dependencies. Include them in the installed environment with:
# conda-lock install --dev-dependencies -n YOURENV py-3.10.conda-lock.yml
-# This lock contains optional dependency categories dash. Include them in the installed environment with:
-# conda-lock install -e dash -n YOURENV py-3.10.conda-lock.yml
# To update a single package to the latest version compatible with the version constraints in the source:
# conda-lock lock --lockfile py-3.10.conda-lock.yml --update PACKAGE
# To re-solve the entire environment, e.g. after changing a version constraint in the source file:
@@ -17,11 +15,13 @@
version: 1
metadata:
content_hash:
- win-64: 47faa0574b6f22dceaba2976bef3caeceea171d9b61eb92504d570632ea06038
- linux-64: 9b37e5a142165550fe11aeb05fc1ba8b0a1ac200cb3bd001ca2b405fad6056f5
+ win-64: ee039f6fa2d6dd5397547b7760e47261b11d58e5c0f85713ef59c027ce302715
+ linux-64: 0cc845716fe4c3a0a6c805f68b1ba545413cab38b24184e2bba8beb58dcfee5a
channels:
- url: conda-forge
used_env_vars: []
+ - url: nodefaults
+ used_env_vars: []
platforms:
- win-64
- linux-64
@@ -53,29 +53,30 @@ package:
sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22
category: main
optional: false
-- name: alsa-lib
- version: 1.2.12
+- name: _openmp_mutex
+ version: '4.5'
manager: conda
- platform: linux-64
+ platform: win-64
dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda
+ libgomp: '>=7.5.0'
+ libwinpthread: '>=12.0.0.r2.ggc561118da'
+ url: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
hash:
- md5: 7ed427f0871fd41cb1d9c17727c17589
- sha256: 64b95dd06d7ca6b54cea03b02da8f1657b9899ca376d0ca7b47823064f55fb16
- category: dash
- optional: true
+ md5: 37e16618af5c4851a3f3d66dd0e11141
+ sha256: 1a62cd1f215fe0902e7004089693a78347a30ad687781dfda2289cab000e652d
+ category: main
+ optional: false
- name: annotated-types
version: 0.7.0
manager: conda
platform: linux-64
dependencies:
- python: '>=3.7'
+ python: '>=3.9'
typing-extensions: '>=4.0.0'
- url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
hash:
- md5: 7e9f4612544c8edbfd6afad17f1bd045
- sha256: 668f0825b6c18e4012ca24a0070562b6ec801ebc7008228a428eb52b4038873f
+ md5: 2934f256a8acfe48f6ebb4fce6cde29c
+ sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48
category: main
optional: false
- name: annotated-types
@@ -83,119 +84,53 @@ package:
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
+ python: '>=3.9'
typing-extensions: '>=4.0.0'
- url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
hash:
- md5: 7e9f4612544c8edbfd6afad17f1bd045
- sha256: 668f0825b6c18e4012ca24a0070562b6ec801ebc7008228a428eb52b4038873f
+ md5: 2934f256a8acfe48f6ebb4fce6cde29c
+ sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48
category: main
optional: false
- name: astroid
- version: 3.2.2
+ version: 3.3.8
manager: conda
platform: linux-64
dependencies:
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
- typing-extensions: '>=4.0.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.2.2-py310hff52083_0.conda
+ typing_extensions: '>=4.0.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.3.8-py310hff52083_0.conda
hash:
- md5: 05ed062ee2ba7319981fce0434193d19
- sha256: 02d9b997194f546b1df7046ea624dbfc56e7f0e7ba83dccfb7ead879b907f37a
+ md5: 9afaff1d0f354d98cff43bc80666c428
+ sha256: 02c0e9c683002c05958b21427c51e7d0c6b9c212b518a04793ed62d0c7bc31f9
category: dev
optional: true
- name: astroid
- version: 3.2.2
+ version: 3.3.8
manager: conda
platform: win-64
dependencies:
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
- typing-extensions: '>=4.0.0'
- url: https://conda.anaconda.org/conda-forge/win-64/astroid-3.2.2-py310h5588dad_0.conda
+ typing_extensions: '>=4.0.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/astroid-3.3.8-py310h5588dad_0.conda
hash:
- md5: 8fb4a9ea5dbbc3108bc70cffa32a3b7f
- sha256: 5cbec3881ca2913a01bcde466cc29170ab83362d35985fdf1ab2364bc2bd0794
+ md5: c54bfa9d47e3a08b15ea6d364890a352
+ sha256: 7efa33c85f77a7c9fdc1b1e0a0352503d3c1b59f3539ee7188d00d4ed427e25d
category: dev
optional: true
-- name: attr
- version: 2.5.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2
- hash:
- md5: d9c69a24ad678ffce24c6543a0176b00
- sha256: 82c13b1772c21fc4a17441734de471d3aabf82b61db9b11f4a1bd04a9c4ac324
- category: dash
- optional: true
-- name: blinker
- version: 1.8.2
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/blinker-1.8.2-pyhd8ed1ab_0.conda
- hash:
- md5: cf85c002319c15e9721934104aaa1137
- sha256: 8ca3cd8f78d0607df28c9f76adb9800348f8f2dc8aa49d188a995a0acdc4477d
- category: dash
- optional: true
-- name: blinker
- version: 1.8.2
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/blinker-1.8.2-pyhd8ed1ab_0.conda
- hash:
- md5: cf85c002319c15e9721934104aaa1137
- sha256: 8ca3cd8f78d0607df28c9f76adb9800348f8f2dc8aa49d188a995a0acdc4477d
- category: dash
- optional: true
-- name: brotli-python
- version: 1.1.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda
- hash:
- md5: 1f95722c94f00b69af69a066c7433714
- sha256: e22268d81905338570786921b3def88e55f9ed6d0ccdd17d9fbae31a02fbef69
- category: main
- optional: false
-- name: brotli-python
- version: 1.1.0
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py310h00ffb61_1.conda
- hash:
- md5: 42bfbc1d41cbe2696a3c9d8b0342324f
- sha256: 8de77cf62a653dd6ffe19927b92c421f5fa73c078d7799181f5211a1bac2883b
- category: main
- optional: false
- name: bzip2
version: 1.0.8
manager: conda
platform: linux-64
dependencies:
+ __glibc: '>=2.17,<3.0.a0'
libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
hash:
- md5: 69b8b6202a07720f448be700e300ccf4
- sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8
+ md5: 62ee74e96c5ebb0af99386de58cf9553
+ sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d
category: main
optional: false
- name: bzip2
@@ -206,44 +141,45 @@ package:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
hash:
- md5: 26eb8ca6ea332b675e11704cce84a3be
- sha256: ae5f47a5c86fd6db822931255dcf017eb12f60c77f07dc782ccb477f7808aab2
+ md5: 276e7ffe9ffe39688abc665ef0f45596
+ sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b
category: main
optional: false
- name: c-ares
- version: 1.28.1
+ version: 1.34.4
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda
hash:
- md5: dcde58ff9a1f30b0037a2315d1846d1f
- sha256: cb25063f3342149c7924b21544109696197a9d774f1407567477d4f3026bf38a
+ md5: e2775acf57efd5af15b8e3d1d74d72d3
+ sha256: d4f28d87b6339b94f74762c0076e29c8ef8ddfff51a564a92da2843573c18320
category: main
optional: false
- name: ca-certificates
- version: 2024.6.2
+ version: 2024.12.14
manager: conda
platform: linux-64
dependencies: {}
- url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.6.2-hbcca054_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda
hash:
- md5: 847c3c2905cc467cea52c24f9cfa8080
- sha256: 979af0932b2a5a26112044891a2d79e402e5ae8166f50fa48b8ebae47c0a2d65
+ md5: 720523eb0d6a9b0f6120c16b2aa4e7de
+ sha256: 1afd7274cbc9a334d6d0bc62fa760acc7afdaceb0b91a8df370ec01fd75dc7dd
category: main
optional: false
- name: ca-certificates
- version: 2024.6.2
+ version: 2024.12.14
manager: conda
platform: win-64
dependencies: {}
- url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.6.2-h56e8100_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda
hash:
- md5: 12a3a2b3a00a21bbb390d4de5ad8dd0f
- sha256: d872d11558ebeaeb87bcf9086e97c075a1a2dfffed2d0e97570cf197ab29e3d8
+ md5: cb2eaeb88549ddb27af533eccf9a45c1
+ sha256: 424d82db36cd26234bc4772426170efd60e888c2aed0099a257a95e131683a5e
category: main
optional: false
- name: cached-property
@@ -294,119 +230,16 @@ package:
sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7
category: main
optional: false
-- name: cairo
- version: 1.18.0
- manager: conda
- platform: linux-64
- dependencies:
- fontconfig: '>=2.14.2,<3.0a0'
- fonts-conda-ecosystem: ''
- freetype: '>=2.12.1,<3.0a0'
- icu: '>=73.2,<74.0a0'
- libgcc-ng: '>=12'
- libglib: '>=2.78.0,<3.0a0'
- libpng: '>=1.6.39,<1.7.0a0'
- libstdcxx-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- pixman: '>=0.42.2,<1.0a0'
- xorg-libice: '>=1.1.1,<2.0a0'
- xorg-libsm: '>=1.2.4,<2.0a0'
- xorg-libx11: '>=1.8.6,<2.0a0'
- xorg-libxext: '>=1.3.4,<2.0a0'
- xorg-libxrender: '>=0.9.11,<0.10.0a0'
- zlib: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda
- hash:
- md5: f907bb958910dc404647326ca80c263e
- sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e
- category: dash
- optional: true
-- name: certifi
- version: 2024.6.2
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.6.2-pyhd8ed1ab_0.conda
- hash:
- md5: 8821ec1c8fcdc9e1d291d7b9f6e9968a
- sha256: f101b8f9155b79d623601214eb719747ffe1c2ad3ff6c4e600f59163bd5f4803
- category: main
- optional: false
-- name: certifi
- version: 2024.6.2
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.6.2-pyhd8ed1ab_0.conda
- hash:
- md5: 8821ec1c8fcdc9e1d291d7b9f6e9968a
- sha256: f101b8f9155b79d623601214eb719747ffe1c2ad3ff6c4e600f59163bd5f4803
- category: main
- optional: false
-- name: charset-normalizer
- version: 3.3.2
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda
- hash:
- md5: 7f4a9e3fcff3f6356ae99244a014da6a
- sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9
- category: main
- optional: false
-- name: charset-normalizer
- version: 3.3.2
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda
- hash:
- md5: 7f4a9e3fcff3f6356ae99244a014da6a
- sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9
- category: main
- optional: false
-- name: click
- version: 8.1.7
- manager: conda
- platform: linux-64
- dependencies:
- __unix: ''
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda
- hash:
- md5: f3ad426304898027fc619827ff428eca
- sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec
- category: dash
- optional: true
-- name: click
- version: 8.1.7
- manager: conda
- platform: win-64
- dependencies:
- colorama: ''
- __win: ''
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda
- hash:
- md5: 3549ecbceb6cd77b91a105511b7d0786
- sha256: 90236b113b9a20041736e80b80ee965167f9aac0468315c55e2bad902d673fb0
- category: dash
- optional: true
- name: colorama
version: 0.4.6
manager: conda
platform: linux-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
hash:
- md5: 3faab06a954c2a04039983f2c4a50d99
- sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698
+ md5: 962b9857ee8e7018c22f2776ffa0b2d7
+ sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
category: dev
optional: true
- name: colorama
@@ -414,30 +247,31 @@ package:
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
hash:
- md5: 3faab06a954c2a04039983f2c4a50d99
- sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698
+ md5: 962b9857ee8e7018c22f2776ffa0b2d7
+ sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
category: dev
optional: true
- name: coverage
- version: 7.5.3
+ version: 7.6.10
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
tomli: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.3-py310hc51659f_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.10-py310h89163eb_0.conda
hash:
- md5: 4be0e55c0f724d339be3d4dc9dfc5752
- sha256: d14fd44ca7f9ae180e6a9a565d39ffe093d0c9eacda6b13c85cb26ec6ef8687e
+ md5: f9bf6ea6ddf8349750f1b455f603b0ae
+ sha256: 41336a050be9faa75b5785af036a756acd95adf2319cf258fe1836e2bf55221b
category: dev
optional: true
- name: coverage
- version: 7.5.3
+ version: 7.6.10
manager: conda
platform: win-64
dependencies:
@@ -447,252 +281,60 @@ package:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.3-py310ha8f682b_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.10-py310h38315fa_0.conda
hash:
- md5: 0609217d7e0efa5d9095fef96081cf1e
- sha256: 1322bb9f73ee730beabcdc10538dcaec2f6015d5c0df8e878de5d7c10ce310ad
+ md5: 17a5805f88d2bce1e213b73201ef1007
+ sha256: 187b0afc6fad0078667b1ade42e02623945c884b70554039cd30c5b92ebf46a6
category: dev
optional: true
-- name: dash
- version: 2.17.1
- manager: conda
- platform: linux-64
- dependencies:
- flask: '>=1.0.4'
- importlib-metadata: ''
- nest-asyncio: ''
- plotly: '>=5.0.0'
- python: '>=3.6'
- requests: ''
- retrying: ''
- setuptools: ''
- typing-extensions: '>=4.1.1'
- werkzeug: ''
- url: https://conda.anaconda.org/conda-forge/noarch/dash-2.17.1-pyhd8ed1ab_0.conda
- hash:
- md5: 5c0e028a64a3d5c16e22baef58c89c0e
- sha256: 5e46fb0c4ddafd665a26d3af4aa5e43f5cdd59ba137773c4f013902a6ca2f051
- category: dash
- optional: true
-- name: dash
- version: 2.17.1
- manager: conda
- platform: win-64
- dependencies:
- requests: ''
- setuptools: ''
- importlib-metadata: ''
- nest-asyncio: ''
- werkzeug: ''
- retrying: ''
- python: '>=3.6'
- plotly: '>=5.0.0'
- typing-extensions: '>=4.1.1'
- flask: '>=1.0.4'
- url: https://conda.anaconda.org/conda-forge/noarch/dash-2.17.1-pyhd8ed1ab_0.conda
- hash:
- md5: 5c0e028a64a3d5c16e22baef58c89c0e
- sha256: 5e46fb0c4ddafd665a26d3af4aa5e43f5cdd59ba137773c4f013902a6ca2f051
- category: dash
- optional: true
-- name: dbus
- version: 1.13.6
- manager: conda
- platform: linux-64
- dependencies:
- expat: '>=2.4.2,<3.0a0'
- libgcc-ng: '>=9.4.0'
- libglib: '>=2.70.2,<3.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2
- hash:
- md5: ecfff944ba3960ecb334b9a2663d708d
- sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5
- category: dash
- optional: true
- name: dill
- version: 0.3.8
+ version: 0.3.9
manager: conda
platform: linux-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.9-pyhd8ed1ab_1.conda
hash:
- md5: 78745f157d56877a2c6e7b386f66f3e2
- sha256: 482b5b566ca559119b504c53df12b08f3962a5ef8e48061d62fd58a47f8f2ec4
+ md5: 5e11310fca410e9f31381157079dee55
+ sha256: 499be2f8e4397a46249e8e500535795704af27e56360ae0c964904140b41454a
category: dev
optional: true
- name: dill
- version: 0.3.8
+ version: 0.3.9
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.9-pyhd8ed1ab_1.conda
hash:
- md5: 78745f157d56877a2c6e7b386f66f3e2
- sha256: 482b5b566ca559119b504c53df12b08f3962a5ef8e48061d62fd58a47f8f2ec4
+ md5: 5e11310fca410e9f31381157079dee55
+ sha256: 499be2f8e4397a46249e8e500535795704af27e56360ae0c964904140b41454a
category: dev
optional: true
- name: exceptiongroup
- version: 1.2.0
+ version: 1.2.2
manager: conda
platform: linux-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
hash:
- md5: 8d652ea2ee8eaee02ed8dc820bc794aa
- sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d
+ md5: a16662747cdeb9abbac74d0057cc976e
+ sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701
category: dev
optional: true
- name: exceptiongroup
- version: 1.2.0
+ version: 1.2.2
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
hash:
- md5: 8d652ea2ee8eaee02ed8dc820bc794aa
- sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d
+ md5: a16662747cdeb9abbac74d0057cc976e
+ sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701
category: dev
optional: true
-- name: expat
- version: 2.6.2
- manager: conda
- platform: linux-64
- dependencies:
- libexpat: 2.6.2
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda
- hash:
- md5: 53fb86322bdb89496d7579fe3f02fd61
- sha256: 89916c536ae5b85bb8bf0cfa27d751e274ea0911f04e4a928744735c14ef5155
- category: dash
- optional: true
-- name: flask
- version: 3.0.3
- manager: conda
- platform: linux-64
- dependencies:
- blinker: '>=1.6.2'
- click: '>=8.1.3'
- importlib-metadata: '>=3.6.0'
- itsdangerous: '>=2.1.2'
- jinja2: '>=3.1.2'
- python: '>=3.8'
- werkzeug: '>=3.0.0'
- url: https://conda.anaconda.org/conda-forge/noarch/flask-3.0.3-pyhd8ed1ab_0.conda
- hash:
- md5: dcdb937144fa20d7757bf512db1ea769
- sha256: 2fc508f656fe52cb2f9a69c9c62077934d6a81510256dbe85f95beb7d9620238
- category: dash
- optional: true
-- name: flask
- version: 3.0.3
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- click: '>=8.1.3'
- jinja2: '>=3.1.2'
- importlib-metadata: '>=3.6.0'
- itsdangerous: '>=2.1.2'
- blinker: '>=1.6.2'
- werkzeug: '>=3.0.0'
- url: https://conda.anaconda.org/conda-forge/noarch/flask-3.0.3-pyhd8ed1ab_0.conda
- hash:
- md5: dcdb937144fa20d7757bf512db1ea769
- sha256: 2fc508f656fe52cb2f9a69c9c62077934d6a81510256dbe85f95beb7d9620238
- category: dash
- optional: true
-- name: font-ttf-dejavu-sans-mono
- version: '2.37'
- manager: conda
- platform: linux-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
- hash:
- md5: 0c96522c6bdaed4b1566d11387caaf45
- sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b
- category: dash
- optional: true
-- name: font-ttf-inconsolata
- version: '3.000'
- manager: conda
- platform: linux-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
- hash:
- md5: 34893075a5c9e55cdafac56607368fc6
- sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c
- category: dash
- optional: true
-- name: font-ttf-source-code-pro
- version: '2.038'
- manager: conda
- platform: linux-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
- hash:
- md5: 4d59c254e01d9cde7957100457e2d5fb
- sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139
- category: dash
- optional: true
-- name: font-ttf-ubuntu
- version: '0.83'
- manager: conda
- platform: linux-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda
- hash:
- md5: cbbe59391138ea5ad3658c76912e147f
- sha256: c940f6e969143e13a3a9660abb3c7e7e23b8319efb29dbdd5dee0b9939236e13
- category: dash
- optional: true
-- name: fontconfig
- version: 2.14.2
- manager: conda
- platform: linux-64
- dependencies:
- expat: '>=2.5.0,<3.0a0'
- freetype: '>=2.12.1,<3.0a0'
- libgcc-ng: '>=12'
- libuuid: '>=2.32.1,<3.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda
- hash:
- md5: 0f69b688f52ff6da70bccb7ff7001d1d
- sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83
- category: dash
- optional: true
-- name: fonts-conda-ecosystem
- version: '1'
- manager: conda
- platform: linux-64
- dependencies:
- fonts-conda-forge: ''
- url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
- hash:
- md5: fee5683a3f04bd15cbd8318b096a27ab
- sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61
- category: dash
- optional: true
-- name: fonts-conda-forge
- version: '1'
- manager: conda
- platform: linux-64
- dependencies:
- font-ttf-dejavu-sans-mono: ''
- font-ttf-inconsolata: ''
- font-ttf-source-code-pro: ''
- font-ttf-ubuntu: ''
- url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
- hash:
- md5: f766549260d6815b0c52253f1fb1bb29
- sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38
- category: dash
- optional: true
- name: freetype
version: 2.12.1
manager: conda
@@ -723,524 +365,167 @@ package:
sha256: 2c53ee8879e05e149a9e525481d36adfd660a6abda26fd731376fa64ff03e728
category: main
optional: false
-- name: gettext
- version: 0.22.5
+- name: h5py
+ version: 3.12.1
manager: conda
platform: linux-64
dependencies:
- gettext-tools: 0.22.5
- libasprintf: 0.22.5
- libasprintf-devel: 0.22.5
- libgcc-ng: '>=12'
- libgettextpo: 0.22.5
- libgettextpo-devel: 0.22.5
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda
+ __glibc: '>=2.17,<3.0.a0'
+ cached-property: ''
+ hdf5: '>=1.14.4,<1.14.5.0a0'
+ libgcc: '>=13'
+ numpy: '>=1.19,<3'
+ python: '>=3.10,<3.11.0a0'
+ python_abi: 3.10.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.12.1-nompi_py310hacc6608_103.conda
hash:
- md5: 219ba82e95d7614cf7140d2a4afc0926
- sha256: 386181254ddd2aed1fccdfc217da5b6545f6df4e9979ad8e08f5e91e22eaf7dc
- category: dash
- optional: true
-- name: gettext
- version: 0.22.5
+ md5: 35b89d96d270933ff94caf9e0e6d23f0
+ sha256: bb08b031298d33a8b5e37e1f16671399d23efc2cb00c679e969ef232f197f2aa
+ category: main
+ optional: false
+- name: h5py
+ version: 3.12.1
manager: conda
platform: win-64
dependencies:
- gettext-tools: 0.22.5
- libasprintf: 0.22.5
- libasprintf-devel: 0.22.5
- libgettextpo: 0.22.5
- libgettextpo-devel: 0.22.5
- libiconv: '>=1.17,<2.0a0'
- libintl: 0.22.5
- libintl-devel: 0.22.5
- url: https://conda.anaconda.org/conda-forge/win-64/gettext-0.22.5-h5728263_2.conda
+ cached-property: ''
+ hdf5: '>=1.14.4,<1.14.5.0a0'
+ numpy: '>=1.19,<3'
+ python: '>=3.10,<3.11.0a0'
+ python_abi: 3.10.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/h5py-3.12.1-nompi_py310h972678a_103.conda
hash:
- md5: da84216f88a8c89eb943c683ceb34d7d
- sha256: cd4ef93fd052a4fe89a4db963c9d69e60c8a434d41968fc9dc8726db67191582
- category: dash
- optional: true
-- name: gettext-tools
- version: 0.22.5
+ md5: cf0700db1cf0a5c019f529a572aaafa7
+ sha256: a8543748261336eaf42acf7d9b5f8dc54cc7a1fa04eb5a69c3e4e6cdabd389d2
+ category: main
+ optional: false
+- name: hdf5
+ version: 1.14.4
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libaec: '>=1.1.3,<2.0a0'
+ libcurl: '>=8.10.1,<9.0a0'
+ libgcc: '>=13'
+ libgfortran: ''
+ libgfortran5: '>=13.3.0'
+ libstdcxx: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_105.conda
hash:
- md5: 985f2f453fb72408d6b6f1be0f324033
- sha256: 67d7b1d6fe4f1c516df2000640ec7dcfebf3ff6ea0785f0276870e730c403d33
- category: dash
- optional: true
-- name: gettext-tools
- version: 0.22.5
+ md5: d76fff0092b6389a12134ddebc0929bd
+ sha256: 93d2bfc672f3ee0988d277ce463330a467f3686d3f7ee37812a3d8ca11776d77
+ category: main
+ optional: false
+- name: hdf5
+ version: 1.14.4
manager: conda
platform: win-64
dependencies:
- libiconv: '>=1.17,<2.0a0'
- libintl: 0.22.5
+ libaec: '>=1.1.3,<2.0a0'
+ libcurl: '>=8.10.1,<9.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/gettext-tools-0.22.5-h7d00a51_2.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_105.conda
hash:
- md5: ef1c3bb48c013099c4872640a5f2096c
- sha256: e3621dc3d48399c89bf0dd512a6a398d354429b3b84219473d674aa56e0feef2
- category: dash
- optional: true
-- name: giflib
- version: 5.2.2
+ md5: 4381be33460283890c34341ecfa42d97
+ sha256: e8ced65c604a3b9e4803758a25149d71d8096f186fe876817a0d1d97190550c0
+ category: main
+ optional: false
+- name: iniconfig
+ version: 2.0.0
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
hash:
- md5: 3bf7b9fd5a7136126e0234db4b87c8b6
- sha256: aac402a8298f0c0cc528664249170372ef6b37ac39fdc92b40601a6aed1e32ff
- category: dash
+ md5: 6837f3eff7dcea42ecd714ce1ac2b108
+ sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
+ category: dev
optional: true
-- name: glib
- version: 2.80.2
+- name: iniconfig
+ version: 2.0.0
manager: conda
- platform: linux-64
+ platform: win-64
dependencies:
- glib-tools: 2.80.2
- libffi: '>=3.4,<4.0a0'
- libgcc-ng: '>=12'
- libglib: 2.80.2
- python: '*'
- url: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.2-h8a4344b_1.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
hash:
- md5: dad336abc079b9a38dc10087231619cd
- sha256: aa2de62d482f98db60f86356913bc3ffe971bba4dfdc93c664ec030818e42004
- category: dash
+ md5: 6837f3eff7dcea42ecd714ce1ac2b108
+ sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
+ category: dev
optional: true
-- name: glib
- version: 2.80.2
+- name: intel-openmp
+ version: 2024.2.1
manager: conda
platform: win-64
- dependencies:
- glib-tools: 2.80.2
- libffi: '>=3.4,<4.0a0'
- libglib: 2.80.2
- libintl: '>=0.22.5,<1.0a0'
- libintl-devel: ''
- python: '*'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/glib-2.80.2-h7025463_1.conda
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda
hash:
- md5: 44d5884e974888c8e66a44fd09b86d72
- sha256: 157e24066446523dabbfba985c5bf6eba0def332c63739ba0195e2683125bdac
- category: dash
- optional: true
-- name: glib-tools
- version: 2.80.2
+ md5: 2d89243bfb53652c182a7c73182cce4f
+ sha256: 0fd2b0b84c854029041b0ede8f4c2369242ee92acc0092f8407b1fe9238a8209
+ category: main
+ optional: false
+- name: isort
+ version: 5.13.2
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libglib: 2.80.2
- url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.2-h73ef956_1.conda
+ python: '>=3.9,<4.0'
+ setuptools: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
hash:
- md5: 1daf2cc7054ff71b9a05485f2562cbb4
- sha256: b82ff9c9729e88f280559c0e083c362e99454b0470c7d6ec89499ec6681ea141
- category: dash
+ md5: ef7dc847f19fe4859d5aaa33385bf509
+ sha256: 6ebf6e83c2d449760ad5c5cc344711d6404f9e3cf6952811b8678aca5a4ab01f
+ category: dev
optional: true
-- name: glib-tools
- version: 2.80.2
+- name: isort
+ version: 5.13.2
manager: conda
platform: win-64
dependencies:
- libglib: 2.80.2
- libintl: '>=0.22.5,<1.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.80.2-h4394cf3_1.conda
+ python: '>=3.9,<4.0'
+ setuptools: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
hash:
- md5: c6d94c5f741ed35bb815adf8ae8bbecf
- sha256: 9356b958b1e099d5234d519792346d67dfb35de1979fff115411eef780b5721a
- category: dash
+ md5: ef7dc847f19fe4859d5aaa33385bf509
+ sha256: 6ebf6e83c2d449760ad5c5cc344711d6404f9e3cf6952811b8678aca5a4ab01f
+ category: dev
optional: true
-- name: graphite2
- version: 1.3.13
+- name: jinja2
+ version: 3.1.5
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda
+ markupsafe: '>=2.0'
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda
hash:
- md5: f87c7b7c2cb45f323ffbce941c78ab7c
- sha256: 0595b009f20f8f60f13a6398e7cdcbd2acea5f986633adcf85f5a2283c992add
- category: dash
- optional: true
-- name: gst-plugins-base
- version: 1.22.9
- manager: conda
- platform: linux-64
- dependencies:
- __glibc: '>=2.17,<3.0.a0'
- alsa-lib: '>=1.2.11,<1.3.0a0'
- gettext: '>=0.21.1,<1.0a0'
- gstreamer: 1.22.9
- libexpat: '>=2.6.2,<3.0a0'
- libgcc-ng: '>=12'
- libglib: '>=2.80.0,<3.0a0'
- libogg: '>=1.3.4,<1.4.0a0'
- libopus: '>=1.3.1,<2.0a0'
- libpng: '>=1.6.43,<1.7.0a0'
- libstdcxx-ng: '>=12'
- libvorbis: '>=1.3.7,<1.4.0a0'
- libxcb: '>=1.15,<1.16.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- xorg-libx11: '>=1.8.7,<2.0a0'
- xorg-libxau: '>=1.0.11,<2.0a0'
- xorg-libxext: '>=1.3.4,<2.0a0'
- xorg-libxrender: '>=0.9.11,<0.10.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.22.9-hfa15dee_1.conda
- hash:
- md5: b66ddd883308a836ed86c247231aab82
- sha256: 58fda05d33182b29e0524d684f626aad5208fb21e0622bc4b9013791dc105417
- category: dash
- optional: true
-- name: gst-plugins-base
- version: 1.22.9
- manager: conda
- platform: win-64
- dependencies:
- gettext: '>=0.21.1,<1.0a0'
- gstreamer: 1.22.9
- libglib: '>=2.78.4,<3.0a0'
- libogg: '>=1.3.4,<1.4.0a0'
- libvorbis: '>=1.3.7,<1.4.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.22.9-h001b923_1.conda
- hash:
- md5: ef961ec5b46ac75cebd3d68460691c27
- sha256: e2c37128de5bdc12e3656c9c50e7b1459d8890ea656b866e68293e334356b652
- category: dash
- optional: true
-- name: gstreamer
- version: 1.22.9
- manager: conda
- platform: linux-64
- dependencies:
- __glibc: '>=2.17,<3.0.a0'
- gettext: '>=0.21.1,<1.0a0'
- glib: '>=2.80.0,<3.0a0'
- libgcc-ng: '>=12'
- libglib: '>=2.80.0,<3.0a0'
- libiconv: '>=1.17,<2.0a0'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.22.9-h98fc4e7_1.conda
- hash:
- md5: f502076ed4db50d9ee5c907036a5a172
- sha256: 13cbc0ee5fa4a61f6f06e223d23d3c179dfbede51faf87cd2a4821efa2c249f2
- category: dash
- optional: true
-- name: gstreamer
- version: 1.22.9
- manager: conda
- platform: win-64
- dependencies:
- gettext: '>=0.21.1,<1.0a0'
- glib: '>=2.78.4,<3.0a0'
- libglib: '>=2.78.4,<3.0a0'
- libiconv: '>=1.17,<2.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.22.9-hb4038d2_1.conda
- hash:
- md5: 70557ab875e72c1f21e8d2351aeb9c54
- sha256: 4d42bc24434db62c093748ea3ad0b6ba3872b6810b761363585513ebd79b4f87
- category: dash
- optional: true
-- name: h5py
- version: 3.11.0
- manager: conda
- platform: linux-64
- dependencies:
- cached-property: ''
- hdf5: '>=1.14.3,<1.14.4.0a0'
- libgcc-ng: '>=12'
- numpy: '>=1.19,<3'
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.11.0-nompi_py310hf054cd7_102.conda
- hash:
- md5: f74f9a0a4d713f5eec89917883f4ae7e
- sha256: 5f7a00f4c13adacde260a918153057f3fd0221e8528357bb83627a643f148a4c
- category: main
- optional: false
-- name: h5py
- version: 3.11.0
- manager: conda
- platform: win-64
- dependencies:
- cached-property: ''
- hdf5: '>=1.14.3,<1.14.4.0a0'
- numpy: '>=1.19,<3'
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/h5py-3.11.0-nompi_py310h2b0be38_102.conda
- hash:
- md5: 6ea1515f0984ae6e916cc1f124e6b664
- sha256: 7d1753e538fafea74e36c2da8c0e10d47b057a2623dbb96959395ce5b1dfc80c
- category: main
- optional: false
-- name: harfbuzz
- version: 8.5.0
- manager: conda
- platform: linux-64
- dependencies:
- cairo: '>=1.18.0,<2.0a0'
- freetype: '>=2.12.1,<3.0a0'
- graphite2: ''
- icu: '>=73.2,<74.0a0'
- libgcc-ng: '>=12'
- libglib: '>=2.80.2,<3.0a0'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.5.0-hfac3d4d_0.conda
- hash:
- md5: f5126317dd0ce0ba26945e411ecc6960
- sha256: a141fc55f8bfdab7db03fe9d8e61cb0f8c8b5970ed6540eda2db7186223f4444
- category: dash
- optional: true
-- name: hdf5
- version: 1.14.3
- manager: conda
- platform: linux-64
- dependencies:
- libaec: '>=1.1.3,<2.0a0'
- libcurl: '>=8.8.0,<9.0a0'
- libgcc-ng: '>=12'
- libgfortran-ng: ''
- libgfortran5: '>=12.3.0'
- libstdcxx-ng: '>=12'
- libzlib: '>=1.2.13,<2.0a0'
- openssl: '>=3.3.1,<4.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda
- hash:
- md5: 7e1729554e209627636a0f6fabcdd115
- sha256: 2278fa07da6f96e807d402cd55480624d67d2dee202191aaaf278ce5ab23605a
- category: main
- optional: false
-- name: hdf5
- version: 1.14.3
- manager: conda
- platform: win-64
- dependencies:
- libaec: '>=1.1.3,<2.0a0'
- libcurl: '>=8.8.0,<9.0a0'
- libzlib: '>=1.2.13,<2.0a0'
- openssl: '>=3.3.1,<4.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.3-nompi_h2b43c12_105.conda
- hash:
- md5: 5788de34381caf624b78c4981618dc0a
- sha256: 56c803607a64b5117a8b4bcfdde722e4fa40970ddc4c61224b0981cbb70fb005
- category: main
- optional: false
-- name: icu
- version: '73.2'
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda
- hash:
- md5: cc47e1facc155f91abd89b11e48e72ff
- sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8
- category: main
- optional: false
-- name: icu
- version: '73.2'
- manager: conda
- platform: win-64
- dependencies:
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda
- hash:
- md5: 0f47d9e3192d9e09ae300da0d28e0f56
- sha256: 423aaa2b69d713520712f55c7c71994b7e6f967824bb39b59ad968e7b209ce8c
- category: main
- optional: false
-- name: idna
- version: '3.7'
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.6'
- url: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda
- hash:
- md5: c0cc1420498b17414d8617d0b9f506ca
- sha256: 9687ee909ed46169395d4f99a0ee94b80a52f87bed69cd454bb6d37ffeb0ec7b
- category: main
- optional: false
-- name: idna
- version: '3.7'
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.6'
- url: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda
- hash:
- md5: c0cc1420498b17414d8617d0b9f506ca
- sha256: 9687ee909ed46169395d4f99a0ee94b80a52f87bed69cd454bb6d37ffeb0ec7b
- category: main
- optional: false
-- name: importlib-metadata
- version: 7.1.0
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.8'
- zipp: '>=0.5'
- url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.1.0-pyha770c72_0.conda
- hash:
- md5: 0896606848b2dc5cebdf111b6543aa04
- sha256: cc2e7d1f7f01cede30feafc1118b7aefa244d0a12224513734e24165ae12ba49
- category: dash
- optional: true
-- name: importlib-metadata
- version: 7.1.0
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- zipp: '>=0.5'
- url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.1.0-pyha770c72_0.conda
- hash:
- md5: 0896606848b2dc5cebdf111b6543aa04
- sha256: cc2e7d1f7f01cede30feafc1118b7aefa244d0a12224513734e24165ae12ba49
- category: dash
- optional: true
-- name: iniconfig
- version: 2.0.0
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda
- hash:
- md5: f800d2da156d08e289b14e87e43c1ae5
- sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666
- category: dev
- optional: true
-- name: iniconfig
- version: 2.0.0
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda
- hash:
- md5: f800d2da156d08e289b14e87e43c1ae5
- sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666
- category: dev
- optional: true
-- name: intel-openmp
- version: 2024.1.0
- manager: conda
- platform: win-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.1.0-h57928b3_966.conda
- hash:
- md5: 35d7ea07ad6c878bd7240d2d6c1b8657
- sha256: 77465396f2636c8b3b3a587f1636ee35c17a73e2a2c7e0ea0957b05f84704cf3
- category: main
- optional: false
-- name: isort
- version: 5.13.2
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.8,<4.0'
- setuptools: ''
- url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_0.conda
- hash:
- md5: 1d25ed2b95b92b026aaa795eabec8d91
- sha256: 78a7e2037029366d2149f73c8d02e93cac903d535e208cc4517808b0b42e85f2
- category: dev
- optional: true
-- name: isort
- version: 5.13.2
- manager: conda
- platform: win-64
- dependencies:
- setuptools: ''
- python: '>=3.8,<4.0'
- url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_0.conda
- hash:
- md5: 1d25ed2b95b92b026aaa795eabec8d91
- sha256: 78a7e2037029366d2149f73c8d02e93cac903d535e208cc4517808b0b42e85f2
- category: dev
- optional: true
-- name: itsdangerous
- version: 2.2.0
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/itsdangerous-2.2.0-pyhd8ed1ab_0.conda
- hash:
- md5: ff7ca04134ee8dde1d7cf491a78ef7c7
- sha256: 4e933e36e9b0401b62ea8fd63393827ebeb4250de77a56687afb387d504523c5
- category: dash
- optional: true
-- name: itsdangerous
- version: 2.2.0
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/itsdangerous-2.2.0-pyhd8ed1ab_0.conda
- hash:
- md5: ff7ca04134ee8dde1d7cf491a78ef7c7
- sha256: 4e933e36e9b0401b62ea8fd63393827ebeb4250de77a56687afb387d504523c5
- category: dash
- optional: true
-- name: jinja2
- version: 3.1.4
- manager: conda
- platform: linux-64
- dependencies:
- markupsafe: '>=2.0'
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda
- hash:
- md5: 7b86ecb7d3557821c649b3c31e3eb9f2
- sha256: 27380d870d42d00350d2d52598cddaf02f9505fb24be09488da0c9b8d1428f2d
- category: dash
+ md5: 2752a6ed44105bfb18c9bef1177d9dcd
+ sha256: 98977694b9ecaa3218662f843425f39501f81973c450f995eec68f1803ed71c3
+ category: dev
optional: true
- name: jinja2
- version: 3.1.4
+ version: 3.1.5
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
markupsafe: '>=2.0'
- url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda
hash:
- md5: 7b86ecb7d3557821c649b3c31e3eb9f2
- sha256: 27380d870d42d00350d2d52598cddaf02f9505fb24be09488da0c9b8d1428f2d
- category: dash
+ md5: 2752a6ed44105bfb18c9bef1177d9dcd
+ sha256: 98977694b9ecaa3218662f843425f39501f81973c450f995eec68f1803ed71c3
+ category: dev
optional: true
- name: keyutils
version: 1.6.1
@@ -1255,7 +540,7 @@ package:
category: main
optional: false
- name: krb5
- version: 1.21.2
+ version: 1.21.3
manager: conda
platform: linux-64
dependencies:
@@ -1263,40 +548,28 @@ package:
libedit: '>=3.1.20191231,<4.0a0'
libgcc-ng: '>=12'
libstdcxx-ng: '>=12'
- openssl: '>=3.1.2,<4.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda
+ openssl: '>=3.3.1,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
hash:
- md5: cd95826dbd331ed1be26bdf401432844
- sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4
+ md5: 3f43953b7d3fb3aaa1d0d0723d91e368
+ sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238
category: main
optional: false
- name: krb5
- version: 1.21.2
+ version: 1.21.3
manager: conda
platform: win-64
dependencies:
- openssl: '>=3.1.2,<4.0a0'
+ openssl: '>=3.3.1,<4.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.2-heb0366b_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
hash:
- md5: 6e8b0f22b4eef3b3cb3849bb4c3d47f9
- sha256: 6002adff9e3dcfc9732b861730cb9e33d45fd76b2035b2cdb4e6daacb8262c0b
+ md5: 31aec030344e962fbd7dbbbbd68e60a9
+ sha256: 18e8b3430d7d232dad132f574268f56b3eb1a19431d6d5de8c53c29e6c18fa81
category: main
optional: false
-- name: lame
- version: '3.100'
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2
- hash:
- md5: a8832b479f93521a9e7b5b743803be51
- sha256: aad2a703b9d7b038c0f745b853c6bb5f122988fe1a7a096e0e606d9cbec4eaab
- category: dash
- optional: true
- name: lcms2
version: '2.16'
manager: conda
@@ -1304,7 +577,7 @@ package:
dependencies:
libgcc-ng: '>=12'
libjpeg-turbo: '>=3.0.0,<4.0a0'
- libtiff: '>=4.6.0,<4.7.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda
hash:
md5: 51bb7010fc86f70eee639b4bb7a894f5
@@ -1317,7 +590,7 @@ package:
platform: win-64
dependencies:
libjpeg-turbo: '>=3.0.0,<4.0a0'
- libtiff: '>=4.6.0,<4.7.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
@@ -1328,14 +601,15 @@ package:
category: main
optional: false
- name: ld_impl_linux-64
- version: '2.40'
+ version: '2.43'
manager: conda
platform: linux-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
hash:
- md5: b80f2f396ca2c28b8c14c437a4ed1e74
- sha256: 764b6950aceaaad0c67ef925417594dd14cd2e22fff864aeef455ac259263d15
+ md5: 048b02e3962f066da18efe3a21b77672
+ sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe
category: main
optional: false
- name: lerc
@@ -1391,65 +665,16 @@ package:
sha256: f5c293d3cfc00f71dfdb64bd65ab53625565f8778fc2d5790575bef238976ebf
category: main
optional: false
-- name: libasprintf
- version: 0.22.5
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda
- hash:
- md5: dd197c968bf9760bba0031888d431ede
- sha256: 31d58af7eb54e2938123200239277f14893c5fa4b5d0280c8cf55ae10000638b
- category: dash
- optional: true
-- name: libasprintf
- version: 0.22.5
- manager: conda
- platform: win-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/win-64/libasprintf-0.22.5-h5728263_2.conda
- hash:
- md5: 75a6982b9ff0a8db0f53303527b07af8
- sha256: 5722a4a260355c9233680a3424a977433f25826ca0a1c05af403d62b805681bc
- category: dash
- optional: true
-- name: libasprintf-devel
- version: 0.22.5
- manager: conda
- platform: linux-64
- dependencies:
- libasprintf: 0.22.5
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda
- hash:
- md5: 02e41ab5834dcdcc8590cf29d9526f50
- sha256: 99d26d272a8203d30b3efbe734a99c823499884d7759b4291674438137c4b5ca
- category: dash
- optional: true
-- name: libasprintf-devel
- version: 0.22.5
- manager: conda
- platform: win-64
- dependencies:
- libasprintf: 0.22.5
- url: https://conda.anaconda.org/conda-forge/win-64/libasprintf-devel-0.22.5-h5728263_2.conda
- hash:
- md5: 8377da2cc31200d7181d2e48d60e4c7b
- sha256: d5c711d9da4e35d29f4f2191664075c64cbf8cd481a35bf7ef3a527018eb0184
- category: dash
- optional: true
- name: libblas
version: 3.9.0
manager: conda
platform: linux-64
dependencies:
- libopenblas: '>=0.3.25,<1.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-20_linux64_openblas.conda
+ libopenblas: '>=0.3.28,<1.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-26_linux64_openblas.conda
hash:
- md5: 2b7bb4f7562c8cf334fc2e20c2d28abc
- sha256: 8a0ee1de693a9b3da4a11b95ec81b40dd434bd01fa1f5f38f8268cd2146bf8f0
+ md5: ac52800af2e0c0e7dac770b435ce768a
+ sha256: 30bd658682b124243f8e52d8edf8a19e7be1bc31e4fe4baec30a64002dc8cd0c
category: main
optional: false
- name: libblas
@@ -1457,36 +682,23 @@ package:
manager: conda
platform: win-64
dependencies:
- mkl: 2024.1.0
- url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_mkl.conda
+ mkl: 2024.2.2
+ url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-26_win64_mkl.conda
hash:
- md5: 65c56ecdeceffd6c32d3d54db7e02c6e
- sha256: 4faab445cbd9a13736a206b98fde962d0a9fa80dcbd38300951a8b2863e7c35c
+ md5: ecfe732dbad1be001826fdb7e5e891b5
+ sha256: d631993a5cf5b8d3201f881084fce7ff6a26cd49883e189bf582cd0b7975c80a
category: main
optional: false
-- name: libcap
- version: '2.69'
- manager: conda
- platform: linux-64
- dependencies:
- attr: '>=2.5.1,<2.6.0a0'
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda
- hash:
- md5: 25cb5999faa414e5ccb2c1388f62d3d5
- sha256: 942f9564b4228609f017b6617425d29a74c43b8a030e12239fa4458e5cb6323c
- category: dash
- optional: true
- name: libcblas
version: 3.9.0
manager: conda
platform: linux-64
dependencies:
libblas: 3.9.0
- url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-20_linux64_openblas.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-26_linux64_openblas.conda
hash:
- md5: 36d486d72ab64ffea932329a1d3729a3
- sha256: 0e34fb0f82262f02fcb279ab4a1db8d50875dc98e3019452f8f387e6bf3c0247
+ md5: ebcc5f37a435aa3c19640533c82f8d76
+ sha256: 9c74e536c9bc868e356ffd43f81c2cb398aec84b40fcadc312315b164a5500ee
category: main
optional: false
- name: libcblas
@@ -1495,143 +707,87 @@ package:
platform: win-64
dependencies:
libblas: 3.9.0
- url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_mkl.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-26_win64_mkl.conda
hash:
- md5: 336c93ab102846c6131cf68e722a68f1
- sha256: 5503273924650330dc03edd1eb01ec4020b9967b5a4cafc377ba20b976d15590
+ md5: 652f3adcb9d329050a325416edb14246
+ sha256: 66699c4f84fd36b67a34a7ac59fb86e73ee0c5b3c3502441041c8dd51f0a7d49
category: main
optional: false
-- name: libclang-cpp15
- version: 15.0.7
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libllvm15: '>=15.0.7,<15.1.0a0'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda
- hash:
- md5: d0a9633b53cdc319b8a1a532ae7822b8
- sha256: 9b0238e705a33da74ca82efd03974f499550f7dada1340cc9cb7c35a92411ed8
- category: dash
- optional: true
-- name: libclang13
- version: 18.1.7
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libllvm18: '>=18.1.7,<18.2.0a0'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.7-default_h087397f_0.conda
- hash:
- md5: 536526073c2e7f9056fdce8584da779e
- sha256: d981a2734c3af6217dd42c1bccc13b99fc3ca5a64c379739612d6cf67f992a1d
- category: dash
- optional: true
-- name: libclang13
- version: 18.1.7
- manager: conda
- platform: win-64
- dependencies:
- libzlib: '>=1.2.13,<2.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- zstd: '>=1.5.6,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/win-64/libclang13-18.1.7-default_h97ce8ae_0.conda
- hash:
- md5: a005e5fd30f14fcd2bc3e5ac57aa45a7
- sha256: c3c53f959a79747f78a31764af41b82e3c2b3f4576737581ba0237d33cdee85f
- category: dash
- optional: true
-- name: libcups
- version: 2.3.3
- manager: conda
- platform: linux-64
- dependencies:
- krb5: '>=1.21.1,<1.22.0a0'
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- libzlib: '>=1.2.13,<2.0.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda
- hash:
- md5: d4529f4dff3057982a7617c7ac58fde3
- sha256: bc67b9b21078c99c6bd8595fe7e1ed6da1f721007726e717f0449de7032798c4
- category: dash
- optional: true
- name: libcurl
- version: 8.8.0
+ version: 8.11.1
manager: conda
platform: linux-64
dependencies:
- krb5: '>=1.21.2,<1.22.0a0'
- libgcc-ng: '>=12'
- libnghttp2: '>=1.58.0,<2.0a0'
- libssh2: '>=1.11.0,<2.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- openssl: '>=3.3.0,<4.0a0'
+ __glibc: '>=2.17,<3.0.a0'
+ krb5: '>=1.21.3,<1.22.0a0'
+ libgcc: '>=13'
+ libnghttp2: '>=1.64.0,<2.0a0'
+ libssh2: '>=1.11.1,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
zstd: '>=1.5.6,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda
hash:
- md5: f21c27f076a07907e70c49bb57bd0f20
- sha256: 45aec0ffc6fe3fd4c0083b815aa102b8103380acc2b6714fb272d921acc68ab2
+ md5: 2b3e0081006dc21e8bf53a91c83a055c
+ sha256: 3cd4075b2a7b5562e46c8ec626f6f9ca57aeecaa94ff7df57eca26daa94c9906
category: main
optional: false
- name: libcurl
- version: 8.8.0
+ version: 8.11.1
manager: conda
platform: win-64
dependencies:
- krb5: '>=1.21.2,<1.22.0a0'
- libssh2: '>=1.11.0,<2.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
+ krb5: '>=1.21.3,<1.22.0a0'
+ libssh2: '>=1.11.1,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.8.0-hd5e4a3a_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.11.1-h88aaa65_0.conda
hash:
- md5: 4f86149dc6228f1e5617faa2cce90f94
- sha256: 169fb0a11dd3a1f0adbb93b275f9752aa24b64e73d0c8e220aa10213c6ee74ff
+ md5: 071d3f18dba5a6a13c6bb70cdb42678f
+ sha256: 1a67f01da0e35296c6d1fdf6baddc45ad3cc2114132ff4638052eb7cf258aab2
category: main
optional: false
- name: libdeflate
- version: '1.20'
+ version: '1.23'
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda
hash:
- md5: 8e88f9389f1165d7c0936fe40d9a9a79
- sha256: f8e0f25c382b1d0b87a9b03887a34dbd91485453f1ea991fef726dba57373612
+ md5: 8dfae1d2e74767e9ce36d5fa0d8605db
+ sha256: 511d801626d02f4247a04fff957cc6e9ec4cc7e8622bd9acd076bcdc5de5fe66
category: main
optional: false
- name: libdeflate
- version: '1.20'
+ version: '1.23'
manager: conda
platform: win-64
dependencies:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.20-hcfcfb64_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.23-h9062f6e_0.conda
hash:
- md5: b12b5bde5eb201a1df75e49320cc938a
- sha256: 6628a5b76ad70c1a0909563c637ddc446ee824739ba7c348d4da2f0aa6ac9527
+ md5: a9624935147a25b06013099d3038e467
+ sha256: 96c47725a8258159295996ea2758fa0ff9bea330e72b59641642e16be8427ce8
category: main
optional: false
- name: libedit
- version: 3.1.20191231
+ version: 3.1.20240808
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=7.5.0'
- ncurses: '>=6.2,<7.0.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ ncurses: '>=6.5,<7.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20240808-pl5321h7949ede_0.conda
hash:
- md5: 4d331e44109e3f0e19b4cb8f9b82f3e1
- sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf
+ md5: 8247f80f3dc464d9322e85007e307fe8
+ sha256: 4d0d69ddf9cc7d724a1ccf3a9852e44c8aea9825692582bac2c4e8d21ec95ccd
category: main
optional: false
- name: libev
@@ -1646,31 +802,6 @@ package:
sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4
category: main
optional: false
-- name: libevent
- version: 2.1.12
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- openssl: '>=3.1.1,<4.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda
- hash:
- md5: a1cfcc585f0c42bf8d5546bb1dfb668d
- sha256: 2e14399d81fb348e9d231a82ca4d816bf855206923759b69ad006ba482764131
- category: dash
- optional: true
-- name: libexpat
- version: 2.6.2
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda
- hash:
- md5: e7ba12deb7020dd080c6c70e7b6f6a3d
- sha256: 331bb7c7c05025343ebd79f86ae612b9e1e74d2687b8f3179faec234f986ce19
- category: dash
- optional: true
- name: libffi
version: 3.4.2
manager: conda
@@ -1696,212 +827,106 @@ package:
sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5
category: main
optional: false
-- name: libflac
- version: 1.4.3
- manager: conda
- platform: linux-64
- dependencies:
- gettext: '>=0.21.1,<1.0a0'
- libgcc-ng: '>=12'
- libogg: '>=1.3.4,<1.4.0a0'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda
- hash:
- md5: ee48bf17cc83a00f59ca1494d5646869
- sha256: 65908b75fa7003167b8a8f0001e11e58ed5b1ef5e98b96ab2ba66d7c1b822c7d
- category: dash
- optional: true
-- name: libgcc-ng
- version: 13.2.0
+- name: libgcc
+ version: 14.2.0
manager: conda
platform: linux-64
dependencies:
_libgcc_mutex: '0.1'
_openmp_mutex: '>=4.5'
- url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h77fa898_10.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
hash:
- md5: bbb96c5e7a11ef8ca2b666fe9fe3d199
- sha256: 78931358d83ff585d0cd448632366a5cbe6bcf41a66c07e8178200008127c2b5
+ md5: 3cb76c3f10d3bc7f1105b2fc9db984df
+ sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569
category: main
optional: false
-- name: libgcrypt
- version: 1.10.3
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libgpg-error: '>=1.47,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.10.3-hd590300_0.conda
- hash:
- md5: 32d16ad533c59bb0a3c5ffaf16110829
- sha256: d1bd47faa29fec7288c7b212198432b07f890d3d6f646078da93b059c2e9daff
- category: dash
- optional: true
-- name: libgettextpo
- version: 0.22.5
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda
- hash:
- md5: 172bcc51059416e7ce99e7b528cede83
- sha256: e2f784564a2bdc6f753f00f63cc77c97601eb03bc89dccc4413336ec6d95490b
- category: dash
- optional: true
-- name: libgettextpo
- version: 0.22.5
+- name: libgcc
+ version: 14.2.0
manager: conda
platform: win-64
dependencies:
- libiconv: '>=1.17,<2.0a0'
- libintl: 0.22.5
- url: https://conda.anaconda.org/conda-forge/win-64/libgettextpo-0.22.5-h5728263_2.conda
+ _openmp_mutex: '>=4.5'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ url: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda
hash:
- md5: f4c826b19bf1ccee2a63a2c685039728
- sha256: 445ecfc4bf5b474c2ac79f716dcb8459a08a532ab13a785744665f086ef94c95
- category: dash
- optional: true
-- name: libgettextpo-devel
- version: 0.22.5
+ md5: 75fdd34824997a0f9950a703b15d8ac5
+ sha256: ef840e797714440bb10b69446d815966fff41fdac79f79c4e19c475d81cd375d
+ category: main
+ optional: false
+- name: libgcc-ng
+ version: 14.2.0
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libgettextpo: 0.22.5
- url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda
- hash:
- md5: b63d9b6da3653179a278077f0de20014
- sha256: 695eb2439ad4a89e4205dd675cc52fba5cef6b5d41b83f07cdbf4770a336cc15
- category: dash
- optional: true
-- name: libgettextpo-devel
- version: 0.22.5
- manager: conda
- platform: win-64
- dependencies:
- libgettextpo: 0.22.5
- libiconv: '>=1.17,<2.0a0'
- libintl: 0.22.5
- url: https://conda.anaconda.org/conda-forge/win-64/libgettextpo-devel-0.22.5-h5728263_2.conda
+ libgcc: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
hash:
- md5: 6f42ec61abc6d52a4079800a640319c5
- sha256: bcee730b2be23ba9aa5de3471b78c4644d3b17d5a71e7fdc59bb40e252edb2f7
- category: dash
- optional: true
-- name: libgfortran-ng
- version: 13.2.0
+ md5: e39480b9ca41323497b05492a63bc35b
+ sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7
+ category: main
+ optional: false
+- name: libgfortran
+ version: 14.2.0
manager: conda
platform: linux-64
dependencies:
- libgfortran5: 13.2.0
- url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_10.conda
+ libgfortran5: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda
hash:
- md5: a78f7b3d951665c4c57578a8d3787993
- sha256: de97f291cda4be906c9021c93a9d5d40eb65ab7bd5cba38dfa11f12597d7ef6a
+ md5: f1fd30127802683586f768875127a987
+ sha256: fc9e7f22a17faf74da904ebfc4d88699013d2992e55505e4aa0eb01770290977
category: main
optional: false
- name: libgfortran5
- version: 13.2.0
+ version: 14.2.0
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=13.2.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-h3d2ce59_10.conda
+ libgcc: '>=14.2.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
hash:
- md5: e3896e5c2dd1cbabaf4abb3254df47b0
- sha256: be5f5873c392bc4c25bee25cef2d30a9dab69c0d82ff1ddf687f9ece6d36f56c
+ md5: 9822b874ea29af082e5d36098d25427d
+ sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d
category: main
optional: false
-- name: libglib
- version: 2.80.2
- manager: conda
- platform: linux-64
- dependencies:
- libffi: '>=3.4,<4.0a0'
- libgcc-ng: '>=12'
- libiconv: '>=1.17,<2.0a0'
- libzlib: '>=1.3.1,<2.0a0'
- pcre2: '>=10.44,<10.45.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.2-h8a4344b_1.conda
- hash:
- md5: 9c406bb3d4dac2b358873e6462496d09
- sha256: 03dcc12fe937e32b1fbd7bd7cfe0f7a3e82ee4fe8d29c4d67afb657f13d04394
- category: dash
- optional: true
-- name: libglib
- version: 2.80.2
- manager: conda
- platform: win-64
- dependencies:
- libffi: '>=3.4,<4.0a0'
- libiconv: '>=1.17,<2.0a0'
- libintl: '>=0.22.5,<1.0a0'
- libzlib: '>=1.3.1,<2.0a0'
- pcre2: '>=10.44,<10.45.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.2-h7025463_1.conda
- hash:
- md5: f9f0561c59e62d02f6d6d118ce8b5b63
- sha256: 84dc3f80a2956a055c7aa3b5df9061756cf5d3eecb11bf656688e1ee6177bd7e
- category: dash
- optional: true
- name: libgomp
- version: 13.2.0
+ version: 14.2.0
manager: conda
platform: linux-64
dependencies:
_libgcc_mutex: '0.1'
- url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h77fa898_10.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda
hash:
- md5: 9404d1686e63142d41acc72ef876a588
- sha256: bcea6ddfea86f0e6a1a831d1d2c3f36f7613b5e447229e19f978ded0d184cf5a
+ md5: cc3573974587f12dda90d96e3e55a702
+ sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63
category: main
optional: false
-- name: libgpg-error
- version: '1.49'
+- name: libgomp
+ version: 14.2.0
manager: conda
- platform: linux-64
+ platform: win-64
dependencies:
- gettext: ''
- libasprintf: '>=0.22.5,<1.0a0'
- libgcc-ng: '>=12'
- libgettextpo: '>=0.22.5,<1.0a0'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.49-h4f305b6_0.conda
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ url: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda
hash:
- md5: dfcfd72c7a430d3616763ecfbefe4ca9
- sha256: b2664c2c11211a63856f23278efb49d3e65d902297989a0c12dcd228b5d97110
- category: dash
- optional: true
+ md5: 9e2d4d1214df6f21cba12f6eff4972f9
+ sha256: d8739b834608f35775209b032f0c2be752ef187863c7ec847afcebe2f681be4e
+ category: main
+ optional: false
- name: libhwloc
- version: 2.10.0
+ version: 2.11.2
manager: conda
platform: win-64
dependencies:
- libxml2: '>=2.12.7,<3.0a0'
- pthreads-win32: ''
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ libxml2: '>=2.13.4,<3.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.10.0-default_h8125262_1001.conda
- hash:
- md5: e761885eb4c181074d172220d46319a0
- sha256: 7f1aa1b071269df72e88297c046ec153b7f9a81e6f135d2da4401c96f41b5052
- category: main
- optional: false
-- name: libiconv
- version: '1.17'
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda
hash:
- md5: d66573916ffcf376178462f1b61c941e
- sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9
+ md5: b87a0ac5ab6495d8225db5dc72dd21cd
+ sha256: 850e255997f538d5fb6ed651321141155a33bb781d43d326fc4ff62114dd2842
category: main
optional: false
- name: libiconv
@@ -1918,31 +943,6 @@ package:
sha256: 5f844dd19b046d43174ad80c6ea75b5d504020e3b63cfbc4ace97b8730d35c7b
category: main
optional: false
-- name: libintl
- version: 0.22.5
- manager: conda
- platform: win-64
- dependencies:
- libiconv: '>=1.17,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_2.conda
- hash:
- md5: aa622c938af057adc119f8b8eecada01
- sha256: 1b95335af0a3e278b31e16667fa4e51d1c3f5e22d394d982539dfd5d34c5ae19
- category: dash
- optional: true
-- name: libintl-devel
- version: 0.22.5
- manager: conda
- platform: win-64
- dependencies:
- libiconv: '>=1.17,<2.0a0'
- libintl: 0.22.5
- url: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_2.conda
- hash:
- md5: a2ad82fae23975e4ccbfab2847d31d48
- sha256: 6164fd51abfc7294477c58da77ee1ff9ebc63b9a33404b646407f7fbc3cc7d0d
- category: dash
- optional: true
- name: libjpeg-turbo
version: 3.0.0
manager: conda
@@ -1975,10 +975,10 @@ package:
platform: linux-64
dependencies:
libblas: 3.9.0
- url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-20_linux64_openblas.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-26_linux64_openblas.conda
hash:
- md5: 6fabc51f5e647d09cc010c40061557e0
- sha256: ad7745b8d0f2ccb9c3ba7aaa7167d62fc9f02e45eb67172ae5f0dfb5a3b1a2cc
+ md5: 3792604c43695d6a273bc5faaac47d48
+ sha256: b76458c36331376911e0f98fa68109e02f4d5e5ebfffa79587ac69cef748bba1
category: main
optional: false
- name: liblapack
@@ -1987,59 +987,55 @@ package:
platform: win-64
dependencies:
libblas: 3.9.0
- url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_mkl.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-26_win64_mkl.conda
hash:
- md5: c752cc2af9f3d8d7b2fdebb915a33ef7
- sha256: 8b28b361a13819ed83a67d3bfdde750a13bc8b50b9af26d94fd61616d0f2d703
+ md5: 0a717f5fda7279b77bcce671b324408a
+ sha256: 6701bd162d105531b75d05acf82b4ad9fbc5a24ffbccf8c66efa9e72c386b33c
category: main
optional: false
-- name: libllvm15
- version: 15.0.7
+- name: liblzma
+ version: 5.6.3
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- libxml2: '>=2.12.1,<3.0.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- zstd: '>=1.5.5,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda
hash:
- md5: 8a35df3cbc0c8b12cc8af9473ae75eef
- sha256: e71584c0f910140630580fdd0a013029a52fd31e435192aea2aa8d29005262d1
- category: dash
- optional: true
-- name: libllvm18
- version: 18.1.7
+ md5: 2ecf2f1c7e4e21fcfe6423a51a992d84
+ sha256: e6e425252f3839e2756e4af1ea2074dffd3396c161bf460629f9dfd6a65f15c6
+ category: main
+ optional: false
+- name: liblzma
+ version: 5.6.3
manager: conda
- platform: linux-64
+ platform: win-64
dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- libxml2: '>=2.12.7,<3.0a0'
- libzlib: '>=1.3.1,<2.0a0'
- zstd: '>=1.5.6,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.7-hc9dba70_1.conda
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda
hash:
- md5: d321aff45652d36ced0fa1a2a71af4b7
- sha256: 0488d745b8222ef733d74edaee7a1e601d508e7456008521d02ecc15562b85f0
- category: dash
- optional: true
+ md5: 015b9c0bd1eef60729ab577a38aaf0b5
+ sha256: 24d04bd55adfa44c421c99ce169df38cb1ad2bba5f43151bc847fc802496a1fa
+ category: main
+ optional: false
- name: libnghttp2
- version: 1.58.0
+ version: 1.64.0
manager: conda
platform: linux-64
dependencies:
- c-ares: '>=1.23.0,<2.0a0'
+ __glibc: '>=2.17,<3.0.a0'
+ c-ares: '>=1.32.3,<2.0a0'
libev: '>=4.33,<5.0a0'
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- libzlib: '>=1.2.13,<2.0.0a0'
- openssl: '>=3.2.0,<4.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda
+ libgcc: '>=13'
+ libstdcxx: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.3.2,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
hash:
- md5: 700ac6ea6d53d5510591c4344d5c989a
- sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb
+ md5: 19e57602824042dfd0446292ef90488b
+ sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975
category: main
optional: false
- name: libnsl
@@ -2054,243 +1050,172 @@ package:
sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6
category: main
optional: false
-- name: libogg
- version: 1.3.4
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.4-h7f98852_1.tar.bz2
- hash:
- md5: 6e8cc2173440d77708196c5b93771680
- sha256: b88afeb30620b11bed54dac4295aa57252321446ba4e6babd7dce4b9ffde9b25
- category: dash
- optional: true
-- name: libogg
- version: 1.3.4
- manager: conda
- platform: win-64
- dependencies:
- vc: '>=14.1,<15.0a0'
- vs2015_runtime: '>=14.16.27012'
- url: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.4-h8ffe710_1.tar.bz2
- hash:
- md5: 04286d905a0dcb7f7d4a12bdfe02516d
- sha256: ef20f04ad2121a07e074b34bfc211587df18180e680963f5c02c54d1951b9ee6
- category: dash
- optional: true
- name: libopenblas
- version: 0.3.25
+ version: 0.3.28
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libgfortran-ng: ''
- libgfortran5: '>=12.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.25-pthreads_h413a1c8_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=14'
+ libgfortran: ''
+ libgfortran5: '>=14.2.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
hash:
- md5: d172b34a443b95f86089e8229ddc9a17
- sha256: 628564517895ee1b09cf72c817548bd80ef1acce6a8214a8520d9f7b44c4cfaf
+ md5: 62857b389e42b36b686331bec0922050
+ sha256: 99ba271d8a80a1af2723f2e124ffd91d850074c0389c067e6d96d72a2dbfeabe
category: main
optional: false
-- name: libopus
- version: 1.3.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2
- hash:
- md5: 15345e56d527b330e1cacbdf58676e8f
- sha256: 0e1c2740ebd1c93226dc5387461bbcf8142c518f2092f3ea7551f77755decc8f
- category: dash
- optional: true
- name: libpng
- version: 1.6.43
+ version: 1.6.45
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libzlib: '>=1.2.13,<2.0.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.45-h943b412_0.conda
hash:
- md5: 009981dd9cfcaa4dbfa25ffaed86bcae
- sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997
+ md5: 85cbdaacad93808395ac295b5667d25b
+ sha256: b8f5b5ba9a14dedf7c97c01300de492b1b52b68eacbc3249a13fdbfa82349a2f
category: main
optional: false
- name: libpng
- version: 1.6.43
+ version: 1.6.45
manager: conda
platform: win-64
dependencies:
- libzlib: '>=1.2.13,<2.0.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.43-h19919ed_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.45-had7236b_0.conda
hash:
- md5: 77e398acc32617a0384553aea29e866b
- sha256: 6ad31bf262a114de5bbe0c6ba73b29ed25239d0f46f9d59700310d2ea0b3c142
+ md5: 41fb9e522ec6e0b34a6f23c98b07e1cf
+ sha256: e39c4f1bc8fee08f6a2eb4a88174d14c3a99dbb4850c98f3a87eb83b4dabbfca
category: main
optional: false
-- name: libpq
- version: '16.3'
- manager: conda
- platform: linux-64
- dependencies:
- krb5: '>=1.21.2,<1.22.0a0'
- libgcc-ng: '>=12'
- openssl: '>=3.3.0,<4.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.3-ha72fbe1_0.conda
- hash:
- md5: bac737ae28b79cfbafd515258d97d29e
- sha256: 117ba1e11f07b1ca0671641bd6d1f2e7fc6e27db1c317a0cdb4799ffa69f47db
- category: dash
- optional: true
-- name: libsndfile
- version: 1.2.2
- manager: conda
- platform: linux-64
- dependencies:
- lame: '>=3.100,<3.101.0a0'
- libflac: '>=1.4.3,<1.5.0a0'
- libgcc-ng: '>=12'
- libogg: '>=1.3.4,<1.4.0a0'
- libopus: '>=1.3.1,<2.0a0'
- libstdcxx-ng: '>=12'
- libvorbis: '>=1.3.7,<1.4.0a0'
- mpg123: '>=1.32.1,<1.33.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda
- hash:
- md5: ef1910918dd895516a769ed36b5b3a4e
- sha256: f709cbede3d4f3aee4e2f8d60bd9e256057f410bd60b8964cb8cf82ec1457573
- category: dash
- optional: true
- name: libsqlite
- version: 3.46.0
+ version: 3.47.2
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libzlib: '>=1.2.13,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda
hash:
- md5: 18aa975d2094c34aef978060ae7da7d8
- sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8
+ md5: b58da17db24b6e08bcbf8fed2fb8c915
+ sha256: 48af21ebc2cbf358976f1e0f4a0ab9e91dfc83d0ef337cf3837c6f5bc22fb352
category: main
optional: false
- name: libsqlite
- version: 3.46.0
+ version: 3.47.2
manager: conda
platform: win-64
dependencies:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.2-h67fdade_0.conda
hash:
- md5: 951b0a3a463932e17414cd9f047fa03d
- sha256: 662bd7e0d63c5b8c31cca19b91649e798319b93568a2ba8d1375efb91eeb251b
+ md5: ff00095330e0d35a16bd3bdbd1a2d3e7
+ sha256: ecfc0182c3b2e63c870581be1fa0e4dbdfec70d2011cb4f5bde416ece26c41df
category: main
optional: false
- name: libssh2
- version: 1.11.0
+ version: 1.11.1
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libzlib: '>=1.2.13,<2.0.0a0'
- openssl: '>=3.1.1,<4.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda
hash:
- md5: 1f5a58e686b13bcfde88b93f547d23fe
- sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d
+ md5: be2de152d8073ef1c01b7728475f2fe7
+ sha256: 0407ac9fda2bb67e11e357066eff144c845801d00b5f664efbc48813af1e7bb9
category: main
optional: false
- name: libssh2
- version: 1.11.0
+ version: 1.11.1
manager: conda
platform: win-64
dependencies:
- libzlib: '>=1.2.13,<2.0.0a0'
- openssl: '>=3.1.1,<4.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda
hash:
- md5: dc262d03aae04fe26825062879141a41
- sha256: 813fd04eed2a2d5d9c36e53c554f9c1f08e9324e2922bd60c9c52dbbed2dbcec
+ md5: af0cbf037dd614c34399b3b3e568c557
+ sha256: 4b3256bd2b4e4b3183005d3bd8826d651eccd1a4740b70625afa2b7e7123d191
category: main
optional: false
-- name: libstdcxx-ng
- version: 13.2.0
+- name: libstdcxx
+ version: 14.2.0
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: 13.2.0
- url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-hc0a3c3a_10.conda
+ libgcc: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
hash:
- md5: ea50441ab527f23ffa108ade07e2fde0
- sha256: 9a5d43eed33fe8b2fd6adf71ef8f0253fd515e1440c9b7b7782db608e3085bea
+ md5: 234a5554c53625688d51062645337328
+ sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462
category: main
optional: false
-- name: libsystemd0
- version: '255'
+- name: libstdcxx-ng
+ version: 14.2.0
manager: conda
platform: linux-64
dependencies:
- __glibc: '>=2.17,<3.0.a0'
- libcap: '>=2.69,<2.70.0a0'
- libgcc-ng: '>=12'
- libgcrypt: '>=1.10.3,<2.0a0'
- lz4-c: '>=1.9.3,<1.10.0a0'
- xz: '>=5.2.6,<6.0a0'
- zstd: '>=1.5.5,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda
- hash:
- md5: 3366af27f0b593544a6cd453c7932ac5
- sha256: af27b0d225435d03f378a119f8eab6b280c53557a3c84cdb3bb8fd3167615aed
- category: dash
- optional: true
+ libstdcxx: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
+ hash:
+ md5: 8371ac6457591af2cf6159439c1fd051
+ sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8
+ category: main
+ optional: false
- name: libtiff
- version: 4.6.0
+ version: 4.7.0
manager: conda
platform: linux-64
dependencies:
+ __glibc: '>=2.17,<3.0.a0'
lerc: '>=4.0.0,<5.0a0'
- libdeflate: '>=1.20,<1.21.0a0'
- libgcc-ng: '>=12'
+ libdeflate: '>=1.23,<1.24.0a0'
+ libgcc: '>=13'
libjpeg-turbo: '>=3.0.0,<4.0a0'
- libstdcxx-ng: '>=12'
- libwebp-base: '>=1.3.2,<2.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- xz: '>=5.2.6,<6.0a0'
- zstd: '>=1.5.5,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda
+ liblzma: '>=5.6.3,<6.0a0'
+ libstdcxx: '>=13'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda
hash:
- md5: 66f03896ffbe1a110ffda05c7a856504
- sha256: fc3b210f9584a92793c07396cb93e72265ff3f1fa7ca629128bf0a50d5cb15e4
+ md5: 0ea6510969e1296cc19966fad481f6de
+ sha256: b224e16b88d76ea95e4af56e2bc638c603bd26a770b98d117d04541d3aafa002
category: main
optional: false
- name: libtiff
- version: 4.6.0
+ version: 4.7.0
manager: conda
platform: win-64
dependencies:
lerc: '>=4.0.0,<5.0a0'
- libdeflate: '>=1.20,<1.21.0a0'
+ libdeflate: '>=1.23,<1.24.0a0'
libjpeg-turbo: '>=3.0.0,<4.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- xz: '>=5.2.6,<6.0a0'
- zstd: '>=1.5.5,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-hddb2be6_3.conda
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h797046b_3.conda
hash:
- md5: 6d1828c9039929e2f185c5fa9d133018
- sha256: 2e04844865cfe0286d70482c129f159542b325f4e45774aaff5fbe5027b30b0a
+ md5: defed79ff7a9164ad40320e3f116a138
+ sha256: c363a8baba4ce12b8f01f0ab74fe8b0dc83facd89c6604f4a191084923682768
category: main
optional: false
- name: libuuid
@@ -2305,121 +1230,76 @@ package:
sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18
category: main
optional: false
-- name: libvorbis
- version: 1.3.7
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- libogg: '>=1.3.4,<1.4.0a0'
- libstdcxx-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2
- hash:
- md5: 309dec04b70a3cc0f1e84a4013683bc0
- sha256: 53080d72388a57b3c31ad5805c93a7328e46ff22fab7c44ad2a86d712740af33
- category: dash
- optional: true
-- name: libvorbis
- version: 1.3.7
- manager: conda
- platform: win-64
- dependencies:
- libogg: '>=1.3.4,<1.4.0a0'
- vc: '>=14.1,<15.0a0'
- vs2015_runtime: '>=14.16.27012'
- url: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h0e60522_0.tar.bz2
- hash:
- md5: e1a22282de0169c93e4ffe6ce6acc212
- sha256: 6cdc018a024908270205d8512d92f92cf0adaaa5401c2b403757189b138bf56a
- category: dash
- optional: true
-- name: libwebp
- version: 1.4.0
+- name: libwebp-base
+ version: 1.5.0
manager: conda
platform: linux-64
dependencies:
- giflib: '>=5.2.2,<5.3.0a0'
- libgcc-ng: '>=12'
- libjpeg-turbo: '>=3.0.0,<4.0a0'
- libpng: '>=1.6.43,<1.7.0a0'
- libtiff: '>=4.6.0,<4.7.0a0'
- libwebp-base: '>=1.4.0,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.4.0-h2c329e2_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda
hash:
- md5: 80030debaa84cfc31755d53742df3ca6
- sha256: bd45805b169e3e0ff166d360c3c4842d77107d28c8f9feba020a8e8b9c80f948
- category: dash
- optional: true
-- name: libwebp
- version: 1.4.0
+ md5: 63f790534398730f59e1b899c3644d4a
+ sha256: c45283fd3e90df5f0bd3dbcd31f59cdd2b001d424cf30a07223655413b158eaf
+ category: main
+ optional: false
+- name: libwebp-base
+ version: 1.5.0
manager: conda
platform: win-64
dependencies:
- libwebp-base: '>=1.4.0,<2.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libwebp-1.4.0-h2466b09_0.conda
- hash:
- md5: 11334a8fb02041b453e2f89a4ae16f8d
- sha256: ebabb57084e85cd09d529dbb4fe0f4db6cd0d369ad8095342c37b98855fd87fd
- category: dash
- optional: true
-- name: libwebp-base
- version: 1.4.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.5.0-h3b0e114_0.conda
hash:
- md5: b26e8aa824079e1be0294e7152ca4559
- sha256: 49bc5f6b1e11cb2babf2a2a731d1a680a5e08a858280876a779dbda06c78c35f
+ md5: 33f7313967072c6e6d8f865f5493c7ae
+ sha256: 1d75274614e83a5750b8b94f7bad2fc0564c2312ff407e697d99152ed095576f
category: main
optional: false
-- name: libwebp-base
- version: 1.4.0
+- name: libwinpthread
+ version: 12.0.0.r4.gg4f2fc60ca
manager: conda
platform: win-64
dependencies:
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.4.0-hcfcfb64_0.conda
+ ucrt: ''
+ url: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda
hash:
- md5: abd61d0ab127ec5cd68f62c2969e6f34
- sha256: d0ca51cb1de9192be9a3238e71fbcca5a535619c499c4f4c9b2ed41c14d36770
+ md5: 03cccbba200ee0523bde1f3dad60b1f3
+ sha256: 6d5e158813ab8d553fbb0fedd0abe7bf92970b0be3a9ddf12da0f6cbad78f506
category: main
optional: false
- name: libxcb
- version: '1.15'
+ version: 1.17.0
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
pthread-stubs: ''
- xorg-libxau: ''
+ xorg-libxau: '>=1.0.11,<2.0a0'
xorg-libxdmcp: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
hash:
- md5: 33277193f5b92bad9fdd230eb700929c
- sha256: a670902f0a3173a466c058d2ac22ca1dd0df0453d3a80e0212815c20a16b0485
+ md5: 92ed62436b625154323d40d5f2f11dd7
+ sha256: 666c0c431b23c6cec6e492840b176dde533d48b7e6fb8883f5071223433776aa
category: main
optional: false
- name: libxcb
- version: '1.15'
+ version: 1.17.0
manager: conda
platform: win-64
dependencies:
- m2w64-gcc-libs: ''
- m2w64-gcc-libs-core: ''
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
pthread-stubs: ''
- xorg-libxau: ''
+ ucrt: '>=10.0.20348.0'
+ xorg-libxau: '>=1.0.11,<2.0a0'
xorg-libxdmcp: ''
- url: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.15-hcd874cb_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda
hash:
- md5: 090d91b69396f14afef450c285f9758c
- sha256: d01322c693580f53f8d07a7420cd6879289f5ddad5531b372c3efd1c37cac3bf
+ md5: a69bbf778a462da324489976c84cfc8c
+ sha256: 08dec73df0e161c96765468847298a420933a36bc4f09b50e062df8793290737
category: main
optional: false
- name: libxcrypt
@@ -2434,93 +1314,33 @@ package:
sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c
category: main
optional: false
-- name: libxkbcommon
- version: 1.7.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- libxml2: '>=2.12.6,<3.0a0'
- xkeyboard-config: ''
- xorg-libxau: '>=1.0.11,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h662e7e4_0.conda
- hash:
- md5: b32c0da42b1f24a98577bb3d7fc0b995
- sha256: 3d97d7f964237f42452295d461afdbc51e93f72e2c80be516f56de80e3bb6621
- category: dash
- optional: true
-- name: libxml2
- version: 2.12.7
- manager: conda
- platform: linux-64
- dependencies:
- icu: '>=73.2,<74.0a0'
- libgcc-ng: '>=12'
- libiconv: '>=1.17,<2.0a0'
- libzlib: '>=1.2.13,<2.0a0'
- xz: '>=5.2.6,<6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda
- hash:
- md5: 340278ded8b0dc3a73f3660bbb0adbc6
- sha256: 576ea9134176636283ff052897bf7a91ffd8ac35b2c505dfde2890ec52849698
- category: main
- optional: false
- name: libxml2
- version: 2.12.7
+ version: 2.13.5
manager: conda
platform: win-64
dependencies:
libiconv: '>=1.17,<2.0a0'
- libzlib: '>=1.2.13,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h283a6d9_1.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.5-he286e8c_1.conda
hash:
- md5: 7ab2653cc21c44a1370ef3b409261b3d
- sha256: aef096aa784e61f860fab08974c6260836bf05d742fb69f304f0e9b7d557c99a
+ md5: 77eaa84f90fc90643c5a0be0aa9bdd1b
+ sha256: 084dd4dde342f13c43ee418d153ac5b2610f95be029073a15fa9dda22b130d06
category: main
optional: false
-- name: libxslt
- version: 1.1.39
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libxml2: '>=2.12.1,<3.0.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.39-h76b75d6_0.conda
- hash:
- md5: e71f31f8cfb0a91439f2086fc8aa0461
- sha256: 684e9b67ef7b9ca0ca993762eeb39705ec58e2e7f958555c758da7ef416db9f3
- category: dash
- optional: true
-- name: libxslt
- version: 1.1.39
- manager: conda
- platform: win-64
- dependencies:
- libxml2: '>=2.12.1,<3.0.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.39-h3df6e99_0.conda
- hash:
- md5: 279ee338c9b34871d578cb3c7aa68f70
- sha256: 6e3d99466d2076c35e7ac8dcdfe604da3d593f55b74a5b8e96c2b2ff63c247aa
- category: dash
- optional: true
- name: libzlib
version: 1.3.1
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
hash:
- md5: 57d7dc60e9325e3de37ff8dffd18e814
- sha256: adf6096f98b537a11ae3729eaa642b0811478f0ea0402ca67b5108fe2cb0010d
+ md5: edb0dca6bc32e4f4789199455a1dbeb8
+ sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4
category: main
optional: false
- name: libzlib
@@ -2531,108 +1351,29 @@ package:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda
- hash:
- md5: d4483ca8afc57ddf1f6dded53b36c17f
- sha256: b13846a54a15243e15f96fec06b526d8155adc6a1ac2b6ed47a88f6a71a94b68
- category: main
- optional: false
-- name: lz4-c
- version: 1.9.4
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda
- hash:
- md5: 318b08df404f9c9be5712aaa5a6f0bb0
- sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f
- category: dash
- optional: true
-- name: m2w64-gcc-libgfortran
- version: 5.3.0
- manager: conda
- platform: win-64
- dependencies:
- m2w64-gcc-libs-core: ''
- msys2-conda-epoch: '20160418'
- url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2
- hash:
- md5: 066552ac6b907ec6d72c0ddab29050dc
- sha256: 9de95a7996d5366ae0808eef2acbc63f9b11b874aa42375f55379e6715845dc6
- category: main
- optional: false
-- name: m2w64-gcc-libs
- version: 5.3.0
- manager: conda
- platform: win-64
- dependencies:
- m2w64-gcc-libgfortran: ''
- m2w64-gcc-libs-core: ''
- m2w64-gmp: ''
- m2w64-libwinpthread-git: ''
- msys2-conda-epoch: '20160418'
- url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2
- hash:
- md5: fe759119b8b3bfa720b8762c6fdc35de
- sha256: 3bd1ab02b7c89a5b153a17be03b36d833f1517ff2a6a77ead7c4a808b88196aa
- category: main
- optional: false
-- name: m2w64-gcc-libs-core
- version: 5.3.0
- manager: conda
- platform: win-64
- dependencies:
- m2w64-gmp: ''
- m2w64-libwinpthread-git: ''
- msys2-conda-epoch: '20160418'
- url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2
- hash:
- md5: 4289d80fb4d272f1f3b56cfe87ac90bd
- sha256: 58afdfe859ed2e9a9b1cc06bc408720cb2c3a6a132e59d4805b090d7574f4ee0
- category: main
- optional: false
-- name: m2w64-gmp
- version: 6.1.0
- manager: conda
- platform: win-64
- dependencies:
- msys2-conda-epoch: '20160418'
- url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2
- hash:
- md5: 53a1c73e1e3d185516d7e3af177596d9
- sha256: 7e3cd95f554660de45f8323fca359e904e8d203efaf07a4d311e46d611481ed1
- category: main
- optional: false
-- name: m2w64-libwinpthread-git
- version: 5.0.0.4634.697f757
- manager: conda
- platform: win-64
- dependencies:
- msys2-conda-epoch: '20160418'
- url: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2
+ url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
hash:
- md5: 774130a326dee16f1ceb05cc687ee4f0
- sha256: f63a09b2cae7defae0480f1740015d6235f1861afa6fe2e2d3e10bd0d1314ee0
+ md5: 41fbfac52c601159df6c01f875de31b9
+ sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402
category: main
optional: false
- name: markupsafe
- version: 2.1.5
+ version: 3.0.2
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
- url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py310h2372a71_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py310h89163eb_1.conda
hash:
- md5: f6703fa0214a00bf49d1bef6dc7672d0
- sha256: 3c18347adf1d091ee9248612308a6bef79038f80b626ef67f58cd0e8d25c65b8
- category: dash
+ md5: 8ce3f0332fd6de0d737e2911d329523f
+ sha256: 0bed20ec27dcbcaf04f02b2345358e1161fb338f8423a4ada1cf0f4d46918741
+ category: dev
optional: true
- name: markupsafe
- version: 2.1.5
+ version: 3.0.2
manager: conda
platform: win-64
dependencies:
@@ -2641,22 +1382,22 @@ package:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py310h8d17308_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py310h38315fa_1.conda
hash:
- md5: eceba0306d8619bd34a650e673d3e6c3
- sha256: 2fe1bc52085b4b4f63e073803f8cce3da95b6eaaa182abee11c0a34b484f99dc
- category: dash
+ md5: 79dfc050ae5a7dd4e63e392c984e2576
+ sha256: deb8505b7ef76d363174d133e2ff814ae75b91ac4c3ae5550a7686897392f4d0
+ category: dev
optional: true
- name: mccabe
version: 0.7.0
manager: conda
platform: linux-64
dependencies:
- python: '>=3.6'
- url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda
hash:
- md5: 34fc335fc50eef0b5ea708f2b5f54e0c
- sha256: 0466ad9490b761e9a8c57fab574fc099136b45fa19a0746ce33acdeb2a84766b
+ md5: 827064ddfe0de2917fb29f1da4f8f533
+ sha256: 9b0037171dad0100f0296699a11ae7d355237b55f42f9094aebc0f41512d96a1
category: dev
optional: true
- name: mccabe
@@ -2664,149 +1405,41 @@ package:
manager: conda
platform: win-64
dependencies:
- python: '>=3.6'
- url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda
hash:
- md5: 34fc335fc50eef0b5ea708f2b5f54e0c
- sha256: 0466ad9490b761e9a8c57fab574fc099136b45fa19a0746ce33acdeb2a84766b
+ md5: 827064ddfe0de2917fb29f1da4f8f533
+ sha256: 9b0037171dad0100f0296699a11ae7d355237b55f42f9094aebc0f41512d96a1
category: dev
optional: true
- name: mkl
- version: 2024.1.0
+ version: 2024.2.2
manager: conda
platform: win-64
dependencies:
intel-openmp: 2024.*
tbb: 2021.*
- url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.1.0-h66d3029_692.conda
- hash:
- md5: b43ec7ed045323edeff31e348eea8652
- sha256: abfdb5eb3a17af59a827ea49fcb4d2bf18e70b62498bf3720351962e636cb5b7
- category: main
- optional: false
-- name: mpg123
- version: 1.32.6
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.6-h59595ed_0.conda
- hash:
- md5: 9160cdeb523a1b20cf8d2a0bf821f45d
- sha256: 8895a5ce5122a3b8f59afcba4b032f198e8a690a0efc95ef61f2135357ef0d72
- category: dash
- optional: true
-- name: msys2-conda-epoch
- version: '20160418'
- manager: conda
- platform: win-64
- dependencies: {}
- url: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2
+ url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda
hash:
- md5: b0309b72560df66f71a9d5e34a5efdfa
- sha256: 99358d58d778abee4dca82ad29fb58058571f19b0f86138363c260049d4ac7f1
+ md5: 302dff2807f2927b3e9e0d19d60121de
+ sha256: 20e52b0389586d0b914a49cd286c5ccc9c47949bed60ca6df004d1d295f2edbd
category: main
optional: false
-- name: mysql-common
- version: 8.3.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- openssl: '>=3.2.1,<4.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda
- hash:
- md5: 784a4df6676c581ca624fbe460703a6d
- sha256: 4cf6d29e091398735348550cb74cfd5006e04892d54b6b1ba916935f1af1a151
- category: dash
- optional: true
-- name: mysql-libs
- version: 8.3.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- libzlib: '>=1.2.13,<2.0.0a0'
- mysql-common: 8.3.0
- openssl: '>=3.2.1,<4.0a0'
- zstd: '>=1.5.5,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda
- hash:
- md5: 1b50eebe2a738a3146c154d2eceaa8b6
- sha256: c39cdd1a5829aeffc611f789bdfd4dbd4ce1aa829c73d728defec180b5265d91
- category: dash
- optional: true
- name: ncurses
version: '6.5'
manager: conda
platform: linux-64
dependencies:
+ __glibc: '>=2.17,<3.0.a0'
libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda
hash:
- md5: fcea371545eda051b6deafb24889fc69
- sha256: 4fc3b384f4072b68853a0013ea83bdfd3d66b0126e2238e1d6e1560747aa7586
+ md5: 70caf8bb6cf39a0b6b7efc885f51c0fe
+ sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a
category: main
optional: false
-- name: nest-asyncio
- version: 1.6.0
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.5'
- url: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda
- hash:
- md5: 6598c056f64dc8800d40add25e4e2c34
- sha256: 30db21d1f7e59b3408b831a7e0417b83b53ee6223afae56482c5f26da3ceb49a
- category: dash
- optional: true
-- name: nest-asyncio
- version: 1.6.0
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.5'
- url: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda
- hash:
- md5: 6598c056f64dc8800d40add25e4e2c34
- sha256: 30db21d1f7e59b3408b831a7e0417b83b53ee6223afae56482c5f26da3ceb49a
- category: dash
- optional: true
-- name: nspr
- version: '4.35'
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda
- hash:
- md5: da0ec11a6454ae19bff5b02ed881a2b1
- sha256: 8fadeebb2b7369a4f3b2c039a980d419f65c7b18267ba0c62588f9f894396d0c
- category: dash
- optional: true
-- name: nss
- version: '3.101'
- manager: conda
- platform: linux-64
- dependencies:
- __glibc: '>=2.17,<3.0.a0'
- libgcc-ng: '>=12'
- libsqlite: '>=3.46.0,<4.0a0'
- libstdcxx-ng: '>=12'
- libzlib: '>=1.3.1,<2.0a0'
- nspr: '>=4.35,<5.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.101-h593d115_0.conda
- hash:
- md5: b24ab6abea1bdc28d646336a03d15392
- sha256: 7b5c37070c4a1c4c0d7477c63e23a4603108380646373e64a47b2614eb5f42c5
- category: dash
- optional: true
- name: numpy
- version: 1.23.5
+ version: 1.26.4
manager: conda
platform: linux-64
dependencies:
@@ -2817,14 +1450,14 @@ package:
libstdcxx-ng: '>=12'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
- url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.23.5-py310h53a5b5f_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py310hb13e2d6_0.conda
hash:
- md5: 3b114b1559def8bad228fec544ac1812
- sha256: c3b2dc03dbae88ae1337e37e672aa44008898395d3508839bf35323b54e71665
+ md5: 6593de64c935768b6bad3e19b3e978be
+ sha256: 028fe2ea8e915a0a032b75165f11747770326f3d767e642880540c60a3256425
category: main
optional: false
- name: numpy
- version: 1.23.5
+ version: 1.26.4
manager: conda
platform: win-64
dependencies:
@@ -2835,61 +1468,63 @@ package:
python_abi: 3.10.*
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
- vs2015_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.23.5-py310h4a8f9c9_0.conda
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py310hf667824_0.conda
hash:
- md5: f734ade6fd852582e5c1a09152dd3a60
- sha256: 92900cc7e9561ea177878f838a6a8a105b750d5971affedc648090ef22b4db23
+ md5: 93e881c391880df90e74e43a4b67c16d
+ sha256: 20ca447a8f840c01961f2bdf0847fc7b7785a62968e867d7aa4ca8a66d70f9ad
category: main
optional: false
- name: openjpeg
- version: 2.5.2
+ version: 2.5.3
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- libpng: '>=1.6.43,<1.7.0a0'
- libstdcxx-ng: '>=12'
- libtiff: '>=4.6.0,<4.7.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libpng: '>=1.6.44,<1.7.0a0'
+ libstdcxx: '>=13'
+ libtiff: '>=4.7.0,<4.8.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda
hash:
- md5: 7f2e286780f072ed750df46dc2631138
- sha256: 5600a0b82df042bd27d01e4e687187411561dfc11cc05143a08ce29b64bf2af2
+ md5: 9e5816bc95d285c115a3ebc2f8563564
+ sha256: 5bee706ea5ba453ed7fd9da7da8380dd88b865c8d30b5aaec14d2b6dd32dbc39
category: main
optional: false
- name: openjpeg
- version: 2.5.2
+ version: 2.5.3
manager: conda
platform: win-64
dependencies:
- libpng: '>=1.6.43,<1.7.0a0'
- libtiff: '>=4.6.0,<4.7.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
+ libpng: '>=1.6.44,<1.7.0a0'
+ libtiff: '>=4.7.0,<4.8.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h4d64b90_0.conda
hash:
- md5: 7e7099ad94ac3b599808950cec30ad4e
- sha256: dda71cbe094234ab208f3552dec1f4ca6f2e614175d010808d6cb66ecf0bc753
+ md5: fc050366dd0b8313eb797ed1ffef3a29
+ sha256: 410175815df192f57a07c29a6b3fdd4231937173face9e63f0830c1234272ce3
category: main
optional: false
- name: openssl
- version: 3.3.1
+ version: 3.4.0
manager: conda
platform: linux-64
dependencies:
+ __glibc: '>=2.17,<3.0.a0'
ca-certificates: ''
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_0.conda
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda
hash:
- md5: a41fa0e391cc9e0d6b78ac69ca047a6c
- sha256: 9691f8bd6394c5bb0b8d2f47cd1467b91bd5b1df923b69e6b517f54496ee4b50
+ md5: 4ce6875f75469b2757a65e10a5d05e31
+ sha256: f62f6bca4a33ca5109b6d571b052a394d836956d21b25b7ffd03376abf7a481f
category: main
optional: false
- name: openssl
- version: 3.3.1
+ version: 3.4.0
manager: conda
platform: win-64
dependencies:
@@ -2897,65 +1532,35 @@ package:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda
hash:
- md5: 27fe798366ef3a81715b13eedf699e2f
- sha256: fbd63a41b854370a74e5f7ccc50d67f053d60c08e40389156e7924df0824d297
+ md5: fb45308ba8bfe1abf1f4a27bad24a743
+ sha256: 519a06eaab7c878fbebb8cab98ea4a4465eafb1e9ed8c6ce67226068a80a92f0
category: main
optional: false
- name: packaging
- version: '24.1'
+ version: '24.2'
manager: conda
platform: linux-64
dependencies:
python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
hash:
- md5: cbe1bb1f21567018ce595d9c2be0f0db
- sha256: 36aca948219e2c9fdd6d80728bcc657519e02f06c2703d8db3446aec67f51d81
- category: main
- optional: false
+ md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa
+ sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1
+ category: dev
+ optional: true
- name: packaging
- version: '24.1'
+ version: '24.2'
manager: conda
platform: win-64
dependencies:
python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda
- hash:
- md5: cbe1bb1f21567018ce595d9c2be0f0db
- sha256: 36aca948219e2c9fdd6d80728bcc657519e02f06c2703d8db3446aec67f51d81
- category: main
- optional: false
-- name: pcre2
- version: '10.44'
- manager: conda
- platform: linux-64
- dependencies:
- bzip2: '>=1.0.8,<2.0a0'
- libgcc-ng: '>=12'
- libzlib: '>=1.3.1,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda
- hash:
- md5: 3914f7ac1761dce57102c72ca7c35d01
- sha256: 90646ad0d8f9d0fd896170c4f3d754e88c4ba0eaf856c24d00842016f644baab
- category: dash
- optional: true
-- name: pcre2
- version: '10.44'
- manager: conda
- platform: win-64
- dependencies:
- bzip2: '>=1.0.8,<2.0a0'
- libzlib: '>=1.3.1,<2.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
hash:
- md5: 007d07ab5027e0bf49f6fa660a9f89a0
- sha256: 44351611091ed72c4682ad23e53d7874334757298ff0ebb2acd769359ae82ab3
- category: dash
+ md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa
+ sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1
+ category: dev
optional: true
- name: pillow
version: 10.3.0
@@ -2966,18 +1571,18 @@ package:
lcms2: '>=2.16,<3.0a0'
libgcc-ng: '>=12'
libjpeg-turbo: '>=3.0.0,<4.0a0'
- libtiff: '>=4.6.0,<4.7.0a0'
- libwebp-base: '>=1.3.2,<2.0a0'
- libxcb: '>=1.15,<1.16.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libxcb: '>=1.16,<2.0.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
openjpeg: '>=2.5.2,<3.0a0'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
tk: '>=8.6.13,<8.7.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.3.0-py310hf73ecf8_0.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.3.0-py310hebfe307_1.conda
hash:
- md5: 1de56cf017dfd02aa84093206a0141a8
- sha256: 89caf2bb9b6d6d0c874590128b36676615750b5ef121fab514bc737dc48534da
+ md5: 8d357fd769e0e1a957f5916bdc8b1fa2
+ sha256: adb1d874246c47cc8972894b13eeb70ef1aab067f51e615f4976cfe9c3ee3208
category: main
optional: false
- name: pillow
@@ -2988,10 +1593,10 @@ package:
freetype: '>=2.12.1,<3.0a0'
lcms2: '>=2.16,<3.0a0'
libjpeg-turbo: '>=3.0.0,<4.0a0'
- libtiff: '>=4.6.0,<4.7.0a0'
- libwebp-base: '>=1.3.2,<2.0a0'
- libxcb: '>=1.15,<1.16.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libxcb: '>=1.16,<2.0.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
openjpeg: '>=2.5.2,<3.0a0'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
@@ -2999,115 +1604,74 @@ package:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.3.0-py310hf5d6e66_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.3.0-py310h3e38d90_1.conda
hash:
- md5: 510e3e5f72df4cb88e99cdd5ba730330
- sha256: d64813920c313c0e44040cd257c6e238a72ada45e8c2ce47c007deb7f049cba5
+ md5: ee35afda8b2154e7396fae5ca7fbea6b
+ sha256: 50a0d0f8de51c47f8ca0820f0ebfc7730aec4a7a98069347a3395b21b67f7e21
category: main
optional: false
- name: pip
- version: '24.0'
+ version: 24.3.1
manager: conda
platform: linux-64
dependencies:
- python: '>=3.7'
- setuptools: ''
- wheel: ''
- url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda
- hash:
- md5: f586ac1e56c8638b64f9c8122a7b8a67
- sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a
- category: main
- optional: false
-- name: pip
- version: '24.0'
- manager: conda
- platform: win-64
- dependencies:
+ python: '>=3.9,<3.13.0a0'
setuptools: ''
- wheel: ''
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda
- hash:
- md5: f586ac1e56c8638b64f9c8122a7b8a67
- sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a
- category: main
- optional: false
-- name: pixman
- version: 0.43.2
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda
- hash:
- md5: 71004cbf7924e19c02746ccde9fd7123
- sha256: 366d28e2a0a191d6c535e234741e0cd1d94d713f76073d8af4a5ccb2a266121e
- category: dash
- optional: true
-- name: platformdirs
- version: 4.2.2
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda
+ wheel: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
hash:
- md5: 6f6cf28bf8e021933869bae3f84b8fc9
- sha256: adc59384cf0b2fc6dc7362840151e8cb076349197a38f7230278252698a88442
+ md5: 04e691b9fadd93a8a9fad87a81d4fd8f
+ sha256: da8c8888de10c1e4234ebcaa1550ac2b4b5408ac20f093fe641e4bc8c9c9f3eb
category: main
optional: false
-- name: platformdirs
- version: 4.2.2
+- name: pip
+ version: 24.3.1
manager: conda
platform: win-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda
+ python: '>=3.9,<3.13.0a0'
+ setuptools: ''
+ wheel: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
hash:
- md5: 6f6cf28bf8e021933869bae3f84b8fc9
- sha256: adc59384cf0b2fc6dc7362840151e8cb076349197a38f7230278252698a88442
+ md5: 04e691b9fadd93a8a9fad87a81d4fd8f
+ sha256: da8c8888de10c1e4234ebcaa1550ac2b4b5408ac20f093fe641e4bc8c9c9f3eb
category: main
optional: false
-- name: plotly
- version: 5.22.0
+- name: platformdirs
+ version: 4.3.6
manager: conda
platform: linux-64
dependencies:
- packaging: ''
- python: '>=3.6'
- tenacity: '>=6.2.0'
- url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.22.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
hash:
- md5: 5b409a5f738e7d76c2b426eddb7e9956
- sha256: 16cada008ce6bf231bcb00a9aca6bddd03d4d0f1f7f2cd83882aa0023845c33a
- category: dash
+ md5: 577852c7e53901ddccc7e6a9959ddebe
+ sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27
+ category: dev
optional: true
-- name: plotly
- version: 5.22.0
+- name: platformdirs
+ version: 4.3.6
manager: conda
platform: win-64
dependencies:
- packaging: ''
- python: '>=3.6'
- tenacity: '>=6.2.0'
- url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.22.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
hash:
- md5: 5b409a5f738e7d76c2b426eddb7e9956
- sha256: 16cada008ce6bf231bcb00a9aca6bddd03d4d0f1f7f2cd83882aa0023845c33a
- category: dash
+ md5: 577852c7e53901ddccc7e6a9959ddebe
+ sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27
+ category: dev
optional: true
- name: pluggy
version: 1.5.0
manager: conda
platform: linux-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda
hash:
- md5: d3483c8fc2dc2cc3f5cf43e26d60cabf
- sha256: 33eaa3359948a260ebccf9cdc2fd862cea5a6029783289e13602d8e634cd9a26
+ md5: e9dcbce5f45f9ee500e728ae58b605b6
+ sha256: 122433fc5318816b8c69283aaf267c73d87aa2d09ce39f64c9805c9a3b264819
category: dev
optional: true
- name: pluggy
@@ -3115,53 +1679,24 @@ package:
manager: conda
platform: win-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda
hash:
- md5: d3483c8fc2dc2cc3f5cf43e26d60cabf
- sha256: 33eaa3359948a260ebccf9cdc2fd862cea5a6029783289e13602d8e634cd9a26
+ md5: e9dcbce5f45f9ee500e728ae58b605b6
+ sha256: 122433fc5318816b8c69283aaf267c73d87aa2d09ce39f64c9805c9a3b264819
category: dev
optional: true
-- name: pooch
- version: 1.8.2
- manager: conda
- platform: linux-64
- dependencies:
- packaging: '>=20.0'
- platformdirs: '>=2.5.0'
- python: '>=3.7'
- requests: '>=2.19.0'
- url: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda
- hash:
- md5: 8dab97d8a9616e07d779782995710aed
- sha256: f2ee98740ac62ff46700c3cae8a18c78bdb3d6dd80832c6e691e789b844830d8
- category: main
- optional: false
-- name: pooch
- version: 1.8.2
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.7'
- packaging: '>=20.0'
- requests: '>=2.19.0'
- platformdirs: '>=2.5.0'
- url: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda
- hash:
- md5: 8dab97d8a9616e07d779782995710aed
- sha256: f2ee98740ac62ff46700c3cae8a18c78bdb3d6dd80832c6e691e789b844830d8
- category: main
- optional: false
- name: pthread-stubs
version: '0.4'
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=7.5.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
hash:
- md5: 22dad4df6e8630e8dff2428f6f6a7036
- sha256: 67c84822f87b641d89df09758da498b2d4558d47b920fd1d3fe6d3a871e000ff
+ md5: b3c17d95b5a10c6e64a21fa17573e70e
+ sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973
category: main
optional: false
- name: pthread-stubs
@@ -3169,88 +1704,65 @@ package:
manager: conda
platform: win-64
dependencies:
- m2w64-gcc-libs: ''
- url: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2
- hash:
- md5: a1f820480193ea83582b13249a7e7bd9
- sha256: bb5a6ddf1a609a63addd6d7b488b0f58d05092ea84e9203283409bff539e202a
- category: main
- optional: false
-- name: pthreads-win32
- version: 2.9.1
- manager: conda
- platform: win-64
- dependencies:
- vc: 14.*
- url: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda
hash:
- md5: e2da8758d7d51ff6aa78a14dfb9dbed4
- sha256: 576a228630a72f25d255a5e345e5f10878e153221a96560f2498040cd6f54005
+ md5: 3c8f2573569bb816483e5cf57efbbe29
+ sha256: 7e446bafb4d692792310ed022fe284e848c6a868c861655a92435af7368bae7b
category: main
optional: false
-- name: pulseaudio-client
- version: '17.0'
- manager: conda
- platform: linux-64
- dependencies:
- dbus: '>=1.13.6,<2.0a0'
- libgcc-ng: '>=12'
- libglib: '>=2.78.3,<3.0a0'
- libsndfile: '>=1.2.2,<1.3.0a0'
- libsystemd0: '>=255'
- url: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda
- hash:
- md5: 07f45f1be1c25345faddb8db0de8039b
- sha256: b27c0c8671bd95c205a61aeeac807c095b60bc76eb5021863f919036d7a964fc
- category: dash
- optional: true
- name: pydantic
- version: 2.5.3
+ version: 2.10.5
manager: conda
platform: linux-64
dependencies:
- annotated-types: '>=0.4.0'
- pydantic-core: 2.14.6
- python: '>=3.7'
+ annotated-types: '>=0.6.0'
+ pydantic-core: 2.27.2
+ python: '>=3.9'
typing-extensions: '>=4.6.1'
- url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda
+ typing_extensions: '>=4.12.2'
+ url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda
hash:
- md5: 3569001fd8b37e542aaefdf5de124e19
- sha256: 07ec778cbf17737b740f0547fb5cba91a7bff52945fe637287458e4119c58ffe
+ md5: e8ea30925c8271c4128375810d7d3d7a
+ sha256: 0f32c30ddc610cd1113335d8b4f311f20f4d72754b7c1a5d0d9493f597cf11d2
category: main
optional: false
- name: pydantic
- version: 2.5.3
+ version: 2.10.5
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
+ annotated-types: '>=0.6.0'
+ pydantic-core: 2.27.2
+ python: '>=3.9'
typing-extensions: '>=4.6.1'
- annotated-types: '>=0.4.0'
- pydantic-core: 2.14.6
- url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda
+ typing_extensions: '>=4.12.2'
+ url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda
hash:
- md5: 3569001fd8b37e542aaefdf5de124e19
- sha256: 07ec778cbf17737b740f0547fb5cba91a7bff52945fe637287458e4119c58ffe
+ md5: e8ea30925c8271c4128375810d7d3d7a
+ sha256: 0f32c30ddc610cd1113335d8b4f311f20f4d72754b7c1a5d0d9493f597cf11d2
category: main
optional: false
- name: pydantic-core
- version: 2.14.6
+ version: 2.27.2
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
typing-extensions: '>=4.6.0,!=4.7.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.6-py310hcb5633a_1.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.27.2-py310h505e2c1_0.conda
hash:
- md5: f0f6b7e4b3d134f070288963ed4fbeee
- sha256: 3bdc1ef89f9e431392aec8ed5695d8aefc7b65a014cc46934f75e87779f89745
+ md5: 3f804346d970a0343c46afc21cf5f16e
+ sha256: 6c58cdbb007f2dc8b0a8d96eacaba45bedf6ddfe9ed4558c40f899cb3438f3cb
category: main
optional: false
- name: pydantic-core
- version: 2.14.6
+ version: 2.27.2
manager: conda
platform: win-64
dependencies:
@@ -3260,266 +1772,80 @@ package:
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.14.6-py310h87d50f1_1.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.27.2-py310hc226416_0.conda
hash:
- md5: e1055e9fe6ac345e7b8d85acda87dacc
- sha256: 88dbd555fbf8fdc1dbf54c000e82061527d8bd7905ae85e5f9c034450d8b1d3c
+ md5: 3df8c74e13bd1b7ec1292b5c6b744509
+ sha256: 9c5e8eb73caa4c8f1945ac22af392495221f1809055114c4cc23609a8622a1eb
category: main
optional: false
- name: pygments
- version: 2.18.0
+ version: 2.19.1
manager: conda
platform: linux-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
hash:
- md5: b7f5c092b8f9800150d998a71b76d5a1
- sha256: 78267adf4e76d0d64ea2ffab008c501156c108bb08fecb703816fb63e279780b
+ md5: 232fb4577b6687b2d503ef8e254270c9
+ sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b
category: dev
optional: true
- name: pygments
- version: 2.18.0
+ version: 2.19.1
manager: conda
platform: win-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
hash:
- md5: b7f5c092b8f9800150d998a71b76d5a1
- sha256: 78267adf4e76d0d64ea2ffab008c501156c108bb08fecb703816fb63e279780b
+ md5: 232fb4577b6687b2d503ef8e254270c9
+ sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b
category: dev
optional: true
- name: pylint
- version: 3.2.3
+ version: 3.3.3
manager: conda
platform: linux-64
dependencies:
- astroid: '>=3.2.2,<3.3.0-dev0'
+ astroid: '>=3.3.8,<3.4.0-dev0'
colorama: '>=0.4.5'
dill: '>=0.3.7'
isort: '>=4.2.5,<6,!=5.13.0'
mccabe: '>=0.6,<0.8'
platformdirs: '>=2.2.0'
- python: '>=3.8.0'
+ python: '>=3.9'
tomli: '>=1.1.0'
tomlkit: '>=0.10.1'
typing_extensions: '>=3.10.0'
- url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.2.3-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.3.3-pyhd8ed1ab_0.conda
hash:
- md5: 206e71eea41f956fd1bb606d6b0c87fd
- sha256: 4d67967d4fbcb57859cb2162d1e621fa9cd649e9660448023d68cff440234da6
+ md5: 5842a1fa3b9b4f9fe7069b9ca5ed068d
+ sha256: a8192c823bfb6cdc57d2e12a8748ac1acb588c960c53e71c763f6359c5602e46
category: dev
optional: true
- name: pylint
- version: 3.2.3
+ version: 3.3.3
manager: conda
platform: win-64
dependencies:
- python: '>=3.8.0'
- tomli: '>=1.1.0'
- typing_extensions: '>=3.10.0'
- platformdirs: '>=2.2.0'
- tomlkit: '>=0.10.1'
+ astroid: '>=3.3.8,<3.4.0-dev0'
colorama: '>=0.4.5'
- mccabe: '>=0.6,<0.8'
dill: '>=0.3.7'
isort: '>=4.2.5,<6,!=5.13.0'
- astroid: '>=3.2.2,<3.3.0-dev0'
- url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.2.3-pyhd8ed1ab_0.conda
+ mccabe: '>=0.6,<0.8'
+ platformdirs: '>=2.2.0'
+ python: '>=3.9'
+ tomli: '>=1.1.0'
+ tomlkit: '>=0.10.1'
+ typing_extensions: '>=3.10.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.3.3-pyhd8ed1ab_0.conda
hash:
- md5: 206e71eea41f956fd1bb606d6b0c87fd
- sha256: 4d67967d4fbcb57859cb2162d1e621fa9cd649e9660448023d68cff440234da6
+ md5: 5842a1fa3b9b4f9fe7069b9ca5ed068d
+ sha256: a8192c823bfb6cdc57d2e12a8748ac1acb588c960c53e71c763f6359c5602e46
category: dev
optional: true
-- name: pyqt
- version: 5.15.4
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- pyqt5-sip: 12.9.0
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- qt-main: '>=5.15.3,<5.16.0a0'
- sip: '>=6.5.1,<6.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.4-py310h29803b5_1.tar.bz2
- hash:
- md5: d34f0b4c9ad5705d0ffe501d5d8aa26f
- sha256: 4d617e9c8a0239e0a35582ec3f0dd6fb8bddbbf6e6b70405e2bfca10a61f0a95
- category: dash
- optional: true
-- name: pyqt
- version: 5.15.4
- manager: conda
- platform: win-64
- dependencies:
- pyqt5-sip: 12.9.0
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- qt-main: '>=5.15.3,<5.16.0a0'
- sip: '>=6.5.1,<6.6.0a0'
- vc: '>=14.1,<15'
- vs2015_runtime: '>=14.16.27033'
- url: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.4-py310hbabf5d4_1.tar.bz2
- hash:
- md5: f4d9804ed7f3d2afa080564f96b44cc1
- sha256: 21df3670a342988286a490ae84890bbfc6f23bfd4e0f75549ee1c6349db4943b
- category: dash
- optional: true
-- name: pyqt5-sip
- version: 12.9.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- packaging: ''
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- sip: ''
- toml: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.9.0-py310hd8f1fbe_1.tar.bz2
- hash:
- md5: 21ae1ac216cfc85e24dc7c09570ddf31
- sha256: b4e9bbe6e8dc1b9df12d4e0c9b59fbf55a3fcf21d5918c56e3c8766544c05648
- category: dash
- optional: true
-- name: pyqt5-sip
- version: 12.9.0
- manager: conda
- platform: win-64
- dependencies:
- packaging: ''
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- sip: ''
- toml: ''
- vc: '>=14.1,<15'
- vs2015_runtime: '>=14.16.27033'
- url: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.9.0-py310h8a704f9_1.tar.bz2
- hash:
- md5: 8298355c95fcb75203719d80cb9e000c
- sha256: fe5f4059a0fff7d98c44b223311a5709ad6e1c7372af741be422b97b92f59e5e
- category: dash
- optional: true
-- name: pyqtwebengine
- version: 5.15.4
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- pyqt: '>=5.15.4,<5.16.0a0'
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- qt-main: '>=5.15.3,<5.16.0a0'
- qt-webengine: '>=5.15.4,<5.16.0a0'
- sip: '>=6.5.1,<6.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/pyqtwebengine-5.15.4-py310h29803b5_1.tar.bz2
- hash:
- md5: 9a63c4795f4490c8605522ab3bd38bfe
- sha256: c7d419f677a390a33516fe9bd524daff5537e92d8dc5dd9a332387503e880a85
- category: dash
- optional: true
-- name: pyqtwebengine
- version: 5.15.4
- manager: conda
- platform: win-64
- dependencies:
- pyqt: '>=5.15.4,<5.16.0a0'
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- qt-main: '>=5.15.3,<5.16.0a0'
- qt-webengine: '>=5.15.4,<5.16.0a0'
- sip: '>=6.5.1,<6.6.0a0'
- vc: '>=14.1,<15'
- vs2015_runtime: '>=14.16.27033'
- url: https://conda.anaconda.org/conda-forge/win-64/pyqtwebengine-5.15.4-py310hbabf5d4_1.tar.bz2
- hash:
- md5: 68709c9784092549680eb9a41eabf122
- sha256: d5a84368f708a922a17c6a9323b032dfa8e597f5b984db98cb373c0f71515c44
- category: dash
- optional: true
-- name: pyside2
- version: 5.15.8
- manager: conda
- platform: linux-64
- dependencies:
- __glibc: '>=2.17,<3.0.a0'
- libclang13: '>=15.0.7'
- libgcc-ng: '>=12'
- libstdcxx-ng: '>=12'
- libxml2: '>=2.12.3,<3.0.0a0'
- libxslt: '>=1.1.39,<2.0a0'
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- qt-main: '>=5.15.8,<5.16.0a0'
- xcb-util: '>=0.4.0,<0.5.0a0'
- xcb-util-image: '>=0.4.0,<0.5.0a0'
- xcb-util-keysyms: '>=0.4.0,<0.5.0a0'
- xcb-util-renderutil: '>=0.3.9,<0.4.0a0'
- xcb-util-wm: '>=0.4.1,<0.5.0a0'
- xorg-libice: '>=1.1.1,<2.0a0'
- xorg-libsm: '>=1.2.4,<2.0a0'
- xorg-libx11: '>=1.8.7,<2.0a0'
- xorg-libxext: '>=1.3.4,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/pyside2-5.15.8-py310hffc9498_4.conda
- hash:
- md5: 538e1179f1c7208d06753a68c3626e99
- sha256: dd8da54d008438d4c4221776023717cc1a5dcff2536fdd1a9982080fcfb17c7b
- category: dash
- optional: true
-- name: pyside2
- version: 5.15.8
- manager: conda
- platform: win-64
- dependencies:
- libclang13: '>=15.0.7'
- libxml2: '>=2.12.3,<3.0.0a0'
- libxslt: '>=1.1.39,<2.0a0'
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- qt-main: '>=5.15.8,<5.16.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/pyside2-5.15.8-py310h1e56762_4.conda
- hash:
- md5: d69462f5c54f28b94d74bcec969cedc0
- sha256: 526374fbd004621400a9509eaf3243a056e77232c0915e10dbfa39bdc2588691
- category: dash
- optional: true
-- name: pysocks
- version: 1.7.1
- manager: conda
- platform: linux-64
- dependencies:
- __unix: ''
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2
- hash:
- md5: 2a7de29fb590ca14b5243c4c812c8025
- sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b
- category: main
- optional: false
-- name: pysocks
- version: 1.7.1
- manager: conda
- platform: win-64
- dependencies:
- __win: ''
- win_inet_pton: ''
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2
- hash:
- md5: 56cd9fe388baac0e90c7149cfac95b60
- sha256: b3a612bc887f3dd0fb7c4199ad8e342bd148cf69a9b74fd9468a18cf2bef07b7
- category: main
- optional: false
- name: pytest
- version: 8.2.2
+ version: 8.3.4
manager: conda
platform: linux-64
dependencies:
@@ -3527,110 +1853,112 @@ package:
exceptiongroup: '>=1.0.0rc8'
iniconfig: ''
packaging: ''
- pluggy: <2.0,>=1.5
- python: '>=3.8'
+ pluggy: <2,>=1.5
+ python: '>=3.9'
tomli: '>=1'
- url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.4-pyhd8ed1ab_1.conda
hash:
- md5: 0f3f49c22c7ef3a1195fa61dad3c43be
- sha256: 00b7a49b31cf705b59edbd96219d8a67d2b9f51a913aa059fadd921b016965cb
+ md5: 799ed216dc6af62520f32aa39bc1c2bb
+ sha256: 75245ca9d0cbd6d38bb45ec02430189a9d4c21c055c5259739d738a2298d61b3
category: dev
optional: true
- name: pytest
- version: 8.2.2
+ version: 8.3.4
manager: conda
platform: win-64
dependencies:
- packaging: ''
colorama: ''
- iniconfig: ''
- python: '>=3.8'
exceptiongroup: '>=1.0.0rc8'
+ iniconfig: ''
+ packaging: ''
+ pluggy: <2,>=1.5
+ python: '>=3.9'
tomli: '>=1'
- pluggy: <2.0,>=1.5
- url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.4-pyhd8ed1ab_1.conda
hash:
- md5: 0f3f49c22c7ef3a1195fa61dad3c43be
- sha256: 00b7a49b31cf705b59edbd96219d8a67d2b9f51a913aa059fadd921b016965cb
+ md5: 799ed216dc6af62520f32aa39bc1c2bb
+ sha256: 75245ca9d0cbd6d38bb45ec02430189a9d4c21c055c5259739d738a2298d61b3
category: dev
optional: true
- name: pytest-cov
- version: 5.0.0
+ version: 6.0.0
manager: conda
platform: linux-64
dependencies:
- coverage: '>=5.2.1'
+ coverage: '>=7.5'
pytest: '>=4.6'
- python: '>=3.8'
+ python: '>=3.9'
toml: ''
- url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda
hash:
- md5: c54c0107057d67ddf077751339ec2c63
- sha256: 218306243faf3c36347131c2b36bb189daa948ac2e92c7ab52bb26cc8c157b3c
+ md5: 79963c319d1be62c8fd3e34555816e01
+ sha256: 09acac1974e10a639415be4be326dd21fa6d66ca51a01fb71532263fba6dccf6
category: dev
optional: true
- name: pytest-cov
- version: 5.0.0
+ version: 6.0.0
manager: conda
platform: win-64
dependencies:
- toml: ''
- python: '>=3.8'
+ coverage: '>=7.5'
pytest: '>=4.6'
- coverage: '>=5.2.1'
- url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ toml: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda
hash:
- md5: c54c0107057d67ddf077751339ec2c63
- sha256: 218306243faf3c36347131c2b36bb189daa948ac2e92c7ab52bb26cc8c157b3c
+ md5: 79963c319d1be62c8fd3e34555816e01
+ sha256: 09acac1974e10a639415be4be326dd21fa6d66ca51a01fb71532263fba6dccf6
category: dev
optional: true
- name: python
- version: 3.10.14
+ version: 3.10.16
manager: conda
platform: linux-64
dependencies:
+ __glibc: '>=2.17,<3.0.a0'
bzip2: '>=1.0.8,<2.0a0'
ld_impl_linux-64: '>=2.36.1'
libffi: '>=3.4,<4.0a0'
- libgcc-ng: '>=12'
+ libgcc: '>=13'
+ liblzma: '>=5.6.3,<6.0a0'
libnsl: '>=2.0.1,<2.1.0a0'
- libsqlite: '>=3.45.2,<4.0a0'
+ libsqlite: '>=3.47.0,<4.0a0'
libuuid: '>=2.38.1,<3.0a0'
libxcrypt: '>=4.4.36'
- libzlib: '>=1.2.13,<2.0.0a0'
- ncurses: '>=6.4.20240210,<7.0a0'
- openssl: '>=3.2.1,<4.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ncurses: '>=6.5,<7.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ pip: ''
readline: '>=8.2,<9.0a0'
tk: '>=8.6.13,<8.7.0a0'
tzdata: ''
- xz: '>=5.2.6,<6.0a0'
- pip: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.14-hd12c33a_0_cpython.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.16-he725a3c_1_cpython.conda
hash:
- md5: 2b4ba962994e8bd4be9ff5b64b75aff2
- sha256: 76a5d12e73542678b70a94570f7b0f7763f9a938f77f0e75d9ea615ef22aa84c
+ md5: b887811a901b3aa622a92caf03bc8917
+ sha256: 3f90a2d5062a73cd2dd8a0027718aee1db93f7975b9cfe529e2c9aeec2db262e
category: main
optional: false
- name: python
- version: 3.10.14
+ version: 3.10.16
manager: conda
platform: win-64
dependencies:
bzip2: '>=1.0.8,<2.0a0'
libffi: '>=3.4,<4.0a0'
- libsqlite: '>=3.45.2,<4.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- openssl: '>=3.2.1,<4.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libsqlite: '>=3.47.0,<4.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ pip: ''
tk: '>=8.6.13,<8.7.0a0'
tzdata: ''
- vc: '>=14.1,<15'
- vc14_runtime: '>=14.16.27033'
- xz: '>=5.2.6,<6.0a0'
- pip: ''
- url: https://conda.anaconda.org/conda-forge/win-64/python-3.10.14-h4de0772_0_cpython.conda
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/python-3.10.16-h37870fc_1_cpython.conda
hash:
- md5: 4a00e84f29d1eb418d84970598c444e1
- sha256: 332f97d9927b65857d6d2d4d50d66dce9b37da81edb67833ae6b88ad52acbd0c
+ md5: 5c292a7bd9c32a256ba7939b3e6dee03
+ sha256: 3392db6a7a90864d3fd1ce281859a49e27ee68121b63eece2ae6f1dbb2a8aaf1
category: main
optional: false
- name: python_abi
@@ -3638,10 +1966,10 @@ package:
manager: conda
platform: linux-64
dependencies: {}
- url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-5_cp310.conda
hash:
- md5: 26322ec5d7712c3ded99dd656142b8ce
- sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec
+ md5: 2921c34715e74b3587b4cff4d36844f9
+ sha256: 074d2f0b31f0333b7e553042b17ea54714b74263f8adda9a68a4bd8c7e219971
category: main
optional: false
- name: python_abi
@@ -3649,165 +1977,44 @@ package:
manager: conda
platform: win-64
dependencies: {}
- url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-4_cp310.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-5_cp310.conda
hash:
- md5: b41195997c14fb7473d26637ea4c3946
- sha256: 19066c462fd0e32c64503c688f77cb603beb4019b812caf855d03f2a5447960b
+ md5: 3c510f4c4383f5fbdb12fdd971b30d49
+ sha256: 0671bea4d5c5b8618ee7e2b1117d5a90901348ac459db57b654007f1644fa087
category: main
optional: false
-- name: qt-main
- version: 5.15.8
+- name: pyyaml
+ version: 6.0.2
manager: conda
platform: linux-64
dependencies:
__glibc: '>=2.17,<3.0.a0'
- alsa-lib: '>=1.2.11,<1.3.0a0'
- dbus: '>=1.13.6,<2.0a0'
- fontconfig: '>=2.14.2,<3.0a0'
- fonts-conda-ecosystem: ''
- freetype: '>=2.12.1,<3.0a0'
- gst-plugins-base: '>=1.22.9,<1.23.0a0'
- gstreamer: '>=1.22.9,<1.23.0a0'
- harfbuzz: '>=8.3.0,<9.0a0'
- icu: '>=73.2,<74.0a0'
- krb5: '>=1.21.2,<1.22.0a0'
- libclang-cpp15: '>=15.0.7,<15.1.0a0'
- libclang13: '>=15.0.7'
- libcups: '>=2.3.3,<2.4.0a0'
- libevent: '>=2.1.12,<2.1.13.0a0'
- libexpat: '>=2.6.2,<3.0a0'
- libgcc-ng: '>=12'
- libglib: '>=2.80.0,<3.0a0'
- libjpeg-turbo: '>=3.0.0,<4.0a0'
- libllvm15: '>=15.0.7,<15.1.0a0'
- libpng: '>=1.6.43,<1.7.0a0'
- libpq: '>=16.2,<17.0a0'
- libsqlite: '>=3.45.2,<4.0a0'
- libstdcxx-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- libxkbcommon: '>=1.6.0,<2.0a0'
- libxml2: '>=2.12.6,<3.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- mysql-libs: '>=8.3.0,<8.4.0a0'
- nspr: '>=4.35,<5.0a0'
- nss: '>=3.98,<4.0a0'
- openssl: '>=3.2.1,<4.0a0'
- pulseaudio-client: '>=17.0,<17.1.0a0'
- xcb-util: '>=0.4.0,<0.5.0a0'
- xcb-util-image: '>=0.4.0,<0.5.0a0'
- xcb-util-keysyms: '>=0.4.0,<0.5.0a0'
- xcb-util-renderutil: '>=0.3.9,<0.4.0a0'
- xcb-util-wm: '>=0.4.1,<0.5.0a0'
- xorg-libice: '>=1.1.1,<2.0a0'
- xorg-libsm: '>=1.2.4,<2.0a0'
- xorg-libx11: '>=1.8.7,<2.0a0'
- xorg-libxext: '>=1.3.4,<2.0a0'
- xorg-xf86vidmodeproto: ''
- zstd: '>=1.5.5,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-h112747c_20.conda
- hash:
- md5: cea58006ee5e891fc2a70c6b64d41363
- sha256: 14f9075640d1abc7f8834420564f80aeaaf4da75e40dc3e4187f93d39f952418
- category: dash
- optional: true
-- name: qt-main
- version: 5.15.8
- manager: conda
- platform: win-64
- dependencies:
- gst-plugins-base: '>=1.22.9,<1.23.0a0'
- gstreamer: '>=1.22.9,<1.23.0a0'
- icu: '>=73.2,<74.0a0'
- krb5: '>=1.21.2,<1.22.0a0'
- libclang13: '>=15.0.7'
- libglib: '>=2.80.0,<3.0a0'
- libjpeg-turbo: '>=3.0.0,<4.0a0'
- libpng: '>=1.6.43,<1.7.0a0'
- libsqlite: '>=3.45.2,<4.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- openssl: '>=3.2.1,<4.0a0'
- ucrt: '>=10.0.20348.0'
- vc: '>=14.2,<15'
- vc14_runtime: '>=14.29.30139'
- zstd: '>=1.5.5,<1.6.0a0'
- url: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h9e85ed6_20.conda
+ libgcc: '>=13'
+ python: '>=3.10,<3.11.0a0'
+ python_abi: 3.10.*
+ yaml: '>=0.2.5,<0.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py310ha75aee5_1.conda
hash:
- md5: 312511ef95bf1418f20dd50041a4bc85
- sha256: 548e948eb70174dad20151714a70319b9b2d220b75d407a88f4f5812f14fcdd2
- category: dash
- optional: true
-- name: qt-webengine
- version: 5.15.8
- manager: conda
- platform: linux-64
- dependencies:
- __glibc: '>=2.17,<3.0.a0'
- alsa-lib: '>=1.2.11,<1.3.0a0'
- dbus: '>=1.13.6,<2.0a0'
- fontconfig: '>=2.14.2,<3.0a0'
- fonts-conda-ecosystem: ''
- freetype: '>=2.12.1,<3.0a0'
- gst-plugins-base: '>=1.22.9,<1.23.0a0'
- gstreamer: '>=1.22.9,<1.23.0a0'
- harfbuzz: '>=8.3.0,<9.0a0'
- libcups: '>=2.3.3,<2.4.0a0'
- libevent: '>=2.1.12,<2.1.13.0a0'
- libexpat: '>=2.6.2,<3.0a0'
- libgcc-ng: '>=12'
- libglib: '>=2.80.0,<3.0a0'
- libiconv: '>=1.17,<2.0a0'
- libjpeg-turbo: '>=3.0.0,<4.0a0'
- libopus: '>=1.3.1,<2.0a0'
- libpng: '>=1.6.43,<1.7.0a0'
- libsqlite: '>=3.45.2,<4.0a0'
- libstdcxx-ng: '>=12'
- libwebp: ''
- libwebp-base: '>=1.3.2,<2.0a0'
- libxcb: '>=1.15,<1.16.0a0'
- libxkbcommon: '>=1.7.0,<2.0a0'
- libxml2: '>=2.12.6,<3.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- nspr: '>=4.35,<5.0a0'
- nss: '>=3.98,<4.0a0'
- pulseaudio-client: '>=17.0,<17.1.0a0'
- qt-main: '>=5.15.8,<5.16.0a0'
- xorg-libx11: '>=1.8.7,<2.0a0'
- xorg-libxcomposite: ''
- xorg-libxdamage: ''
- xorg-libxext: '>=1.3.4,<2.0a0'
- xorg-libxfixes: ''
- xorg-libxrandr: ''
- xorg-libxrender: '>=0.9.11,<0.10.0a0'
- xorg-libxtst: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/qt-webengine-5.15.8-h3e791b3_6.conda
- hash:
- md5: e6ae9b17fc93997289fc33fa7fc15f16
- sha256: 119589ba656d5f5f776b265f5c8cf8c28a914abb4ab3bf2dc9a67ec0953f529e
- category: dash
+ md5: 0d4c5c76ae5f5aac6f0be419963a19dd
+ sha256: bf6002aef0fd9753fa6de54e82307b2d7e67a1d701dba018869471426078d5d1
+ category: dev
optional: true
-- name: qt-webengine
- version: 5.15.8
+- name: pyyaml
+ version: 6.0.2
manager: conda
platform: win-64
dependencies:
- gst-plugins-base: '>=1.22.6,<1.23.0a0'
- gstreamer: '>=1.22.6,<1.23.0a0'
- libiconv: '>=1.17,<2.0a0'
- libjpeg-turbo: '>=3.0.0,<4.0a0'
- libpng: '>=1.6.39,<1.7.0a0'
- libsqlite: '>=3.44.0,<4.0a0'
- libwebp: ''
- libwebp-base: '>=1.3.2,<2.0a0'
- libzlib: '>=1.2.13,<2.0.0a0'
- qt-main: '>=5.15.8,<5.16.0a0'
+ python: '>=3.10,<3.11.0a0'
+ python_abi: 3.10.*
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/qt-webengine-5.15.8-h4bf5c4e_4.tar.bz2
+ yaml: '>=0.2.5,<0.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py310ha8f682b_1.conda
hash:
- md5: e080e2c05baf3821dc1272537d3df48a
- sha256: f8eba85995ba7557227a0f87cd3dbfc72ab763cb48c4a6b0e79715804b89fb93
- category: dash
+ md5: 308f62d05cbcbc633eeab4843def3b51
+ sha256: b30056440fdff1d52e96303f539ba3b4a33c19070993a75cc15c5414cb2a8b1d
+ category: dev
optional: true
- name: readline
version: '8.2'
@@ -3822,230 +2029,87 @@ package:
sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7
category: main
optional: false
-- name: requests
- version: 2.32.3
- manager: conda
- platform: linux-64
- dependencies:
- certifi: '>=2017.4.17'
- charset-normalizer: '>=2,<4'
- idna: '>=2.5,<4'
- python: '>=3.8'
- urllib3: '>=1.21.1,<3'
- url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda
- hash:
- md5: 5ede4753180c7a550a443c430dc8ab52
- sha256: 5845ffe82a6fa4d437a2eae1e32a1ad308d7ad349f61e337c0a890fe04c513cc
- category: main
- optional: false
-- name: requests
- version: 2.32.3
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- idna: '>=2.5,<4'
- certifi: '>=2017.4.17'
- charset-normalizer: '>=2,<4'
- urllib3: '>=1.21.1,<3'
- url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda
- hash:
- md5: 5ede4753180c7a550a443c430dc8ab52
- sha256: 5845ffe82a6fa4d437a2eae1e32a1ad308d7ad349f61e337c0a890fe04c513cc
- category: main
- optional: false
-- name: retrying
- version: 1.3.3
- manager: conda
- platform: linux-64
- dependencies:
- python: ''
- six: '>=1.7.0'
- url: https://conda.anaconda.org/conda-forge/noarch/retrying-1.3.3-py_2.tar.bz2
- hash:
- md5: a11f356d6f93b74b4a84e9501afd48b4
- sha256: ef407b88c45171f41eadcbbcfd41243cb137fe7438fc18f4cd08181c522664cf
- category: dash
- optional: true
-- name: retrying
- version: 1.3.3
- manager: conda
- platform: win-64
- dependencies:
- python: ''
- six: '>=1.7.0'
- url: https://conda.anaconda.org/conda-forge/noarch/retrying-1.3.3-py_2.tar.bz2
- hash:
- md5: a11f356d6f93b74b4a84e9501afd48b4
- sha256: ef407b88c45171f41eadcbbcfd41243cb137fe7438fc18f4cd08181c522664cf
- category: dash
- optional: true
- name: scipy
- version: 1.10.1
+ version: 1.14.1
manager: conda
platform: linux-64
dependencies:
+ __glibc: '>=2.17,<3.0.a0'
libblas: '>=3.9.0,<4.0a0'
libcblas: '>=3.9.0,<4.0a0'
- libgcc-ng: '>=12'
- libgfortran-ng: ''
- libgfortran5: '>=12.2.0'
+ libgcc: '>=13'
+ libgfortran: ''
+ libgfortran5: '>=13.3.0'
liblapack: '>=3.9.0,<4.0a0'
- libstdcxx-ng: '>=12'
- numpy: '>=1.21.6,<2.0a0'
- pooch: ''
+ libstdcxx: '>=13'
+ numpy: '>=1.23.5'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
- url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.10.1-py310ha4c1d20_3.conda
+ url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py310hfcf56fc_2.conda
hash:
- md5: 0414d57832172f3cdcf56b5f053e177d
- sha256: c7beb091db82a1be2fa9dafb878695b1e8bd6d7efe7764afa457cabfea2a93d3
+ md5: b5d548b2a7cf8d0c74fc6c4bf42d1ca5
+ sha256: a15008a51fd6b6dcaeb5563869ff0a8a015f1e0a8634a9d89d2c189eefbd7182
category: main
optional: false
- name: scipy
- version: 1.10.1
+ version: 1.14.1
manager: conda
platform: win-64
dependencies:
libblas: '>=3.9.0,<4.0a0'
libcblas: '>=3.9.0,<4.0a0'
liblapack: '>=3.9.0,<4.0a0'
- m2w64-gcc-libs: ''
- m2w64-gcc-libs-core: ''
- numpy: '>=1.21.6,<2.0a0'
- pooch: ''
+ numpy: '>=1.23.5'
python: '>=3.10,<3.11.0a0'
python_abi: 3.10.*
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.10.1-py310h578b7cb_3.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py310hbd0dde3_2.conda
hash:
- md5: d44c1bad75bb3e4d40066b3d3dd718ed
- sha256: 4a02b93fae869bc4e188aa808b1bed276dd7c06450b85bbb964d102ffc940184
+ md5: 72a2a7c264a8b48d113111756c2bbbb4
+ sha256: 761829fa9c91fdffff0ba5a1f56f7d4cc00bec71ca7fa06859dc7f5a98117273
category: main
optional: false
- name: setuptools
- version: 70.0.0
+ version: 75.8.0
manager: conda
platform: linux-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.0.0-pyhd8ed1ab_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda
hash:
- md5: c8ddb4f34a208df4dd42509a0f6a1c89
- sha256: daa4638d288cfdf3b0ecea395d8efa25cafc4ebf4026464a36c797c84541d2be
+ md5: 8f28e299c11afdd79e0ec1e279dcdc52
+ sha256: e0778e4f276e9a81b51c56f51ec22a27b4d8fc955abc0be77ad09ca9bea06bb9
category: main
optional: false
- name: setuptools
- version: 70.0.0
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.0.0-pyhd8ed1ab_0.conda
- hash:
- md5: c8ddb4f34a208df4dd42509a0f6a1c89
- sha256: daa4638d288cfdf3b0ecea395d8efa25cafc4ebf4026464a36c797c84541d2be
- category: main
- optional: false
-- name: sip
- version: 6.5.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.4.0'
- libstdcxx-ng: '>=9.4.0'
- packaging: ''
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- toml: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/sip-6.5.1-py310h122e73d_2.tar.bz2
- hash:
- md5: f485cb3efb4c179928a96fb2e02e6f7e
- sha256: e98c7f561aac9245b61eaeb08361498191d5063ad7d611dd3c07042a0b32d573
- category: dash
- optional: true
-- name: sip
- version: 6.5.1
- manager: conda
- platform: win-64
- dependencies:
- packaging: ''
- python: '>=3.10,<3.11.0a0'
- python_abi: 3.10.*
- toml: ''
- vc: '>=14.1,<15'
- vs2015_runtime: '>=14.16.27033'
- url: https://conda.anaconda.org/conda-forge/win-64/sip-6.5.1-py310h8a704f9_2.tar.bz2
- hash:
- md5: dd95dbd1be55f990230c51b6aadf8286
- sha256: 0445331304c3c5a49f797a2ee619a925c6c6e7980fea2c5e6163be84288fbf8b
- category: dash
- optional: true
-- name: six
- version: 1.16.0
- manager: conda
- platform: linux-64
- dependencies:
- python: ''
- url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2
- hash:
- md5: e5f25f8dbc060e9a8d912e432202afc2
- sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6
- category: dash
- optional: true
-- name: six
- version: 1.16.0
+ version: 75.8.0
manager: conda
platform: win-64
dependencies:
- python: ''
- url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda
hash:
- md5: e5f25f8dbc060e9a8d912e432202afc2
- sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6
- category: dash
- optional: true
+ md5: 8f28e299c11afdd79e0ec1e279dcdc52
+ sha256: e0778e4f276e9a81b51c56f51ec22a27b4d8fc955abc0be77ad09ca9bea06bb9
+ category: main
+ optional: false
- name: tbb
- version: 2021.12.0
+ version: 2021.13.0
manager: conda
platform: win-64
dependencies:
- libhwloc: '>=2.10.0,<2.10.1.0a0'
+ libhwloc: '>=2.11.2,<2.11.3.0a0'
ucrt: '>=10.0.20348.0'
vc: '>=14.2,<15'
vc14_runtime: '>=14.29.30139'
- url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.12.0-hc790b64_1.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda
hash:
- md5: e98333643abc739ebea1bac97a479828
- sha256: 87461c83a4f0d4f119af7368f20c47bbe0c27d963a7c22a3d08c71075077f855
+ md5: 9190dd0a23d925f7602f9628b3aed511
+ sha256: 03cc5442046485b03dd1120d0f49d35a7e522930a2ab82f275e938e17b07b302
category: main
optional: false
-- name: tenacity
- version: 8.3.0
- manager: conda
- platform: linux-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/tenacity-8.3.0-pyhd8ed1ab_0.conda
- hash:
- md5: 216cfa8e32bcd1447646768351df6059
- sha256: e5dff7fb47fdb919d3b9f26d504abf3a0e0136a6c9d8651e7591a89542f64a53
- category: dash
- optional: true
-- name: tenacity
- version: 8.3.0
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/tenacity-8.3.0-pyhd8ed1ab_0.conda
- hash:
- md5: 216cfa8e32bcd1447646768351df6059
- sha256: e5dff7fb47fdb919d3b9f26d504abf3a0e0136a6c9d8651e7591a89542f64a53
- category: dash
- optional: true
- name: tk
version: 8.6.13
manager: conda
@@ -4078,11 +2142,11 @@ package:
manager: conda
platform: linux-64
dependencies:
- python: '>=2.7'
- url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda
hash:
- md5: f832c45a477c78bebd107098db465095
- sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1
+ md5: b0dd904de08b7db706167240bf37b164
+ sha256: 34f3a83384ac3ac30aefd1309e69498d8a4aa0bf2d1f21c645f79b180e378938
category: dev
optional: true
- name: toml
@@ -4090,59 +2154,59 @@ package:
manager: conda
platform: win-64
dependencies:
- python: '>=2.7'
- url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda
hash:
- md5: f832c45a477c78bebd107098db465095
- sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1
+ md5: b0dd904de08b7db706167240bf37b164
+ sha256: 34f3a83384ac3ac30aefd1309e69498d8a4aa0bf2d1f21c645f79b180e378938
category: dev
optional: true
- name: tomli
- version: 2.0.1
+ version: 2.2.1
manager: conda
platform: linux-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
hash:
- md5: 5844808ffab9ebdb694585b50ba02a96
- sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f
+ md5: ac944244f1fed2eb49bae07193ae8215
+ sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e
category: dev
optional: true
- name: tomli
- version: 2.0.1
+ version: 2.2.1
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
hash:
- md5: 5844808ffab9ebdb694585b50ba02a96
- sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f
+ md5: ac944244f1fed2eb49bae07193ae8215
+ sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e
category: dev
optional: true
- name: tomlkit
- version: 0.12.5
+ version: 0.13.2
manager: conda
platform: linux-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.5-pyha770c72_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_1.conda
hash:
- md5: e5dde5caf905e9d95895e05f94967e14
- sha256: 5117eff35992d896ca177dfffc08be8a9b3bf3d306ddc3d8bf4b699cdf1e1b79
+ md5: 1d9ab4fc875c52db83f9c9b40af4e2c8
+ sha256: 986fae65f5568e95dbf858d08d77a0f9cca031345a98550f1d4b51d36d8811e2
category: dev
optional: true
- name: tomlkit
- version: 0.12.5
+ version: 0.13.2
manager: conda
platform: win-64
dependencies:
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.5-pyha770c72_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_1.conda
hash:
- md5: e5dde5caf905e9d95895e05f94967e14
- sha256: 5117eff35992d896ca177dfffc08be8a9b3bf3d306ddc3d8bf4b699cdf1e1b79
+ md5: 1d9ab4fc875c52db83f9c9b40af4e2c8
+ sha256: 986fae65f5568e95dbf858d08d77a0f9cca031345a98550f1d4b51d36d8811e2
category: dev
optional: true
- name: typing-extensions
@@ -4151,10 +2215,10 @@ package:
platform: linux-64
dependencies:
typing_extensions: 4.12.2
- url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
hash:
- md5: 52d648bd608f5737b123f510bb5514b5
- sha256: d3b9a8ed6da7c9f9553c5fd8a4fca9c3e0ab712fa5f497859f82337d67533b73
+ md5: b6a408c64b78ec7b779a3e5c7a902433
+ sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32
category: main
optional: false
- name: typing-extensions
@@ -4163,10 +2227,10 @@ package:
platform: win-64
dependencies:
typing_extensions: 4.12.2
- url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
hash:
- md5: 52d648bd608f5737b123f510bb5514b5
- sha256: d3b9a8ed6da7c9f9553c5fd8a4fca9c3e0ab712fa5f497859f82337d67533b73
+ md5: b6a408c64b78ec7b779a3e5c7a902433
+ sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32
category: main
optional: false
- name: typing_extensions
@@ -4174,11 +2238,11 @@ package:
manager: conda
platform: linux-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
hash:
- md5: ebe6952715e1d5eb567eeebf25250fa7
- sha256: 0fce54f8ec3e59f5ef3bb7641863be4e1bf1279623e5af3d3fa726e8f7628ddb
+ md5: d17f13df8b65464ca316cbc000a3cb64
+ sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568
category: main
optional: false
- name: typing_extensions
@@ -4186,33 +2250,33 @@ package:
manager: conda
platform: win-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
hash:
- md5: ebe6952715e1d5eb567eeebf25250fa7
- sha256: 0fce54f8ec3e59f5ef3bb7641863be4e1bf1279623e5af3d3fa726e8f7628ddb
+ md5: d17f13df8b65464ca316cbc000a3cb64
+ sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568
category: main
optional: false
- name: tzdata
- version: 2024a
+ version: 2024b
manager: conda
platform: linux-64
dependencies: {}
- url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
hash:
- md5: 161081fc7cec0bfda0d86d7cb595f8d8
- sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122
+ md5: 8ac3367aafb1cc0a068483c580af8015
+ sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf
category: main
optional: false
- name: tzdata
- version: 2024a
+ version: 2024b
manager: conda
platform: win-64
dependencies: {}
- url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda
+ url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
hash:
- md5: 161081fc7cec0bfda0d86d7cb595f8d8
- sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122
+ md5: 8ac3367aafb1cc0a068483c580af8015
+ sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf
category: main
optional: false
- name: ucrt
@@ -4220,38 +2284,10 @@ package:
manager: conda
platform: win-64
dependencies: {}
- url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2
- hash:
- md5: 72608f6cd3e5898229c3ea16deb1ac43
- sha256: f29cdaf8712008f6b419b8b1a403923b00ab2504bfe0fb2ba8eb60e72d4f14c6
- category: main
- optional: false
-- name: urllib3
- version: 2.2.1
- manager: conda
- platform: linux-64
- dependencies:
- brotli-python: '>=1.0.9'
- pysocks: '>=1.5.6,<2.0,!=1.5.7'
- python: '>=3.7'
- url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.1-pyhd8ed1ab_0.conda
- hash:
- md5: 08807a87fa7af10754d46f63b368e016
- sha256: d4009dcc9327684d6409706ce17656afbeae690d8522d3c9bc4df57649a352cd
- category: main
- optional: false
-- name: urllib3
- version: 2.2.1
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.7'
- brotli-python: '>=1.0.9'
- pysocks: '>=1.5.6,<2.0,!=1.5.7'
- url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.1-pyhd8ed1ab_0.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
hash:
- md5: 08807a87fa7af10754d46f63b368e016
- sha256: d4009dcc9327684d6409706ce17656afbeae690d8522d3c9bc4df57649a352cd
+ md5: 6797b005cd0f439c4c5c9ac565783700
+ sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450
category: main
optional: false
- name: vc
@@ -4259,603 +2295,139 @@ package:
manager: conda
platform: win-64
dependencies:
- vc14_runtime: '>=14.40.33810'
- url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda
+ vc14_runtime: '>=14.38.33135'
+ url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda
hash:
- md5: 8558f367e1d7700554f7cdb823c46faf
- sha256: 23ac5feb15a9adf3ab2b8c4dcd63650f8b7ae860c5ceb073e49cf71d203eddef
+ md5: 7c10ec3158d1eb4ddff7007c9101adb0
+ sha256: 986ddaf8feec2904eac9535a7ddb7acda1a1dfb9482088fdb8129f1595181663
category: main
optional: false
- name: vc14_runtime
- version: 14.40.33810
+ version: 14.42.34433
manager: conda
platform: win-64
dependencies:
ucrt: '>=10.0.20348.0'
- url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_20.conda
+ url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda
hash:
- md5: e39cc4c34c53654ec939558993d9dc5b
- sha256: af3cfa347e3d7c1277e9b964b0849a9a9f095bff61836cb3c3a89862fbc32e17
+ md5: 32b37d0cfa80da34548501cdc913a832
+ sha256: c483b090c4251a260aba6ff3e83a307bcfb5fb24ad7ced872ab5d02971bd3a49
category: main
optional: false
- name: vs2015_runtime
- version: 14.40.33810
+ version: 14.42.34433
manager: conda
platform: win-64
dependencies:
- vc14_runtime: '>=14.40.33810'
- url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda
+ vc14_runtime: '>=14.42.34433'
+ url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda
hash:
- md5: c21f1b4a3a30bbc3ef35a50957578e0e
- sha256: 0c2803f7a788c51f28235a7228dc2ab3f107b4b16ab0845a3e595c8c51e50a7a
+ md5: 5c176975ca2b8366abad3c97b3cd1e83
+ sha256: 568ce8151eaae256f1cef752fc78651ad7a86ff05153cc7a4740b52ae6536118
category: main
optional: false
-- name: werkzeug
- version: 3.0.3
- manager: conda
- platform: linux-64
- dependencies:
- markupsafe: '>=2.1.1'
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.0.3-pyhd8ed1ab_0.conda
- hash:
- md5: 2e60f5f388845027ee87fca6bee4ac23
- sha256: a77d0c67096999c35854e0480e3b978ef72ee008e295e92b0dc67116b2398661
- category: dash
- optional: true
-- name: werkzeug
- version: 3.0.3
- manager: conda
- platform: win-64
- dependencies:
- python: '>=3.8'
- markupsafe: '>=2.1.1'
- url: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.0.3-pyhd8ed1ab_0.conda
- hash:
- md5: 2e60f5f388845027ee87fca6bee4ac23
- sha256: a77d0c67096999c35854e0480e3b978ef72ee008e295e92b0dc67116b2398661
- category: dash
- optional: true
- name: wheel
- version: 0.43.0
+ version: 0.45.1
manager: conda
platform: linux-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda
hash:
- md5: 0b5293a157c2b5cd513dd1b03d8d3aae
- sha256: cb318f066afd6fd64619f14c030569faf3f53e6f50abf743b4c865e7d95b96bc
+ md5: 75cb7132eb58d97896e173ef12ac9986
+ sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce
category: main
optional: false
- name: wheel
- version: 0.43.0
+ version: 0.45.1
manager: conda
platform: win-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda
- hash:
- md5: 0b5293a157c2b5cd513dd1b03d8d3aae
- sha256: cb318f066afd6fd64619f14c030569faf3f53e6f50abf743b4c865e7d95b96bc
- category: main
- optional: false
-- name: win_inet_pton
- version: 1.1.0
- manager: conda
- platform: win-64
- dependencies:
- __win: ''
- python: '>=3.6'
- url: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda
hash:
- md5: 30878ecc4bd36e8deeea1e3c151b2e0b
- sha256: a11ae693a0645bf6c7b8a47bac030be9c0967d0b1924537b9ff7458e832c0511
+ md5: 75cb7132eb58d97896e173ef12ac9986
+ sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce
category: main
optional: false
-- name: xcb-util
- version: 0.4.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.0-hd590300_1.conda
- hash:
- md5: 9bfac7ccd94d54fd21a0501296d60424
- sha256: 0c91d87f0efdaadd4e56a5f024f8aab20ec30f90aa2ce9e4ebea05fbc20f71ad
- category: dash
- optional: true
-- name: xcb-util-image
- version: 0.4.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- xcb-util: '>=0.4.0,<0.5.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-h8ee46fc_1.conda
- hash:
- md5: 9d7bcddf49cbf727730af10e71022c73
- sha256: 92ffd68d2801dbc27afe223e04ae7e78ef605fc8575f107113c93c7bafbd15b0
- category: dash
- optional: true
-- name: xcb-util-keysyms
- version: 0.4.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.0-h8ee46fc_1.conda
- hash:
- md5: 632413adcd8bc16b515cab87a2932913
- sha256: 8451d92f25d6054a941b962179180728c48c62aab5bf20ac10fef713d5da6a9a
- category: dash
- optional: true
-- name: xcb-util-renderutil
- version: 0.3.9
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.9-hd590300_1.conda
- hash:
- md5: e995b155d938b6779da6ace6c6b13816
- sha256: 6987588e6fff5892056021c2ea52f7a0deefb2c7348e70d24750e2d60dabf009
- category: dash
- optional: true
-- name: xcb-util-wm
- version: 0.4.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.1-h8ee46fc_1.conda
- hash:
- md5: 90108a432fb5c6150ccfee3f03388656
- sha256: 08ba7147c7579249b6efd33397dc1a8c2404278053165aaecd39280fee705724
- category: dash
- optional: true
-- name: xkeyboard-config
- version: '2.42'
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- xorg-libx11: '>=1.8.9,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda
- hash:
- md5: b193af204da1bfb8c13882d131a14bd2
- sha256: 240caab7d9d85154ef373ecbac3ff9fb424add2029dbb124e949c6cbab2996dd
- category: dash
- optional: true
-- name: xorg-compositeproto
- version: 0.4.2
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-compositeproto-0.4.2-h7f98852_1001.tar.bz2
- hash:
- md5: 8bf27eeb636d3acce5c6cb570ba63487
- sha256: 8127541fb7ee4ba81cabd3ac464953ec928489bf01d647e5819cd7cd9428730c
- category: dash
- optional: true
-- name: xorg-damageproto
- version: 1.2.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-damageproto-1.2.1-h7f98852_1002.tar.bz2
- hash:
- md5: 58c9bb067637c5a13a045a7124eeb027
- sha256: b0a62b8eedc3e1b47fbbe3bbe6011542d36867b90f9b4bf251b78109ee1f0d9b
- category: dash
- optional: true
-- name: xorg-fixesproto
- version: '5.0'
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- xorg-xextproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2
- hash:
- md5: 65ad6e1eb4aed2b0611855aff05e04f6
- sha256: 5d2af1b40f82128221bace9466565eca87c97726bb80bbfcd03871813f3e1876
- category: dash
- optional: true
-- name: xorg-inputproto
- version: 2.3.2
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-h7f98852_1002.tar.bz2
- hash:
- md5: bcd1b3396ec6960cbc1d2855a9e60b2b
- sha256: 6c8c2803de0f643f8bad16ece3f9a7259e4a49247543239c182d66d5e3a129a7
- category: dash
- optional: true
-- name: xorg-kbproto
- version: 1.0.7
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2
- hash:
- md5: 4b230e8381279d76131116660f5a241a
- sha256: e90b0a6a5d41776f11add74aa030f789faf4efd3875c31964d6f9cfa63a10dd1
- category: dash
- optional: true
-- name: xorg-libice
- version: 1.1.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda
- hash:
- md5: b462a33c0be1421532f28bfe8f4a7514
- sha256: 5aa9b3682285bb2bf1a8adc064cb63aff76ef9178769740d855abb42b0d24236
- category: dash
- optional: true
-- name: xorg-libsm
- version: 1.2.4
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libuuid: '>=2.38.1,<3.0a0'
- xorg-libice: '>=1.1.1,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda
- hash:
- md5: 93ee23f12bc2e684548181256edd2cf6
- sha256: 089ad5f0453c604e18985480218a84b27009e9e6de9a0fa5f4a20b8778ede1f1
- category: dash
- optional: true
-- name: xorg-libx11
- version: 1.8.9
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libxcb: '>=1.15,<1.16.0a0'
- xorg-kbproto: ''
- xorg-xextproto: '>=7.3.0,<8.0a0'
- xorg-xproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-h8ee46fc_0.conda
- hash:
- md5: 077b6e8ad6a3ddb741fce2496dd01bec
- sha256: 3e53ba247f1ad68353f18aceba5bf8ce87e3dea930de85d36946844a7658c9fb
- category: dash
- optional: true
- name: xorg-libxau
- version: 1.0.11
+ version: 1.0.12
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
hash:
- md5: 2c80dc38fface310c9bd81b17037fee5
- sha256: 309751371d525ce50af7c87811b435c176915239fc9e132b99a25d5e1703f2d4
+ md5: f6ebe2cb3f82ba6c057dde5d9debe4f7
+ sha256: ed10c9283974d311855ae08a16dfd7e56241fac632aec3b92e3cfe73cff31038
category: main
optional: false
- name: xorg-libxau
- version: 1.0.11
+ version: 1.0.12
manager: conda
platform: win-64
dependencies:
- m2w64-gcc-libs: ''
- m2w64-gcc-libs-core: ''
- url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.12-h0e40799_0.conda
hash:
- md5: c46ba8712093cb0114404ae8a7582e1a
- sha256: 8c5b976e3b36001bdefdb41fb70415f9c07eff631f1f0155f3225a7649320e77
+ md5: 2ffbfae4548098297c033228256eb96e
+ sha256: 047836241b2712aab1e29474a6f728647bff3ab57de2806b0bb0a6cf9a2d2634
category: main
optional: false
-- name: xorg-libxcomposite
- version: 0.4.6
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- xorg-compositeproto: ''
- xorg-libx11: '>=1.7.2,<2.0a0'
- xorg-libxfixes: ''
- xorg-xproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcomposite-0.4.6-h0b41bf4_1.conda
- hash:
- md5: ada6777364a0ea2407a1894e54779cc4
- sha256: 7c5806a8de1ce0d4e0c7aae8d29565f11fba6c6da4a787c3e09f1fcc428725a4
- category: dash
- optional: true
-- name: xorg-libxdamage
- version: 1.1.5
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.4.0'
- xorg-damageproto: ''
- xorg-libx11: '>=1.7.2,<2.0a0'
- xorg-libxext: 1.3.*
- xorg-libxfixes: ''
- xorg-util-macros: ''
- xorg-xproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.5-h7f98852_1.tar.bz2
- hash:
- md5: bebd3814ec2355fab6a474b07ed73093
- sha256: 4cab878855e48669b64dd7522a518433ac83bb56fa79743d12db316326e2e39e
- category: dash
- optional: true
- name: xorg-libxdmcp
- version: 1.1.3
+ version: 1.1.5
manager: conda
platform: linux-64
dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
hash:
- md5: be93aabceefa2fac576e971aef407908
- sha256: 4df7c5ee11b8686d3453e7f3f4aa20ceef441262b49860733066c52cfd0e4a77
+ md5: 8035c64cb77ed555e3f150b7b3972480
+ sha256: 6b250f3e59db07c2514057944a3ea2044d6a8cdde8a47b6497c254520fade1ee
category: main
optional: false
- name: xorg-libxdmcp
- version: 1.1.3
- manager: conda
- platform: win-64
- dependencies:
- m2w64-gcc-libs: ''
- url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2
- hash:
- md5: 46878ebb6b9cbd8afcf8088d7ef00ece
- sha256: f51205d33c07d744ec177243e5d9b874002910c731954f2c8da82459be462b93
- category: main
- optional: false
-- name: xorg-libxext
- version: 1.3.4
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- xorg-libx11: '>=1.7.2,<2.0a0'
- xorg-xextproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda
- hash:
- md5: 82b6df12252e6f32402b96dacc656fec
- sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249
- category: dash
- optional: true
-- name: xorg-libxfixes
- version: 5.0.3
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- xorg-fixesproto: ''
- xorg-libx11: '>=1.7.0,<2.0a0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2
- hash:
- md5: e9a21aa4d5e3e5f1aed71e8cefd46b6a
- sha256: 1e426a1abb774ef1dcf741945ed5c42ad12ea2dc7aeed7682d293879c3e1e4c3
- category: dash
- optional: true
-- name: xorg-libxi
- version: 1.7.10
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- xorg-inputproto: ''
- xorg-libx11: '>=1.7.0,<2.0a0'
- xorg-libxext: 1.3.*
- xorg-libxfixes: 5.0.*
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h7f98852_0.tar.bz2
- hash:
- md5: e77615e5141cad5a2acaa043d1cf0ca5
- sha256: 745c1284a96b4282fe6fe122b2643e1e8c26a7ff40b733a8f4b61357238c4e68
- category: dash
- optional: true
-- name: xorg-libxrandr
- version: 1.5.2
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- xorg-libx11: '>=1.7.1,<2.0a0'
- xorg-libxext: ''
- xorg-libxrender: ''
- xorg-randrproto: ''
- xorg-renderproto: ''
- xorg-xextproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.2-h7f98852_1.tar.bz2
- hash:
- md5: 5b0f7da25a4556c9619c3e4b4a98ab07
- sha256: ffd075a463896ed86d9519e26dc36f754b695b9c1e1b6115d34fe138b36d8200
- category: dash
- optional: true
-- name: xorg-libxrender
- version: 0.9.11
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- xorg-libx11: '>=1.8.6,<2.0a0'
- xorg-renderproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda
- hash:
- md5: ed67c36f215b310412b2af935bf3e530
- sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7
- category: dash
- optional: true
-- name: xorg-libxtst
- version: 1.2.3
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- xorg-inputproto: ''
- xorg-libx11: '>=1.7.1,<2.0a0'
- xorg-libxext: 1.3.*
- xorg-libxi: 1.7.*
- xorg-recordproto: ''
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.3-h7f98852_1002.tar.bz2
- hash:
- md5: a220b1a513e19d5cb56c1311d44f12e6
- sha256: 9a51ae2869b9a47735539dada9d85534418a765d1461c9f91fe7564f3ee75e87
- category: dash
- optional: true
-- name: xorg-randrproto
- version: 1.5.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-randrproto-1.5.0-h7f98852_1001.tar.bz2
- hash:
- md5: 68cce654461713977dac6f9ac1bce89a
- sha256: f5c7c2de3655a95153e900118959df6a50b6c104a3d7afaee3eadbf86b85fa2e
- category: dash
- optional: true
-- name: xorg-recordproto
- version: 1.14.2
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-recordproto-1.14.2-h7f98852_1002.tar.bz2
- hash:
- md5: 2f835e6c386e73c6faaddfe9eda67e98
- sha256: 4b91d48fed368c83eafd03891ebfd5bae0a03adc087ebea8a680ae22da99a85f
- category: dash
- optional: true
-- name: xorg-renderproto
- version: 0.11.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2
- hash:
- md5: 06feff3d2634e3097ce2fe681474b534
- sha256: 38942930f233d1898594dd9edf4b0c0786f3dbc12065a0c308634c37fd936034
- category: dash
- optional: true
-- name: xorg-util-macros
- version: 1.19.3
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-util-macros-1.19.3-h7f98852_0.tar.bz2
- hash:
- md5: b1780cc89cf3949f670d6ca2aa6a7e42
- sha256: 128591045b700d375de98be76f215a0b67c9d6939523b743edc0dca389cdb4be
- category: dash
- optional: true
-- name: xorg-xextproto
- version: 7.3.0
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda
- hash:
- md5: bce9f945da8ad2ae9b1d7165a64d0f87
- sha256: b8dda3b560e8a7830fe23be1c58cc41f407b2e20ae2f3b6901eb5842ba62b743
- category: dash
- optional: true
-- name: xorg-xf86vidmodeproto
- version: 2.3.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2
- hash:
- md5: 3ceea9668625c18f19530de98b15d5b0
- sha256: 43398aeacad5b8753b7a1c12cb6bca36124e0c842330372635879c350c430791
- category: dash
- optional: true
-- name: xorg-xproto
- version: 7.0.31
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=9.3.0'
- url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2
- hash:
- md5: b4a4381d54784606820704f7b5f05a15
- sha256: f197bb742a17c78234c24605ad1fe2d88b1d25f332b75d73e5ba8cf8fbc2a10d
- category: dash
- optional: true
-- name: xz
- version: 5.2.6
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2
- hash:
- md5: 2161070d867d1b1204ea749c8eec4ef0
- sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162
- category: main
- optional: false
-- name: xz
- version: 5.2.6
+ version: 1.1.5
manager: conda
platform: win-64
dependencies:
- vc: '>=14.1,<15'
- vs2015_runtime: '>=14.16.27033'
- url: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda
hash:
- md5: 515d77642eaa3639413c6b1bc3f94219
- sha256: 54d9778f75a02723784dc63aff4126ff6e6749ba21d11a6d03c1f4775f269fe0
+ md5: 8393c0f7e7870b4eb45553326f81f0ff
+ sha256: 9075f98dcaa8e9957e4a3d9d30db05c7578a536950a31c200854c5c34e1edb2c
category: main
optional: false
-- name: zipp
- version: 3.19.2
+- name: yaml
+ version: 0.2.5
manager: conda
platform: linux-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda
+ libgcc-ng: '>=9.4.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2
hash:
- md5: 49808e59df5535116f6878b2a820d6f4
- sha256: e3e9c8501f581bfdc4700b83ea283395e237ec6b9b5cbfbedb556e1da6f4fdc9
- category: dash
+ md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae
+ sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535
+ category: dev
optional: true
-- name: zipp
- version: 3.19.2
+- name: yaml
+ version: 0.2.5
manager: conda
platform: win-64
dependencies:
- python: '>=3.8'
- url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda
- hash:
- md5: 49808e59df5535116f6878b2a820d6f4
- sha256: e3e9c8501f581bfdc4700b83ea283395e237ec6b9b5cbfbedb556e1da6f4fdc9
- category: dash
- optional: true
-- name: zlib
- version: 1.3.1
- manager: conda
- platform: linux-64
- dependencies:
- libgcc-ng: '>=12'
- libzlib: 1.3.1
- url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda
+ vc: '>=14.1,<15.0a0'
+ vs2015_runtime: '>=14.16.27012'
+ url: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2
hash:
- md5: 9653f1bf3766164d0e65fa723cabbc54
- sha256: cee16ab07a11303de721915f0a269e8c7a54a5c834aa52f74b1cc3a59000ade8
- category: dash
+ md5: adbfb9f45d1004a26763652246a33764
+ sha256: 4e2246383003acbad9682c7c63178e2e715ad0eb84f03a8df1fbfba455dfedc5
+ category: dev
optional: true
- name: zstd
version: 1.5.6
@@ -4887,28 +2459,30 @@ package:
category: main
optional: false
- name: geoh5py
- version: 0.9.0
+ version: 0.10.0rc1
manager: pip
platform: linux-64
dependencies:
- pillow: '>=10.3.0,<10.4.0'
h5py: '>=3.2.1,<4.0.0'
- numpy: '>=1.23.5,<1.24.0'
- url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/analyst-pypi-local/geoh5py/0.9.0/geoh5py-0.9.0-py3-none-any.whl
+ numpy: '>=1.26.0,<1.27.0'
+ pillow: '>=10.3.0,<10.4.0'
+ pydantic: '>=2.5.2,<3.0.0'
+ url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/public-pypi-dev/geoh5py/0.10.0-rc.1/geoh5py-0.10.0rc1-py3-none-any.whl
hash:
- sha256: dd2d16a9ed409f4bad13e165d1ad81641e3be941ba35c6c6a66a8ed4950271f7
+ sha256: 50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
category: main
optional: false
- name: geoh5py
- version: 0.9.0
+ version: 0.10.0rc1
manager: pip
platform: win-64
dependencies:
- pillow: '>=10.3.0,<10.4.0'
h5py: '>=3.2.1,<4.0.0'
- numpy: '>=1.23.5,<1.24.0'
- url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/analyst-pypi-local/geoh5py/0.9.0/geoh5py-0.9.0-py3-none-any.whl
+ numpy: '>=1.26.0,<1.27.0'
+ pillow: '>=10.3.0,<10.4.0'
+ pydantic: '>=2.5.2,<3.0.0'
+ url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/public-pypi-dev/geoh5py/0.10.0-rc.1/geoh5py-0.10.0rc1-py3-none-any.whl
hash:
- sha256: dd2d16a9ed409f4bad13e165d1ad81641e3be941ba35c6c6a66a8ed4950271f7
+ sha256: 50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
category: main
optional: false
diff --git a/py-3.11.conda-lock.yml b/py-3.11.conda-lock.yml
new file mode 100644
index 00000000..7026c9bd
--- /dev/null
+++ b/py-3.11.conda-lock.yml
@@ -0,0 +1,2515 @@
+# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT!
+#
+# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike
+# e.g. `conda env create`, the resulting environment will not change as new package versions become
+# available, unless you explicitly update the lock file.
+#
+# Install this environment as "YOURENV" with:
+# conda-lock install -n YOURENV py-3.11.conda-lock.yml
+# This lock contains optional development dependencies. Include them in the installed environment with:
+# conda-lock install --dev-dependencies -n YOURENV py-3.11.conda-lock.yml
+# To update a single package to the latest version compatible with the version constraints in the source:
+# conda-lock lock --lockfile py-3.11.conda-lock.yml --update PACKAGE
+# To re-solve the entire environment, e.g. after changing a version constraint in the source file:
+# conda-lock -f pyproject.toml -f environments/env-python-3.11.yml --lockfile py-3.11.conda-lock.yml
+version: 1
+metadata:
+ content_hash:
+ win-64: ff4199daa11db42b0b09f0d9c2e0d77c483a993f0bbfed46cb167a15ec5dcb75
+ linux-64: a9905f1b5583d7d9f9c71efa8cb896c8de8d219a5d086115d65d93a6400043bc
+ channels:
+ - url: conda-forge
+ used_env_vars: []
+ - url: nodefaults
+ used_env_vars: []
+ platforms:
+ - win-64
+ - linux-64
+ sources:
+ - pyproject.toml
+ - environments/env-python-3.11.yml
+package:
+- name: _libgcc_mutex
+ version: '0.1'
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ hash:
+ md5: d7c89558ba9fa0495403155b64376d81
+ sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726
+ category: main
+ optional: false
+- name: _openmp_mutex
+ version: '4.5'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ _libgcc_mutex: '0.1'
+ libgomp: '>=7.5.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ hash:
+ md5: 73aaf86a425cc6e73fcf236a5a46396d
+ sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22
+ category: main
+ optional: false
+- name: _openmp_mutex
+ version: '4.5'
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgomp: '>=7.5.0'
+ libwinpthread: '>=12.0.0.r2.ggc561118da'
+ url: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
+ hash:
+ md5: 37e16618af5c4851a3f3d66dd0e11141
+ sha256: 1a62cd1f215fe0902e7004089693a78347a30ad687781dfda2289cab000e652d
+ category: main
+ optional: false
+- name: annotated-types
+ version: 0.7.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ typing-extensions: '>=4.0.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 2934f256a8acfe48f6ebb4fce6cde29c
+ sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48
+ category: main
+ optional: false
+- name: annotated-types
+ version: 0.7.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ typing-extensions: '>=4.0.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 2934f256a8acfe48f6ebb4fce6cde29c
+ sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48
+ category: main
+ optional: false
+- name: astroid
+ version: 3.3.8
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.3.8-py311h38be061_0.conda
+ hash:
+ md5: 1d40246388ce17d0ada77a5da37d72d8
+ sha256: f99e14e537e4d5a57275b788c2ac5ef19b7c2b00f706ab5262d27a5d5f85471e
+ category: dev
+ optional: true
+- name: astroid
+ version: 3.3.8
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ url: https://conda.anaconda.org/conda-forge/win-64/astroid-3.3.8-py311h1ea47a8_0.conda
+ hash:
+ md5: 1eb65d33ea4f51068bb40220d65c2f33
+ sha256: 47921cda617bf75c9005ba3f2844c46ceeb7beff37dc256a1c77e9bd00b6e2cd
+ category: dev
+ optional: true
+- name: bzip2
+ version: 1.0.8
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ hash:
+ md5: 62ee74e96c5ebb0af99386de58cf9553
+ sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d
+ category: main
+ optional: false
+- name: bzip2
+ version: 1.0.8
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ hash:
+ md5: 276e7ffe9ffe39688abc665ef0f45596
+ sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b
+ category: main
+ optional: false
+- name: c-ares
+ version: 1.34.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda
+ hash:
+ md5: e2775acf57efd5af15b8e3d1d74d72d3
+ sha256: d4f28d87b6339b94f74762c0076e29c8ef8ddfff51a564a92da2843573c18320
+ category: main
+ optional: false
+- name: ca-certificates
+ version: 2024.12.14
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda
+ hash:
+ md5: 720523eb0d6a9b0f6120c16b2aa4e7de
+ sha256: 1afd7274cbc9a334d6d0bc62fa760acc7afdaceb0b91a8df370ec01fd75dc7dd
+ category: main
+ optional: false
+- name: ca-certificates
+ version: 2024.12.14
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda
+ hash:
+ md5: cb2eaeb88549ddb27af533eccf9a45c1
+ sha256: 424d82db36cd26234bc4772426170efd60e888c2aed0099a257a95e131683a5e
+ category: main
+ optional: false
+- name: cached-property
+ version: 1.5.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ cached_property: '>=1.5.2,<1.5.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2
+ hash:
+ md5: 9b347a7ec10940d3f7941ff6c460b551
+ sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17
+ category: main
+ optional: false
+- name: cached-property
+ version: 1.5.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ cached_property: '>=1.5.2,<1.5.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2
+ hash:
+ md5: 9b347a7ec10940d3f7941ff6c460b551
+ sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17
+ category: main
+ optional: false
+- name: cached_property
+ version: 1.5.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.6'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2
+ hash:
+ md5: 576d629e47797577ab0f1b351297ef4a
+ sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7
+ category: main
+ optional: false
+- name: cached_property
+ version: 1.5.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.6'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2
+ hash:
+ md5: 576d629e47797577ab0f1b351297ef4a
+ sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7
+ category: main
+ optional: false
+- name: colorama
+ version: 0.4.6
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 962b9857ee8e7018c22f2776ffa0b2d7
+ sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
+ category: dev
+ optional: true
+- name: colorama
+ version: 0.4.6
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 962b9857ee8e7018c22f2776ffa0b2d7
+ sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
+ category: dev
+ optional: true
+- name: coverage
+ version: 7.6.10
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ tomli: ''
+ url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.10-py311h2dc5d0c_0.conda
+ hash:
+ md5: 2a772b30e69ba8319651e9f3ab01608f
+ sha256: c5782231c9255f0492728bfb74ebcddf2dd8f5561d4f792d9d186d9d360242b8
+ category: dev
+ optional: true
+- name: coverage
+ version: 7.6.10
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ tomli: ''
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.10-py311h5082efb_0.conda
+ hash:
+ md5: b985c39f9a9e62e2c16cd71e3832968a
+ sha256: f634fc561dc5969bf1614c724d5961804fb213100c08a9fad5aa543e51995daf
+ category: dev
+ optional: true
+- name: dill
+ version: 0.3.9
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.9-pyhd8ed1ab_1.conda
+ hash:
+ md5: 5e11310fca410e9f31381157079dee55
+ sha256: 499be2f8e4397a46249e8e500535795704af27e56360ae0c964904140b41454a
+ category: dev
+ optional: true
+- name: dill
+ version: 0.3.9
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.9-pyhd8ed1ab_1.conda
+ hash:
+ md5: 5e11310fca410e9f31381157079dee55
+ sha256: 499be2f8e4397a46249e8e500535795704af27e56360ae0c964904140b41454a
+ category: dev
+ optional: true
+- name: exceptiongroup
+ version: 1.2.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: a16662747cdeb9abbac74d0057cc976e
+ sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701
+ category: dev
+ optional: true
+- name: exceptiongroup
+ version: 1.2.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: a16662747cdeb9abbac74d0057cc976e
+ sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701
+ category: dev
+ optional: true
+- name: freetype
+ version: 2.12.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libpng: '>=1.6.39,<1.7.0a0'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda
+ hash:
+ md5: 9ae35c3d96db2c94ce0cef86efdfa2cb
+ sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6
+ category: main
+ optional: false
+- name: freetype
+ version: 2.12.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ libpng: '>=1.6.39,<1.7.0a0'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda
+ hash:
+ md5: 3761b23693f768dc75a8fd0a73ca053f
+ sha256: 2c53ee8879e05e149a9e525481d36adfd660a6abda26fd731376fa64ff03e728
+ category: main
+ optional: false
+- name: h5py
+ version: 3.12.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ cached-property: ''
+ hdf5: '>=1.14.4,<1.14.5.0a0'
+ libgcc: '>=13'
+ numpy: '>=1.19,<3'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.12.1-nompi_py311h5ed33ec_103.conda
+ hash:
+ md5: 6926bba026ef161a44a4f43e76595820
+ sha256: 0ca66916ea090a57fa57e52f14acbbb085c49f54ab9343feb577532b51f8deb9
+ category: main
+ optional: false
+- name: h5py
+ version: 3.12.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ cached-property: ''
+ hdf5: '>=1.14.4,<1.14.5.0a0'
+ numpy: '>=1.19,<3'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/h5py-3.12.1-nompi_py311haea1c80_103.conda
+ hash:
+ md5: 124374ec9884c331890d9c9483277eaa
+ sha256: 941b85e23a079c9587571acb3cbbc418f5ddff2f06ab7d87006ae9aeace640dc
+ category: main
+ optional: false
+- name: hdf5
+ version: 1.14.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libaec: '>=1.1.3,<2.0a0'
+ libcurl: '>=8.10.1,<9.0a0'
+ libgcc: '>=13'
+ libgfortran: ''
+ libgfortran5: '>=13.3.0'
+ libstdcxx: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_105.conda
+ hash:
+ md5: d76fff0092b6389a12134ddebc0929bd
+ sha256: 93d2bfc672f3ee0988d277ce463330a467f3686d3f7ee37812a3d8ca11776d77
+ category: main
+ optional: false
+- name: hdf5
+ version: 1.14.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ libaec: '>=1.1.3,<2.0a0'
+ libcurl: '>=8.10.1,<9.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_105.conda
+ hash:
+ md5: 4381be33460283890c34341ecfa42d97
+ sha256: e8ced65c604a3b9e4803758a25149d71d8096f186fe876817a0d1d97190550c0
+ category: main
+ optional: false
+- name: iniconfig
+ version: 2.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 6837f3eff7dcea42ecd714ce1ac2b108
+ sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
+ category: dev
+ optional: true
+- name: iniconfig
+ version: 2.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 6837f3eff7dcea42ecd714ce1ac2b108
+ sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
+ category: dev
+ optional: true
+- name: intel-openmp
+ version: 2024.2.1
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda
+ hash:
+ md5: 2d89243bfb53652c182a7c73182cce4f
+ sha256: 0fd2b0b84c854029041b0ede8f4c2369242ee92acc0092f8407b1fe9238a8209
+ category: main
+ optional: false
+- name: isort
+ version: 5.13.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9,<4.0'
+ setuptools: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: ef7dc847f19fe4859d5aaa33385bf509
+ sha256: 6ebf6e83c2d449760ad5c5cc344711d6404f9e3cf6952811b8678aca5a4ab01f
+ category: dev
+ optional: true
+- name: isort
+ version: 5.13.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9,<4.0'
+ setuptools: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: ef7dc847f19fe4859d5aaa33385bf509
+ sha256: 6ebf6e83c2d449760ad5c5cc344711d6404f9e3cf6952811b8678aca5a4ab01f
+ category: dev
+ optional: true
+- name: jinja2
+ version: 3.1.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ markupsafe: '>=2.0'
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda
+ hash:
+ md5: 2752a6ed44105bfb18c9bef1177d9dcd
+ sha256: 98977694b9ecaa3218662f843425f39501f81973c450f995eec68f1803ed71c3
+ category: dev
+ optional: true
+- name: jinja2
+ version: 3.1.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ markupsafe: '>=2.0'
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda
+ hash:
+ md5: 2752a6ed44105bfb18c9bef1177d9dcd
+ sha256: 98977694b9ecaa3218662f843425f39501f81973c450f995eec68f1803ed71c3
+ category: dev
+ optional: true
+- name: keyutils
+ version: 1.6.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=10.3.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
+ hash:
+ md5: 30186d27e2c9fa62b45fb1476b7200e3
+ sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb
+ category: main
+ optional: false
+- name: krb5
+ version: 1.21.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ keyutils: '>=1.6.1,<2.0a0'
+ libedit: '>=3.1.20191231,<4.0a0'
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ openssl: '>=3.3.1,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
+ hash:
+ md5: 3f43953b7d3fb3aaa1d0d0723d91e368
+ sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238
+ category: main
+ optional: false
+- name: krb5
+ version: 1.21.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ openssl: '>=3.3.1,<4.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
+ hash:
+ md5: 31aec030344e962fbd7dbbbbd68e60a9
+ sha256: 18e8b3430d7d232dad132f574268f56b3eb1a19431d6d5de8c53c29e6c18fa81
+ category: main
+ optional: false
+- name: lcms2
+ version: '2.16'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda
+ hash:
+ md5: 51bb7010fc86f70eee639b4bb7a894f5
+ sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041
+ category: main
+ optional: false
+- name: lcms2
+ version: '2.16'
+ manager: conda
+ platform: win-64
+ dependencies:
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda
+ hash:
+ md5: d3592435917b62a8becff3a60db674f6
+ sha256: f9fd9e80e46358a57d9bb97b1e37a03da4022143b019aa3c4476d8a7795de290
+ category: main
+ optional: false
+- name: ld_impl_linux-64
+ version: '2.43'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
+ hash:
+ md5: 048b02e3962f066da18efe3a21b77672
+ sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe
+ category: main
+ optional: false
+- name: lerc
+ version: 4.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2
+ hash:
+ md5: 76bbff344f0134279f225174e9064c8f
+ sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12
+ category: main
+ optional: false
+- name: lerc
+ version: 4.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc: '>=14.2,<15'
+ vs2015_runtime: '>=14.29.30037'
+ url: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2
+ hash:
+ md5: 1900cb3cab5055833cfddb0ba233b074
+ sha256: f4f39d7f6a2f9b407f8fb567a6c25755270421731d70f0ff331f5de4fa367488
+ category: main
+ optional: false
+- name: libaec
+ version: 1.1.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda
+ hash:
+ md5: 5e97e271911b8b2001a8b71860c32faa
+ sha256: 2ef420a655528bca9d269086cf33b7e90d2f54ad941b437fb1ed5eca87cee017
+ category: main
+ optional: false
+- name: libaec
+ version: 1.1.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda
+ hash:
+ md5: 8723000f6ffdbdaef16025f0a01b64c5
+ sha256: f5c293d3cfc00f71dfdb64bd65ab53625565f8778fc2d5790575bef238976ebf
+ category: main
+ optional: false
+- name: libblas
+ version: 3.9.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libopenblas: '>=0.3.28,<1.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-26_linux64_openblas.conda
+ hash:
+ md5: ac52800af2e0c0e7dac770b435ce768a
+ sha256: 30bd658682b124243f8e52d8edf8a19e7be1bc31e4fe4baec30a64002dc8cd0c
+ category: main
+ optional: false
+- name: libblas
+ version: 3.9.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ mkl: 2024.2.2
+ url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-26_win64_mkl.conda
+ hash:
+ md5: ecfe732dbad1be001826fdb7e5e891b5
+ sha256: d631993a5cf5b8d3201f881084fce7ff6a26cd49883e189bf582cd0b7975c80a
+ category: main
+ optional: false
+- name: libcblas
+ version: 3.9.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-26_linux64_openblas.conda
+ hash:
+ md5: ebcc5f37a435aa3c19640533c82f8d76
+ sha256: 9c74e536c9bc868e356ffd43f81c2cb398aec84b40fcadc312315b164a5500ee
+ category: main
+ optional: false
+- name: libcblas
+ version: 3.9.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-26_win64_mkl.conda
+ hash:
+ md5: 652f3adcb9d329050a325416edb14246
+ sha256: 66699c4f84fd36b67a34a7ac59fb86e73ee0c5b3c3502441041c8dd51f0a7d49
+ category: main
+ optional: false
+- name: libcurl
+ version: 8.11.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ krb5: '>=1.21.3,<1.22.0a0'
+ libgcc: '>=13'
+ libnghttp2: '>=1.64.0,<2.0a0'
+ libssh2: '>=1.11.1,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda
+ hash:
+ md5: 2b3e0081006dc21e8bf53a91c83a055c
+ sha256: 3cd4075b2a7b5562e46c8ec626f6f9ca57aeecaa94ff7df57eca26daa94c9906
+ category: main
+ optional: false
+- name: libcurl
+ version: 8.11.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ krb5: '>=1.21.3,<1.22.0a0'
+ libssh2: '>=1.11.1,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.11.1-h88aaa65_0.conda
+ hash:
+ md5: 071d3f18dba5a6a13c6bb70cdb42678f
+ sha256: 1a67f01da0e35296c6d1fdf6baddc45ad3cc2114132ff4638052eb7cf258aab2
+ category: main
+ optional: false
+- name: libdeflate
+ version: '1.23'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda
+ hash:
+ md5: 8dfae1d2e74767e9ce36d5fa0d8605db
+ sha256: 511d801626d02f4247a04fff957cc6e9ec4cc7e8622bd9acd076bcdc5de5fe66
+ category: main
+ optional: false
+- name: libdeflate
+ version: '1.23'
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.23-h9062f6e_0.conda
+ hash:
+ md5: a9624935147a25b06013099d3038e467
+ sha256: 96c47725a8258159295996ea2758fa0ff9bea330e72b59641642e16be8427ce8
+ category: main
+ optional: false
+- name: libedit
+ version: 3.1.20240808
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ ncurses: '>=6.5,<7.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20240808-pl5321h7949ede_0.conda
+ hash:
+ md5: 8247f80f3dc464d9322e85007e307fe8
+ sha256: 4d0d69ddf9cc7d724a1ccf3a9852e44c8aea9825692582bac2c4e8d21ec95ccd
+ category: main
+ optional: false
+- name: libev
+ version: '4.33'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
+ hash:
+ md5: 172bf1cd1ff8629f2b1179945ed45055
+ sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4
+ category: main
+ optional: false
+- name: libexpat
+ version: 2.6.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
+ hash:
+ md5: db833e03127376d461e1e13e76f09b6c
+ sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26
+ category: main
+ optional: false
+- name: libexpat
+ version: 2.6.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda
+ hash:
+ md5: eb383771c680aa792feb529eaf9df82f
+ sha256: 0c0447bf20d1013d5603499de93a16b6faa92d7ead870d96305c0f065b6a5a12
+ category: main
+ optional: false
+- name: libffi
+ version: 3.4.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=9.4.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
+ hash:
+ md5: d645c6d2ac96843a2bfaccd2d62b3ac3
+ sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e
+ category: main
+ optional: false
+- name: libffi
+ version: 3.4.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc: '>=14.1,<15.0a0'
+ vs2015_runtime: '>=14.16.27012'
+ url: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2
+ hash:
+ md5: 2c96d1b6915b408893f9472569dee135
+ sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5
+ category: main
+ optional: false
+- name: libgcc
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ _libgcc_mutex: '0.1'
+ _openmp_mutex: '>=4.5'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
+ hash:
+ md5: 3cb76c3f10d3bc7f1105b2fc9db984df
+ sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569
+ category: main
+ optional: false
+- name: libgcc
+ version: 14.2.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ _openmp_mutex: '>=4.5'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ url: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda
+ hash:
+ md5: 75fdd34824997a0f9950a703b15d8ac5
+ sha256: ef840e797714440bb10b69446d815966fff41fdac79f79c4e19c475d81cd375d
+ category: main
+ optional: false
+- name: libgcc-ng
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
+ hash:
+ md5: e39480b9ca41323497b05492a63bc35b
+ sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7
+ category: main
+ optional: false
+- name: libgfortran
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgfortran5: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda
+ hash:
+ md5: f1fd30127802683586f768875127a987
+ sha256: fc9e7f22a17faf74da904ebfc4d88699013d2992e55505e4aa0eb01770290977
+ category: main
+ optional: false
+- name: libgfortran5
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc: '>=14.2.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
+ hash:
+ md5: 9822b874ea29af082e5d36098d25427d
+ sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d
+ category: main
+ optional: false
+- name: libgomp
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ _libgcc_mutex: '0.1'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda
+ hash:
+ md5: cc3573974587f12dda90d96e3e55a702
+ sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63
+ category: main
+ optional: false
+- name: libgomp
+ version: 14.2.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ url: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda
+ hash:
+ md5: 9e2d4d1214df6f21cba12f6eff4972f9
+ sha256: d8739b834608f35775209b032f0c2be752ef187863c7ec847afcebe2f681be4e
+ category: main
+ optional: false
+- name: libhwloc
+ version: 2.11.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ libxml2: '>=2.13.4,<3.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda
+ hash:
+ md5: b87a0ac5ab6495d8225db5dc72dd21cd
+ sha256: 850e255997f538d5fb6ed651321141155a33bb781d43d326fc4ff62114dd2842
+ category: main
+ optional: false
+- name: libiconv
+ version: '1.17'
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda
+ hash:
+ md5: e1eb10b1cca179f2baa3601e4efc8712
+ sha256: 5f844dd19b046d43174ad80c6ea75b5d504020e3b63cfbc4ace97b8730d35c7b
+ category: main
+ optional: false
+- name: libjpeg-turbo
+ version: 3.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda
+ hash:
+ md5: ea25936bb4080d843790b586850f82b8
+ sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f
+ category: main
+ optional: false
+- name: libjpeg-turbo
+ version: 3.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda
+ hash:
+ md5: 3f1b948619c45b1ca714d60c7389092c
+ sha256: 4e7808e3098b4b4ed7e287f63bb24f9045cc4d95bfd39f0db870fc2837d74dff
+ category: main
+ optional: false
+- name: liblapack
+ version: 3.9.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-26_linux64_openblas.conda
+ hash:
+ md5: 3792604c43695d6a273bc5faaac47d48
+ sha256: b76458c36331376911e0f98fa68109e02f4d5e5ebfffa79587ac69cef748bba1
+ category: main
+ optional: false
+- name: liblapack
+ version: 3.9.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-26_win64_mkl.conda
+ hash:
+ md5: 0a717f5fda7279b77bcce671b324408a
+ sha256: 6701bd162d105531b75d05acf82b4ad9fbc5a24ffbccf8c66efa9e72c386b33c
+ category: main
+ optional: false
+- name: liblzma
+ version: 5.6.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda
+ hash:
+ md5: 2ecf2f1c7e4e21fcfe6423a51a992d84
+ sha256: e6e425252f3839e2756e4af1ea2074dffd3396c161bf460629f9dfd6a65f15c6
+ category: main
+ optional: false
+- name: liblzma
+ version: 5.6.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda
+ hash:
+ md5: 015b9c0bd1eef60729ab577a38aaf0b5
+ sha256: 24d04bd55adfa44c421c99ce169df38cb1ad2bba5f43151bc847fc802496a1fa
+ category: main
+ optional: false
+- name: libnghttp2
+ version: 1.64.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ c-ares: '>=1.32.3,<2.0a0'
+ libev: '>=4.33,<5.0a0'
+ libgcc: '>=13'
+ libstdcxx: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.3.2,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
+ hash:
+ md5: 19e57602824042dfd0446292ef90488b
+ sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975
+ category: main
+ optional: false
+- name: libnsl
+ version: 2.0.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
+ hash:
+ md5: 30fd6e37fe21f86f4bd26d6ee73eeec7
+ sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6
+ category: main
+ optional: false
+- name: libopenblas
+ version: 0.3.28
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=14'
+ libgfortran: ''
+ libgfortran5: '>=14.2.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
+ hash:
+ md5: 62857b389e42b36b686331bec0922050
+ sha256: 99ba271d8a80a1af2723f2e124ffd91d850074c0389c067e6d96d72a2dbfeabe
+ category: main
+ optional: false
+- name: libpng
+ version: 1.6.45
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.45-h943b412_0.conda
+ hash:
+ md5: 85cbdaacad93808395ac295b5667d25b
+ sha256: b8f5b5ba9a14dedf7c97c01300de492b1b52b68eacbc3249a13fdbfa82349a2f
+ category: main
+ optional: false
+- name: libpng
+ version: 1.6.45
+ manager: conda
+ platform: win-64
+ dependencies:
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.45-had7236b_0.conda
+ hash:
+ md5: 41fb9e522ec6e0b34a6f23c98b07e1cf
+ sha256: e39c4f1bc8fee08f6a2eb4a88174d14c3a99dbb4850c98f3a87eb83b4dabbfca
+ category: main
+ optional: false
+- name: libsqlite
+ version: 3.47.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda
+ hash:
+ md5: b58da17db24b6e08bcbf8fed2fb8c915
+ sha256: 48af21ebc2cbf358976f1e0f4a0ab9e91dfc83d0ef337cf3837c6f5bc22fb352
+ category: main
+ optional: false
+- name: libsqlite
+ version: 3.47.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.2-h67fdade_0.conda
+ hash:
+ md5: ff00095330e0d35a16bd3bdbd1a2d3e7
+ sha256: ecfc0182c3b2e63c870581be1fa0e4dbdfec70d2011cb4f5bde416ece26c41df
+ category: main
+ optional: false
+- name: libssh2
+ version: 1.11.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda
+ hash:
+ md5: be2de152d8073ef1c01b7728475f2fe7
+ sha256: 0407ac9fda2bb67e11e357066eff144c845801d00b5f664efbc48813af1e7bb9
+ category: main
+ optional: false
+- name: libssh2
+ version: 1.11.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda
+ hash:
+ md5: af0cbf037dd614c34399b3b3e568c557
+ sha256: 4b3256bd2b4e4b3183005d3bd8826d651eccd1a4740b70625afa2b7e7123d191
+ category: main
+ optional: false
+- name: libstdcxx
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
+ hash:
+ md5: 234a5554c53625688d51062645337328
+ sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462
+ category: main
+ optional: false
+- name: libstdcxx-ng
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libstdcxx: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
+ hash:
+ md5: 8371ac6457591af2cf6159439c1fd051
+ sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8
+ category: main
+ optional: false
+- name: libtiff
+ version: 4.7.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ lerc: '>=4.0.0,<5.0a0'
+ libdeflate: '>=1.23,<1.24.0a0'
+ libgcc: '>=13'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libstdcxx: '>=13'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda
+ hash:
+ md5: 0ea6510969e1296cc19966fad481f6de
+ sha256: b224e16b88d76ea95e4af56e2bc638c603bd26a770b98d117d04541d3aafa002
+ category: main
+ optional: false
+- name: libtiff
+ version: 4.7.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ lerc: '>=4.0.0,<5.0a0'
+ libdeflate: '>=1.23,<1.24.0a0'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h797046b_3.conda
+ hash:
+ md5: defed79ff7a9164ad40320e3f116a138
+ sha256: c363a8baba4ce12b8f01f0ab74fe8b0dc83facd89c6604f4a191084923682768
+ category: main
+ optional: false
+- name: libuuid
+ version: 2.38.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ hash:
+ md5: 40b61aab5c7ba9ff276c41cfffe6b80b
+ sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18
+ category: main
+ optional: false
+- name: libwebp-base
+ version: 1.5.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda
+ hash:
+ md5: 63f790534398730f59e1b899c3644d4a
+ sha256: c45283fd3e90df5f0bd3dbcd31f59cdd2b001d424cf30a07223655413b158eaf
+ category: main
+ optional: false
+- name: libwebp-base
+ version: 1.5.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.5.0-h3b0e114_0.conda
+ hash:
+ md5: 33f7313967072c6e6d8f865f5493c7ae
+ sha256: 1d75274614e83a5750b8b94f7bad2fc0564c2312ff407e697d99152ed095576f
+ category: main
+ optional: false
+- name: libwinpthread
+ version: 12.0.0.r4.gg4f2fc60ca
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: ''
+ url: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda
+ hash:
+ md5: 03cccbba200ee0523bde1f3dad60b1f3
+ sha256: 6d5e158813ab8d553fbb0fedd0abe7bf92970b0be3a9ddf12da0f6cbad78f506
+ category: main
+ optional: false
+- name: libxcb
+ version: 1.17.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ pthread-stubs: ''
+ xorg-libxau: '>=1.0.11,<2.0a0'
+ xorg-libxdmcp: ''
+ url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
+ hash:
+ md5: 92ed62436b625154323d40d5f2f11dd7
+ sha256: 666c0c431b23c6cec6e492840b176dde533d48b7e6fb8883f5071223433776aa
+ category: main
+ optional: false
+- name: libxcb
+ version: 1.17.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ pthread-stubs: ''
+ ucrt: '>=10.0.20348.0'
+ xorg-libxau: '>=1.0.11,<2.0a0'
+ xorg-libxdmcp: ''
+ url: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda
+ hash:
+ md5: a69bbf778a462da324489976c84cfc8c
+ sha256: 08dec73df0e161c96765468847298a420933a36bc4f09b50e062df8793290737
+ category: main
+ optional: false
+- name: libxcrypt
+ version: 4.4.36
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ hash:
+ md5: 5aa797f8787fe7a17d1b0821485b5adc
+ sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c
+ category: main
+ optional: false
+- name: libxml2
+ version: 2.13.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ libiconv: '>=1.17,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.5-he286e8c_1.conda
+ hash:
+ md5: 77eaa84f90fc90643c5a0be0aa9bdd1b
+ sha256: 084dd4dde342f13c43ee418d153ac5b2610f95be029073a15fa9dda22b130d06
+ category: main
+ optional: false
+- name: libzlib
+ version: 1.3.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ hash:
+ md5: edb0dca6bc32e4f4789199455a1dbeb8
+ sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4
+ category: main
+ optional: false
+- name: libzlib
+ version: 1.3.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ hash:
+ md5: 41fbfac52c601159df6c01f875de31b9
+ sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402
+ category: main
+ optional: false
+- name: markupsafe
+ version: 3.0.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py311h2dc5d0c_1.conda
+ hash:
+ md5: 6565a715337ae279e351d0abd8ffe88a
+ sha256: 0291d90706ac6d3eea73e66cd290ef6d805da3fad388d1d476b8536ec92ca9a8
+ category: dev
+ optional: true
+- name: markupsafe
+ version: 3.0.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py311h5082efb_1.conda
+ hash:
+ md5: c1f2ddad665323278952a453912dc3bd
+ sha256: 6f756e13ccf1a521d3960bd3cadddf564e013e210eaeced411c5259f070da08e
+ category: dev
+ optional: true
+- name: mccabe
+ version: 0.7.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 827064ddfe0de2917fb29f1da4f8f533
+ sha256: 9b0037171dad0100f0296699a11ae7d355237b55f42f9094aebc0f41512d96a1
+ category: dev
+ optional: true
+- name: mccabe
+ version: 0.7.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 827064ddfe0de2917fb29f1da4f8f533
+ sha256: 9b0037171dad0100f0296699a11ae7d355237b55f42f9094aebc0f41512d96a1
+ category: dev
+ optional: true
+- name: mkl
+ version: 2024.2.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ intel-openmp: 2024.*
+ tbb: 2021.*
+ url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda
+ hash:
+ md5: 302dff2807f2927b3e9e0d19d60121de
+ sha256: 20e52b0389586d0b914a49cd286c5ccc9c47949bed60ca6df004d1d295f2edbd
+ category: main
+ optional: false
+- name: ncurses
+ version: '6.5'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda
+ hash:
+ md5: 70caf8bb6cf39a0b6b7efc885f51c0fe
+ sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a
+ category: main
+ optional: false
+- name: numpy
+ version: 1.26.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ libgcc-ng: '>=12'
+ liblapack: '>=3.9.0,<4.0a0'
+ libstdcxx-ng: '>=12'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda
+ hash:
+ md5: a502d7aad449a1206efb366d6a12c52d
+ sha256: 3f4365e11b28e244c95ba8579942b0802761ba7bb31c026f50d1a9ea9c728149
+ category: main
+ optional: false
+- name: numpy
+ version: 1.26.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ liblapack: '>=3.9.0,<4.0a0'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda
+ hash:
+ md5: 7b240edd44fd7a0991aa409b07cee776
+ sha256: 14116e72107de3089cc58119a5ce5905c22abf9a715c9fe41f8ac14db0992326
+ category: main
+ optional: false
+- name: openjpeg
+ version: 2.5.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libpng: '>=1.6.44,<1.7.0a0'
+ libstdcxx: '>=13'
+ libtiff: '>=4.7.0,<4.8.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda
+ hash:
+ md5: 9e5816bc95d285c115a3ebc2f8563564
+ sha256: 5bee706ea5ba453ed7fd9da7da8380dd88b865c8d30b5aaec14d2b6dd32dbc39
+ category: main
+ optional: false
+- name: openjpeg
+ version: 2.5.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ libpng: '>=1.6.44,<1.7.0a0'
+ libtiff: '>=4.7.0,<4.8.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h4d64b90_0.conda
+ hash:
+ md5: fc050366dd0b8313eb797ed1ffef3a29
+ sha256: 410175815df192f57a07c29a6b3fdd4231937173face9e63f0830c1234272ce3
+ category: main
+ optional: false
+- name: openssl
+ version: 3.4.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ ca-certificates: ''
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda
+ hash:
+ md5: 4ce6875f75469b2757a65e10a5d05e31
+ sha256: f62f6bca4a33ca5109b6d571b052a394d836956d21b25b7ffd03376abf7a481f
+ category: main
+ optional: false
+- name: openssl
+ version: 3.4.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ ca-certificates: ''
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda
+ hash:
+ md5: fb45308ba8bfe1abf1f4a27bad24a743
+ sha256: 519a06eaab7c878fbebb8cab98ea4a4465eafb1e9ed8c6ce67226068a80a92f0
+ category: main
+ optional: false
+- name: packaging
+ version: '24.2'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.8'
+ url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
+ hash:
+ md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa
+ sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1
+ category: dev
+ optional: true
+- name: packaging
+ version: '24.2'
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.8'
+ url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
+ hash:
+ md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa
+ sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1
+ category: dev
+ optional: true
+- name: pillow
+ version: 10.3.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ freetype: '>=2.12.1,<3.0a0'
+ lcms2: '>=2.16,<3.0a0'
+ libgcc-ng: '>=12'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libxcb: '>=1.16,<2.0.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openjpeg: '>=2.5.2,<3.0a0'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ tk: '>=8.6.13,<8.7.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.3.0-py311h82a398c_1.conda
+ hash:
+ md5: 4dc0b6fcf0bc041a1bfb763fa6e5302f
+ sha256: ce420bfba7ed8641aa376b4446e16299fcb37113c27e9655503fd5d517cb7fcd
+ category: main
+ optional: false
+- name: pillow
+ version: 10.3.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ freetype: '>=2.12.1,<3.0a0'
+ lcms2: '>=2.16,<3.0a0'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libxcb: '>=1.16,<2.0.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openjpeg: '>=2.5.2,<3.0a0'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ tk: '>=8.6.13,<8.7.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.3.0-py311h5592be9_1.conda
+ hash:
+ md5: 034f612fd103c2c1058538533598ce4f
+ sha256: 5404b51b1c93180940e0f8340e905d435bf187224512bab2993c5b7f30aa0615
+ category: main
+ optional: false
+- name: pip
+ version: 24.3.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9,<3.13.0a0'
+ setuptools: ''
+ wheel: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
+ hash:
+ md5: 04e691b9fadd93a8a9fad87a81d4fd8f
+ sha256: da8c8888de10c1e4234ebcaa1550ac2b4b5408ac20f093fe641e4bc8c9c9f3eb
+ category: main
+ optional: false
+- name: pip
+ version: 24.3.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9,<3.13.0a0'
+ setuptools: ''
+ wheel: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
+ hash:
+ md5: 04e691b9fadd93a8a9fad87a81d4fd8f
+ sha256: da8c8888de10c1e4234ebcaa1550ac2b4b5408ac20f093fe641e4bc8c9c9f3eb
+ category: main
+ optional: false
+- name: platformdirs
+ version: 4.3.6
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 577852c7e53901ddccc7e6a9959ddebe
+ sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27
+ category: dev
+ optional: true
+- name: platformdirs
+ version: 4.3.6
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 577852c7e53901ddccc7e6a9959ddebe
+ sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27
+ category: dev
+ optional: true
+- name: pluggy
+ version: 1.5.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: e9dcbce5f45f9ee500e728ae58b605b6
+ sha256: 122433fc5318816b8c69283aaf267c73d87aa2d09ce39f64c9805c9a3b264819
+ category: dev
+ optional: true
+- name: pluggy
+ version: 1.5.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: e9dcbce5f45f9ee500e728ae58b605b6
+ sha256: 122433fc5318816b8c69283aaf267c73d87aa2d09ce39f64c9805c9a3b264819
+ category: dev
+ optional: true
+- name: pthread-stubs
+ version: '0.4'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ hash:
+ md5: b3c17d95b5a10c6e64a21fa17573e70e
+ sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973
+ category: main
+ optional: false
+- name: pthread-stubs
+ version: '0.4'
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda
+ hash:
+ md5: 3c8f2573569bb816483e5cf57efbbe29
+ sha256: 7e446bafb4d692792310ed022fe284e848c6a868c861655a92435af7368bae7b
+ category: main
+ optional: false
+- name: pydantic
+ version: 2.10.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ annotated-types: '>=0.6.0'
+ pydantic-core: 2.27.2
+ python: '>=3.9'
+ typing-extensions: '>=4.6.1'
+ typing_extensions: '>=4.12.2'
+ url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda
+ hash:
+ md5: e8ea30925c8271c4128375810d7d3d7a
+ sha256: 0f32c30ddc610cd1113335d8b4f311f20f4d72754b7c1a5d0d9493f597cf11d2
+ category: main
+ optional: false
+- name: pydantic
+ version: 2.10.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ annotated-types: '>=0.6.0'
+ pydantic-core: 2.27.2
+ python: '>=3.9'
+ typing-extensions: '>=4.6.1'
+ typing_extensions: '>=4.12.2'
+ url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda
+ hash:
+ md5: e8ea30925c8271c4128375810d7d3d7a
+ sha256: 0f32c30ddc610cd1113335d8b4f311f20f4d72754b7c1a5d0d9493f597cf11d2
+ category: main
+ optional: false
+- name: pydantic-core
+ version: 2.27.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ typing-extensions: '>=4.6.0,!=4.7.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.27.2-py311h9e33e62_0.conda
+ hash:
+ md5: 675cb6079b6b3b4ef4f20399fedf6666
+ sha256: 8ead97151b2f349cd327456fe4a6fcf7c51a3ab6c06f48f4330f86de0d848bd1
+ category: main
+ optional: false
+- name: pydantic-core
+ version: 2.27.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ typing-extensions: '>=4.6.0,!=4.7.0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.27.2-py311h533ab2d_0.conda
+ hash:
+ md5: e9420c025ea324d06255fc34b7e3928e
+ sha256: d1f641a6f2c9fe6413674dd4e1f7dd5bbd06d26532d6e19f83c56a747d54b667
+ category: main
+ optional: false
+- name: pygments
+ version: 2.19.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
+ hash:
+ md5: 232fb4577b6687b2d503ef8e254270c9
+ sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b
+ category: dev
+ optional: true
+- name: pygments
+ version: 2.19.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
+ hash:
+ md5: 232fb4577b6687b2d503ef8e254270c9
+ sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b
+ category: dev
+ optional: true
+- name: pylint
+ version: 3.3.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ astroid: '>=3.3.8,<3.4.0-dev0'
+ colorama: '>=0.4.5'
+ dill: '>=0.3.7'
+ isort: '>=4.2.5,<6,!=5.13.0'
+ mccabe: '>=0.6,<0.8'
+ platformdirs: '>=2.2.0'
+ python: '>=3.9'
+ tomli: '>=1.1.0'
+ tomlkit: '>=0.10.1'
+ typing_extensions: '>=3.10.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.3.3-pyhd8ed1ab_0.conda
+ hash:
+ md5: 5842a1fa3b9b4f9fe7069b9ca5ed068d
+ sha256: a8192c823bfb6cdc57d2e12a8748ac1acb588c960c53e71c763f6359c5602e46
+ category: dev
+ optional: true
+- name: pylint
+ version: 3.3.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ astroid: '>=3.3.8,<3.4.0-dev0'
+ colorama: '>=0.4.5'
+ dill: '>=0.3.7'
+ isort: '>=4.2.5,<6,!=5.13.0'
+ mccabe: '>=0.6,<0.8'
+ platformdirs: '>=2.2.0'
+ python: '>=3.9'
+ tomli: '>=1.1.0'
+ tomlkit: '>=0.10.1'
+ typing_extensions: '>=3.10.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.3.3-pyhd8ed1ab_0.conda
+ hash:
+ md5: 5842a1fa3b9b4f9fe7069b9ca5ed068d
+ sha256: a8192c823bfb6cdc57d2e12a8748ac1acb588c960c53e71c763f6359c5602e46
+ category: dev
+ optional: true
+- name: pytest
+ version: 8.3.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ colorama: ''
+ exceptiongroup: '>=1.0.0rc8'
+ iniconfig: ''
+ packaging: ''
+ pluggy: <2,>=1.5
+ python: '>=3.9'
+ tomli: '>=1'
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.4-pyhd8ed1ab_1.conda
+ hash:
+ md5: 799ed216dc6af62520f32aa39bc1c2bb
+ sha256: 75245ca9d0cbd6d38bb45ec02430189a9d4c21c055c5259739d738a2298d61b3
+ category: dev
+ optional: true
+- name: pytest
+ version: 8.3.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ colorama: ''
+ exceptiongroup: '>=1.0.0rc8'
+ iniconfig: ''
+ packaging: ''
+ pluggy: <2,>=1.5
+ python: '>=3.9'
+ tomli: '>=1'
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.4-pyhd8ed1ab_1.conda
+ hash:
+ md5: 799ed216dc6af62520f32aa39bc1c2bb
+ sha256: 75245ca9d0cbd6d38bb45ec02430189a9d4c21c055c5259739d738a2298d61b3
+ category: dev
+ optional: true
+- name: pytest-cov
+ version: 6.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ coverage: '>=7.5'
+ pytest: '>=4.6'
+ python: '>=3.9'
+ toml: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 79963c319d1be62c8fd3e34555816e01
+ sha256: 09acac1974e10a639415be4be326dd21fa6d66ca51a01fb71532263fba6dccf6
+ category: dev
+ optional: true
+- name: pytest-cov
+ version: 6.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ coverage: '>=7.5'
+ pytest: '>=4.6'
+ python: '>=3.9'
+ toml: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 79963c319d1be62c8fd3e34555816e01
+ sha256: 09acac1974e10a639415be4be326dd21fa6d66ca51a01fb71532263fba6dccf6
+ category: dev
+ optional: true
+- name: python
+ version: 3.11.11
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ bzip2: '>=1.0.8,<2.0a0'
+ ld_impl_linux-64: '>=2.36.1'
+ libexpat: '>=2.6.4,<3.0a0'
+ libffi: '>=3.4,<4.0a0'
+ libgcc: '>=13'
+ liblzma: '>=5.6.3,<6.0a0'
+ libnsl: '>=2.0.1,<2.1.0a0'
+ libsqlite: '>=3.47.0,<4.0a0'
+ libuuid: '>=2.38.1,<3.0a0'
+ libxcrypt: '>=4.4.36'
+ libzlib: '>=1.3.1,<2.0a0'
+ ncurses: '>=6.5,<7.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ pip: ''
+ readline: '>=8.2,<9.0a0'
+ tk: '>=8.6.13,<8.7.0a0'
+ tzdata: ''
+ url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.11-h9e4cc4f_1_cpython.conda
+ hash:
+ md5: 8387070aa413ce9a8cc35a509fae938b
+ sha256: b29ce0836fce55bdff8d5c5b71c4921a23f87d3b950aea89a9e75784120b06b0
+ category: main
+ optional: false
+- name: python
+ version: 3.11.11
+ manager: conda
+ platform: win-64
+ dependencies:
+ bzip2: '>=1.0.8,<2.0a0'
+ libexpat: '>=2.6.4,<3.0a0'
+ libffi: '>=3.4,<4.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libsqlite: '>=3.47.0,<4.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ pip: ''
+ tk: '>=8.6.13,<8.7.0a0'
+ tzdata: ''
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.11-h3f84c4b_1_cpython.conda
+ hash:
+ md5: 4d490a426481298bdd89a502253a7fd4
+ sha256: 5be6181ab6d655ad761490b7808584c5e78e5d7139846685b1850a8b7ef6c5df
+ category: main
+ optional: false
+- name: python_abi
+ version: '3.11'
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-5_cp311.conda
+ hash:
+ md5: 139a8d40c8a2f430df31048949e450de
+ sha256: 2660b8059b3ee854bc5d3c6b1fce946e5bd2fe8fbca7827de2c5885ead6209de
+ category: main
+ optional: false
+- name: python_abi
+ version: '3.11'
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-5_cp311.conda
+ hash:
+ md5: 895b873644c11ccc0ab7dba2d8513ae6
+ sha256: 9b210e5807dd9c9ed71ff192a95f1872da597ddd10e7cefec93a922fe22e598a
+ category: main
+ optional: false
+- name: pyyaml
+ version: 6.0.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ yaml: '>=0.2.5,<0.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda
+ hash:
+ md5: abeb54d40f439b86f75ea57045ab8496
+ sha256: e721e5ff389a7b2135917c04b27391be3d3382e261bb60a369b1620655365c3d
+ category: dev
+ optional: true
+- name: pyyaml
+ version: 6.0.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ yaml: '>=0.2.5,<0.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda
+ hash:
+ md5: d0c5f3c595039890be0c9af47d23b9ba
+ sha256: 86608f1b4f6b1819a74b6b1344c34304745fd7e84bfc9900269f57cf28178d31
+ category: dev
+ optional: true
+- name: readline
+ version: '8.2'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ ncurses: '>=6.3,<7.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
+ hash:
+ md5: 47d31b792659ce70f470b5c82fdfb7a4
+ sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7
+ category: main
+ optional: false
+- name: scipy
+ version: 1.14.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ libgcc: '>=13'
+ libgfortran: ''
+ libgfortran5: '>=13.3.0'
+ liblapack: '>=3.9.0,<4.0a0'
+ libstdcxx: '>=13'
+ numpy: '>=1.23.5'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py311he9a78e4_2.conda
+ hash:
+ md5: c4aee8cadc4c9fc9a91aca0803473690
+ sha256: b28d91a55205b886308da82428cd522e9dce0ef912445a2e9d89318379c15759
+ category: main
+ optional: false
+- name: scipy
+ version: 1.14.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ liblapack: '>=3.9.0,<4.0a0'
+ numpy: '>=1.23.5'
+ python: '>=3.11,<3.12.0a0'
+ python_abi: 3.11.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py311hf16d85f_2.conda
+ hash:
+ md5: 8d3393f64df60e48be00d06ccb63bb18
+ sha256: ef98270586c1dfb551f9ff868312554f248f155406f924b91df07cd46c14d302
+ category: main
+ optional: false
+- name: setuptools
+ version: 75.8.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda
+ hash:
+ md5: 8f28e299c11afdd79e0ec1e279dcdc52
+ sha256: e0778e4f276e9a81b51c56f51ec22a27b4d8fc955abc0be77ad09ca9bea06bb9
+ category: main
+ optional: false
+- name: setuptools
+ version: 75.8.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda
+ hash:
+ md5: 8f28e299c11afdd79e0ec1e279dcdc52
+ sha256: e0778e4f276e9a81b51c56f51ec22a27b4d8fc955abc0be77ad09ca9bea06bb9
+ category: main
+ optional: false
+- name: tbb
+ version: 2021.13.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libhwloc: '>=2.11.2,<2.11.3.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda
+ hash:
+ md5: 9190dd0a23d925f7602f9628b3aed511
+ sha256: 03cc5442046485b03dd1120d0f49d35a7e522930a2ab82f275e938e17b07b302
+ category: main
+ optional: false
+- name: tk
+ version: 8.6.13
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
+ hash:
+ md5: d453b98d9c83e71da0741bb0ff4d76bc
+ sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e
+ category: main
+ optional: false
+- name: tk
+ version: 8.6.13
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda
+ hash:
+ md5: fc048363eb8f03cd1737600a5d08aafe
+ sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1
+ category: main
+ optional: false
+- name: toml
+ version: 0.10.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: b0dd904de08b7db706167240bf37b164
+ sha256: 34f3a83384ac3ac30aefd1309e69498d8a4aa0bf2d1f21c645f79b180e378938
+ category: dev
+ optional: true
+- name: toml
+ version: 0.10.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: b0dd904de08b7db706167240bf37b164
+ sha256: 34f3a83384ac3ac30aefd1309e69498d8a4aa0bf2d1f21c645f79b180e378938
+ category: dev
+ optional: true
+- name: tomli
+ version: 2.2.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: ac944244f1fed2eb49bae07193ae8215
+ sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e
+ category: dev
+ optional: true
+- name: tomli
+ version: 2.2.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: ac944244f1fed2eb49bae07193ae8215
+ sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e
+ category: dev
+ optional: true
+- name: tomlkit
+ version: 0.13.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_1.conda
+ hash:
+ md5: 1d9ab4fc875c52db83f9c9b40af4e2c8
+ sha256: 986fae65f5568e95dbf858d08d77a0f9cca031345a98550f1d4b51d36d8811e2
+ category: dev
+ optional: true
+- name: tomlkit
+ version: 0.13.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_1.conda
+ hash:
+ md5: 1d9ab4fc875c52db83f9c9b40af4e2c8
+ sha256: 986fae65f5568e95dbf858d08d77a0f9cca031345a98550f1d4b51d36d8811e2
+ category: dev
+ optional: true
+- name: typing-extensions
+ version: 4.12.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ typing_extensions: 4.12.2
+ url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
+ hash:
+ md5: b6a408c64b78ec7b779a3e5c7a902433
+ sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32
+ category: main
+ optional: false
+- name: typing-extensions
+ version: 4.12.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ typing_extensions: 4.12.2
+ url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
+ hash:
+ md5: b6a408c64b78ec7b779a3e5c7a902433
+ sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32
+ category: main
+ optional: false
+- name: typing_extensions
+ version: 4.12.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
+ hash:
+ md5: d17f13df8b65464ca316cbc000a3cb64
+ sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568
+ category: main
+ optional: false
+- name: typing_extensions
+ version: 4.12.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
+ hash:
+ md5: d17f13df8b65464ca316cbc000a3cb64
+ sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568
+ category: main
+ optional: false
+- name: tzdata
+ version: 2024b
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
+ hash:
+ md5: 8ac3367aafb1cc0a068483c580af8015
+ sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf
+ category: main
+ optional: false
+- name: tzdata
+ version: 2024b
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
+ hash:
+ md5: 8ac3367aafb1cc0a068483c580af8015
+ sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf
+ category: main
+ optional: false
+- name: ucrt
+ version: 10.0.22621.0
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ hash:
+ md5: 6797b005cd0f439c4c5c9ac565783700
+ sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450
+ category: main
+ optional: false
+- name: vc
+ version: '14.3'
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc14_runtime: '>=14.38.33135'
+ url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda
+ hash:
+ md5: 7c10ec3158d1eb4ddff7007c9101adb0
+ sha256: 986ddaf8feec2904eac9535a7ddb7acda1a1dfb9482088fdb8129f1595181663
+ category: main
+ optional: false
+- name: vc14_runtime
+ version: 14.42.34433
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda
+ hash:
+ md5: 32b37d0cfa80da34548501cdc913a832
+ sha256: c483b090c4251a260aba6ff3e83a307bcfb5fb24ad7ced872ab5d02971bd3a49
+ category: main
+ optional: false
+- name: vs2015_runtime
+ version: 14.42.34433
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc14_runtime: '>=14.42.34433'
+ url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda
+ hash:
+ md5: 5c176975ca2b8366abad3c97b3cd1e83
+ sha256: 568ce8151eaae256f1cef752fc78651ad7a86ff05153cc7a4740b52ae6536118
+ category: main
+ optional: false
+- name: wheel
+ version: 0.45.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: 75cb7132eb58d97896e173ef12ac9986
+ sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce
+ category: main
+ optional: false
+- name: wheel
+ version: 0.45.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: 75cb7132eb58d97896e173ef12ac9986
+ sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce
+ category: main
+ optional: false
+- name: xorg-libxau
+ version: 1.0.12
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
+ hash:
+ md5: f6ebe2cb3f82ba6c057dde5d9debe4f7
+ sha256: ed10c9283974d311855ae08a16dfd7e56241fac632aec3b92e3cfe73cff31038
+ category: main
+ optional: false
+- name: xorg-libxau
+ version: 1.0.12
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.12-h0e40799_0.conda
+ hash:
+ md5: 2ffbfae4548098297c033228256eb96e
+ sha256: 047836241b2712aab1e29474a6f728647bff3ab57de2806b0bb0a6cf9a2d2634
+ category: main
+ optional: false
+- name: xorg-libxdmcp
+ version: 1.1.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
+ hash:
+ md5: 8035c64cb77ed555e3f150b7b3972480
+ sha256: 6b250f3e59db07c2514057944a3ea2044d6a8cdde8a47b6497c254520fade1ee
+ category: main
+ optional: false
+- name: xorg-libxdmcp
+ version: 1.1.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda
+ hash:
+ md5: 8393c0f7e7870b4eb45553326f81f0ff
+ sha256: 9075f98dcaa8e9957e4a3d9d30db05c7578a536950a31c200854c5c34e1edb2c
+ category: main
+ optional: false
+- name: yaml
+ version: 0.2.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=9.4.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2
+ hash:
+ md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae
+ sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535
+ category: dev
+ optional: true
+- name: yaml
+ version: 0.2.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc: '>=14.1,<15.0a0'
+ vs2015_runtime: '>=14.16.27012'
+ url: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2
+ hash:
+ md5: adbfb9f45d1004a26763652246a33764
+ sha256: 4e2246383003acbad9682c7c63178e2e715ad0eb84f03a8df1fbfba455dfedc5
+ category: dev
+ optional: true
+- name: zstd
+ version: 1.5.6
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
+ hash:
+ md5: 4d056880988120e29d75bfff282e0f45
+ sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b
+ category: main
+ optional: false
+- name: zstd
+ version: 1.5.6
+ manager: conda
+ platform: win-64
+ dependencies:
+ libzlib: '>=1.2.13,<2.0.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda
+ hash:
+ md5: 9a17230f95733c04dc40a2b1e5491d74
+ sha256: 768e30dc513568491818fb068ee867c57c514b553915536da09e5d10b4ebf3c3
+ category: main
+ optional: false
+- name: geoh5py
+ version: 0.10.0rc1
+ manager: pip
+ platform: linux-64
+ dependencies:
+ h5py: '>=3.2.1,<4.0.0'
+ numpy: '>=1.26.0,<1.27.0'
+ pillow: '>=10.3.0,<10.4.0'
+ pydantic: '>=2.5.2,<3.0.0'
+ url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/public-pypi-dev/geoh5py/0.10.0-rc.1/geoh5py-0.10.0rc1-py3-none-any.whl
+ hash:
+ sha256: 50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+ category: main
+ optional: false
+- name: geoh5py
+ version: 0.10.0rc1
+ manager: pip
+ platform: win-64
+ dependencies:
+ h5py: '>=3.2.1,<4.0.0'
+ numpy: '>=1.26.0,<1.27.0'
+ pillow: '>=10.3.0,<10.4.0'
+ pydantic: '>=2.5.2,<3.0.0'
+ url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/public-pypi-dev/geoh5py/0.10.0-rc.1/geoh5py-0.10.0rc1-py3-none-any.whl
+ hash:
+ sha256: 50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+ category: main
+ optional: false
diff --git a/py-3.12.conda-lock.yml b/py-3.12.conda-lock.yml
new file mode 100644
index 00000000..7e86d055
--- /dev/null
+++ b/py-3.12.conda-lock.yml
@@ -0,0 +1,2515 @@
+# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT!
+#
+# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike
+# e.g. `conda env create`, the resulting environment will not change as new package versions become
+# available, unless you explicitly update the lock file.
+#
+# Install this environment as "YOURENV" with:
+# conda-lock install -n YOURENV py-3.12.conda-lock.yml
+# This lock contains optional development dependencies. Include them in the installed environment with:
+# conda-lock install --dev-dependencies -n YOURENV py-3.12.conda-lock.yml
+# To update a single package to the latest version compatible with the version constraints in the source:
+# conda-lock lock --lockfile py-3.12.conda-lock.yml --update PACKAGE
+# To re-solve the entire environment, e.g. after changing a version constraint in the source file:
+# conda-lock -f pyproject.toml -f environments/env-python-3.12.yml --lockfile py-3.12.conda-lock.yml
+version: 1
+metadata:
+ content_hash:
+ win-64: b9c1486ae67f95c128a32abaaf377850d741f91d594152d9f62abd651282b6bd
+ linux-64: 23b59ff23bd5cf90f4c39b31d860488a17a6a6ac162abd8b97ad4eb36859f59b
+ channels:
+ - url: conda-forge
+ used_env_vars: []
+ - url: nodefaults
+ used_env_vars: []
+ platforms:
+ - win-64
+ - linux-64
+ sources:
+ - pyproject.toml
+ - environments/env-python-3.12.yml
+package:
+- name: _libgcc_mutex
+ version: '0.1'
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ hash:
+ md5: d7c89558ba9fa0495403155b64376d81
+ sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726
+ category: main
+ optional: false
+- name: _openmp_mutex
+ version: '4.5'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ _libgcc_mutex: '0.1'
+ libgomp: '>=7.5.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ hash:
+ md5: 73aaf86a425cc6e73fcf236a5a46396d
+ sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22
+ category: main
+ optional: false
+- name: _openmp_mutex
+ version: '4.5'
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgomp: '>=7.5.0'
+ libwinpthread: '>=12.0.0.r2.ggc561118da'
+ url: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
+ hash:
+ md5: 37e16618af5c4851a3f3d66dd0e11141
+ sha256: 1a62cd1f215fe0902e7004089693a78347a30ad687781dfda2289cab000e652d
+ category: main
+ optional: false
+- name: annotated-types
+ version: 0.7.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ typing-extensions: '>=4.0.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 2934f256a8acfe48f6ebb4fce6cde29c
+ sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48
+ category: main
+ optional: false
+- name: annotated-types
+ version: 0.7.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ typing-extensions: '>=4.0.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 2934f256a8acfe48f6ebb4fce6cde29c
+ sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48
+ category: main
+ optional: false
+- name: astroid
+ version: 3.3.8
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.3.8-py312h7900ff3_0.conda
+ hash:
+ md5: 9b0b26c5846fdbe76a146e1f8715a1ac
+ sha256: b8793249426039fdc61301cd63021633e3fbe5fc84b66b6aa0f87c3e648e0f13
+ category: dev
+ optional: true
+- name: astroid
+ version: 3.3.8
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ url: https://conda.anaconda.org/conda-forge/win-64/astroid-3.3.8-py312h2e8e312_0.conda
+ hash:
+ md5: 8bd03339fe9f43fffb3c49b96a0eb518
+ sha256: 49841b1dfd559f557a9290ad4ecbb36719712fd34aff177357e0cc904aa5e600
+ category: dev
+ optional: true
+- name: bzip2
+ version: 1.0.8
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ hash:
+ md5: 62ee74e96c5ebb0af99386de58cf9553
+ sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d
+ category: main
+ optional: false
+- name: bzip2
+ version: 1.0.8
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ hash:
+ md5: 276e7ffe9ffe39688abc665ef0f45596
+ sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b
+ category: main
+ optional: false
+- name: c-ares
+ version: 1.34.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda
+ hash:
+ md5: e2775acf57efd5af15b8e3d1d74d72d3
+ sha256: d4f28d87b6339b94f74762c0076e29c8ef8ddfff51a564a92da2843573c18320
+ category: main
+ optional: false
+- name: ca-certificates
+ version: 2024.12.14
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda
+ hash:
+ md5: 720523eb0d6a9b0f6120c16b2aa4e7de
+ sha256: 1afd7274cbc9a334d6d0bc62fa760acc7afdaceb0b91a8df370ec01fd75dc7dd
+ category: main
+ optional: false
+- name: ca-certificates
+ version: 2024.12.14
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda
+ hash:
+ md5: cb2eaeb88549ddb27af533eccf9a45c1
+ sha256: 424d82db36cd26234bc4772426170efd60e888c2aed0099a257a95e131683a5e
+ category: main
+ optional: false
+- name: cached-property
+ version: 1.5.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ cached_property: '>=1.5.2,<1.5.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2
+ hash:
+ md5: 9b347a7ec10940d3f7941ff6c460b551
+ sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17
+ category: main
+ optional: false
+- name: cached-property
+ version: 1.5.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ cached_property: '>=1.5.2,<1.5.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2
+ hash:
+ md5: 9b347a7ec10940d3f7941ff6c460b551
+ sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17
+ category: main
+ optional: false
+- name: cached_property
+ version: 1.5.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.6'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2
+ hash:
+ md5: 576d629e47797577ab0f1b351297ef4a
+ sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7
+ category: main
+ optional: false
+- name: cached_property
+ version: 1.5.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.6'
+ url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2
+ hash:
+ md5: 576d629e47797577ab0f1b351297ef4a
+ sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7
+ category: main
+ optional: false
+- name: colorama
+ version: 0.4.6
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 962b9857ee8e7018c22f2776ffa0b2d7
+ sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
+ category: dev
+ optional: true
+- name: colorama
+ version: 0.4.6
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 962b9857ee8e7018c22f2776ffa0b2d7
+ sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
+ category: dev
+ optional: true
+- name: coverage
+ version: 7.6.10
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ tomli: ''
+ url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.10-py312h178313f_0.conda
+ hash:
+ md5: df113f58bdfc79c98f5e07b6bd3eb4c2
+ sha256: d808ad7fdf4d04f20832c7c10f58e22e89bc636158b325fbdfbf86074e273b77
+ category: dev
+ optional: true
+- name: coverage
+ version: 7.6.10
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ tomli: ''
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.10-py312h31fea79_0.conda
+ hash:
+ md5: 2785bdb2edbc65a9b01ff56488988517
+ sha256: 365154d8f321d785248c27bd33b3c48f098f80dd68841abc0ab88c675dfdd117
+ category: dev
+ optional: true
+- name: dill
+ version: 0.3.9
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.9-pyhd8ed1ab_1.conda
+ hash:
+ md5: 5e11310fca410e9f31381157079dee55
+ sha256: 499be2f8e4397a46249e8e500535795704af27e56360ae0c964904140b41454a
+ category: dev
+ optional: true
+- name: dill
+ version: 0.3.9
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.9-pyhd8ed1ab_1.conda
+ hash:
+ md5: 5e11310fca410e9f31381157079dee55
+ sha256: 499be2f8e4397a46249e8e500535795704af27e56360ae0c964904140b41454a
+ category: dev
+ optional: true
+- name: exceptiongroup
+ version: 1.2.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: a16662747cdeb9abbac74d0057cc976e
+ sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701
+ category: dev
+ optional: true
+- name: exceptiongroup
+ version: 1.2.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: a16662747cdeb9abbac74d0057cc976e
+ sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701
+ category: dev
+ optional: true
+- name: freetype
+ version: 2.12.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libpng: '>=1.6.39,<1.7.0a0'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda
+ hash:
+ md5: 9ae35c3d96db2c94ce0cef86efdfa2cb
+ sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6
+ category: main
+ optional: false
+- name: freetype
+ version: 2.12.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ libpng: '>=1.6.39,<1.7.0a0'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda
+ hash:
+ md5: 3761b23693f768dc75a8fd0a73ca053f
+ sha256: 2c53ee8879e05e149a9e525481d36adfd660a6abda26fd731376fa64ff03e728
+ category: main
+ optional: false
+- name: h5py
+ version: 3.12.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ cached-property: ''
+ hdf5: '>=1.14.4,<1.14.5.0a0'
+ libgcc: '>=13'
+ numpy: '>=1.19,<3'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.12.1-nompi_py312hd203070_103.conda
+ hash:
+ md5: 9bd82d55b98c65f49c44201339245cde
+ sha256: bc385c98d6d2f233ea472b0fb50e9ca796d926f1c15d12bb07fed2cb40905dd4
+ category: main
+ optional: false
+- name: h5py
+ version: 3.12.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ cached-property: ''
+ hdf5: '>=1.14.4,<1.14.5.0a0'
+ numpy: '>=1.19,<3'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/h5py-3.12.1-nompi_py312h0db4ba1_103.conda
+ hash:
+ md5: 2b2b69668e15d4dec167f504e96706c5
+ sha256: 3968c4f7abff11264398d06c17d79549d5d9c6f5ca82c5c28f04f6eb36155d58
+ category: main
+ optional: false
+- name: hdf5
+ version: 1.14.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libaec: '>=1.1.3,<2.0a0'
+ libcurl: '>=8.10.1,<9.0a0'
+ libgcc: '>=13'
+ libgfortran: ''
+ libgfortran5: '>=13.3.0'
+ libstdcxx: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_105.conda
+ hash:
+ md5: d76fff0092b6389a12134ddebc0929bd
+ sha256: 93d2bfc672f3ee0988d277ce463330a467f3686d3f7ee37812a3d8ca11776d77
+ category: main
+ optional: false
+- name: hdf5
+ version: 1.14.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ libaec: '>=1.1.3,<2.0a0'
+ libcurl: '>=8.10.1,<9.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_105.conda
+ hash:
+ md5: 4381be33460283890c34341ecfa42d97
+ sha256: e8ced65c604a3b9e4803758a25149d71d8096f186fe876817a0d1d97190550c0
+ category: main
+ optional: false
+- name: iniconfig
+ version: 2.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 6837f3eff7dcea42ecd714ce1ac2b108
+ sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
+ category: dev
+ optional: true
+- name: iniconfig
+ version: 2.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 6837f3eff7dcea42ecd714ce1ac2b108
+ sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
+ category: dev
+ optional: true
+- name: intel-openmp
+ version: 2024.2.1
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda
+ hash:
+ md5: 2d89243bfb53652c182a7c73182cce4f
+ sha256: 0fd2b0b84c854029041b0ede8f4c2369242ee92acc0092f8407b1fe9238a8209
+ category: main
+ optional: false
+- name: isort
+ version: 5.13.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9,<4.0'
+ setuptools: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: ef7dc847f19fe4859d5aaa33385bf509
+ sha256: 6ebf6e83c2d449760ad5c5cc344711d6404f9e3cf6952811b8678aca5a4ab01f
+ category: dev
+ optional: true
+- name: isort
+ version: 5.13.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9,<4.0'
+ setuptools: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: ef7dc847f19fe4859d5aaa33385bf509
+ sha256: 6ebf6e83c2d449760ad5c5cc344711d6404f9e3cf6952811b8678aca5a4ab01f
+ category: dev
+ optional: true
+- name: jinja2
+ version: 3.1.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ markupsafe: '>=2.0'
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda
+ hash:
+ md5: 2752a6ed44105bfb18c9bef1177d9dcd
+ sha256: 98977694b9ecaa3218662f843425f39501f81973c450f995eec68f1803ed71c3
+ category: dev
+ optional: true
+- name: jinja2
+ version: 3.1.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ markupsafe: '>=2.0'
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda
+ hash:
+ md5: 2752a6ed44105bfb18c9bef1177d9dcd
+ sha256: 98977694b9ecaa3218662f843425f39501f81973c450f995eec68f1803ed71c3
+ category: dev
+ optional: true
+- name: keyutils
+ version: 1.6.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=10.3.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
+ hash:
+ md5: 30186d27e2c9fa62b45fb1476b7200e3
+ sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb
+ category: main
+ optional: false
+- name: krb5
+ version: 1.21.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ keyutils: '>=1.6.1,<2.0a0'
+ libedit: '>=3.1.20191231,<4.0a0'
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ openssl: '>=3.3.1,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
+ hash:
+ md5: 3f43953b7d3fb3aaa1d0d0723d91e368
+ sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238
+ category: main
+ optional: false
+- name: krb5
+ version: 1.21.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ openssl: '>=3.3.1,<4.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
+ hash:
+ md5: 31aec030344e962fbd7dbbbbd68e60a9
+ sha256: 18e8b3430d7d232dad132f574268f56b3eb1a19431d6d5de8c53c29e6c18fa81
+ category: main
+ optional: false
+- name: lcms2
+ version: '2.16'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda
+ hash:
+ md5: 51bb7010fc86f70eee639b4bb7a894f5
+ sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041
+ category: main
+ optional: false
+- name: lcms2
+ version: '2.16'
+ manager: conda
+ platform: win-64
+ dependencies:
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda
+ hash:
+ md5: d3592435917b62a8becff3a60db674f6
+ sha256: f9fd9e80e46358a57d9bb97b1e37a03da4022143b019aa3c4476d8a7795de290
+ category: main
+ optional: false
+- name: ld_impl_linux-64
+ version: '2.43'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
+ hash:
+ md5: 048b02e3962f066da18efe3a21b77672
+ sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe
+ category: main
+ optional: false
+- name: lerc
+ version: 4.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2
+ hash:
+ md5: 76bbff344f0134279f225174e9064c8f
+ sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12
+ category: main
+ optional: false
+- name: lerc
+ version: 4.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc: '>=14.2,<15'
+ vs2015_runtime: '>=14.29.30037'
+ url: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2
+ hash:
+ md5: 1900cb3cab5055833cfddb0ba233b074
+ sha256: f4f39d7f6a2f9b407f8fb567a6c25755270421731d70f0ff331f5de4fa367488
+ category: main
+ optional: false
+- name: libaec
+ version: 1.1.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda
+ hash:
+ md5: 5e97e271911b8b2001a8b71860c32faa
+ sha256: 2ef420a655528bca9d269086cf33b7e90d2f54ad941b437fb1ed5eca87cee017
+ category: main
+ optional: false
+- name: libaec
+ version: 1.1.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda
+ hash:
+ md5: 8723000f6ffdbdaef16025f0a01b64c5
+ sha256: f5c293d3cfc00f71dfdb64bd65ab53625565f8778fc2d5790575bef238976ebf
+ category: main
+ optional: false
+- name: libblas
+ version: 3.9.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libopenblas: '>=0.3.28,<1.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-26_linux64_openblas.conda
+ hash:
+ md5: ac52800af2e0c0e7dac770b435ce768a
+ sha256: 30bd658682b124243f8e52d8edf8a19e7be1bc31e4fe4baec30a64002dc8cd0c
+ category: main
+ optional: false
+- name: libblas
+ version: 3.9.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ mkl: 2024.2.2
+ url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-26_win64_mkl.conda
+ hash:
+ md5: ecfe732dbad1be001826fdb7e5e891b5
+ sha256: d631993a5cf5b8d3201f881084fce7ff6a26cd49883e189bf582cd0b7975c80a
+ category: main
+ optional: false
+- name: libcblas
+ version: 3.9.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-26_linux64_openblas.conda
+ hash:
+ md5: ebcc5f37a435aa3c19640533c82f8d76
+ sha256: 9c74e536c9bc868e356ffd43f81c2cb398aec84b40fcadc312315b164a5500ee
+ category: main
+ optional: false
+- name: libcblas
+ version: 3.9.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-26_win64_mkl.conda
+ hash:
+ md5: 652f3adcb9d329050a325416edb14246
+ sha256: 66699c4f84fd36b67a34a7ac59fb86e73ee0c5b3c3502441041c8dd51f0a7d49
+ category: main
+ optional: false
+- name: libcurl
+ version: 8.11.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ krb5: '>=1.21.3,<1.22.0a0'
+ libgcc: '>=13'
+ libnghttp2: '>=1.64.0,<2.0a0'
+ libssh2: '>=1.11.1,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda
+ hash:
+ md5: 2b3e0081006dc21e8bf53a91c83a055c
+ sha256: 3cd4075b2a7b5562e46c8ec626f6f9ca57aeecaa94ff7df57eca26daa94c9906
+ category: main
+ optional: false
+- name: libcurl
+ version: 8.11.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ krb5: '>=1.21.3,<1.22.0a0'
+ libssh2: '>=1.11.1,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.11.1-h88aaa65_0.conda
+ hash:
+ md5: 071d3f18dba5a6a13c6bb70cdb42678f
+ sha256: 1a67f01da0e35296c6d1fdf6baddc45ad3cc2114132ff4638052eb7cf258aab2
+ category: main
+ optional: false
+- name: libdeflate
+ version: '1.23'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda
+ hash:
+ md5: 8dfae1d2e74767e9ce36d5fa0d8605db
+ sha256: 511d801626d02f4247a04fff957cc6e9ec4cc7e8622bd9acd076bcdc5de5fe66
+ category: main
+ optional: false
+- name: libdeflate
+ version: '1.23'
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.23-h9062f6e_0.conda
+ hash:
+ md5: a9624935147a25b06013099d3038e467
+ sha256: 96c47725a8258159295996ea2758fa0ff9bea330e72b59641642e16be8427ce8
+ category: main
+ optional: false
+- name: libedit
+ version: 3.1.20240808
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ ncurses: '>=6.5,<7.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20240808-pl5321h7949ede_0.conda
+ hash:
+ md5: 8247f80f3dc464d9322e85007e307fe8
+ sha256: 4d0d69ddf9cc7d724a1ccf3a9852e44c8aea9825692582bac2c4e8d21ec95ccd
+ category: main
+ optional: false
+- name: libev
+ version: '4.33'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
+ hash:
+ md5: 172bf1cd1ff8629f2b1179945ed45055
+ sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4
+ category: main
+ optional: false
+- name: libexpat
+ version: 2.6.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
+ hash:
+ md5: db833e03127376d461e1e13e76f09b6c
+ sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26
+ category: main
+ optional: false
+- name: libexpat
+ version: 2.6.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda
+ hash:
+ md5: eb383771c680aa792feb529eaf9df82f
+ sha256: 0c0447bf20d1013d5603499de93a16b6faa92d7ead870d96305c0f065b6a5a12
+ category: main
+ optional: false
+- name: libffi
+ version: 3.4.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=9.4.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
+ hash:
+ md5: d645c6d2ac96843a2bfaccd2d62b3ac3
+ sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e
+ category: main
+ optional: false
+- name: libffi
+ version: 3.4.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc: '>=14.1,<15.0a0'
+ vs2015_runtime: '>=14.16.27012'
+ url: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2
+ hash:
+ md5: 2c96d1b6915b408893f9472569dee135
+ sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5
+ category: main
+ optional: false
+- name: libgcc
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ _libgcc_mutex: '0.1'
+ _openmp_mutex: '>=4.5'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
+ hash:
+ md5: 3cb76c3f10d3bc7f1105b2fc9db984df
+ sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569
+ category: main
+ optional: false
+- name: libgcc
+ version: 14.2.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ _openmp_mutex: '>=4.5'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ url: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda
+ hash:
+ md5: 75fdd34824997a0f9950a703b15d8ac5
+ sha256: ef840e797714440bb10b69446d815966fff41fdac79f79c4e19c475d81cd375d
+ category: main
+ optional: false
+- name: libgcc-ng
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
+ hash:
+ md5: e39480b9ca41323497b05492a63bc35b
+ sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7
+ category: main
+ optional: false
+- name: libgfortran
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgfortran5: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda
+ hash:
+ md5: f1fd30127802683586f768875127a987
+ sha256: fc9e7f22a17faf74da904ebfc4d88699013d2992e55505e4aa0eb01770290977
+ category: main
+ optional: false
+- name: libgfortran5
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc: '>=14.2.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
+ hash:
+ md5: 9822b874ea29af082e5d36098d25427d
+ sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d
+ category: main
+ optional: false
+- name: libgomp
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ _libgcc_mutex: '0.1'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda
+ hash:
+ md5: cc3573974587f12dda90d96e3e55a702
+ sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63
+ category: main
+ optional: false
+- name: libgomp
+ version: 14.2.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ url: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda
+ hash:
+ md5: 9e2d4d1214df6f21cba12f6eff4972f9
+ sha256: d8739b834608f35775209b032f0c2be752ef187863c7ec847afcebe2f681be4e
+ category: main
+ optional: false
+- name: libhwloc
+ version: 2.11.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ libxml2: '>=2.13.4,<3.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda
+ hash:
+ md5: b87a0ac5ab6495d8225db5dc72dd21cd
+ sha256: 850e255997f538d5fb6ed651321141155a33bb781d43d326fc4ff62114dd2842
+ category: main
+ optional: false
+- name: libiconv
+ version: '1.17'
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda
+ hash:
+ md5: e1eb10b1cca179f2baa3601e4efc8712
+ sha256: 5f844dd19b046d43174ad80c6ea75b5d504020e3b63cfbc4ace97b8730d35c7b
+ category: main
+ optional: false
+- name: libjpeg-turbo
+ version: 3.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda
+ hash:
+ md5: ea25936bb4080d843790b586850f82b8
+ sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f
+ category: main
+ optional: false
+- name: libjpeg-turbo
+ version: 3.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda
+ hash:
+ md5: 3f1b948619c45b1ca714d60c7389092c
+ sha256: 4e7808e3098b4b4ed7e287f63bb24f9045cc4d95bfd39f0db870fc2837d74dff
+ category: main
+ optional: false
+- name: liblapack
+ version: 3.9.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-26_linux64_openblas.conda
+ hash:
+ md5: 3792604c43695d6a273bc5faaac47d48
+ sha256: b76458c36331376911e0f98fa68109e02f4d5e5ebfffa79587ac69cef748bba1
+ category: main
+ optional: false
+- name: liblapack
+ version: 3.9.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: 3.9.0
+ url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-26_win64_mkl.conda
+ hash:
+ md5: 0a717f5fda7279b77bcce671b324408a
+ sha256: 6701bd162d105531b75d05acf82b4ad9fbc5a24ffbccf8c66efa9e72c386b33c
+ category: main
+ optional: false
+- name: liblzma
+ version: 5.6.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda
+ hash:
+ md5: 2ecf2f1c7e4e21fcfe6423a51a992d84
+ sha256: e6e425252f3839e2756e4af1ea2074dffd3396c161bf460629f9dfd6a65f15c6
+ category: main
+ optional: false
+- name: liblzma
+ version: 5.6.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda
+ hash:
+ md5: 015b9c0bd1eef60729ab577a38aaf0b5
+ sha256: 24d04bd55adfa44c421c99ce169df38cb1ad2bba5f43151bc847fc802496a1fa
+ category: main
+ optional: false
+- name: libnghttp2
+ version: 1.64.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ c-ares: '>=1.32.3,<2.0a0'
+ libev: '>=4.33,<5.0a0'
+ libgcc: '>=13'
+ libstdcxx: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.3.2,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
+ hash:
+ md5: 19e57602824042dfd0446292ef90488b
+ sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975
+ category: main
+ optional: false
+- name: libnsl
+ version: 2.0.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
+ hash:
+ md5: 30fd6e37fe21f86f4bd26d6ee73eeec7
+ sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6
+ category: main
+ optional: false
+- name: libopenblas
+ version: 0.3.28
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=14'
+ libgfortran: ''
+ libgfortran5: '>=14.2.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
+ hash:
+ md5: 62857b389e42b36b686331bec0922050
+ sha256: 99ba271d8a80a1af2723f2e124ffd91d850074c0389c067e6d96d72a2dbfeabe
+ category: main
+ optional: false
+- name: libpng
+ version: 1.6.45
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.45-h943b412_0.conda
+ hash:
+ md5: 85cbdaacad93808395ac295b5667d25b
+ sha256: b8f5b5ba9a14dedf7c97c01300de492b1b52b68eacbc3249a13fdbfa82349a2f
+ category: main
+ optional: false
+- name: libpng
+ version: 1.6.45
+ manager: conda
+ platform: win-64
+ dependencies:
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.45-had7236b_0.conda
+ hash:
+ md5: 41fb9e522ec6e0b34a6f23c98b07e1cf
+ sha256: e39c4f1bc8fee08f6a2eb4a88174d14c3a99dbb4850c98f3a87eb83b4dabbfca
+ category: main
+ optional: false
+- name: libsqlite
+ version: 3.47.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda
+ hash:
+ md5: b58da17db24b6e08bcbf8fed2fb8c915
+ sha256: 48af21ebc2cbf358976f1e0f4a0ab9e91dfc83d0ef337cf3837c6f5bc22fb352
+ category: main
+ optional: false
+- name: libsqlite
+ version: 3.47.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.2-h67fdade_0.conda
+ hash:
+ md5: ff00095330e0d35a16bd3bdbd1a2d3e7
+ sha256: ecfc0182c3b2e63c870581be1fa0e4dbdfec70d2011cb4f5bde416ece26c41df
+ category: main
+ optional: false
+- name: libssh2
+ version: 1.11.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda
+ hash:
+ md5: be2de152d8073ef1c01b7728475f2fe7
+ sha256: 0407ac9fda2bb67e11e357066eff144c845801d00b5f664efbc48813af1e7bb9
+ category: main
+ optional: false
+- name: libssh2
+ version: 1.11.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda
+ hash:
+ md5: af0cbf037dd614c34399b3b3e568c557
+ sha256: 4b3256bd2b4e4b3183005d3bd8826d651eccd1a4740b70625afa2b7e7123d191
+ category: main
+ optional: false
+- name: libstdcxx
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
+ hash:
+ md5: 234a5554c53625688d51062645337328
+ sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462
+ category: main
+ optional: false
+- name: libstdcxx-ng
+ version: 14.2.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libstdcxx: 14.2.0
+ url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
+ hash:
+ md5: 8371ac6457591af2cf6159439c1fd051
+ sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8
+ category: main
+ optional: false
+- name: libtiff
+ version: 4.7.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ lerc: '>=4.0.0,<5.0a0'
+ libdeflate: '>=1.23,<1.24.0a0'
+ libgcc: '>=13'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libstdcxx: '>=13'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda
+ hash:
+ md5: 0ea6510969e1296cc19966fad481f6de
+ sha256: b224e16b88d76ea95e4af56e2bc638c603bd26a770b98d117d04541d3aafa002
+ category: main
+ optional: false
+- name: libtiff
+ version: 4.7.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ lerc: '>=4.0.0,<5.0a0'
+ libdeflate: '>=1.23,<1.24.0a0'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ zstd: '>=1.5.6,<1.6.0a0'
+ url: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h797046b_3.conda
+ hash:
+ md5: defed79ff7a9164ad40320e3f116a138
+ sha256: c363a8baba4ce12b8f01f0ab74fe8b0dc83facd89c6604f4a191084923682768
+ category: main
+ optional: false
+- name: libuuid
+ version: 2.38.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ hash:
+ md5: 40b61aab5c7ba9ff276c41cfffe6b80b
+ sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18
+ category: main
+ optional: false
+- name: libwebp-base
+ version: 1.5.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda
+ hash:
+ md5: 63f790534398730f59e1b899c3644d4a
+ sha256: c45283fd3e90df5f0bd3dbcd31f59cdd2b001d424cf30a07223655413b158eaf
+ category: main
+ optional: false
+- name: libwebp-base
+ version: 1.5.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.5.0-h3b0e114_0.conda
+ hash:
+ md5: 33f7313967072c6e6d8f865f5493c7ae
+ sha256: 1d75274614e83a5750b8b94f7bad2fc0564c2312ff407e697d99152ed095576f
+ category: main
+ optional: false
+- name: libwinpthread
+ version: 12.0.0.r4.gg4f2fc60ca
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: ''
+ url: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda
+ hash:
+ md5: 03cccbba200ee0523bde1f3dad60b1f3
+ sha256: 6d5e158813ab8d553fbb0fedd0abe7bf92970b0be3a9ddf12da0f6cbad78f506
+ category: main
+ optional: false
+- name: libxcb
+ version: 1.17.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ pthread-stubs: ''
+ xorg-libxau: '>=1.0.11,<2.0a0'
+ xorg-libxdmcp: ''
+ url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
+ hash:
+ md5: 92ed62436b625154323d40d5f2f11dd7
+ sha256: 666c0c431b23c6cec6e492840b176dde533d48b7e6fb8883f5071223433776aa
+ category: main
+ optional: false
+- name: libxcb
+ version: 1.17.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ pthread-stubs: ''
+ ucrt: '>=10.0.20348.0'
+ xorg-libxau: '>=1.0.11,<2.0a0'
+ xorg-libxdmcp: ''
+ url: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda
+ hash:
+ md5: a69bbf778a462da324489976c84cfc8c
+ sha256: 08dec73df0e161c96765468847298a420933a36bc4f09b50e062df8793290737
+ category: main
+ optional: false
+- name: libxcrypt
+ version: 4.4.36
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ hash:
+ md5: 5aa797f8787fe7a17d1b0821485b5adc
+ sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c
+ category: main
+ optional: false
+- name: libxml2
+ version: 2.13.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ libiconv: '>=1.17,<2.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.5-he286e8c_1.conda
+ hash:
+ md5: 77eaa84f90fc90643c5a0be0aa9bdd1b
+ sha256: 084dd4dde342f13c43ee418d153ac5b2610f95be029073a15fa9dda22b130d06
+ category: main
+ optional: false
+- name: libzlib
+ version: 1.3.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ hash:
+ md5: edb0dca6bc32e4f4789199455a1dbeb8
+ sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4
+ category: main
+ optional: false
+- name: libzlib
+ version: 1.3.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ hash:
+ md5: 41fbfac52c601159df6c01f875de31b9
+ sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402
+ category: main
+ optional: false
+- name: markupsafe
+ version: 3.0.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda
+ hash:
+ md5: eb227c3e0bf58f5bd69c0532b157975b
+ sha256: 4a6bf68d2a2b669fecc9a4a009abd1cf8e72c2289522ff00d81b5a6e51ae78f5
+ category: dev
+ optional: true
+- name: markupsafe
+ version: 3.0.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py312h31fea79_1.conda
+ hash:
+ md5: 944fdd848abfbd6929e57c790b8174dd
+ sha256: bbb9595fe72231a8fbc8909cfa479af93741ecd2d28dfe37f8f205fef5df2217
+ category: dev
+ optional: true
+- name: mccabe
+ version: 0.7.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 827064ddfe0de2917fb29f1da4f8f533
+ sha256: 9b0037171dad0100f0296699a11ae7d355237b55f42f9094aebc0f41512d96a1
+ category: dev
+ optional: true
+- name: mccabe
+ version: 0.7.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 827064ddfe0de2917fb29f1da4f8f533
+ sha256: 9b0037171dad0100f0296699a11ae7d355237b55f42f9094aebc0f41512d96a1
+ category: dev
+ optional: true
+- name: mkl
+ version: 2024.2.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ intel-openmp: 2024.*
+ tbb: 2021.*
+ url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda
+ hash:
+ md5: 302dff2807f2927b3e9e0d19d60121de
+ sha256: 20e52b0389586d0b914a49cd286c5ccc9c47949bed60ca6df004d1d295f2edbd
+ category: main
+ optional: false
+- name: ncurses
+ version: '6.5'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc-ng: '>=12'
+ url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda
+ hash:
+ md5: 70caf8bb6cf39a0b6b7efc885f51c0fe
+ sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a
+ category: main
+ optional: false
+- name: numpy
+ version: 1.26.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ libgcc-ng: '>=12'
+ liblapack: '>=3.9.0,<4.0a0'
+ libstdcxx-ng: '>=12'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda
+ hash:
+ md5: d8285bea2a350f63fab23bf460221f3f
+ sha256: fe3459c75cf84dcef6ef14efcc4adb0ade66038ddd27cadb894f34f4797687d8
+ category: main
+ optional: false
+- name: numpy
+ version: 1.26.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ liblapack: '>=3.9.0,<4.0a0'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda
+ hash:
+ md5: f9ac74c3b07c396014434aca1e58d362
+ sha256: 73570817a5109d396b4ebbe5124a89525959269fd33fa33fd413700289fbe0ef
+ category: main
+ optional: false
+- name: openjpeg
+ version: 2.5.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ libpng: '>=1.6.44,<1.7.0a0'
+ libstdcxx: '>=13'
+ libtiff: '>=4.7.0,<4.8.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda
+ hash:
+ md5: 9e5816bc95d285c115a3ebc2f8563564
+ sha256: 5bee706ea5ba453ed7fd9da7da8380dd88b865c8d30b5aaec14d2b6dd32dbc39
+ category: main
+ optional: false
+- name: openjpeg
+ version: 2.5.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ libpng: '>=1.6.44,<1.7.0a0'
+ libtiff: '>=4.7.0,<4.8.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h4d64b90_0.conda
+ hash:
+ md5: fc050366dd0b8313eb797ed1ffef3a29
+ sha256: 410175815df192f57a07c29a6b3fdd4231937173face9e63f0830c1234272ce3
+ category: main
+ optional: false
+- name: openssl
+ version: 3.4.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ ca-certificates: ''
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda
+ hash:
+ md5: 4ce6875f75469b2757a65e10a5d05e31
+ sha256: f62f6bca4a33ca5109b6d571b052a394d836956d21b25b7ffd03376abf7a481f
+ category: main
+ optional: false
+- name: openssl
+ version: 3.4.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ ca-certificates: ''
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda
+ hash:
+ md5: fb45308ba8bfe1abf1f4a27bad24a743
+ sha256: 519a06eaab7c878fbebb8cab98ea4a4465eafb1e9ed8c6ce67226068a80a92f0
+ category: main
+ optional: false
+- name: packaging
+ version: '24.2'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.8'
+ url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
+ hash:
+ md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa
+ sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1
+ category: dev
+ optional: true
+- name: packaging
+ version: '24.2'
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.8'
+ url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
+ hash:
+ md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa
+ sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1
+ category: dev
+ optional: true
+- name: pillow
+ version: 10.3.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ freetype: '>=2.12.1,<3.0a0'
+ lcms2: '>=2.16,<3.0a0'
+ libgcc-ng: '>=12'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libxcb: '>=1.16,<2.0.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openjpeg: '>=2.5.2,<3.0a0'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ tk: '>=8.6.13,<8.7.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.3.0-py312h287a98d_1.conda
+ hash:
+ md5: b1325cda3f250f9f842180607054e6ed
+ sha256: e1a2426f23535fc15e577d799685229a93117b645734e5cca60597bb23cef09e
+ category: main
+ optional: false
+- name: pillow
+ version: 10.3.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ freetype: '>=2.12.1,<3.0a0'
+ lcms2: '>=2.16,<3.0a0'
+ libjpeg-turbo: '>=3.0.0,<4.0a0'
+ libtiff: '>=4.6.0,<4.8.0a0'
+ libwebp-base: '>=1.4.0,<2.0a0'
+ libxcb: '>=1.16,<2.0.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openjpeg: '>=2.5.2,<3.0a0'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ tk: '>=8.6.13,<8.7.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.3.0-py312h381445a_1.conda
+ hash:
+ md5: 04c1de8505791c12db1a0374f12e6e01
+ sha256: 2bd6e58a0630fdb9a52f532ce582907babc725930e1ba784c7cd74063f28d073
+ category: main
+ optional: false
+- name: pip
+ version: 24.3.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9,<3.13.0a0'
+ setuptools: ''
+ wheel: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
+ hash:
+ md5: 04e691b9fadd93a8a9fad87a81d4fd8f
+ sha256: da8c8888de10c1e4234ebcaa1550ac2b4b5408ac20f093fe641e4bc8c9c9f3eb
+ category: main
+ optional: false
+- name: pip
+ version: 24.3.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9,<3.13.0a0'
+ setuptools: ''
+ wheel: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
+ hash:
+ md5: 04e691b9fadd93a8a9fad87a81d4fd8f
+ sha256: da8c8888de10c1e4234ebcaa1550ac2b4b5408ac20f093fe641e4bc8c9c9f3eb
+ category: main
+ optional: false
+- name: platformdirs
+ version: 4.3.6
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 577852c7e53901ddccc7e6a9959ddebe
+ sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27
+ category: dev
+ optional: true
+- name: platformdirs
+ version: 4.3.6
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
+ hash:
+ md5: 577852c7e53901ddccc7e6a9959ddebe
+ sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27
+ category: dev
+ optional: true
+- name: pluggy
+ version: 1.5.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: e9dcbce5f45f9ee500e728ae58b605b6
+ sha256: 122433fc5318816b8c69283aaf267c73d87aa2d09ce39f64c9805c9a3b264819
+ category: dev
+ optional: true
+- name: pluggy
+ version: 1.5.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: e9dcbce5f45f9ee500e728ae58b605b6
+ sha256: 122433fc5318816b8c69283aaf267c73d87aa2d09ce39f64c9805c9a3b264819
+ category: dev
+ optional: true
+- name: pthread-stubs
+ version: '0.4'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ hash:
+ md5: b3c17d95b5a10c6e64a21fa17573e70e
+ sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973
+ category: main
+ optional: false
+- name: pthread-stubs
+ version: '0.4'
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda
+ hash:
+ md5: 3c8f2573569bb816483e5cf57efbbe29
+ sha256: 7e446bafb4d692792310ed022fe284e848c6a868c861655a92435af7368bae7b
+ category: main
+ optional: false
+- name: pydantic
+ version: 2.10.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ annotated-types: '>=0.6.0'
+ pydantic-core: 2.27.2
+ python: '>=3.9'
+ typing-extensions: '>=4.6.1'
+ typing_extensions: '>=4.12.2'
+ url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda
+ hash:
+ md5: e8ea30925c8271c4128375810d7d3d7a
+ sha256: 0f32c30ddc610cd1113335d8b4f311f20f4d72754b7c1a5d0d9493f597cf11d2
+ category: main
+ optional: false
+- name: pydantic
+ version: 2.10.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ annotated-types: '>=0.6.0'
+ pydantic-core: 2.27.2
+ python: '>=3.9'
+ typing-extensions: '>=4.6.1'
+ typing_extensions: '>=4.12.2'
+ url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda
+ hash:
+ md5: e8ea30925c8271c4128375810d7d3d7a
+ sha256: 0f32c30ddc610cd1113335d8b4f311f20f4d72754b7c1a5d0d9493f597cf11d2
+ category: main
+ optional: false
+- name: pydantic-core
+ version: 2.27.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ typing-extensions: '>=4.6.0,!=4.7.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.27.2-py312h12e396e_0.conda
+ hash:
+ md5: bae01b2563030c085f5158c518b84e86
+ sha256: 81602a4592ad2ac1a1cb57372fd25214e63b1c477d5818b0c21cde0f1f85c001
+ category: main
+ optional: false
+- name: pydantic-core
+ version: 2.27.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ typing-extensions: '>=4.6.0,!=4.7.0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.27.2-py312h2615798_0.conda
+ hash:
+ md5: 8ed894b023eef681ce86e4d0fb06ee60
+ sha256: ec6b268b239c9cb62ca2b77b28d011cf356b84386d667970f9d31fd38467e0aa
+ category: main
+ optional: false
+- name: pygments
+ version: 2.19.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
+ hash:
+ md5: 232fb4577b6687b2d503ef8e254270c9
+ sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b
+ category: dev
+ optional: true
+- name: pygments
+ version: 2.19.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
+ hash:
+ md5: 232fb4577b6687b2d503ef8e254270c9
+ sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b
+ category: dev
+ optional: true
+- name: pylint
+ version: 3.3.3
+ manager: conda
+ platform: linux-64
+ dependencies:
+ astroid: '>=3.3.8,<3.4.0-dev0'
+ colorama: '>=0.4.5'
+ dill: '>=0.3.7'
+ isort: '>=4.2.5,<6,!=5.13.0'
+ mccabe: '>=0.6,<0.8'
+ platformdirs: '>=2.2.0'
+ python: '>=3.9'
+ tomli: '>=1.1.0'
+ tomlkit: '>=0.10.1'
+ typing_extensions: '>=3.10.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.3.3-pyhd8ed1ab_0.conda
+ hash:
+ md5: 5842a1fa3b9b4f9fe7069b9ca5ed068d
+ sha256: a8192c823bfb6cdc57d2e12a8748ac1acb588c960c53e71c763f6359c5602e46
+ category: dev
+ optional: true
+- name: pylint
+ version: 3.3.3
+ manager: conda
+ platform: win-64
+ dependencies:
+ astroid: '>=3.3.8,<3.4.0-dev0'
+ colorama: '>=0.4.5'
+ dill: '>=0.3.7'
+ isort: '>=4.2.5,<6,!=5.13.0'
+ mccabe: '>=0.6,<0.8'
+ platformdirs: '>=2.2.0'
+ python: '>=3.9'
+ tomli: '>=1.1.0'
+ tomlkit: '>=0.10.1'
+ typing_extensions: '>=3.10.0'
+ url: https://conda.anaconda.org/conda-forge/noarch/pylint-3.3.3-pyhd8ed1ab_0.conda
+ hash:
+ md5: 5842a1fa3b9b4f9fe7069b9ca5ed068d
+ sha256: a8192c823bfb6cdc57d2e12a8748ac1acb588c960c53e71c763f6359c5602e46
+ category: dev
+ optional: true
+- name: pytest
+ version: 8.3.4
+ manager: conda
+ platform: linux-64
+ dependencies:
+ colorama: ''
+ exceptiongroup: '>=1.0.0rc8'
+ iniconfig: ''
+ packaging: ''
+ pluggy: <2,>=1.5
+ python: '>=3.9'
+ tomli: '>=1'
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.4-pyhd8ed1ab_1.conda
+ hash:
+ md5: 799ed216dc6af62520f32aa39bc1c2bb
+ sha256: 75245ca9d0cbd6d38bb45ec02430189a9d4c21c055c5259739d738a2298d61b3
+ category: dev
+ optional: true
+- name: pytest
+ version: 8.3.4
+ manager: conda
+ platform: win-64
+ dependencies:
+ colorama: ''
+ exceptiongroup: '>=1.0.0rc8'
+ iniconfig: ''
+ packaging: ''
+ pluggy: <2,>=1.5
+ python: '>=3.9'
+ tomli: '>=1'
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.4-pyhd8ed1ab_1.conda
+ hash:
+ md5: 799ed216dc6af62520f32aa39bc1c2bb
+ sha256: 75245ca9d0cbd6d38bb45ec02430189a9d4c21c055c5259739d738a2298d61b3
+ category: dev
+ optional: true
+- name: pytest-cov
+ version: 6.0.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ coverage: '>=7.5'
+ pytest: '>=4.6'
+ python: '>=3.9'
+ toml: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 79963c319d1be62c8fd3e34555816e01
+ sha256: 09acac1974e10a639415be4be326dd21fa6d66ca51a01fb71532263fba6dccf6
+ category: dev
+ optional: true
+- name: pytest-cov
+ version: 6.0.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ coverage: '>=7.5'
+ pytest: '>=4.6'
+ python: '>=3.9'
+ toml: ''
+ url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda
+ hash:
+ md5: 79963c319d1be62c8fd3e34555816e01
+ sha256: 09acac1974e10a639415be4be326dd21fa6d66ca51a01fb71532263fba6dccf6
+ category: dev
+ optional: true
+- name: python
+ version: 3.12.8
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ bzip2: '>=1.0.8,<2.0a0'
+ ld_impl_linux-64: '>=2.36.1'
+ libexpat: '>=2.6.4,<3.0a0'
+ libffi: '>=3.4,<4.0a0'
+ libgcc: '>=13'
+ liblzma: '>=5.6.3,<6.0a0'
+ libnsl: '>=2.0.1,<2.1.0a0'
+ libsqlite: '>=3.47.0,<4.0a0'
+ libuuid: '>=2.38.1,<3.0a0'
+ libxcrypt: '>=4.4.36'
+ libzlib: '>=1.3.1,<2.0a0'
+ ncurses: '>=6.5,<7.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ pip: ''
+ readline: '>=8.2,<9.0a0'
+ tk: '>=8.6.13,<8.7.0a0'
+ tzdata: ''
+ url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
+ hash:
+ md5: 7fd2fd79436d9b473812f14e86746844
+ sha256: 3f0e0518c992d8ccfe62b189125721309836fe48a010dc424240583e157f9ff0
+ category: main
+ optional: false
+- name: python
+ version: 3.12.8
+ manager: conda
+ platform: win-64
+ dependencies:
+ bzip2: '>=1.0.8,<2.0a0'
+ libexpat: '>=2.6.4,<3.0a0'
+ libffi: '>=3.4,<4.0a0'
+ liblzma: '>=5.6.3,<6.0a0'
+ libsqlite: '>=3.47.0,<4.0a0'
+ libzlib: '>=1.3.1,<2.0a0'
+ openssl: '>=3.4.0,<4.0a0'
+ pip: ''
+ tk: '>=8.6.13,<8.7.0a0'
+ tzdata: ''
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/python-3.12.8-h3f84c4b_1_cpython.conda
+ hash:
+ md5: 8cd0693344796fb32087185fca16f4cc
+ sha256: e1b37a398b3e2ea363de7cff6706e5ec2a5eb36b211132150e8601d7afd8f3aa
+ category: main
+ optional: false
+- name: python_abi
+ version: '3.12'
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda
+ hash:
+ md5: 0424ae29b104430108f5218a66db7260
+ sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0
+ category: main
+ optional: false
+- name: python_abi
+ version: '3.12'
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda
+ hash:
+ md5: e8681f534453af7afab4cd2bc1423eec
+ sha256: 9486662af81a219e96d343449eff242f38d7c5128ced5ce5acf85857265058d6
+ category: main
+ optional: false
+- name: pyyaml
+ version: 6.0.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ yaml: '>=0.2.5,<0.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda
+ hash:
+ md5: 549e5930e768548a89c23f595dac5a95
+ sha256: a60705971e958724168f2ebbb8ed4853067f1d3f7059843df3903e3092bbcffa
+ category: dev
+ optional: true
+- name: pyyaml
+ version: 6.0.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ yaml: '>=0.2.5,<0.3.0a0'
+ url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda
+ hash:
+ md5: afb7809721516919c276b45f847c085f
+ sha256: fa3ede1fa2ed6ea0a51095aeea398f6f0f54af036c4bc525726107cfb49229d5
+ category: dev
+ optional: true
+- name: readline
+ version: '8.2'
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ ncurses: '>=6.3,<7.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
+ hash:
+ md5: 47d31b792659ce70f470b5c82fdfb7a4
+ sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7
+ category: main
+ optional: false
+- name: scipy
+ version: 1.14.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ libgcc: '>=13'
+ libgfortran: ''
+ libgfortran5: '>=13.3.0'
+ liblapack: '>=3.9.0,<4.0a0'
+ libstdcxx: '>=13'
+ numpy: '>=1.23.5'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py312h62794b6_2.conda
+ hash:
+ md5: 94688dd449f6c092e5f951780235aca1
+ sha256: 6e4916d610dc15f9b504517bd6c1f3dbbae019a3c7abf0aeb55f310c452a4474
+ category: main
+ optional: false
+- name: scipy
+ version: 1.14.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ libblas: '>=3.9.0,<4.0a0'
+ libcblas: '>=3.9.0,<4.0a0'
+ liblapack: '>=3.9.0,<4.0a0'
+ numpy: '>=1.23.5'
+ python: '>=3.12,<3.13.0a0'
+ python_abi: 3.12.*
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py312h337df96_2.conda
+ hash:
+ md5: 3ef0017e79039d4767ba3b4891113a07
+ sha256: eb67adcca33026895b6539d02e1bc01f495e1d593a26053d734fe7a180e708f4
+ category: main
+ optional: false
+- name: setuptools
+ version: 75.8.0
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda
+ hash:
+ md5: 8f28e299c11afdd79e0ec1e279dcdc52
+ sha256: e0778e4f276e9a81b51c56f51ec22a27b4d8fc955abc0be77ad09ca9bea06bb9
+ category: main
+ optional: false
+- name: setuptools
+ version: 75.8.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda
+ hash:
+ md5: 8f28e299c11afdd79e0ec1e279dcdc52
+ sha256: e0778e4f276e9a81b51c56f51ec22a27b4d8fc955abc0be77ad09ca9bea06bb9
+ category: main
+ optional: false
+- name: tbb
+ version: 2021.13.0
+ manager: conda
+ platform: win-64
+ dependencies:
+ libhwloc: '>=2.11.2,<2.11.3.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda
+ hash:
+ md5: 9190dd0a23d925f7602f9628b3aed511
+ sha256: 03cc5442046485b03dd1120d0f49d35a7e522930a2ab82f275e938e17b07b302
+ category: main
+ optional: false
+- name: tk
+ version: 8.6.13
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
+ hash:
+ md5: d453b98d9c83e71da0741bb0ff4d76bc
+ sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e
+ category: main
+ optional: false
+- name: tk
+ version: 8.6.13
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda
+ hash:
+ md5: fc048363eb8f03cd1737600a5d08aafe
+ sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1
+ category: main
+ optional: false
+- name: toml
+ version: 0.10.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: b0dd904de08b7db706167240bf37b164
+ sha256: 34f3a83384ac3ac30aefd1309e69498d8a4aa0bf2d1f21c645f79b180e378938
+ category: dev
+ optional: true
+- name: toml
+ version: 0.10.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda
+ hash:
+ md5: b0dd904de08b7db706167240bf37b164
+ sha256: 34f3a83384ac3ac30aefd1309e69498d8a4aa0bf2d1f21c645f79b180e378938
+ category: dev
+ optional: true
+- name: tomli
+ version: 2.2.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: ac944244f1fed2eb49bae07193ae8215
+ sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e
+ category: dev
+ optional: true
+- name: tomli
+ version: 2.2.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: ac944244f1fed2eb49bae07193ae8215
+ sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e
+ category: dev
+ optional: true
+- name: tomlkit
+ version: 0.13.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_1.conda
+ hash:
+ md5: 1d9ab4fc875c52db83f9c9b40af4e2c8
+ sha256: 986fae65f5568e95dbf858d08d77a0f9cca031345a98550f1d4b51d36d8811e2
+ category: dev
+ optional: true
+- name: tomlkit
+ version: 0.13.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_1.conda
+ hash:
+ md5: 1d9ab4fc875c52db83f9c9b40af4e2c8
+ sha256: 986fae65f5568e95dbf858d08d77a0f9cca031345a98550f1d4b51d36d8811e2
+ category: dev
+ optional: true
+- name: typing-extensions
+ version: 4.12.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ typing_extensions: 4.12.2
+ url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
+ hash:
+ md5: b6a408c64b78ec7b779a3e5c7a902433
+ sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32
+ category: main
+ optional: false
+- name: typing-extensions
+ version: 4.12.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ typing_extensions: 4.12.2
+ url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
+ hash:
+ md5: b6a408c64b78ec7b779a3e5c7a902433
+ sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32
+ category: main
+ optional: false
+- name: typing_extensions
+ version: 4.12.2
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
+ hash:
+ md5: d17f13df8b65464ca316cbc000a3cb64
+ sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568
+ category: main
+ optional: false
+- name: typing_extensions
+ version: 4.12.2
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
+ hash:
+ md5: d17f13df8b65464ca316cbc000a3cb64
+ sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568
+ category: main
+ optional: false
+- name: tzdata
+ version: 2024b
+ manager: conda
+ platform: linux-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
+ hash:
+ md5: 8ac3367aafb1cc0a068483c580af8015
+ sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf
+ category: main
+ optional: false
+- name: tzdata
+ version: 2024b
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
+ hash:
+ md5: 8ac3367aafb1cc0a068483c580af8015
+ sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf
+ category: main
+ optional: false
+- name: ucrt
+ version: 10.0.22621.0
+ manager: conda
+ platform: win-64
+ dependencies: {}
+ url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ hash:
+ md5: 6797b005cd0f439c4c5c9ac565783700
+ sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450
+ category: main
+ optional: false
+- name: vc
+ version: '14.3'
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc14_runtime: '>=14.38.33135'
+ url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda
+ hash:
+ md5: 7c10ec3158d1eb4ddff7007c9101adb0
+ sha256: 986ddaf8feec2904eac9535a7ddb7acda1a1dfb9482088fdb8129f1595181663
+ category: main
+ optional: false
+- name: vc14_runtime
+ version: 14.42.34433
+ manager: conda
+ platform: win-64
+ dependencies:
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda
+ hash:
+ md5: 32b37d0cfa80da34548501cdc913a832
+ sha256: c483b090c4251a260aba6ff3e83a307bcfb5fb24ad7ced872ab5d02971bd3a49
+ category: main
+ optional: false
+- name: vs2015_runtime
+ version: 14.42.34433
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc14_runtime: '>=14.42.34433'
+ url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda
+ hash:
+ md5: 5c176975ca2b8366abad3c97b3cd1e83
+ sha256: 568ce8151eaae256f1cef752fc78651ad7a86ff05153cc7a4740b52ae6536118
+ category: main
+ optional: false
+- name: wheel
+ version: 0.45.1
+ manager: conda
+ platform: linux-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: 75cb7132eb58d97896e173ef12ac9986
+ sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce
+ category: main
+ optional: false
+- name: wheel
+ version: 0.45.1
+ manager: conda
+ platform: win-64
+ dependencies:
+ python: '>=3.9'
+ url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda
+ hash:
+ md5: 75cb7132eb58d97896e173ef12ac9986
+ sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce
+ category: main
+ optional: false
+- name: xorg-libxau
+ version: 1.0.12
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
+ hash:
+ md5: f6ebe2cb3f82ba6c057dde5d9debe4f7
+ sha256: ed10c9283974d311855ae08a16dfd7e56241fac632aec3b92e3cfe73cff31038
+ category: main
+ optional: false
+- name: xorg-libxau
+ version: 1.0.12
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.12-h0e40799_0.conda
+ hash:
+ md5: 2ffbfae4548098297c033228256eb96e
+ sha256: 047836241b2712aab1e29474a6f728647bff3ab57de2806b0bb0a6cf9a2d2634
+ category: main
+ optional: false
+- name: xorg-libxdmcp
+ version: 1.1.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ __glibc: '>=2.17,<3.0.a0'
+ libgcc: '>=13'
+ url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
+ hash:
+ md5: 8035c64cb77ed555e3f150b7b3972480
+ sha256: 6b250f3e59db07c2514057944a3ea2044d6a8cdde8a47b6497c254520fade1ee
+ category: main
+ optional: false
+- name: xorg-libxdmcp
+ version: 1.1.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ libgcc: '>=13'
+ libwinpthread: '>=12.0.0.r4.gg4f2fc60ca'
+ ucrt: '>=10.0.20348.0'
+ url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda
+ hash:
+ md5: 8393c0f7e7870b4eb45553326f81f0ff
+ sha256: 9075f98dcaa8e9957e4a3d9d30db05c7578a536950a31c200854c5c34e1edb2c
+ category: main
+ optional: false
+- name: yaml
+ version: 0.2.5
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=9.4.0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2
+ hash:
+ md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae
+ sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535
+ category: dev
+ optional: true
+- name: yaml
+ version: 0.2.5
+ manager: conda
+ platform: win-64
+ dependencies:
+ vc: '>=14.1,<15.0a0'
+ vs2015_runtime: '>=14.16.27012'
+ url: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2
+ hash:
+ md5: adbfb9f45d1004a26763652246a33764
+ sha256: 4e2246383003acbad9682c7c63178e2e715ad0eb84f03a8df1fbfba455dfedc5
+ category: dev
+ optional: true
+- name: zstd
+ version: 1.5.6
+ manager: conda
+ platform: linux-64
+ dependencies:
+ libgcc-ng: '>=12'
+ libstdcxx-ng: '>=12'
+ libzlib: '>=1.2.13,<2.0.0a0'
+ url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
+ hash:
+ md5: 4d056880988120e29d75bfff282e0f45
+ sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b
+ category: main
+ optional: false
+- name: zstd
+ version: 1.5.6
+ manager: conda
+ platform: win-64
+ dependencies:
+ libzlib: '>=1.2.13,<2.0.0a0'
+ ucrt: '>=10.0.20348.0'
+ vc: '>=14.2,<15'
+ vc14_runtime: '>=14.29.30139'
+ url: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda
+ hash:
+ md5: 9a17230f95733c04dc40a2b1e5491d74
+ sha256: 768e30dc513568491818fb068ee867c57c514b553915536da09e5d10b4ebf3c3
+ category: main
+ optional: false
+- name: geoh5py
+ version: 0.10.0rc1
+ manager: pip
+ platform: linux-64
+ dependencies:
+ h5py: '>=3.2.1,<4.0.0'
+ numpy: '>=1.26.0,<1.27.0'
+ pillow: '>=10.3.0,<10.4.0'
+ pydantic: '>=2.5.2,<3.0.0'
+ url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/public-pypi-dev/geoh5py/0.10.0-rc.1/geoh5py-0.10.0rc1-py3-none-any.whl
+ hash:
+ sha256: 50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+ category: main
+ optional: false
+- name: geoh5py
+ version: 0.10.0rc1
+ manager: pip
+ platform: win-64
+ dependencies:
+ h5py: '>=3.2.1,<4.0.0'
+ numpy: '>=1.26.0,<1.27.0'
+ pillow: '>=10.3.0,<10.4.0'
+ pydantic: '>=2.5.2,<3.0.0'
+ url: https://mirageoscienceltd.jfrog.io/artifactory/api/pypi/public-pypi-dev/geoh5py/0.10.0-rc.1/geoh5py-0.10.0rc1-py3-none-any.whl
+ hash:
+ sha256: 50a6b8f52a0dafd9cff1706155c50262d66d193a063822f32837e0e424ead9f2
+ category: main
+ optional: false
diff --git a/pylintrc b/pylintrc
index 32f41cd5..bc816f49 100644
--- a/pylintrc
+++ b/pylintrc
@@ -343,7 +343,7 @@ exclude-too-few-public-methods=
ignored-parents=
# Maximum number of arguments for function / method.
-max-args=6
+max-args=9 # as long as not hitting too-many-positional-arguments
# Maximum number of attributes for a class (see R0902).
max-attributes=15
diff --git a/pyproject.toml b/pyproject.toml
index a97d021d..420b65a0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "geoapps-utils"
-version = "0.3.0"
+version = "0.4.0"
license = "MIT"
description = "Geoapps Utils"
authors = ["Mira Geoscience "]
@@ -10,15 +10,7 @@ repository = "https://github.com/MiraGeoscience/geoapps-utils"
homepage = "https://www.mirageoscience.com/mining-industry-software/python-integration/"
readme = "README.rst"
-include = [
- { path = "COPYING", format = ["sdist", "wheel"] },
- { path = "COPYING.LESSER", format = ["sdist", "wheel"] },
- { path = "LICENSE", format = ["sdist", "wheel"] },
- { path = "README.rst", format = ["sdist", "wheel"] },
- { path = "THIRD_PARTY_SOFTWARE.rst", format = ["sdist", "wheel"] },
- { path = "docs/**/THIRD_PARTY_SOFTWARE.rst", format = ["sdist", "wheel"] },
-]
-
+keywords = [] # TODO: add keywords
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
@@ -33,69 +25,105 @@ classifiers = [
"Natural Language :: English",
]
+packages = [
+ { include = "geoapps_utils" },
+ { include = "geoapps_utils-assets" },
+]
+
+include = [
+ { path = "COPYING" },
+ { path = "COPYING.LESSER" },
+ { path = "LICENSE" },
+ { path = "README.rst" },
+ { path = "THIRD_PARTY_SOFTWARE.rst" },
+ { path = "docs/**/THIRD_PARTY_SOFTWARE.rst" },
+]
+
+exclude = [] # files to exclude from packaging
+
[tool.poetry.scripts]
[tool.poetry.dependencies]
-python = "^3.10, <3.11"
+python = "^3.10"
-numpy = "~1.23.5" # also in geoh5py
-pydantic = "~2.5.2"
-scipy = "~1.10.1"
+numpy = "~1.26.0"
+pydantic = "^2.5.2"
+scipy = "~1.14.0"
## pip dependencies from Git repositories
#----------------------------------------
-geoh5py = {version = "~0.9.0", source = "pypi", allow-prereleases = true}
-#geoh5py = {url = "https://github.com/MiraGeoscience/geoh5py/archive/refs/heads/release/0.9.0.zip#sha256="}
-#geoh5py = {url = "http://localhost:8888/geoh5py.tar.gz#sha256="}
+geoh5py = {version = ">=0.10.0rc1, <0.11.0a.dev", source = "pypi", allow-prereleases = true}
+#geoh5py = {git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "release/0.10.0"}
-## dependencies for plots with Dash
-#-------------------------------
-dash = {version = "^2.12", optional = true}
-flask = {version = "^3.0.3", optional = true}
-pyqtwebengine = {version = "~5.15.2, <5.15.7", optional = true} # 5.15.7 and newer on conda-forge, but not in PyPI
-pyside2 = {version = "~5.15.2.1", optional = true} # 5.15.3 and newer on conda-forge, but not in PyPI
-
-## indirect dependencies, forcing them here for installation through Conda not pip
-#---------------------------------------------------------------------------------
-h5py = "^3.2.1" # from geoh5py
-Pillow = "~10.3.0" # from geoh5py
## about pip dependencies
# to be specified to work with conda-lock
# - from PyPI: my_package = { version = "1.2.3", source = "pypi" }
-# - from URL:
-# - for a tags: my_package = { url = "https://github.com/ORGANISATION/REPO/archive/refs/tags/VERSION_TAG.zip#sha256=" }
-# - for a branch: my_package = { url = "https://github.com/ORGANISATION/REPO/archive/refs/heads/BRANCH.zip#sha256=" }
-# Note - conda-lock does not support the syntax: my_package = { git = ... }
-# while poetry2conda supports only { git = "...", tag = "..." }, and not { url = ... }
-
-[tool.conda-lock.dependencies]
-pyside2 = {version = "5.15.*", optional = true} # allow Conda to resolve to a higher existing version than in PyPI
+# - from URL: !!! no actual lock, as tag or branch can move and installation will fetch current !!!
+# - for a tag: my_package = { url = "https://github.com/ORGANISATION/REPO/archive/refs/tags/TAG.tar.gz" }
+# - for a branch: my_package = { url = "https://github.com/ORGANISATION/REPO/archive/refs/heads/BRANCH.tar.gz" }
+# - to actually lock on a revision: my_package = { git = "https://github.com/ORGANISATION/REPO.git", rev = "GIT_REV" }
+# (where rev value is a tag, a branch name or a commit hash). Can also use ``branch`` or ``tag`` instead of ``rev``
[tool.poetry.group.dev.dependencies]
Pygments = "*"
pylint = "*"
pytest = "*"
pytest-cov = "*"
+pyyaml = '*'
+jinja2 = '*'
+packaging = '*'
tomli = "*"
-[tool.poetry.extras]
-dash = [
- "dash",
- "flask",
- "pyqtwebengine",
- "pyside2",
-]
-
[tool.conda-lock]
platforms = ['win-64', 'linux-64']
channels = ['conda-forge']
-[tool.isort]
-profile = "black"
+[tool.conda-lock.dependencies]
+## indirect dependencies, forcing them here for installation through Conda not pip
+#---------------------------------------------------------------------------------
+Pillow = ">=10.3.0, <10.4.0" # from geoh5py
+h5py = ">=3.2.1, <4.0.0" # from geoh5py
+
+[tool.poetry.extras]
+
+[tool.ruff]
+target-version = "py310"
+
+[tool.ruff.lint]
+ignore = [
+ "B028", # no-explicit-stacklevel for warnings.warn()
+ "E501", # line-too-long - code is reformatted (do not care about comments and docstring)
+ "F401", # unsused-import - covered by pycln
+ "RUF005", # collection-literal-concatenation - wrong suggestion with numpy arrays
+ "RUF012", # TODO
+ "UP038", # TODO
+]
+select = [
+ "A", # flake8-builtins
+ "B", # flake8-bugbear
+ "B006", # Do not use mutable data structures for argument defaults
+ "B9", # flake8-bugbear opiniated warnings
+ "BLE", # flake8-blind-except
+ "C4", # flake8-comprehensions
+ "C9", # mccabe
+ "E", # pycodestyle errors
+ "F", # pyflakes
+ "I", # isort
+ "RUF", # ruff rules
+ "TID", # flake8-tidy-imports
+ "UP", # pyupgrade
+ "W", # pycodestyle warnings
+]
+
+[tool.ruff.lint.mccabe]
+max-complexity = 18
+
+[tool.ruff.lint.isort]
+lines-after-imports = 2
-[tool.black]
-# defaults are just fine
+[tool.ruff.format]
+# default formatting is just fine
[tool.mypy]
warn_unused_configs = true
@@ -115,7 +143,7 @@ plugins = [
[tool.coverage.run]
branch = true
source = ["geoapps_utils"]
-omit = ["geoapps_utils/application/*"]
+omit = []
[tool.coverage.report]
exclude_lines = [
@@ -125,7 +153,7 @@ exclude_lines = [
"pragma: no cover"
]
-fail_under = 78
+fail_under = 75
[tool.coverage.html]
skip_empty = true
diff --git a/tests/__init__.py b/tests/__init__.py
index 1897c5af..348e9ed6 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,6 +1,9 @@
-# Copyright (c) 2022-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2022-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/tests/conftest.py b/tests/conftest.py
index d84e6f13..42cf215a 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
diff --git a/tests/conversions_test.py b/tests/conversions_test.py
index 6d146368..f87f1aec 100644
--- a/tests/conversions_test.py
+++ b/tests/conversions_test.py
@@ -1,13 +1,16 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
-from geoapps_utils.conversions import hex_to_rgb, string_to_numeric
+from geoapps_utils.utils.conversions import hex_to_rgb, string_to_numeric
def test_hex_to_rgb():
diff --git a/tests/dataclass_test.py b/tests/dataclass_test.py
index 3444e96d..f8203acf 100644
--- a/tests/dataclass_test.py
+++ b/tests/dataclass_test.py
@@ -1,28 +1,40 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+# pylint: disable=too-few-public-methods
from __future__ import annotations
+from pathlib import Path
+from typing import ClassVar
+
import pytest
from geoh5py.ui_json import InputFile
from geoh5py.workspace import Workspace
from pydantic import BaseModel, ValidationError
+from geoapps_utils import assets_path
from geoapps_utils.driver.data import BaseData
-WORKSPACE = Workspace()
-VALID_PARAMETERS = {
- "monitoring_directory": None,
- "workspace_geoh5": WORKSPACE,
- "geoh5": WORKSPACE,
- "run_command": "test.driver",
- "title": "test title",
- "conda_environment": "test_env",
-}
+
+def get_params_dict(tmp_path):
+ workspace = Workspace.create(tmp_path)
+ param_dict = {
+ "monitoring_directory": None,
+ "workspace_geoh5": workspace.h5file,
+ "geoh5": workspace,
+ "run_command": "test.driver",
+ "title": "test title",
+ "conda_environment": "test_env",
+ }
+ return param_dict
class TestOpts(BaseModel):
@@ -42,17 +54,15 @@ class TestModel(BaseModel):
params: TestParams
-def test_dataclass_valid_values():
- model = BaseData(**VALID_PARAMETERS)
- output_params = {**model.model_dump()}
+def test_dataclass_valid_values(tmp_path):
+ valid_parameters = get_params_dict(tmp_path / f"{__name__}.geoh5")
+ model = BaseData(**valid_parameters)
+ output_params = model.model_dump()
+ assert all(k not in output_params for k in ["title", "run_command"])
+ assert len(output_params) == len(valid_parameters) - 2
for k, v in output_params.items():
- assert output_params[k] == v
-
- assert len(output_params) == len(VALID_PARAMETERS) + 1
-
- for k, v in VALID_PARAMETERS.items():
- assert output_params[k] == v
+ assert valid_parameters[k] == v
def test_dataclass_invalid_values(tmp_path):
@@ -63,34 +73,35 @@ def test_dataclass_invalid_values(tmp_path):
"workspace_geoh5": workspace.h5file,
"geoh5": False,
"run_command": "test.driver",
- "title": None,
+ "title": 123,
"conda_environment": "test_env",
"workspace": workspace.h5file,
}
-
- with pytest.raises(ValidationError) as e:
+ try:
BaseData(**invalid_params)
- assert len(e.errors()) == 6 # type: ignore
+ except ValidationError as e:
+ assert len(e.errors()) == 3 # type: ignore
error_params = [error["loc"][0] for error in e.errors()] # type: ignore
error_types = [error["type"] for error in e.errors()] # type: ignore
for error_param in [
"monitoring_directory",
"geoh5",
- "title",
- "conda_environment_boolean",
]:
assert error_param in error_params
- for error_type in ["string_type", "path_type", "missing"]:
+ for error_type in ["string_type", "path_type", "is_instance_of"]:
assert error_type in error_types
-def test_dataclass_input_file():
- ifile = InputFile(ui_json=VALID_PARAMETERS)
+def test_dataclass_input_file(tmp_path):
+ valid_parameters = get_params_dict(tmp_path / f"{__name__}.geoh5")
+ ifile = InputFile(ui_json=valid_parameters)
model = BaseData.build(ifile)
- assert model.geoh5 == WORKSPACE
- assert model.flatten() == VALID_PARAMETERS
- assert model.input_file == ifile
+ assert model.geoh5.h5file == tmp_path / f"{__name__}.geoh5"
+ assert model.flatten() == {
+ k: v for k, v in valid_parameters.items() if k not in ["title", "run_command"]
+ }
+ assert model._input_file == ifile # pylint: disable=protected-access
def test_pydantic_validates_nested_models():
@@ -139,7 +150,8 @@ def test_collect_input_from_dict():
assert data["params"]["options"]["opt3"] == "opt3"
-def test_missing_parameters():
+def test_missing_parameters(tmp_path):
+ valid_parameters = get_params_dict(tmp_path / f"{__name__}.geoh5")
test_data = {
"name": "test",
"type": "big",
@@ -149,7 +161,7 @@ def test_missing_parameters():
}
kwargs = BaseData.collect_input_from_dict(TestModel, test_data) # type: ignore
with pytest.raises(ValidationError, match="value\n Field required"):
- TestModel(**VALID_PARAMETERS, **kwargs)
+ TestModel(**valid_parameters, **kwargs)
test_data = {
"name": "test",
@@ -160,7 +172,7 @@ def test_missing_parameters():
}
kwargs = BaseData.collect_input_from_dict(TestModel, test_data) # type: ignore
with pytest.raises(ValidationError, match="opt1\n Field required"):
- TestModel(**VALID_PARAMETERS, **kwargs)
+ TestModel(**valid_parameters, **kwargs)
test_data = {
"name": "test",
@@ -170,11 +182,11 @@ def test_missing_parameters():
"opt3": "opt3",
}
kwargs = BaseData.collect_input_from_dict(TestModel, test_data) # type: ignore
- model = TestModel(**VALID_PARAMETERS, **kwargs)
+ model = TestModel(**valid_parameters, **kwargs)
assert model.params.options.opt2 == "default"
-def test_nested_model():
+def test_nested_model(tmp_path):
class GroupOptions(BaseModel):
group_type: str
@@ -190,7 +202,7 @@ class NestedModel(BaseData):
_name = "nested"
group: GroupParams
- valid_params = VALID_PARAMETERS.copy()
+ valid_params = get_params_dict(tmp_path / f"{__name__}.geoh5")
valid_params["value"] = "test"
valid_params["group_type"] = "multi"
@@ -199,8 +211,42 @@ class NestedModel(BaseData):
assert isinstance(model.group, GroupParams)
assert model.group.value == "test"
- assert model.flatten() == valid_params
-
- assert model.name == "nested"
+ assert model.flatten() == {
+ k: v for k, v in valid_params.items() if k not in ["title", "run_command"]
+ }
assert model.group.options.group_type == "multi"
+
+
+def test_params_construction(tmp_path):
+ params = BaseData(geoh5=Workspace(tmp_path / "test.geoh5"))
+ assert BaseData.default_ui_json is None
+ assert BaseData.title == "Base Data"
+ assert BaseData.run_command == "geoapps_utils.driver.driver"
+ assert str(params.geoh5.h5file) == str(tmp_path / "test.geoh5")
+
+
+def test_base_data_write_ui_json(tmp_path):
+ class TestData(BaseData):
+ default_ui_json: ClassVar[Path | None] = assets_path() / "uijson/base.ui.json"
+
+ params = TestData(geoh5=Workspace(tmp_path / "test.geoh5"))
+ params.write_ui_json(tmp_path / "test.ui.json")
+ assert (tmp_path / "test.ui.json").exists()
+
+ ifile = InputFile.read_ui_json(
+ assets_path() / "uijson/base.ui.json", validate=False
+ )
+ ifile.ui_json["my_param"] = "test it"
+ ifile.data["my_param"] = "test it"
+ ifile.data["geoh5"] = params.geoh5
+ params2 = BaseData.build(ifile)
+ params2.write_ui_json(tmp_path / "validation.ui.json")
+
+ ifile = InputFile.read_ui_json(tmp_path / "validation.ui.json")
+ assert ifile.data["my_param"] == "test it"
+
+ params3 = BaseData(geoh5=Workspace(tmp_path / "test.geoh5"))
+
+ with pytest.raises(FileNotFoundError, match="Default uijson file "):
+ params3._create_input_file_from_attributes() # pylint: disable=protected-access
diff --git a/tests/driver_test.py b/tests/driver_test.py
index 11cdf67e..f3b917ca 100644
--- a/tests/driver_test.py
+++ b/tests/driver_test.py
@@ -1,14 +1,18 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
from copy import deepcopy
+import pytest
from geoh5py import Workspace
from geoh5py.ui_json.constants import default_ui_json as base_ui_json
@@ -55,3 +59,8 @@ def run(self):
# Create driver
driver = TestDriver(params)
driver.start(tmp_path / "test_ifile.ui.json")
+
+
+def test_params_errors():
+ with pytest.raises(TypeError, match="'input_data' must be "):
+ BaseParams.build(input_data="bidon") # type: ignore
diff --git a/tests/formatters_test.py b/tests/formatters_test.py
index 9f104b1a..1aeac56a 100644
--- a/tests/formatters_test.py
+++ b/tests/formatters_test.py
@@ -1,18 +1,21 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
-from geoapps_utils.formatters import string_name
+from geoapps_utils.utils.formatters import string_name
def test_string_name():
chars = "!@#$%^&*().,"
value = "H!e(l@l#o.W$o%r^l&d*"
- assert (
- string_name(value, characters=chars) == "H_e_l_l_o_W_o_r_l_d_"
- ), "string_name validator failed"
+ assert string_name(value, characters=chars) == "H_e_l_l_o_W_o_r_l_d_", (
+ "string_name validator failed"
+ )
diff --git a/tests/importing_test.py b/tests/importing_test.py
index 013c934e..943ef480 100644
--- a/tests/importing_test.py
+++ b/tests/importing_test.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
# pylint: disable=import-outside-toplevel
@@ -15,7 +18,7 @@
import geoh5py
import pytest
-from geoapps_utils.importing import assets_path, warn_module_not_found
+from geoapps_utils.utils.importing import assets_path, warn_module_not_found
def test_assets_path(tmp_path):
diff --git a/tests/iterables_test.py b/tests/iterables_test.py
index c7273cc3..09588740 100644
--- a/tests/iterables_test.py
+++ b/tests/iterables_test.py
@@ -1,10 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
-
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -15,7 +17,7 @@
from geoh5py import Workspace
from geoh5py.objects import Grid2D
-from geoapps_utils.iterables import (
+from geoapps_utils.utils.iterables import (
find_value,
sorted_alphanumeric_list,
sorted_children_dict,
@@ -63,7 +65,7 @@ def test_sorted_alphanumeric_list():
]
sorted_list = sorted_alphanumeric_list(random.sample(test, len(test)))
- assert all(elem == tester for elem, tester in zip(sorted_list, test))
+ assert all(elem == tester for elem, tester in zip(sorted_list, test, strict=True))
def test_sorted_children_dict(tmp_path: Path):
diff --git a/tests/locations_test.py b/tests/locations_test.py
index 7f4c8075..68ea28bb 100644
--- a/tests/locations_test.py
+++ b/tests/locations_test.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -11,13 +14,21 @@
from geoh5py import Workspace
from geoh5py.objects import Grid2D, Points
-from geoapps_utils.locations import (
+from geoapps_utils.utils.locations import (
get_locations,
get_overlapping_limits,
map_indices_to_coordinates,
+ mask_under_horizon,
)
+def test_mask_under_horizon():
+ points = np.array([[-1, -1, -1], [0, 0, 0], [1, 1, 1], [10, 10, 0]])
+ horizon = np.array([[-1, -1, 0], [1, -1, 0], [1, 1, 1], [-1, 1, 0], [0, 0, 0]])
+ mask = mask_under_horizon(points, horizon)
+ assert np.all(mask == np.array([True, False, False, True]))
+
+
def test_get_locations_centroids():
workspace = Workspace()
n_x, n_y = 10, 15
diff --git a/tests/numerical_test.py b/tests/numerical_test.py
index d911cd2a..f88a6bb6 100644
--- a/tests/numerical_test.py
+++ b/tests/numerical_test.py
@@ -1,20 +1,19 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
import numpy as np
-import pytest
from numpy import random
-from geoapps_utils.numerical import (
- DetectionParameters,
- filter_segments_orientation,
- find_curves,
+from geoapps_utils.utils.numerical import (
running_mean,
traveling_salesman,
weighted_average,
@@ -29,12 +28,12 @@ def test_running_mean():
mean_test = (vec[1:] + vec[:-1]) / 2
- assert (
- np.linalg.norm(mean_back[:-1] - mean_test) < 1e-12
- ), "Backward averaging does not match expected values."
- assert (
- np.linalg.norm(mean_forw[1:] - mean_test) < 1e-12
- ), "Forward averaging does not match expected values."
+ assert np.linalg.norm(mean_back[:-1] - mean_test) < 1e-12, (
+ "Backward averaging does not match expected values."
+ )
+ assert np.linalg.norm(mean_forw[1:] - mean_test) < 1e-12, (
+ "Forward averaging does not match expected values."
+ )
assert (
np.linalg.norm((mean_test[1:] + mean_test[:-1]) / 2 - mean_cent[1:-1]) < 1e-12
), "Centered averaging does not match expected values."
@@ -151,133 +150,3 @@ def test_weighted_average_threshold():
values = [np.array([1, 2, 3])]
out = weighted_average(xyz_in, xyz_out, values, threshold=1e30)
assert out[0] == 2
-
-
-@pytest.fixture(name="curves_data")
-def curves_data_fixture() -> list:
- # Create test data
- # Survey lines
- y_array = np.linspace(0, 50, 10)
- line_ids_array = np.arange(0, len(y_array))
-
- curve1 = 5 * np.sin(y_array) + 10 # curve
- curve2 = 0.7 * y_array + 20 # crossing lines
- curve3 = -0.4 * y_array + 50
- curve4 = np.ones_like(y_array) * 80 # zig-zag
- curve4[3] = 85
- curve5 = [None] * (len(y_array) - 1) # short line
- curve5[0:1] = [60, 62] # type: ignore
- curve5[-2:-1] = [2, 4] # type: ignore
-
- curves = [curve1, curve2, curve3, curve4, curve5]
-
- data = []
- for channel_group, curve in enumerate(curves):
- for x_coord, y_coord, line_id in zip(curve, y_array, line_ids_array):
- if x_coord is not None:
- data.append([x_coord, y_coord, line_id, channel_group])
- return data
-
-
-def test_find_curves(curves_data: list):
- # Random shuffle the input
- data = np.array(curves_data)
- np.random.shuffle(data)
-
- points_data = data[:, :2]
- line_ids = data[:, 2]
- channel_groups = data[:, 3]
-
- result_curves = []
- parameters = DetectionParameters(
- min_edges=3,
- max_distance=15,
- damping=0.75,
- )
- for channel_group in np.unique(channel_groups):
- channel_inds = channel_groups == channel_group
- path = find_curves(
- points_data[channel_inds], np.array(line_ids)[channel_inds], parameters
- )
-
- if len(path) == 0:
- continue
-
- result_curves += path
-
- assert len(result_curves) == 4
- assert len(result_curves[3]) == 8
-
- # Test with different angle to get zig-zag line
- result_curves = []
- parameters = DetectionParameters(
- min_edges=3,
- max_distance=50,
- damping=1,
- )
-
- for channel_group in np.unique(channel_groups):
- channel_inds = channel_groups == channel_group
- path = find_curves(
- points_data[channel_inds], np.array(line_ids)[channel_inds], parameters
- )
-
- result_curves += path
-
- assert [len(curve) for curve in result_curves] == [9, 9, 9, 9]
-
-
-def test_find_curve_orientation(curves_data: list):
- # Random shuffle the input
- data = np.array(curves_data)
- points_data = data[:, :2]
- line_ids = data[:, 2]
- channel_groups = data[:, 3]
-
- result_curves = []
-
- parameters = DetectionParameters(
- min_edges=3,
- max_distance=15,
- damping=0.75,
- azimuth=5,
- azimuth_tol=10,
- )
- for channel_group in np.unique(channel_groups):
- channel_inds = channel_groups == channel_group
- path = find_curves(
- points_data[channel_inds], np.array(line_ids)[channel_inds], parameters
- )
-
- if len(path) == 0:
- continue
-
- result_curves += path
-
- assert len(result_curves) == 1
-
-
-def test_filter_segments_orientation():
- angles = np.arange(0, 360, 180 / 8)
-
- points = np.c_[
- np.sin(np.deg2rad(angles)),
- np.cos(np.deg2rad(angles)),
- ]
- points = np.r_[np.c_[0, 0], points]
- segments = np.c_[np.zeros_like(angles), np.arange(1, len(angles) + 1)].astype(int)
-
- ind = filter_segments_orientation(points, segments, 0, 0.1)
- np.testing.assert_allclose(angles[ind], [0, 180])
-
- ind = filter_segments_orientation(points, segments, 0, 30)
- np.testing.assert_allclose(angles[ind], [0, 22.5, 157.5, 180, 202.5, 337.5])
-
- ind = filter_segments_orientation(points, segments, -45, 30)
- np.testing.assert_allclose(angles[ind], [112.5, 135.0, 157.5, 292.5, 315.0, 337.5])
-
- ind = filter_segments_orientation(points, segments, -45, 360)
- assert np.all(ind)
-
- ind = filter_segments_orientation(points, segments, 5, 1)
- assert ~np.all(ind)
diff --git a/tests/plotting_test.py b/tests/plotting_test.py
index 8f99e5a8..3dda4c7b 100644
--- a/tests/plotting_test.py
+++ b/tests/plotting_test.py
@@ -1,15 +1,18 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
import numpy as np
-from geoapps_utils.plotting import inv_symlog, symlog
+from geoapps_utils.utils.plotting import inv_symlog, symlog
def test_plotting_symlog():
diff --git a/tests/transformations_test.py b/tests/transformations_test.py
index 40ecf12e..e5868cb2 100644
--- a/tests/transformations_test.py
+++ b/tests/transformations_test.py
@@ -1,31 +1,34 @@
-# Copyright (c) 2023-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2023-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
import numpy as np
-from geoapps_utils.transformations import rotate_xyz
+from geoapps_utils.utils.transformations import rotate_xyz
def test_positive_rotation_xyz():
rot_vec = rotate_xyz(np.c_[1, 0, 0], [0, 0], 45)
- assert (
- np.linalg.norm(np.cross(rot_vec, [0.7071, 0.7071, 0])) < 1e-8
- ), "Error on positive rotation about origin."
+ assert np.linalg.norm(np.cross(rot_vec, [0.7071, 0.7071, 0])) < 1e-8, (
+ "Error on positive rotation about origin."
+ )
def test_negative_rotation_xyz():
rot_vec = rotate_xyz(np.c_[1, 0, 0], [1, 1], -90)
- assert (
- np.linalg.norm(np.cross(rot_vec, [0, 1, 0])) < 1e-8
- ), "Error on negative rotation about point."
+ assert np.linalg.norm(np.cross(rot_vec, [0, 1, 0])) < 1e-8, (
+ "Error on negative rotation about point."
+ )
def test_2d_input():
diff --git a/tests/version_test.py b/tests/version_test.py
index e9f1aecd..d8119f56 100644
--- a/tests/version_test.py
+++ b/tests/version_test.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2022-2024 Mira Geoscience Ltd.
-#
-# This file is part of geoapps-utils package.
-#
-# geoapps-utils is distributed under the terms and conditions of the MIT License
-# (see LICENSE file at the root of this source code package).
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+# Copyright (c) 2022-2025 Mira Geoscience Ltd. '
+# '
+# This file is part of geoapps-utils package. '
+# '
+# geoapps-utils is distributed under the terms and conditions of the MIT License '
+# (see LICENSE file at the root of this source code package). '
+# '
+# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
from __future__ import annotations
@@ -11,11 +14,14 @@
from pathlib import Path
import tomli as toml
+import yaml
+from jinja2 import Template
+from packaging.version import Version
import geoapps_utils
-def get_version():
+def get_pyproject_version():
path = Path(__file__).resolve().parents[1] / "pyproject.toml"
with open(str(path), encoding="utf-8") as file:
@@ -24,8 +30,30 @@ def get_version():
return pyproject["tool"]["poetry"]["version"]
+def get_conda_recipe_version():
+ path = Path(__file__).resolve().parents[1] / "meta.yaml"
+
+ with open(str(path), encoding="utf-8") as file:
+ content = file.read()
+
+ template = Template(content)
+ rendered_yaml = template.render()
+
+ recipe = yaml.safe_load(rendered_yaml)
+
+ return recipe["package"]["version"]
+
+
def test_version_is_consistent():
- assert geoapps_utils.__version__ == get_version()
+ assert geoapps_utils.__version__ == get_pyproject_version()
+ normalized_conda_version = Version(get_conda_recipe_version())
+ normalized_version = Version(geoapps_utils.__version__)
+ assert normalized_conda_version == normalized_version
+
+
+def test_conda_version_is_pep440():
+ version = Version(get_conda_recipe_version())
+ assert version is not None
def test_version_is_semver():