diff --git a/.docker/compose.yml b/.docker/compose.yml new file mode 100644 index 000000000..8f6f42924 --- /dev/null +++ b/.docker/compose.yml @@ -0,0 +1,12 @@ +version: '2' + +services: + qgis: + image: qgis/qgis:release-3_34 + container_name: qgis + volumes: + - ../ribasim_qgis/:/tests_directory/ribasim_qgis + environment: + - CI=true + - DISPLAY=:99 + tty: true diff --git a/.docker/start.sh b/.docker/start.sh new file mode 100755 index 000000000..6c583b16b --- /dev/null +++ b/.docker/start.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -eux + +docker compose -f compose.yml up -d --force-recreate --remove-orphans +echo "Installation of the plugin Ribasim" +docker exec -t qgis sh -c "qgis_setup.sh ribasim_qgis" +echo "Containers are running" diff --git a/.docker/stop.sh b/.docker/stop.sh new file mode 100755 index 000000000..08afc0ec6 --- /dev/null +++ b/.docker/stop.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -eux + +echo 'Stopping/killing containers' +docker compose -f compose.yml kill +docker compose -f compose.yml rm -f diff --git a/.docker/test.sh b/.docker/test.sh new file mode 100755 index 000000000..b1ce0ec3b --- /dev/null +++ b/.docker/test.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -eux + +docker exec -t qgis sh -c "cd /tests_directory && xvfb-run -a qgis_testrunner.sh ribasim_qgis.tests" diff --git a/.dvc/.gitignore b/.dvc/.gitignore new file mode 100644 index 000000000..528f30c71 --- /dev/null +++ b/.dvc/.gitignore @@ -0,0 +1,3 @@ +/config.local +/tmp +/cache diff --git a/.dvc/config b/.dvc/config new file mode 100644 index 000000000..11c50aaa7 --- /dev/null +++ b/.dvc/config @@ -0,0 +1,8 @@ +[core] + remote = minio +['remote "minio"'] # for tracking artifacts with unreadable names + url = s3://ribasim/dvc + endpointurl = https://s3.deltares.nl +['remote "minio_readonly"'] # for readable named models in the top-dir + url = s3://ribasim + endpointurl = https://s3.deltares.nl diff --git a/.dvcignore b/.dvcignore new file mode 100644 index 000000000..7327ccb85 --- /dev/null +++ b/.dvcignore @@ -0,0 +1,4 @@ +# Add patterns of files dvc should ignore, which could improve +# the performance. Learn more at +# https://dvc.org/doc/user-guide/dvcignore +docs diff --git a/.github/workflows/core_tests.yml b/.github/workflows/core_tests.yml index e2aa34a8b..5f0acef20 100644 --- a/.github/workflows/core_tests.yml +++ b/.github/workflows/core_tests.yml @@ -37,13 +37,15 @@ jobs: - uses: prefix-dev/setup-pixi@v0.8.1 with: pixi-version: "latest" + - name: Prepare pixi + run: pixi run install-ci - name: Test Ribasim Core run: | pixi run test-ribasim-core-cov - uses: julia-actions/julia-processcoverage@v1 with: directories: core/src - - uses: codecov/codecov-action@v4 + - uses: codecov/codecov-action@v5 with: files: lcov.info token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/julia_auto_update.yml b/.github/workflows/julia_auto_update.yml index b1305b471..21b1d32f3 100644 --- a/.github/workflows/julia_auto_update.yml +++ b/.github/workflows/julia_auto_update.yml @@ -21,7 +21,7 @@ jobs: run: | pixi run install-julia pixi run update-manifest-julia - - uses: peter-evans/create-pull-request@v6 + - uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GITHUB_TOKEN }} branch: update/julia-manifest diff --git a/.github/workflows/pixi_auto_update.yml b/.github/workflows/pixi_auto_update.yml index 83f325315..947cb1317 100644 --- a/.github/workflows/pixi_auto_update.yml +++ b/.github/workflows/pixi_auto_update.yml @@ -1,4 +1,8 @@ -name: Pixi auto update +name: Update Pixi lockfile + +permissions: + contents: write + pull-requests: write on: schedule: @@ -8,23 +12,27 @@ on: workflow_dispatch: jobs: - auto-update: + pixi-update: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - with: - ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} - - uses: prefix-dev/setup-pixi@v0.8.1 + - name: Set up pixi + uses: prefix-dev/setup-pixi@v0.8.1 with: pixi-version: "latest" - cache: false - - name: Update pixi lock file - run: pixi update - - uses: peter-evans/create-pull-request@v6 + run-install: false + - name: Update lockfiles + run: | + set -o pipefail + pixi update --json | pixi exec pixi-diff-to-markdown >> diff.md + - name: Create pull request + uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GITHUB_TOKEN }} + commit-message: Update pixi lockfile + title: Update pixi lockfile + body-path: diff.md branch: update/pixi-lock - title: Update pixi lock file - commit-message: "Update `pixi.lock`" - body: Update pixi dependencies to the latest version. - author: "GitHub " + base: main + delete-branch: true + add-paths: pixi.lock diff --git a/.github/workflows/pre-commit_auto_update.yml b/.github/workflows/pre-commit_auto_update.yml index 7b2a18559..bc8731c7c 100644 --- a/.github/workflows/pre-commit_auto_update.yml +++ b/.github/workflows/pre-commit_auto_update.yml @@ -18,7 +18,7 @@ jobs: with: python-version: "3.12" - uses: browniebroke/pre-commit-autoupdate-action@main - - uses: peter-evans/create-pull-request@v6 + - uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GITHUB_TOKEN }} branch: update/pre-commit-hooks diff --git a/.github/workflows/python_tests.yml b/.github/workflows/python_tests.yml index 1a1ebbf95..c45b8ee8b 100644 --- a/.github/workflows/python_tests.yml +++ b/.github/workflows/python_tests.yml @@ -33,6 +33,6 @@ jobs: - name: Test Ribasim Python run: pixi run --environment ${{ matrix.pixi-environment }} test-ribasim-python-cov - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/qgis.yml b/.github/workflows/qgis.yml index fc9b302de..c7e65a11d 100644 --- a/.github/workflows/qgis.yml +++ b/.github/workflows/qgis.yml @@ -8,27 +8,21 @@ on: pull_request: paths-ignore: [".teamcity/**"] merge_group: -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true jobs: - test: - name: QGIS plugin ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: - - ubuntu-latest - - macOS-latest - - windows-latest - steps: - - uses: actions/checkout@v4 - - uses: prefix-dev/setup-pixi@v0.8.1 - with: - pixi-version: "latest" - - name: Run tests - run: pixi run test-ribasim-qgis-cov - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 - with: - token: ${{ secrets.CODECOV_TOKEN }} + test-qgis: + name: "Test" + runs-on: ubuntu-latest + defaults: + run: + working-directory: .docker + steps: + - uses: actions/checkout@v4 + - uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: "latest" + - name: Run tests + run: pixi run test-ribasim-qgis-docker + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.gitignore b/.gitignore index 5dfadba8f..b5e9157cf 100644 --- a/.gitignore +++ b/.gitignore @@ -148,9 +148,15 @@ python/ribasim_api/tests/temp/ report.xml # Designated working dir for working on Ribasim models -models/ +models/* +!models/*.dvc playground/output # Ruff .ruff_cache .teamcity/.idea/ +.idea/ + +# https://github.com/Deltares/Ribasim/issues/1652 +ribasim_qgis/tests/data/database.gpkg +ribasim_qgis/core/styles diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cb7cdeac2..f57591b81 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,10 +1,9 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files - id: check-case-conflict - - id: check-json - id: check-yaml - id: check-toml - id: check-merge-conflict @@ -14,7 +13,7 @@ repos: exclude: '.teamcity' - id: trailing-whitespace - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.5.0 + rev: v0.7.1 hooks: - id: ruff types_or: [python, pyi, jupyter] @@ -26,6 +25,6 @@ repos: hooks: - id: nbstripout - repo: https://github.com/crate-ci/typos - rev: v1.22.9 + rev: v1.26.8 hooks: - id: typos diff --git a/.teamcity/Ribasim/Project.kt b/.teamcity/Ribasim/Project.kt index 71d1a0121..cbe8b72b0 100644 --- a/.teamcity/Ribasim/Project.kt +++ b/.teamcity/Ribasim/Project.kt @@ -1,12 +1,15 @@ package Ribasim -import Ribasim.buildTypes.* -import Ribasim.vcsRoots.* +import Ribasim.buildTypes.GenerateTestmodels +import Ribasim.buildTypes.Ribasim_MakeGitHubRelease +import Ribasim.buildTypes.Ribasim_MakeQgisPlugin +import Ribasim.vcsRoots.Ribasim +import Ribasim_Linux.RibasimLinuxProject +import Ribasim_Windows.RibasimWindowsProject +import Templates.* +import Testbench.Testbench import jetbrains.buildServer.configs.kotlin.Project -import jetbrains.buildServer.configs.kotlin.projectFeatures.activeStorage -import jetbrains.buildServer.configs.kotlin.projectFeatures.awsConnection -import jetbrains.buildServer.configs.kotlin.projectFeatures.githubIssues -import jetbrains.buildServer.configs.kotlin.projectFeatures.s3Storage +import jetbrains.buildServer.configs.kotlin.projectFeatures.* object Project : Project({ @@ -16,9 +19,12 @@ object Project : Project({ buildType(Ribasim_MakeQgisPlugin) buildType(Ribasim_MakeGitHubRelease) - template(GitHubIntegrationTemplate) - template(Linux_1) - template(Windows_1) + template(GithubCommitStatusIntegration) + template(GithubPullRequestsIntegration) + template(WindowsAgent) + template(BuildWindows) + template(LinuxAgent) + template(BuildLinux) features { awsConnection { @@ -26,21 +32,28 @@ object Project : Project({ name = "Amazon Web Services (AWS)" regionName = "eu-west-3" credentialsType = static { - accessKeyId = "AKIAQBIN2MPWXSD2IZ5F" - secretAccessKey = "credentialsJSON:dba90026-9856-4f87-94d9-bab91f3f2d5c" + accessKeyId = "KwKRzscudy3GvRB8BN1Z" + secretAccessKey = "credentialsJSON:86cbf3e5-724c-437d-9962-7a3f429b0aa2" useSessionCredentials = false - stsEndpoint = "https://sts.eu-west-3.amazonaws.com" + stsEndpoint = "https://s3-console.deltares.nl" } } - activeStorage { - id = "PROJECT_EXT_106" - activeStorageID = "s3_ribasim" - } githubIssues { id = "PROJECT_EXT_107" displayName = "Ribasim GitHub Issues" repositoryURL = "https://github.com/Deltares/Ribasim" } + s3CompatibleStorage { + id = "PROJECT_EXT_171" + accessKeyID = "KwKRzscudy3GvRB8BN1Z" + accessKey = "credentialsJSON:86cbf3e5-724c-437d-9962-7a3f429b0aa2" + endpoint = "https://s3.deltares.nl" + bucketName = "ribasim" + } + activeStorage { + id = "PROJECT_EXT_172" + activeStorageID = "PROJECT_EXT_171" + } s3Storage { id = "s3_ribasim" storageName = "s3" @@ -55,6 +68,7 @@ object Project : Project({ } } - subProject(Ribasim_Linux.Project) - subProject(Ribasim_Windows.Project) + subProject(RibasimLinuxProject) + subProject(RibasimWindowsProject) + subProject(Testbench) }) diff --git a/.teamcity/Ribasim/buildTypes/GenerateTestmodels.kt b/.teamcity/Ribasim/buildTypes/GenerateTestmodels.kt index b3c7614ae..464cd86bb 100644 --- a/.teamcity/Ribasim/buildTypes/GenerateTestmodels.kt +++ b/.teamcity/Ribasim/buildTypes/GenerateTestmodels.kt @@ -1,11 +1,12 @@ package Ribasim.buildTypes +import Templates.GithubCommitStatusIntegration import jetbrains.buildServer.configs.kotlin.* import jetbrains.buildServer.configs.kotlin.buildSteps.script import jetbrains.buildServer.configs.kotlin.triggers.vcs object GenerateTestmodels : BuildType({ - templates(GitHubIntegrationTemplate) + templates(GithubCommitStatusIntegration) name = "Generate Testmodels" artifactRules = """ribasim\generated_testmodels => generated_testmodels.zip""" @@ -13,6 +14,7 @@ object GenerateTestmodels : BuildType({ vcs { cleanCheckout = true + root(Ribasim.vcsRoots.Ribasim, ". => ribasim") } steps { diff --git a/.teamcity/Ribasim/buildTypes/GitHubIntegrationTemplate.kt b/.teamcity/Ribasim/buildTypes/GitHubIntegrationTemplate.kt deleted file mode 100644 index 4475336ff..000000000 --- a/.teamcity/Ribasim/buildTypes/GitHubIntegrationTemplate.kt +++ /dev/null @@ -1,26 +0,0 @@ -package Ribasim.buildTypes - -import Ribasim.vcsRoots.Ribasim as RibasimVcs -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher - -object GitHubIntegrationTemplate : Template({ - name = "GitHubIntegrationTemplate" - - vcs { - root(RibasimVcs, ". => ribasim") - } - - features { - commitStatusPublisher { - id = "TEMPLATE_BUILD_EXT_1" - vcsRootExtId = "${RibasimVcs.id}" - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:6b37af71-1f2f-4611-8856-db07965445c0" - } - } - } - } -}) diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_MakeGitHubRelease.kt b/.teamcity/Ribasim/buildTypes/Ribasim_MakeGitHubRelease.kt index d15ec082f..8055bdf52 100644 --- a/.teamcity/Ribasim/buildTypes/Ribasim_MakeGitHubRelease.kt +++ b/.teamcity/Ribasim/buildTypes/Ribasim_MakeGitHubRelease.kt @@ -1,11 +1,16 @@ package Ribasim.buildTypes +import Ribasim_Linux.Linux_BuildRibasim +import Ribasim_Linux.Linux_TestRibasimBinaries +import Ribasim_Windows.Windows_BuildRibasim +import Ribasim_Windows.Windows_TestRibasimBinaries +import Templates.LinuxAgent import jetbrains.buildServer.configs.kotlin.* import jetbrains.buildServer.configs.kotlin.buildSteps.script import jetbrains.buildServer.configs.kotlin.triggers.vcs object Ribasim_MakeGitHubRelease : BuildType({ - templates(Linux_1) + templates(LinuxAgent) name = "Make GitHub Release" params { @@ -14,6 +19,7 @@ object Ribasim_MakeGitHubRelease : BuildType({ vcs { root(Ribasim.vcsRoots.Ribasim) + cleanCheckout = true } steps { @@ -52,7 +58,7 @@ object Ribasim_MakeGitHubRelease : BuildType({ artifactRules = "generated_testmodels.zip" } } - dependency(Ribasim_Linux.buildTypes.Linux_BuildRibasim) { + dependency(Linux_BuildRibasim) { snapshot { onDependencyFailure = FailureAction.FAIL_TO_START } @@ -62,7 +68,7 @@ object Ribasim_MakeGitHubRelease : BuildType({ artifactRules = "ribasim_linux.zip" } } - snapshot(Ribasim_Linux.buildTypes.Linux_TestRibasimBinaries) { + snapshot(Linux_TestRibasimBinaries) { onDependencyFailure = FailureAction.FAIL_TO_START } dependency(Ribasim_MakeQgisPlugin) { @@ -75,7 +81,7 @@ object Ribasim_MakeGitHubRelease : BuildType({ artifactRules = "ribasim_qgis.zip" } } - dependency(Ribasim_Windows.buildTypes.Windows_BuildRibasim) { + dependency(Windows_BuildRibasim) { snapshot { onDependencyFailure = FailureAction.FAIL_TO_START } @@ -85,7 +91,7 @@ object Ribasim_MakeGitHubRelease : BuildType({ artifactRules = "ribasim_windows.zip" } } - snapshot(Ribasim_Windows.buildTypes.Windows_TestRibasimBinaries) { + snapshot(Windows_TestRibasimBinaries) { onDependencyFailure = FailureAction.FAIL_TO_START } } diff --git a/.teamcity/Ribasim/buildTypes/Ribasim_MakeQgisPlugin.kt b/.teamcity/Ribasim/buildTypes/Ribasim_MakeQgisPlugin.kt index 1d5617552..bdd7a9093 100644 --- a/.teamcity/Ribasim/buildTypes/Ribasim_MakeQgisPlugin.kt +++ b/.teamcity/Ribasim/buildTypes/Ribasim_MakeQgisPlugin.kt @@ -1,22 +1,30 @@ package Ribasim.buildTypes +import Templates.LinuxAgent import jetbrains.buildServer.configs.kotlin.* import jetbrains.buildServer.configs.kotlin.buildSteps.script object Ribasim_MakeQgisPlugin : BuildType({ - templates(Linux_1) + templates(LinuxAgent) name = "Make QGIS plugin" artifactRules = "ribasim_qgis.zip" vcs { root(Ribasim.vcsRoots.Ribasim) + cleanCheckout = true } steps { script { id = "RUNNER_2193" scriptContent = """ + #!/bin/bash + source /usr/share/Modules/init/bash + + module load pixi + pixi run install-ribasim-qgis + rsync --verbose --recursive --delete ribasim_qgis/ ribasim_qgis rm --force ribasim_qgis.zip zip -r ribasim_qgis.zip ribasim_qgis diff --git a/.teamcity/Ribasim/vcsRoots/Ribasim.kt b/.teamcity/Ribasim/vcsRoots/Ribasim.kt index 4d2c7b4e2..f94f6c0e3 100644 --- a/.teamcity/Ribasim/vcsRoots/Ribasim.kt +++ b/.teamcity/Ribasim/vcsRoots/Ribasim.kt @@ -7,9 +7,9 @@ object Ribasim : GitVcsRoot({ url = "https://github.com/Deltares/Ribasim" branch = "main" branchSpec = """ - +:refs/heads/* + +:refs/heads/main +:refs/tags/* - -:refs/heads/gh-pages + +:refs/heads/gh-readonly-queue/* """.trimIndent() useTagsAsBranches = true authMethod = password { diff --git a/.teamcity/Ribasim_Linux/Project.kt b/.teamcity/Ribasim_Linux/Project.kt deleted file mode 100644 index 5fa171b24..000000000 --- a/.teamcity/Ribasim_Linux/Project.kt +++ /dev/null @@ -1,12 +0,0 @@ -package Ribasim_Linux - -import Ribasim_Linux.buildTypes.* -import jetbrains.buildServer.configs.kotlin.Project - -object Project : Project({ - id("Ribasim_Linux") - name = "Ribasim_Linux" - - buildType(Linux_BuildRibasim) - buildType(Linux_TestRibasimBinaries) -}) diff --git a/.teamcity/Ribasim_Linux/RibasimLinuxProject.kt b/.teamcity/Ribasim_Linux/RibasimLinuxProject.kt new file mode 100644 index 000000000..f00b848c0 --- /dev/null +++ b/.teamcity/Ribasim_Linux/RibasimLinuxProject.kt @@ -0,0 +1,76 @@ +package Ribasim_Linux + +import Ribasim.vcsRoots.Ribasim +import Templates.* +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.FailureAction +import jetbrains.buildServer.configs.kotlin.Project +import jetbrains.buildServer.configs.kotlin.triggers.vcs + +object RibasimLinuxProject : Project({ + id("Ribasim_Linux") + name = "Ribasim_Linux" + + buildType(Linux_Main) + buildType(Linux_BuildRibasim) + buildType(Linux_TestRibasimBinaries) + + template(TestBinariesLinux) +}) + +object Linux_Main : BuildType({ + name = "RibasimMain" + + templates(GithubPullRequestsIntegration) + + allowExternalStatus = true + type = Type.COMPOSITE + + vcs { + root(Ribasim, ". => ribasim") + cleanCheckout = true + } + + triggers { + vcs { + } + } + + dependencies { + snapshot(Linux_TestRibasimBinaries) { + onDependencyFailure = FailureAction.FAIL_TO_START + } + } +}) + +object Linux_BuildRibasim : BuildType({ + templates( + LinuxAgent, + GithubCommitStatusIntegration, + BuildLinux + ) + + name = "Build Ribasim" + + artifactRules = """ribasim\build\ribasim => ribasim_linux.zip!/ribasim""" +}) + +object Linux_TestRibasimBinaries : BuildType({ + templates(LinuxAgent, GithubCommitStatusIntegration, TestBinariesLinux) + name = "Test Ribasim Binaries" + + dependencies { + dependency(Linux_BuildRibasim) { + snapshot { + } + + artifacts { + id = "ARTIFACT_DEPENDENCY_570" + cleanDestination = true + artifactRules = """ + ribasim_linux.zip!/ribasim/** => ribasim/build/ribasim + """.trimIndent() + } + } + } +}) \ No newline at end of file diff --git a/.teamcity/Ribasim_Linux/buildTypes/Linux_BuildRibasim.kt b/.teamcity/Ribasim_Linux/buildTypes/Linux_BuildRibasim.kt deleted file mode 100644 index 95ca2f8e8..000000000 --- a/.teamcity/Ribasim_Linux/buildTypes/Linux_BuildRibasim.kt +++ /dev/null @@ -1,64 +0,0 @@ -package Ribasim_Linux.buildTypes - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher -import jetbrains.buildServer.configs.kotlin.buildSteps.script - -object Linux_BuildRibasim : BuildType({ - templates(Ribasim.buildTypes.Linux_1) - name = "Build Ribasim" - - artifactRules = """ribasim\build\ribasim => ribasim_linux.zip""" - - vcs { - root(Ribasim.vcsRoots.Ribasim, ". => ribasim") - } - - steps { - script { - name = "Set up pixi" - id = "RUNNER_2415" - workingDir = "ribasim" - scriptContent = """ - #!/bin/bash - # black magic - source /usr/share/Modules/init/bash - - module load pixi - pixi --version - pixi run install-ci - """.trimIndent() - } - script { - name = "Build binary" - id = "RUNNER_2416" - workingDir = "ribasim" - scriptContent = """ - #!/bin/bash - # black magic - source /usr/share/Modules/init/bash - - module load pixi - module load gcc/11.3.0 - pixi run remove-artifacts - pixi run build - """.trimIndent() - } - } - - failureConditions { - executionTimeoutMin = 120 - } - - features { - commitStatusPublisher { - id = "BUILD_EXT_295" - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:6b37af71-1f2f-4611-8856-db07965445c0" - } - } - } - } -}) diff --git a/.teamcity/Ribasim_Linux/buildTypes/Linux_TestRibasimBinaries.kt b/.teamcity/Ribasim_Linux/buildTypes/Linux_TestRibasimBinaries.kt deleted file mode 100644 index 48fdc92bb..000000000 --- a/.teamcity/Ribasim_Linux/buildTypes/Linux_TestRibasimBinaries.kt +++ /dev/null @@ -1,105 +0,0 @@ -package Ribasim_Linux.buildTypes - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport -import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher -import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport -import jetbrains.buildServer.configs.kotlin.buildSteps.script -import jetbrains.buildServer.configs.kotlin.triggers.schedule - -object Linux_TestRibasimBinaries : BuildType({ - templates(Ribasim.buildTypes.Linux_1) - name = "Test Ribasim Binaries" - - artifactRules = """ - ribasim\python\ribasim_api\tests\temp => test_output_api.zip - ribasim\build\tests\temp => test_output_cli.zip - """.trimIndent() - - vcs { - root(Ribasim.vcsRoots.Ribasim, ". => ribasim") - } - - steps { - script { - name = "Set up pixi" - id = "RUNNER_1501" - workingDir = "ribasim" - scriptContent = """ - #!/bin/bash - # black magic - source /usr/share/Modules/init/bash - - module load pixi - pixi --version - """.trimIndent() - } - script { - name = "Run tests" - id = "RUNNER_1503" - workingDir = "ribasim" - scriptContent = """ - #!/bin/bash - # black magic - source /usr/share/Modules/init/bash - - module load pixi - pixi run install - pixi run test-ribasim-api - pixi run test-ribasim-cli - """.trimIndent() - } - } - - triggers { - schedule { - id = "TRIGGER_642" - schedulingPolicy = daily { - hour = 3 - } - branchFilter = "+:" - triggerBuild = always() - } - } - - failureConditions { - executionTimeoutMin = 120 - } - - features { - xmlReport { - id = "BUILD_EXT_145" - reportType = XmlReport.XmlReportType.JUNIT - rules = "ribasim/report.xml" - verbose = true - } - commitStatusPublisher { - id = "BUILD_EXT_295" - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:6b37af71-1f2f-4611-8856-db07965445c0" - } - } - } - } - - dependencies { - dependency(Linux_BuildRibasim) { - snapshot { - } - - artifacts { - id = "ARTIFACT_DEPENDENCY_570" - cleanDestination = true - artifactRules = """ - ribasim_linux.zip!** => ribasim/build/ribasim - """.trimIndent() - } - } - } - - requirements { - doesNotEqual("env.OS", "Windows_NT", "RQ_315") - } -}) diff --git a/.teamcity/Ribasim_Windows/Project.kt b/.teamcity/Ribasim_Windows/Project.kt deleted file mode 100644 index 7810c708e..000000000 --- a/.teamcity/Ribasim_Windows/Project.kt +++ /dev/null @@ -1,13 +0,0 @@ -package Ribasim_Windows - -import Ribasim_Windows.buildTypes.* -import jetbrains.buildServer.configs.kotlin.Project - -object Project : Project({ - id("Ribasim_Windows") - name = "Ribasim_Windows" - - buildType(Windows_BuildRibasim) - buildType(Windows_TestDelwaqCoupling) - buildType(Windows_TestRibasimBinaries) -}) diff --git a/.teamcity/Ribasim_Windows/RibasimWindowsProject.kt b/.teamcity/Ribasim_Windows/RibasimWindowsProject.kt new file mode 100644 index 000000000..7774db9da --- /dev/null +++ b/.teamcity/Ribasim_Windows/RibasimWindowsProject.kt @@ -0,0 +1,113 @@ +package Ribasim_Windows + +import Templates.* +import jetbrains.buildServer.configs.kotlin.AbsoluteId +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.FailureAction +import jetbrains.buildServer.configs.kotlin.Project +import jetbrains.buildServer.configs.kotlin.triggers.vcs +import Ribasim.vcsRoots.Ribasim as RibasimVcs +import jetbrains.buildServer.configs.kotlin.buildSteps.script + +object RibasimWindowsProject : Project({ + id("Ribasim_Windows") + name = "Ribasim_Windows" + + buildType(Windows_Main) + buildType(Windows_BuildRibasim) + buildType(Windows_TestDelwaqCoupling) + buildType(Windows_TestRibasimBinaries) + + template(TestBinariesWindows) + template(TestDelwaqCouplingWindows) +}) + +object Windows_Main : BuildType({ + name = "RibasimMain" + + templates(GithubPullRequestsIntegration) + + allowExternalStatus = true + type = Type.COMPOSITE + + vcs { + root(RibasimVcs, ". => ribasim") + cleanCheckout = true + } + + triggers { + vcs { + } + } + + dependencies { + snapshot(Windows_TestRibasimBinaries) { + onDependencyFailure = FailureAction.FAIL_TO_START + } + snapshot(Windows_TestDelwaqCoupling) { + onDependencyFailure = FailureAction.FAIL_TO_START + } + } +}) + +object Windows_BuildRibasim : BuildType({ + templates(WindowsAgent, GithubCommitStatusIntegration, BuildWindows) + name = "Build Ribasim" + + steps { + script { + name = "add Ribasim logo to .exe" + id = "RUNNER_2417" + workingDir = "ribasim" + scriptContent = "pixi run add-ribasim-icon" + } + } + artifactRules = """ribasim\build\ribasim => ribasim_windows.zip!/ribasim""" +}) + +object Windows_TestRibasimBinaries : BuildType({ + templates(WindowsAgent, GithubCommitStatusIntegration, TestBinariesWindows) + name = "Test Ribasim Binaries" + + dependencies { + dependency(Windows_BuildRibasim) { + snapshot { + } + + artifacts { + id = "ARTIFACT_DEPENDENCY_570" + cleanDestination = true + artifactRules = """ + ribasim_windows.zip!/ribasim/** => ribasim/build/ribasim + """.trimIndent() + } + } + } +}) + +object Windows_TestDelwaqCoupling : BuildType({ + templates(WindowsAgent, GithubCommitStatusIntegration, TestDelwaqCouplingWindows) + name = "Test Delwaq coupling" + + artifactRules = "ribasim/python/ribasim/ribasim/delwaq/model" + + triggers { + vcs { + id = "TRIGGER_304" + triggerRules = """ + +:ribasim/coupling/delwaq/** + +:ribasim/core/** + +:ribasim/python/** + +:ribasim/ribasim_testmodels/** + """.trimIndent() + } + } + + dependencies { + artifacts(AbsoluteId("Dimr_DimrCollectors_2bDimrCollectorReleaseSigned")) { + id = "ARTIFACT_DEPENDENCY_4206" + buildRule = tag("DIMRset_2.27.09") + artifactRules = "dimrset_x64_signed_*.zip!/x64 => dimr" + } + } +}) diff --git a/.teamcity/Ribasim_Windows/buildTypes/Windows_BuildRibasim.kt b/.teamcity/Ribasim_Windows/buildTypes/Windows_BuildRibasim.kt deleted file mode 100644 index d8cdf00ce..000000000 --- a/.teamcity/Ribasim_Windows/buildTypes/Windows_BuildRibasim.kt +++ /dev/null @@ -1,60 +0,0 @@ -package Ribasim_Windows.buildTypes - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher -import jetbrains.buildServer.configs.kotlin.buildSteps.script - -object Windows_BuildRibasim : BuildType({ - templates(Ribasim.buildTypes.Windows_1) - name = "Build Ribasim" - - artifactRules = """ribasim\build\ribasim => ribasim_windows.zip""" - publishArtifacts = PublishMode.SUCCESSFUL - - vcs { - root(Ribasim.vcsRoots.Ribasim, ". => ribasim") - } - - steps { - script { - name = "Set up pixi" - id = "RUNNER_2415" - workingDir = "ribasim" - scriptContent = """ - pixi --version - pixi run install-ci - """.trimIndent() - } - script { - name = "Build binary" - id = "RUNNER_2416" - workingDir = "ribasim" - scriptContent = """ - pixi run remove-artifacts - pixi run build - """.trimIndent() - } - } - - failureConditions { - executionTimeoutMin = 120 - } - - features { - commitStatusPublisher { - id = "BUILD_EXT_295" - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:6b37af71-1f2f-4611-8856-db07965445c0" - } - } - } - } - - requirements { - equals("env.OS", "Windows_NT", "RQ_275") - } - - disableSettings("RQ_275") -}) diff --git a/.teamcity/Ribasim_Windows/buildTypes/Windows_TestDelwaqCoupling.kt b/.teamcity/Ribasim_Windows/buildTypes/Windows_TestDelwaqCoupling.kt deleted file mode 100644 index 985e11d7d..000000000 --- a/.teamcity/Ribasim_Windows/buildTypes/Windows_TestDelwaqCoupling.kt +++ /dev/null @@ -1,71 +0,0 @@ -package Ribasim_Windows.buildTypes - -import Ribasim.vcsRoots.Ribasim as RibasimVcs -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher -import jetbrains.buildServer.configs.kotlin.buildSteps.script -import jetbrains.buildServer.configs.kotlin.triggers.vcs - -object Windows_TestDelwaqCoupling : BuildType({ - templates(Ribasim.buildTypes.Windows_1) - name = "Test Delwaq coupling" - - artifactRules = "ribasim/coupling/delwaq/model" - - vcs { - root(RibasimVcs, ". => ribasim") - } - - steps { - script { - name = "Set up pixi" - id = "Set_up_pixi" - workingDir = "ribasim" - scriptContent = "pixi --version" - } - script { - name = "Run Delwaq" - id = "Run_Delwaq" - workingDir = "ribasim" - scriptContent = """ - pixi install - pixi run ribasim-core-testmodels basic - set D3D_HOME=%teamcity.build.checkoutDir%/dimr - pixi run delwaq - """.trimIndent() - } - } - - triggers { - vcs { - id = "TRIGGER_304" - triggerRules = """ - +:ribasim/coupling/delwaq/** - +:ribasim/core/** - +:ribasim/python/** - +:ribasim/ribasim_testmodels/** - """.trimIndent() - } - } - - features { - commitStatusPublisher { - id = "BUILD_EXT_417" - vcsRootExtId = "${RibasimVcs.id}" - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:abf605ce-e382-4b10-b5de-8a7640dc58d9" - } - } - } - } - - dependencies { - artifacts(AbsoluteId("Dimr_DimrCollectors_2bDimrCollectorReleaseSigned")) { - id = "ARTIFACT_DEPENDENCY_4206" - buildRule = lastPinned() - artifactRules = "dimrset_x64_signed_*.zip!/x64 => dimr" - } - } -}) diff --git a/.teamcity/Ribasim_Windows/buildTypes/Windows_TestRibasimBinaries.kt b/.teamcity/Ribasim_Windows/buildTypes/Windows_TestRibasimBinaries.kt deleted file mode 100644 index 3b2ae0176..000000000 --- a/.teamcity/Ribasim_Windows/buildTypes/Windows_TestRibasimBinaries.kt +++ /dev/null @@ -1,91 +0,0 @@ -package Ribasim_Windows.buildTypes - -import Ribasim.vcsRoots.Ribasim as RibasimVcs -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport -import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher -import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport -import jetbrains.buildServer.configs.kotlin.buildSteps.script -import jetbrains.buildServer.configs.kotlin.triggers.schedule - -object Windows_TestRibasimBinaries : BuildType({ - templates(Ribasim.buildTypes.Windows_1) - name = "Test Ribasim Binaries" - - artifactRules = """ - ribasim\python\ribasim_api\tests\temp => test_output_api.zip - ribasim\build\tests\temp => test_output_cli.zip - """.trimIndent() - - vcs { - root(RibasimVcs, ". => ribasim") - } - - steps { - script { - name = "Set up pixi" - id = "RUNNER_1501" - workingDir = "ribasim" - scriptContent = "pixi --version" - } - script { - name = "Run tests" - id = "RUNNER_1503" - workingDir = "ribasim" - scriptContent = """ - pixi run install - pixi run test-ribasim-api - pixi run test-ribasim-cli - """.trimIndent() - } - } - - triggers { - schedule { - id = "TRIGGER_631" - schedulingPolicy = daily { - hour = 3 - } - branchFilter = "+:" - triggerBuild = always() - } - } - - features { - commitStatusPublisher { - id = "BUILD_EXT_142" - vcsRootExtId = "${RibasimVcs.id}" - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:6b37af71-1f2f-4611-8856-db07965445c0" - } - } - } - xmlReport { - id = "BUILD_EXT_145" - reportType = XmlReport.XmlReportType.JUNIT - rules = "ribasim/report.xml" - verbose = true - } - } - - dependencies { - dependency(Windows_BuildRibasim) { - snapshot { - } - - artifacts { - id = "ARTIFACT_DEPENDENCY_570" - cleanDestination = true - artifactRules = """ - ribasim_windows.zip!** => ribasim/build/ribasim - """.trimIndent() - } - } - } - - requirements { - equals("env.OS", "Windows_NT", "RQ_315") - } -}) diff --git a/.teamcity/Templates/Build.kt b/.teamcity/Templates/Build.kt new file mode 100644 index 000000000..fc06d461f --- /dev/null +++ b/.teamcity/Templates/Build.kt @@ -0,0 +1,62 @@ +package Templates + + +import jetbrains.buildServer.configs.kotlin.Template +import jetbrains.buildServer.configs.kotlin.buildSteps.script + +fun generateBuildHeader(platformOs: String): String { + if (platformOs == "Linux") { + return """ + #!/bin/bash + # black magic + source /usr/share/Modules/init/bash + + module load pixi + module load gcc/11.3.0 + """.trimIndent() + System.lineSeparator() + } + + return "" +} + +open class Build(platformOs: String) : Template() { + init { + name = "Build${platformOs}_Template" + + vcs { + root(Ribasim.vcsRoots.Ribasim, ". => ribasim") + cleanCheckout = true + } + + val header = generateBuildHeader(platformOs) + steps { + script { + name = "Set up pixi" + id = "RUNNER_2415" + workingDir = "ribasim" + scriptContent = header + + """ + pixi --version + pixi run install-ci + """.trimIndent() + } + script { + name = "Build binary" + id = "RUNNER_2416" + workingDir = "ribasim" + scriptContent = header + + """ + pixi run remove-artifacts + pixi run build + """.trimIndent() + } + } + + failureConditions { + executionTimeoutMin = 120 + } + } +} + +object BuildWindows : Build("Windows") +object BuildLinux : Build("Linux") \ No newline at end of file diff --git a/.teamcity/Templates/GithubIntegration.kt b/.teamcity/Templates/GithubIntegration.kt new file mode 100644 index 000000000..3688e557d --- /dev/null +++ b/.teamcity/Templates/GithubIntegration.kt @@ -0,0 +1,39 @@ +package Templates + +import Ribasim.vcsRoots.Ribasim +import jetbrains.buildServer.configs.kotlin.Template +import jetbrains.buildServer.configs.kotlin.buildFeatures.PullRequests +import jetbrains.buildServer.configs.kotlin.buildFeatures.commitStatusPublisher +import jetbrains.buildServer.configs.kotlin.buildFeatures.pullRequests + +object GithubCommitStatusIntegration : Template({ + name = "GithubCommitStatusIntegrationTemplate" + + features { + commitStatusPublisher { + vcsRootExtId = "${Ribasim.id}" + publisher = github { + githubUrl = "https://api.github.com" + authType = personalToken { + token = "credentialsJSON:6b37af71-1f2f-4611-8856-db07965445c0" + } + } + } + } +}) + +object GithubPullRequestsIntegration : Template({ + name = "GithubPullRequestsIntegrationTemplate" + + features { + pullRequests { + vcsRootExtId = "${Ribasim.id}" + provider = github { + authType = token { + token = "credentialsJSON:6b37af71-1f2f-4611-8856-db07965445c0" + } + filterAuthorRole = PullRequests.GitHubRoleFilter.MEMBER + } + } + } +}) \ No newline at end of file diff --git a/.teamcity/Templates/IntegrationTest.kt b/.teamcity/Templates/IntegrationTest.kt new file mode 100644 index 000000000..364e82eb6 --- /dev/null +++ b/.teamcity/Templates/IntegrationTest.kt @@ -0,0 +1,75 @@ +package Templates + +import Ribasim_Windows.Windows_BuildRibasim +import Ribasim_Linux.Linux_BuildRibasim +import jetbrains.buildServer.configs.kotlin.Template +import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport +import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport +import jetbrains.buildServer.configs.kotlin.buildSteps.script +import jetbrains.buildServer.configs.kotlin.triggers.schedule + +fun generateIntegrationTestHeader(platformOs: String): String { + if (platformOs == "Linux") { + return """ + #!/bin/bash + # black magic + source /usr/share/Modules/init/bash + + module load pixi + """.trimIndent() + System.lineSeparator() + } + + return "" +} + +open class IntegrationTest (platformOs: String) : Template() { + + init { + name = "IntegrationTest_${platformOs}_Template" + + artifactRules = """ + + + """.trimIndent() + + vcs { + root(Ribasim.vcsRoots.Ribasim, ". => ribasim") + cleanCheckout = true + } + params { + password("MiniO_credential_token", "credentialsJSON:86cbf3e5-724c-437d-9962-7a3f429b0aa2") + } + val header = generateIntegrationTestHeader(platformOs) + + steps { + script { + name = "Set up pixi" + id = "RUNNER_1505" + workingDir = "ribasim" + scriptContent = header + + """ + pixi --version + pixi run install-ci + """.trimIndent() + } + script { + name = "Run integration tests" + id = "RUNNER_1507" + workingDir = "ribasim" + scriptContent = header + + """ + pixi run python utils/get_benchmark.py --secretkey %MiniO_credential_token% "hws_2024_7_0/" + pixi run model-integration-test + """.trimIndent() + } + } + + failureConditions { + executionTimeoutMin = 90 + } + + } +} + +object IntegrationTestWindows : IntegrationTest("Windows") +object IntegrationTestLinux : IntegrationTest("Linux") diff --git a/.teamcity/Ribasim/buildTypes/Linux_1.kt b/.teamcity/Templates/LinuxAgent.kt similarity index 74% rename from .teamcity/Ribasim/buildTypes/Linux_1.kt rename to .teamcity/Templates/LinuxAgent.kt index 2298f1242..6eb903a9d 100644 --- a/.teamcity/Ribasim/buildTypes/Linux_1.kt +++ b/.teamcity/Templates/LinuxAgent.kt @@ -1,18 +1,14 @@ -package Ribasim.buildTypes +package Templates import jetbrains.buildServer.configs.kotlin.* -object Linux_1 : Template({ +object LinuxAgent : Template({ id("Ribasim_Linux") name = "Ribasim_Linux" description = "Template for agent that uses Linux OS" publishArtifacts = PublishMode.SUCCESSFUL - vcs { - cleanCheckout = true - } - requirements { equals("teamcity.agent.jvm.os.name", "Linux", "RQ_418") } diff --git a/.teamcity/Templates/RegressionTest.kt b/.teamcity/Templates/RegressionTest.kt new file mode 100644 index 000000000..3aa70d8ee --- /dev/null +++ b/.teamcity/Templates/RegressionTest.kt @@ -0,0 +1,76 @@ +package Templates + +import Ribasim_Windows.Windows_BuildRibasim +import Ribasim_Linux.Linux_BuildRibasim +import jetbrains.buildServer.configs.kotlin.Template +import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport +import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport +import jetbrains.buildServer.configs.kotlin.buildSteps.script +import jetbrains.buildServer.configs.kotlin.triggers.schedule + +fun generateRegressionTestHeader(platformOs: String): String { + if (platformOs == "Linux") { + return """ + #!/bin/bash + # black magic + source /usr/share/Modules/init/bash + + module load pixi + """.trimIndent() + System.lineSeparator() + } + + return "" +} + +open class RegressionTest (platformOs: String) : Template() { + + init { + name = "RegressionTest_${platformOs}_Template" + + artifactRules = """ + + + """.trimIndent() + + vcs { + root(Ribasim.vcsRoots.Ribasim, ". => ribasim") + cleanCheckout = true + } + params { + password("MiniO_credential_token", "credentialsJSON:86cbf3e5-724c-437d-9962-7a3f429b0aa2") + } + val header = generateRegressionTestHeader(platformOs) + + steps { + script { + name = "Set up pixi" + id = "RUNNER_1509" + workingDir = "ribasim" + scriptContent = header + + """ + pixi --version + pixi run install-ci + """.trimIndent() + } + script { + name = "Run regression tests" + id = "RUNNER_1511" + workingDir = "ribasim" + scriptContent = header + + """ + pixi run python utils/get_benchmark.py --secretkey %MiniO_credential_token% "benchmark/" + pixi run python utils/get_benchmark.py --secretkey %MiniO_credential_token% "hws_migration_test/" + pixi run test-ribasim-regression + """.trimIndent() + } + } + + failureConditions { + executionTimeoutMin = 30 + } + + } +} + +object RegressionTestWindows : RegressionTest("Windows") +object RegressionTestLinux : RegressionTest("Linux") diff --git a/.teamcity/Templates/TestBinaries.kt b/.teamcity/Templates/TestBinaries.kt new file mode 100644 index 000000000..7e9b4b619 --- /dev/null +++ b/.teamcity/Templates/TestBinaries.kt @@ -0,0 +1,76 @@ +package Templates + +import jetbrains.buildServer.configs.kotlin.Template +import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport +import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport +import jetbrains.buildServer.configs.kotlin.buildSteps.script + +fun generateTestBinariesHeader(platformOs: String): String { + if (platformOs == "Linux") { + return """ + #!/bin/bash + # black magic + source /usr/share/Modules/init/bash + + module load pixi + """.trimIndent() + System.lineSeparator() + } + + return "" +} + +open class TestBinaries (platformOs: String) : Template() { + init { + name = "TestBinaries${platformOs}_Template" + + artifactRules = """ + ribasim\python\ribasim_api\tests\temp => test_output_api.zip + ribasim\build\tests\temp => test_output_cli.zip + """.trimIndent() + + vcs { + root(Ribasim.vcsRoots.Ribasim, ". => ribasim") + cleanCheckout = true + } + + val header = generateTestBinariesHeader(platformOs) + steps { + script { + name = "Set up pixi" + id = "RUNNER_1501" + workingDir = "ribasim" + scriptContent = header + + """ + pixi --version + pixi run install-ci + """.trimIndent() + } + script { + name = "Run tests" + id = "RUNNER_1503" + workingDir = "ribasim" + scriptContent = header + + """ + pixi run test-ribasim-api + pixi run test-ribasim-cli + """.trimIndent() + } + } + + failureConditions { + executionTimeoutMin = 120 + } + + features { + xmlReport { + id = "BUILD_EXT_145" + reportType = XmlReport.XmlReportType.JUNIT + rules = "ribasim/report.xml" + verbose = true + } + } + } +} + +object TestBinariesWindows : TestBinaries("Windows") +object TestBinariesLinux : TestBinaries("Linux") \ No newline at end of file diff --git a/.teamcity/Templates/TestDelwaqCoupling.kt b/.teamcity/Templates/TestDelwaqCoupling.kt new file mode 100644 index 000000000..9ef88c62b --- /dev/null +++ b/.teamcity/Templates/TestDelwaqCoupling.kt @@ -0,0 +1,51 @@ +package Templates + +import Ribasim.vcsRoots.Ribasim +import jetbrains.buildServer.configs.kotlin.Template +import jetbrains.buildServer.configs.kotlin.buildSteps.script + +open class TestDelwaqCoupling(platformOs: String) : Template() { + init { + name = "TestDelwaqCoupling${platformOs}_Template" + + vcs { + root(Ribasim, ". => ribasim") + cleanCheckout = true + } + params { + password("MiniO_credential_token", "credentialsJSON:86cbf3e5-724c-437d-9962-7a3f429b0aa2") + } + + steps { + script { + name = "Set up pixi" + id = "Set_up_pixi" + workingDir = "ribasim" + scriptContent = """ + pixi --version + pixi run install-ci + """.trimIndent() + } + script { + name = "Run Delwaq" + id = "Run_Delwaq" + workingDir = "ribasim" + scriptContent = """ + pixi run ribasim-core-testmodels basic + set D3D_HOME=%teamcity.build.checkoutDir%/dimr + pixi run delwaq + """.trimIndent() + } + script { + name = "Upload delwaq model" + id = "Delwaq_upload" + workingDir = "ribasim" + scriptContent = """ + pixi run python utils/upload_benchmark.py --secretkey %MiniO_credential_token% "python/ribasim/ribasim/delwaq/model/delwaq_map.nc" "doc-image/delwaq/delwaq_map.nc" + """.trimIndent() + } + } + } +} + +object TestDelwaqCouplingWindows : TestDelwaqCoupling("Windows") diff --git a/.teamcity/Ribasim/buildTypes/Windows_1.kt b/.teamcity/Templates/WindowsAgent.kt similarity index 60% rename from .teamcity/Ribasim/buildTypes/Windows_1.kt rename to .teamcity/Templates/WindowsAgent.kt index 442b41428..a83748ab4 100644 --- a/.teamcity/Ribasim/buildTypes/Windows_1.kt +++ b/.teamcity/Templates/WindowsAgent.kt @@ -1,20 +1,12 @@ -package Ribasim.buildTypes +package Templates import jetbrains.buildServer.configs.kotlin.* -object Windows_1 : Template({ +object WindowsAgent : Template({ id("Ribasim_Windows") name = "Ribasim_Windows" description = "Template for agent that uses Windows OS" - params { - param("env.JULIA_SSL_CA_ROOTS_PATH", "") - } - - vcs { - cleanCheckout = true - } - requirements { contains("teamcity.agent.jvm.os.name", "Windows", "RQ_422") } diff --git a/.teamcity/Testbench/IntegrationTestHWS.kt b/.teamcity/Testbench/IntegrationTestHWS.kt new file mode 100644 index 000000000..2d0550957 --- /dev/null +++ b/.teamcity/Testbench/IntegrationTestHWS.kt @@ -0,0 +1,55 @@ +package Testbench.IntegrationTestHWS + +import Ribasim_Linux.Linux_BuildRibasim +import Ribasim_Windows.Windows_BuildRibasim +import Templates.* +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.Project +import jetbrains.buildServer.configs.kotlin.triggers.schedule + +object IntegrationTestHWS : Project ({ + id("IntegrationTestHWS") + name = "IntegrationTestHWS" + + buildType(IntegrationTest_Windows) + buildType(IntegrationTest_Linux) + + template(IntegrationTestWindows) + template(IntegrationTestLinux) +}) + +object IntegrationTest_Windows : BuildType({ + name = "IntegrationTestWindows" + templates(WindowsAgent, GithubCommitStatusIntegration, IntegrationTestWindows) + + triggers{ + schedule { + id = "" + schedulingPolicy = daily { + hour = 0 + } + + branchFilter = "+:" + triggerBuild = always() + withPendingChangesOnly = true + } + } +}) + +object IntegrationTest_Linux : BuildType({ + name = "IntegrationTestLinux" + templates(LinuxAgent, GithubCommitStatusIntegration, IntegrationTestLinux) + + triggers{ + schedule { + id = "" + schedulingPolicy = daily { + hour = 0 + } + + branchFilter = "+:" + triggerBuild = always() + withPendingChangesOnly = true + } + } +}) \ No newline at end of file diff --git a/.teamcity/Testbench/RegressionTestODESolve.kt b/.teamcity/Testbench/RegressionTestODESolve.kt new file mode 100644 index 000000000..eb421f4cd --- /dev/null +++ b/.teamcity/Testbench/RegressionTestODESolve.kt @@ -0,0 +1,57 @@ +package Testbench.RegressionTestODESolve + +import Ribasim_Windows.Windows_BuildRibasim +import Ribasim_Linux.Linux_BuildRibasim +import Templates.* +import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.Project +import jetbrains.buildServer.configs.kotlin.matrix +import jetbrains.buildServer.configs.kotlin.triggers.schedule +import jetbrains.buildServer.configs.kotlin.* + +object RegressionTestODESolve : Project({ + id("RegressionTestODE") + name = "RegressionTestODE" + + buildType(RegressionTest_Windows) + buildType(RegressionTest_Linux) + + template(RegressionTestWindows) + template(RegressionTestLinux) +}) + +object RegressionTest_Windows : BuildType({ + name = "RegressionTestWindows" + templates(WindowsAgent, GithubCommitStatusIntegration, RegressionTestWindows) + + triggers{ + schedule { + id = "" + schedulingPolicy = daily { + hour = 0 + } + + branchFilter = "+:" + triggerBuild = always() + withPendingChangesOnly = true + } + } +}) + +object RegressionTest_Linux : BuildType({ + name = "RegressionTestLinux" + templates(LinuxAgent, GithubCommitStatusIntegration, RegressionTestLinux) + + triggers{ + schedule { + id = "" + schedulingPolicy = daily { + hour = 0 + } + + branchFilter = "+:" + triggerBuild = always() + withPendingChangesOnly = true + } + } +}) \ No newline at end of file diff --git a/.teamcity/Testbench/Testbench.kt b/.teamcity/Testbench/Testbench.kt new file mode 100644 index 000000000..b2a305564 --- /dev/null +++ b/.teamcity/Testbench/Testbench.kt @@ -0,0 +1,12 @@ +package Testbench + +import Templates.* +import Testbench.IntegrationTestHWS.IntegrationTestHWS +import Testbench.RegressionTestODESolve.RegressionTestODESolve +import jetbrains.buildServer.configs.kotlin.Project + +object Testbench : Project({ + name = "Testbench" + subProject(IntegrationTestHWS) + subProject(RegressionTestODESolve) +}) diff --git a/.teamcity/patches/buildTypes/GenerateTestmodels.kts b/.teamcity/patches/buildTypes/GenerateTestmodels.kts deleted file mode 100644 index fee827bdf..000000000 --- a/.teamcity/patches/buildTypes/GenerateTestmodels.kts +++ /dev/null @@ -1,17 +0,0 @@ -package patches.buildTypes - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, change the buildType with id = 'GenerateTestmodels' -accordingly, and delete the patch script. -*/ -changeBuildType(RelativeId("GenerateTestmodels")) { - params { - add { - param("env.PIXI_CACHE_DIR", "/u/svc-teamcity-ansible/.cache") - } - } -} diff --git a/.teamcity/patches/buildTypes/Ribasim_MakeGitHubRelease.kts b/.teamcity/patches/buildTypes/Ribasim_MakeGitHubRelease.kts new file mode 100644 index 000000000..67a763c88 --- /dev/null +++ b/.teamcity/patches/buildTypes/Ribasim_MakeGitHubRelease.kts @@ -0,0 +1,36 @@ +package patches.buildTypes + +import jetbrains.buildServer.configs.kotlin.* +import jetbrains.buildServer.configs.kotlin.ui.* + +/* +This patch script was generated by TeamCity on settings change in UI. +To apply the patch, change the buildType with id = 'Ribasim_MakeGitHubRelease' +accordingly, and delete the patch script. +*/ +changeBuildType(RelativeId("Ribasim_MakeGitHubRelease")) { + dependencies { + expect(RelativeId("Linux_TestRibasimBinaries")) { + snapshot { + onDependencyFailure = FailureAction.FAIL_TO_START + } + } + update(RelativeId("Linux_TestRibasimBinaries")) { + snapshot { + reuseBuilds = ReuseBuilds.ANY + } + } + + expect(RelativeId("Windows_TestRibasimBinaries")) { + snapshot { + onDependencyFailure = FailureAction.FAIL_TO_START + } + } + update(RelativeId("Windows_TestRibasimBinaries")) { + snapshot { + reuseBuilds = ReuseBuilds.ANY + } + } + + } +} diff --git a/.teamcity/patches/buildTypes/Ribasim_Windows_FixJuliaArtifactPermissions.kts b/.teamcity/patches/buildTypes/Ribasim_Windows_FixJuliaArtifactPermissions.kts deleted file mode 100644 index 025bea2cb..000000000 --- a/.teamcity/patches/buildTypes/Ribasim_Windows_FixJuliaArtifactPermissions.kts +++ /dev/null @@ -1,28 +0,0 @@ -package patches.buildTypes - -import jetbrains.buildServer.configs.kotlin.* -import jetbrains.buildServer.configs.kotlin.BuildType -import jetbrains.buildServer.configs.kotlin.buildSteps.powerShell -import jetbrains.buildServer.configs.kotlin.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, create a buildType with id = 'Ribasim_Windows_FixJuliaArtifactPermissions' -in the project with id = 'Ribasim_Windows', and delete the patch script. -*/ -create(RelativeId("Ribasim_Windows"), BuildType({ - id("Ribasim_Windows_FixJuliaArtifactPermissions") - name = "Fix Julia Artifact permissions" - description = "Temporary build to run on a failing agent" - - steps { - powerShell { - name = "Reset permissions" - id = "Reset_permissions" - scriptMode = script { - content = "icacls ~/.julia/artifacts /q /c /t /reset" - } - } - } -})) - diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 0506b40b0..a3e177cb8 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -8,6 +8,7 @@ "quarto.quarto", "tamasfe.even-better-toml", "samuelcolvin.jinjahtml", - "yy0931.vscode-sqlite3-editor" + "yy0931.vscode-sqlite3-editor", + "streetsidesoftware.code-spell-checker" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index c823a623f..3865d5886 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,8 +4,9 @@ }, "notebook.formatOnSave.enabled": false, "notebook.codeActionsOnSave": { - "source.fixAll.ruff": true, - "source.organizeImports.ruff": true + // https://github.com/astral-sh/ruff-vscode/issues/593 + "source.fixAll.ruff": "never", + "source.organizeImports.ruff": "never" }, "[python]": { "editor.defaultFormatter": "charliermarsh.ruff", @@ -23,5 +24,58 @@ "julia.lint.disabledDirs": [ ".pixi" ], - "julia.lint.run": true + "julia.lint.run": true, + "files.insertFinalNewline": true, + "cSpell.enabledLanguageIds": [ + "asciidoc", + "c", + "cpp", + "csharp", + "css", + "elixir", + "erlang", + "git-commit", + "go", + "graphql", + "handlebars", + "haskell", + "html", + "jade", + "java", + "javascript", + "javascriptreact", + "json", + "jsonc", + "jupyter", + "latex", + "less", + "markdown", + "php", + "plaintext", + "python", + "pug", + "restructuredtext", + "rust", + "scala", + "scss", + "scminput", + "swift", + "text", + "typescript", + "typescriptreact", + "vue", + "yaml", + "yml", + "quarto", + "julia" + ], + "cSpell.words": [ + "gpkg", + "ipynb", + "pixi", + "pkgdown", + "qgis", + "quartodoc", + "Ribasim" + ] } diff --git a/Manifest.toml b/Manifest.toml index 80f808c21..b647634fa 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,55 +1,87 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.4" +julia_version = "1.11.1" manifest_format = "2.0" -project_hash = "01c18211b753563050451023c729c6118ec0c448" +project_hash = "921c2f0c042509feb4a1950ec24084c1ad561dd0" [[deps.ADTypes]] -git-tree-sha1 = "7a6b285f217ba92b5b474b783b4c2e8cf8218aaa" +git-tree-sha1 = "eea5d80188827b35333801ef97a40c2ed653b081" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.5.3" +version = "1.9.0" weakdeps = ["ChainRulesCore", "EnzymeCore"] [deps.ADTypes.extensions] ADTypesChainRulesCoreExt = "ChainRulesCore" ADTypesEnzymeCoreExt = "EnzymeCore" +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + [[deps.AbstractTrees]] git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.5" [[deps.Accessors]] -deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] -git-tree-sha1 = "c0d491ef0b135fd7d63cbc6404286bc633329425" +deps = ["CompositionsBase", "ConstructionBase", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown"] +git-tree-sha1 = "b392ede862e506d451fc1616e79aa6f4c673dab8" uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.36" +version = "0.1.38" [deps.Accessors.extensions] AccessorsAxisKeysExt = "AxisKeys" + AccessorsDatesExt = "Dates" AccessorsIntervalSetsExt = "IntervalSets" AccessorsStaticArraysExt = "StaticArrays" AccessorsStructArraysExt = "StructArrays" + AccessorsTestExt = "Test" AccessorsUnitfulExt = "Unitful" [deps.Accessors.weakdeps] AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" Requires = "ae029012-a4dd-5104-9daa-d747884805df" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" +git-tree-sha1 = "50c3c56a52972d78e8be9fd135bfb91c9574c140" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.0.4" +version = "4.1.1" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" +[[deps.AdaptivePredicates]] +git-tree-sha1 = "7e651ea8d262d2d74ce75fdf47c4d63c07dba7a6" +uuid = "35492f91-a3bd-45ad-95db-fcad7dcfedb7" +version = "1.2.0" + +[[deps.AliasTables]] +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" +uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" +version = "1.1.3" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + [[deps.ArgCheck]] git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" @@ -57,7 +89,7 @@ version = "2.3.0" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" -version = "1.1.1" +version = "1.1.2" [[deps.ArnoldiMethod]] deps = ["LinearAlgebra", "Random", "StaticArrays"] @@ -66,10 +98,10 @@ uuid = "ec485272-7323-5ecc-a04f-4719b315124d" version = "0.4.0" [[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "ed2ec3c9b483842ae59cd273834e5b46206d6dda" +deps = ["Adapt", "LinearAlgebra"] +git-tree-sha1 = "3640d077b6dafd64ceb8fd5c1ec76f7ca53bcf76" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.11.0" +version = "7.16.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -79,6 +111,7 @@ version = "7.11.0" ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" ArrayInterfaceReverseDiffExt = "ReverseDiff" + ArrayInterfaceSparseArraysExt = "SparseArrays" ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" ArrayInterfaceTrackerExt = "Tracker" @@ -90,24 +123,25 @@ version = "7.11.0" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "600078184f7de14b3e60efe13fc0ba5c59f6dca5" +git-tree-sha1 = "492681bc44fac86804706ddb37da10880a2bd528" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.10.0" +version = "1.10.4" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] ArrayLayoutsSparseArraysExt = "SparseArrays" [[deps.Arrow]] -deps = ["ArrowTypes", "BitIntegers", "CodecLz4", "CodecZstd", "ConcurrentUtilities", "DataAPI", "Dates", "EnumX", "LoggingExtras", "Mmap", "PooledArrays", "SentinelArrays", "Tables", "TimeZones", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "f8d411d1b45459368567dc51f683ed78a919d795" +deps = ["ArrowTypes", "BitIntegers", "CodecLz4", "CodecZstd", "ConcurrentUtilities", "DataAPI", "Dates", "EnumX", "Mmap", "PooledArrays", "SentinelArrays", "Tables", "TimeZones", "TranscodingStreams", "UUIDs"] +git-tree-sha1 = "a3ae633a80f26751041e8c17c091c9e910d5537d" uuid = "69666777-d1a9-59fb-9406-91d4454c9d45" -version = "2.7.2" +version = "2.7.4" [[deps.ArrowTypes]] deps = ["Sockets", "UUIDs"] @@ -117,9 +151,29 @@ version = "2.3.0" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +version = "1.11.0" + +[[deps.Automa]] +deps = ["PrecompileTools", "SIMD", "TranscodingStreams"] +git-tree-sha1 = "a8f503e8e1a5f583fbef15a8440c8c7e32185df2" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "1.1.0" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +version = "1.11.0" [[deps.BasicModelInterface]] git-tree-sha1 = "0e2855d28cc3983a9edf4bee18478b020178a43f" @@ -134,9 +188,9 @@ version = "1.5.0" [[deps.BitIntegers]] deps = ["Random"] -git-tree-sha1 = "a55462dfddabc34bc97d3a7403a2ca2802179ae6" +git-tree-sha1 = "6158239ac409f960abbc232a9b24c00f5cce3108" uuid = "c3b6d118-76ef-56ca-8cc7-ebb389d030a1" -version = "0.3.1" +version = "0.3.2" [[deps.BitTwiddlingConvenienceFunctions]] deps = ["Static"] @@ -146,9 +200,14 @@ version = "0.1.6" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +git-tree-sha1 = "8873e196c2eb87962a2048b3b8e08946535864a1" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.8+1" +version = "1.0.8+2" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] @@ -156,11 +215,39 @@ git-tree-sha1 = "5a97e67919535d6841172016c9530fd69494e5ec" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" version = "0.2.6" +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" +version = "1.11.0" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "7b6ad8c35f4bc3bca8eb78127c8b99719506a5fb" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.1.0" + +[[deps.CairoMakie]] +deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] +git-tree-sha1 = "fbfdb7cbe17bd14b60646c14c27a16e5038cde54" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.12.15" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "009060c9a6168704143100f36ab08f06c2af4642" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.18.2+1" + [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" +git-tree-sha1 = "3e4b134270b372f2ed4d4d0e936aabaefc1802bc" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.24.0" +version = "1.25.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -174,33 +261,67 @@ version = "0.1.13" [[deps.CodeTracking]] deps = ["InteractiveUtils", "UUIDs"] -git-tree-sha1 = "c0216e792f518b39b22212127d4a84dc31e4e386" +git-tree-sha1 = "7eee164f122511d3e4e1ebadb7956939ea7e1c77" uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" -version = "1.3.5" +version = "1.3.6" [[deps.CodecBzip2]] -deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] -git-tree-sha1 = "9b1ca1aa6ce3f71b3d1840c538a8210a043625eb" +deps = ["Bzip2_jll", "TranscodingStreams"] +git-tree-sha1 = "e7c529cc31bb85b97631b922fa2e6baf246f5905" uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" -version = "0.8.2" +version = "0.8.4" [[deps.CodecLz4]] deps = ["Lz4_jll", "TranscodingStreams"] -git-tree-sha1 = "b8aecef9f90530cf322a8386630ec18485c17991" +git-tree-sha1 = "0db0c70ca94c0a79cadad269497f25ca88b9fa91" uuid = "5ba52731-8f18-5e0d-9241-30f10d1ec561" -version = "0.4.3" +version = "0.4.5" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +git-tree-sha1 = "bce6804e5e6044c6daab27bb533d1295e4a2e759" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.4" +version = "0.7.6" [[deps.CodecZstd]] deps = ["TranscodingStreams", "Zstd_jll"] -git-tree-sha1 = "0d0612d8646ed6157adaceff420b3bacbc2510a9" +git-tree-sha1 = "d0073f473757f0d39ac9707f1eb03b431573cbd8" uuid = "6b39b394-51ab-5f42-8807-6242bab2b4c2" -version = "0.8.3" +version = "0.8.6" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "13951eb68769ad1cd460cdb2e64e5e95f1bf123d" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.27.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.5" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.11" [[deps.CommonSolve]] git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" @@ -208,10 +329,10 @@ uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" version = "0.2.4" [[deps.CommonSubexpressions]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +deps = ["MacroTools"] +git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.0" +version = "0.3.1" [[deps.CommonWorldInvalidations]] git-tree-sha1 = "ae52d1c52048455e85a387fbee9be553ec2b68d0" @@ -220,9 +341,9 @@ version = "1.0.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248" +git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.15.0" +version = "4.16.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -235,9 +356,9 @@ version = "1.1.1+0" [[deps.ComponentArrays]] deps = ["ArrayInterface", "ChainRulesCore", "ForwardDiff", "Functors", "LinearAlgebra", "PackageExtensionCompat", "StaticArrayInterface", "StaticArraysCore"] -git-tree-sha1 = "c2663c30580894680c793d6b8043567b5f4d4878" +git-tree-sha1 = "bc391f0c19fa242fb6f71794b949e256cfa3772c" uuid = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" -version = "0.15.14" +version = "0.15.17" [deps.ComponentArrays.extensions] ComponentArraysAdaptExt = "Adapt" @@ -279,9 +400,9 @@ version = "0.2.3" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" +git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.4.1" +version = "2.4.2" [[deps.Conda]] deps = ["Downloads", "JSON", "VersionParsing"] @@ -296,18 +417,20 @@ uuid = "5218b696-f38b-4ac9-8b61-a12ec717816d" version = "0.17.6" [[deps.ConstructionBase]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2" +git-tree-sha1 = "76219f1ed5771adbb096743bff43fb5fdd4c1157" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.5" +version = "1.5.8" +weakdeps = ["IntervalSets", "LinearAlgebra", "StaticArrays"] [deps.ConstructionBase.extensions] ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseLinearAlgebraExt = "LinearAlgebra" ConstructionBaseStaticArraysExt = "StaticArrays" - [deps.ConstructionBase.weakdeps] - IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +[[deps.Contour]] +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.3" [[deps.CpuId]] deps = ["Markdown"] @@ -331,16 +454,16 @@ uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.16.0" [[deps.DataFrames]] -deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] -git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "fb61b4812c49343d7ef0b533ba982c46021938a6" uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -version = "1.6.1" +version = "1.7.0" [[deps.DataInterpolations]] deps = ["FindFirstFunctions", "ForwardDiff", "LinearAlgebra", "PrettyTables", "RecipesBase", "Reexport"] -git-tree-sha1 = "a47492f3694b8cd647a9a172a5111f585868f2c6" +git-tree-sha1 = "3d81cd1fcba530122a5d6c725aa53521d869816a" uuid = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" -version = "5.2.0" +version = "6.5.2" [deps.DataInterpolations.extensions] DataInterpolationsChainRulesCoreExt = "ChainRulesCore" @@ -353,6 +476,7 @@ version = "5.2.0" Optim = "429524aa-4258-5aef-a3af-852621145aeb" RegularizationTools = "29dad682-9a27-4bc3-9c72-016788665182" Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] @@ -368,12 +492,19 @@ version = "1.0.0" [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +version = "1.11.0" + +[[deps.DelaunayTriangulation]] +deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "PrecompileTools", "Random"] +git-tree-sha1 = "89df54fbe66e5872d91d8c2cd3a375f660c3fd64" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "1.6.1" [[deps.DiffEqBase]] -deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] -git-tree-sha1 = "d1e8a4642e28b0945bde6e2e1ac569b9e0abd728" +deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "Statistics", "TruncatedStacktraces"] +git-tree-sha1 = "f8eefbb7e910f59087c4bb09ce670f235758ee4a" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.151.5" +version = "6.158.3" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" @@ -385,6 +516,7 @@ version = "6.151.5" DiffEqBaseMeasurementsExt = "Measurements" DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseSparseArraysExt = "SparseArrays" DiffEqBaseTrackerExt = "Tracker" DiffEqBaseUnitfulExt = "Unitful" @@ -398,18 +530,15 @@ version = "6.151.5" Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" [[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NonlinearSolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "c959cfd2657d16beada157a74d52269e8556500e" +deps = ["ConcreteStructs", "DataStructures", "DiffEqBase", "DifferentiationInterface", "Functors", "LinearAlgebra", "Markdown", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "7f700fa4fb6e55f4672f8218ef228107245a2e9d" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "3.6.2" - - [deps.DiffEqCallbacks.weakdeps] - OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" - Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" +version = "4.0.0" [[deps.DiffResults]] deps = ["StaticArraysCore"] @@ -424,10 +553,10 @@ uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" version = "1.15.1" [[deps.DifferentiationInterface]] -deps = ["ADTypes", "Compat", "DocStringExtensions", "FillArrays", "LinearAlgebra", "PackageExtensionCompat", "SparseArrays", "SparseMatrixColorings"] -git-tree-sha1 = "695217e97ee1ce0248f4a56c14af88ba33c585fd" +deps = ["ADTypes", "LinearAlgebra"] +git-tree-sha1 = "95cf94719d2f71ad8b8c7ba3eb0accc978626856" uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.5.7" +version = "0.6.18" [deps.DifferentiationInterface.extensions] DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" @@ -437,10 +566,13 @@ version = "0.5.7" DifferentiationInterfaceFiniteDiffExt = "FiniteDiff" DifferentiationInterfaceFiniteDifferencesExt = "FiniteDifferences" DifferentiationInterfaceForwardDiffExt = "ForwardDiff" + DifferentiationInterfaceMooncakeExt = "Mooncake" DifferentiationInterfacePolyesterForwardDiffExt = "PolyesterForwardDiff" DifferentiationInterfaceReverseDiffExt = "ReverseDiff" + DifferentiationInterfaceSparseArraysExt = "SparseArrays" + DifferentiationInterfaceSparseMatrixColoringsExt = "SparseMatrixColorings" + DifferentiationInterfaceStaticArraysExt = "StaticArrays" DifferentiationInterfaceSymbolicsExt = "Symbolics" - DifferentiationInterfaceTapirExt = "Tapir" DifferentiationInterfaceTrackerExt = "Tracker" DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"] @@ -452,10 +584,13 @@ version = "0.5.7" FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" - Tapir = "07d77754-e150-4737-8c94-cd238a1fb45b" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" @@ -467,6 +602,23 @@ version = "0.1.6" [[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +version = "1.11.0" + +[[deps.Distributions]] +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "d7477ecdafb813ddee2ae727afa94e9dcb5f3fb0" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.112" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.DocStringExtensions]] deps = ["LibGit2"] @@ -479,41 +631,82 @@ deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.4+0" + [[deps.EnumX]] git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" [[deps.EnzymeCore]] -git-tree-sha1 = "3a3177ba05b4763234819060fb6c2e1613379ca6" +git-tree-sha1 = "04c777af6ef65530a96ab68f0a81a4608113aa1d" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.7.6" +version = "0.8.5" weakdeps = ["Adapt"] [deps.EnzymeCore.extensions] AdaptExt = "Adapt" -[[deps.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "8e18940a5ba7f4ddb41fe2b79b6acaac50880a86" -uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.26.1" +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArrays"] +git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.8" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.6.2+0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.10" +[[deps.Expronicon]] +deps = ["MLStyle", "Pkg", "TOML"] +git-tree-sha1 = "fc3951d4d398b5515f91d7fe5d45fc31dccb3c9b" +uuid = "6b7a57c9-7cc1-4fdf-b7f5-e857abae3636" +version = "0.8.5" + [[deps.ExproniconLite]] -git-tree-sha1 = "4627945941758db441d197192f228cd854700ef9" +git-tree-sha1 = "4c9ed87a6b3cd90acf24c556f2119533435ded38" uuid = "55351af7-c7e9-48d6-89ff-24e801d99491" -version = "0.10.10" +version = "0.10.13" + +[[deps.Extents]] +git-tree-sha1 = "81023caa0021a41712685887db1fc03db26f41f5" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.4" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "8cc47f299902e13f90405ddb5bf87e5d474c0d38" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "6.1.2+0" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4d81ed14783ec49ce9f2e168208a12ce1815aa25" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+1" [[deps.FastBroadcast]] deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] -git-tree-sha1 = "bd19de6fe8a3b18888f35e79832f97544684caa7" +git-tree-sha1 = "ab1b34570bcdf272899062e1a56285a53ecaae08" uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" -version = "0.3.4" +version = "0.3.5" [[deps.FastClosures]] git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" @@ -526,62 +719,140 @@ git-tree-sha1 = "cbf5edddb61a43669710cbc2241bc08b36d9e660" uuid = "29a986be-02c6-4525-aec4-84b980013641" version = "2.0.4" +[[deps.FastPower]] +git-tree-sha1 = "58c3431137131577a7c379d00fea00be524338fb" +uuid = "a4df4552-cc26-4903-aec0-212e50a0e84b" +version = "1.1.1" + + [deps.FastPower.extensions] + FastPowerEnzymeExt = "Enzyme" + FastPowerForwardDiffExt = "ForwardDiff" + FastPowerMeasurementsExt = "Measurements" + FastPowerMonteCarloMeasurementsExt = "MonteCarloMeasurements" + FastPowerReverseDiffExt = "ReverseDiff" + FastPowerTrackerExt = "Tracker" + + [deps.FastPower.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" +git-tree-sha1 = "62ca0547a14c57e98154423419d8a342dca75ca9" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.3" +version = "1.16.4" + +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates"] +git-tree-sha1 = "7878ff7172a8e6beedd1dea14bd27c3c6340d361" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.22" +weakdeps = ["Mmap", "Test"] + + [deps.FilePathsBase.extensions] + FilePathsBaseMmapExt = "Mmap" + FilePathsBaseTestExt = "Test" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" +version = "1.11.0" [[deps.FillArrays]] deps = ["LinearAlgebra"] -git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57" +git-tree-sha1 = "6a70198746448456524cb442b8af316927ff3e1a" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.11.0" +version = "1.13.0" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] [deps.FillArrays.extensions] FillArraysPDMatsExt = "PDMats" FillArraysSparseArraysExt = "SparseArrays" FillArraysStatisticsExt = "Statistics" - [deps.FillArrays.weakdeps] - PDMats = "90014a1f-27ba-587c-ab20-58faa44d9150" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - [[deps.FindFirstFunctions]] -git-tree-sha1 = "e90fef90f7d75e6a5b435b0fd65609759f99717a" +git-tree-sha1 = "670e1d9ceaa4a3161d32fe2d2fb2177f8d78b330" uuid = "64ca27bc-2ba2-4a57-88aa-44e436879224" -version = "1.2.0" +version = "1.4.1" [[deps.FiniteDiff]] -deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "2de436b72c3422940cbe1367611d137008af7ec3" +deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] +git-tree-sha1 = "b10bdafd1647f57ace3885143936749d61638c3b" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.23.1" +version = "2.26.0" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffSparseArraysExt = "SparseArrays" FiniteDiffStaticArraysExt = "StaticArrays" [deps.FiniteDiff.weakdeps] BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.5" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.96+0" + +[[deps.Format]] +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.7" + [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +git-tree-sha1 = "a9ce73d3c827adab2d70bf168aaece8cce196898" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.36" +version = "0.10.37" weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] ForwardDiffStaticArraysExt = "StaticArrays" +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.1" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.2+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "84dfe824bd6fdf2a5d73bb187ff31b5549b2a79c" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.4" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.14+0" + [[deps.FunctionWrappers]] git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" @@ -595,13 +866,14 @@ version = "0.1.3" [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "8a66c07630d6428eaab3506a0eabfcf4a9edea05" +git-tree-sha1 = "64d8e93700c7a3f28f717d265382d52fac9fa1c1" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.11" +version = "0.4.12" [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" +version = "1.11.0" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -609,34 +881,92 @@ git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.1.6" -[[deps.GenericSchur]] -deps = ["LinearAlgebra", "Printf"] -git-tree-sha1 = "af49a0851f8113fcfae2ef5027c6d49d0acec39b" -uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" -version = "0.5.4" +[[deps.GeoFormatTypes]] +git-tree-sha1 = "59107c179a586f0fe667024c5eb7033e81333271" +uuid = "68eda718-8dee-11e9-39e7-89f7f65f511f" +version = "0.4.2" + +[[deps.GeoInterface]] +deps = ["Extents", "GeoFormatTypes"] +git-tree-sha1 = "2f6fce56cdb8373637a6614e14a5768a88450de2" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.7" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "b62f2b2d76cee0d61a2ef2b3118cd2a3215d3134" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.11" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Giflib_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0224cce99284d997f6880a42ef715a37c99338d1" +uuid = "59f7168a-df46-5410-90c8-f2779963d0ec" +version = "5.2.2+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "674ff0db93fffcd11a3573986e550d66cd4fd71f" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.80.5+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" version = "1.3.1" +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.2" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + [[deps.Graphs]] deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] -git-tree-sha1 = "334d300809ae0a68ceee3444c6e99ded412bf0b3" +git-tree-sha1 = "1dc470db8b1131cfc7fb4c115de89fe391b9e780" uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" -version = "1.11.1" +version = "1.12.0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "fc713f007cff99ff9e50accba6373624ddd33588" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.11.0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] +git-tree-sha1 = "401e4f3f30f43af2c8478fc008da50096ea5240f" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "8.3.1+0" [[deps.HiGHS]] deps = ["HiGHS_jll", "MathOptInterface", "PrecompileTools", "SparseArrays"] -git-tree-sha1 = "1042e72e93e5916bbfe034576f2fc2fae73d5ec7" +git-tree-sha1 = "bad103266198176b0f88468523d7bbc33a762844" uuid = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" -version = "1.9.1" +version = "1.11.0" [[deps.HiGHS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "656db2048ed731484df16fc91e7232a190e330fb" +git-tree-sha1 = "c12314e192631fc302078e27a06da5ab51770e3b" uuid = "8fd58aa0-07eb-5a78-9b36-339c94fd15ea" -version = "1.7.1+0" +version = "1.8.0+0" [[deps.HostCPUFeatures]] deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] @@ -644,6 +974,12 @@ git-tree-sha1 = "8e070b599339d622e9a081d17230d74a5c473293" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" version = "0.1.17" +[[deps.HypergeometricFunctions]] +deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "7c4195be1649ae622304031ed46a2f4df989f1eb" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.24" + [[deps.IJulia]] deps = ["Base64", "Conda", "Dates", "InteractiveUtils", "JSON", "Libdl", "Logging", "Markdown", "MbedTLS", "Pkg", "Printf", "REPL", "Random", "SoftGlobalScope", "Test", "UUIDs", "ZMQ"] git-tree-sha1 = "1702f79fa30f56b68d5b2fd6fb3a9a14ff6f9130" @@ -661,6 +997,47 @@ git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" version = "0.1.1" +[[deps.ImageAxes]] +deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] +git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.6.11" + +[[deps.ImageBase]] +deps = ["ImageCore", "Reexport"] +git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.7" + +[[deps.ImageCore]] +deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] +git-tree-sha1 = "b2a7eaa169c13f5bcae8131a83bc30eff8f71be0" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.10.2" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs", "WebP"] +git-tree-sha1 = "696144904b76e1ca433b886b4e7edd067d76cbf7" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.9" + +[[deps.ImageMetadata]] +deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] +git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" +version = "0.9.9" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0936ba688c6d201805a83da835b55c61a180db52" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.11+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + [[deps.Infiltrator]] deps = ["InteractiveUtils", "Markdown", "REPL", "UUIDs"] git-tree-sha1 = "38298a8eabe09e49e6f60927c9e1ca3481688ba0" @@ -673,34 +1050,69 @@ uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" version = "0.1.5" [[deps.InlineStrings]] -deps = ["Parsers"] -git-tree-sha1 = "86356004f30f8e737eff143d57d41bd580e437aa" +git-tree-sha1 = "45521d31238e87ee9f9732561bfee12d4eebd52d" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" -version = "1.4.1" -weakdeps = ["ArrowTypes"] +version = "1.4.2" +weakdeps = ["ArrowTypes", "Parsers"] [deps.InlineStrings.extensions] ArrowTypesExt = "ArrowTypes" + ParsersExt = "Parsers" [[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "be50fe8df3acbffa0274a744f1a99d29c45a57f4" +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "10bd689145d2c3b2a9844005d01087cc1194e79e" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.1.0+0" +version = "2024.2.1+0" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +version = "1.11.0" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" +weakdeps = ["Unitful"] + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm_jll", "LinearAlgebra", "MacroTools", "RoundingEmulator"] +git-tree-sha1 = "c59c57c36683aa17c563be6edaac888163f35285" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.22.18" +weakdeps = ["DiffRules", "ForwardDiff", "IntervalSets", "RecipesBase"] + + [deps.IntervalArithmetic.extensions] + IntervalArithmeticDiffRulesExt = "DiffRules" + IntervalArithmeticForwardDiffExt = "ForwardDiff" + IntervalArithmeticIntervalSetsExt = "IntervalSets" + IntervalArithmeticRecipesBaseExt = "RecipesBase" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" +weakdeps = ["Random", "RecipesBase", "Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" [[deps.InverseFunctions]] -deps = ["Test"] -git-tree-sha1 = "e7cbed5032c4c397a6ac23d1493f3289e01231c4" +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.14" -weakdeps = ["Dates"] +version = "0.1.17" +weakdeps = ["Dates", "Test"] [deps.InverseFunctions.extensions] - DatesExt = "Dates" + InverseFunctionsDatesExt = "Dates" + InverseFunctionsTestExt = "Test" [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" @@ -712,6 +1124,12 @@ git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" version = "0.2.2" +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + [[deps.IterTools]] git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" @@ -723,16 +1141,16 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Reexport", "Requires", "TranscodingStreams", "UUIDs", "Unicode"] -git-tree-sha1 = "bdbe8222d2f5703ad6a7019277d149ec6d78c301" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "PrecompileTools", "Requires", "TranscodingStreams"] +git-tree-sha1 = "783c1be5213a09609b23237a0c9e5dfd258ae6f2" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.48" +version = "0.5.7" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.5.0" +version = "1.6.1" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -742,19 +1160,31 @@ version = "0.21.4" [[deps.JSON3]] deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] -git-tree-sha1 = "eb3edce0ed4fa32f75a0a11217433c31d56bd48b" +git-tree-sha1 = "1d322381ef7b087548321d3f878cb4c9bd8f8f9b" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.14.0" +version = "1.14.1" weakdeps = ["ArrowTypes"] [deps.JSON3.extensions] JSON3ArrowExt = ["ArrowTypes"] +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.5" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "25ee0be4d43d0269027024d75a24c24d6c6e590c" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.4+0" + [[deps.JuMP]] deps = ["LinearAlgebra", "MacroTools", "MathOptInterface", "MutableArithmetics", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays"] -git-tree-sha1 = "7e10a0d8b534f2d8e9f712b33488584254624fb1" +git-tree-sha1 = "c91f872c6150cf1471f9cb279f5e0dc09423bdcf" uuid = "4076af6c-e467-56ae-b986-b466b2749572" -version = "1.22.2" +version = "1.23.3" [deps.JuMP.extensions] JuMPDimensionalDataExt = "DimensionalData" @@ -764,9 +1194,9 @@ version = "1.22.2" [[deps.JuliaInterpreter]] deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] -git-tree-sha1 = "a6adc2dcfe4187c40dc7c2c9d2128e326360e90a" +git-tree-sha1 = "2984284a8abcfcc4784d95a9e2ea4e352dd8ede7" uuid = "aa1ae85d-cabe-5617-a682-6adf51b2e16a" -version = "0.9.32" +version = "0.9.36" [[deps.KLU]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -774,16 +1204,46 @@ git-tree-sha1 = "07649c499349dad9f08dde4243a4c597064663e9" uuid = "ef3ab10e-7fda-4108-b977-705223b18434" version = "0.6.0" +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.9" + [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "267dad6b4b7b5d529c76d40ff48d33f7e94cb834" +git-tree-sha1 = "4f20a2df85a9e5d55c9e84634bbf808ed038cabd" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.6" +version = "0.9.8" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.2+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "36bdbc52f13a7d1dcb0f3cd694e01677a515655b" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "4.0.0+0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "78211fb6cbc872f77cad3fc0b6cf647d923f4929" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "18.1.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "854a9c268c43b77b0a27f22d7fab8d33cdb3a731" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.2+1" [[deps.LaTeXStrings]] -git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.1" +version = "1.4.0" [[deps.LayoutPointers]] deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] @@ -793,9 +1253,9 @@ version = "0.1.17" [[deps.LazyArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "SparseArrays"] -git-tree-sha1 = "fb43bbe51db62510b032b85e157ea87d77b2fa07" +git-tree-sha1 = "360f6039babd6e4d6364eff0d4fc9120834a2d9a" uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" -version = "2.1.0" +version = "2.2.1" [deps.LazyArrays.extensions] LazyArraysBandedMatricesExt = "BandedMatrices" @@ -812,6 +1272,12 @@ version = "2.1.0" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +version = "1.11.0" + +[[deps.LazyModules]] +git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" +uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" +version = "0.3.1" [[deps.LeftChildRightSiblingTrees]] deps = ["AbstractTrees"] @@ -821,9 +1287,9 @@ version = "0.2.0" [[deps.Legolas]] deps = ["Arrow", "ArrowTypes", "Tables", "UUIDs"] -git-tree-sha1 = "4e8fdd0160dd10220ce5cc537e7b34965400a58d" +git-tree-sha1 = "fc184d95785850d7f900af3efab7bd5c3ea9eebf" uuid = "741b9549-f6ed-4911-9fbf-4a1c0c97f0cd" -version = "0.5.19" +version = "0.5.22" weakdeps = ["ConstructionBase"] [deps.Legolas.extensions] @@ -837,16 +1303,17 @@ version = "0.6.4" [[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "8.4.0+0" +version = "8.6.0+0" [[deps.LibGit2]] deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +version = "1.11.0" [[deps.LibGit2_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" -version = "1.6.4+0" +version = "1.7.2+0" [[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] @@ -855,30 +1322,90 @@ version = "1.11.0+1" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +version = "1.11.0" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] +git-tree-sha1 = "8be878062e0ffa2c3f67bb58a595375eda5de80b" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.11.0+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c6ce1e19f3aec9b59186bdf06cdf3c4fc5f5f3e6" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.50.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "61dfdba58e585066d8bce214c5a51eaa0539f269" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+1" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.40.1+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "b404131d06f7886402758c9ce2214b636eb4d54a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.7.0+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.40.1+0" + +[[deps.LineSearch]] +deps = ["ADTypes", "CommonSolve", "ConcreteStructs", "FastClosures", "LinearAlgebra", "MaybeInplace", "SciMLBase", "SciMLJacobianOperators", "StaticArraysCore"] +git-tree-sha1 = "97d502765cc5cf3a722120f50da03c2474efce04" +uuid = "87fe0de2-c867-4266-b59a-2f0a94fc965b" +version = "0.1.4" +weakdeps = ["LineSearches"] + + [deps.LineSearch.extensions] + LineSearchLineSearchesExt = "LineSearches" [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] -git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +git-tree-sha1 = "e4c3be53733db1051cc15ecf573b1042b3a712a1" uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" -version = "7.2.0" +version = "7.3.0" [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +version = "1.11.0" [[deps.LinearSolve]] deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LazyArrays", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "b2e2dba60642e07c062eb3143770d7e234316772" +git-tree-sha1 = "591de175461afd8323aa24b7686062574527aa3a" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.30.2" +version = "2.36.2" [deps.LinearSolve.extensions] LinearSolveBandedMatricesExt = "BandedMatrices" LinearSolveBlockDiagonalsExt = "BlockDiagonals" LinearSolveCUDAExt = "CUDA" LinearSolveCUDSSExt = "CUDSS" - LinearSolveEnzymeExt = ["Enzyme", "EnzymeCore"] - LinearSolveFastAlmostBandedMatricesExt = ["FastAlmostBandedMatrices"] + LinearSolveEnzymeExt = "EnzymeCore" + LinearSolveFastAlmostBandedMatricesExt = "FastAlmostBandedMatrices" LinearSolveHYPREExt = "HYPRE" LinearSolveIterativeSolversExt = "IterativeSolvers" LinearSolveKernelAbstractionsExt = "KernelAbstractions" @@ -892,7 +1419,6 @@ version = "2.30.2" BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" @@ -921,12 +1447,13 @@ version = "0.3.28" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +version = "1.11.0" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +git-tree-sha1 = "f02b56007b064fbfddb4c9cd60161b6dd0f40df3" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.3" +version = "1.1.0" [[deps.LoopVectorization]] deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] @@ -941,21 +1468,26 @@ weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] [[deps.LoweredCodeUtils]] deps = ["JuliaInterpreter"] -git-tree-sha1 = "eeaedcf337f33c039f9f3a209a8db992deefd7e9" +git-tree-sha1 = "260dc274c1bc2cb839e758588c63d9c8b5e639d1" uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" -version = "2.4.8" +version = "3.0.5" [[deps.Lz4_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6c26c5e8a4203d43b5497be3ec5d4e0c3cde240a" +git-tree-sha1 = "abf88ff67f4fd89839efcae2f4c39cbc4ecd0846" uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" -version = "1.9.4+0" +version = "1.10.0+1" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] -git-tree-sha1 = "80b2833b56d466b3858d565adcd16a4a05f2089b" +git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.1.0+0" +version = "2024.2.0+0" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" [[deps.MacroTools]] deps = ["Markdown", "Random"] @@ -963,14 +1495,32 @@ git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.13" +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "f7907907eb914138cc9e9ee66ab46f7a9efac8e8" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.21.15" + +[[deps.MakieCore]] +deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] +git-tree-sha1 = "4604f03e5b057e8e62a95a44929cafc9585b0fe9" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.8.9" + [[deps.ManualMemory]] git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" version = "0.1.8" +[[deps.MappedArrays]] +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.2" + [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +version = "1.11.0" [[deps.MarkdownTables]] deps = ["ArgCheck", "DisplayAs", "DocStringExtensions", "Tables"] @@ -980,15 +1530,25 @@ version = "1.1.0" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "91b08d27a27d83cf1e63e50837403e7f53a0fd74" +git-tree-sha1 = "9a9905be768c496fb2f2c5fe34e2c9fe44b86e7a" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.31.0" +version = "1.33.0" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] +git-tree-sha1 = "f45c8916e8385976e1ccd055c9874560c257ab13" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.6.2" [[deps.MaybeInplace]] -deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "SparseArrays"] -git-tree-sha1 = "1b9e613f2ca3b6cdcbfe36381e17ca2b66d4b3a1" +deps = ["ArrayInterface", "LinearAlgebra", "MacroTools"] +git-tree-sha1 = "54e2fdc38130c05b42be423e90da3bade29b74bd" uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" -version = "0.1.3" +version = "0.1.4" +weakdeps = ["SparseArrays"] + + [deps.MaybeInplace.extensions] + MaybeInplaceSparseArraysExt = "SparseArrays" [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] @@ -999,13 +1559,13 @@ version = "1.1.9" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.2+1" +version = "2.28.6+0" [[deps.MetaGraphsNext]] deps = ["Graphs", "JLD2", "SimpleTraits"] -git-tree-sha1 = "a385fe5aa1384647e55c0c8773457b71e9b08518" +git-tree-sha1 = "d2ecf4a20f4ac694987dd08ac489b7f7ff805f35" uuid = "fa8bd995-216d-47f1-8a91-f3b68fbeb377" -version = "0.7.0" +version = "0.7.1" [[deps.Missings]] deps = ["DataAPI"] @@ -1015,16 +1575,23 @@ version = "1.2.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +version = "1.11.0" [[deps.Mocking]] deps = ["Compat", "ExprTools"] -git-tree-sha1 = "bf17d9cb4f0d2882351dfad030598f64286e5936" +git-tree-sha1 = "2c140d60d7cb82badf06d8783800d0bcd1a7daa2" uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" -version = "0.7.8" +version = "0.8.1" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.4" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2023.1.10" +version = "2023.12.12" [[deps.MuladdMacro]] git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" @@ -1033,9 +1600,9 @@ version = "0.2.4" [[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "898c56fbf8bf71afb0c02146ef26f3a454e88873" +git-tree-sha1 = "90077f1e79de8c9c7c8a90644494411111f4e07b" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.4.5" +version = "1.5.2" [[deps.NLSolversBase]] deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] @@ -1049,15 +1616,21 @@ git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.2" +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore", "ImageMetadata"] +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.1.1" + [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.NonlinearSolve]] -deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LazyArrays", "LineSearches", "LinearAlgebra", "LinearSolve", "MaybeInplace", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] -git-tree-sha1 = "3adb1e5945b5a6b1eaee754077f25ccc402edd7f" +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LazyArrays", "LineSearch", "LineSearches", "LinearAlgebra", "LinearSolve", "MaybeInplace", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "SciMLOperators", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] +git-tree-sha1 = "4d8944f32db2b07a2bdf8477e878bcb9c9ea2308" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "3.13.1" +version = "3.15.1" [deps.NonlinearSolve.extensions] NonlinearSolveBandedMatricesExt = "BandedMatrices" @@ -1069,8 +1642,6 @@ version = "3.13.1" NonlinearSolveNLsolveExt = "NLsolve" NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" NonlinearSolveSpeedMappingExt = "SpeedMapping" - NonlinearSolveSymbolicsExt = "Symbolics" - NonlinearSolveZygoteExt = "Zygote" [deps.NonlinearSolve.weakdeps] BandedMatrices = "aae01518-5342-5314-be14-df237901396f" @@ -1082,56 +1653,152 @@ version = "3.13.1" NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" - Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" [[deps.OffsetArrays]] -git-tree-sha1 = "e64b4f5ea6b7389f6f046d13d4896a8f9c1ba71e" +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.14.0" +version = "1.14.1" weakdeps = ["Adapt"] [deps.OffsetArrays.extensions] OffsetArraysAdaptExt = "Adapt" +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+4" +version = "0.3.27+1" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.2" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "8292dd5c8a38257111ada2174000a33745b06d4e" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.2.4+0" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+2" +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7493f61f55a6cce7325f197443aa80d32554ba10" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.15+1" + [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6703a85cb3781bd5909d48730a67205f3f31a575" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.3+0" + [[deps.OrderedCollections]] git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.6.3" -[[deps.OrdinaryDiffEq]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "Static", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "6ef13f8b23af28ee2d98226653d8382ab79287ea" -uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.85.0" +[[deps.OrdinaryDiffEqBDF]] +deps = ["ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "b4498d40bf35da0b6d22652ff2e9d8820590b3c6" +uuid = "6ad6398a-0878-4a85-9266-38940aa047c8" +version = "1.1.2" + +[[deps.OrdinaryDiffEqCore]] +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleUnPack", "Static", "StaticArrayInterface", "StaticArraysCore", "TruncatedStacktraces"] +git-tree-sha1 = "1175717a62ab21736a8f5d0d2531d2a6ad3b9e74" +uuid = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" +version = "1.9.0" +weakdeps = ["EnzymeCore"] + + [deps.OrdinaryDiffEqCore.extensions] + OrdinaryDiffEqCoreEnzymeCoreExt = "EnzymeCore" + +[[deps.OrdinaryDiffEqDifferentiation]] +deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqCore", "SciMLBase", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays"] +git-tree-sha1 = "e63ec633b1efa99e3caa2e26a01faaa88ba6cef9" +uuid = "4302a76b-040a-498a-8c04-15b101fed76b" +version = "1.1.0" + +[[deps.OrdinaryDiffEqLowOrderRK]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "d4bb32e09d6b68ce2eb45fb81001eab46f60717a" +uuid = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" +version = "1.2.0" + +[[deps.OrdinaryDiffEqNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "FastClosures", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "PreallocationTools", "RecursiveArrayTools", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "StaticArrays"] +git-tree-sha1 = "a2a4119f3e35f7982f78e17beea7b12485d179e9" +uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" +version = "1.2.1" + +[[deps.OrdinaryDiffEqRosenbrock]] +deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static"] +git-tree-sha1 = "96b47cdd12cb4ce8f70d701b49f855271a462bd4" +uuid = "43230ef6-c299-4910-a778-202eb28ce4ce" +version = "1.2.0" + +[[deps.OrdinaryDiffEqSDIRK]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] +git-tree-sha1 = "f6683803a58de600ab7a26d2f49411c9923e9721" +uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" +version = "1.1.0" + +[[deps.OrdinaryDiffEqTsit5]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] +git-tree-sha1 = "96552f7d4619fabab4038a29ed37dd55e9eb513a" +uuid = "b1df2697-797e-41e3-8120-5422d3b24e4a" +version = "1.1.0" [[deps.OteraEngine]] deps = ["Markdown", "Pkg", "TOML"] -git-tree-sha1 = "f20abf8f4ffc0b8c00fea227b514dd3164676327" +git-tree-sha1 = "fd00935c531394ff30774cf8f7c89618597dd321" uuid = "b2d7f28f-acd6-4007-8b26-bc27716e5513" -version = "0.5.4" +version = "0.5.6" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.3" [[deps.PackageCompiler]] deps = ["Artifacts", "Glob", "LazyArtifacts", "Libdl", "Pkg", "Printf", "RelocatableFolders", "TOML", "UUIDs", "p7zip_jll"] -git-tree-sha1 = "48d4429862157ad5500c4f61444db1b8c32e0a2b" +git-tree-sha1 = "cc6b349a4189664462469ecfc27b27c369b0c645" uuid = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d" -version = "2.1.17" +version = "2.1.22" [[deps.PackageExtensionCompat]] git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" @@ -1139,6 +1806,24 @@ uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" version = "1.0.2" weakdeps = ["Requires", "TOML"] +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.5.0" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.12" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e127b609fb9ecba6f201ba7ab753d5a605d53801" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.54.1+0" + [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" @@ -1151,16 +1836,38 @@ git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.8.1" +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.43.4+0" + [[deps.Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.10.0" +version = "1.11.0" +weakdeps = ["REPL"] + + [deps.Pkg.extensions] + REPLExt = "REPL" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "3ca9a356cd2e113c420f2c13bea19f8d3fb1cb18" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.3" [[deps.Polyester]] -deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "9ff799e8fb8ed6717710feee3be3bc20645daa97" +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "6d38fea02d983051776a856b7df75b30cf9a3c1f" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.15" +version = "0.7.16" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1168,6 +1875,11 @@ git-tree-sha1 = "645bed98cd47f72f67316fd42fc47dee771aefcd" uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" version = "0.2.2" +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + [[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" @@ -1176,9 +1888,9 @@ version = "1.4.3" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterface", "ForwardDiff"] -git-tree-sha1 = "406c29a7f46706d379a3bce45671b4e3a39ddfbc" +git-tree-sha1 = "6c62ce45f268f3f958821a1e5192cf91c75ae89c" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.22" +version = "0.4.24" [deps.PreallocationTools.extensions] PreallocationToolsReverseDiffExt = "ReverseDiff" @@ -1200,17 +1912,18 @@ version = "1.4.3" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "66b20dd35966a748321d3b2537c4584cf40387c7" +git-tree-sha1 = "1101cd475833706e4d0e7b122218257178f48f34" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.3.2" +version = "2.4.0" [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +version = "1.11.0" [[deps.Profile]] -deps = ["Printf"] uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" +version = "1.11.0" [[deps.ProgressLogging]] deps = ["Logging", "SHA", "UUIDs"] @@ -1218,19 +1931,59 @@ git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" version = "0.1.4" +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "8f6bc219586aef8baf0ff9a5fe16ee9c70cb65e4" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.10.2" + +[[deps.PtrArrays]] +git-tree-sha1 = "77a42d78b6a92df47ab37e177b2deac405e1c88f" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.2.1" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.0" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "cda3b045cf9ef07a08ad46731f5a3165e56cf3da" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.11.1" + + [deps.QuadGK.extensions] + QuadGKEnzymeExt = "Enzyme" + + [deps.QuadGK.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + [[deps.REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +deps = ["InteractiveUtils", "Markdown", "Sockets", "StyledStrings", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +version = "1.11.0" [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +version = "1.11.0" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] -[[deps.ReTestItems]] -deps = ["Dates", "Logging", "LoggingExtras", "Pkg", "Serialization", "Sockets", "Test", "TestEnv"] -git-tree-sha1 = "276cb2fc9c4de5ea62fd50150d9089ab5a40781f" -uuid = "817f1d60-ba6b-4fd5-9520-3cf149f6a823" -version = "1.24.0" + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" [[deps.RecipesBase]] deps = ["PrecompileTools"] @@ -1239,10 +1992,10 @@ uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" version = "1.3.4" [[deps.RecursiveArrayTools]] -deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "3400ce27995422fb88ffcd3af9945565aad947f0" +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "6f4dca5fd8e97087a76b7ab8384d1c3086ace0b7" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.23.1" +version = "3.27.3" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1250,6 +2003,7 @@ version = "3.23.1" RecursiveArrayToolsMeasurementsExt = "Measurements" RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] + RecursiveArrayToolsSparseArraysExt = ["SparseArrays"] RecursiveArrayToolsTrackerExt = "Tracker" RecursiveArrayToolsZygoteExt = "Zygote" @@ -1259,6 +2013,7 @@ version = "3.23.1" Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" @@ -1286,16 +2041,37 @@ uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" [[deps.Revise]] -deps = ["CodeTracking", "Distributed", "FileWatching", "JuliaInterpreter", "LibGit2", "LoweredCodeUtils", "OrderedCollections", "Pkg", "REPL", "Requires", "UUIDs", "Unicode"] -git-tree-sha1 = "85ddd93ea15dcd8493400600e09104a9e94bb18d" +deps = ["CodeTracking", "Distributed", "FileWatching", "JuliaInterpreter", "LibGit2", "LoweredCodeUtils", "OrderedCollections", "REPL", "Requires", "UUIDs", "Unicode"] +git-tree-sha1 = "7f4228017b83c66bd6aa4fddeb170ce487e53bc7" uuid = "295af30f-e4ad-537b-8983-00126c2a3abe" -version = "3.5.15" +version = "3.6.2" [[deps.Ribasim]] -deps = ["Accessors", "Arrow", "BasicModelInterface", "CodecZstd", "ComponentArrays", "Configurations", "DBInterface", "DataInterpolations", "DataStructures", "Dates", "DiffEqCallbacks", "EnumX", "FiniteDiff", "ForwardDiff", "Graphs", "HiGHS", "IterTools", "JuMP", "Legolas", "LinearSolve", "Logging", "LoggingExtras", "MetaGraphsNext", "OrdinaryDiffEq", "PreallocationTools", "SQLite", "SciMLBase", "SmoothInterpolation", "SparseArrays", "StructArrays", "Tables", "TerminalLoggers", "TimerOutputs", "TranscodingStreams"] +deps = ["Accessors", "Arrow", "BasicModelInterface", "CodecZstd", "ComponentArrays", "Configurations", "DBInterface", "DataInterpolations", "DataStructures", "Dates", "DiffEqBase", "DiffEqCallbacks", "EnumX", "FiniteDiff", "Graphs", "HiGHS", "IterTools", "JuMP", "Legolas", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoggingExtras", "MetaGraphsNext", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqTsit5", "PreallocationTools", "SQLite", "SciMLBase", "SparseArrays", "SparseConnectivityTracer", "StructArrays", "Tables", "TerminalLoggers", "TranscodingStreams"] path = "core" uuid = "aac5e3d9-0b8f-4d4f-8241-b1a7a9632635" -version = "2024.9.0" +version = "2024.11.0" +weakdeps = ["DataFrames", "Makie"] + + [deps.Ribasim.extensions] + RibasimMakieExt = ["Makie", "DataFrames"] + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "852bd0f55565a9e973fcfee83a84413270224dc4" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.8.0" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.5.1+0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] @@ -1307,6 +2083,12 @@ version = "0.5.13" uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" +[[deps.SIMD]] +deps = ["PrecompileTools"] +git-tree-sha1 = "98ca7c29edd6fc79cd74c61accb7010a4e7aee33" +uuid = "fdea26ae-647d-5447-a871-4b548cad5224" +version = "3.6.0" + [[deps.SIMDTypes]] git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" uuid = "94e857df-77ce-4151-89e5-788b33177be4" @@ -1331,10 +2113,10 @@ uuid = "76ed43ae-9a5d-5a62-8c75-30186b810ce8" version = "3.45.3+0" [[deps.SciMLBase]] -deps = ["ADTypes", "Accessors", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "281e82f2ae2b73262fed9e7a518711eb7feb7e59" +deps = ["ADTypes", "Accessors", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "Expronicon", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] +git-tree-sha1 = "7a54136472ca0cb0f66ef22aa3f0ff198f379fa7" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.42.0" +version = "2.58.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1355,17 +2137,28 @@ version = "2.42.0" RCall = "6f49c342-dc21-5d91-9882-a32aef131414" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" +[[deps.SciMLJacobianOperators]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DifferentiationInterface", "FastClosures", "LinearAlgebra", "SciMLBase", "SciMLOperators"] +git-tree-sha1 = "f66048bb969e67bd7d1bdd03cd0b81219642bbd0" +uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" +version = "0.1.1" + [[deps.SciMLOperators]] -deps = ["ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools", "Setfield", "SparseArrays", "StaticArraysCore"] -git-tree-sha1 = "10499f619ef6e890f3f4a38914481cc868689cd5" +deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] +git-tree-sha1 = "6149620767866d4b0f0f7028639b6e661b6a1e44" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.3.8" +version = "0.3.12" +weakdeps = ["SparseArrays", "StaticArraysCore"] + + [deps.SciMLOperators.extensions] + SciMLOperatorsSparseArraysExt = "SparseArrays" + SciMLOperatorsStaticArraysCoreExt = "StaticArraysCore" [[deps.SciMLStructures]] deps = ["ArrayInterface"] -git-tree-sha1 = "cfdd1200d150df1d3c055cc72ee6850742e982d7" +git-tree-sha1 = "25514a6f200219cd1073e4ff23a6324e4a7efe64" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.4.1" +version = "1.5.0" [[deps.Scratch]] deps = ["Dates"] @@ -1375,12 +2168,13 @@ version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "90b4f68892337554d31cdcdbe19e48989f26c7e6" +git-tree-sha1 = "d0553ce4031a081cc42387a9b9c8441b7d99f32d" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.3" +version = "1.4.7" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +version = "1.11.0" [[deps.Setfield]] deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] @@ -1388,15 +2182,34 @@ git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" version = "1.1.1" +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "79123bc60c5507f035e6d1d9e563bb2971954ec8" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.4.1" + [[deps.SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +version = "1.11.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "DiffResults", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "58b144f34e44252b2de0acb5a9dbbb7ea5cd75d7" +git-tree-sha1 = "44021f3efc023be3871195d8ad98b865001a2fa1" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "1.10.1" +version = "1.12.3" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" @@ -1421,14 +2234,15 @@ git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" version = "1.1.0" -[[deps.SmoothInterpolation]] -deps = ["DataInterpolations", "FindFirstFunctions", "PrettyTables"] -git-tree-sha1 = "2870c7c22941912749fa593881903a1cd18057fc" -uuid = "4412c578-8aba-4b04-8c8c-6ae573ccb792" -version = "0.1.0" +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.3" [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +version = "1.11.0" [[deps.SoftGlobalScope]] deps = ["REPL"] @@ -1445,13 +2259,33 @@ version = "1.2.1" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -version = "1.10.0" +version = "1.11.0" + +[[deps.SparseConnectivityTracer]] +deps = ["ADTypes", "DocStringExtensions", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] +git-tree-sha1 = "6914df6005bab9940e2a96879a97a43e1fb1ce78" +uuid = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" +version = "0.6.8" + + [deps.SparseConnectivityTracer.extensions] + SparseConnectivityTracerDataInterpolationsExt = "DataInterpolations" + SparseConnectivityTracerLogExpFunctionsExt = "LogExpFunctions" + SparseConnectivityTracerNNlibExt = "NNlib" + SparseConnectivityTracerNaNMathExt = "NaNMath" + SparseConnectivityTracerSpecialFunctionsExt = "SpecialFunctions" + + [deps.SparseConnectivityTracer.weakdeps] + DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" + LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" + NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" + NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" [[deps.SparseDiffTools]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] -git-tree-sha1 = "469f51f8c4741ce944be2c0b65423b518b1405b0" +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "b906758c107b049b6b71599b9f928d9b14e5554a" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.19.0" +version = "2.23.0" [deps.SparseDiffTools.extensions] SparseDiffToolsEnzymeExt = "Enzyme" @@ -1468,10 +2302,14 @@ version = "2.19.0" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.SparseMatrixColorings]] -deps = ["ADTypes", "Compat", "DocStringExtensions", "LinearAlgebra", "Random", "SparseArrays"] -git-tree-sha1 = "eed2446b3c3dd58f6ded3168998b8b2cb3fc9229" +deps = ["ADTypes", "DataStructures", "DocStringExtensions", "LinearAlgebra", "Random", "SparseArrays"] +git-tree-sha1 = "f37f046636f8dc353a39279abfefe296db212171" uuid = "0a514795-09f3-496d-8182-132a7b665d35" -version = "0.3.3" +version = "0.4.8" +weakdeps = ["Colors"] + + [deps.SparseMatrixColorings.extensions] + SparseMatrixColoringsColorsExt = "Colors" [[deps.Sparspak]] deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] @@ -1489,17 +2327,29 @@ weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" +[[deps.StableRNGs]] +deps = ["Random"] +git-tree-sha1 = "83e6cce8324d49dfaf9ef059227f91ed4441a8e5" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.2" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + [[deps.Static]] deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools"] -git-tree-sha1 = "0bbff21027dd8a107551847528127b62a35f7594" +git-tree-sha1 = "87d51a3ee9a4b0d2fe054bdd3fc2436258db2603" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "1.1.0" +version = "1.1.1" [[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "8963e5a083c837531298fc41599182a759a87a6d" +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Static"] +git-tree-sha1 = "96381d50f1ce85f2663584c8e886a6ca97e60554" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.5.1" +version = "1.8.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -1508,9 +2358,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "20833c5b7f7edf0e5026f23db7f268e4f23ec577" +git-tree-sha1 = "777657803913ffc7e8cc20f0fd04b634f871af8f" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.6" +version = "1.9.8" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -1523,9 +2373,37 @@ uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.3" [[deps.Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] +deps = ["LinearAlgebra"] +git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.10.0" +version = "1.11.1" +weakdeps = ["SparseArrays"] + + [deps.Statistics.extensions] + SparseArraysExt = ["SparseArrays"] + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.3" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "b423576adc27097764a90e163157bcfc9acf0f46" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.2" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] @@ -1535,9 +2413,9 @@ version = "0.5.7" [[deps.StringManipulation]] deps = ["PrecompileTools"] -git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" +git-tree-sha1 = "a6b1675a536c5ad1a60e5a5153e1fee12eb146e3" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.4" +version = "0.4.0" [[deps.StructArrays]] deps = ["ConstructionBase", "DataAPI", "Tables"] @@ -1554,9 +2432,13 @@ weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] [[deps.StructTypes]] deps = ["Dates", "UUIDs"] -git-tree-sha1 = "ca4bccb03acf9faaf4137a9abc1881ed1841aa70" +git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8" uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" -version = "1.10.0" +version = "1.11.0" + +[[deps.StyledStrings]] +uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" +version = "1.11.0" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -1565,13 +2447,13 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "7.2.1+1" +version = "7.7.0+0" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "a5f6f138b740c9d93d76f0feddd3092e6ef002b7" +git-tree-sha1 = "20cf607cafb31f922bce84d60379203e7a126911" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.22" +version = "0.3.34" [[deps.TOML]] deps = ["Dates"] @@ -1580,9 +2462,9 @@ version = "1.0.3" [[deps.TZJData]] deps = ["Artifacts"] -git-tree-sha1 = "1607ad46cf8d642aa779a1d45af1c8620dbf6915" +git-tree-sha1 = "36b40607bf2bf856828690e097e1c799623b0602" uuid = "dc5dba14-91b3-4cab-a142-028a31da12f7" -version = "1.2.0+2024a" +version = "1.3.0+2024b" [[deps.TableTraits]] deps = ["IteratorInterfaceExtensions"] @@ -1591,16 +2473,22 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.11.1" +version = "1.12.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + [[deps.TerminalLoggers]] deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" @@ -1610,6 +2498,7 @@ version = "0.1.7" [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +version = "1.11.0" [[deps.TestEnv]] deps = ["Pkg"] @@ -1617,17 +2506,34 @@ git-tree-sha1 = "2a57e05cb9854e7260c354f1bcdbe5190adba19f" uuid = "1e6cf692-eddd-4d53-88a5-2d735e33781b" version = "1.102.0" +[[deps.TestItemRunner]] +deps = ["Pkg", "TOML", "Test", "TestItems", "UUIDs"] +git-tree-sha1 = "29647c5398be04a1d697265ba385bdf3f623c993" +uuid = "f8b46487-2199-4994-9208-9a1283c18c0a" +version = "1.0.5" + +[[deps.TestItems]] +git-tree-sha1 = "42fd9023fef18b9b78c8343a4e2f3813ffbcefcb" +uuid = "1c621080-faea-4a02-84b6-bbd5e436b8fe" +version = "1.0.0" + [[deps.ThreadingUtilities]] deps = ["ManualMemory"] git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" version = "0.5.2" +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] +git-tree-sha1 = "6ee0c220d0aecad18792c277ae358129cc50a475" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.11.0" + [[deps.TimeZones]] deps = ["Dates", "Downloads", "InlineStrings", "Mocking", "Printf", "Scratch", "TZJData", "Unicode", "p7zip_jll"] -git-tree-sha1 = "a6ae8d7a27940c33624f8c7bde5528de21ba730d" +git-tree-sha1 = "33c771f2157712ff4c85931186a4984efbe58934" uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" -version = "1.17.0" +version = "1.19.0" weakdeps = ["RecipesBase"] [deps.TimeZones.extensions] @@ -1635,18 +2541,14 @@ weakdeps = ["RecipesBase"] [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] -git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" +git-tree-sha1 = "3a6f063d690135f5c1ba351412c82bae4d1402bf" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.24" +version = "0.5.25" [[deps.TranscodingStreams]] -git-tree-sha1 = "d73336d81cafdc277ff45558bb7eaa2b04a8e472" +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.10" -weakdeps = ["Random", "Test"] - - [deps.TranscodingStreams.extensions] - TestExt = ["Test", "Random"] +version = "0.11.3" [[deps.TriangularSolve]] deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] @@ -1654,10 +2556,10 @@ git-tree-sha1 = "be986ad9dac14888ba338c2554dcfec6939e1393" uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" version = "0.2.1" -[[deps.Tricks]] -git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" -uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" -version = "0.1.8" +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" [[deps.TruncatedStacktraces]] deps = ["InteractiveUtils", "MacroTools", "Preferences"] @@ -1668,6 +2570,7 @@ version = "1.4.0" [[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" +version = "1.11.0" [[deps.UnPack]] git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" @@ -1676,12 +2579,30 @@ version = "1.0.2" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +version = "1.11.0" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.21.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" [[deps.VectorizationBase]] deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "e7f5b81c65eb858bed630fe006837b935518aca5" +git-tree-sha1 = "4ab62a49f1d8d9548a1c8d1a75e5f55cf196f64e" uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" -version = "0.21.70" +version = "0.21.71" [[deps.VersionParsing]] git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" @@ -1700,17 +2621,95 @@ git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" version = "1.4.2" +[[deps.WebP]] +deps = ["CEnum", "ColorTypes", "FileIO", "FixedPointNumbers", "ImageCore", "libwebp_jll"] +git-tree-sha1 = "f1f6d497ff84039deeb37f264396dac0c2250497" +uuid = "e3aaa7dc-3e4b-44e0-be63-ffb868ccd7c1" +version = "0.1.2" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "6a451c6f33a176150f315726eba8b92fbfdb9ae7" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.13.4+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.41+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "15e637a697345f6743674f1322beefbc5dcd5cfc" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.6.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.6+0" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.11+0" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.17.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + [[deps.ZMQ]] deps = ["FileWatching", "PrecompileTools", "Sockets", "ZeroMQ_jll"] -git-tree-sha1 = "ad6944a6b3dfd8e95920e48355d3baf510319262" +git-tree-sha1 = "18cfd00df3cbbebf8ea4ec7ea6bbceb3af716bd0" uuid = "c2297ded-f4af-51ae-bb23-16f91089e4e1" -version = "1.2.6" +version = "1.3.0" [[deps.ZeroMQ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "libsodium_jll"] -git-tree-sha1 = "42f97fb27394378591666ab0e9cee369e6d0e1f9" +git-tree-sha1 = "f02ce8f0fda1ed40f4d0d59a2ad05e35e8ac9b0e" uuid = "8f1865be-045e-5c20-9c9f-bfbfb0764568" -version = "4.3.5+0" +version = "4.3.5+1" [[deps.Zlib_jll]] deps = ["Libdl"] @@ -1719,25 +2718,73 @@ version = "1.2.13+1" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e678132f07ddb5bfa46857f0d7620fb9be675d3b" +git-tree-sha1 = "555d1076590a6cc2fdee2ef1469451f872d8b41b" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.5.6+0" +version = "1.5.6+1" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.9.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "e17c115d55c5fbb7e52ebedb427a0dca79d4484e" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.2+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.8.0+1" +version = "5.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8a22cf860a7d27e4f3498a0fe0811a7957badb38" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.3+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "b70c870239dc3d7bc094eb2d6be9b73d27bef280" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.44+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] +git-tree-sha1 = "7dfa0fd9c783d3d0cc43ea1af53d69ba45c447df" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.3+1" [[deps.libsodium_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "848ab3d00fe39d6fbc2a8641048f8f272af1c51e" +git-tree-sha1 = "f76d682d87eefadd3f165d8d9fda436464213142" uuid = "a9144af2-ca23-56d9-984f-0d03f7b5ccf8" -version = "1.0.20+0" +version = "1.0.20+1" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+2" + +[[deps.libwebp_jll]] +deps = ["Artifacts", "Giflib_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libglvnd_jll", "Libtiff_jll", "libpng_jll"] +git-tree-sha1 = "ccbb625a89ec6195856a50aa2b668a5c08712c94" +uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2" +version = "1.4.0+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.52.0+1" +version = "1.59.0+0" [[deps.oneTBB_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1749,3 +2796,15 @@ version = "2021.12.0+0" deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "35976a1216d6c066ea32cba2150c4fa682b276fc" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "10164.0.0+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dcc541bb19ed5b0ede95581fb2e41ecf179527d2" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.6.0+0" diff --git a/Project.toml b/Project.toml index c77912ea3..1c5d51394 100644 --- a/Project.toml +++ b/Project.toml @@ -7,7 +7,9 @@ Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45" Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" BasicModelInterface = "59605e27-edc0-445a-b93d-c09a3a50b330" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" CodecZstd = "6b39b394-51ab-5f42-8807-6242bab2b4c2" +Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" Configurations = "5218b696-f38b-4ac9-8b61-a12ec717816d" DBInterface = "a10d1c49-ce27-4219-8d33-6db1a4562965" @@ -15,10 +17,11 @@ DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +FindFirstFunctions = "64ca27bc-2ba2-4a57-88aa-44e436879224" FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" -ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" @@ -29,28 +32,39 @@ InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" IterTools = "c8e1da08-722c-5040-9ed9-7db0dc04731e" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" +JuliaInterpreter = "aa1ae85d-cabe-5617-a682-6adf51b2e16a" Legolas = "741b9549-f6ed-4911-9fbf-4a1c0c97f0cd" LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433" +LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" LoggingExtras = "e6f89c97-d47a-5376-807f-9c37f3926c36" MarkdownTables = "1862ce21-31c7-451e-824c-f20fa3f90fa2" MetaGraphsNext = "fa8bd995-216d-47f1-8a91-f3b68fbeb377" OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +OrdinaryDiffEqBDF = "6ad6398a-0878-4a85-9266-38940aa047c8" +OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" +OrdinaryDiffEqLowOrderRK = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" +OrdinaryDiffEqNonlinearSolve = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" +OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce" +OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" +OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" OteraEngine = "b2d7f28f-acd6-4007-8b26-bc27716e5513" PackageCompiler = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d" PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -ReTestItems = "817f1d60-ba6b-4fd5-9520-3cf149f6a823" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" Ribasim = "aac5e3d9-0b8f-4d4f-8241-b1a7a9632635" SQLite = "0aa819cd-b072-5ff4-a722-6bc24af294d9" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -SmoothInterpolation = "4412c578-8aba-4b04-8c8c-6ae573ccb792" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" TOML = "fa267f1f-6049-4f14-aa54-33bafae1ed76" Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" TestEnv = "1e6cf692-eddd-4d53-88a5-2d735e33781b" -TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" TranscodingStreams = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" + +[sources] +Ribasim = {path = "core"} diff --git a/README.md b/README.md index 221013bd8..bf61c6f62 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![QGIS Tests](https://github.com/Deltares/Ribasim/actions/workflows/qgis.yml/badge.svg)](https://github.com/Deltares/Ribasim/actions/workflows/qgis.yml) [![codecov](https://codecov.io/gh/Deltares/Ribasim/branch/main/graph/badge.svg)](https://codecov.io/gh/Deltares/Ribasim) -**Documentation: https://deltares.github.io/Ribasim/** +**Documentation: https://ribasim.org/** Ribasim is a water resources model, designed to be the replacement of the regional surface water modules Mozart and SIMRES in the Netherlands Hydrological Instrument (NHI). Ribasim is @@ -24,9 +24,8 @@ For most users the [latest release](https://github.com/Deltares/Ribasim/releases - QGIS plugin: [ribasim_qgis.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_qgis.zip). - Generated testmodels: [generated_testmodels.zip](https://github.com/Deltares/Ribasim/releases/latest/download/generated_testmodels.zip) +# Example model -![Timeseries of -results](https://user-images.githubusercontent.com/4471859/179259333-070dfe18-8f43-4ac4-bb38-013b252e2e4b.png) +Ribasim model of the main water distribution network in the Netherlands. -![Daily water -balance](https://user-images.githubusercontent.com/4471859/179259174-0caccd4a-c51b-449e-873c-17d48cfc8870.png) +![model_on_map](https://github.com/user-attachments/assets/5095a4fe-c336-4380-aa0c-851c851d3895) diff --git a/build/README.md b/build/README.md index dfcf79605..a1d196a05 100644 --- a/build/README.md +++ b/build/README.md @@ -7,3 +7,38 @@ pixi run build ``` > :warning: If the build is failing, because it cannot find certain files, chances are high that you need to enable long paths in Windows. + +## Ribasim CLI + +In order to find out about it's usage call `ribasim --help` + +## Libribasim + +Libribasim is a shared library that exposes Ribasim functionality to external (non-Julian) +programs. It can be compiled using [PackageCompiler's +create_lib](https://julialang.github.io/PackageCompiler.jl/stable/libs.html), which is set +up in this directory. The C API that is offered to control Ribasim is the C API of the +[Basic Model Interface](https://bmi.readthedocs.io/en/latest/), also known as BMI. + +Not all BMI functions are implemented yet. +Couplings to other models are implemented in [`imod_coupler`](https://github.com/Deltares/imod_coupler). + +Here is an example of using libribasim from Python: + +```python +In [1]: from ctypes import CDLL, c_int, c_char_p, create_string_buffer, byref + +In [2]: c_dll = CDLL("libribasim", winmode=0x08) # winmode for Windows + +In [3]: argument = create_string_buffer(0) + ...: c_dll.init_julia(c_int(0), byref(argument)) +Out[3]: 1 + +In [4]: config_path = "ribasim.toml" + +In [5]: c_dll.initialize(c_char_p(config_path.encode())) +Out[5]: 0 + +In [6]: c_dll.update() +Out[6]: 0 +``` diff --git a/build/build.jl b/build/build.jl index 6161689b0..8e43d0cae 100644 --- a/build/build.jl +++ b/build/build.jl @@ -3,44 +3,6 @@ using PackageCompiler using TOML using LibGit2 -""" -# Ribasim CLI - -In order to find out about it's usage call `ribasim --help` - -# Libribasim - -Libribasim is a shared library that exposes Ribasim functionality to external (non-Julian) -programs. It can be compiled using [PackageCompiler's -create_lib](https://julialang.github.io/PackageCompiler.jl/stable/libs.html), which is set -up in this directory. The C API that is offered to control Ribasim is the C API of the -[Basic Model Interface](https://bmi.readthedocs.io/en/latest/), also known as BMI. - -Not all BMI functions are implemented yet, this has been set up as a proof of concept to -demonstrate that we can use other software such as -[`imod_coupler`](https://github.com/Deltares/imod_coupler) to control Ribasim and couple it to -other models. - -Here is an example of using libribasim from Python: - -```python -In [1]: from ctypes import CDLL, c_int, c_char_p, create_string_buffer, byref - -In [2]: c_dll = CDLL("libribasim", winmode=0x08) # winmode for Windows - -In [3]: argument = create_string_buffer(0) - ...: c_dll.init_julia(c_int(0), byref(argument)) -Out[3]: 1 - -In [4]: config_path = "ribasim.toml" - -In [5]: c_dll.initialize(c_char_p(config_path.encode())) -Out[5]: 0 - -In [6]: c_dll.update() -Out[6]: 0 -``` -""" function main() project_dir = "../core" license_file = "../LICENSE" @@ -61,23 +23,31 @@ function main() force = true, ) - readme = @doc(build_app) - add_metadata(project_dir, license_file, output_dir, git_repo, readme) + add_metadata(project_dir, license_file, output_dir, git_repo, readme_start) run(Cmd(`cargo build --release`; dir = "cli")) ribasim = Sys.iswindows() ? "ribasim.exe" : "ribasim" cp("cli/target/release/$ribasim", "ribasim/$ribasim"; force = true) end -function set_version(filename, version; group = nothing) +readme_start = """ +# Ribasim + +Ribasim is a water resources model to simulate the physical behavior of a managed open water system +based on a set of control rules and a prioritized water allocation strategy. + +Usage: `ribasim path/to/model/ribasim.toml` +Documentation: https://ribasim.org/ +""" + +"Use the git tag for `ribasim --version`, +so dev builds can be identified by -g" +function set_version(filename::String, tag::String)::Nothing data = TOML.parsefile(filename) - if !isnothing(group) - data[group]["version"] = version - else - data["version"] = version - end + data["package"]["version"] = tag open(filename, "w") do io TOML.print(io, data) end + return nothing end """ @@ -111,15 +81,6 @@ function add_metadata(project_dir, license_file, output_dir, git_repo, readme) force = true, ) - # since the exact Ribasim version may be hard to find in the Manifest.toml file - # we can also extract that information, and add it to the README.md - manifest = TOML.parsefile(normpath(git_repo, "Manifest.toml")) - if !haskey(manifest, "manifest_format") - error("Manifest.toml is in the old format, run Pkg.upgrade_manifest()") - end - julia_version = manifest["julia_version"] - ribasim_entry = only(manifest["deps"]["Ribasim"]) - version = ribasim_entry["version"] repo = GitRepo(git_repo) branch = LibGit2.head(repo) commit = LibGit2.peel(LibGit2.GitCommit, branch) @@ -149,17 +110,15 @@ function add_metadata(project_dir, license_file, output_dir, git_repo, readme) This build uses the Ribasim version mentioned below. ```toml - release = "$tag" + version = "$tag" commit = "$url/$short_commit" branch = "$url/$short_name" - julia_version = "$julia_version" - core_version = "$version" ```""" println(io, version_info) end # Override the Cargo.toml file with the git version - set_version("cli/Cargo.toml", tag; group = "package") + set_version("cli/Cargo.toml", tag) end main() diff --git a/build/cli/Cargo.lock b/build/cli/Cargo.lock index 341e203e6..484bae57b 100644 --- a/build/cli/Cargo.lock +++ b/build/cli/Cargo.lock @@ -144,7 +144,7 @@ dependencies = [ [[package]] name = "ribasim" -version = "2024.9.0" +version = "2024.11.0" dependencies = [ "clap", "libc", diff --git a/build/cli/Cargo.toml b/build/cli/Cargo.toml index aad7202a8..da349088d 100644 --- a/build/cli/Cargo.toml +++ b/build/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ribasim" -version = "2024.9.0" +version = "2024.11.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/build/tests/test_cli.py b/build/tests/test_cli.py index 06b1ce83f..fd849e80f 100644 --- a/build/tests/test_cli.py +++ b/build/tests/test_cli.py @@ -1,3 +1,4 @@ +import re import subprocess from pathlib import Path @@ -30,7 +31,10 @@ def test_version(): [executable, "--version"], check=True, capture_output=True, text=True ) - assert ribasim.__version__ in result.stdout + # ribasim --version is based on the git tag so can be different from + # ribasim.__version__ during development + version_pattern = r"ribasim \d{4,}\.\d+\.\d+" + assert re.match(version_pattern, result.stdout) def test_help(): diff --git a/core/Project.toml b/core/Project.toml index bcaf9c639..51b68a4ad 100644 --- a/core/Project.toml +++ b/core/Project.toml @@ -2,7 +2,7 @@ name = "Ribasim" uuid = "aac5e3d9-0b8f-4d4f-8241-b1a7a9632635" authors = ["Deltares and contributors "] manifest = "../Manifest.toml" -version = "2024.9.0" +version = "2024.11.0" [deps] Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" @@ -15,31 +15,45 @@ DBInterface = "a10d1c49-ce27-4219-8d33-6db1a4562965" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56" FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" -ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" IterTools = "c8e1da08-722c-5040-9ed9-7db0dc04731e" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" Legolas = "741b9549-f6ed-4911-9fbf-4a1c0c97f0cd" +LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" LoggingExtras = "e6f89c97-d47a-5376-807f-9c37f3926c36" MetaGraphsNext = "fa8bd995-216d-47f1-8a91-f3b68fbeb377" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +OrdinaryDiffEqBDF = "6ad6398a-0878-4a85-9266-38940aa047c8" +OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" +OrdinaryDiffEqLowOrderRK = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" +OrdinaryDiffEqNonlinearSolve = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" +OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce" +OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" +OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a" PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46" SQLite = "0aa819cd-b072-5ff4-a722-6bc24af294d9" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -SmoothInterpolation = "4412c578-8aba-4b04-8c8c-6ae573ccb792" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" -TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" TranscodingStreams = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +[weakdeps] +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + +[extensions] +RibasimMakieExt = ["Makie", "DataFrames"] + [compat] Accessors = "0.1" Aqua = "0.8" @@ -51,36 +65,45 @@ ComponentArrays = "0.13, 0.14, 0.15" Configurations = "0.17" DBInterface = "2.4" DataFrames = "1.4" -DataInterpolations = "=5.2.0" +DataInterpolations = "6.5" DataStructures = "0.18" -Dates = "<0.0.1, 1" -DiffEqCallbacks = "3.6" +Dates = "1" +DiffEqBase = "6.155" +DiffEqCallbacks = "3.6, 4" EnumX = "1.0" FiniteDiff = "2.21" -ForwardDiff = "0.10" Graphs = "1.9" HiGHS = "1.7" IOCapture = "0.2" IterTools = "1.4" JuMP = "1.15" Legolas = "0.5" +LineSearches = "7" +LinearAlgebra = "1" LinearSolve = "2.24" -Logging = "<0.0.1, 1" +Logging = "1" LoggingExtras = "1" +Makie = "0.21" MetaGraphsNext = "0.6, 0.7" -OrdinaryDiffEq = "6.7" +OrdinaryDiffEqBDF = "1.1" +OrdinaryDiffEqCore = "1.3" +OrdinaryDiffEqLowOrderRK = "1.1" +OrdinaryDiffEqNonlinearSolve = "1.1" +OrdinaryDiffEqRosenbrock = "1.1" +OrdinaryDiffEqSDIRK = "1.1" +OrdinaryDiffEqTsit5 = "1.1" PreallocationTools = "0.4" -ReTestItems = "1.20" SQLite = "1.5.1" SciMLBase = "2.36" -SmoothInterpolation = "0.1.0" -SparseArrays = "<0.0.1, 1" -StructArrays = "0.6.13" -TOML = "<0.0.1, 1" +SparseArrays = "1" +SparseConnectivityTracer = "0.6.8" +Statistics = "1" +StructArrays = "0.6.13, 0.7" +TOML = "1" Tables = "1" TerminalLoggers = "0.1.7" -Test = "<0.0.1, 1" -TimerOutputs = "0.5" +Test = "1" +TestItemRunner = "1" TranscodingStreams = "0.9, 0.10, 0.11" julia = "1.10" @@ -90,23 +113,14 @@ CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" IOCapture = "b5f81e59-6552-4d32-b1f0-c071b021bf89" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" -ReTestItems = "817f1d60-ba6b-4fd5-9520-3cf149f6a823" +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" TOML = "fa267f1f-6049-4f14-aa54-33bafae1ed76" TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" [preferences.LinearSolve] LoadMKL_JLL = false -[preferences.OrdinaryDiffEq] -PrecompileAutoSpecialize = false -PrecompileAutoSwitch = false -PrecompileDefaultSpecialize = false -PrecompileFunctionWrapperSpecialize = false -PrecompileLowStorage = false -PrecompileNoSpecialize = false -PrecompileNonStiff = false -PrecompileStiff = false - [targets] -test = ["Aqua", "CSV", "DataFrames", "IOCapture", "Logging", "ReTestItems", "TerminalLoggers", "Test", "TOML"] +test = ["Aqua", "CSV", "DataFrames", "IOCapture", "Logging", "Statistics", "TerminalLoggers", "Test", "TOML", "TestItemRunner"] diff --git a/core/ext/RibasimMakieExt.jl b/core/ext/RibasimMakieExt.jl new file mode 100644 index 000000000..7c21330ae --- /dev/null +++ b/core/ext/RibasimMakieExt.jl @@ -0,0 +1,48 @@ +module RibasimMakieExt +using DataFrames: DataFrame +using Makie: Figure, Axis, scatterlines!, axislegend +using Ribasim: Ribasim, Model + +function Ribasim.plot_basin_data!(model::Model, ax::Axis, column::Symbol) + basin_data = DataFrame(Ribasim.basin_table(model)) + for node_id in unique(basin_data.node_id) + group = filter(:node_id => ==(node_id), basin_data) + scatterlines!(ax, group.time, getproperty(group, column); label = "Basin #$node_id") + end + + axislegend(ax) + return nothing +end + +function Ribasim.plot_basin_data(model::Model) + f = Figure() + ax1 = Axis(f[1, 1]; ylabel = "level [m]") + ax2 = Axis(f[2, 1]; xlabel = "time", ylabel = "storage [m³]") + Ribasim.plot_basin_data!(model, ax1, :level) + Ribasim.plot_basin_data!(model, ax2, :storage) + f +end + +function Ribasim.plot_flow!(model::Model, ax::Axis, edge_metadata::Ribasim.EdgeMetadata) + flow_data = DataFrame(Ribasim.flow_table(model)) + flow_data = filter(:edge_id => ==(edge_metadata.id), flow_data) + label = "$(edge_metadata.edge[1]) → $(edge_metadata.edge[2])" + scatterlines!(ax, flow_data.time, flow_data.flow_rate; label) + return nothing +end + +function Ribasim.plot_flow(model::Model; skip_conservative_out = true) + f = Figure() + ax = Axis(f[1, 1]; xlabel = "time", ylabel = "flow rate [m³s⁻¹]") + for edge_metadata in values(model.integrator.p.graph.edge_data) + if skip_conservative_out && + edge_metadata.edge[1].type in Ribasim.conservative_nodetypes + continue + end + Ribasim.plot_flow!(model, ax, edge_metadata) + end + axislegend(ax) + f +end + +end # module RibasimMakieExt diff --git a/core/integration_test/hws_integration_test.jl b/core/integration_test/hws_integration_test.jl new file mode 100644 index 000000000..1fc1110f3 --- /dev/null +++ b/core/integration_test/hws_integration_test.jl @@ -0,0 +1,60 @@ +@testitem "HWS model integration test" begin + using SciMLBase: successful_retcode + using Dates + using Statistics + using Arrow + using TOML + include(joinpath(@__DIR__, "../test/utils.jl")) + + toml_path = normpath(@__DIR__, "../../models/integration.toml") + @test ispath(toml_path) + model = Ribasim.run(toml_path) + @test model isa Ribasim.Model + @test successful_retcode(model) + + basin_bytes_bench = + read(normpath(@__DIR__, "../../models/hws_2024_7_0/benchmark/basin_state.arrow")) + basin_bench = Arrow.Table(basin_bytes_bench) + + basin_bytes = + read(normpath(dirname(toml_path), model.config.results_dir, "basin_state.arrow")) + basin = Arrow.Table(basin_bytes) + + @testset "Results values" begin + @test basin.node_id == basin_bench.node_id + @test all(q -> abs(q) < 0.2, basin.level - basin_bench.level) + end + + diff = basin.level - basin_bench.level + + timed = @timed Ribasim.run(toml_path) + dt = Millisecond(round(Int, timed.time * 1000)) + Time(0) + + @tcstatistic "time" timed.time + @tcstatistic "min_diff" minimum(diff) + @tcstatistic "max_diff" maximum(diff) + @tcstatistic "med_diff" median(diff) + + data = Dict( + "time" => timed.time, + "min_diff" => minimum(diff), + "max_diff" => maximum(diff), + "med_diff" => median(diff), + ) + open(joinpath(@__DIR__, "../../data/integration.toml"), "w") do io + TOML.print(io, data) + end + + # current benchmark in seconds, TeamCity is up to 4x slower than local + benchmark_runtime = 32 + performance_diff = + round((timed.time - benchmark_runtime) / benchmark_runtime * 100; digits = 2) + if performance_diff < 0.0 + performance_diff = abs(performance_diff) + @tcstatus "Runtime is $(dt) and it is $performance_diff % faster than benchmark" + elseif performance_diff > 0.0 && performance_diff < 0.2 + @tcstatus "Runtime is $(dt) and it is $performance_diff % slower than benchmark" + else + @tcstatus "Runtime is $(dt) and it is $performance_diff % slower than benchmark, close to fail the benchmark" + end +end diff --git a/core/regression_test/regression_test.jl b/core/regression_test/regression_test.jl new file mode 100644 index 000000000..cb5b4bb91 --- /dev/null +++ b/core/regression_test/regression_test.jl @@ -0,0 +1,247 @@ +@testitem "regression_ode_solvers_trivial" begin + using SciMLBase: successful_retcode + import Arrow + using Ribasim + + toml_path = normpath(@__DIR__, "../../generated_testmodels/trivial/ribasim.toml") + @test ispath(toml_path) + config = Ribasim.Config(toml_path) + + solver_list = + ["QNDF", "Rosenbrock23", "TRBDF2", "Rodas5P", "KenCarp4", "Tsit5", "ImplicitEuler"] + sparse_on = [true, false] + autodiff_on = [true, false] + + @testset "$solver" for solver in solver_list + @testset "sparse density is $sparse_on_off" for sparse_on_off in sparse_on + @testset "auto differentiation is $autodiff_on_off" for autodiff_on_off in + autodiff_on + config = Ribasim.Config( + toml_path; + solver_algorithm = solver, + solver_sparse = sparse_on_off, + solver_autodiff = autodiff_on_off, + ) + model = Ribasim.run(config) + @test model isa Ribasim.Model + @test successful_retcode(model) + (; p) = model.integrator + + # read all results as bytes first to avoid memory mapping + # which can have cleanup issues due to file locking + flow_bytes = read(normpath(dirname(toml_path), "results/flow.arrow")) + basin_bytes = read(normpath(dirname(toml_path), "results/basin.arrow")) + # subgrid_bytes = read(normpath(dirname(toml_path), "results/subgrid_level.arrow")) + + flow = Arrow.Table(flow_bytes) + basin = Arrow.Table(basin_bytes) + # subgrid = Arrow.Table(subgrid_bytes) + + @testset "Results values" begin + @test basin.storage[1] ≈ 1.0f0 + @test basin.level[1] ≈ 0.044711584f0 + @test basin.storage[end] ≈ 16.530443267f0 + @test basin.level[end] ≈ 0.181817438 + @test flow.flow_rate[1] ≈ basin.outflow_rate[1] + @test all(q -> abs(q) < 1e-7, basin.balance_error) + @test all(err -> abs(err) < 0.01, basin.relative_error) + end + end + end + end +end + +@testitem "regression_ode_solvers_basic" begin + using SciMLBase: successful_retcode + import Arrow + using Ribasim + using Statistics + include(joinpath(@__DIR__, "../test/utils.jl")) + + toml_path = normpath(@__DIR__, "../../generated_testmodels/basic/ribasim.toml") + @test ispath(toml_path) + config = Ribasim.Config(toml_path) + + flow_bytes_bench = read(normpath(@__DIR__, "../../models/benchmark/basic/flow.arrow")) + basin_bytes_bench = read(normpath(@__DIR__, "../../models/benchmark/basic/basin.arrow")) + flow_bench = Arrow.Table(flow_bytes_bench) + basin_bench = Arrow.Table(basin_bytes_bench) + + solver_list = ["QNDF"] + sparse_on = [true, false] + autodiff_on = [true, false] + + @testset "$solver" for solver in solver_list + @testset "sparse density is $sparse_on_off" for sparse_on_off in sparse_on + @testset "auto differentiation is $autodiff_on_off" for autodiff_on_off in + autodiff_on + config = Ribasim.Config( + toml_path; + solver_algorithm = solver, + solver_sparse = sparse_on_off, + solver_autodiff = autodiff_on_off, + ) + model = Ribasim.run(config) + @test model isa Ribasim.Model + @test successful_retcode(model) + (; p) = model.integrator + + # read all results as bytes first to avoid memory mapping + # which can have cleanup issues due to file locking + flow_bytes = read(normpath(dirname(toml_path), "results/flow.arrow")) + basin_bytes = read(normpath(dirname(toml_path), "results/basin.arrow")) + + flow = Arrow.Table(flow_bytes) + basin = Arrow.Table(basin_bytes) + + # Testbench for flow.arrow + @test flow.time == flow_bench.time + @test flow.edge_id == flow_bench.edge_id + @test flow.from_node_id == flow_bench.from_node_id + @test flow.to_node_id == flow_bench.to_node_id + @test all(q -> abs(q) < 0.01, flow.flow_rate - flow_bench.flow_rate) + + # Testbench for basin.arrow + @test basin.time == basin_bench.time + @test basin.node_id == basin_bench.node_id + + # The storage seems to failing the most, so let's report it for now + sdiff = basin.storage - basin_bench.storage + key = "basic.$solver.$sparse_on_off.$autodiff_on_off" + @tcstatistic "$key.min_diff" minimum(sdiff) + @tcstatistic "$key.max_diff" maximum(sdiff) + @tcstatistic "$key.med_diff" median(sdiff) + + @test all(q -> abs(q) < 1.0, basin.storage - basin_bench.storage) + @test all(q -> abs(q) < 0.5, basin.level - basin_bench.level) + @test all(q -> abs(q) < 1e-3, basin.balance_error) + @test all(err -> abs(err) < 2.5, basin.relative_error) + end + end + end +end + +@testitem "regression_ode_solvers_pid_control" begin + using SciMLBase: successful_retcode + import Arrow + using Ribasim + + toml_path = normpath(@__DIR__, "../../generated_testmodels/pid_control/ribasim.toml") + @test ispath(toml_path) + config = Ribasim.Config(toml_path) + + flow_bytes_bench = + read(normpath(@__DIR__, "../../models/benchmark/pid_control/flow.arrow")) + basin_bytes_bench = + read(normpath(@__DIR__, "../../models/benchmark/pid_control/basin.arrow")) + flow_bench = Arrow.Table(flow_bytes_bench) + basin_bench = Arrow.Table(basin_bytes_bench) + + # TODO "Rosenbrock23" and "Rodas5P" solver are resulting unsolvable gradients + solver_list = ["QNDF"] + sparse_on = [true, false] + autodiff_on = [true, false] + + @testset "$solver" for solver in solver_list + @testset "sparse density is $sparse_on_off" for sparse_on_off in sparse_on + @testset "auto differentiation is $autodiff_on_off" for autodiff_on_off in + autodiff_on + config = Ribasim.Config( + toml_path; + solver_algorithm = solver, + solver_sparse = sparse_on_off, + solver_autodiff = autodiff_on_off, + ) + model = Ribasim.run(config) + @test model isa Ribasim.Model + @test successful_retcode(model) + (; p) = model.integrator + + # read all results as bytes first to avoid memory mapping + # which can have cleanup issues due to file locking + flow_bytes = read(normpath(dirname(toml_path), "results/flow.arrow")) + basin_bytes = read(normpath(dirname(toml_path), "results/basin.arrow")) + + flow = Arrow.Table(flow_bytes) + basin = Arrow.Table(basin_bytes) + + # Testbench for flow.arrow + @test flow.time == flow_bench.time + @test flow.edge_id == flow_bench.edge_id + @test flow.from_node_id == flow_bench.from_node_id + @test flow.to_node_id == flow_bench.to_node_id + @test all(q -> abs(q) < 0.01, flow.flow_rate - flow_bench.flow_rate) + + # Testbench for basin.arrow + @test basin.time == basin_bench.time + @test basin.node_id == basin_bench.node_id + @test all(q -> abs(q) < 100.0, basin.storage - basin_bench.storage) + @test all(q -> abs(q) < 0.5, basin.level - basin_bench.level) + @test all(err -> abs(err) < 1e-3, basin.balance_error) + end + end + end +end + +@testitem "regression_ode_solvers_allocation" begin + using SciMLBase: successful_retcode + import Arrow + using Ribasim + + toml_path = normpath( + @__DIR__, + "../../generated_testmodels/subnetworks_with_sources/ribasim.toml", + ) + @test ispath(toml_path) + config = Ribasim.Config(toml_path) + + flow_bytes_bench = read( + normpath(@__DIR__, "../../models/benchmark/subnetworks_with_sources/flow.arrow"), + ) + basin_bytes_bench = read( + normpath(@__DIR__, "../../models/benchmark/subnetworks_with_sources/basin.arrow"), + ) + flow_bench = Arrow.Table(flow_bytes_bench) + basin_bench = Arrow.Table(basin_bytes_bench) + + solver_list = ["QNDF"] + # false sparse or autodiff can cause large differences in result, thus removed + sparse_on = [true] + autodiff_on = [true] + + @testset "$solver" for solver in solver_list + @testset "sparse density is $sparse_on_off" for sparse_on_off in sparse_on + @testset "auto differentiation is $autodiff_on_off" for autodiff_on_off in + autodiff_on + config = Ribasim.Config( + toml_path; + solver_algorithm = solver, + solver_sparse = sparse_on_off, + solver_autodiff = autodiff_on_off, + ) + model = Ribasim.run(config) + @test model isa Ribasim.Model + @test successful_retcode(model) + (; p) = model.integrator + + # read all results as bytes first to avoid memory mapping + # which can have cleanup issues due to file locking + flow_bytes = read(normpath(dirname(toml_path), "results/flow.arrow")) + basin_bytes = read(normpath(dirname(toml_path), "results/basin.arrow")) + + flow = Arrow.Table(flow_bytes) + basin = Arrow.Table(basin_bytes) + + # Testbench for flow.arrow + @test flow.time == flow_bench.time + @test flow.edge_id == flow_bench.edge_id + @test flow.from_node_id == flow_bench.from_node_id + @test flow.to_node_id == flow_bench.to_node_id + + # Testbench for basin.arrow + @test basin.time == basin_bench.time + @test basin.node_id == basin_bench.node_id + end + end + end +end diff --git a/core/src/Ribasim.jl b/core/src/Ribasim.jl index 170d8a12b..f33f1045c 100644 --- a/core/src/Ribasim.jl +++ b/core/src/Ribasim.jl @@ -14,32 +14,111 @@ For more granular access, see: """ module Ribasim -import BasicModelInterface as BMI -import HiGHS -import IterTools +# Algorithms for solving ODEs. +using OrdinaryDiffEqCore: + OrdinaryDiffEqCore, + OrdinaryDiffEqRosenbrockAdaptiveAlgorithm, + get_du, + AbstractNLSolver, + calculate_residuals! +using DiffEqBase: DiffEqBase +using OrdinaryDiffEqNonlinearSolve: OrdinaryDiffEqNonlinearSolve, relax!, _compute_rhs! +using LineSearches: BackTracking + +# Interface for defining and solving the ODE problem of the physical layer. +using SciMLBase: + init, + solve!, + step!, + check_error!, + SciMLBase, + ReturnCode, + successful_retcode, + CallbackSet, + ODEFunction, + ODEProblem, + ODESolution, + VectorContinuousCallback, + get_proposed_dt, + DEIntegrator + +# Automatically detecting the sparsity pattern of the Jacobian of water_balance! +# through operator overloading +using SparseConnectivityTracer: TracerSparsityDetector, jacobian_sparsity, GradientTracer + +# For efficient sparse computations +using SparseArrays: SparseMatrixCSC, spzeros + +# Linear algebra +using LinearAlgebra: mul! + +# PreallocationTools is used because the RHS function (water_balance!) gets called with different input types +# for u, du: +# - Float64 for normal calls +# - Dual numbers for automatic differentiation with ForwardDiff +# - GradientTracer for automatic Jacobian sparsity detection with SparseConnectivityTracer +# The computations inside the rhs go trough preallocated arrays of the required type which are created by LazyBufferCache. +# Retrieving a cache from a LazyBufferCache looks like indexing: https://docs.sciml.ai/PreallocationTools/stable/#LazyBufferCache +using PreallocationTools: LazyBufferCache + +# Interpolation functionality, used for e.g. +# basin profiles and TabulatedRatingCurve. See also the node +# references in the docs. +using DataInterpolations: + LinearInterpolation, + LinearInterpolationIntInv, + invert_integral, + derivative, + integral, + AbstractInterpolation + +# Modeling language for Mathematical Optimization. +# Used for allocation, see the docs: https://ribasim.org/dev/allocation.html import JuMP -import LoggingExtras -import TranscodingStreams +# The optimization backend of JuMP. +import HiGHS -using Accessors: @set +# The BMI is a standard for interacting with a Ribasim model, +# see the docs: https://ribasim.org/dev/bmi.html +import BasicModelInterface as BMI + +# Reading and writing optionally compressed Arrow tables using Arrow: Arrow, Table +import TranscodingStreams using CodecZstd: ZstdCompressor -using ComponentArrays: ComponentVector -using DataInterpolations: LinearInterpolation, derivative, integral -using Dates: Dates, DateTime, Millisecond, @dateformat_str +# Reading GeoPackage files, which are SQLite databases with spatial data +using SQLite: SQLite, DB, Query, esc_id using DBInterface: execute + +# Logging to both the console and a file +using Logging: with_logger, @logmsg, LogLevel, AbstractLogger +import LoggingExtras +using TerminalLoggers: TerminalLogger + +# Convenience wrapper around arrays, divides vectors in +# separate sections which can be indexed individually. +# Used for e.g. Basin forcing and the state vector. +using ComponentArrays: ComponentVector, ComponentArray, Axis, getaxes + +# Date and time handling; externally we use the proleptic Gregorian calendar, +# internally we use a Float64; seconds since the start of the simulation. +using Dates: Dates, DateTime, Millisecond, @dateformat_str + +# Callbacks are used to trigger function calls at specific points in the similation. +# E.g. after each timestep for discrete control, +# or at each saveat for saving storage and flow results. using DiffEqCallbacks: FunctionCallingCallback, PeriodicCallback, PresetTimeCallback, SavedValues, SavingCallback -using EnumX: EnumX, @enumx -using ForwardDiff: pickchunksize + +# The network defined by the Node and Edge table is converted to a graph internally. using Graphs: DiGraph, Edge, edges, inneighbors, nv, outneighbors, induced_subgraph, is_connected -using Legolas: Legolas, @schema, @version, validate, SchemaVersion, declared -using Logging: with_logger, LogLevel, AbstractLogger +# Convenience functionality built on top of Graphs. Used to store e.g. node and edge metadata +# alongside the graph. Extra metadata is stored in a NamedTuple retrieved as graph[]. using MetaGraphsNext: MetaGraphsNext, MetaGraph, @@ -48,34 +127,29 @@ using MetaGraphsNext: labels, outneighbor_labels, inneighbor_labels -using OrdinaryDiffEq: OrdinaryDiffEq, OrdinaryDiffEqRosenbrockAdaptiveAlgorithm, get_du -using PreallocationTools: DiffCache, get_tmp -using SciMLBase: - init, - solve!, - step!, - check_error!, - SciMLBase, - ReturnCode, - successful_retcode, - CallbackSet, - ODEFunction, - ODEProblem, - ODESolution, - VectorContinuousCallback, - get_proposed_dt -using SmoothInterpolation -using SparseArrays: SparseMatrixCSC, spzeros -using SQLite: SQLite, DB, Query, esc_id -using StructArrays: StructVector + +# Improved enumeration type compared to Base, used for e.g. node types. +using EnumX: EnumX, @enumx + +# Easily change an immutable field of an object. +using Accessors: @set, @reset + +# Iteration utilities, used to partition and group tables. +import IterTools + +# Define and validate the schemas of the input tables. +using Legolas: Legolas, @schema, @version, validate, SchemaVersion, declared + +# Tables interface that works with either SQLite or Arrow tables. using Tables: Tables, AbstractRow, columntable -using TerminalLoggers: TerminalLogger -using TimerOutputs: TimerOutputs, TimerOutput, @timeit_debug -export libribasim +# Wrapper around a vector of structs to easily retrieve the same field from all elements. +using StructArrays: StructVector + +# OrderedSet is used to store the order of the substances in the network. +using DataStructures: OrderedSet -const to = TimerOutput() -TimerOutputs.complement!() +export libribasim include("schema.jl") include("config.jl") @@ -87,14 +161,20 @@ include("logging.jl") include("allocation_init.jl") include("allocation_optim.jl") include("util.jl") -include("sparsity.jl") include("graph.jl") include("model.jl") include("read.jl") include("write.jl") include("bmi.jl") include("callback.jl") +include("concentration.jl") include("main.jl") include("libribasim.jl") +# Define names used in Makie extension +function plot_basin_data end +function plot_basin_data! end +function plot_flow end +function plot_flow! end + end # module Ribasim diff --git a/core/src/allocation_init.jl b/core/src/allocation_init.jl index 6f506eca5..44582e8ed 100644 --- a/core/src/allocation_init.jl +++ b/core/src/allocation_init.jl @@ -3,7 +3,7 @@ function find_subnetwork_connections!(p::Parameters)::Nothing (; allocation, graph, allocation) = p n_priorities = length(allocation.priorities) (; subnetwork_demands, subnetwork_allocateds) = allocation - # Find edges where the source node has subnetwork id 1 and the + # Find edges (node_id, outflow_id) where the source node has subnetwork id 1 and the # destination node subnetwork id ≠1 for node_id in graph[].node_ids[1] for outflow_id in outflow_ids(graph, node_id) @@ -22,8 +22,25 @@ function find_subnetwork_connections!(p::Parameters)::Nothing return nothing end +function get_main_network_connections( + p::Parameters, + subnetwork_id::Int32, +)::Vector{Tuple{NodeID, NodeID}} + (; allocation) = p + (; subnetwork_ids, main_network_connections) = allocation + idx = findsorted(subnetwork_ids, subnetwork_id) + if isnothing(idx) + error("Invalid allocation network ID $subnetwork_id.") + else + return main_network_connections[idx] + end + return +end + """ -Get the fixed capacity of the edges in the subnetwork +Get the fixed capacity (∈[0,∞]) of the edges in the subnetwork in a JuMP.Containers.SparseAxisArray, +which is a type of sparse arrays that in this case takes NodeID in stead of Int as indices. +E.g. capacity[(node_a, node_b)] gives the capacity of edge (node_a, node_b). """ function get_subnetwork_capacity( p::Parameters, @@ -61,6 +78,7 @@ function get_subnetwork_capacity( capacity_edge = min(capacity_edge, capacity_node_dst) end + # Set the capacity capacity[edge_metadata.edge] = capacity_edge # If allowed by the nodes from this edge, @@ -82,7 +100,7 @@ const allocation_source_nodetypes = """ Add the edges connecting the main network work to a subnetwork to both the main network -and subnetwork allocation network. +and subnetwork allocation network (defined by their capacity objects). """ function add_subnetwork_connections!( capacity::JuMP.Containers.SparseAxisArray{Float64, 2, Tuple{NodeID, NodeID}}, @@ -151,6 +169,8 @@ function add_variables_basin!( subnetwork_id::Int32, )::Nothing (; graph) = p + + # Get the node IDs from the subnetwork for basins that have a level demand node_ids_basin = [ node_id for node_id in graph[].node_ids[subnetwork_id] if graph[node_id].type == :basin && @@ -313,7 +333,8 @@ function add_constraints_conservation_node!( for node_id in node_ids - # No flow conservation constraint on sources/sinks + # If a node is a source or a sink (i.e. a boundary node), + # there is no flow conservation on that node is_source_sink = node_id.type in [NodeType.FlowBoundary, NodeType.LevelBoundary, NodeType.UserDemand] @@ -368,6 +389,56 @@ function add_constraints_conservation_node!( return nothing end +""" +Add the fractional flow constraints to the allocation problem. +The constraint indices are allocation edges over a fractional flow node. + +Constraint: +flow after fractional_flow node <= fraction * inflow +""" +function add_constraints_fractional_flow!( + problem::JuMP.Model, + p::Parameters, + subnetwork_id::Int32, +)::Nothing + (; graph, fractional_flow) = p + F = problem[:F] + node_ids = graph[].node_ids[subnetwork_id] + + # Find the nodes in this subnetwork with a FractionalFlow + # outneighbor, and collect the corresponding flow fractions + # and inflow variable + edges_to_fractional_flow = Tuple{NodeID, NodeID}[] + fractions = Dict{Tuple{NodeID, NodeID}, Float64}() + inflows = Dict{NodeID, JuMP.AffExpr}() + + # Find edges of the form (node_id, outflow_id) where outflow_id + # is for a FractionalFlow node + for node_id in node_ids + for outflow_id in outflow_ids(graph, node_id) + if outflow_id.type == NodeType.FractionalFlow + edge = (node_id, outflow_id) + push!(edges_to_fractional_flow, edge) + fractions[edge] = fractional_flow.fraction[outflow_id.idx] + inflows[node_id] = sum([ + F[(inflow_id, node_id)] for inflow_id in inflow_ids(graph, node_id) + ]) + end + end + end + + # Create the constraints if there is at least one + if !isempty(edges_to_fractional_flow) + problem[:fractional_flow] = JuMP.@constraint( + problem, + [edge = edges_to_fractional_flow], + F[edge] <= fractions[edge] * inflows[edge[1]], + base_name = "fractional_flow" + ) + end + return nothing +end + """ Add the Basin flow constraints to the allocation problem. The constraint indices are the Basin node IDs. @@ -492,6 +563,7 @@ function AllocationModel( )::AllocationModel capacity = get_capacity(p, subnetwork_id) problem = allocation_problem(p, capacity, subnetwork_id) + flow_priority = JuMP.Containers.SparseAxisArray(Dict(only(problem[:F].axes) .=> 0.0)) - return AllocationModel(; subnetwork_id, capacity, problem, Δt_allocation) + return AllocationModel(; subnetwork_id, capacity, flow_priority, problem, Δt_allocation) end diff --git a/core/src/allocation_optim.jl b/core/src/allocation_optim.jl index bb520208e..23b83d8ca 100644 --- a/core/src/allocation_optim.jl +++ b/core/src/allocation_optim.jl @@ -40,10 +40,12 @@ function set_objective_priority!( (; main_network_connections, subnetwork_demands) = allocation F = problem[:F] + # Initialize an empty quadratic expression for the objective ex = JuMP.QuadExpr() - # Terms for subnetworks as UserDemand + # Terms for subnetworks acting as UserDemand on the main network if is_main_network(subnetwork_id) + # Loop over the connections between main and subnetwork for connections_subnetwork in main_network_connections[2:end] for connection in connections_subnetwork d = subnetwork_demands[connection][priority_idx] @@ -53,7 +55,7 @@ function set_objective_priority!( end end - # Terms for UserDemand nodes and LevelDemand nodes + # Terms for UserDemand nodes and FlowDemand nodes for edge in keys(capacity.data) to_node_id = edge[2] @@ -91,6 +93,7 @@ function set_objective_priority!( add_objective_term!(ex, d, F_ld) end + # Add the new objective to the problem new_objective = JuMP.@expression(problem, ex) JuMP.@objective(problem, Min, new_objective) return nothing @@ -303,14 +306,12 @@ function get_basin_data( u::ComponentVector, node_id::NodeID, ) - (; graph, basin, allocation) = p - (; vertical_flux) = basin + (; graph, allocation, basin) = p (; Δt_allocation) = allocation_model (; mean_input_flows) = allocation @assert node_id.type == NodeType.Basin - vertical_flux = get_tmp(vertical_flux, 0) influx = mean_input_flows[(node_id, node_id)][] - storage_basin = u.storage[node_id.idx] + storage_basin = basin.current_properties.current_storage[parent(u)][node_id.idx] control_inneighbors = inneighbor_labels_type(graph, node_id, EdgeType.control) if isempty(control_inneighbors) level_demand_idx = 0 @@ -343,7 +344,11 @@ function get_basin_capacity( return 0.0 else level_max = level_demand.max_level[level_demand_idx](t) - storage_max = get_storage_from_level(p.basin, basin_idx, level_max) + if isinf(level_max) + storage_max = Inf + else + storage_max = get_storage_from_level(p.basin, basin_idx, level_max) + end return max(0.0, (storage_basin - storage_max) / Δt_allocation + influx) end end @@ -457,7 +462,7 @@ function set_initial_demands_level!( )::Nothing (; subnetwork_id, problem) = allocation_model (; graph, basin) = p - (; node_id, demand) = basin + (; demand) = basin node_ids_level_demand = only(problem[:basin_outflow].axes) @@ -492,6 +497,7 @@ to the capacity of the outflow source. function adjust_capacities_returnflow!( allocation_model::AllocationModel, p::Parameters, + t::Float64, )::Nothing (; graph, user_demand) = p (; problem) = allocation_model @@ -502,7 +508,7 @@ function adjust_capacities_returnflow!( constraint = constraints_outflow[node_id] capacity = JuMP.normalized_rhs(constraint) + - user_demand.return_factor[node_id.idx] * + user_demand.return_factor[node_id.idx](t) * JuMP.value(F[(inflow_id(graph, node_id), node_id)]) JuMP.set_normalized_rhs(constraint, capacity) @@ -554,7 +560,7 @@ function adjust_demands!( ::LevelDemand, )::Nothing (; graph, basin) = p - (; node_id, demand) = basin + (; demand) = basin (; subnetwork_id, problem) = allocation_model F_basin_in = problem[:F_basin_in] @@ -604,6 +610,8 @@ function adjust_demands!( F = problem[:F] for node_id in flow_demand.node_id + + # Only update data for FlowDemand nodes in the current subnetwork if graph[node_id].subnetwork_id != subnetwork_id continue end @@ -649,6 +657,9 @@ function adjust_capacities_buffer!(allocation_model::AllocationModel)::Nothing for node_id in only(constraints_flow_buffer.axes) constraint = constraints_flow_buffer[node_id] + + # The capacity should not be able to get below 0, but can get to small negative numbers, + # probably due to floating point errors. Therefore new_capacity = max(0, new_capacity) is applied. buffer_capacity = max( 0.0, JuMP.normalized_rhs(constraint) + JuMP.value(F_flow_buffer_in[node_id]) - @@ -663,6 +674,10 @@ end Set the capacity of the outflow edge from a node with a flow demand: - To Inf if the current priority is other than the priority of the flow demand - To 0.0 if the current priority is equal to the priority of the flow demand + +This is done so that flow can go towards the node with the flow demand into its buffer, +to avoid the problem that the flow has nowhere to go after this node and to make sure +that this flow can be used for later priorities """ function set_capacities_flow_demand_outflow!( allocation_model::AllocationModel, @@ -776,10 +791,9 @@ function save_allocation_flows!( priority::Int32, optimization_type::OptimizationType.T, )::Nothing - (; problem, subnetwork_id, capacity) = allocation_model + (; flow_priority, problem, subnetwork_id, capacity) = allocation_model (; allocation, graph) = p (; record_flow) = allocation - F = problem[:F] F_basin_in = problem[:F_basin_in] F_basin_out = problem[:F_basin_out] @@ -798,12 +812,12 @@ function save_allocation_flows!( flow_rate = 0.0 if haskey(graph, edge_1...) - flow_rate += JuMP.value(F[edge_1]) + flow_rate += flow_priority[edge_1] sign_2 = -1.0 edge_metadata = graph[edge_1...] else edge_1_reverse = reverse(edge_1) - flow_rate -= JuMP.value(F[edge_1_reverse]) + flow_rate -= flow_priority[edge_1_reverse] sign_2 = 1.0 edge_metadata = graph[edge_1_reverse...] end @@ -813,7 +827,7 @@ function save_allocation_flows!( if edge_2 == reverse(edge_1) && !(edge_1[1].type == NodeType.UserDemand || edge_1[2].type == NodeType.UserDemand) # If so, these edges are both processed in this iteration - flow_rate += sign_2 * JuMP.value(F[edge_2]) + flow_rate += sign_2 * flow_priority[edge_2] skip = true end @@ -853,6 +867,45 @@ function save_allocation_flows!( return nothing end +function allocate_to_users_from_connected_basin!( + allocation_model::AllocationModel, + p::Parameters, + priority_idx::Int, +)::Nothing + (; flow_priority, problem) = allocation_model + (; graph, user_demand) = p + + # Get all UserDemand nodes from this subnetwork + node_ids_user_demand = only(problem[:source_user].axes) + for node_id in node_ids_user_demand + + # Check whether the upstream basin has a level demand + # and thus can act as a source + upstream_basin_id = user_demand.inflow_edge[node_id.idx].edge[1] + if has_external_demand(graph, upstream_basin_id, :level_demand)[1] + + # The demand of the UserDemand node at the current priority + demand = user_demand.demand_reduced[node_id.idx, priority_idx] + + # The capacity of the upstream basin + constraint = problem[:basin_outflow][upstream_basin_id] + capacity = JuMP.normalized_rhs(constraint) + + # The allocated amount + allocated = min(demand, capacity) + + # Subtract the allocated amount from the user demand and basin capacity + user_demand.demand_reduced[node_id.idx, priority_idx] -= allocated + JuMP.set_normalized_rhs(constraint, capacity - allocated) + + # Add the allocated flow + flow_priority[(upstream_basin_id, node_id)] += allocated + end + end + + return nothing +end + function optimize_priority!( allocation_model::AllocationModel, u::ComponentVector, @@ -861,10 +914,15 @@ function optimize_priority!( priority_idx::Int, optimization_type::OptimizationType.T, )::Nothing - (; problem) = allocation_model + (; problem, flow_priority) = allocation_model (; allocation) = p (; priorities) = allocation + # Start the values of the flows at this priority at 0.0 + for edge in keys(flow_priority.data) + flow_priority[edge] = 0.0 + end + set_capacities_flow_demand_outflow!(allocation_model, p, priority_idx) # Set the objective depending on the demands @@ -874,6 +932,10 @@ function optimize_priority!( # https://jump.dev/JuMP.jl/v1.16/manual/objective/#Modify-an-objective-coefficient set_objective_priority!(allocation_model, p, u, t, priority_idx) + # Allocate to UserDemand nodes from the directly connected basin + # This happens outside the JuMP optimization + allocate_to_users_from_connected_basin!(allocation_model, p, priority_idx) + # Solve the allocation problem for this priority JuMP.optimize!(problem) @debug JuMP.solution_summary(problem) @@ -885,6 +947,11 @@ function optimize_priority!( ) end + # Add the values of the flows at this priority + for edge in only(problem[:F].axes) + flow_priority[edge] += JuMP.value(problem[:F][edge]) + end + # Assign the allocations to the UserDemand for this priority assign_allocations!(allocation_model, p, priority_idx, optimization_type) @@ -905,7 +972,7 @@ function optimize_priority!( adjust_capacities_edge!(allocation_model) adjust_capacities_basin!(allocation_model) adjust_capacities_buffer!(allocation_model) - adjust_capacities_returnflow!(allocation_model, p) + adjust_capacities_returnflow!(allocation_model, p, t) # Adjust demands for next optimization (in case of internal_sources -> collect_demands) for parameter in propertynames(p) @@ -1018,10 +1085,6 @@ function allocate_demands!( (; subnetwork_id) = allocation_model (; priorities) = allocation - if is_main_network(subnetwork_id) - @assert optimization_type == OptimizationType.allocate "For the main network no demands have to be collected" - end - set_initial_capacities_inlet!(allocation_model, p, optimization_type) set_initial_values!(allocation_model, p, u, t) diff --git a/core/src/bmi.jl b/core/src/bmi.jl index d598722f8..0da32897d 100644 --- a/core/src/bmi.jl +++ b/core/src/bmi.jl @@ -10,52 +10,60 @@ BMI.initialize(T::Type{Model}, config_path::AbstractString)::Model = Model(confi Write all results to the configured files. """ -BMI.finalize(model::Model)::Model = write_results(model) +function BMI.finalize(model::Model)::Nothing + write_results(model) + return nothing +end -function BMI.update(model::Model)::Model +function BMI.update(model::Model)::Nothing step!(model.integrator) - return model + return nothing end -function BMI.update_until(model::Model, time::Float64)::Model +function BMI.update_until(model::Model, time::Float64)::Nothing (; t) = model.integrator dt = time - t if dt < 0 error("The model has already passed the given timestamp.") elseif dt == 0 - return model + return nothing else step!(model, dt) end - return model + return nothing end function BMI.get_value_ptr(model::Model, name::AbstractString)::AbstractVector{Float64} + (; u, p) = model.integrator if name == "basin.storage" - model.integrator.u.storage + p.basin.current_properties.current_storage[parent(u)] elseif name == "basin.level" - get_tmp(model.integrator.p.basin.current_level, 0) + p.basin.current_properties.current_level[parent(u)] elseif name == "basin.infiltration" - model.integrator.p.basin.vertical_flux_from_input.infiltration + p.basin.vertical_flux.infiltration elseif name == "basin.drainage" - model.integrator.p.basin.vertical_flux_from_input.drainage - elseif name == "basin.infiltration_integrated" - model.integrator.p.basin.vertical_flux_bmi.infiltration - elseif name == "basin.drainage_integrated" - model.integrator.p.basin.vertical_flux_bmi.drainage + p.basin.vertical_flux.drainage + elseif name == "basin.cumulative_infiltration" + u.infiltration + elseif name == "basin.cumulative_drainage" + p.basin.cumulative_drainage elseif name == "basin.subgrid_level" - model.integrator.p.subgrid.level + p.subgrid.level elseif name == "user_demand.demand" - vec(model.integrator.p.user_demand.demand) - elseif name == "user_demand.realized" - model.integrator.p.user_demand.realized_bmi + vec(p.user_demand.demand) + elseif name == "user_demand.cumulative_inflow" + u.user_demand_inflow else error("Unknown variable $name") end end -BMI.get_current_time(model::Model) = model.integrator.t -BMI.get_start_time(model::Model) = 0.0 -BMI.get_end_time(model::Model) = seconds_since(model.config.endtime, model.config.starttime) -BMI.get_time_units(model::Model) = "s" -BMI.get_time_step(model::Model) = get_proposed_dt(model.integrator) +BMI.get_current_time(model::Model)::Float64 = model.integrator.t +BMI.get_start_time(model::Model)::Float64 = 0.0 +BMI.get_time_step(model::Model)::Float64 = get_proposed_dt(model.integrator) + +function BMI.get_end_time(model::Model)::Float64 + seconds_since(model.config.endtime, model.config.starttime) +end + +BMI.get_time_units(model::Model)::String = "s" diff --git a/core/src/callback.jl b/core/src/callback.jl index 5e555374d..8610564ce 100644 --- a/core/src/callback.jl +++ b/core/src/callback.jl @@ -1,4 +1,3 @@ - """ Create the different callbacks that are used to store results and feed the simulation with new data. The different callbacks @@ -8,21 +7,55 @@ Returns the CallbackSet and the SavedValues for flow. function create_callbacks( parameters::Parameters, config::Config, + u0::ComponentVector, saveat, )::Tuple{CallbackSet, SavedResults} - (; starttime, basin, tabulated_rating_curve) = parameters + (; + starttime, + basin, + flow_boundary, + level_boundary, + user_demand, + tabulated_rating_curve, + ) = parameters callbacks = SciMLBase.DECallback[] + # Check for negative storage negative_storage_cb = FunctionCallingCallback(check_negative_storage) push!(callbacks, negative_storage_cb) - integrating_flows_cb = FunctionCallingCallback(integrate_flows!; func_start = false) - push!(callbacks, integrating_flows_cb) + # Save storages and levels + saved_basin_states = SavedValues(Float64, SavedBasinState) + save_basin_state_cb = SavingCallback(save_basin_state, saved_basin_states; saveat) + push!(callbacks, save_basin_state_cb) + + # Update cumulative flows (exact integration and for allocation) + cumulative_flows_cb = + FunctionCallingCallback(update_cumulative_flows!; func_start = false) + push!(callbacks, cumulative_flows_cb) + + # Update concentrations + concentrations_cb = FunctionCallingCallback(update_concentrations!; func_start = false) + push!(callbacks, concentrations_cb) + # Update Basin forcings tstops = get_tstops(basin.time.time, starttime) basin_cb = PresetTimeCallback(tstops, update_basin!; save_positions = (false, false)) push!(callbacks, basin_cb) + # Update boundary concentrations + for (boundary, func) in ( + (basin, update_basin_conc!), + (flow_boundary, update_flowb_conc!), + (level_boundary, update_levelb_conc!), + (user_demand, update_userd_conc!), + ) + tstops = get_tstops(boundary.concentration_time.time, starttime) + conc_cb = PresetTimeCallback(tstops, func; save_positions = (false, false)) + push!(callbacks, conc_cb) + end + + # Update TabulatedRatingCurve Q(h) relationships tstops = get_tstops(tabulated_rating_curve.time.time, starttime) tabulated_rating_curve_cb = PresetTimeCallback( tstops, @@ -34,16 +67,18 @@ function create_callbacks( # If saveat is a vector which contains 0.0 this callback will still be called # at t = 0.0 despite save_start = false saveat = saveat isa Vector ? filter(x -> x != 0.0, saveat) : saveat - saved_vertical_flux = SavedValues(Float64, typeof(basin.vertical_flux_integrated)) - save_vertical_flux_cb = - SavingCallback(save_vertical_flux, saved_vertical_flux; saveat, save_start = false) - push!(callbacks, save_vertical_flux_cb) - # save the flows over time - saved_flow = SavedValues(Float64, SavedFlow) + # save the flows averaged over the saveat intervals + saved_flow = SavedValues(Float64, SavedFlow{typeof(u0)}) save_flow_cb = SavingCallback(save_flow, saved_flow; saveat, save_start = false) push!(callbacks, save_flow_cb) + # save solver stats + saved_solver_stats = SavedValues(Float64, SolverStats) + solver_stats_cb = + SavingCallback(save_solver_stats, saved_solver_stats; saveat, save_start = true) + push!(callbacks, solver_stats_cb) + # interpolate the levels saved_subgrid_level = SavedValues(Float64, Vector{Float64}) if config.results.subgrid @@ -59,141 +94,376 @@ function create_callbacks( discrete_control_cb = FunctionCallingCallback(apply_discrete_control!) push!(callbacks, discrete_control_cb) - saved = SavedResults(saved_flow, saved_vertical_flux, saved_subgrid_level) + saved = SavedResults( + saved_flow, + saved_basin_states, + saved_subgrid_level, + saved_solver_stats, + ) callback = CallbackSet(callbacks...) return callback, saved end -function check_negative_storage(u, t, integrator)::Nothing - (; basin) = integrator.p - (; node_id) = basin - errors = false - for id in node_id - if u.storage[id.idx] < 0 - @error "Negative storage detected in $id" - errors = true +""" +Update with the latest timestep: +- Cumulative flows/forcings which are integrated exactly +- Cumulative flows/forcings which are input for the allocation algorithm +- Cumulative flows/forcings which are realized demands in the allocation context + +During these cumulative flow updates, we can also update the mass balance of the system, +as each flow carries mass, based on the concentrations of the flow source. +Specifically, we first use all the inflows to update the mass of the Basins, recalculate +the Basin concentration(s) and then remove the mass that is being lost to the outflows. +""" +function update_cumulative_flows!(u, t, integrator)::Nothing + (; p, tprev, dt) = integrator + (; basin, flow_boundary, allocation) = p + (; vertical_flux) = basin + + # Update tprev + p.tprev[] = t + + # Update cumulative forcings which are integrated exactly + @. basin.cumulative_drainage += vertical_flux.drainage * dt + @. basin.cumulative_drainage_saveat += vertical_flux.drainage * dt + + # Precipitation depends on fixed area + for node_id in basin.node_id + fixed_area = basin_areas(basin, node_id.idx)[end] + added_precipitation = fixed_area * vertical_flux.precipitation[node_id.idx] * dt + + basin.cumulative_precipitation[node_id.idx] += added_precipitation + basin.cumulative_precipitation_saveat[node_id.idx] += added_precipitation + end + + # Exact boundary flow over time step + for (id, flow_rate, active, edge) in zip( + flow_boundary.node_id, + flow_boundary.flow_rate, + flow_boundary.active, + flow_boundary.outflow_edges, + ) + if active + outflow_id = edge[1].edge[2] + volume = integral(flow_rate, tprev, t) + flow_boundary.cumulative_flow[id.idx] += volume + flow_boundary.cumulative_flow_saveat[id.idx] += volume end end - if errors - t_datetime = datetime_since(integrator.t, integrator.p.starttime) - error("Negative storages found at $t_datetime.") + # Update realized flows for allocation input + for edge in keys(allocation.mean_input_flows) + allocation.mean_input_flows[edge] += flow_update_on_edge(integrator, edge) + end + + # Update realized flows for allocation output + for edge in keys(allocation.mean_realized_flows) + allocation.mean_realized_flows[edge] += flow_update_on_edge(integrator, edge) + if edge[1] == edge[2] + basin_id = edge[1] + @assert basin_id.type == NodeType.Basin + for inflow_id in basin.inflow_ids[basin_id.idx] + allocation.mean_realized_flows[edge] += + flow_update_on_edge(integrator, (inflow_id, basin_id)) + end + for outflow_id in basin.outflow_ids[basin_id.idx] + allocation.mean_realized_flows[edge] -= + flow_update_on_edge(integrator, (basin_id, outflow_id)) + end + end end return nothing end -""" -Integrate flows over the last timestep -""" -function integrate_flows!(u, t, integrator)::Nothing - (; p, dt) = integrator - (; graph, user_demand, basin, allocation) = p - (; flow, flow_dict, flow_prev, flow_integrated) = graph[] - (; vertical_flux, vertical_flux_prev, vertical_flux_integrated, vertical_flux_bmi) = - basin - flow = get_tmp(flow, 0) - vertical_flux = get_tmp(vertical_flux, 0) - if !isempty(flow_prev) && isnan(flow_prev[1]) - # If flow_prev is not populated yet - copyto!(flow_prev, flow) - end - - @. flow_integrated += 0.5 * (flow + flow_prev) * dt - @. vertical_flux_integrated += 0.5 * (vertical_flux + vertical_flux_prev) * dt - @. vertical_flux_bmi += 0.5 * (vertical_flux + vertical_flux_prev) * dt - - # UserDemand realized flows for BMI - for id in user_demand.node_id - src_id = inflow_id(graph, id) - flow_idx = flow_dict[src_id, id] - user_demand.realized_bmi[id.idx] += - 0.5 * (flow[flow_idx] + flow_prev[flow_idx]) * dt - end - - # *Demand realized flow for output - for (edge, value) in allocation.mean_realized_flows - if edge[1] !== edge[2] - value += - 0.5 * (get_flow(graph, edge..., 0) + get_flow_prev(graph, edge..., 0)) * dt - allocation.mean_realized_flows[edge] = value +function update_concentrations!(u, t, integrator)::Nothing + (; uprev, p, tprev, dt) = integrator + (; basin, flow_boundary) = p + (; vertical_flux, concentration_data) = basin + (; evaporate_mass, cumulative_in, concentration_state, concentration, mass) = + concentration_data + + # Reset cumulative flows, used to calculate the concentration + # of the basins after processing inflows only + cumulative_in .= 0.0 + + mass .+= concentration[1, :, :] .* vertical_flux.drainage * dt + basin.concentration_data.cumulative_in .= vertical_flux.drainage * dt + + # Precipitation depends on fixed area + for node_id in basin.node_id + fixed_area = basin_areas(basin, node_id.idx)[end] + added_precipitation = fixed_area * vertical_flux.precipitation[node_id.idx] * dt + + mass[node_id.idx, :] .+= concentration[2, node_id.idx, :] .* added_precipitation + cumulative_in[node_id.idx] += added_precipitation + end + + # Exact boundary flow over time step + for (id, flow_rate, active, edge) in zip( + flow_boundary.node_id, + flow_boundary.flow_rate, + flow_boundary.active, + flow_boundary.outflow_edges, + ) + if active + outflow_id = edge[1].edge[2] + volume = integral(flow_rate, tprev, t) + mass[outflow_id.idx, :] .+= flow_boundary.concentration[id.idx, :] .* volume + cumulative_in[outflow_id.idx] += volume end end - # Allocation source flows - for (edge, value) in allocation.mean_input_flows - if edge[1] == edge[2] - # Vertical fluxes - allocation.mean_input_flows[edge] = - value + - 0.5 * - ( - get_influx(basin, edge[1].idx) + - get_influx(basin, edge[1].idx; prev = true) - ) * - dt - else - # Horizontal flows - allocation.mean_input_flows[edge] = - value + - 0.5 * (get_flow(graph, edge..., 0) + get_flow_prev(graph, edge..., 0)) * dt + mass_updates_user_demand!(integrator) + mass_inflows_basin!(integrator) + + # Update the Basin concentrations based on the added mass and flows + concentration_state .= mass ./ (basin.storage_prev .+ cumulative_in) + + mass_outflows_basin!(integrator) + + # Evaporate mass to keep the mass balance, if enabled in model config + if evaporate_mass + mass .-= concentration_state .* (u.evaporation - uprev.evaporation) + end + mass .-= concentration_state .* (u.infiltration - uprev.infiltration) + + # Take care of infinitely small masses, possibly becoming negative due to truncation. + for I in eachindex(basin.concentration_data.mass) + if (-eps(Float64)) < mass[I] < (eps(Float64)) + mass[I] = 0.0 end end - copyto!(flow_prev, flow) - copyto!(vertical_flux_prev, vertical_flux) + + # Check for negative masses + if any(<(0), mass) + R = CartesianIndices(mass) + locations = findall(<(0), mass) + for I in locations + basin_idx, substance_idx = Tuple(R[I]) + @error "$(basin.node_id[basin_idx]) has negative mass $(basin.concentration_data.mass[I]) for substance $(basin.concentration_data.substances[substance_idx])" + end + error("Negative mass(es) detected") + end + + # Update the Basin concentrations again based on the removed mass + concentration_state .= mass ./ basin.current_properties.current_storage[parent(u)] + basin.storage_prev .= basin.current_properties.current_storage[parent(u)] + basin.level_prev .= basin.current_properties.current_level[parent(u)] return nothing end -"Compute the average flows over the last saveat interval and write -them to SavedValues" -function save_flow(u, t, integrator) - (; graph) = integrator.p - (; flow_integrated, flow_dict) = graph[] - (; node_id) = integrator.p.basin +""" +Given an edge (from_id, to_id), compute the cumulative flow over that +edge over the latest timestep. If from_id and to_id are both the same Basin, +the function returns the sum of the Basin forcings. +""" +function flow_update_on_edge( + integrator::DEIntegrator, + edge_src::Tuple{NodeID, NodeID}, +)::Float64 + (; u, uprev, p, t, tprev, dt) = integrator + (; basin, flow_boundary) = p + (; vertical_flux) = basin + from_id, to_id = edge_src + if from_id == to_id + @assert from_id.type == to_id.type == NodeType.Basin + idx = from_id.idx + fixed_area = basin_areas(basin, idx)[end] + (fixed_area * vertical_flux.precipitation[idx] + vertical_flux.drainage[idx]) * dt - + (u.evaporation[idx] - uprev.evaporation[idx]) - + (u.infiltration[idx] - uprev.infiltration[idx]) + elseif from_id.type == NodeType.FlowBoundary + if flow_boundary.active[from_id.idx] + integral(flow_boundary.flow_rate[from_id.idx], tprev, t) + else + 0.0 + end + else + flow_idx = get_state_index(u, edge_src) + u[flow_idx] - uprev[flow_idx] + end +end + +""" +Save the storages and levels at the latest t. +""" +function save_basin_state(u, t, integrator) + (; p) = integrator + (; basin) = p + du = get_du(integrator) + current_storage = basin.current_properties.current_storage[parent(du)] + current_level = basin.current_properties.current_level[parent(du)] + water_balance!(du, u, p, t) + SavedBasinState(; storage = copy(current_storage), level = copy(current_level), t) +end +""" +Save all cumulative forcings and flows over edges over the latest timestep, +Both computed by the solver and integrated exactly. Also computes the total horizontal +inflow and outflow per Basin. +""" +function save_flow(u, t, integrator) + (; p) = integrator + (; basin, state_inflow_edge, state_outflow_edge, flow_boundary, u_prev_saveat) = p Δt = get_Δt(integrator) - flow_mean = copy(flow_integrated) - flow_mean ./= Δt - fill!(flow_integrated, 0.0) - - # Divide the flows over edges to Basin inflow and outflow, regardless of edge direction. - inflow_mean = zeros(length(node_id)) - outflow_mean = zeros(length(node_id)) - - for basin_id in node_id - for inflow_id in inflow_ids(graph, basin_id) - q = flow_mean[flow_dict[inflow_id, basin_id]] - if q > 0 - inflow_mean[basin_id.idx] += q + flow_mean = (u - u_prev_saveat) / Δt + + # Current u is previous u in next computation + u_prev_saveat .= u + + inflow_mean = zeros(length(basin.node_id)) + outflow_mean = zeros(length(basin.node_id)) + + # Flow contributions from horizontal flow states + for (flow, inflow_edge, outflow_edge) in + zip(flow_mean, state_inflow_edge, state_outflow_edge) + inflow_id = inflow_edge.edge[1] + if inflow_id.type == NodeType.Basin + if flow > 0 + outflow_mean[inflow_id.idx] += flow else - outflow_mean[basin_id.idx] -= q + inflow_mean[inflow_id.idx] -= flow end end - for outflow_id in outflow_ids(graph, basin_id) - q = flow_mean[flow_dict[basin_id, outflow_id]] - if q > 0 - outflow_mean[basin_id.idx] += q + + outflow_id = outflow_edge.edge[2] + if outflow_id.type == NodeType.Basin + if flow > 0 + inflow_mean[outflow_id.idx] += flow else - inflow_mean[basin_id.idx] -= q + outflow_mean[outflow_id.idx] -= flow end end end - return SavedFlow(; flow = flow_mean, inflow = inflow_mean, outflow = outflow_mean) + # Flow contributions from flow boundaries + flow_boundary_mean = copy(flow_boundary.cumulative_flow_saveat) ./ Δt + flow_boundary.cumulative_flow_saveat .= 0.0 + + for (outflow_edges, id) in zip(flow_boundary.outflow_edges, flow_boundary.node_id) + flow = flow_boundary_mean[id.idx] + for outflow_edge in outflow_edges + outflow_id = outflow_edge.edge[2] + if outflow_id.type == NodeType.Basin + inflow_mean[outflow_id.idx] += flow + end + end + end + + precipitation = copy(basin.cumulative_precipitation_saveat) ./ Δt + drainage = copy(basin.cumulative_drainage_saveat) ./ Δt + @. basin.cumulative_precipitation_saveat = 0.0 + @. basin.cumulative_drainage_saveat = 0.0 + + concentration = copy(basin.concentration_data.concentration_state) + saved_flow = SavedFlow(; + flow = flow_mean, + inflow = inflow_mean, + outflow = outflow_mean, + flow_boundary = flow_boundary_mean, + precipitation, + drainage, + concentration, + t, + ) + check_water_balance_error!(saved_flow, integrator, Δt) + return saved_flow +end + +function check_water_balance_error!( + saved_flow::SavedFlow, + integrator::DEIntegrator, + Δt::Float64, +)::Nothing + (; u, p, t) = integrator + (; basin, water_balance_abstol, water_balance_reltol) = p + errors = false + current_storage = basin.current_properties.current_storage[parent(u)] + + # The initial storage is irrelevant for the storage rate and can only cause + # floating point truncation errors + formulate_storages!(current_storage, u, u, p, t; add_initial_storage = false) + + for ( + inflow_rate, + outflow_rate, + precipitation, + drainage, + evaporation, + infiltration, + s_now, + s_prev, + id, + ) in zip( + saved_flow.inflow, + saved_flow.outflow, + saved_flow.precipitation, + saved_flow.drainage, + saved_flow.flow.evaporation, + saved_flow.flow.infiltration, + current_storage, + basin.Δstorage_prev_saveat, + basin.node_id, + ) + storage_rate = (s_now - s_prev) / Δt + total_in = inflow_rate + precipitation + drainage + total_out = outflow_rate + evaporation + infiltration + balance_error = storage_rate - (total_in - total_out) + mean_flow_rate = (total_in + total_out) / 2 + relative_error = iszero(mean_flow_rate) ? 0.0 : balance_error / mean_flow_rate + + if abs(balance_error) > water_balance_abstol && + abs(relative_error) > water_balance_reltol + errors = true + @error "Too large water balance error" id balance_error relative_error + end + + saved_flow.storage_rate[id.idx] = storage_rate + saved_flow.balance_error[id.idx] = balance_error + saved_flow.relative_error[id.idx] = relative_error + end + if errors + t = datetime_since(t, p.starttime) + error("Too large water balance error(s) detected at t = $t") + end + + @. basin.Δstorage_prev_saveat = current_storage + return nothing +end + +function save_solver_stats(u, t, integrator) + (; stats) = integrator.sol + (; + time = t, + rhs_calls = stats.nf, + linear_solves = stats.nsolve, + accepted_timesteps = stats.naccept, + rejected_timesteps = stats.nreject, + ) end -"Compute the average vertical fluxes over the last saveat interval and write -them to SavedValues" -function save_vertical_flux(u, t, integrator) +function check_negative_storage(u, t, integrator)::Nothing (; basin) = integrator.p - (; vertical_flux_integrated) = basin + (; node_id, current_properties) = basin + (; current_storage) = current_properties + du = get_du(integrator) + set_current_basin_properties!(du, u, integrator.p, t) + current_storage = current_storage[parent(du)] - Δt = get_Δt(integrator) - vertical_flux_mean = copy(vertical_flux_integrated) - vertical_flux_mean ./= Δt - fill!(vertical_flux_integrated, 0.0) + errors = false + for id in node_id + if current_storage[id.idx] < 0 + @error "Negative storage detected in $id" + errors = true + end + end - return vertical_flux_mean + if errors + t_datetime = datetime_since(integrator.t, integrator.p.starttime) + error("Negative storages found at $t_datetime.") + end + return nothing end """ @@ -215,6 +485,8 @@ function apply_discrete_control!(u, t, integrator)::Nothing (; p) = integrator (; discrete_control) = p (; node_id) = discrete_control + du = get_du(integrator) + water_balance!(du, u, p, t) # Loop over the discrete control nodes to determine their truth state # and detect possible control state changes @@ -233,12 +505,7 @@ function apply_discrete_control!(u, t, integrator)::Nothing # Loop over the variables listened to by this discrete control node for compound_variable in compound_variables - - # Compute the value of the current variable - value = 0.0 - for subvariable in compound_variable.subvariables - value += subvariable.weight * get_value(p, subvariable, t) - end + value = compound_variable_value(compound_variable, p, du, t) # The thresholds the value of this variable is being compared with greater_thans = compound_variable.greater_than @@ -318,12 +585,12 @@ end Get a value for a condition. Currently supports getting levels from basins and flows from flow boundaries. """ -function get_value(p::Parameters, subvariable::NamedTuple, t::Float64) - (; flow_boundary, level_boundary) = p +function get_value(subvariable::NamedTuple, p::Parameters, du::AbstractVector, t::Float64) + (; flow_boundary, level_boundary, basin) = p (; listen_node_id, look_ahead, variable, variable_ref) = subvariable - if !iszero(variable_ref.i) - return variable_ref[] + if !iszero(variable_ref.idx) + return get_value(variable_ref, du) end if variable == "level" @@ -343,6 +610,13 @@ function get_value(p::Parameters, subvariable::NamedTuple, t::Float64) error("Flow condition node $listen_node_id is not a flow boundary.") end + elseif startswith(variable, "concentration_external.") + value = + basin.concentration_data.concentration_external[listen_node_id.idx][variable](t) + elseif startswith(variable, "concentration.") + substance = Symbol(last(split(variable, "."))) + var_idx = findfirst(==(substance), basin.concentration_data.substances) + value = basin.concentration_data.concentration_state[listen_node_id.idx, var_idx] else error("Unsupported condition variable $variable.") end @@ -350,30 +624,23 @@ function get_value(p::Parameters, subvariable::NamedTuple, t::Float64) return value end -function get_allocation_model(p::Parameters, subnetwork_id::Int32)::AllocationModel - (; allocation) = p - (; subnetwork_ids, allocation_models) = allocation - idx = findsorted(subnetwork_ids, subnetwork_id) - if isnothing(idx) - error("Invalid allocation network ID $subnetwork_id.") - else - return allocation_models[idx] +function compound_variable_value(compound_variable::CompoundVariable, p, du, t) + value = zero(eltype(du)) + for subvariable in compound_variable.subvariables + value += subvariable.weight * get_value(subvariable, p, du, t) end + return value end -function get_main_network_connections( - p::Parameters, - subnetwork_id::Int32, -)::Vector{Tuple{NodeID, NodeID}} +function get_allocation_model(p::Parameters, subnetwork_id::Int32)::AllocationModel (; allocation) = p - (; subnetwork_ids, main_network_connections) = allocation + (; subnetwork_ids, allocation_models) = allocation idx = findsorted(subnetwork_ids, subnetwork_id) if isnothing(idx) error("Invalid allocation network ID $subnetwork_id.") else - return main_network_connections[idx] + return allocation_models[idx] end - return end function set_control_params!(p::Parameters, node_id::NodeID, control_state::String)::Nothing @@ -401,7 +668,9 @@ function apply_parameter_update!(parameter_update)::Nothing end function update_subgrid_level!(integrator)::Nothing - basin_level = get_tmp(integrator.p.basin.current_level, 0) + (; p) = integrator + du = get_du(integrator) + basin_level = p.basin.current_properties.current_level[parent(du)] subgrid = integrator.p.subgrid for (i, (index, interp)) in enumerate(zip(subgrid.basin_index, subgrid.interpolations)) subgrid.level[i] = interp(basin_level[index]) @@ -416,62 +685,100 @@ end "Load updates from 'Basin / time' into the parameters" function update_basin!(integrator)::Nothing - (; p, u) = integrator + (; p) = integrator (; basin) = p - (; storage) = u - (; node_id, time, vertical_flux_from_input, vertical_flux, vertical_flux_prev) = basin + (; node_id, time, vertical_flux) = basin t = datetime_since(integrator.t, integrator.p.starttime) - vertical_flux = get_tmp(vertical_flux, integrator.u) rows = searchsorted(time.time, t) timeblock = view(time, rows) table = (; - vertical_flux_from_input.precipitation, - vertical_flux_from_input.potential_evaporation, - vertical_flux_from_input.drainage, - vertical_flux_from_input.infiltration, + vertical_flux.precipitation, + vertical_flux.potential_evaporation, + vertical_flux.drainage, + vertical_flux.infiltration, ) for row in timeblock i = searchsortedfirst(node_id, NodeID(NodeType.Basin, row.node_id, 0)) set_table_row!(table, row, i) end + return nothing +end + +"Load updates from 'Basin / concentration' into the parameters" +function update_basin_conc!(integrator)::Nothing + (; p) = integrator + (; basin) = p + (; node_id, concentration_data, concentration_time) = basin + (; concentration, substances) = concentration_data + t = datetime_since(integrator.t, integrator.p.starttime) + + rows = searchsorted(concentration_time.time, t) + timeblock = view(concentration_time, rows) + + for row in timeblock + i = searchsortedfirst(node_id, NodeID(NodeType.Basin, row.node_id, 0)) + j = findfirst(==(Symbol(row.substance)), substances) + ismissing(row.drainage) || (concentration[1, i, j] = row.drainage) + ismissing(row.precipitation) || (concentration[2, i, j] = row.precipitation) + end + return nothing +end + +"Load updates from 'concentration' tables into the parameters" +function update_conc!(integrator, parameter, nodetype)::Nothing + (; p) = integrator + node = getproperty(p, parameter) + (; basin) = p + (; node_id, concentration, concentration_time) = node + (; substances) = basin.concentration_data + t = datetime_since(integrator.t, integrator.p.starttime) - update_vertical_flux!(basin, storage) + rows = searchsorted(concentration_time.time, t) + timeblock = view(concentration_time, rows) - # Forget about vertical fluxes to handle discontinuous forcing from basin_update - copyto!(vertical_flux_prev, vertical_flux) + for row in timeblock + i = searchsortedfirst(node_id, NodeID(nodetype, row.node_id, 0)) + j = findfirst(==(Symbol(row.substance)), substances) + ismissing(row.concentration) || (concentration[i, j] = row.concentration) + end return nothing end +update_flowb_conc!(integrator)::Nothing = + update_conc!(integrator, :flow_boundary, NodeType.FlowBoundary) +update_levelb_conc!(integrator)::Nothing = + update_conc!(integrator, :level_boundary, NodeType.LevelBoundary) +update_userd_conc!(integrator)::Nothing = + update_conc!(integrator, :user_demand, NodeType.UserDemand) "Solve the allocation problem for all demands and assign allocated abstractions." function update_allocation!(integrator)::Nothing (; p, t, u) = integrator (; allocation, basin) = p + (; current_storage) = basin.current_properties (; allocation_models, mean_input_flows, mean_realized_flows) = allocation + # Make sure current storages are up to date + du = get_du(integrator) + current_storage = current_storage[parent(du)] + formulate_storages!(current_storage, du, u, p, t) + # Don't run the allocation algorithm if allocation is not active # (Specifically for running Ribasim via the BMI) if !is_active(allocation) return nothing end + # Divide by the allocation Δt to get the mean input flows from the cumulative flows (; Δt_allocation) = allocation_models[1] - - # Divide by the allocation Δt to obtain the mean input flows - # from the integrated flows - for key in keys(mean_input_flows) - mean_input_flows[key] /= Δt_allocation + for edge in keys(mean_input_flows) + mean_input_flows[edge] /= Δt_allocation end - # Divide by the allocation Δt to obtain the mean realized flows - # from the integrated flows - for (edge, value) in mean_realized_flows - if edge[1] == edge[2] - # Compute the mean realized demand for basins as Δstorage/Δt_allocation - mean_realized_flows[edge] = value + u[edge[1].idx] - end + # Divide by the allocation Δt to get the mean realized flows from the cumulative flows + for edge in keys(mean_realized_flows) mean_realized_flows[edge] /= Δt_allocation end @@ -495,13 +802,6 @@ function update_allocation!(integrator)::Nothing mean_flows[edge] = 0.0 end end - - # Set basin storages for mean storage change computation - for (edge, value) in mean_realized_flows - if edge[1] == edge[2] - mean_realized_flows[edge] = value - u[edge[1].idx] - end - end end "Load updates from 'TabulatedRatingCurve / time' into the parameters" @@ -519,7 +819,12 @@ function update_tabulated_rating_curve!(integrator)::Nothing level = [row.level for row in group] flow_rate = [row.flow_rate for row in group] i = searchsortedfirst(node_id, NodeID(NodeType.TabulatedRatingCurve, id, 0)) - table[i] = LinearInterpolation(flow_rate, level; extrapolate = true) + table[i] = LinearInterpolation( + flow_rate, + level; + extrapolate = true, + cache_parameters = true, + ) end return nothing end diff --git a/core/src/concentration.jl b/core/src/concentration.jl new file mode 100644 index 000000000..12fb4dd2b --- /dev/null +++ b/core/src/concentration.jl @@ -0,0 +1,115 @@ +""" +Process mass updates for UserDemand separately +as the inflow and outflow are decoupled in the states +""" +function mass_updates_user_demand!(integrator::DEIntegrator)::Nothing + (; basin, user_demand) = integrator.p + (; concentration_state, mass) = basin.concentration_data + + for (inflow_edge, outflow_edge) in + zip(user_demand.inflow_edge, user_demand.outflow_edge) + from_node = inflow_edge.edge[1] + to_node = outflow_edge.edge[2] + userdemand_idx = outflow_edge.edge[1].idx + if from_node.type == NodeType.Basin + flow = flow_update_on_edge(integrator, inflow_edge.edge) + if flow < 0 + mass[from_node.idx, :] .-= concentration_state[to_node.idx, :] .* flow + mass[from_node.idx, :] .-= + user_demand.concentration[userdemand_idx, :] .* flow + end + end + if to_node.type == NodeType.Basin + flow = flow_update_on_edge(integrator, outflow_edge.edge) + if flow > 0 + mass[to_node.idx, :] .+= concentration_state[from_node.idx, :] .* flow + mass[to_node.idx, :] .+= + user_demand.concentration[userdemand_idx, :] .* flow + end + end + end + return nothing +end + +""" +Process all mass inflows to basins +""" +function mass_inflows_basin!(integrator::DEIntegrator)::Nothing + (; basin, state_inflow_edge, state_outflow_edge, level_boundary) = integrator.p + (; cumulative_in, concentration_state, mass) = basin.concentration_data + + for (inflow_edge, outflow_edge) in zip(state_inflow_edge, state_outflow_edge) + from_node = inflow_edge.edge[1] + to_node = outflow_edge.edge[2] + if from_node.type == NodeType.Basin + flow = flow_update_on_edge(integrator, inflow_edge.edge) + if flow < 0 + cumulative_in[from_node.idx] -= flow + if to_node.type == NodeType.Basin + mass[from_node.idx, :] .-= concentration_state[to_node.idx, :] .* flow + elseif to_node.type == NodeType.LevelBoundary + mass[from_node.idx, :] .-= + level_boundary.concentration[to_node.idx, :] .* flow + elseif to_node.type == NodeType.UserDemand + mass[from_node.idx, :] .-= + user_demand.concentration[to_node.idx, :] .* flow + elseif to_node.type == NodeType.Terminal && to_node.value == 0 + # UserDemand inflow is discoupled from its outflow, + # and the unset flow edge defaults to Terminal #0 + nothing + else + @warn "Unsupported outflow from $(to_node.type) #$(to_node.value) to $(from_node.type) #$(from_node.value) with flow $flow" + end + end + end + + if to_node.type == NodeType.Basin + flow = flow_update_on_edge(integrator, outflow_edge.edge) + if flow > 0 + cumulative_in[to_node.idx] += flow + if from_node.type == NodeType.Basin + mass[to_node.idx, :] .+= concentration_state[from_node.idx, :] .* flow + elseif from_node.type == NodeType.LevelBoundary + mass[to_node.idx, :] .+= + level_boundary.concentration[from_node.idx, :] .* flow + elseif from_node.type == NodeType.UserDemand + mass[to_node.idx, :] .+= + user_demand.concentration[from_node.idx, :] .* flow + elseif from_node.type == NodeType.Terminal && from_node.value == 0 + # UserDemand outflow is discoupled from its inflow, + # and the unset flow edge defaults to Terminal #0 + nothing + else + @warn "Unsupported outflow from $(from_node.type) #$(from_node.value) to $(to_node.type) #$(to_node.value) with flow $flow" + end + end + end + end + return nothing +end + +""" +Process all mass outflows from Basins +""" +function mass_outflows_basin!(integrator::DEIntegrator)::Nothing + (; state_inflow_edge, state_outflow_edge, basin) = integrator.p + (; mass, concentration_state) = basin.concentration_data + + for (inflow_edge, outflow_edge) in zip(state_inflow_edge, state_outflow_edge) + from_node = inflow_edge.edge[1] + to_node = outflow_edge.edge[2] + if from_node.type == NodeType.Basin + flow = flow_update_on_edge(integrator, inflow_edge.edge) + if flow > 0 + mass[from_node.idx, :] .-= concentration_state[from_node.idx, :] .* flow + end + end + if to_node.type == NodeType.Basin + flow = flow_update_on_edge(integrator, outflow_edge.edge) + if flow < 0 + mass[to_node.idx, :] .+= concentration_state[to_node.idx, :] .* flow + end + end + end + return nothing +end diff --git a/core/src/config.jl b/core/src/config.jl index 084bb4040..1fc0012e2 100644 --- a/core/src/config.jl +++ b/core/src/config.jl @@ -13,21 +13,24 @@ using DataStructures: DefaultDict using Dates: DateTime using Logging: LogLevel, Debug, Info, Warn, Error using ..Ribasim: Ribasim, isnode, nodetype -using OrdinaryDiffEq: - OrdinaryDiffEqAlgorithm, - Euler, - ImplicitEuler, - KenCarp4, - QNDF, - RK4, - Rodas5, - Rosenbrock23, - TRBDF2, - Tsit5 +using OrdinaryDiffEqCore: OrdinaryDiffEqAlgorithm, OrdinaryDiffEqNewtonAdaptiveAlgorithm +using OrdinaryDiffEqNonlinearSolve: NLNewton +using OrdinaryDiffEqLowOrderRK: Euler, RK4 +using OrdinaryDiffEqTsit5: Tsit5 +using OrdinaryDiffEqSDIRK: ImplicitEuler, KenCarp4, TRBDF2 +using OrdinaryDiffEqBDF: FBDF, QNDF +using OrdinaryDiffEqRosenbrock: Rosenbrock23, Rodas4P, Rodas5P export Config, Solver, Results, Logging, Toml export algorithm, - snake_case, input_path, results_path, convert_saveat, convert_dt, nodetypes + camel_case, + snake_case, + input_path, + database_path, + results_path, + convert_saveat, + convert_dt, + nodetypes const schemas = getfield.( @@ -53,6 +56,15 @@ end snake_case(sym::Symbol)::Symbol = Symbol(snake_case(String(sym))) +"Convert a string from snake_case to CamelCase." +function camel_case(snake_case::AbstractString)::String + camel_case = replace(snake_case, r"_([a-z])" => s -> uppercase(s[2])) + camel_case = uppercase(first(camel_case)) * camel_case[2:end] + return camel_case +end + +camel_case(sym::Symbol)::Symbol = Symbol(camel_case(String(sym))) + """ Add fieldnames with Union{String, Nothing} type to struct expression. Requires @option use before it. """ @@ -95,11 +107,14 @@ const nodetypes = collect(keys(nodekinds)) dtmin::Float64 = 0.0 dtmax::Union{Float64, Nothing} = nothing force_dtmin::Bool = false - abstol::Float64 = 1e-6 - reltol::Float64 = 1e-5 + abstol::Float64 = 1e-7 + reltol::Float64 = 1e-7 + water_balance_abstol::Float64 = 1e-3 + water_balance_reltol::Float64 = 1e-2 maxiters::Int = 1e9 sparse::Bool = true - autodiff::Bool = true + autodiff::Bool = false + evaporate_mass::Bool = true end # Separate struct, as basin clashes with nodetype @@ -112,7 +127,6 @@ end @option struct Logging <: TableOption verbosity::LogLevel = Info - timing::Bool = false end @option struct Allocation <: TableOption @@ -120,6 +134,19 @@ end use_allocation::Bool = false end +@option struct Experimental <: TableOption + concentration::Bool = false +end +# For logging enabled experimental features +function Base.iterate(exp::Experimental, state = 0) + state >= nfields(exp) && return + return Base.getfield(exp, state + 1), state + 1 +end +function Base.show(io::IO, exp::Experimental) + fields = (field for field in fieldnames(typeof(exp)) if getfield(exp, field)) + print(io, join(fields, " ")) +end + @option @addnodetypes struct Toml <: TableOption starttime::DateTime endtime::DateTime @@ -127,11 +154,11 @@ end ribasim_version::String input_dir::String results_dir::String - database::String = "database.gpkg" allocation::Allocation = Allocation() solver::Solver = Solver() logging::Logging = Logging() results::Results = Results() + experimental::Experimental = Experimental() end struct Config @@ -162,6 +189,11 @@ function input_path(config::Config, path::String) return normpath(dirname(config), config.input_dir, path) end +"Construct the database path relative to both the TOML directory and the optional `input_dir`" +function database_path(config::Config) + return normpath(dirname(config), config.input_dir, "database.gpkg") +end + "Construct a path relative to both the TOML directory and the optional `results_dir`" function results_path(config::Config, path::String) return normpath(dirname(config), config.results_dir, path) @@ -207,9 +239,11 @@ Map from config string to a supported algorithm type from [OrdinaryDiffEq](https Supported algorithms: - `QNDF` +- `FBDF` - `Rosenbrock23` - `TRBDF2` -- `Rodas5` +- `Rodas4P` +- `Rodas5P` - `KenCarp4` - `Tsit5` - `RK4` @@ -218,9 +252,11 @@ Supported algorithms: """ const algorithms = Dict{String, Type}( "QNDF" => QNDF, + "FBDF" => FBDF, "Rosenbrock23" => Rosenbrock23, "TRBDF2" => TRBDF2, - "Rodas5" => Rodas5, + "Rodas4P" => Rodas4P, + "Rodas5P" => Rodas5P, "KenCarp4" => KenCarp4, "Tsit5" => Tsit5, "RK4" => RK4, @@ -228,20 +264,43 @@ const algorithms = Dict{String, Type}( "Euler" => Euler, ) +""" +Check whether the given function has a method that accepts the given kwarg. +Note that it is possible that methods exist that accept :a and :b individually, +but not both. +""" +function function_accepts_kwarg(f, kwarg)::Bool + for method in methods(f) + kwarg in Base.kwarg_decl(method) && return true + end + return false +end + "Create an OrdinaryDiffEqAlgorithm from solver config" -function algorithm(solver::Solver)::OrdinaryDiffEqAlgorithm +function algorithm(solver::Solver; u0 = [])::OrdinaryDiffEqAlgorithm algotype = get(algorithms, solver.algorithm, nothing) if algotype === nothing options = join(keys(algorithms), ", ") error("Given solver algorithm $(solver.algorithm) not supported.\n\ Available options are: ($(options)).") end - # not all algorithms support this keyword - try - algotype(; solver.autodiff) - catch - algotype() + kwargs = Dict{Symbol, Any}() + + if algotype <: OrdinaryDiffEqNewtonAdaptiveAlgorithm + kwargs[:nlsolve] = NLNewton(; + relax = Ribasim.MonitoredBackTracking(; z_tmp = copy(u0), dz_tmp = copy(u0)), + ) + end + + if function_accepts_kwarg(algotype, :step_limiter!) + kwargs[:step_limiter!] = Ribasim.limit_flow! end + + if function_accepts_kwarg(algotype, :autodiff) + kwargs[:autodiff] = solver.autodiff + end + + algotype(; kwargs...) end "Convert the saveat Float64 from our Config to SciML's saveat" diff --git a/core/src/graph.jl b/core/src/graph.jl index a2ab6f919..d7e32d6a8 100644 --- a/core/src/graph.jl +++ b/core/src/graph.jl @@ -5,24 +5,35 @@ Return a directed metagraph with data of nodes (NodeMetadata): and data of edges (EdgeMetadata): [`EdgeMetadata`](@ref) """ -function create_graph(db::DB, config::Config, chunk_sizes::Vector{Int})::MetaGraph +function create_graph(db::DB, config::Config)::MetaGraph node_rows = execute( db, "SELECT node_id, node_type, subnetwork_id FROM Node ORDER BY node_type, node_id", ) edge_rows = execute( db, - "SELECT fid, from_node_type, from_node_id, to_node_type, to_node_id, edge_type, subnetwork_id FROM Edge ORDER BY fid", + """ + SELECT + Edge.edge_id, + FromNode.node_id AS from_node_id, + FromNode.node_type AS from_node_type, + ToNode.node_id AS to_node_id, + ToNode.node_type AS to_node_type, + Edge.edge_type, + Edge.subnetwork_id + FROM Edge + LEFT JOIN Node AS FromNode ON FromNode.node_id = Edge.from_node_id + LEFT JOIN Node AS ToNode ON ToNode.node_id = Edge.to_node_id + """, ) # Node IDs per subnetwork node_ids = Dict{Int32, Set{NodeID}}() # Source edges per subnetwork edges_source = Dict{Int32, Set{EdgeMetadata}}() - # The flow counter gives a unique consecutive id to the - # flow edges to index the flow vectors - flow_counter = 0 + # The metadata of the flow edges in the order in which they are in the input + # and will be in the output + flow_edges = EdgeMetadata[] # Dictionary from flow edge to index in flow vector - flow_dict = Dict{Tuple{NodeID, NodeID}, Int}() graph = MetaGraph( DiGraph(); label_type = NodeID, @@ -47,7 +58,7 @@ function create_graph(db::DB, config::Config, chunk_sizes::Vector{Int})::MetaGra errors = false for (; - fid, + edge_id, from_node_type, from_node_id, to_node_type, @@ -67,21 +78,19 @@ function create_graph(db::DB, config::Config, chunk_sizes::Vector{Int})::MetaGra subnetwork_id = 0 end edge_metadata = EdgeMetadata(; - id = fid, - flow_idx = edge_type == EdgeType.flow ? flow_counter + 1 : 0, + id = edge_id, type = edge_type, subnetwork_id_source = subnetwork_id, edge = (id_src, id_dst), ) + if edge_type == EdgeType.flow + push!(flow_edges, edge_metadata) + end if haskey(graph, id_src, id_dst) errors = true @error "Duplicate edge" id_src id_dst end graph[id_src, id_dst] = edge_metadata - if edge_type == EdgeType.flow - flow_counter += 1 - flow_dict[(id_src, id_dst)] = flow_counter - end if subnetwork_id != 0 if !haskey(edges_source, subnetwork_id) edges_source[subnetwork_id] = Set{EdgeMetadata}() @@ -97,24 +106,8 @@ function create_graph(db::DB, config::Config, chunk_sizes::Vector{Int})::MetaGra error("Incomplete connectivity in subnetwork") end - flow = zeros(flow_counter) - flow_prev = fill(NaN, flow_counter) - flow_integrated = zeros(flow_counter) - if config.solver.autodiff - flow = DiffCache(flow, chunk_sizes) - end - flow_edges = [edge for edge in values(graph.edge_data) if edge.type == EdgeType.flow] - graph_data = (; - node_ids, - edges_source, - flow_edges, - flow_dict, - flow, - flow_prev, - flow_integrated, - config.solver.saveat, - ) - graph = @set graph.graph_data = graph_data + graph_data = (; node_ids, edges_source, flow_edges, config.solver.saveat) + @reset graph.graph_data = graph_data return graph end @@ -174,61 +167,6 @@ function Base.iterate(iter::OutNeighbors, state = 1) return label_out, state end -""" -Set the given flow q over the edge between the given nodes. -""" -function set_flow!(graph::MetaGraph, id_src::NodeID, id_dst::NodeID, q::Number)::Nothing - (; flow_dict) = graph[] - flow_idx = flow_dict[(id_src, id_dst)] - set_flow!(graph, flow_idx, q) - return nothing -end - -function set_flow!(graph::MetaGraph, edge_metadata::EdgeMetadata, q::Number)::Nothing - set_flow!(graph, edge_metadata.flow_idx, q) - return nothing -end - -function set_flow!(graph, flow_idx::Int, q::Number)::Nothing - (; flow) = graph[] - get_tmp(flow, q)[flow_idx] = q - return nothing -end - -""" -Get the flow over the given edge (val is needed for get_tmp from ForwardDiff.jl). -""" -function get_flow(graph::MetaGraph, id_src::NodeID, id_dst::NodeID, val)::Number - (; flow_dict) = graph[] - flow_idx = flow_dict[id_src, id_dst] - return get_flow(graph, flow_idx, val) -end - -function get_flow(graph, edge_metadata::EdgeMetadata, val)::Number - return get_flow(graph, edge_metadata.flow_idx, val) -end - -function get_flow(graph::MetaGraph, flow_idx::Int, val) - return get_tmp(graph[].flow, val)[flow_idx] -end - -function get_flow_prev(graph, id_src::NodeID, id_dst::NodeID, val)::Number - # Note: Can be removed after https://github.com/Deltares/Ribasim/pull/1444 - (; flow_dict) = graph[] - flow_idx = flow_dict[id_src, id_dst] - return get_flow(graph, flow_idx, val) -end - -function get_flow_prev(graph, edge_metadata::EdgeMetadata, val)::Number - # Note: Can be removed after https://github.com/Deltares/Ribasim/pull/1444 - return get_flow_prev(graph, edge_metadata.flow_idx, val) -end - -function get_flow_prev(graph::MetaGraph, flow_idx::Int, val) - # Note: Can be removed after https://github.com/Deltares/Ribasim/pull/1444 - return get_tmp(graph[].flow_prev, val)[flow_idx] -end - """ Get the inneighbor node IDs of the given node ID (label) over the given edge type in the graph. @@ -304,11 +242,37 @@ function inflow_id(graph::MetaGraph, id::NodeID)::NodeID end """ -Get the metadata of an edge in the graph from an edge of the underlying -DiGraph. +Get the specific q from the input vector `flow` which has the same components as +the state vector, given an edge (inflow_id, outflow_id). +`flow` can be either instantaneous or integrated/averaged. Instantaneous FlowBoundary flows can be obtained +from the parameters, but integrated/averaged FlowBoundary flows must be provided via `boundary_flow`. """ -function metadata_from_edge(graph::MetaGraph, edge::Edge{Int})::EdgeMetadata - label_src = label_for(graph, edge.src) - label_dst = label_for(graph, edge.dst) - return graph[label_src, label_dst] +function get_flow( + flow::ComponentVector, + p::Parameters, + t::Number, + edge::Tuple{NodeID, NodeID}; + boundary_flow = nothing, +) + (; flow_boundary) = p + from_id = edge[1] + if from_id.type == NodeType.FlowBoundary + if boundary_flow === nothing + flow_boundary.active[from_id.idx] ? flow_boundary.flow_rate[from_id.idx](t) : + 0.0 + else + boundary_flow[from_id.idx] + end + else + flow[get_state_index(flow, edge)] + end +end + +function get_influx(du::ComponentVector, id::NodeID, p::Parameters) + @assert id.type == NodeType.Basin + (; basin) = p + (; vertical_flux) = basin + fixed_area = basin_areas(basin, id.idx)[end] + return fixed_area * vertical_flux.precipitation[id.idx] + + vertical_flux.drainage[id.idx] - du.evaporation[id.idx] - du.infiltration[id.idx] end diff --git a/core/src/logging.jl b/core/src/logging.jl index de4dcad96..7d40228c7 100644 --- a/core/src/logging.jl +++ b/core/src/logging.jl @@ -8,7 +8,7 @@ function is_current_module(log)::Bool (log._module == @__MODULE__) || (parentmodule(log._module) == @__MODULE__) || - log._module == OrdinaryDiffEq # for the progress bar + log._module == OrdinaryDiffEqCore # for the progress bar end function setup_logger(; @@ -26,3 +26,36 @@ function setup_logger(; LoggingExtras.TeeLogger(file_logger, terminal_logger), ) end + +function log_bottlenecks(model; converged::Bool) + (; cache, p, u) = model.integrator + (; basin) = p + + level = converged ? LoggingExtras.Info : LoggingExtras.Warn + + # Indicate convergence bottlenecks if possible with the current algorithm + if hasproperty(cache, :nlsolver) + flow_error = @. abs(cache.nlsolver.cache.atmp / u) + errors = Pair{Symbol, Float64}[] + error_count = 0 + max_errors = 5 + # Iterate over the errors in descending order + for i in sortperm(flow_error; rev = true) + node_id = Symbol(id_from_state_index(p, u, i)) + error = flow_error[i] + isnan(error) && continue # NaN are sorted as largest + # Stop reporting errors if they are too small or too many + if error < model.config.solver.reltol || error_count >= max_errors + break + end + push!(errors, node_id => error) + error_count += 1 + end + if !isempty(errors) + @logmsg level "Convergence bottlenecks in descending order of severity:" errors... + end + else + algorithm = model.config.solver.algorithm + @logmsg level "Convergence bottlenecks are not shown for the chosen solver algorithm." algorithm + end +end diff --git a/core/src/main.jl b/core/src/main.jl index a90bd4702..95eb43764 100644 --- a/core/src/main.jl +++ b/core/src/main.jl @@ -39,44 +39,42 @@ function main(toml_path::AbstractString)::Cint if config.ribasim_version != cli.ribasim_version @warn "The Ribasim version in the TOML config file does not match the used Ribasim CLI version." config.ribasim_version cli.ribasim_version end - @info "Starting a Ribasim simulation." cli.ribasim_version starttime endtime - model = run(config) - if successful_retcode(model) - @info "The model finished successfully" - return 0 + @info "Starting a Ribasim simulation." toml_path cli.ribasim_version starttime endtime + if any(config.experimental) + @warn "The following *experimental* features are enabled: $(config.experimental)" end - t = datetime_since(model.integrator.t, starttime) - retcode = model.integrator.sol.retcode - @error "The model exited at model time $t with return code $retcode.\nSee https://docs.sciml.ai/DiffEqDocs/stable/basics/solution/#retcodes" + try + model = run(config) - (; cache, p, u) = model.integrator - (; basin) = p - # Indicate convergence bottlenecks if possible with the current algorithm - if hasproperty(cache, :nlsolver) - storage_error = @. abs(cache.nlsolver.cache.atmp.storage / u.storage) - perm = sortperm(storage_error; rev = true) - println( - "The following basins were identified as convergence bottlenecks (in descending order of severity):", - ) - for i in perm - node_id = basin.node_id[i] - error = storage_error[i] - if error < config.solver.reltol - break - end - println("$node_id, error = $error") + if successful_retcode(model) + log_bottlenecks(model; converged = true) + @info "The model finished successfully." + return 0 + else + # OrdinaryDiffEq doesn't error on e.g. convergence failure, + # but we want a non-zero exit code in that case. + log_bottlenecks(model; converged = false) + t = datetime_since(model.integrator.t, starttime) + retcode = model.integrator.sol.retcode + @error """The model exited at model time $t with return code $retcode. + See https://docs.sciml.ai/DiffEqDocs/stable/basics/solution/#retcodes""" + return 1 end - else - algorithm = model.config.solver_algorithm - println( - "The current algorithm ($algorithm) does not support indicating convergence bottlenecks, for that try a different one.", - ) + + catch + # Both validation errors that we throw and unhandled exceptions are caught here. + # To make it easier to find the cause, log the stacktrace to the terminal and log file. + stack = current_exceptions() + Base.invokelatest(Base.display_error, stack) + Base.invokelatest(Base.display_error, io, stack) + return 1 end - return 1 end end catch + # If it fails before we get to setup the logger, we can't log to a file. + # This happens if e.g. the config is invalid. Base.invokelatest(Base.display_error, current_exceptions()) return 1 end diff --git a/core/src/model.jl b/core/src/model.jl index 2a12beea8..e0047ca0d 100644 --- a/core/src/model.jl +++ b/core/src/model.jl @@ -1,7 +1,8 @@ -struct SavedResults{V1 <: ComponentVector{Float64}} - flow::SavedValues{Float64, SavedFlow} - vertical_flux::SavedValues{Float64, V1} +struct SavedResults{V <: ComponentVector{Float64}} + flow::SavedValues{Float64, SavedFlow{V}} + basin_state::SavedValues{Float64, SavedBasinState} subgrid_level::SavedValues{Float64, Vector{Float64}} + solver_stats::SavedValues{Float64, SolverStats} end """ @@ -36,18 +37,12 @@ function Model(config_path::AbstractString)::Model end function Model(config::Config)::Model - alg = algorithm(config.solver) - db_path = input_path(config, config.database) + db_path = database_path(config) if !isfile(db_path) @error "Database file not found" db_path error("Database file not found") end - # Setup timing logging - if config.logging.timing - TimerOutputs.enable_debug_timings(Ribasim) # causes recompilation (!) - end - # All data from the database that we need during runtime is copied into memory, # so we can directly close it again. db = SQLite.DB(db_path) @@ -59,7 +54,7 @@ function Model(config::Config)::Model error("Invalid edge types found.") end - local parameters, state, n, tstops + local parameters, tstops try parameters = Parameters(db, config) @@ -67,17 +62,21 @@ function Model(config::Config)::Model error("Invalid discrete control state definition(s).") end - (; pid_control, graph, outlet, basin, tabulated_rating_curve) = parameters + (; pid_control, graph, outlet, pump, basin, tabulated_rating_curve) = parameters if !valid_pid_connectivity(pid_control.node_id, pid_control.listen_node_id, graph) error("Invalid PidControl connectivity.") end - if !valid_outlet_crest_level!(graph, outlet, basin) - error("Invalid minimum crest level of outlet") + if !valid_min_upstream_level!(graph, outlet, basin) + error("Invalid minimum upstream level of Outlet.") + end + + if !valid_min_upstream_level!(graph, pump, basin) + error("Invalid minimum upstream level of Pump.") end if !valid_tabulated_curve_level(graph, tabulated_rating_curve, basin) - error("Invalid level of tabulated rating curve") + error("Invalid level of TabulatedRatingCurve.") end # tell the solver to stop when new data comes in @@ -95,66 +94,73 @@ function Model(config::Config)::Model push!(tstops, get_tstops(time_schema.time, config.starttime)) end - # use state - state = load_structvector(db, config, BasinStateV1) - n = length(get_ids(db, "Basin")) - finally # always close the database, also in case of an error close(db) end @debug "Read database into memory." - storage = get_storages_from_levels(parameters.basin, state.level) + u0 = build_state_vector(parameters) + du0 = zero(u0) - # Synchronize level with storage - set_current_basin_properties!(parameters.basin, storage) + parameters = set_state_flow_edges(parameters, u0) + parameters = build_flow_to_storage(parameters, u0) + @reset parameters.u_prev_saveat = zero(u0) + + # The Solver algorithm + alg = algorithm(config.solver; u0) - @assert length(storage) == n "Basin / state length differs from number of Basins" - # Integrals for PID control - integral = zeros(length(parameters.pid_control.node_id)) - u0 = ComponentVector{Float64}(; storage, integral) # for Float32 this method allows max ~1000 year simulations without accuracy issues t_end = seconds_since(config.endtime, config.starttime) @assert eps(t_end) < 3600 "Simulation time too long" t0 = zero(t_end) timespan = (t0, t_end) + # Synchronize level with storage + set_current_basin_properties!(du0, u0, parameters, t0) + + # Previous level is used to estimate the minimum level that was attained during a time step + # in limit_flow! + parameters.basin.level_prev .= + parameters.basin.current_properties.current_level[parent(u0)] + saveat = convert_saveat(config.solver.saveat, t_end) saveat isa Float64 && push!(tstops, range(0, t_end; step = saveat)) tstops = sort(unique(vcat(tstops...))) adaptive, dt = convert_dt(config.solver.dt) - jac_prototype = config.solver.sparse ? get_jac_prototype(parameters) : nothing + jac_prototype = if config.solver.sparse + get_jac_prototype(du0, u0, parameters, t0) + else + nothing + end RHS = ODEFunction(water_balance!; jac_prototype) - @timeit_debug to "Setup ODEProblem" begin - prob = ODEProblem(RHS, u0, timespan, parameters) - end + prob = ODEProblem(RHS, u0, timespan, parameters) @debug "Setup ODEProblem." - callback, saved = create_callbacks(parameters, config, saveat) + callback, saved = create_callbacks(parameters, config, u0, saveat) @debug "Created callbacks." # Run water_balance! before initializing the integrator. This is because # at this initialization the discrete control callback is called for the first # time which depends on the flows formulated in water_balance! - water_balance!(copy(u0), u0, parameters, t0) + water_balance!(du0, u0, parameters, t0) # Initialize the integrator, providing all solver options as described in # https://docs.sciml.ai/DiffEqDocs/stable/basics/common_solver_opts/ # Not all keyword arguments (e.g. `dt`) support `nothing`, in which case we follow # https://github.com/SciML/OrdinaryDiffEq.jl/blob/v6.57.0/src/solve.jl#L10 - @timeit_debug to "Setup integrator" integrator = init( + integrator = init( prob, alg; progress = true, progress_name = "Simulating", progress_steps = 100, + save_everystep = false, callback, tstops, - isoutofdomain = (u, p, t) -> any(<(0), u.storage), - saveat, + isoutofdomain, adaptive, dt, config.solver.dtmin, @@ -166,10 +172,6 @@ function Model(config::Config)::Model ) @debug "Setup integrator." - if config.logging.timing - @show Ribasim.to - end - if config.allocation.use_allocation && is_active(parameters.allocation) set_initial_allocation_mean_flows!(integrator) end @@ -180,7 +182,8 @@ function Model(config::Config)::Model end "Get all saved times in seconds since start" -tsaves(model::Model)::Vector{Float64} = model.integrator.sol.t +tsaves(model::Model)::Vector{Float64} = + [0.0, (cvec.t for cvec in model.saved.flow.saveval)...] "Get all saved times as a Vector{DateTime}" function datetimes(model::Model)::Vector{DateTime} @@ -213,7 +216,6 @@ function SciMLBase.step!(model::Model, dt::Float64)::Model if round(ntimes) ≈ ntimes update_allocation!(integrator) end - set_previous_flows!(integrator) step!(integrator, dt, true) return model end diff --git a/core/src/parameter.jl b/core/src/parameter.jl index 78d6857ca..4e1c308d7 100644 --- a/core/src/parameter.jl +++ b/core/src/parameter.jl @@ -1,6 +1,25 @@ + +# Universal reduction factor threshold for the low storage factor +const LOW_STORAGE_THRESHOLD = 10.0 + +# Universal reduction factor threshold for the minimum upstream level of UserDemand nodes +const USER_DEMAND_MIN_LEVEL_THRESHOLD = 0.1 + +const SolverStats = @NamedTuple{ + time::Float64, + rhs_calls::Int, + linear_solves::Int, + accepted_timesteps::Int, + rejected_timesteps::Int, +} + # EdgeType.flow and NodeType.FlowBoundary @enumx EdgeType flow control none @eval @enumx NodeType $(config.nodetypes...) +@enumx ContinuousControlType None Continuous PID +@enumx Substance Continuity = 1 Initial = 2 LevelBoundary = 3 FlowBoundary = 4 UserDemand = + 5 Drainage = 6 Precipitation = 7 +Base.to_index(id::Substance.T) = Int(id) # used to index into concentration matrices # Support creating a NodeType enum instance from a symbol or string function NodeType.T(s::Symbol)::NodeType.T @@ -53,10 +72,24 @@ function NodeID(type::NodeType.T, value::Integer, db::DB)::NodeID ), ), ) - @assert idx > 0 + if idx <= 0 + error("Node ID #$value of type $type is not in the Node table.") + end return NodeID(type, value, idx) end +function NodeID(value::Integer, db::DB)::NodeID + (idx, type) = execute( + columntable, + db, + "SELECT COUNT(*), node_type FROM Node WHERE node_type == (SELECT node_type FROM Node WHERE node_id == $value) AND node_id <= $value", + ) + if only(idx) <= 0 + error("Node ID #$value is not in the Node table.") + end + return NodeID(only(type), value, only(idx)) +end + Base.Int32(id::NodeID) = id.value Base.convert(::Type{Int32}, id::NodeID) = id.value Base.broadcastable(id::NodeID) = Ref(id) @@ -72,19 +105,42 @@ end Base.to_index(id::NodeID) = Int(id.value) -const ScalarInterpolation = LinearInterpolation{Vector{Float64}, Vector{Float64}, Float64} +const ScalarInterpolation = LinearInterpolation{ + Vector{Float64}, + Vector{Float64}, + Vector{Float64}, + Vector{Float64}, + Float64, + (1,), +} + +set_zero!(v) = v .= zero(eltype(v)) +const Cache = LazyBufferCache{Returns{Int}, typeof(set_zero!)} + +""" +Cache for in place computations within water_balance!, with different eltypes +for different situations: +- Symbolics.Num for Jacobian sparsity detection +- ForwardDiff.Dual for automatic differentiation +- Float64 for normal calls + +The caches are always initialized with zeros +""" +cache(len::Int)::Cache = LazyBufferCache(Returns(len); initializer! = set_zero!) """ Store information for a subnetwork used for allocation. subnetwork_id: The ID of this allocation network capacity: The capacity per edge of the allocation network, as constrained by nodes that have a max_flow_rate +flow_priority: The flows over all the edges in the subnetwork for a certain priority (used for allocation_flow output) problem: The JuMP.jl model for solving the allocation problem Δt_allocation: The time interval between consecutive allocation solves """ @kwdef struct AllocationModel subnetwork_id::Int32 capacity::JuMP.Containers.SparseAxisArray{Float64, 2, Tuple{NodeID, NodeID}} + flow_priority::JuMP.Containers.SparseAxisArray{Float64, 2, Tuple{NodeID, NodeID}} problem::JuMP.Model Δt_allocation::Float64 end @@ -172,7 +228,6 @@ end """ Type for storing metadata of edges in the graph: id: ID of the edge (only used for labeling flow output) -flow_idx: Index in the vector of flows type: type of the edge subnetwork_id_source: ID of subnetwork where this edge is a source (0 if not a source) @@ -180,12 +235,13 @@ edge: (from node ID, to node ID) """ @kwdef struct EdgeMetadata id::Int32 - flow_idx::Int type::EdgeType.T subnetwork_id_source::Int32 edge::Tuple{NodeID, NodeID} end +Base.length(::EdgeMetadata) = 1 + """ The update of an parameter given by a value and a reference to the target location of the variable in memory @@ -210,21 +266,80 @@ for discrete control itp_update::Vector{ParameterUpdate{ScalarInterpolation}} = [] end +""" +In-memory storage of saved mean flows for writing to results. + +- `flow`: The mean flows on all edges and state-dependent forcings +- `inflow`: The sum of the mean flows coming into each Basin +- `outflow`: The sum of the mean flows going out of each Basin +- `flow_boundary`: The exact integrated mean flows of flow boundaries +- `precipitation`: The exact integrated mean precipitation +- `drainage`: The exact integrated mean drainage +- `concentration`: Concentrations for each Basin and substance +- `balance_error`: The (absolute) water balance error +- `relative_error`: The relative water balance error +- `t`: Endtime of the interval over which is averaged +""" +@kwdef struct SavedFlow{V} + flow::V + inflow::Vector{Float64} + outflow::Vector{Float64} + flow_boundary::Vector{Float64} + precipitation::Vector{Float64} + drainage::Vector{Float64} + concentration::Matrix{Float64} + storage_rate::Vector{Float64} = zero(precipitation) + balance_error::Vector{Float64} = zero(precipitation) + relative_error::Vector{Float64} = zero(precipitation) + t::Float64 +end + +""" +In-memory storage of saved instantaneous storages and levels for writing to results. +""" +@kwdef struct SavedBasinState + storage::Vector{Float64} + level::Vector{Float64} + t::Float64 +end + abstract type AbstractParameterNode end abstract type AbstractDemandNode <: AbstractParameterNode end """ -In-memory storage of saved mean flows for writing to results. - -- `flow`: The mean flows on all edges -- `inflow`: The sum of the mean flows coming into each basin -- `outflow`: The sum of the mean flows going out of each basin +Caches of current basin properties """ -@kwdef struct SavedFlow - flow::Vector{Float64} - inflow::Vector{Float64} - outflow::Vector{Float64} +struct CurrentBasinProperties + current_storage::Cache + # Low storage factor for reducing flows out of drying basins + # given the current storages + current_low_storage_factor::Cache + current_level::Cache + current_area::Cache + current_cumulative_precipitation::Cache + current_cumulative_drainage::Cache + function CurrentBasinProperties(n) + new((cache(n) for _ in 1:6)...) + end +end + +@kwdef struct ConcentrationData + # Config setting to enable/disable evaporation of mass + evaporate_mass::Bool = true + # Cumulative inflow for each Basin at a given time + cumulative_in::Vector{Float64} + # matrix with concentrations for each Basin and substance + concentration_state::Matrix{Float64} # Basin, substance + # matrix with boundary concentrations for each boundary, Basin and substance + concentration::Array{Float64, 3} + # matrix with mass for each Basin and substance + mass::Matrix{Float64} + # substances in use by the model (ordered like their axis in the concentration matrices) + substances::OrderedSet{Symbol} + # Data source for external concentrations (used in control) + concentration_external::Vector{Dict{String, ScalarInterpolation}} = + Dict{String, ScalarInterpolation}[] end """ @@ -243,28 +358,46 @@ else T = Vector{Float64} end """ -@kwdef struct Basin{T, C, V1, V2, V3} <: AbstractParameterNode +@kwdef struct Basin{V, C, CD, D} <: AbstractParameterNode node_id::Vector{NodeID} inflow_ids::Vector{Vector{NodeID}} = [NodeID[]] outflow_ids::Vector{Vector{NodeID}} = [NodeID[]] # Vertical fluxes - vertical_flux_from_input::V1 = zeros(length(node_id)) - vertical_flux::V2 = zeros(length(node_id)) - vertical_flux_prev::V3 = zeros(length(node_id)) - vertical_flux_integrated::V3 = zeros(length(node_id)) - vertical_flux_bmi::V3 = zeros(length(node_id)) + vertical_flux::V = zeros(length(node_id)) + # Initial_storage + storage0::Vector{Float64} = zeros(length(node_id)) + # Storage at previous saveat without storage0 + Δstorage_prev_saveat::Vector{Float64} = zeros(length(node_id)) + # Analytically integrated forcings + cumulative_precipitation::Vector{Float64} = zeros(length(node_id)) + cumulative_drainage::Vector{Float64} = zeros(length(node_id)) + cumulative_precipitation_saveat::Vector{Float64} = zeros(length(node_id)) + cumulative_drainage_saveat::Vector{Float64} = zeros(length(node_id)) # Cache this to avoid recomputation - current_level::T = zeros(length(node_id)) - current_area::T = zeros(length(node_id)) + current_properties::CurrentBasinProperties = CurrentBasinProperties(length(node_id)) # Discrete values for interpolation storage_to_level::Vector{ - LinearInterpolationIntInv{Vector{Float64}, Vector{Float64}, Float64}, + LinearInterpolationIntInv{ + Vector{Float64}, + Vector{Float64}, + ScalarInterpolation, + Float64, + (1,), + }, } level_to_area::Vector{ScalarInterpolation} # Demands for allocation if applicable - demand::Vector{Float64} + demand::Vector{Float64} = zeros(length(node_id)) # Data source for parameter updates time::StructVector{BasinTimeV1, C, Int} + # Storage for each Basin at the previous time step + storage_prev::Vector{Float64} = zeros(length(node_id)) + # Level for each Basin at the previous time step + level_prev::Vector{Float64} = zeros(length(node_id)) + # Concentrations + concentration_data::CD = nothing + # Data source for concentration updates + concentration_time::StructVector{BasinConcentrationV1, D, Int} end """ @@ -281,9 +414,10 @@ of Vectors or Arrow Primitives, and is added to avoid type instabilities. node_id: node ID of the TabulatedRatingCurve node inflow_edge: incoming flow edge metadata The ID of the destination node is always the ID of the TabulatedRatingCurve node -outflow_edges: outgoing flow edges metadata +outflow_edge: outgoing flow edge metadata The ID of the source node is always the ID of the TabulatedRatingCurve node active: whether this node is active and thus contributes flows +max_downstream_level: The downstream level above which the TabulatedRatingCurve flow goes to zero table: The current Q(h) relationships time: The time table used for updating the tables control_mapping: dictionary from (node_id, control_state) to Q(h) and/or active state @@ -291,8 +425,9 @@ control_mapping: dictionary from (node_id, control_state) to Q(h) and/or active @kwdef struct TabulatedRatingCurve{C} <: AbstractParameterNode node_id::Vector{NodeID} inflow_edge::Vector{EdgeMetadata} - outflow_edges::Vector{Vector{EdgeMetadata}} + outflow_edge::Vector{EdgeMetadata} active::Vector{Bool} + max_downstream_level::Vector{Float64} = fill(Inf, length(node_id)) table::Vector{ScalarInterpolation} time::StructVector{TabulatedRatingCurveTimeV1, C, Int} control_mapping::Dict{Tuple{NodeID, String}, ControlStateUpdate} @@ -374,73 +509,94 @@ end """ node_id: node ID of the LevelBoundary node active: whether this node is active -level: the fixed level of this 'infinitely big basin' +level: the fixed level of this 'infinitely big Basin' +concentration: matrix with boundary concentrations for each Basin and substance +concentration_time: Data source for concentration updates """ -@kwdef struct LevelBoundary <: AbstractParameterNode +@kwdef struct LevelBoundary{C} <: AbstractParameterNode node_id::Vector{NodeID} active::Vector{Bool} level::Vector{ScalarInterpolation} + concentration::Matrix{Float64} + concentration_time::StructVector{LevelBoundaryConcentrationV1, C, Int} end """ node_id: node ID of the FlowBoundary node outflow_edges: The outgoing flow edge metadata active: whether this node is active and thus contributes flow -flow_rate: target flow rate +cumulative_flow: The exactly integrated cumulative boundary flow since the start of the simulation +cumulative_flow_saveat: The exactly integrated cumulative boundary flow since the last saveat +flow_rate: flow rate (exact) +concentration: matrix with boundary concentrations for each Basin and substance +concentration_time: Data source for concentration updates """ -@kwdef struct FlowBoundary <: AbstractParameterNode +@kwdef struct FlowBoundary{C} <: AbstractParameterNode node_id::Vector{NodeID} outflow_edges::Vector{Vector{EdgeMetadata}} active::Vector{Bool} + cumulative_flow::Vector{Float64} = zeros(length(node_id)) + cumulative_flow_saveat::Vector{Float64} = zeros(length(node_id)) flow_rate::Vector{ScalarInterpolation} + concentration::Matrix{Float64} + concentration_time::StructVector{FlowBoundaryConcentrationV1, C, Int} end """ node_id: node ID of the Pump node inflow_edge: incoming flow edge metadata The ID of the destination node is always the ID of the Pump node -outflow_edges: outgoing flow edges metadata +outflow_edge: outgoing flow edge metadata The ID of the source node is always the ID of the Pump node active: whether this node is active and thus contributes flow flow_rate: target flow rate min_flow_rate: The minimal flow rate of the pump max_flow_rate: The maximum flow rate of the pump +min_upstream_level: The upstream level below which the Pump flow goes to zero +max_downstream_level: The downstream level above which the Pump flow goes to zero control_mapping: dictionary from (node_id, control_state) to target flow rate -is_pid_controlled: whether the flow rate of this pump is governed by PID control +continuous_control_type: one of None, ContinuousControl, PidControl """ -@kwdef struct Pump{T} <: AbstractParameterNode +@kwdef struct Pump <: AbstractParameterNode node_id::Vector{NodeID} inflow_edge::Vector{EdgeMetadata} = [] - outflow_edges::Vector{Vector{EdgeMetadata}} = [] + outflow_edge::Vector{EdgeMetadata} = [] active::Vector{Bool} = fill(true, length(node_id)) - flow_rate::T + flow_rate::Cache = cache(length(node_id)) min_flow_rate::Vector{Float64} = zeros(length(node_id)) max_flow_rate::Vector{Float64} = fill(Inf, length(node_id)) + min_upstream_level::Vector{Float64} = fill(-Inf, length(node_id)) + max_downstream_level::Vector{Float64} = fill(Inf, length(node_id)) control_mapping::Dict{Tuple{NodeID, String}, ControlStateUpdate} - is_pid_controlled::Vector{Bool} = fill(false, length(node_id)) + continuous_control_type::Vector{ContinuousControlType.T} = + fill(ContinuousControlType.None, length(node_id)) function Pump( node_id, inflow_edge, - outflow_edges, + outflow_edge, active, - flow_rate::T, + flow_rate, min_flow_rate, max_flow_rate, + min_upstream_level, + max_downstream_level, control_mapping, - is_pid_controlled, - ) where {T} - if valid_flow_rates(node_id, get_tmp(flow_rate, 0), control_mapping) - return new{T}( + continuous_control_type, + ) + if valid_flow_rates(node_id, flow_rate[Float64[]], control_mapping) + return new( node_id, inflow_edge, - outflow_edges, + outflow_edge, active, flow_rate, min_flow_rate, max_flow_rate, + min_upstream_level, + max_downstream_level, control_mapping, - is_pid_controlled, + continuous_control_type, ) else error("Invalid Pump flow rate(s).") @@ -452,51 +608,57 @@ end node_id: node ID of the Outlet node inflow_edge: incoming flow edge metadata. The ID of the destination node is always the ID of the Outlet node -outflow_edges: outgoing flow edges metadata. +outflow_edge: outgoing flow edge metadata. The ID of the source node is always the ID of the Outlet node active: whether this node is active and thus contributes flow flow_rate: target flow rate min_flow_rate: The minimal flow rate of the outlet max_flow_rate: The maximum flow rate of the outlet +min_upstream_level: The upstream level below which the Outlet flow goes to zero +max_downstream_level: The downstream level above which the Outlet flow goes to zero control_mapping: dictionary from (node_id, control_state) to target flow rate -is_pid_controlled: whether the flow rate of this outlet is governed by PID control +continuous_control_type: one of None, ContinuousControl, PidControl """ -@kwdef struct Outlet{T} <: AbstractParameterNode +@kwdef struct Outlet <: AbstractParameterNode node_id::Vector{NodeID} inflow_edge::Vector{EdgeMetadata} = [] - outflow_edges::Vector{Vector{EdgeMetadata}} = [] + outflow_edge::Vector{EdgeMetadata} = [] active::Vector{Bool} = fill(true, length(node_id)) - flow_rate::T + flow_rate::Cache = cache(length(node_id)) min_flow_rate::Vector{Float64} = zeros(length(node_id)) max_flow_rate::Vector{Float64} = fill(Inf, length(node_id)) - min_crest_level::Vector{Float64} = fill(-Inf, length(node_id)) + min_upstream_level::Vector{Float64} = fill(-Inf, length(node_id)) + max_downstream_level::Vector{Float64} = fill(Inf, length(node_id)) control_mapping::Dict{Tuple{NodeID, String}, ControlStateUpdate} = Dict() - is_pid_controlled::Vector{Bool} = fill(false, length(node_id)) + continuous_control_type::Vector{ContinuousControlType.T} = + fill(ContinuousControlType.None, length(node_id)) function Outlet( node_id, - inflow_id, - outflow_ids, + inflow_edge, + outflow_edge, active, - flow_rate::T, + flow_rate, min_flow_rate, max_flow_rate, - min_crest_level, + min_upstream_level, + max_downstream_level, control_mapping, - is_pid_controlled, - ) where {T} - if valid_flow_rates(node_id, get_tmp(flow_rate, 0), control_mapping) - return new{T}( + continuous_control_type, + ) + if valid_flow_rates(node_id, flow_rate[Float64[]], control_mapping) + return new( node_id, - inflow_id, - outflow_ids, + inflow_edge, + outflow_edge, active, flow_rate, min_flow_rate, max_flow_rate, - min_crest_level, + min_upstream_level, + max_downstream_level, control_mapping, - is_pid_controlled, + continuous_control_type, ) else error("Invalid Outlet flow rate(s).") @@ -511,19 +673,41 @@ node_id: node ID of the Terminal node node_id::Vector{NodeID} end +""" +A variant on `Base.Ref` where the source array is a vector that is possibly wrapped in a ForwardDiff.LazyBufferCache, +or a reference to the state derivative vector du. +Retrieve value with get_value(ref::PreallocationRef, val) where `val` determines the return type. +""" +struct PreallocationRef + vector::Cache + idx::Int + from_du::Bool + function PreallocationRef(vector::Cache, idx::Int; from_du = false) + new(vector, idx, from_du) + end +end + +get_value(ref::PreallocationRef, du) = + ref.from_du ? du[ref.idx] : ref.vector[parent(du)][ref.idx] + +function set_value!(ref::PreallocationRef, value, du)::Nothing + ref.vector[parent(du)][ref.idx] = value + return nothing +end + """ The data for a single compound variable node_id:: The ID of the DiscreteControl that listens to this variable subvariables: data for one single subvariable greater_than: the thresholds this compound variable will be - compared against + compared against (in the case of DiscreteControl) """ @kwdef struct CompoundVariable node_id::NodeID subvariables::Vector{ @NamedTuple{ listen_node_id::NodeID, - variable_ref::Base.RefArray{Float64, Vector{Float64}, Nothing}, + variable_ref::PreallocationRef, variable::String, weight::Float64, look_ahead::Float64, @@ -552,7 +736,7 @@ record: Namedtuple with discrete control information for results control_state_start::Vector{Float64} = zeros(length(node_id)) logic_mapping::Vector{Dict{Vector{Bool}, String}} control_mappings::Dict{NodeType.T, Dict{Tuple{NodeID, String}, ControlStateUpdate}} = - Dict() + Dict{NodeType.T, Dict{Tuple{NodeID, String}, ControlStateUpdate}}() record::@NamedTuple{ time::Vector{Float64}, control_node_id::Vector{Int32}, @@ -566,26 +750,40 @@ record: Namedtuple with discrete control information for results ) end +@kwdef struct ContinuousControl <: AbstractParameterNode + node_id::Vector{NodeID} + compound_variable::Vector{CompoundVariable} + controlled_variable::Vector{String} + target_ref::Vector{PreallocationRef} + func::Vector{ScalarInterpolation} +end + """ PID control currently only supports regulating basin levels. node_id: node ID of the PidControl node active: whether this node is active and thus sets flow rates +controlled_node_id: The node that is being controlled listen_node_id: the id of the basin being controlled -pid_params: a vector interpolation for parameters changing over time. - The parameters are respectively target, proportional, integral, derivative, - where the last three are the coefficients for the PID equation. +target: target level (possibly time dependent) +target_ref: reference to the controlled flow_rate value +proportional: proportionality coefficient error +integral: proportionality coefficient error integral +derivative: proportionality coefficient error derivative error: the current error; basin_target - current_level +dictionary from (node_id, control_state) to target flow rate """ -@kwdef struct PidControl{T} <: AbstractParameterNode +@kwdef struct PidControl <: AbstractParameterNode node_id::Vector{NodeID} active::Vector{Bool} listen_node_id::Vector{NodeID} target::Vector{ScalarInterpolation} + target_ref::Vector{PreallocationRef} proportional::Vector{ScalarInterpolation} integral::Vector{ScalarInterpolation} derivative::Vector{ScalarInterpolation} - error::T + error::Cache = cache(length(node_id)) + controlled_basins::Vector{NodeID} control_mapping::Dict{Tuple{NodeID, String}, ControlStateUpdate} end @@ -596,7 +794,6 @@ inflow_edge: incoming flow edge outflow_edge: outgoing flow edge metadata The ID of the source node is always the ID of the UserDemand node active: whether this node is active and thus demands water -realized_bmi: Cumulative inflow volume, for read or reset by BMI only demand: water flux demand of UserDemand per priority (node_idx, priority_idx) Each UserDemand has a demand for all priorities, which is 0.0 if it is not provided explicitly. @@ -606,21 +803,24 @@ demand_itp: Timeseries interpolation objects for demands demand_from_timeseries: If false the demand comes from the BMI or is fixed allocated: water flux currently allocated to UserDemand per priority (node_idx, priority_idx) return_factor: the factor in [0,1] of how much of the abstracted water is given back to the system -min_level: The level of the source basin below which the UserDemand does not abstract +min_level: The level of the source Basin below which the UserDemand does not abstract +concentration: matrix with boundary concentrations for each Basin and substance +concentration_time: Data source for concentration updates """ -@kwdef struct UserDemand <: AbstractDemandNode +@kwdef struct UserDemand{C} <: AbstractDemandNode node_id::Vector{NodeID} inflow_edge::Vector{EdgeMetadata} = [] outflow_edge::Vector{EdgeMetadata} = [] active::Vector{Bool} = fill(true, length(node_id)) - realized_bmi::Vector{Float64} = zeros(length(node_id)) demand::Matrix{Float64} demand_reduced::Matrix{Float64} demand_itp::Vector{Vector{ScalarInterpolation}} demand_from_timeseries::Vector{Bool} allocated::Matrix{Float64} - return_factor::Vector{Float64} + return_factor::Vector{ScalarInterpolation} min_level::Vector{Float64} + concentration::Matrix{Float64} + concentration_time::StructVector{UserDemandConcentrationV1, C, Int} end """ @@ -664,15 +864,10 @@ node_ids: mapping subnetwork ID -> node IDs in that subnetwork edges_source: mapping subnetwork ID -> metadata of allocation source edges in that subnetwork flow_edges: The metadata of all flow edges -flow dict: mapping (source ID, destination ID) -> index in the flow vector of the flow over that edge -flow: Flow per flow edge in the order prescribed by flow_dict -flow_prev: The flow vector of the previous timestep, used for integration -flow_integrated: Flow integrated over time, used for mean flow computation - over saveat intervals saveat: The time interval between saves of output data (storage, flow, ...) """ -const ModelGraph{T} = MetaGraph{ +const ModelGraph = MetaGraph{ Int64, DiGraph{Int64}, NodeID, @@ -682,33 +877,47 @@ const ModelGraph{T} = MetaGraph{ node_ids::Dict{Int32, Set{NodeID}}, edges_source::Dict{Int32, Set{EdgeMetadata}}, flow_edges::Vector{EdgeMetadata}, - flow_dict::Dict{Tuple{NodeID, NodeID}, Int}, - flow::T, - flow_prev::Vector{Float64}, - flow_integrated::Vector{Float64}, saveat::Float64, }, MetaGraphsNext.var"#11#13", Float64, -} where {T} +} -@kwdef struct Parameters{T, C1, C2, V1, V2, V3} +@kwdef struct Parameters{C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11} starttime::DateTime - graph::ModelGraph{T} + graph::ModelGraph allocation::Allocation - basin::Basin{T, C1, V1, V2, V3} + basin::Basin{C1, C2, C3, C4} linear_resistance::LinearResistance manning_resistance::ManningResistance - tabulated_rating_curve::TabulatedRatingCurve{C2} - level_boundary::LevelBoundary - flow_boundary::FlowBoundary - pump::Pump{T} - outlet::Outlet{T} + tabulated_rating_curve::TabulatedRatingCurve{C5} + level_boundary::LevelBoundary{C6} + flow_boundary::FlowBoundary{C7} + pump::Pump + outlet::Outlet terminal::Terminal discrete_control::DiscreteControl - pid_control::PidControl{T} - user_demand::UserDemand + continuous_control::ContinuousControl + pid_control::PidControl + user_demand::UserDemand{C8} level_demand::LevelDemand flow_demand::FlowDemand subgrid::Subgrid + # Per state the in- and outflow edges associated with that state (if they exist) + state_inflow_edge::C9 = ComponentVector() + state_outflow_edge::C10 = ComponentVector() + all_nodes_active::Base.RefValue{Bool} = Ref(false) + tprev::Base.RefValue{Float64} = Ref(0.0) + # Sparse matrix for combining flows into storages + flow_to_storage::SparseMatrixCSC{Float64, Int64} = spzeros(1, 1) + # Water balance tolerances + water_balance_abstol::Float64 + water_balance_reltol::Float64 + # State at previous saveat + u_prev_saveat::C11 = ComponentVector() +end + +# To opt-out of type checking for ForwardDiff +function DiffEqBase.anyeltypedual(::Parameters, ::Type{Val{counter}}) where {counter} + Any end diff --git a/core/src/read.jl b/core/src/read.jl index acb34e37b..edcce108c 100644 --- a/core/src/read.jl +++ b/core/src/read.jl @@ -120,7 +120,11 @@ function parse_static_and_time( val = defaults[parameter_name] end if parameter_name in time_interpolatables - val = LinearInterpolation([val, val], trivial_timespan) + val = LinearInterpolation( + [val, val], + trivial_timespan; + cache_parameters = true, + ) end # Collect the parameter values in the parameter_values vector push!(parameter_values, val) @@ -294,6 +298,7 @@ function TabulatedRatingCurve( interpolations = ScalarInterpolation[] control_mapping = Dict{Tuple{NodeID, String}, ControlStateUpdate}() active = Bool[] + max_downstream_level = Float64[] errors = false for node_id in node_ids @@ -313,12 +318,15 @@ function TabulatedRatingCurve( IterTools.groupby(row -> coalesce(row.control_state, nothing), static_id) control_state = first(group).control_state is_active = coalesce(first(group).active, true) + max_level = coalesce(first(group).max_downstream_level, Inf) table = StructVector(group) - if !valid_tabulated_rating_curve(node_id, table) + rowrange = + findlastgroup(node_id, NodeID.(node_id.type, table.node_id, Ref(0))) + if !valid_tabulated_rating_curve(node_id, table, rowrange) errors = true end interpolation = try - qh_interpolation(node_id, table) + qh_interpolation(table, rowrange) catch LinearInterpolation(Float64[], Float64[]) end @@ -335,17 +343,23 @@ function TabulatedRatingCurve( end push!(interpolations, interpolation) push!(active, is_active) + push!(max_downstream_level, max_level) elseif node_id in time_node_ids source = "time" # get the timestamp that applies to the model starttime idx_starttime = searchsortedlast(time.time, config.starttime) pre_table = view(time, 1:idx_starttime) - if !valid_tabulated_rating_curve(node_id, pre_table) + rowrange = + findlastgroup(node_id, NodeID.(node_id.type, pre_table.node_id, Ref(0))) + + if !valid_tabulated_rating_curve(node_id, pre_table, rowrange) errors = true end - interpolation = qh_interpolation(node_id, pre_table) + interpolation = qh_interpolation(pre_table, rowrange) + max_level = coalesce(pre_table.max_downstream_level[rowrange][begin], Inf) push!(interpolations, interpolation) push!(active, true) + push!(max_downstream_level, max_level) else @error "$node_id data not in any table." errors = true @@ -358,8 +372,9 @@ function TabulatedRatingCurve( return TabulatedRatingCurve(; node_id = node_ids, inflow_edge = inflow_edge.(Ref(graph), node_ids), - outflow_edges = outflow_edges.(Ref(graph), node_ids), + outflow_edge = outflow_edge.(Ref(graph), node_ids), active, + max_downstream_level, table = interpolations, time, control_mapping, @@ -398,10 +413,10 @@ function ManningResistance( ) end - function LevelBoundary(db::DB, config::Config)::LevelBoundary static = load_structvector(db, config, LevelBoundaryStaticV1) time = load_structvector(db, config, LevelBoundaryTimeV1) + concentration_time = load_structvector(db, config, LevelBoundaryConcentrationV1) _, _, node_ids, valid = static_and_time_node_ids(db, static, time, "LevelBoundary") @@ -413,6 +428,12 @@ function LevelBoundary(db::DB, config::Config)::LevelBoundary parsed_parameters, valid = parse_static_and_time(db, config, LevelBoundary; static, time, time_interpolatables) + substances = get_substances(db, config) + concentration = zeros(length(node_ids), length(substances)) + concentration[:, Substance.Continuity] .= 1.0 + concentration[:, Substance.LevelBoundary] .= 1.0 + set_concentrations!(concentration, concentration_time, substances, node_ids) + if !valid error("Errors occurred when parsing LevelBoundary data.") end @@ -421,12 +442,15 @@ function LevelBoundary(db::DB, config::Config)::LevelBoundary node_id = node_ids, parsed_parameters.active, parsed_parameters.level, + concentration, + concentration_time, ) end function FlowBoundary(db::DB, config::Config, graph::MetaGraph)::FlowBoundary static = load_structvector(db, config, FlowBoundaryStaticV1) time = load_structvector(db, config, FlowBoundaryTimeV1) + concentration_time = load_structvector(db, config, FlowBoundaryConcentrationV1) _, _, node_ids, valid = static_and_time_node_ids(db, static, time, "FlowBoundary") @@ -447,6 +471,12 @@ function FlowBoundary(db::DB, config::Config, graph::MetaGraph)::FlowBoundary end end + substances = get_substances(db, config) + concentration = zeros(length(node_ids), length(substances)) + concentration[:, Substance.Continuity] .= 1.0 + concentration[:, Substance.FlowBoundary] .= 1.0 + set_concentrations!(concentration, concentration_time, substances, node_ids) + if !valid error("Errors occurred when parsing FlowBoundary data.") end @@ -456,56 +486,61 @@ function FlowBoundary(db::DB, config::Config, graph::MetaGraph)::FlowBoundary outflow_edges = outflow_edges.(Ref(graph), node_ids), parsed_parameters.active, parsed_parameters.flow_rate, + concentration, + concentration_time, ) end -function Pump(db::DB, config::Config, graph::MetaGraph, chunk_sizes::Vector{Int})::Pump +function Pump(db::DB, config::Config, graph::MetaGraph)::Pump static = load_structvector(db, config, PumpStaticV1) - defaults = (; min_flow_rate = 0.0, max_flow_rate = Inf, active = true) + defaults = (; + min_flow_rate = 0.0, + max_flow_rate = Inf, + min_upstream_level = -Inf, + max_downstream_level = Inf, + active = true, + ) parsed_parameters, valid = parse_static_and_time(db, config, Pump; static, defaults) if !valid error("Errors occurred when parsing Pump data.") end - # If flow rate is set by PID control, it is part of the AD Jacobian computations - flow_rate = if config.solver.autodiff - DiffCache(parsed_parameters.flow_rate, chunk_sizes) - else - parsed_parameters.flow_rate - end - (; node_id) = parsed_parameters + # If flow rate is set by PID control, it is part of the AD Jacobian computations + flow_rate = cache(length(node_id)) + flow_rate[Float64[]] .= parsed_parameters.flow_rate + return Pump(; node_id, inflow_edge = inflow_edge.(Ref(graph), node_id), - outflow_edges = outflow_edges.(Ref(graph), node_id), + outflow_edge = outflow_edge.(Ref(graph), node_id), parsed_parameters.active, flow_rate, parsed_parameters.min_flow_rate, parsed_parameters.max_flow_rate, + parsed_parameters.min_upstream_level, + parsed_parameters.max_downstream_level, parsed_parameters.control_mapping, ) end -function Outlet(db::DB, config::Config, graph::MetaGraph, chunk_sizes::Vector{Int})::Outlet +function Outlet(db::DB, config::Config, graph::MetaGraph)::Outlet static = load_structvector(db, config, OutletStaticV1) - defaults = - (; min_flow_rate = 0.0, max_flow_rate = Inf, min_crest_level = -Inf, active = true) + defaults = (; + min_flow_rate = 0.0, + max_flow_rate = Inf, + min_upstream_level = -Inf, + max_downstream_level = Inf, + active = true, + ) parsed_parameters, valid = parse_static_and_time(db, config, Outlet; static, defaults) if !valid error("Errors occurred when parsing Outlet data.") end - # If flow rate is set by PID control, it is part of the AD Jacobian computations - flow_rate = if config.solver.autodiff - DiffCache(parsed_parameters.flow_rate, chunk_sizes) - else - parsed_parameters.flow_rate - end - node_id = NodeID.( NodeType.Outlet, @@ -513,16 +548,21 @@ function Outlet(db::DB, config::Config, graph::MetaGraph, chunk_sizes::Vector{In eachindex(parsed_parameters.node_id), ) + # If flow rate is set by PID control, it is part of the AD Jacobian computations + flow_rate = cache(length(node_id)) + flow_rate[Float64[], length(node_id)] .= parsed_parameters.flow_rate + return Outlet(; node_id, inflow_edge = inflow_edge.(Ref(graph), node_id), - outflow_edges = outflow_edges.(Ref(graph), node_id), + outflow_edge = outflow_edge.(Ref(graph), node_id), parsed_parameters.active, flow_rate, parsed_parameters.min_flow_rate, parsed_parameters.max_flow_rate, - parsed_parameters.min_crest_level, parsed_parameters.control_mapping, + parsed_parameters.min_upstream_level, + parsed_parameters.max_downstream_level, ) end @@ -531,79 +571,198 @@ function Terminal(db::DB, config::Config)::Terminal return Terminal(NodeID.(NodeType.Terminal, node_id, eachindex(node_id))) end -function Basin(db::DB, config::Config, graph::MetaGraph, chunk_sizes::Vector{Int})::Basin +function ConcentrationData( + concentration_time, + node_id::Vector{NodeID}, + db::DB, + config::Config, +)::ConcentrationData + n = length(node_id) + + concentration_state_data = load_structvector(db, config, BasinConcentrationStateV1) + + evaporate_mass = config.solver.evaporate_mass + substances = get_substances(db, config) + concentration_state = zeros(n, length(substances)) + concentration_state[:, Substance.Continuity] .= 1.0 + concentration_state[:, Substance.Initial] .= 1.0 + set_concentrations!(concentration_state, concentration_state_data, substances, node_id) + mass = copy(concentration_state) + + concentration = zeros(2, n, length(substances)) + concentration[1, :, Substance.Continuity] .= 1.0 + concentration[1, :, Substance.Drainage] .= 1.0 + concentration[2, :, Substance.Continuity] .= 1.0 + concentration[2, :, Substance.Precipitation] .= 1.0 + set_concentrations!( + view(concentration, 1, :, :), + concentration_time, + substances, + node_id; + concentration_column = :drainage, + ) + set_concentrations!( + view(concentration, 1, :, :), + concentration_time, + substances, + node_id; + concentration_column = :precipitation, + ) + + t_end = seconds_since(config.endtime, config.starttime) + + errors = false + + concentration_external_data = + load_structvector(db, config, BasinConcentrationExternalV1) + concentration_external = Dict{String, ScalarInterpolation}[] + for id in node_id + concentration_external_id = Dict{String, ScalarInterpolation}() + data_id = filter(row -> row.node_id == id.value, concentration_external_data) + for group in IterTools.groupby(row -> row.substance, data_id) + first_row = first(group) + substance = first_row.substance + itp, no_duplication = get_scalar_interpolation( + config.starttime, + t_end, + StructVector(group), + NodeID(:Basin, first_row.node_id, 0), + :concentration, + ) + concentration_external_id["concentration_external.$substance"] = itp + if any(itp.u .< 0) + errors = true + @error "Found negative concentration(s) in `Basin / concentration_external`." node_id = + id, substance + end + if !no_duplication + errors = true + @error "There are repeated time values for in `Basin / concentration_external`." node_id = + id substance + end + end + push!(concentration_external, concentration_external_id) + end + + if errors + error("Errors encountered when parsing Basin concentration data.") + end + + cumulative_in = zeros(n) + + return ConcentrationData(; + evaporate_mass, + concentration_state, + concentration, + mass, + concentration_external, + substances, + cumulative_in, + ) +end + +function Basin(db::DB, config::Config, graph::MetaGraph)::Basin node_id = get_ids(db, "Basin") n = length(node_id) - current_level = zeros(n) - current_area = zeros(n) + # both static and time are optional, but we need fallback defaults + static = load_structvector(db, config, BasinStaticV1) + time = load_structvector(db, config, BasinTimeV1) + state = load_structvector(db, config, BasinStateV1) + + # Forcing precipitation = zeros(n) potential_evaporation = zeros(n) - evaporation = zeros(n) drainage = zeros(n) infiltration = zeros(n) table = (; precipitation, potential_evaporation, drainage, infiltration) - area, level = create_storage_tables(db, config) - - # both static and time are optional, but we need fallback defaults - static = load_structvector(db, config, BasinStaticV1) - time = load_structvector(db, config, BasinTimeV1) - set_static_value!(table, node_id, static) set_current_value!(table, node_id, time, config.starttime) check_no_nans(table, "Basin") - vertical_flux_from_input = - ComponentVector(; precipitation, potential_evaporation, drainage, infiltration) - vertical_flux = ComponentVector(; - precipitation = copy(precipitation), - evaporation, - drainage = copy(drainage), - infiltration = copy(infiltration), - ) - vertical_flux_prev = zero(vertical_flux) - vertical_flux_integrated = zero(vertical_flux) - vertical_flux_bmi = zero(vertical_flux) - - if config.solver.autodiff - current_level = DiffCache(current_level, chunk_sizes) - current_area = DiffCache(current_area, chunk_sizes) - vertical_flux = DiffCache(vertical_flux, chunk_sizes) - end - - demand = zeros(length(node_id)) + vertical_flux = ComponentVector(; table...) + # Node IDs node_id = NodeID.(NodeType.Basin, node_id, eachindex(node_id)) + # Profiles + area, level = create_storage_tables(db, config) + is_valid = valid_profiles(node_id, level, area) if !is_valid error("Invalid Basin / profile table.") end - level_to_area = SmoothedLinearInterpolation.(area, level; extrapolate = true, λ = 0.01) - level_to_area = LinearInterpolation.(level_to_area) + level_to_area = + LinearInterpolation.(area, level; extrapolate = true, cache_parameters = true) storage_to_level = invert_integral.(level_to_area) - return Basin(; + # Concentration data + concentration_time = load_structvector(db, config, BasinConcentrationV1) + concentration_data = ConcentrationData(concentration_time, node_id, db, config) + + # Initialize Basin + basin = Basin(; node_id, inflow_ids = [collect(inflow_ids(graph, id)) for id in node_id], outflow_ids = [collect(outflow_ids(graph, id)) for id in node_id], - vertical_flux_from_input, vertical_flux, - vertical_flux_prev, - vertical_flux_integrated, - vertical_flux_bmi, - current_level, - current_area, storage_to_level, level_to_area, - demand, time, + concentration_data, + concentration_time, ) + + storage0 = get_storages_from_levels(basin, state.level) + @assert length(storage0) == n "Basin / state length differs from number of Basins" + basin.storage0 .= storage0 + basin.storage_prev .= storage0 + basin.concentration_data.mass .*= storage0 # was initialized by concentration_state, resulting in mass + + return basin end -function parse_variables_and_conditions(compound_variable, condition, ids, db) +""" +Get a CompoundVariable object given its definition in the input data. +References to listened parameters are added later. +""" +function CompoundVariable( + compound_variable_data, + node_type::NodeType.T, + db::DB; + greater_than = Float64[], + placeholder_vector = Float64[], +)::CompoundVariable + subvariables = @NamedTuple{ + listen_node_id::NodeID, + variable_ref::PreallocationRef, + variable::String, + weight::Float64, + look_ahead::Float64, + }[] + # Each row defines a subvariable + for row in compound_variable_data + listen_node_id = NodeID(row.listen_node_id, db) + # Placeholder until actual ref is known + variable_ref = PreallocationRef(placeholder_vector, 0) + variable = row.variable + # Default to weight = 1.0 if not specified + weight = coalesce(row.weight, 1.0) + # Default to look_ahead = 0.0 if not specified + look_ahead = coalesce(row.look_ahead, 0.0) + subvariable = (; listen_node_id, variable_ref, variable, weight, look_ahead) + push!(subvariables, subvariable) + end + + # The ID of the node listening to this CompoundVariable + node_id = NodeID(node_type, only(unique(compound_variable_data.node_id)), db) + return CompoundVariable(node_id, subvariables, greater_than) +end + +function parse_variables_and_conditions(compound_variable, condition, ids, db, graph) + placeholder_vector = cache(1) compound_variables = Vector{CompoundVariable}[] errors = false @@ -631,33 +790,14 @@ function parse_variables_and_conditions(compound_variable, condition, ids, db) @error "compound_variable_id $compound_variable_id for $discrete_control_id in condition table but not in variable table" else greater_than = condition_group_variable.greater_than - - # Collect subvariable data for this compound variable in - # NamedTuples - subvariables = NamedTuple[] - for i in eachindex(variable_group_variable.variable) - listen_node_id = NodeID( - variable_group_variable.listen_node_type[i], - variable_group_variable.listen_node_id[i], - db, - ) - variable = variable_group_variable.variable[i] - weight = coalesce.(variable_group_variable.weight[i], 1.0) - look_ahead = coalesce.(variable_group_variable.look_ahead[i], 0.0) - # Placeholder until actual ref is known - variable_ref = Ref(Float64[], 0) - push!( - subvariables, - (; listen_node_id, variable_ref, variable, weight, look_ahead), - ) - end - push!( compound_variables_node, - CompoundVariable(; - node_id = discrete_control_id, - subvariables, + CompoundVariable( + variable_group_variable, + NodeType.DiscreteControl, + db; greater_than, + placeholder_vector, ), ) end @@ -674,7 +814,7 @@ function DiscreteControl(db::DB, config::Config, graph::MetaGraph)::DiscreteCont ids = get_ids(db, "DiscreteControl") node_id = NodeID.(:DiscreteControl, ids, eachindex(ids)) compound_variables, valid = - parse_variables_and_conditions(compound_variable, condition, ids, db) + parse_variables_and_conditions(compound_variable, condition, ids, db, graph) if !valid error("Problems encountered when parsing DiscreteControl variables and conditions.") @@ -710,7 +850,93 @@ function DiscreteControl(db::DB, config::Config, graph::MetaGraph)::DiscreteCont ) end -function PidControl(db::DB, config::Config, chunk_sizes::Vector{Int})::PidControl +function continuous_control_functions(db, config, ids) + # Avoid using the variable name `function` as that is recognized as a keyword + func = load_structvector(db, config, ContinuousControlFunctionV1) + errors = false + # Parse the function table + # Create linear interpolation objects out of the provided functions + functions = ScalarInterpolation[] + controlled_variables = String[] + + # Loop over the IDs of the ContinuousControl nodes + for id in ids + # Get the function data for this node + function_rows = filter(row -> row.node_id == id, func) + unique_controlled_variable = unique(function_rows.controlled_variable) + + # Error handling + if length(function_rows) < 2 + @error "There must be at least 2 data points in a ContinuousControl function." + errors = true + elseif length(unique_controlled_variable) !== 1 + @error "There must be a unique 'controlled_variable' in a ContinuousControl function." + errors = true + else + push!(controlled_variables, only(unique_controlled_variable)) + end + function_itp = LinearInterpolation( + function_rows.output, + function_rows.input; + extrapolate = true, + cache_parameters = true, + ) + + push!(functions, function_itp) + end + + return functions, controlled_variables, errors +end + +function continuous_control_compound_variables(db::DB, config::Config, ids) + placeholder_vector = cache(1) + + data = load_structvector(db, config, ContinuousControlVariableV1) + compound_variables = CompoundVariable[] + + # Loop over the ContinuousControl node IDs + for id in ids + variable_data = filter(row -> row.node_id == id, data) + push!( + compound_variables, + CompoundVariable( + variable_data, + NodeType.ContinuousControl, + db; + placeholder_vector, + ), + ) + end + compound_variables +end + +function ContinuousControl(db::DB, config::Config, graph::MetaGraph)::ContinuousControl + compound_variable = load_structvector(db, config, ContinuousControlVariableV1) + + ids = get_ids(db, "ContinuousControl") + node_id = NodeID.(:ContinuousControl, ids, eachindex(ids)) + + # Avoid using `function` as a variable name as that is recognized as a keyword + func, controlled_variable, errors = continuous_control_functions(db, config, ids) + compound_variable = continuous_control_compound_variables(db, config, ids) + + # References to the controlled parameters, filled in later when they are known + target_refs = PreallocationRef[] + + if errors + error("Errors encountered when parsing ContinuousControl data.") + end + + return ContinuousControl( + node_id, + compound_variable, + controlled_variable, + target_refs, + func, + ) +end + +function PidControl(db::DB, config::Config, graph::MetaGraph)::PidControl static = load_structvector(db, config, PidControlStaticV1) time = load_structvector(db, config, PidControlTimeV1) @@ -728,24 +954,33 @@ function PidControl(db::DB, config::Config, chunk_sizes::Vector{Int})::PidContro error("Errors occurred when parsing PidControl data.") end - pid_error = zeros(length(node_ids)) + pid_error = cache(length(node_ids)) + target_ref = PreallocationRef[] - if config.solver.autodiff - pid_error = DiffCache(pid_error, chunk_sizes) + controlled_basins = Set{NodeID}() + for id in node_ids + controlled_node = only(outneighbor_labels_type(graph, id, EdgeType.control)) + for id_inout in inoutflow_ids(graph, controlled_node) + if id_inout.type == NodeType.Basin + push!(controlled_basins, id_inout) + end + end end + controlled_basins = collect(controlled_basins) + + listen_node_id = NodeID.(parsed_parameters.listen_node_id, Ref(db)) + return PidControl(; node_id = node_ids, parsed_parameters.active, - listen_node_id = NodeID.( - parsed_parameters.listen_node_type, - parsed_parameters.listen_node_id, - Ref(db), - ), + listen_node_id, parsed_parameters.target, + target_ref, parsed_parameters.proportional, parsed_parameters.integral, parsed_parameters.derivative, error = pid_error, + controlled_basins, parsed_parameters.control_mapping, ) end @@ -754,7 +989,7 @@ function user_demand_static!( active::Vector{Bool}, demand::Matrix{Float64}, demand_itp::Vector{Vector{ScalarInterpolation}}, - return_factor::Vector{Float64}, + return_factor::Vector{ScalarInterpolation}, min_level::Vector{Float64}, static::StructVector{UserDemandStaticV1}, ids::Vector{Int32}, @@ -765,13 +1000,25 @@ function user_demand_static!( user_demand_idx = searchsortedfirst(ids, first_row.node_id) active[user_demand_idx] = coalesce(first_row.active, true) - return_factor[user_demand_idx] = first_row.return_factor + return_factor_old = return_factor[user_demand_idx] + return_factor[user_demand_idx] = LinearInterpolation( + fill(first_row.return_factor, 2), + return_factor_old.t; + extrapolate = true, + cache_parameters = true, + ) min_level[user_demand_idx] = first_row.min_level for row in group priority_idx = findsorted(priorities, row.priority) demand_row = coalesce(row.demand, 0.0) - demand_itp[user_demand_idx][priority_idx].u .= demand_row + demand_itp_old = demand_itp[user_demand_idx][priority_idx] + demand_itp[user_demand_idx][priority_idx] = LinearInterpolation( + fill(demand_row, 2), + demand_itp_old.t; + extrapolate = true, + cache_parameters = true, + ) demand[user_demand_idx, priority_idx] = demand_row end end @@ -783,7 +1030,7 @@ function user_demand_time!( demand::Matrix{Float64}, demand_itp::Vector{Vector{ScalarInterpolation}}, demand_from_timeseries::Vector{Bool}, - return_factor::Vector{Float64}, + return_factor::Vector{ScalarInterpolation}, min_level::Vector{Float64}, time::StructVector{UserDemandTimeV1}, ids::Vector{Int32}, @@ -799,11 +1046,24 @@ function user_demand_time!( active[user_demand_idx] = true demand_from_timeseries[user_demand_idx] = true - return_factor[user_demand_idx] = first_row.return_factor + return_factor_itp, is_valid_return = get_scalar_interpolation( + config.starttime, + t_end, + StructVector(group), + NodeID(:UserDemand, first_row.node_id, 0), + :return_factor; + ) + if is_valid_return + return_factor[user_demand_idx] = return_factor_itp + else + @error "The return_factor(t) relationship for UserDemand $(first_row.node_id) from the time table has repeated timestamps, this can not be interpolated." + errors = true + end + min_level[user_demand_idx] = first_row.min_level priority_idx = findsorted(priorities, first_row.priority) - demand_p_itp, is_valid = get_scalar_interpolation( + demand_p_itp, is_valid_demand = get_scalar_interpolation( config.starttime, t_end, StructVector(group), @@ -813,10 +1073,10 @@ function user_demand_time!( ) demand[user_demand_idx, priority_idx] = demand_p_itp(0.0) - if is_valid + if is_valid_demand demand_itp[user_demand_idx][priority_idx] = demand_p_itp else - @error "The demand(t) relationship for UserDemand $node_id of priority $p from the time table has repeated timestamps, this can not be interpolated." + @error "The demand(t) relationship for UserDemand $(first_row.node_id) of priority $(first_row.priority_idx) from the time table has repeated timestamps, this can not be interpolated." errors = true end end @@ -826,6 +1086,7 @@ end function UserDemand(db::DB, config::Config, graph::MetaGraph)::UserDemand static = load_structvector(db, config, UserDemandStaticV1) time = load_structvector(db, config, UserDemandTimeV1) + concentration_time = load_structvector(db, config, UserDemandConcentrationV1) ids = get_ids(db, "UserDemand") _, _, node_ids, valid = static_and_time_node_ids(db, static, time, "UserDemand") @@ -839,16 +1100,21 @@ function UserDemand(db::DB, config::Config, graph::MetaGraph)::UserDemand n_user = length(node_ids) n_priority = length(priorities) active = fill(true, n_user) - realized_bmi = zeros(n_user) demand = zeros(n_user, n_priority) demand_reduced = zeros(n_user, n_priority) trivial_timespan = [0.0, prevfloat(Inf)] demand_itp = [ - [LinearInterpolation(zeros(2), trivial_timespan) for i in eachindex(priorities)] for j in eachindex(node_ids) + ScalarInterpolation[ + LinearInterpolation(zeros(2), trivial_timespan; cache_parameters = true) for + i in eachindex(priorities) + ] for j in eachindex(node_ids) ] demand_from_timeseries = fill(false, n_user) allocated = fill(Inf, n_user, n_priority) - return_factor = zeros(n_user) + return_factor = [ + LinearInterpolation(zeros(2), trivial_timespan; cache_parameters = true) for + i in eachindex(node_ids) + ] min_level = zeros(n_user) # Process static table @@ -877,6 +1143,12 @@ function UserDemand(db::DB, config::Config, graph::MetaGraph)::UserDemand config, ) + substances = get_substances(db, config) + concentration = zeros(length(node_ids), length(substances)) + # Continuity concentration is zero, as the return flow (from a Basin) already includes it + concentration[:, Substance.UserDemand] .= 1.0 + set_concentrations!(concentration, concentration_time, substances, node_ids) + if errors || !valid_demand(node_ids, demand_itp, priorities) error("Errors occurred when parsing UserDemand data.") end @@ -886,7 +1158,6 @@ function UserDemand(db::DB, config::Config, graph::MetaGraph)::UserDemand inflow_edge = inflow_edge.(Ref(graph), node_ids), outflow_edge = outflow_edge.(Ref(graph), node_ids), active, - realized_bmi, demand, demand_reduced, demand_itp, @@ -894,6 +1165,8 @@ function UserDemand(db::DB, config::Config, graph::MetaGraph)::UserDemand allocated, return_factor, min_level, + concentration, + concentration_time, ) end @@ -974,7 +1247,12 @@ function Subgrid(db::DB, config::Config, basin::Basin)::Subgrid # Ensure it doesn't extrapolate before the first value. pushfirst!(subgrid_level, first(subgrid_level)) pushfirst!(basin_level, nextfloat(-Inf)) - new_interp = LinearInterpolation(subgrid_level, basin_level; extrapolate = true) + new_interp = LinearInterpolation( + subgrid_level, + basin_level; + extrapolate = true, + cache_parameters = true, + ) push!(subgrid_ids, subgrid_id) push!(basin_index, node_to_basin[node_id]) push!(interpolations, new_interp) @@ -1034,23 +1312,8 @@ function Allocation(db::DB, config::Config, graph::MetaGraph)::Allocation ) end -""" -Get the chunk sizes for DiffCache; differentiation w.r.t. u -and t (the latter only if a Rosenbrock algorithm is used). -""" -function get_chunk_sizes(config::Config, n_states::Int)::Vector{Int} - chunk_sizes = [pickchunksize(n_states)] - if Ribasim.config.algorithms[config.solver.algorithm] <: - OrdinaryDiffEqRosenbrockAdaptiveAlgorithm - push!(chunk_sizes, 1) - end - return chunk_sizes -end - function Parameters(db::DB, config::Config)::Parameters - n_states = length(get_ids(db, "Basin")) + length(get_ids(db, "PidControl")) - chunk_sizes = get_chunk_sizes(config, n_states) - graph = create_graph(db, config, chunk_sizes) + graph = create_graph(db, config) allocation = Allocation(db, config, graph) if !valid_edges(graph) @@ -1060,18 +1323,19 @@ function Parameters(db::DB, config::Config)::Parameters error("Invalid number of connections for certain node types.") end - basin = Basin(db, config, graph, chunk_sizes) + basin = Basin(db, config, graph) linear_resistance = LinearResistance(db, config, graph) manning_resistance = ManningResistance(db, config, graph, basin) tabulated_rating_curve = TabulatedRatingCurve(db, config, graph) level_boundary = LevelBoundary(db, config) flow_boundary = FlowBoundary(db, config, graph) - pump = Pump(db, config, graph, chunk_sizes) - outlet = Outlet(db, config, graph, chunk_sizes) + pump = Pump(db, config, graph) + outlet = Outlet(db, config, graph) terminal = Terminal(db, config) discrete_control = DiscreteControl(db, config, graph) - pid_control = PidControl(db, config, chunk_sizes) + continuous_control = ContinuousControl(db, config, graph) + pid_control = PidControl(db, config, graph) user_demand = UserDemand(db, config, graph) level_demand = LevelDemand(db, config) flow_demand = FlowDemand(db, config) @@ -1092,17 +1356,21 @@ function Parameters(db::DB, config::Config)::Parameters outlet, terminal, discrete_control, + continuous_control, pid_control, user_demand, level_demand, flow_demand, subgrid, + config.solver.water_balance_abstol, + config.solver.water_balance_reltol, ) collect_control_mappings!(p) - set_is_pid_controlled!(p) + set_continuous_control_type!(p) set_listen_variable_refs!(p) - set_controlled_variable_refs!(p) + set_discrete_controlled_variable_refs!(p) + set_continuously_controlled_variable_refs!(p) # Allocation data structures if config.allocation.use_allocation @@ -1247,3 +1515,43 @@ function create_storage_tables( end return area, level end + +"Determine all substances present in the input over multiple tables" +function get_substances(db::DB, config::Config)::OrderedSet{Symbol} + # Hardcoded tracers + substances = OrderedSet{Symbol}(Symbol.(instances(Substance.T))) + for table in [ + BasinConcentrationStateV1, + BasinConcentrationV1, + FlowBoundaryConcentrationV1, + LevelBoundaryConcentrationV1, + UserDemandConcentrationV1, + ] + data = load_structvector(db, config, table) + for row in data + push!(substances, Symbol(row.substance)) + end + end + return substances +end + +"Set values in wide concentration matrix from a long input table." +function set_concentrations!( + concentration, + concentration_data, + substances, + node_ids::Vector{NodeID}; + concentration_column = :concentration, +) + for substance in unique(concentration_data.substance) + data_sub = filter(row -> row.substance == substance, concentration_data) + sub_idx = findfirst(==(Symbol(substance)), substances) + for group in IterTools.groupby(row -> row.node_id, data_sub) + first_row = first(group) + value = getproperty(first_row, concentration_column) + ismissing(value) && continue + node_idx = findfirst(node_id -> node_id.value == first_row.node_id, node_ids) + concentration[node_idx, sub_idx] = value + end + end +end diff --git a/core/src/schema.jl b/core/src/schema.jl index 272c9703c..e03d8e852 100644 --- a/core/src/schema.jl +++ b/core/src/schema.jl @@ -3,6 +3,8 @@ @schema "ribasim.discretecontrol.variable" DiscreteControlVariable @schema "ribasim.discretecontrol.condition" DiscreteControlCondition @schema "ribasim.discretecontrol.logic" DiscreteControlLogic +@schema "ribasim.continuouscontrol.variable" ContinuousControlVariable +@schema "ribasim.continuouscontrol.function" ContinuousControlFunction @schema "ribasim.basin.static" BasinStatic @schema "ribasim.basin.time" BasinTime @schema "ribasim.basin.profile" BasinProfile @@ -27,6 +29,7 @@ @schema "ribasim.outlet.static" OutletStatic @schema "ribasim.userdemand.static" UserDemandStatic @schema "ribasim.userdemand.time" UserDemandTime +@schema "ribasim.userdemand.concentration" UserDemandConcentration @schema "ribasim.leveldemand.static" LevelDemandStatic @schema "ribasim.leveldemand.time" LevelDemandTime @schema "ribasim.flowdemand.static" FlowDemandStatic @@ -52,7 +55,12 @@ function nodetype( record = Legolas.record_type(sv) node = last(split(string(Symbol(record)), '.'; limit = 3)) - elements = split(string(T), '.'; limit = 3) + type_string = string(T) + elements = split(type_string, '.'; limit = 3) + last_element = last(elements) + if startswith(last_element, "concentration") && length(last_element) > 13 + elements[end] = "concentration_$(last_element[14:end])" + end if isnode(sv) n = elements[2] k = Symbol(elements[3]) @@ -70,6 +78,8 @@ end flow_rate::Float64 min_flow_rate::Union{Missing, Float64} max_flow_rate::Union{Missing, Float64} + min_upstream_level::Union{Missing, Float64} + max_downstream_level::Union{Missing, Float64} control_state::Union{Missing, String} end @@ -79,7 +89,8 @@ end flow_rate::Float64 min_flow_rate::Union{Missing, Float64} max_flow_rate::Union{Missing, Float64} - min_crest_level::Union{Missing, Float64} + min_upstream_level::Union{Missing, Float64} + max_downstream_level::Union{Missing, Float64} control_state::Union{Missing, String} end @@ -200,6 +211,7 @@ end active::Union{Missing, Bool} level::Float64 flow_rate::Float64 + max_downstream_level::Union{Missing, Float64} control_state::Union{Missing, String} end @@ -208,12 +220,12 @@ end time::DateTime level::Float64 flow_rate::Float64 + max_downstream_level::Union{Missing, Float64} end @version DiscreteControlVariableV1 begin node_id::Int32 compound_variable_id::Int32 - listen_node_type::String listen_node_id::Int32 variable::String weight::Union{Missing, Float64} @@ -232,10 +244,24 @@ end control_state::String end +@version ContinuousControlVariableV1 begin + node_id::Int32 + listen_node_id::Int32 + variable::String + weight::Union{Missing, Float64} + look_ahead::Union{Missing, Float64} +end + +@version ContinuousControlFunctionV1 begin + node_id::Int32 + input::Float64 + output::Float64 + controlled_variable::String +end + @version PidControlStaticV1 begin node_id::Int32 active::Union{Missing, Bool} - listen_node_type::String listen_node_id::Int32 target::Float64 proportional::Float64 @@ -246,7 +272,6 @@ end @version PidControlTimeV1 begin node_id::Int32 - listen_node_type::String listen_node_id::Int32 time::DateTime target::Float64 @@ -262,7 +287,7 @@ end demand::Union{Missing, Float64} return_factor::Float64 min_level::Float64 - priority::Int32 + priority::Union{Missing, Int32} end @version UserDemandTimeV1 begin @@ -271,14 +296,21 @@ end demand::Float64 return_factor::Float64 min_level::Float64 - priority::Int32 + priority::Union{Missing, Int32} +end + +@version UserDemandConcentrationV1 begin + node_id::Int32 + time::DateTime + substance::String + concentration::Float64 end @version LevelDemandStaticV1 begin node_id::Int32 min_level::Union{Missing, Float64} max_level::Union{Missing, Float64} - priority::Int32 + priority::Union{Missing, Int32} end @version LevelDemandTimeV1 begin @@ -286,18 +318,18 @@ end time::DateTime min_level::Union{Missing, Float64} max_level::Union{Missing, Float64} - priority::Int32 + priority::Union{Missing, Int32} end @version FlowDemandStaticV1 begin node_id::Int demand::Float64 - priority::Int32 + priority::Union{Missing, Int32} end @version FlowDemandTimeV1 begin node_id::Int time::DateTime demand::Float64 - priority::Int32 + priority::Union{Missing, Int32} end diff --git a/core/src/solve.jl b/core/src/solve.jl index e57298c40..6d306fdf3 100644 --- a/core/src/solve.jl +++ b/core/src/solve.jl @@ -7,43 +7,186 @@ function water_balance!( p::Parameters, t::Number, )::Nothing - (; graph, basin, pid_control) = p - - storage = u.storage - integral = u.integral + (; basin, pid_control) = p + (; current_storage, current_low_storage_factor, current_level) = + basin.current_properties du .= 0.0 - get_tmp(graph[].flow, storage) .= 0.0 # Ensures current_* vectors are current - set_current_basin_properties!(basin, storage) + set_current_basin_properties!(du, u, p, t) + + current_storage = current_storage[parent(du)] + current_low_storage_factor = current_low_storage_factor[parent(du)] + current_level = current_level[parent(du)] + + # Notes on the ordering of these formulations: + # - Continuous control can depend on flows (which are not continuously controlled themselves), + # so these flows have to be formulated first. + # - Pid control can depend on the du of basins and subsequently change them + # because of the error derivative term. # Basin forcings - formulate_basins!(du, basin, storage) + update_vertical_flux!(basin, du) + + # Formulate intermediate flows (non continuously controlled) + formulate_flows!(du, p, t, current_storage, current_low_storage_factor, current_level) + + # Compute continuous control + formulate_continuous_control!(du, p, t) + + # Formulate intermediate flows (controlled by ContinuousControl) + formulate_flows!( + du, + p, + t, + current_storage, + current_low_storage_factor, + current_level; + continuous_control_type = ContinuousControlType.Continuous, + ) - # First formulate intermediate flows - formulate_flows!(p, storage, t) + # Compute PID control + formulate_pid_control!(u, du, pid_control, p, t) + + # Formulate intermediate flow (controlled by PID control) + formulate_flows!( + du, + p, + t, + current_storage, + current_low_storage_factor, + current_level; + continuous_control_type = ContinuousControlType.PID, + ) - # Now formulate du - formulate_du!(du, graph, storage) + return nothing +end - # PID control (changes the du of PID controlled basins) - continuous_control!(u, du, pid_control, p, integral, t) +function formulate_continuous_control!(du, p, t)::Nothing + (; compound_variable, target_ref, func) = p.continuous_control + for (cvar, ref, func_) in zip(compound_variable, target_ref, func) + value = compound_variable_value(cvar, p, du, t) + set_value!(ref, func_(value), du) + end return nothing end -function set_current_basin_properties!(basin::Basin, storage::AbstractVector)::Nothing - (; current_level, current_area) = basin - current_level = get_tmp(current_level, storage) - current_area = get_tmp(current_area, storage) +""" +Compute the storages, levels and areas of all Basins given the +state u and the time t. +""" +function set_current_basin_properties!( + du::ComponentVector, + u::ComponentVector, + p::Parameters, + t::Number, +)::Nothing + (; basin) = p + (; current_properties, cumulative_precipitation, cumulative_drainage, vertical_flux) = + basin + (; + current_storage, + current_low_storage_factor, + current_level, + current_area, + current_cumulative_precipitation, + current_cumulative_drainage, + ) = current_properties + + current_storage = current_storage[parent(du)] + current_low_storage_factor = current_low_storage_factor[parent(du)] + current_level = current_level[parent(du)] + current_area = current_area[parent(du)] + current_cumulative_precipitation = current_cumulative_precipitation[parent(du)] + current_cumulative_drainage = current_cumulative_drainage[parent(du)] + + # The exact cumulative precipitation and drainage up to the t of this water_balance call + dt = t - p.tprev[] + for node_id in basin.node_id + fixed_area = basin_areas(basin, node_id.idx)[end] + current_cumulative_precipitation[node_id.idx] = + cumulative_precipitation[node_id.idx] + + fixed_area * vertical_flux.precipitation[node_id.idx] * dt + end + @. current_cumulative_drainage = cumulative_drainage + dt * vertical_flux.drainage + + formulate_storages!(current_storage, du, u, p, t) - for i in eachindex(storage) - s = storage[i] - area, level = get_area_and_level(basin, i, s) + for (id, s) in zip(basin.node_id, current_storage) + i = id.idx + current_low_storage_factor[i] = reduction_factor(s, LOW_STORAGE_THRESHOLD) + current_level[i] = get_level_from_storage(basin, i, s) + current_area[i] = basin.level_to_area[i](current_level[i]) + end +end - current_area[i] = area - current_level[i] = level +function formulate_storages!( + current_storage::AbstractVector, + du::ComponentVector, + u::ComponentVector, + p::Parameters, + t::Number; + add_initial_storage::Bool = true, +)::Nothing + (; basin, flow_boundary, tprev, flow_to_storage) = p + # Current storage: initial condition + + # total inflows and outflows since the start + # of the simulation + if add_initial_storage + current_storage .= basin.storage0 + else + current_storage .= 0.0 + end + mul!(current_storage, flow_to_storage, u, 1, 1) + formulate_storage!(current_storage, basin, du) + formulate_storage!(current_storage, tprev[], t, flow_boundary) + return nothing +end + +""" +The storage contributions of the forcings that are not part of the state. +""" +function formulate_storage!( + current_storage::AbstractVector, + basin::Basin, + du::ComponentVector, +) + (; current_cumulative_precipitation, current_cumulative_drainage) = + basin.current_properties + + current_cumulative_precipitation = current_cumulative_precipitation[parent(du)] + current_cumulative_drainage = current_cumulative_drainage[parent(du)] + current_storage .+= current_cumulative_precipitation + current_storage .+= current_cumulative_drainage +end + +""" +Formulate storage contributions of flow boundaries. +""" +function formulate_storage!( + current_storage::AbstractVector, + tprev::Number, + t::Number, + flow_boundary::FlowBoundary, +) + for (flow_rate, outflow_edges, active, cumulative_flow) in zip( + flow_boundary.flow_rate, + flow_boundary.outflow_edges, + flow_boundary.active, + flow_boundary.cumulative_flow, + ) + volume = cumulative_flow + if active + volume += integral(flow_rate, tprev, t) + end + for outflow_edge in outflow_edges + outflow_id = outflow_edge.edge[2] + if outflow_id.type == NodeType.Basin + current_storage[outflow_id.idx] += volume + end + end end end @@ -51,53 +194,35 @@ end Smoothly let the evaporation flux go to 0 when at small water depths Currently at less than 0.1 m. """ -function update_vertical_flux!(basin::Basin, storage::AbstractVector)::Nothing - (; current_level, current_area, vertical_flux_from_input, vertical_flux) = basin - current_level = get_tmp(current_level, storage) - current_area = get_tmp(current_area, storage) - vertical_flux = get_tmp(vertical_flux, storage) +function update_vertical_flux!(basin::Basin, du::AbstractVector)::Nothing + (; vertical_flux, current_properties) = basin + (; current_level, current_area) = current_properties + current_level = current_level[parent(du)] + current_area = current_area[parent(du)] for id in basin.node_id level = current_level[id.idx] area = current_area[id.idx] bottom = basin_levels(basin, id.idx)[1] - fixed_area = basin_areas(basin, id.idx)[end] depth = max(level - bottom, 0.0) factor = reduction_factor(depth, 0.1) - precipitation = fixed_area * vertical_flux_from_input.precipitation[id.idx] - evaporation = area * factor * vertical_flux_from_input.potential_evaporation[id.idx] - drainage = vertical_flux_from_input.drainage[id.idx] - infiltration = factor * vertical_flux_from_input.infiltration[id.idx] + evaporation = area * factor * vertical_flux.potential_evaporation[id.idx] + infiltration = factor * vertical_flux.infiltration[id.idx] - vertical_flux.precipitation[id.idx] = precipitation - vertical_flux.evaporation[id.idx] = evaporation - vertical_flux.drainage[id.idx] = drainage - vertical_flux.infiltration[id.idx] = infiltration + du.evaporation[id.idx] = evaporation + du.infiltration[id.idx] = infiltration end return nothing end -function formulate_basins!( - du::AbstractVector, - basin::Basin, - storage::AbstractVector, -)::Nothing - update_vertical_flux!(basin, storage) - for id in basin.node_id - # add all vertical fluxes that enter the Basin - du.storage[id.idx] += get_influx(basin, id.idx) - end - return nothing -end - -function set_error!(pid_control::PidControl, p::Parameters, u::ComponentVector, t::Number) +function set_error!(pid_control::PidControl, p::Parameters, du::ComponentVector, t::Number) (; basin) = p (; listen_node_id, target, error) = pid_control - error = get_tmp(error, u) - current_level = get_tmp(basin.current_level, u) + error = error[parent(du)] + current_level = basin.current_properties.current_level[parent(du)] for i in eachindex(listen_node_id) listened_node_id = listen_node_id[i] @@ -106,176 +231,116 @@ function set_error!(pid_control::PidControl, p::Parameters, u::ComponentVector, end end -function continuous_control!( +function formulate_pid_control!( u::ComponentVector, du::ComponentVector, pid_control::PidControl, p::Parameters, - integral_value::SubArray, t::Number, )::Nothing - (; graph, pump, outlet, basin) = p - min_flow_rate_pump = pump.min_flow_rate - max_flow_rate_pump = pump.max_flow_rate - min_flow_rate_outlet = outlet.min_flow_rate - max_flow_rate_outlet = outlet.max_flow_rate + (; basin) = p (; node_id, active, target, listen_node_id, error) = pid_control - (; current_area) = basin + (; current_area) = basin.current_properties - current_area = get_tmp(current_area, u) - storage = u.storage - error = get_tmp(error, u) + current_area = current_area[parent(du)] + error = error[parent(du)] + all_nodes_active = p.all_nodes_active[] - set_error!(pid_control, p, u, t) + set_error!(pid_control, p, du, t) - for id in node_id - if !active[id.idx] - du.integral[id.idx] = 0.0 - u.integral[id.idx] = 0.0 + for (i, id) in enumerate(node_id) + if !(active[i] || all_nodes_active) + du.integral[i] = 0.0 + u.integral[i] = 0.0 continue end - du.integral[id.idx] = error[id.idx] - - listened_node_id = listen_node_id[id.idx] + du.integral[i] = error[i] - controlled_node_id = only(outneighbor_labels_type(graph, id, EdgeType.control)) - controls_pump = (controlled_node_id in pump.node_id) - - if !controls_pump - src_id = inflow_id(graph, controlled_node_id) - dst_id = outflow_id(graph, controlled_node_id) - - inflow_edge = graph[src_id, controlled_node_id] - outflow_edge = graph[controlled_node_id, dst_id] - - has_src_level, src_level = get_level(p, src_id, t; storage) - has_dst_level, dst_level = get_level(p, dst_id, t; storage) - - factor_outlet = 1.0 - - # No flow out of outlet if source level is lower than reference level - if has_src_level && has_dst_level - Δlevel = src_level - dst_level - factor_outlet *= reduction_factor(Δlevel, 0.1) - end - - # No flow out of outlet if source level is lower than minimum crest level - if has_src_level - factor_outlet *= reduction_factor( - src_level - outlet.min_crest_level[controlled_node_id.idx], - 0.1, - ) - end - else - factor_outlet = 1.0 - end - - id_inflow = inflow_id(graph, controlled_node_id) - factor_basin = low_storage_factor(storage, id_inflow, 10.0) + listened_node_id = listen_node_id[i] - factor = factor_basin * factor_outlet - flow_rate = 0.0 + flow_rate = zero(eltype(du)) - K_p = pid_control.proportional[id.idx](t) - K_i = pid_control.integral[id.idx](t) - K_d = pid_control.derivative[id.idx](t) + K_p = pid_control.proportional[i](t) + K_i = pid_control.integral[i](t) + K_d = pid_control.derivative[i](t) if !iszero(K_d) # dlevel/dstorage = 1/area + # TODO: replace by DataInterpolations.derivative(storage_to_level, storage) area = current_area[listened_node_id.idx] - D = 1.0 - K_d * factor / area + D = 1.0 - K_d / area else D = 1.0 end if !iszero(K_p) - flow_rate += factor * K_p * error[id.idx] / D + flow_rate += K_p * error[i] / D end if !iszero(K_i) - flow_rate += factor * K_i * integral_value[id.idx] / D + flow_rate += K_i * u.integral[i] / D end if !iszero(K_d) - dlevel_demand = derivative(target[id.idx], t) - du_listened_basin_old = du.storage[listened_node_id.idx] + dlevel_demand = derivative(target[i], t) + dstorage_listened_basin_old = formulate_dstorage(du, p, t, listened_node_id) # The expression below is the solution to an implicit equation for - # du_listened_basin. This equation results from the fact that if the derivative + # dstorage_listened_basin. This equation results from the fact that if the derivative # term in the PID controller is used, the controlled pump flow rate depends on itself. - flow_rate += K_d * (dlevel_demand - du_listened_basin_old / area) / D + flow_rate += K_d * (dlevel_demand - dstorage_listened_basin_old / area) / D end - # Clamp values outside pump flow rate bounds - if controls_pump - min_flow_rate = min_flow_rate_pump - max_flow_rate = max_flow_rate_pump - else - min_flow_rate = min_flow_rate_outlet - max_flow_rate = max_flow_rate_outlet - end - - flow_rate = clamp( - flow_rate, - min_flow_rate[controlled_node_id.idx], - max_flow_rate[controlled_node_id.idx], - ) - - # Set flow for connected edges - src_id = inflow_id(graph, controlled_node_id) - dst_id = outflow_id(graph, controlled_node_id) - - set_flow!(graph, src_id, controlled_node_id, flow_rate) - set_flow!(graph, controlled_node_id, dst_id, flow_rate) + # Set flow_rate + set_value!(pid_control.target_ref[i], flow_rate, du) + end + return nothing +end - # Below du.storage is updated. This is normally only done - # in formulate!(du, connectivity, basin), but in this function - # flows are set so du has to be updated too. - if dst_id.type == NodeType.Basin - du.storage[dst_id.idx] += flow_rate - end +""" +Formulate the time derivative of the storage in a single Basin. +""" +function formulate_dstorage(du::ComponentVector, p::Parameters, t::Number, node_id::NodeID) + (; basin) = p + (; inflow_ids, outflow_ids, vertical_flux) = basin + @assert node_id.type == NodeType.Basin + dstorage = 0.0 + for inflow_id in inflow_ids[node_id.idx] + dstorage += get_flow(du, p, t, (inflow_id, node_id)) + end + for outflow_id in outflow_ids[node_id.idx] + dstorage -= get_flow(du, p, t, (node_id, outflow_id)) + end - if src_id.type == NodeType.Basin - du.storage[src_id.idx] -= flow_rate - end + fixed_area = basin_areas(basin, node_id.idx)[end] + dstorage += fixed_area * vertical_flux.precipitation[node_id.idx] + dstorage += vertical_flux.drainage[node_id.idx] + dstorage -= du.evaporation[node_id.idx] + dstorage -= du.infiltration[node_id.idx] - end - return nothing + dstorage end function formulate_flow!( + du::ComponentVector, user_demand::UserDemand, p::Parameters, - storage::AbstractVector, t::Number, + current_low_storage_factor::Vector, + current_level::Vector, )::Nothing - (; graph, allocation) = p - - for ( - node_id, - inflow_edge, - outflow_edge, - active, - demand_itp, - demand, - allocated, - return_factor, - min_level, - demand_from_timeseries, - ) in zip( + (; allocation) = p + all_nodes_active = p.all_nodes_active[] + for (id, inflow_edge, outflow_edge, active, allocated, return_factor, min_level) in zip( user_demand.node_id, user_demand.inflow_edge, user_demand.outflow_edge, user_demand.active, - user_demand.demand_itp, - # TODO permute these so the nodes are the last dimension, for performance - eachrow(user_demand.demand), eachrow(user_demand.allocated), user_demand.return_factor, user_demand.min_level, - user_demand.demand_from_timeseries, ) - if !active + if !(active || all_nodes_active) continue end @@ -287,31 +352,24 @@ function formulate_flow!( # effectively allocated = demand. for priority_idx in eachindex(allocation.priorities) alloc_prio = allocated[priority_idx] - demand_prio = if demand_from_timeseries - demand_itp[priority_idx](t) - else - demand[priority_idx] - end + demand_prio = get_demand(user_demand, id, priority_idx, t) alloc = min(alloc_prio, demand_prio) q += alloc end # Smoothly let abstraction go to 0 as the source basin dries out inflow_id = inflow_edge.edge[1] - factor_basin = low_storage_factor(storage, inflow_id, 10.0) + factor_basin = get_low_storage_factor(current_low_storage_factor, inflow_id) q *= factor_basin # Smoothly let abstraction go to 0 as the source basin # level reaches its minimum level - _, source_level = get_level(p, inflow_id, t; storage) + source_level = get_level(p, inflow_id, t, current_level) Δsource_level = source_level - min_level - factor_level = reduction_factor(Δsource_level, 0.1) + factor_level = reduction_factor(Δsource_level, USER_DEMAND_MIN_LEVEL_THRESHOLD) q *= factor_level - - set_flow!(graph, inflow_edge, q) - - # Return flow is immediate - set_flow!(graph, outflow_edge, q * return_factor) + du.user_demand_inflow[id.idx] = q + du.user_demand_outflow[id.idx] = q * return_factor(t) end return nothing end @@ -320,12 +378,14 @@ end Directed graph: outflow is positive! """ function formulate_flow!( + du::ComponentVector, linear_resistance::LinearResistance, p::Parameters, - storage::AbstractVector, t::Number, + current_low_storage_factor::Vector, + current_level::Vector, )::Nothing - (; graph) = p + all_nodes_active = p.all_nodes_active[] (; node_id, active, resistance, max_flow_rate) = linear_resistance for id in node_id inflow_edge = linear_resistance.inflow_edge[id.idx] @@ -334,21 +394,18 @@ function formulate_flow!( inflow_id = inflow_edge.edge[1] outflow_id = outflow_edge.edge[2] - if active[id.idx] - _, h_a = get_level(p, inflow_id, t; storage) - _, h_b = get_level(p, outflow_id, t; storage) + if (active[id.idx] || all_nodes_active) + h_a = get_level(p, inflow_id, t, current_level) + h_b = get_level(p, outflow_id, t, current_level) q_unlimited = (h_a - h_b) / resistance[id.idx] q = clamp(q_unlimited, -max_flow_rate[id.idx], max_flow_rate[id.idx]) - - # add reduction_factor on highest level - if q > 0 - q *= low_storage_factor(storage, inflow_id, 10.0) - else - q *= low_storage_factor(storage, outflow_id, 10.0) - end - - set_flow!(graph, inflow_edge, q) - set_flow!(graph, outflow_edge, q) + q *= low_storage_factor_resistance_node( + current_low_storage_factor, + q, + inflow_id, + outflow_id, + ) + du.linear_resistance[id.idx] = q end end return nothing @@ -358,30 +415,37 @@ end Directed graph: outflow is positive! """ function formulate_flow!( + du::AbstractVector, tabulated_rating_curve::TabulatedRatingCurve, p::Parameters, - storage::AbstractVector, t::Number, + current_low_storage_factor::Vector, + current_level::Vector, )::Nothing - (; graph) = p - (; node_id, active, table, inflow_edge, outflow_edges) = tabulated_rating_curve + all_nodes_active = p.all_nodes_active[] + (; node_id, active, table) = tabulated_rating_curve for id in node_id - upstream_edge = inflow_edge[id.idx] - downstream_edges = outflow_edges[id.idx] - upstream_basin_id = upstream_edge.edge[1] + inflow_edge = tabulated_rating_curve.inflow_edge[id.idx] + outflow_edge = tabulated_rating_curve.outflow_edge[id.idx] + inflow_id = inflow_edge.edge[1] + outflow_id = outflow_edge.edge[2] + max_downstream_level = tabulated_rating_curve.max_downstream_level[id.idx] + + h_a = get_level(p, inflow_id, t, current_level) + h_b = get_level(p, outflow_id, t, current_level) + Δh = h_a - h_b - if active[id.idx] - factor = low_storage_factor(storage, upstream_basin_id, 10.0) - q = factor * table[id.idx](get_level(p, upstream_basin_id, t; storage)[2]) + if active[id.idx] || all_nodes_active + factor = get_low_storage_factor(current_low_storage_factor, inflow_id) + q = factor * table[id.idx](h_a) + q *= reduction_factor(Δh, 0.02) + q *= reduction_factor(max_downstream_level - h_b, 0.02) else q = 0.0 end - set_flow!(graph, upstream_edge, q) - for downstream_edge in downstream_edges - set_flow!(graph, downstream_edge, q) - end + du.tabulated_rating_curve[id.idx] = q end return nothing end @@ -426,12 +490,13 @@ hydraulic radius. This ensures that a basin can receive water after it has gone dry. """ function formulate_flow!( + du::AbstractVector, manning_resistance::ManningResistance, p::Parameters, - storage::AbstractVector{T}, t::Number, -)::Nothing where {T} - (; graph) = p + current_low_storage_factor::Vector, + current_level::Vector, +)::Nothing (; node_id, active, @@ -442,6 +507,7 @@ function formulate_flow!( upstream_bottom, downstream_bottom, ) = manning_resistance + all_nodes_active = p.all_nodes_active[] for id in node_id inflow_edge = manning_resistance.inflow_edge[id.idx] outflow_edge = manning_resistance.outflow_edge[id.idx] @@ -449,12 +515,13 @@ function formulate_flow!( inflow_id = inflow_edge.edge[1] outflow_id = outflow_edge.edge[2] - if !active[id.idx] + if !(active[id.idx] || all_nodes_active) continue end - _, h_a = get_level(p, inflow_id, t; storage) - _, h_b = get_level(p, outflow_id, t; storage) + h_a = get_level(p, inflow_id, t, current_level) + h_b = get_level(p, outflow_id, t, current_level) + bottom_a = upstream_bottom[id.idx] bottom_b = downstream_bottom[id.idx] slope = profile_slope[id.idx] @@ -462,9 +529,6 @@ function formulate_flow!( n = manning_n[id.idx] L = length[id.idx] - Δh = h_a - h_b - q_sign = sign(Δh) - # Average d, A, R d_a = h_a - bottom_a d_b = h_b - bottom_b @@ -479,169 +543,349 @@ function formulate_flow!( P_b = width + 2.0 * d_b * slope_unit_length R_h_a = A_a / P_a R_h_b = A_b / P_b - R_h::T = 0.5 * (R_h_a + R_h_b) - k = 1000.0 - # This epsilon makes sure the AD derivative at Δh = 0 does not give NaN - eps = 1e-200 + R_h = 0.5 * (R_h_a + R_h_b) - q = q_sign * A / n * ∛(R_h^2) * sqrt(Δh / L * 2 / π * atan(k * Δh) + eps) + Δh = h_a - h_b - set_flow!(graph, inflow_edge, q) - set_flow!(graph, outflow_edge, q) + q = A / n * ∛(R_h^2) * relaxed_root(Δh / L, 1e-3) + q *= low_storage_factor_resistance_node( + current_low_storage_factor, + q, + inflow_id, + outflow_id, + ) + du.manning_resistance[id.idx] = q end return nothing end function formulate_flow!( - flow_boundary::FlowBoundary, - p::Parameters, - storage::AbstractVector, - t::Number, -)::Nothing - (; graph) = p - (; node_id, active, flow_rate, outflow_edges) = flow_boundary - - for id in node_id - if active[id.idx] - rate = flow_rate[id.idx](t) - for outflow_edge in outflow_edges[id.idx] - - # Adding water is always possible - set_flow!(graph, outflow_edge, rate) - end - end - end -end - -function formulate_flow!( + du::AbstractVector, pump::Pump, p::Parameters, - storage::AbstractVector, t::Number, + current_low_storage_factor::Vector, + current_level::Vector, + continuous_control_type_::ContinuousControlType.T, )::Nothing - (; graph, basin) = p - - for (node_id, inflow_edge, outflow_edges, active, flow_rate, is_pid_controlled) in zip( + all_nodes_active = p.all_nodes_active[] + for ( + id, + inflow_edge, + outflow_edge, + active, + flow_rate, + min_flow_rate, + max_flow_rate, + min_upstream_level, + max_downstream_level, + continuous_control_type, + ) in zip( pump.node_id, pump.inflow_edge, - pump.outflow_edges, + pump.outflow_edge, pump.active, - get_tmp(pump.flow_rate, storage), - pump.is_pid_controlled, + pump.flow_rate[parent(du)], + pump.min_flow_rate, + pump.max_flow_rate, + pump.min_upstream_level, + pump.max_downstream_level, + pump.continuous_control_type, ) - if !active || is_pid_controlled + if !(active || all_nodes_active) || + (continuous_control_type != continuous_control_type_) continue end inflow_id = inflow_edge.edge[1] - factor = low_storage_factor(storage, inflow_id, 10.0) + outflow_id = outflow_edge.edge[2] + src_level = get_level(p, inflow_id, t, current_level) + dst_level = get_level(p, outflow_id, t, current_level) + + factor = get_low_storage_factor(current_low_storage_factor, inflow_id) q = flow_rate * factor - set_flow!(graph, inflow_edge, q) + q *= reduction_factor(src_level - min_upstream_level, 0.02) + q *= reduction_factor(max_downstream_level - dst_level, 0.02) - for outflow_edge in outflow_edges - set_flow!(graph, outflow_edge, q) - end + q = clamp(q, min_flow_rate, max_flow_rate) + du.pump[id.idx] = q end return nothing end function formulate_flow!( + du::AbstractVector, outlet::Outlet, p::Parameters, - storage::AbstractVector, t::Number, + current_low_storage_factor::Vector, + current_level::Vector, + continuous_control_type_::ContinuousControlType.T, )::Nothing - (; graph) = p - + all_nodes_active = p.all_nodes_active[] for ( - node_id, + id, inflow_edge, - outflow_edges, + outflow_edge, active, flow_rate, - is_pid_controlled, - min_crest_level, + min_flow_rate, + max_flow_rate, + continuous_control_type, + min_upstream_level, + max_downstream_level, ) in zip( outlet.node_id, outlet.inflow_edge, - outlet.outflow_edges, + outlet.outflow_edge, outlet.active, - get_tmp(outlet.flow_rate, storage), - outlet.is_pid_controlled, - outlet.min_crest_level, + outlet.flow_rate[parent(du)], + outlet.min_flow_rate, + outlet.max_flow_rate, + outlet.continuous_control_type, + outlet.min_upstream_level, + outlet.max_downstream_level, ) - if !active || is_pid_controlled + if !(active || all_nodes_active) || + (continuous_control_type != continuous_control_type_) continue end inflow_id = inflow_edge.edge[1] - q = flow_rate - q *= low_storage_factor(storage, inflow_id, 10.0) - - # No flow of outlet if source level is lower than target level - outflow_edge = only(outflow_edges) outflow_id = outflow_edge.edge[2] - _, src_level = get_level(p, inflow_id, t; storage) - _, dst_level = get_level(p, outflow_id, t; storage) - - if src_level !== nothing && dst_level !== nothing - Δlevel = src_level - dst_level - q *= reduction_factor(Δlevel, 0.1) - end + src_level = get_level(p, inflow_id, t, current_level) + dst_level = get_level(p, outflow_id, t, current_level) - # No flow out outlet if source level is lower than minimum crest level - if src_level !== nothing - q *= reduction_factor(src_level - min_crest_level, 0.1) - end + q = flow_rate + q *= get_low_storage_factor(current_low_storage_factor, inflow_id) - set_flow!(graph, inflow_edge, q) + # No flow of outlet if source level is lower than target level + Δlevel = src_level - dst_level + q *= reduction_factor(Δlevel, 0.02) + q *= reduction_factor(src_level - min_upstream_level, 0.02) + q *= reduction_factor(max_downstream_level - dst_level, 0.02) - for outflow_edge in outflow_edges - set_flow!(graph, outflow_edge, q) - end + q = clamp(q, min_flow_rate, max_flow_rate) + du.outlet[id.idx] = q end return nothing end -function formulate_du!( - du::ComponentVector, - graph::MetaGraph, - storage::AbstractVector, +function formulate_flows!( + du::AbstractVector, + p::Parameters, + t::Number, + current_storage::Vector, + current_low_storage_factor::Vector, + current_level::Vector; + continuous_control_type::ContinuousControlType.T = ContinuousControlType.None, )::Nothing - # loop over basins - # subtract all outgoing flows - # add all ingoing flows - for edge_metadata in values(graph[].flow_edges) - from_id, to_id = edge_metadata.edge - - if from_id.type == NodeType.Basin - q = get_flow(graph, edge_metadata, storage) - du[from_id.idx] -= q - elseif to_id.type == NodeType.Basin - q = get_flow(graph, edge_metadata, storage) - du[to_id.idx] += q - end - end - return nothing -end - -function formulate_flows!(p::Parameters, storage::AbstractVector, t::Number)::Nothing (; linear_resistance, manning_resistance, tabulated_rating_curve, - flow_boundary, pump, outlet, user_demand, ) = p - formulate_flow!(linear_resistance, p, storage, t) - formulate_flow!(manning_resistance, p, storage, t) - formulate_flow!(tabulated_rating_curve, p, storage, t) - formulate_flow!(flow_boundary, p, storage, t) - formulate_flow!(pump, p, storage, t) - formulate_flow!(outlet, p, storage, t) - formulate_flow!(user_demand, p, storage, t) + formulate_flow!( + du, + pump, + p, + t, + current_low_storage_factor, + current_level, + continuous_control_type, + ) + formulate_flow!( + du, + outlet, + p, + t, + current_low_storage_factor, + current_level, + continuous_control_type, + ) + + if continuous_control_type == ContinuousControlType.None + formulate_flow!( + du, + linear_resistance, + p, + t, + current_low_storage_factor, + current_level, + ) + formulate_flow!( + du, + manning_resistance, + p, + t, + current_low_storage_factor, + current_level, + ) + formulate_flow!( + du, + tabulated_rating_curve, + p, + t, + current_low_storage_factor, + current_level, + ) + formulate_flow!(du, user_demand, p, t, current_low_storage_factor, current_level) + end +end + +""" +Clamp the cumulative flow states within the minimum and maximum +flow rates for the last time step if these flow rate bounds are known. +""" +function limit_flow!( + u::ComponentVector, + integrator::DEIntegrator, + p::Parameters, + t::Number, +)::Nothing + (; uprev, dt) = integrator + (; + pump, + outlet, + linear_resistance, + user_demand, + tabulated_rating_curve, + basin, + allocation, + ) = p + + # The current storage and level based on the proposed u are used to estimate the lowest + # storage and level attained in the last time step to estimate whether there was an effect + # of reduction factors + du = get_du(integrator) + set_current_basin_properties!(du, u, p, t) + current_storage = basin.current_properties.current_storage[parent(u)] + current_level = basin.current_properties.current_level[parent(u)] + + # TabulatedRatingCurve flow is in [0, ∞) and can be inactive + for (id, active) in zip(tabulated_rating_curve.node_id, tabulated_rating_curve.active) + limit_flow!( + u.tabulated_rating_curve, + uprev.tabulated_rating_curve, + id, + 0.0, + Inf, + active, + dt, + ) + end + + # Pump flow is in [min_flow_rate, max_flow_rate] and can be inactive + for (id, min_flow_rate, max_flow_rate, active) in + zip(pump.node_id, pump.min_flow_rate, pump.max_flow_rate, pump.active) + limit_flow!(u.pump, uprev.pump, id, min_flow_rate, max_flow_rate, active, dt) + end + + # Outlet flow is in [min_flow_rate, max_flow_rate] and can be inactive + for (id, min_flow_rate, max_flow_rate, active) in + zip(outlet.node_id, outlet.min_flow_rate, outlet.max_flow_rate, outlet.active) + limit_flow!(u.outlet, uprev.outlet, id, min_flow_rate, max_flow_rate, active, dt) + end + + # LinearResistance flow is in [-max_flow_rate, max_flow_rate] and can be inactive + for (id, max_flow_rate, active) in zip( + linear_resistance.node_id, + linear_resistance.max_flow_rate, + linear_resistance.active, + ) + limit_flow!( + u.linear_resistance, + uprev.linear_resistance, + id, + -max_flow_rate, + max_flow_rate, + active, + dt, + ) + end + + # UserDemand inflow bounds depend on multiple aspects of the simulation + for (id, active, inflow_edge, demand_from_timeseries) in zip( + user_demand.node_id, + user_demand.active, + user_demand.inflow_edge, + user_demand.demand_from_timeseries, + ) + min_flow_rate, max_flow_rate = if demand_from_timeseries + # Bounding the flow rate if the demand comes from a time series is hard + 0, Inf + else + # The lower bound is estimated as the lowest inflow given the minimum values + # of the reduction factors involved (with a margin) + inflow_id = inflow_edge.edge[1] + factor_basin_min = + min_low_storage_factor(current_storage, basin.storage_prev, inflow_id) + factor_level_min = min_low_user_demand_level_factor( + current_level, + basin.level_prev, + user_demand.min_level, + id, + inflow_id, + ) + allocated_total = + is_active(allocation) ? sum(user_demand.allocated[id.idx, :]) : + sum(user_demand.demand[id.idx, :]) + factor_basin_min * factor_level_min * allocated_total, allocated_total + end + limit_flow!( + u.user_demand_inflow, + uprev.user_demand_inflow, + id, + min_flow_rate, + max_flow_rate, + active, + dt, + ) + end + + # Evaporation is in [0, ∞) (stricter bounds would require also estimating the area) + # Infiltration is in [f * infiltration, infiltration] where f is a rough estimate of the smallest low storage factor + # reduction factor value that was attained over the last timestep + for (id, infiltration) in zip(basin.node_id, basin.vertical_flux.infiltration) + factor_min = min_low_storage_factor(current_storage, basin.storage_prev, id) + limit_flow!(u.evaporation, uprev.evaporation, id, 0.0, Inf, true, dt) + limit_flow!( + u.infiltration, + uprev.infiltration, + id, + factor_min * infiltration, + infiltration, + true, + dt, + ) + end + + return nothing +end + +function limit_flow!( + u_component, + uprev_component, + id::NodeID, + min_flow_rate::Number, + max_flow_rate::Number, + active::Bool, + dt::Number, +)::Nothing + u_prev = uprev_component[id.idx] + if active + u_component[id.idx] = clamp( + u_component[id.idx], + u_prev + min_flow_rate * dt, + u_prev + max_flow_rate * dt, + ) + else + u_component[id.idx] = uprev_component[id.idx] + end + return nothing end diff --git a/core/src/sparsity.jl b/core/src/sparsity.jl deleted file mode 100644 index c4b069849..000000000 --- a/core/src/sparsity.jl +++ /dev/null @@ -1,66 +0,0 @@ -""" -Get a sparse matrix whose sparsity matches (with some false positives) the sparsity of the Jacobian -of the ODE problem. All nodes are taken into consideration, also the ones -that are inactive. - -In Ribasim the Jacobian is typically sparse because each state only depends on a small -number of other states. - -Note: the name 'prototype' does not mean this code is a prototype, it comes -from the naming convention of this sparsity structure in the -differentialequations.jl docs. -""" -function get_jac_prototype(p::Parameters)::SparseMatrixCSC{Float64, Int64} - (; basin, pid_control, graph) = p - - n_basins = length(basin.node_id) - n_states = n_basins + length(pid_control.node_id) - jac_prototype = spzeros(n_states, n_states) - - update_jac_prototype!(jac_prototype, basin, graph) - update_jac_prototype!(jac_prototype, pid_control, basin, graph) - return jac_prototype -end - -""" -Add nonzeros for basins connected to eachother via 1 node. -Basins are also assumed to depend on themselves (main diagonal terms) -""" -function update_jac_prototype!( - jac_prototype::SparseMatrixCSC{Float64, Int64}, - basin::Basin, - graph::MetaGraph, -)::Nothing - for id in basin.node_id - for id_neighbor in inoutflow_ids(graph, id) - for id_neighbor_neighbor in inoutflow_ids(graph, id_neighbor) - if id_neighbor_neighbor.type == NodeType.Basin - jac_prototype[id.idx, id_neighbor_neighbor.idx] = 1.0 - end - end - end - end - return nothing -end - -""" -Add nonzeros for the integral term and the basins on either side of the controlled node -""" -function update_jac_prototype!( - jac_prototype::SparseMatrixCSC{Float64, Int64}, - pid_control::PidControl, - basin::Basin, - graph::MetaGraph, -)::Nothing - for id in pid_control.node_id - idx_integral = length(basin.node_id) + id.idx - id_controlled = only(outneighbor_labels_type(graph, id, EdgeType.control)) - for id_basin in inoutflow_ids(graph, id_controlled) - if id_basin.type == NodeType.Basin - jac_prototype[id_basin.idx, idx_integral] = 1.0 - jac_prototype[idx_integral, id_basin.idx] = 1.0 - end - end - end - return nothing -end diff --git a/core/src/util.jl b/core/src/util.jl index 96b3c2510..c05057911 100644 --- a/core/src/util.jl +++ b/core/src/util.jl @@ -22,7 +22,7 @@ function get_storage_from_level(basin::Basin, state_idx::Int, level::Float64)::F end """Compute the storages of the basins based on the water level of the basins.""" -function get_storages_from_levels(basin::Basin, levels::Vector)::Vector{Float64} +function get_storages_from_levels(basin::Basin, levels::AbstractVector)::Vector{Float64} errors = false state_length = length(levels) basin_length = length(basin.storage_to_level) @@ -50,13 +50,19 @@ function get_storages_from_levels(basin::Basin, levels::Vector)::Vector{Float64} end """ -Compute the area and level of a basin given its storage. +Compute the level of a basin given its storage. """ -function get_area_and_level(basin::Basin, state_idx::Int, storage::T)::Tuple{T, T} where {T} - level = basin.storage_to_level[state_idx](max(storage, 0.0)) - area = basin.level_to_area[state_idx](level) - - return area, level +function get_level_from_storage(basin::Basin, state_idx::Int, storage) + storage_to_level = basin.storage_to_level[state_idx] + if storage >= 0 + return storage_to_level(storage) + else + # Negative storage is not feasible and this yields a level + # below the basin bottom, but this does yield usable gradients + # for the non-linear solver + bottom = first(storage_to_level.u) + return bottom + derivative(storage_to_level, 0.0) * storage + end end """ @@ -104,16 +110,23 @@ function get_scalar_interpolation( push!(parameter, parameter[end]) end - itp = SmoothedLinearInterpolation(parameter, times; extrapolate = true, λ = 0.1) - return LinearInterpolation(itp), allunique(times) + return LinearInterpolation( + parameter, + times; + extrapolate = true, + cache_parameters = true, + ), + allunique(times) end """ From a table with columns node_id, flow_rate (Q) and level (h), create a ScalarInterpolation from level to flow rate for a given node_id. """ -function qh_interpolation(node_id::NodeID, table::StructVector)::ScalarInterpolation - rowrange = findlastgroup(node_id, NodeID.(node_id.type, table.node_id, Ref(0))) +function qh_interpolation( + table::StructVector, + rowrange::UnitRange{Int}, +)::ScalarInterpolation level = table.level[rowrange] flow_rate = table.flow_rate[rowrange] @@ -121,8 +134,12 @@ function qh_interpolation(node_id::NodeID, table::StructVector)::ScalarInterpola pushfirst!(level, first(level) - 1) pushfirst!(flow_rate, first(flow_rate)) - itp = SmoothedLinearInterpolation(flow_rate, level; extrapolate = true) - return LinearInterpolation(itp) + return LinearInterpolation( + flow_rate, + level; + extrapolate = true, + cache_parameters = true, + ) end """ @@ -220,24 +237,19 @@ end """ Get the current water level of a node ID. The ID can belong to either a Basin or a LevelBoundary. -storage: tells ForwardDiff whether this call is for differentiation or not +du: tells ForwardDiff whether this call is for differentiation or not """ -function get_level( - p::Parameters, - node_id::NodeID, - t::Number; - storage::Union{AbstractArray, Number} = 0, -)::Tuple{Bool, Number} - (; basin, level_boundary) = p +function get_level(p::Parameters, node_id::NodeID, t::Number, current_level::Vector)::Number if node_id.type == NodeType.Basin - # The edge metadata is only used to obtain the Basin index - # in case node_id is for a Basin - current_level = get_tmp(basin.current_level, storage) - return true, current_level[node_id.idx] + current_level[node_id.idx] elseif node_id.type == NodeType.LevelBoundary - return true, level_boundary.level[node_id.idx](t) + p.level_boundary.level[node_id.idx](t) + elseif node_id.type == NodeType.Terminal + # Terminal is like a bottomless pit. + # A level at -Inf ensures we don't hit `max_downstream_level` reduction factors. + -Inf else - return false, 0.0 + error("Node ID $node_id is not a Basin, LevelBoundary or Terminal.") end end @@ -343,7 +355,11 @@ function Base.getindex(fv::FlatVector, i::Int) end "Construct a FlatVector from one of the fields of SavedFlow." -FlatVector(saveval::Vector{SavedFlow}, sym::Symbol) = FlatVector(getfield.(saveval, sym)) +function FlatVector(saveval::Vector{<:SavedFlow}, sym::Symbol) + v = isempty(saveval) ? Vector{Float64}[] : getfield.(saveval, sym) + FlatVector(v) +end +FlatVector(v::Vector{Matrix{Float64}}) = FlatVector(vec.(v)) """ Function that goes smoothly from 0 to 1 in the interval [0,threshold], @@ -360,16 +376,27 @@ function reduction_factor(x::T, threshold::Real)::T where {T <: Real} end end -"If id is a Basin with storage below the threshold, return a reduction factor != 1" -function low_storage_factor( - storage::AbstractVector{T}, +function get_low_storage_factor( + current_low_storage_factor::Vector{T}, id::NodeID, - threshold::Real, -)::T where {T <: Real} - if id.type == NodeType.Basin - reduction_factor(storage[id.idx], threshold) +)::T where {T} + return id.type == NodeType.Basin ? current_low_storage_factor[id.idx] : one(T) +end + +""" +For resistance nodes, give a reduction factor based on the upstream node +as defined by the flow direction. +""" +function low_storage_factor_resistance_node( + current_low_storage_factor, + q, + inflow_id, + outflow_id, +) + if q > 0 + get_low_storage_factor(current_low_storage_factor, inflow_id) else - one(T) + get_low_storage_factor(current_low_storage_factor, outflow_id) end end @@ -403,19 +430,30 @@ end function get_all_priorities(db::DB, config::Config)::Vector{Int32} priorities = Set{Int32}() - + is_valid = true # TODO: Is there a way to automatically grab all tables with a priority column? - for type in [ - UserDemandStaticV1, - UserDemandTimeV1, - LevelDemandStaticV1, - LevelDemandTimeV1, - FlowDemandStaticV1, - FlowDemandTimeV1, + for (type, name) in [ + (UserDemandStaticV1, "UserDemand / static"), + (UserDemandTimeV1, "UserDemand / time"), + (LevelDemandStaticV1, "LevelDemand / static"), + (LevelDemandTimeV1, "LevelDemand / time"), + (FlowDemandStaticV1, "FlowDemand / static"), + (FlowDemandTimeV1, "FlowDemand / time"), ] - union!(priorities, load_structvector(db, config, type).priority) + priority_col = load_structvector(db, config, type).priority + priority_col = Int32.(coalesce.(priority_col, Int32(0))) + if valid_priorities(priority_col, config.allocation.use_allocation) + union!(priorities, priority_col) + else + is_valid = false + @error "Missing priority parameter(s) for a $name node in the allocation problem." + end + end + if is_valid + return sort(collect(priorities)) + else + error("Priority parameter is missing") end - return sort(collect(priorities)) end function get_external_priority_idx(p::Parameters, node_id::NodeID)::Int @@ -438,24 +476,47 @@ function get_external_priority_idx(p::Parameters, node_id::NodeID)::Int end """ -Set is_pid_controlled to true for those pumps and outlets that are PID controlled +Set continuous_control_type for those pumps and outlets that are controlled by either +PidControl or ContinuousControl """ -function set_is_pid_controlled!(p::Parameters)::Nothing - (; graph, pid_control, pump, outlet) = p +function set_continuous_control_type!(p::Parameters)::Nothing + (; continuous_control, pid_control) = p + errors = false - for id in pid_control.node_id + errors = set_continuous_control_type!( + p, + continuous_control.node_id, + ContinuousControlType.Continuous, + ) + errors |= + set_continuous_control_type!(p, pid_control.node_id, ContinuousControlType.PID) + + if errors + error("Errors occurred when parsing ContinuousControl and PidControl connectivity") + end + return nothing +end + +function set_continuous_control_type!( + p::Parameters, + node_id::Vector{NodeID}, + continuous_control_type::ContinuousControlType.T, +)::Bool + (; graph, pump, outlet) = p + errors = false + + for id in node_id id_controlled = only(outneighbor_labels_type(graph, id, EdgeType.control)) if id_controlled.type == NodeType.Pump - pump.is_pid_controlled[id_controlled.idx] = true + pump.continuous_control_type[id_controlled.idx] = continuous_control_type elseif id_controlled.type == NodeType.Outlet - outlet.is_pid_controlled[id_controlled.idx] = true + outlet.continuous_control_type[id_controlled.idx] = continuous_control_type else - error( - "Only Pump and Outlet can be controlled by PidController, got $is_controlled", - ) + errors = true + @error "Only Pump and Outlet can be controlled by PidController, got $id_controlled" end end - return nothing + return errors end function has_external_demand( @@ -505,22 +566,6 @@ function get_Δt(integrator)::Float64 end end -function get_influx(basin::Basin, node_id::NodeID)::Float64 - if node_id.type !== NodeType.Basin - error("Sum of vertical fluxes requested for non-basin $node_id.") - end - return get_influx(basin, node_id.idx) -end - -function get_influx(basin::Basin, basin_idx::Int; prev::Bool = false)::Float64 - (; vertical_flux, vertical_flux_prev) = basin - vertical_flux = get_tmp(vertical_flux, 0) - flux_vector = prev ? vertical_flux_prev : vertical_flux - (; precipitation, evaporation, drainage, infiltration) = flux_vector - return precipitation[basin_idx] - evaporation[basin_idx] + drainage[basin_idx] - - infiltration[basin_idx] -end - inflow_edge(graph, node_id)::EdgeMetadata = graph[inflow_id(graph, node_id), node_id] outflow_edge(graph, node_id)::EdgeMetadata = graph[node_id, outflow_id(graph, node_id)] outflow_edges(graph, node_id)::Vector{EdgeMetadata} = @@ -532,22 +577,21 @@ as input. Therefore we set the instantaneous flows as the mean flows as allocati """ function set_initial_allocation_mean_flows!(integrator)::Nothing (; u, p, t) = integrator - (; allocation, graph, basin) = p + (; allocation, graph) = p (; mean_input_flows, mean_realized_flows, allocation_models) = allocation (; Δt_allocation) = allocation_models[1] - (; vertical_flux) = basin - vertical_flux = get_tmp(vertical_flux, 0) # At the time of writing water_balance! already # gets called once at the problem initialization, this # one is just to make sure. - water_balance!(get_du(integrator), u, p, t) + du = get_du(integrator) + water_balance!(du, u, p, t) for edge in keys(mean_input_flows) if edge[1] == edge[2] - q = get_influx(basin, edge[1]) + q = get_influx(du, edge[1], p) else - q = get_flow(graph, edge..., 0) + q = get_flow(du, p, t, edge) end # Multiply by Δt_allocation as averaging divides by this factor # in update_allocation! @@ -560,7 +604,7 @@ function set_initial_allocation_mean_flows!(integrator)::Nothing if edge[1] == edge[2] mean_realized_flows[edge] = -u[edge[1].idx] else - q = get_flow(graph, edge..., 0) + q = get_flow(du, p, t, edge) mean_realized_flows[edge] = q * Δt_allocation end end @@ -583,54 +627,62 @@ function NodeID(type::Symbol, value::Integer, p::Parameters)::NodeID end """ -Get a reference to a state(-derived) parameter +Get the reference to a parameter """ function get_variable_ref( p::Parameters, - subvariable::NamedTuple, -)::Tuple{Base.RefArray{Float64, Vector{Float64}, Nothing}, Bool} - (; basin, graph) = p - (; listen_node_id, variable) = subvariable - + node_id::NodeID, + variable::String; + listen::Bool = true, +)::Tuple{PreallocationRef, Bool} + (; basin) = p errors = false - ref = if listen_node_id.type == NodeType.Basin && variable == "level" - level = get_tmp(basin.current_level, 0) - Ref(level, listen_node_id.idx) - elseif variable == "flow_rate" && listen_node_id.type != NodeType.FlowBoundary - # FlowBoundary flow_rate can also be listened to but this is handled differently, - # because it supports look ahead - listen_node_type = listen_node_id.type - if listen_node_type ∉ conservative_nodetypes - errors = true - @error "Cannot listen to flow_rate of $listen_node_id, the node type must be one of $conservative_node_types" - Ref(Float64[], 0) + # Only built here because it is needed to obtain indices + u = build_state_vector(p) + + ref = if node_id.type == NodeType.Basin && variable == "level" + PreallocationRef(basin.current_properties.current_level, node_id.idx) + elseif variable == "flow_rate" && node_id.type != NodeType.FlowBoundary + if listen + if node_id.type ∉ conservative_nodetypes + errors = true + @error "Cannot listen to flow_rate of $node_id, the node type must be one of $conservative_node_types" + Ref(Float64[], 0) + else + # Index in the state vector (inflow) + flow_idx = get_state_index(node_id, u) + PreallocationRef(cache(1), flow_idx; from_du = true) + end else - flow = get_tmp(graph[].flow, 0) - id_in = inflow_id(graph, listen_node_id) - flow_idx = graph[].flow_dict[(id_in, listen_node_id)] - Ref(flow, flow_idx) + node = getfield(p, snake_case(Symbol(node_id.type))) + PreallocationRef(node.flow_rate, node_id.idx) end else - Ref(Float64[], 0) + # Placeholder to obtain correct type + PreallocationRef(cache(1), 0) end - return ref, errors end """ -Set references to all variables that are listened to by discrete control +Set references to all variables that are listened to by discrete/continuous control """ function set_listen_variable_refs!(p::Parameters)::Nothing - (; discrete_control) = p + (; discrete_control, continuous_control) = p + compound_variable_sets = + [discrete_control.compound_variables..., continuous_control.compound_variable] errors = false - for compound_variables in discrete_control.compound_variables + for compound_variables in compound_variable_sets for compound_variable in compound_variables (; subvariables) = compound_variable for (j, subvariable) in enumerate(subvariables) - ref, error = get_variable_ref(p, subvariable) - subvariables[j] = @set subvariable.variable_ref = ref + ref, error = + get_variable_ref(p, subvariable.listen_node_id, subvariable.variable) + if !error + subvariables[j] = @set subvariable.variable_ref = ref + end errors |= error end end @@ -645,7 +697,7 @@ end """ Set references to all variables that are controlled by discrete control """ -function set_controlled_variable_refs!(p::Parameters)::Nothing +function set_discrete_controlled_variable_refs!(p::Parameters)::Nothing for nodetype in propertynames(p) node = getfield(p, nodetype) if node isa AbstractParameterNode && hasfield(typeof(node), :control_mapping) @@ -657,13 +709,16 @@ function set_controlled_variable_refs!(p::Parameters)::Nothing # References to scalar parameters for (i, parameter_update) in enumerate(scalar_update) - field = get_tmp(getfield(node, parameter_update.name), 0) + field = getfield(node, parameter_update.name) + if field isa Cache + field = field[Float64[]] + end scalar_update[i] = @set parameter_update.ref = Ref(field, node_id.idx) end # References to interpolation parameters for (i, parameter_update) in enumerate(itp_update) - field = get_tmp(getfield(node, parameter_update.name), 0) + field = getfield(node, parameter_update.name) itp_update[i] = @set parameter_update.ref = Ref(field, node_id.idx) end @@ -678,6 +733,28 @@ function set_controlled_variable_refs!(p::Parameters)::Nothing return nothing end +function set_continuously_controlled_variable_refs!(p::Parameters)::Nothing + (; continuous_control, pid_control, graph) = p + errors = false + for (node, controlled_variable) in ( + (continuous_control, continuous_control.controlled_variable), + (pid_control, fill("flow_rate", length(pid_control.node_id))), + ) + for (id, controlled_variable) in zip(node.node_id, controlled_variable) + controlled_node_id = only(outneighbor_labels_type(graph, id, EdgeType.control)) + ref, error = + get_variable_ref(p, controlled_node_id, controlled_variable; listen = false) + push!(node.target_ref, ref) + errors |= error + end + end + + if errors + error("Errors encountered when setting continuously controlled variable refs.") + end + return nothing +end + """ Add a control state to a logic mapping. The references to the targets in memory for the parameter values are added later when these references are known @@ -751,18 +828,347 @@ function basin_areas(basin::Basin, state_idx::Int) end """ -Just before setting a timestep, call water_balance! again -to get a correct value of the flows for integrating +The function f(x) = sign(x)*√(|x|) where for |x| water_balance!(du, u, p, t0), + du0, + u0, + TracerSparsityDetector(), + ) + p.all_nodes_active[] = false + jac_prototype +end - flow = get_tmp(flow, 0) - vertical_flux = get_tmp(vertical_flux, 0) - copyto!(flow_prev, flow) - copyto!(vertical_flux_prev, vertical_flux) +# Custom overloads +reduction_factor(x::GradientTracer, threshold::Real) = x +low_storage_factor_resistance_node(storage, q::GradientTracer, inflow_id, outflow_id) = q +relaxed_root(x::GradientTracer, threshold::Real) = x +get_level_from_storage(basin::Basin, state_idx::Int, storage::GradientTracer) = storage +stop_declining_negative_storage!(du, u::ComponentVector{<:GradientTracer}) = nothing + +@kwdef struct MonitoredBackTracking{B, V} + linesearch::B = BackTracking() + dz_tmp::V = [] + z_tmp::V = [] +end + +""" +Compute the residual of the non-linear solver, i.e. a measure of the +error in the solution to the implicit equation defined by the solver algorithm +""" +function residual(z, integrator, nlsolver, f) + (; uprev, t, p, dt, opts, isdae) = integrator + (; tmp, ztmp, γ, α, cache, method) = nlsolver + (; ustep, atmp, tstep, k, invγdt, tstep, k, invγdt) = cache + if isdae + _uprev = get_dae_uprev(integrator, uprev) + b, ustep2 = + _compute_rhs!(tmp, ztmp, ustep, α, tstep, k, invγdt, p, _uprev, f::TF, z) + else + b, ustep2 = + _compute_rhs!(tmp, ztmp, ustep, γ, α, tstep, k, invγdt, method, p, dt, f, z) + end + calculate_residuals!( + atmp, + b, + uprev, + ustep2, + opts.abstol, + opts.reltol, + opts.internalnorm, + t, + ) + ndz = opts.internalnorm(atmp, t) + return ndz +end + +""" +MonitoredBackTracing is a thin wrapper of BackTracking, making sure that +the BackTracking relaxation is rejected if it results in a residual increase +""" +function OrdinaryDiffEqNonlinearSolve.relax!( + dz, + nlsolver::AbstractNLSolver, + integrator::DEIntegrator, + f, + linesearch::MonitoredBackTracking, +) + (; linesearch, dz_tmp, z_tmp) = linesearch + + # Store step before relaxation + @. dz_tmp = dz + + # Apply relaxation and measure the residual change + @. z_tmp = nlsolver.z + dz + resid_before = residual(z_tmp, integrator, nlsolver, f) + relax!(dz, nlsolver, integrator, f, linesearch) + @. z_tmp = nlsolver.z + dz + resid_after = residual(z_tmp, integrator, nlsolver, f) + + # If the residual increased due to the relaxation, reject it + if resid_after > resid_before + @. dz = dz_tmp + end +end + +function build_state_vector(p::Parameters) + # It is assumed that the horizontal flow states come first in + # p.state_inflow_edge and p.state_outflow_edge + return ComponentVector{Float64}(; + tabulated_rating_curve = zeros(length(p.tabulated_rating_curve.node_id)), + pump = zeros(length(p.pump.node_id)), + outlet = zeros(length(p.outlet.node_id)), + user_demand_inflow = zeros(length(p.user_demand.node_id)), + user_demand_outflow = zeros(length(p.user_demand.node_id)), + linear_resistance = zeros(length(p.linear_resistance.node_id)), + manning_resistance = zeros(length(p.manning_resistance.node_id)), + evaporation = zeros(length(p.basin.node_id)), + infiltration = zeros(length(p.basin.node_id)), + integral = zeros(length(p.pid_control.node_id)), + ) +end + +function build_flow_to_storage(p::Parameters, u::ComponentVector)::Parameters + n_basins = length(p.basin.node_id) + n_states = length(u) + flow_to_storage = ComponentArray( + spzeros(n_basins, n_states), + (Axis(; basins = 1:n_basins), only(getaxes(u))), + ) + + for node_name in ( + :tabulated_rating_curve, + :pump, + :outlet, + :linear_resistance, + :manning_resistance, + :user_demand, + ) + node = getfield(p, node_name) + + if node_name == :user_demand + flow_to_storage_node_inflow = view(flow_to_storage, :, :user_demand_inflow) + flow_to_storage_node_outflow = view(flow_to_storage, :, :user_demand_outflow) + else + flow_to_storage_node_inflow = view(flow_to_storage, :, node_name) + flow_to_storage_node_outflow = flow_to_storage_node_inflow + end + + for (inflow_edge, outflow_edge) in zip(node.inflow_edge, node.outflow_edge) + inflow_id, node_id = inflow_edge.edge + if inflow_id.type == NodeType.Basin + flow_to_storage_node_inflow[inflow_id.idx, node_id.idx] = -1.0 + end + + outflow_id = outflow_edge.edge[2] + if outflow_id.type == NodeType.Basin + flow_to_storage_node_outflow[outflow_id.idx, node_id.idx] = 1.0 + end + end + end + + flow_to_storage_evaporation = view(flow_to_storage, :, :evaporation) + flow_to_storage_infiltration = view(flow_to_storage, :, :infiltration) + + for i in 1:n_basins + flow_to_storage_evaporation[i, i] = -1.0 + flow_to_storage_infiltration[i, i] = -1.0 + end + + @set p.flow_to_storage = parent(flow_to_storage) +end + +""" +Create vectors state_inflow_edge and state_outflow_edge which give for each state +in the state vector in order the metadata of the edge that is associated with that state. +Only for horizontal flows, which are assumed to come first in the state vector. +""" +function set_state_flow_edges(p::Parameters, u0::ComponentVector)::Parameters + (; user_demand, graph) = p + + components = Symbol[] + state_inflow_edges = Vector{EdgeMetadata}[] + state_outflow_edges = Vector{EdgeMetadata}[] + + placeholder_edge = EdgeMetadata( + 0, + EdgeType.flow, + 0, + (NodeID(:Terminal, 0, 0), NodeID(:Terminal, 0, 0)), + ) + + for node_name in keys(u0) + if hasfield(Parameters, node_name) + node::AbstractParameterNode = getfield(p, node_name) + push!(components, node_name) + state_inflow_edges_component = EdgeMetadata[] + state_outflow_edges_component = EdgeMetadata[] + for id in node.node_id + inflow_ids_ = collect(inflow_ids(p.graph, id)) + outflow_ids_ = collect(outflow_ids(p.graph, id)) + + inflow_edge = if length(inflow_ids_) == 0 + placeholder_edge + elseif length(inflow_ids_) == 1 + inflow_id = only(inflow_ids_) + graph[inflow_id, id] + else + error("Multiple inflows not supported") + end + push!(state_inflow_edges_component, inflow_edge) + + outflow_edge = if length(outflow_ids_) == 0 + placeholder_edge + elseif length(outflow_ids_) == 1 + outflow_id = only(outflow_ids_) + graph[id, outflow_id] + else + error("Multiple outflows not supported") + end + push!(state_outflow_edges_component, outflow_edge) + end + push!(state_inflow_edges, state_inflow_edges_component) + push!(state_outflow_edges, state_outflow_edges_component) + elseif startswith(String(node_name), "user_demand") + push!(components, node_name) + placeholder_edges = fill(placeholder_edge, length(user_demand.node_id)) + if node_name == :user_demand_inflow + push!(state_inflow_edges, user_demand.inflow_edge) + push!(state_outflow_edges, placeholder_edges) + elseif node_name == :user_demand_outflow + push!(state_inflow_edges, placeholder_edges) + push!(state_outflow_edges, user_demand.outflow_edge) + end + end + end + + state_inflow_edge = ComponentVector(NamedTuple(zip(components, state_inflow_edges))) + state_outflow_edge = ComponentVector(NamedTuple(zip(components, state_outflow_edges))) + + @reset p.state_inflow_edge = state_inflow_edge + @reset p.state_outflow_edge = state_outflow_edge + return p +end + +function id_from_state_index( + p::Parameters, + ::ComponentVector{Float64, Vector{Float64}, <:Tuple{<:Axis{NT}}}, + global_idx::Int, +)::NodeID where {NT} + local_idx = 0 + component = Symbol() + for (comp, range) in pairs(NT) + if global_idx in range + component = comp + local_idx = global_idx - first(range) + 1 + break + end + end + component_string = String(component) + if endswith(component_string, "_inflow") || endswith(component_string, "_outflow") + component = :user_demand + elseif component == :integral + component = :pid_control + elseif component in [:infiltration, :evaporation] + component = :basin + end + + getfield(p, component).node_id[local_idx] +end + +function get_state_index( + id::NodeID, + ::ComponentVector{A, B, <:Tuple{<:Axis{NT}}}; + inflow::Bool = true, +) where {A, B, NT} + component_name = if id.type == NodeType.UserDemand + inflow ? :user_demand_inflow : :user_demand_outflow + else + snake_case(Symbol(id.type)) + end + for (comp, range) in pairs(NT) + if comp == component_name + return range[id.idx] + end + end + return nothing +end + +function get_state_index(u::ComponentVector, edge::Tuple{NodeID, NodeID})::Int + idx = get_state_index(edge[2], u) + isnothing(idx) ? get_state_index(edge[1], u; inflow = false) : idx +end + +""" +Check whether any storages are negative given the state u. +""" +function isoutofdomain(u, p, t) + (; current_storage) = p.basin.current_properties + current_storage = current_storage[parent(u)] + formulate_storages!(current_storage, u, u, p, t) + any(<(0), current_storage) +end + +function get_demand(user_demand, id, priority_idx, t)::Float64 + (; demand_from_timeseries, demand_itp, demand) = user_demand + if demand_from_timeseries[id.idx] + demand_itp[id.idx][priority_idx](t) + else + demand[id.idx, priority_idx] + end +end + +""" +Estimate the minimum reduction factor achieved over the last time step by +estimating the lowest storage achieved over the last time step. To make sure +it is an underestimate of the minimum, 2LOW_STORAGE_THRESHOLD is subtracted from this lowest storage. +This is done to not be too strict in clamping the flow in the limiter +""" +function min_low_storage_factor(storage_now::Vector{T}, storage_prev, id) where {T} + if id.type == NodeType.Basin + reduction_factor( + min(storage_now[id.idx], storage_prev[id.idx]) - 2LOW_STORAGE_THRESHOLD, + LOW_STORAGE_THRESHOLD, + ) + else + one(T) + end +end + +""" +Estimate the minimum level reduction factor achieved over the last time step by +estimating the lowest level achieved over the last time step. To make sure +it is an underestimate of the minimum, 2USER_DEMAND_MIN_LEVEL_THRESHOLD is subtracted from this lowest level. +This is done to not be too strict in clamping the flow in the limiter +""" +function min_low_user_demand_level_factor( + level_now::Vector{T}, + level_prev, + min_level, + id_user_demand, + id_inflow, +) where {T} + if id_inflow.type == NodeType.Basin + reduction_factor( + min(level_now[id_inflow.idx], level_prev[id_inflow.idx]) - + min_level[id_user_demand.idx] - 2USER_DEMAND_MIN_LEVEL_THRESHOLD, + USER_DEMAND_MIN_LEVEL_THRESHOLD, + ) + else + one(T) + end end diff --git a/core/src/validation.jl b/core/src/validation.jl index 3858ac32b..cfed36c6c 100644 --- a/core/src/validation.jl +++ b/core/src/validation.jl @@ -1,9 +1,8 @@ # Allowed types for downstream (to_node_id) nodes given the type of the upstream (from_node_id) node -neighbortypes(nodetype::Symbol) = neighbortypes(Val(nodetype)) +neighbortypes(nodetype::Symbol) = neighbortypes(Val(config.snake_case(nodetype))) neighbortypes(::Val{:pump}) = Set((:basin, :terminal, :level_boundary)) neighbortypes(::Val{:outlet}) = Set((:basin, :terminal, :level_boundary)) -neighbortypes(::Val{:user_demand}) = - Set((:basin, :terminal, :level_boundary)) +neighbortypes(::Val{:user_demand}) = Set((:basin, :terminal, :level_boundary)) neighbortypes(::Val{:level_demand}) = Set((:basin,)) neighbortypes(::Val{:basin}) = Set(( :linear_resistance, @@ -14,12 +13,12 @@ neighbortypes(::Val{:basin}) = Set(( :user_demand, )) neighbortypes(::Val{:terminal}) = Set{Symbol}() # only endnode -neighbortypes(::Val{:flow_boundary}) = - Set((:basin, :terminal, :level_boundary)) +neighbortypes(::Val{:flow_boundary}) = Set((:basin, :terminal, :level_boundary)) neighbortypes(::Val{:level_boundary}) = Set((:linear_resistance, :pump, :outlet, :tabulated_rating_curve)) neighbortypes(::Val{:linear_resistance}) = Set((:basin, :level_boundary)) neighbortypes(::Val{:manning_resistance}) = Set((:basin,)) +neighbortypes(::Val{:continuous_control}) = Set((:pump, :outlet)) neighbortypes(::Val{:discrete_control}) = Set(( :pump, :outlet, @@ -29,8 +28,7 @@ neighbortypes(::Val{:discrete_control}) = Set(( :pid_control, )) neighbortypes(::Val{:pid_control}) = Set((:pump, :outlet)) -neighbortypes(::Val{:tabulated_rating_curve}) = - Set((:basin, :terminal, :level_boundary)) +neighbortypes(::Val{:tabulated_rating_curve}) = Set((:basin, :terminal, :level_boundary)) neighbortypes(::Val{:flow_demand}) = Set((:linear_resistance, :manning_resistance, :tabulated_rating_curve, :pump, :outlet)) neighbortypes(::Any) = Set{Symbol}() @@ -47,15 +45,15 @@ n_neighbor_bounds_flow(nodetype::Symbol) = n_neighbor_bounds_flow(Val(nodetype)) n_neighbor_bounds_flow(::Val{:Basin}) = n_neighbor_bounds(0, typemax(Int), 0, typemax(Int)) n_neighbor_bounds_flow(::Val{:LinearResistance}) = n_neighbor_bounds(1, 1, 1, 1) n_neighbor_bounds_flow(::Val{:ManningResistance}) = n_neighbor_bounds(1, 1, 1, 1) -n_neighbor_bounds_flow(::Val{:TabulatedRatingCurve}) = - n_neighbor_bounds(1, 1, 1, typemax(Int)) +n_neighbor_bounds_flow(::Val{:TabulatedRatingCurve}) = n_neighbor_bounds(1, 1, 1, 1) n_neighbor_bounds_flow(::Val{:LevelBoundary}) = n_neighbor_bounds(0, typemax(Int), 0, typemax(Int)) n_neighbor_bounds_flow(::Val{:FlowBoundary}) = n_neighbor_bounds(0, 0, 1, typemax(Int)) -n_neighbor_bounds_flow(::Val{:Pump}) = n_neighbor_bounds(1, 1, 1, typemax(Int)) +n_neighbor_bounds_flow(::Val{:Pump}) = n_neighbor_bounds(1, 1, 1, 1) n_neighbor_bounds_flow(::Val{:Outlet}) = n_neighbor_bounds(1, 1, 1, 1) n_neighbor_bounds_flow(::Val{:Terminal}) = n_neighbor_bounds(1, typemax(Int), 0, 0) n_neighbor_bounds_flow(::Val{:PidControl}) = n_neighbor_bounds(0, 0, 0, 0) +n_neighbor_bounds_flow(::Val{:ContinuousControl}) = n_neighbor_bounds(0, 0, 0, 0) n_neighbor_bounds_flow(::Val{:DiscreteControl}) = n_neighbor_bounds(0, 0, 0, 0) n_neighbor_bounds_flow(::Val{:UserDemand}) = n_neighbor_bounds(1, 1, 1, 1) n_neighbor_bounds_flow(::Val{:LevelDemand}) = n_neighbor_bounds(0, 0, 0, 0) @@ -74,6 +72,8 @@ n_neighbor_bounds_control(::Val{:Pump}) = n_neighbor_bounds(0, 1, 0, 0) n_neighbor_bounds_control(::Val{:Outlet}) = n_neighbor_bounds(0, 1, 0, 0) n_neighbor_bounds_control(::Val{:Terminal}) = n_neighbor_bounds(0, 0, 0, 0) n_neighbor_bounds_control(::Val{:PidControl}) = n_neighbor_bounds(0, 1, 1, 1) +n_neighbor_bounds_control(::Val{:ContinuousControl}) = + n_neighbor_bounds(0, 0, 1, typemax(Int)) n_neighbor_bounds_control(::Val{:DiscreteControl}) = n_neighbor_bounds(0, 0, 1, typemax(Int)) n_neighbor_bounds_control(::Val{:UserDemand}) = n_neighbor_bounds(0, 0, 0, 0) @@ -109,9 +109,9 @@ sort_by_time_id_level(row) = (row.time, row.node_id, row.level) sort_by_priority(row) = (row.node_id, row.priority) sort_by_priority_time(row) = (row.node_id, row.priority, row.time) sort_by_subgrid_level(row) = (row.subgrid_id, row.basin_level) -sort_by_variable(row) = - (row.node_id, row.listen_node_type, row.listen_node_id, row.variable) +sort_by_variable(row) = (row.node_id, row.listen_node_id, row.variable) sort_by_condition(row) = (row.node_id, row.compound_variable_id, row.greater_than) +sort_by_id_input(row) = (row.node_id, row.input) # get the right sort by function given the Schema, with sort_by_id as the default sort_by_function(table::StructVector{<:Legolas.AbstractRecord}) = sort_by_id @@ -123,6 +123,7 @@ sort_by_function(table::StructVector{UserDemandTimeV1}) = sort_by_priority_time sort_by_function(table::StructVector{BasinSubgridV1}) = sort_by_subgrid_level sort_by_function(table::StructVector{DiscreteControlVariableV1}) = sort_by_variable sort_by_function(table::StructVector{DiscreteControlConditionV1}) = sort_by_condition +sort_by_function(table::StructVector{ContinuousControlFunctionV1}) = sort_by_id_input const TimeSchemas = Union{ BasinTimeV1, @@ -171,13 +172,11 @@ end function valid_nodes(db::DB)::Bool errors = false - sql = "SELECT node_type, node_id FROM Node GROUP BY node_type, node_id HAVING COUNT(*) > 1" - node_type, node_id = execute(columntable, db, sql) - - for (node_type, node_id) in zip(node_type, node_id) + sql = "SELECT node_id FROM Node GROUP BY node_id HAVING COUNT(*) > 1" + node_ids = only(execute(columntable, db, sql)) + for node_id in node_ids errors = true - id = NodeID(node_type, node_id) - @error "Multiple occurrences of node $id found in Node table." + @error "Multiple occurrences of node_id $node_id found in Node table." end return !errors @@ -358,18 +357,22 @@ function valid_demand( end """ -Validate Outlet crest level and fill in default values +Validate Outlet or Pump `min_upstream_level` and fill in default values """ -function valid_outlet_crest_level!(graph::MetaGraph, outlet::Outlet, basin::Basin)::Bool +function valid_min_upstream_level!( + graph::MetaGraph, + node::Union{Outlet, Pump}, + basin::Basin, +)::Bool errors = false - for (id, crest) in zip(outlet.node_id, outlet.min_crest_level) + for (id, min_upstream_level) in zip(node.node_id, node.min_upstream_level) id_in = inflow_id(graph, id) if id_in.type == NodeType.Basin basin_bottom_level = basin_bottom(basin, id_in)[2] - if crest == -Inf - outlet.min_crest_level[id.idx] = basin_bottom_level - elseif crest < basin_bottom_level - @error "Minimum crest level of $id is lower than bottom of upstream $id_in" crest basin_bottom_level + if min_upstream_level == -Inf + node.min_upstream_level[id.idx] = basin_bottom_level + elseif min_upstream_level < basin_bottom_level + @error "Minimum upstream level of $id is lower than bottom of upstream $id_in" min_upstream_level basin_bottom_level errors = true end end @@ -389,8 +392,8 @@ function valid_tabulated_curve_level( basin_bottom_level = basin_bottom(basin, id_in)[2] # the second level is the bottom, the first is added to control extrapolation if table.t[1] + 1.0 < basin_bottom_level - @error "Lowest levels of $id is lower than bottom of upstream $id_in" table.t[1] + - 1.0 basin_bottom_level + @error "Lowest level of $id is lower than bottom of upstream $id_in" table.t[1] + + 1.0 basin_bottom_level errors = true end end @@ -398,10 +401,13 @@ function valid_tabulated_curve_level( return !errors end -function valid_tabulated_rating_curve(node_id::NodeID, table::StructVector)::Bool +function valid_tabulated_rating_curve( + node_id::NodeID, + table::StructVector, + rowrange::UnitRange{Int}, +)::Bool errors = false - rowrange = findlastgroup(node_id, NodeID.(node_id.type, table.node_id, Ref(0))) level = table.level[rowrange] flow_rate = table.flow_rate[rowrange] @@ -510,14 +516,14 @@ end function valid_edge_types(db::DB)::Bool edge_rows = execute( db, - "SELECT fid, from_node_id, to_node_id, edge_type FROM Edge ORDER BY fid", + "SELECT edge_id, from_node_id, to_node_id, edge_type FROM Edge ORDER BY edge_id", ) errors = false - for (; fid, from_node_id, to_node_id, edge_type) in edge_rows + for (; edge_id, from_node_id, to_node_id, edge_type) in edge_rows if edge_type ∉ ["flow", "control"] errors = true - @error "Invalid edge type '$edge_type' for edge #$fid from node #$from_node_id to node #$to_node_id." + @error "Invalid edge type '$edge_type' for edge #$edge_id from node #$from_node_id to node #$to_node_id." end end return !errors @@ -621,7 +627,9 @@ function valid_discrete_control(p::Parameters, config::Config)::Bool end """ -The source nodes must only have one allocation outneighbor and no allocation inneighbors. +An allocation source edge is valid if either: + - The edge connects the main network to a subnetwork + - The edge comes from a source node """ function valid_sources( p::Parameters, @@ -632,12 +640,18 @@ function valid_sources( errors = false + # Loop over edges that were assigned a capacity for edge in keys(capacity.data) + + # For an edge (id_a, id_b) in the physical model + # the reverse (id_b, id_a) can exist in the allocation subnetwork if !haskey(graph, edge...) edge = reverse(edge) end (id_source, id_dst) = edge + + # Whether the current edge is a source for the current subnetwork if graph[edge...].subnetwork_id_source == subnetwork_id from_source_node = id_source.type in allocation_source_nodetypes @@ -658,3 +672,11 @@ function valid_sources( end return !errors end + +function valid_priorities(priorities::Vector{Int32}, use_allocation::Bool)::Bool + if use_allocation && any(iszero, priorities) + return false + else + return true + end +end diff --git a/core/src/write.jl b/core/src/write.jl index f6cd6fe32..b81e5d01d 100644 --- a/core/src/write.jl +++ b/core/src/write.jl @@ -5,10 +5,15 @@ Write all results to the Arrow files as specified in the model configuration. """ function write_results(model::Model)::Model (; config) = model - (; results) = model.config + (; results, experimental) = model.config compress = get_compressor(results) remove_empty_table = model.integrator.t != 0 + # state + table = basin_state_table(model) + path = results_path(config, RESULTS_FILENAME.basin_state) + write_arrow(path, table, compress; remove_empty_table) + # basin table = basin_table(model) path = results_path(config, RESULTS_FILENAME.basin) @@ -19,6 +24,13 @@ function write_results(model::Model)::Model path = results_path(config, RESULTS_FILENAME.flow) write_arrow(path, table, compress; remove_empty_table) + # concentrations + if experimental.concentration + table = concentration_table(model) + path = results_path(config, RESULTS_FILENAME.concentration) + write_arrow(path, table, compress; remove_empty_table) + end + # discrete control table = discrete_control_table(model) path = results_path(config, RESULTS_FILENAME.control) @@ -39,17 +51,25 @@ function write_results(model::Model)::Model path = results_path(config, RESULTS_FILENAME.subgrid_level) write_arrow(path, table, compress; remove_empty_table) + # solver stats + table = solver_stats_table(model) + path = results_path(config, RESULTS_FILENAME.solver_stats) + write_arrow(path, table, compress; remove_empty_table) + @debug "Wrote results." return model end const RESULTS_FILENAME = ( + basin_state = "basin_state.arrow", basin = "basin.arrow", flow = "flow.arrow", + concentration = "concentration.arrow", control = "control.arrow", allocation = "allocation.arrow", allocation_flow = "allocation_flow.arrow", subgrid_level = "subgrid_level.arrow", + solver_stats = "solver_stats.arrow", ) "Get the storage and level of all basins as matrices of nbasin × ntime" @@ -61,22 +81,38 @@ function get_storages_and_levels( storage::Matrix{Float64}, level::Matrix{Float64}, } - (; config, integrator) = model - (; sol, p) = integrator + (; config, integrator, saved) = model + (; p) = integrator node_id = p.basin.node_id::Vector{NodeID} tsteps = datetime_since.(tsaves(model), config.starttime) - storage = hcat([collect(u_.storage) for u_ in sol.u]...) + storage = zeros(length(node_id), length(tsteps)) level = zero(storage) - for (i, basin_storage) in enumerate(eachrow(storage)) - level[i, :] = - [get_area_and_level(p.basin, i, storage)[2] for storage in basin_storage] + for (i, cvec) in enumerate(saved.basin_state.saveval) + storage[:, i] .= cvec.storage + level[:, i] .= cvec.level end return (; time = tsteps, node_id, storage, level) end +"Create the basin state table from the saved data" +function basin_state_table( + model::Model, +)::@NamedTuple{node_id::Vector{Int32}, level::Vector{Float64}} + du = get_du(model.integrator) + (; u, p, t) = model.integrator + + # ensure the levels are up-to-date + set_current_basin_properties!(du, u, p, t) + + return (; + node_id = Int32.(p.basin.node_id), + level = p.basin.current_properties.current_level[Float64[]], + ) +end + "Create the basin result table from the saved data" function basin_table( model::Model, @@ -100,7 +136,6 @@ function basin_table( data = get_storages_and_levels(model) storage = vec(data.storage[:, begin:(end - 1)]) level = vec(data.level[:, begin:(end - 1)]) - Δstorage = vec(diff(data.storage; dims = 2)) nbasin = length(data.node_id) ntsteps = length(data.time) - 1 @@ -108,44 +143,26 @@ function basin_table( inflow_rate = FlatVector(saved.flow.saveval, :inflow) outflow_rate = FlatVector(saved.flow.saveval, :outflow) - precipitation = zeros(nrows) - evaporation = zeros(nrows) - drainage = zeros(nrows) + drainage = FlatVector(saved.flow.saveval, :drainage) infiltration = zeros(nrows) - balance_error = zeros(nrows) - relative_error = zeros(nrows) + evaporation = zeros(nrows) + precipitation = FlatVector(saved.flow.saveval, :precipitation) + storage_rate = FlatVector(saved.flow.saveval, :storage_rate) + balance_error = FlatVector(saved.flow.saveval, :balance_error) + relative_error = FlatVector(saved.flow.saveval, :relative_error) idx_row = 0 - for cvec in saved.vertical_flux.saveval - for (precipitation_, evaporation_, drainage_, infiltration_) in - zip(cvec.precipitation, cvec.evaporation, cvec.drainage, cvec.infiltration) + for cvec in saved.flow.saveval + for (evaporation_, infiltration_) in + zip(cvec.flow.evaporation, cvec.flow.infiltration) idx_row += 1 - precipitation[idx_row] = precipitation_ evaporation[idx_row] = evaporation_ - drainage[idx_row] = drainage_ infiltration[idx_row] = infiltration_ end end time = repeat(data.time[begin:(end - 1)]; inner = nbasin) - Δtime_seconds = seconds.(diff(data.time)) - Δtime = repeat(Δtime_seconds; inner = nbasin) node_id = repeat(Int32.(data.node_id); outer = ntsteps) - storage_rate = Δstorage ./ Δtime - - for i in 1:nrows - storage_flow = storage_rate[i] - storage_increase = max(storage_flow, 0.0) - storage_decrease = max(-storage_flow, 0.0) - - total_in = inflow_rate[i] + precipitation[i] + drainage[i] - storage_increase - total_out = outflow_rate[i] + evaporation[i] + infiltration[i] - storage_decrease - balance_error[i] = total_in - total_out - mean_flow_rate = 0.5 * (total_in + total_out) - if mean_flow_rate != 0 - relative_error[i] = balance_error[i] / mean_flow_rate - end - end return (; time, @@ -164,38 +181,52 @@ function basin_table( ) end +function solver_stats_table( + model::Model, +)::@NamedTuple{ + time::Vector{DateTime}, + rhs_calls::Vector{Int}, + linear_solves::Vector{Int}, + accepted_timesteps::Vector{Int}, + rejected_timesteps::Vector{Int}, +} + solver_stats = StructVector(model.saved.solver_stats.saveval) + (; + time = datetime_since.( + solver_stats.time[1:(end - 1)], + model.integrator.p.starttime, + ), + rhs_calls = diff(solver_stats.rhs_calls), + linear_solves = diff(solver_stats.linear_solves), + accepted_timesteps = diff(solver_stats.accepted_timesteps), + rejected_timesteps = diff(solver_stats.rejected_timesteps), + ) +end + "Create a flow result table from the saved data" function flow_table( model::Model, )::@NamedTuple{ time::Vector{DateTime}, edge_id::Vector{Union{Int32, Missing}}, - from_node_type::Vector{String}, from_node_id::Vector{Int32}, - to_node_type::Vector{String}, to_node_id::Vector{Int32}, - flow_rate::FlatVector{Float64}, + flow_rate::Vector{Float64}, } (; config, saved, integrator) = model (; t, saveval) = saved.flow - (; graph) = integrator.p - (; flow_dict) = graph[] + (; p) = integrator + (; graph) = p + (; flow_edges) = graph[] - from_node_type = String[] from_node_id = Int32[] - to_node_type = String[] to_node_id = Int32[] unique_edge_ids_flow = Union{Int32, Missing}[] - flow_edge_ids = Vector{Tuple{NodeID, NodeID}}(undef, length(flow_dict)) - for (edge_id, index) in flow_dict - flow_edge_ids[index] = edge_id - end + flow_edge_ids = [flow_edge.edge for flow_edge in flow_edges] for (from_id, to_id) in flow_edge_ids - push!(from_node_type, string(from_id.type)) push!(from_node_id, from_id.value) - push!(to_node_type, string(to_id.type)) push!(to_node_id, to_id.value) push!(unique_edge_ids_flow, graph[from_id, to_id].id) end @@ -203,6 +234,16 @@ function flow_table( nflow = length(unique_edge_ids_flow) ntsteps = length(t) + flow_rate = zeros(nflow * ntsteps) + + for (i, edge) in enumerate(flow_edge_ids) + for (j, cvec) in enumerate(saveval) + (; flow, flow_boundary) = cvec + flow_rate[i + (j - 1) * nflow] = + get_flow(flow, p, 0.0, edge; boundary_flow = flow_boundary) + end + end + # the timestamp should represent the start of the period, not the end t_starts = circshift(t, 1) if !isempty(t) @@ -210,21 +251,40 @@ function flow_table( end time = repeat(datetime_since.(t_starts, config.starttime); inner = nflow) edge_id = repeat(unique_edge_ids_flow; outer = ntsteps) - from_node_type = repeat(from_node_type; outer = ntsteps) from_node_id = repeat(from_node_id; outer = ntsteps) - to_node_type = repeat(to_node_type; outer = ntsteps) to_node_id = repeat(to_node_id; outer = ntsteps) - flow_rate = FlatVector(saveval, :flow) - return (; - time, - edge_id, - from_node_type, - from_node_id, - to_node_type, - to_node_id, - flow_rate, - ) + return (; time, edge_id, from_node_id, to_node_id, flow_rate) +end + +"Create a concentration result table from the saved data" +function concentration_table( + model::Model, +)::@NamedTuple{ + time::Vector{DateTime}, + node_id::Vector{Int32}, + substance::Vector{String}, + concentration::Vector{Float64}, +} + (; saved, integrator) = model + (; p) = integrator + (; basin) = p + + # The last timestep is not included; there is no period over which to compute flows. + data = get_storages_and_levels(model) + + ntsteps = length(data.time) - 1 + nbasin = length(data.node_id) + nsubstance = length(basin.concentration_data.substances) + + substances = String.(basin.concentration_data.substances) + concentration = FlatVector(saved.flow.saveval, :concentration) + + time = repeat(data.time[begin:(end - 1)]; inner = nbasin * nsubstance) + substance = repeat(substances; inner = nbasin, outer = ntsteps) + node_id = repeat(Int32.(data.node_id); outer = ntsteps * nsubstance) + + return (; time, node_id, substance, concentration) end "Create a discrete control result table from the saved data" @@ -335,7 +395,7 @@ function write_arrow( # At the start of the simulation, write an empty table to ensure we have permissions # and fail early. # At the end of the simulation, write all non-empty tables, and remove existing empty ones. - if isempty(table.time) && remove_empty_table + if haskey(table, :time) && isempty(table.time) && remove_empty_table try rm(path; force = true) catch @@ -343,9 +403,11 @@ function write_arrow( end return nothing end - # ensure DateTime is encoded in a compatible manner - # https://github.com/apache/arrow-julia/issues/303 - table = merge(table, (; time = convert.(Arrow.DATETIME, table.time))) + if haskey(table, :time) + # ensure DateTime is encoded in a compatible manner + # https://github.com/apache/arrow-julia/issues/303 + table = merge(table, (; time = convert.(Arrow.DATETIME, table.time))) + end metadata = ["ribasim_version" => string(pkgversion(Ribasim))] mkpath(dirname(path)) try diff --git a/core/test/allocation_test.jl b/core/test/allocation_test.jl index d51173413..47050c682 100644 --- a/core/test/allocation_test.jl +++ b/core/test/allocation_test.jl @@ -7,7 +7,7 @@ toml_path = normpath(@__DIR__, "../../generated_testmodels/subnetwork/ribasim.toml") @test ispath(toml_path) cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) + db_path = Ribasim.database_path(cfg) db = SQLite.DB(db_path) p = Ribasim.Parameters(db, cfg) @@ -77,7 +77,7 @@ end ) @test ispath(toml_path) cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) + db_path = Ribasim.database_path(cfg) db = SQLite.DB(db_path) p = Ribasim.Parameters(db, cfg) close(db) @@ -122,12 +122,9 @@ end "../../generated_testmodels/main_network_with_subnetworks/ribasim.toml", ) @test ispath(toml_path) - cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) - db = SQLite.DB(db_path) - p = Ribasim.Parameters(db, cfg) - close(db) + model = Ribasim.Model(toml_path) + (; p) = model.integrator (; allocation, user_demand, graph, basin) = p (; allocation_models, @@ -173,8 +170,7 @@ end (; Δt_allocation) = allocation_models[1] mean_input_flows[(NodeID(:FlowBoundary, 1, p), NodeID(:Basin, 2, p))] = 4.5 * Δt_allocation - u = ComponentVector(; storage = zeros(length(p.basin.node_id))) - Ribasim.update_allocation!((; p, t, u)) + Ribasim.update_allocation!(model.integrator) @test subnetwork_allocateds[NodeID(:Basin, 2, p), NodeID(:Pump, 11, p)] ≈ [4, 0.49775, 0.0] atol = 1e-4 @@ -211,7 +207,7 @@ end ) @test ispath(toml_path) cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) + db_path = Ribasim.database_path(cfg) db = SQLite.DB(db_path) p = Ribasim.Parameters(db, cfg) close(db) @@ -246,6 +242,7 @@ end import JuMP using Ribasim: NodeID using DataFrames: DataFrame + using OrdinaryDiffEqCore: get_du using DataInterpolations: LinearInterpolation, integral toml_path = normpath(@__DIR__, "../../generated_testmodels/level_demand/ribasim.toml") @@ -262,14 +259,15 @@ end storage = Ribasim.get_storages_and_levels(model).storage[1, :] t = Ribasim.tsaves(model) + du = get_du(model.integrator) d = user_demand.demand_itp[1][2](0) ϕ = 1e-3 # precipitation q = Ribasim.get_flow( - graph, - Ribasim.NodeID(:FlowBoundary, 1, p), - Ribasim.NodeID(:Basin, 2, p), - 0, + du, + p, + 0.0, + (Ribasim.NodeID(:FlowBoundary, 1, p), Ribasim.NodeID(:Basin, 2, p)), ) A = Ribasim.basin_areas(basin, 1)[1] l_max = level_demand.max_level[1](0) @@ -283,7 +281,7 @@ end # In this section (and following sections) the basin has no longer a (positive) demand, # since precipitation provides enough water to get the basin to its target level # The FlowBoundary flow gets fully allocated to the UserDemand - stage_2 = 2 * Δt_allocation .<= t .<= 8 * Δt_allocation + stage_2 = 2 * Δt_allocation .<= t .<= 9 * Δt_allocation stage_2_start_idx = findfirst(stage_2) u_stage_2(τ) = storage[stage_2_start_idx] + ϕ * (τ - t[stage_2_start_idx]) @test storage[stage_2] ≈ u_stage_2.(t[stage_2]) rtol = 1e-4 @@ -292,14 +290,14 @@ end # even though initially the level is below the maximum level. This is because the simulation # anticipates that the current precipitation is going to bring the basin level over # its maximum level - stage_3 = 8 * Δt_allocation .<= t .<= 13 * Δt_allocation + stage_3 = 9 * Δt_allocation .<= t .<= 13 * Δt_allocation stage_3_start_idx = findfirst(stage_3) u_stage_3(τ) = storage[stage_3_start_idx] + (q + ϕ - d) * (τ - t[stage_3_start_idx]) @test storage[stage_3] ≈ u_stage_3.(t[stage_3]) rtol = 1e-4 # At the start of this section precipitation stops, and so the UserDemand # partly uses surplus water from the basin to fulfill its demand - stage_4 = 13 * Δt_allocation .<= t .<= 17 * Δt_allocation + stage_4 = 13 * Δt_allocation .<= t .<= 15 * Δt_allocation stage_4_start_idx = findfirst(stage_4) u_stage_4(τ) = storage[stage_4_start_idx] + (q - d) * (τ - t[stage_4_start_idx]) @test storage[stage_4] ≈ u_stage_4.(t[stage_4]) rtol = 1e-4 @@ -307,7 +305,7 @@ end # From this point the basin is in a dynamical equilibrium, # since the basin has no supply so the UserDemand abstracts precisely # the flow from the level boundary - stage_5 = 18 * Δt_allocation .<= t + stage_5 = 16 * Δt_allocation .<= t stage_5_start_idx = findfirst(stage_5) u_stage_5(τ) = storage[stage_5_start_idx] @test storage[stage_5] ≈ u_stage_5.(t[stage_5]) rtol = 1e-4 @@ -323,13 +321,13 @@ end # Realized level demand record_demand = DataFrame(allocation.record_demand) df_basin_2 = record_demand[record_demand.node_id .== 2, :] - itp_basin_2 = t -> model.integrator.sol(t)[1] + itp_basin_2 = LinearInterpolation(storage, t) realized_numeric = diff(itp_basin_2.(df_basin_2.time)) / Δt_allocation @test all(isapprox.(realized_numeric, df_basin_2.realized[2:end], atol = 2e-4)) # Realized user demand flow_table = DataFrame(Ribasim.flow_table(model)) - flow_table_user_3 = flow_table[flow_table.edge_id .== 1, :] + flow_table_user_3 = flow_table[flow_table.edge_id .== 2, :] itp_user_3 = LinearInterpolation( flow_table_user_3.flow_rate, Ribasim.seconds_since.(flow_table_user_3.time, model.config.starttime), @@ -465,7 +463,7 @@ end model = Ribasim.run(toml_path) record_demand = DataFrame(model.integrator.p.allocation.record_demand) df_rating_curve_2 = record_demand[record_demand.node_id .== 2, :] - @test all(df_rating_curve_2.realized .≈ 2e-3) + @test all(df_rating_curve_2.realized .≈ 0.002) @testset "Results" begin allocation_bytes = read(normpath(dirname(toml_path), "results/allocation.arrow")) @@ -550,3 +548,45 @@ end @test all(isapprox.(fractions[1], fractions[3], atol = 1e-4)) @test all(isapprox.(fractions[1], fractions[4], atol = 1e-4)) end + +@testitem "direct_basin_allocation" begin + using Ribasim: NodeID + import SQLite + import JuMP + + toml_path = normpath(@__DIR__, "../../generated_testmodels/level_demand/ribasim.toml") + model = Ribasim.Model(toml_path) + (; p) = model.integrator + t = 0.0 + u = model.integrator.u + priority_idx = 2 + + allocation_model = first(p.allocation.allocation_models) + Ribasim.set_initial_values!(allocation_model, p, u, t) + Ribasim.set_objective_priority!(allocation_model, p, u, t, priority_idx) + Ribasim.allocate_to_users_from_connected_basin!(allocation_model, p, priority_idx) + flow_data = allocation_model.flow_priority.data + @test flow_data[(NodeID(:FlowBoundary, 1, p), NodeID(:Basin, 2, p))] == 0.0 + @test flow_data[(NodeID(:Basin, 2, p), NodeID(:UserDemand, 3, p))] == 0.0015 + @test flow_data[(NodeID(:UserDemand, 3, p), NodeID(:Basin, 5, p))] == 0.0 +end + +@testitem "level_demand_without_max_level" begin + using Ribasim: NodeID, get_basin_capacity, outflow_id + using JuMP + + toml_path = normpath(@__DIR__, "../../generated_testmodels/level_demand/ribasim.toml") + @test ispath(toml_path) + model = Ribasim.Model(toml_path) + (; p, u, t) = model.integrator + (; allocation_models) = p.allocation + (; basin, level_demand, graph) = p + + level_demand.max_level[1].u .= Inf + level_demand.max_level[2].u .= Inf + + # Given a max_level of Inf, the basin capacity is 0.0 because it is not possible for the basin level to be > Inf + @test Ribasim.get_basin_capacity(allocation_models[1], u, p, t, basin.node_id[1]) == 0.0 + @test Ribasim.get_basin_capacity(allocation_models[1], u, p, t, basin.node_id[2]) == 0.0 + @test Ribasim.get_basin_capacity(allocation_models[1], u, p, t, basin.node_id[3]) == 0.0 +end diff --git a/core/test/bmi_test.jl b/core/test/bmi_test.jl index d7cdd036e..37f377b5c 100644 --- a/core/test/bmi_test.jl +++ b/core/test/bmi_test.jl @@ -4,18 +4,19 @@ toml_path = normpath(@__DIR__, "../../generated_testmodels/basic/ribasim.toml") model = BMI.initialize(Ribasim.Model, toml_path) @test BMI.get_time_units(model) == "s" - dt0 = 0.0001269439f0 + dt0 = 2.8280652f-5 @test BMI.get_time_step(model) ≈ dt0 atol = 5e-3 @test BMI.get_start_time(model) === 0.0 @test BMI.get_current_time(model) === 0.0 @test BMI.get_end_time(model) ≈ 3.16224e7 BMI.update(model) @test BMI.get_current_time(model) ≈ dt0 atol = 5e-3 - # cannot go back in time - @test_throws ErrorException BMI.update_until(model, dt0 / 2.0) @test BMI.get_current_time(model) ≈ dt0 atol = 5e-3 BMI.update_until(model, 86400.0) @test BMI.get_current_time(model) == 86400.0 + # cannot go back in time + @test_throws ErrorException BMI.update_until(model, 3600.0) + @test BMI.get_current_time(model) == 86400.0 end @testitem "fixed timestepping" begin @@ -63,11 +64,11 @@ end "basin.level", "basin.infiltration", "basin.drainage", - "basin.infiltration_integrated", - "basin.drainage_integrated", + "basin.cumulative_infiltration", + "basin.cumulative_drainage", "basin.subgrid_level", "user_demand.demand", - "user_demand.realized", + "user_demand.cumulative_inflow", ] value_first = BMI.get_value_ptr(model, name) BMI.update_until(model, 86400.0) @@ -77,7 +78,7 @@ end end end -@testitem "realized_user_demand" begin +@testitem "UserDemand inflow" begin import BasicModelInterface as BMI toml_path = @@ -86,18 +87,19 @@ end config = Ribasim.Config(toml_path; allocation_use_allocation = false) model = Ribasim.Model(config) demand = BMI.get_value_ptr(model, "user_demand.demand") - realized = BMI.get_value_ptr(model, "user_demand.realized") + inflow = BMI.get_value_ptr(model, "user_demand.cumulative_inflow") # One year in seconds year = model.integrator.p.user_demand.demand_itp[2][1].t[2] demand_start = 1e-3 slope = 1e-3 / year day = 86400.0 BMI.update_until(model, day) - @test realized ≈ [demand_start * day, demand_start * day + 0.5 * slope * day^2] + @test inflow ≈ [demand_start * day, demand_start * day + 0.5 * slope * day^2] atol = + 1e-3 demand_later = 2e-3 demand[1] = demand_later BMI.update_until(model, 2day) - @test realized[1] == demand_start * day + demand_later * day + @test inflow[1] ≈ demand_start * day + demand_later * day atol = 1e-3 end @testitem "vertical basin flux" begin @@ -113,6 +115,6 @@ end Δt = 5 * 86400.0 BMI.update_until(model, Δt) - drainage_integrated = BMI.get_value_ptr(model, "basin.drainage_integrated") - @test drainage_integrated ≈ Δt * drainage_flux + cumulative_drainage = BMI.get_value_ptr(model, "basin.cumulative_drainage") + @test cumulative_drainage ≈ Δt * drainage_flux end diff --git a/core/test/config_test.jl b/core/test/config_test.jl index 1c4aacf47..8f9cb3e8f 100644 --- a/core/test/config_test.jl +++ b/core/test/config_test.jl @@ -32,12 +32,12 @@ @testset "docs" begin config = Ribasim.Config(normpath(@__DIR__, "docs.toml")) @test config isa Ribasim.Config - @test config.solver.autodiff + @test !config.solver.autodiff end end @testitem "Solver" begin - using OrdinaryDiffEq: alg_autodiff, AutoFiniteDiff, AutoForwardDiff + using OrdinaryDiffEqCore: alg_autodiff, AutoFiniteDiff, AutoForwardDiff using Ribasim: convert_saveat, convert_dt, Solver, algorithm solver = Solver() @@ -60,7 +60,7 @@ end AutoForwardDiff() @test alg_autodiff(algorithm(Solver(; algorithm = "QNDF", autodiff = false))) == AutoFiniteDiff() - @test alg_autodiff(algorithm(Solver(; algorithm = "QNDF"))) == AutoForwardDiff() + @test alg_autodiff(algorithm(Solver(; algorithm = "QNDF"))) == AutoFiniteDiff() # autodiff is not a kwargs for explicit algorithms, but we use try-catch to bypass algorithm(Solver(; algorithm = "Euler", autodiff = true)) @@ -81,4 +81,16 @@ end @test Ribasim.snake_case("CamelCase") == "camel_case" @test Ribasim.snake_case("ABCdef") == "a_b_cdef" @test Ribasim.snake_case("snake_case") == "snake_case" + @test Ribasim.snake_case(:CamelCase) == :camel_case + @test Ribasim.snake_case(:ABCdef) == :a_b_cdef + @test Ribasim.snake_case(:snake_case) == :snake_case +end + +@testitem "camel_case" begin + @test Ribasim.camel_case("camel_case") == "CamelCase" + @test Ribasim.camel_case("a_b_cdef") == "ABCdef" + @test Ribasim.camel_case("CamelCase") == "CamelCase" + @test Ribasim.camel_case(:camel_case) == :CamelCase + @test Ribasim.camel_case(:a_b_cdef) == :ABCdef + @test Ribasim.camel_case(:CamelCase) == :CamelCase end diff --git a/core/test/control_test.jl b/core/test/control_test.jl index fedddaa56..737a8da82 100644 --- a/core/test/control_test.jl +++ b/core/test/control_test.jl @@ -1,6 +1,6 @@ @testitem "Pump discrete control" begin - using PreallocationTools: get_tmp using Ribasim: NodeID + using OrdinaryDiffEqCore: get_du using Dates: DateTime import Arrow import Tables @@ -57,7 +57,7 @@ t_2_index = findfirst(>=(t_2), t) @test level[2, t_2_index] >= discrete_control.compound_variables[1][2].greater_than[1] - flow = get_tmp(graph[].flow, 0) + flow = get_du(model.integrator)[(:linear_resistance, :pump)] @test all(iszero, flow) end @@ -247,6 +247,60 @@ end t_switch = Ribasim.datetime_since(record.time[2], p.starttime) flow_table = DataFrame(Ribasim.flow_table(model)) - @test all(filter(:time => time -> time <= t_switch, flow_table).flow_rate .> 0) - @test all(filter(:time => time -> time > t_switch, flow_table).flow_rate .== 0) + @test all(filter(:time => time -> time <= t_switch, flow_table).flow_rate .> -1e-12) + @test all( + isapprox.( + filter(:time => time -> time > t_switch, flow_table).flow_rate, + 0; + atol = 1e-8, + ), + ) +end + +@testitem "Outlet continuous control" begin + using DataFrames: DataFrame + + toml_path = normpath( + @__DIR__, + "../../generated_testmodels/outlet_continuous_control/ribasim.toml", + ) + @test ispath(toml_path) + model = Ribasim.run(toml_path) + flow_data = DataFrame(Ribasim.flow_table(model)) + + function get_edge_flow(from_node_id, to_node_id) + data = filter( + [:from_node_id, :to_node_id] => + (a, b) -> (a == from_node_id) && (b == to_node_id), + flow_data, + ) + return data.flow_rate + end + + inflow = get_edge_flow(2, 3) + @test get_edge_flow(3, 4) ≈ max.(0.6 .* inflow, 0) rtol = 1e-4 + @test get_edge_flow(4, 6) ≈ max.(0.6 .* inflow, 0) rtol = 1e-4 + @test get_edge_flow(3, 5) ≈ max.(0.4 .* inflow, 0) rtol = 1e-4 + @test get_edge_flow(5, 7) ≈ max.(0.4 .* inflow, 0) rtol = 1e-4 +end + +@testitem "Concentration discrete control" begin + using DataFrames: DataFrame + + toml_path = normpath( + @__DIR__, + "../../generated_testmodels/concentration_condition/ribasim.toml", + ) + @test ispath(toml_path) + model = Ribasim.run(toml_path) + flow_data = DataFrame(Ribasim.flow_table(model)) + flow_edge_0 = filter(:edge_id => id -> id == 0, flow_data) + t = Ribasim.seconds_since.(flow_edge_0.time, model.config.starttime) + itp = + model.integrator.p.basin.concentration_data.concentration_external[1]["concentration_external.kryptonite"] + concentration = itp.(t) + threshold = 0.5 + above_threshold = concentration .> threshold + @test all(isapprox.(flow_edge_0.flow_rate[above_threshold], 1e-3, rtol = 1e-2)) + @test all(isapprox.(flow_edge_0.flow_rate[.!above_threshold], 0.0, atol = 1e-5)) end diff --git a/core/test/create_test.jl b/core/test/create_test.jl index 90b4d1cc5..01865b3f2 100644 --- a/core/test/create_test.jl +++ b/core/test/create_test.jl @@ -3,7 +3,7 @@ using Graphs using Logging using Ribasim: NodeID - using Accessors: @set + using Accessors: @set, @reset graph = MetaGraph( DiGraph(); @@ -25,7 +25,7 @@ push!(node_ids[-1], NodeID(:Basin, 2, 1)) graph_data = (; node_ids,) - graph = @set graph.graph_data = graph_data + @reset graph.graph_data = graph_data logger = TestLogger() with_logger(logger) do diff --git a/core/test/data/config_test.toml b/core/test/data/config_test.toml index 008eb377a..7f5353e32 100644 --- a/core/test/data/config_test.toml +++ b/core/test/data/config_test.toml @@ -3,7 +3,7 @@ endtime = 2019-12-31 crs = "EPSG:28992" input_dir = "../../generated_testmodels/lhm" results_dir = "../../generated_testmodels/lhm" -ribasim_version = "2024.9.0" +ribasim_version = "2024.11.0" [basin] time = "basin/time.arrow" diff --git a/core/test/data/logging_test_loglevel_debug.toml b/core/test/data/logging_test_loglevel_debug.toml index 7f5286fd1..661661d9b 100644 --- a/core/test/data/logging_test_loglevel_debug.toml +++ b/core/test/data/logging_test_loglevel_debug.toml @@ -3,7 +3,7 @@ endtime = 2019-12-31 crs = "EPSG:28992" input_dir = "." results_dir = "results" -ribasim_version = "2024.9.0" +ribasim_version = "2024.11.0" [logging] verbosity = "debug" diff --git a/core/test/data/logging_test_no_loglevel.toml b/core/test/data/logging_test_no_loglevel.toml index 95ecd18a1..3f27121d2 100644 --- a/core/test/data/logging_test_no_loglevel.toml +++ b/core/test/data/logging_test_no_loglevel.toml @@ -3,4 +3,4 @@ endtime = 2019-12-31 crs = "EPSG:28992" input_dir = "." results_dir = "results" -ribasim_version = "2024.9.0" +ribasim_version = "2024.11.0" diff --git a/core/test/docs.toml b/core/test/docs.toml index cff753a31..ac155cebf 100644 --- a/core/test/docs.toml +++ b/core/test/docs.toml @@ -12,7 +12,7 @@ crs = "EPSG:4326" # required input_dir = "." # required results_dir = "results" # required -ribasim_version = "2024.9.0" # required +ribasim_version = "2024.11.0" # required # Specific tables can also go into Arrow files rather than the database. # For large tables this can benefit from better compressed file sizes. @@ -31,18 +31,24 @@ dt = 60.0 # optional, remove for adaptive time stepping dtmin = 0.0 # optional, default 0.0 dtmax = 0.0 # optional, default length of simulation force_dtmin = false # optional, default false -abstol = 1e-6 # optional, default 1e-6 -reltol = 1e-5 # optional, default 1e-5 +abstol = 1e-7 # optional, default 1e-7 +reltol = 1e-7 # optional, default 1e-7 +water_balance_abstol = 1e-3 # optional, default 1e-3 +water_balance_reltol = 1e-2 # optional, default 1e-2 maxiters = 1e9 # optional, default 1e9 sparse = true # optional, default true -autodiff = true # optional, default true +autodiff = false # optional, default false +evaporate_mass = true # optional, default true to simulate a correct mass balance [logging] # defines the logging level of Ribasim verbosity = "info" # optional, default "info", can otherwise be "debug", "warn" or "error" -timing = false # optional, whether to log debug timing statements [results] # These results files are always written compression = true # optional, default true, using zstd compression compression_level = 6 # optional, default 6 + +[experimental] +# Experimental features, disabled by default +concentration = false # tracer calculations diff --git a/core/test/equations_test.jl b/core/test/equations_test.jl index caede1fe0..39d88314a 100644 --- a/core/test/equations_test.jl +++ b/core/test/equations_test.jl @@ -168,7 +168,6 @@ end # storage2 = storage2(t0) + (t-t0)*q_pump # Note: uses Euler algorithm @testitem "MiscellaneousNodes" begin - using PreallocationTools: get_tmp using SciMLBase: successful_retcode using Ribasim: tsaves, get_storages_and_levels @@ -183,7 +182,7 @@ end (; flow_boundary, pump) = p q_boundary = flow_boundary.flow_rate[1].u[1] - pump_flow_rate = get_tmp(pump.flow_rate, 0) + pump_flow_rate = pump.flow_rate[Float64[]] q_pump = pump_flow_rate[1] storage_both = get_storages_and_levels(model).storage diff --git a/core/test/io_test.jl b/core/test/io_test.jl index c44c8d08e..36fe71778 100644 --- a/core/test/io_test.jl +++ b/core/test/io_test.jl @@ -5,35 +5,32 @@ toml = Ribasim.Toml(; starttime = now(), endtime = now(), - database = "path/to/file", input_dir = ".", results_dir = "results", crs = "EPSG:28992", ribasim_version = string(Ribasim.pkgversion(Ribasim)), ) config = Ribasim.Config(toml, "model") - @test Ribasim.input_path(config, "path/to/file") == - normpath("model", "path", "to", "file") + @test Ribasim.database_path(config) == normpath("model/database.gpkg") + @test Ribasim.input_path(config, "path/to/file") == normpath("model/path/to/file") # also relative to inputdir toml = Ribasim.Toml(; starttime = now(), endtime = now(), - database = "path/to/file", input_dir = "input", results_dir = "results", crs = "EPSG:28992", ribasim_version = string(Ribasim.pkgversion(Ribasim)), ) config = Ribasim.Config(toml, "model") - @test Ribasim.input_path(config, "path/to/file") == - normpath("model", "input", "path", "to", "file") + @test Ribasim.database_path(config) == normpath("model/input/database.gpkg") + @test Ribasim.input_path(config, "path/to/file") == normpath("model/input/path/to/file") # absolute path toml = Ribasim.Toml(; starttime = now(), endtime = now(), - database = "/path/to/file", input_dir = ".", results_dir = "results", crs = "EPSG:28992", @@ -92,11 +89,12 @@ end toml_path = normpath(@__DIR__, "../../generated_testmodels/basic_transient/ribasim.toml") config = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(config, config.database) + db_path = Ribasim.database_path(config) db = SQLite.DB(db_path) # load a sorted table table = Ribasim.load_structvector(db, config, Ribasim.BasinTimeV1) + close(db) by = Ribasim.sort_by_function(table) @test by == Ribasim.sort_by_time_id # reverse it so it needs sorting @@ -138,3 +136,40 @@ end @test Arrow.getmetadata(tbl) === Base.ImmutableDict("ribasim_version" => ribasim_version) end + +@testitem "warm state" begin + using IOCapture: capture + using Ribasim: solve!, write_results + import TOML + + model_path_src = normpath(@__DIR__, "../../generated_testmodels/basic/") + + # avoid changing the original model for other tests + model_path = normpath(@__DIR__, "../../generated_testmodels/basic_warm/") + cp(model_path_src, model_path; force = true) + toml_path = normpath(model_path, "ribasim.toml") + + config = Ribasim.Config(toml_path) + model = Ribasim.Model(config) + storage1_begin = + copy(model.integrator.p.basin.current_properties.current_storage[Float64[]]) + solve!(model) + storage1_end = model.integrator.p.basin.current_properties.current_storage[Float64[]] + @test storage1_begin != storage1_end + + # copy state results to input + write_results(model) + state_path = Ribasim.results_path(config, Ribasim.RESULTS_FILENAME.basin_state) + cp(state_path, Ribasim.input_path(config, "warm_state.arrow")) + + # point TOML to the warm state + toml_dict = TOML.parsefile(toml_path) + toml_dict["basin"] = Dict("state" => "warm_state.arrow") + open(toml_path, "w") do io + TOML.print(io, toml_dict) + end + + model = Ribasim.Model(toml_path) + storage2_begin = model.integrator.p.basin.current_properties.current_storage[Float64[]] + @test storage1_end ≈ storage2_begin +end diff --git a/core/test/main_test.jl b/core/test/main_test.jl index b94336808..95dfac40e 100644 --- a/core/test/main_test.jl +++ b/core/test/main_test.jl @@ -1,7 +1,7 @@ - -@testitem "toml_path" begin +@testitem "main output" begin using IOCapture: capture import TOML + using Ribasim: Config, results_path model_path = normpath(@__DIR__, "../../generated_testmodels/basic/") toml_path = normpath(model_path, "ribasim.toml") @@ -25,3 +25,26 @@ end @test occursin("version in the TOML config file does not match", output) end + +@testitem "main error logging" begin + using IOCapture: capture + import TOML + using Ribasim: Config, results_path + + model_path = normpath(@__DIR__, "../../generated_testmodels/invalid_edge_types/") + toml_path = normpath(model_path, "ribasim.toml") + + @test ispath(toml_path) + (; value, output) = capture() do + Ribasim.main(toml_path) + end + @test value == 1 + + # Stacktraces should be written to both the terminal and log file. + @test occursin("\nStacktrace:\n", output) + config = Config(toml_path) + log_path = results_path(config, "ribasim.log") + @test ispath(log_path) + log_str = read(log_path, String) + @test occursin("\nStacktrace:\n", log_str) +end diff --git a/core/test/run_models_test.jl b/core/test/run_models_test.jl index d5180065b..d7d1bf71b 100644 --- a/core/test/run_models_test.jl +++ b/core/test/run_models_test.jl @@ -29,23 +29,17 @@ flow_bytes = read(normpath(dirname(toml_path), "results/flow.arrow")) basin_bytes = read(normpath(dirname(toml_path), "results/basin.arrow")) subgrid_bytes = read(normpath(dirname(toml_path), "results/subgrid_level.arrow")) + solver_stats_bytes = read(normpath(dirname(toml_path), "results/solver_stats.arrow")) flow = Arrow.Table(flow_bytes) basin = Arrow.Table(basin_bytes) subgrid = Arrow.Table(subgrid_bytes) + solver_stats = Arrow.Table(solver_stats_bytes) @testset "Schema" begin @test Tables.schema(flow) == Tables.Schema( - ( - :time, - :edge_id, - :from_node_type, - :from_node_id, - :to_node_type, - :to_node_id, - :flow_rate, - ), - (DateTime, Union{Int32, Missing}, String, Int32, String, Int32, Float64), + (:time, :edge_id, :from_node_id, :to_node_id, :flow_rate), + (DateTime, Union{Int32, Missing}, Int32, Int32, Float64), ) @test Tables.schema(basin) == Tables.Schema( ( @@ -83,6 +77,10 @@ (:time, :subgrid_id, :subgrid_level), (DateTime, Int32, Float64), ) + @test Tables.schema(solver_stats) == Tables.Schema( + (:time, :rhs_calls, :linear_solves, :accepted_timesteps, :rejected_timesteps), + (DateTime, Int, Int, Int, Int), + ) end @testset "Results size" begin @@ -96,9 +94,9 @@ @testset "Results values" begin @test flow.time[1] == DateTime(2020) - @test coalesce.(flow.edge_id[1:2], -1) == [0, 1] - @test flow.from_node_id[1:2] == [6, 6] - @test flow.to_node_id[1:2] == [6, 2147483647] + @test coalesce.(flow.edge_id[1:2], -1) == [100, 101] + @test flow.from_node_id[1:2] == [6, 0] + @test flow.to_node_id[1:2] == [0, 2147483647] @test basin.storage[1] ≈ 1.0 @test basin.level[1] ≈ 0.044711584 @@ -125,22 +123,25 @@ end @testitem "bucket model" begin using SciMLBase: successful_retcode + using OrdinaryDiffEqCore: get_du toml_path = normpath(@__DIR__, "../../generated_testmodels/bucket/ribasim.toml") @test ispath(toml_path) model = Ribasim.run(toml_path) @test model isa Ribasim.Model - @test model.integrator.u.storage ≈ [1000] - vertical_flux = Ribasim.get_tmp(model.integrator.p.basin.vertical_flux, 0) - @test vertical_flux.precipitation == [0.0] - @test vertical_flux.evaporation == [0.0] - @test vertical_flux.drainage == [0.0] - @test vertical_flux.infiltration == [0.0] + (; basin) = model.integrator.p + @test basin.current_properties.current_storage[Float64[]] ≈ [1000] + @test basin.vertical_flux.precipitation == [0.0] + @test basin.vertical_flux.drainage == [0.0] + du = get_du(model.integrator) + @test du.evaporation == [0.0] + @test du.infiltration == [0.0] @test successful_retcode(model) end @testitem "leaky bucket model" begin using SciMLBase: successful_retcode + using OrdinaryDiffEqCore: get_du import BasicModelInterface as BMI toml_path = normpath(@__DIR__, "../../generated_testmodels/leaky_bucket/ribasim.toml") @@ -148,12 +149,15 @@ end model = Ribasim.Model(toml_path) @test model isa Ribasim.Model - stor = model.integrator.u.storage - vertical_flux = Ribasim.get_tmp(model.integrator.p.basin.vertical_flux, 0) - prec = vertical_flux.precipitation - evap = vertical_flux.evaporation - drng = vertical_flux.drainage - infl = vertical_flux.infiltration + (; integrator) = model + du = get_du(integrator) + (; u, p, t) = integrator + Ribasim.water_balance!(du, u, p, t) + stor = integrator.p.basin.current_properties.current_storage[parent(du)] + prec = p.basin.vertical_flux.precipitation + evap = du.evaporation + drng = p.basin.vertical_flux.drainage + infl = du.infiltration # The dynamic data has missings, but these are not set. @test prec == [0.0] @test evap == [0.0] @@ -180,6 +184,7 @@ end using Logging: Debug, with_logger using LoggingExtras using SciMLBase: successful_retcode + using OrdinaryDiffEqBDF: QNDF import Tables using Dates @@ -193,15 +198,21 @@ end end @test model isa Ribasim.Model - p = model.integrator.p + + (; integrator) = model + (; p, alg) = integrator + @test p isa Ribasim.Parameters @test isconcretetype(typeof(p)) @test all(isconcretetype, fieldtypes(typeof(p))) + @test alg isa QNDF + @test alg.step_limiter! == Ribasim.limit_flow! + @test successful_retcode(model) - @test allunique(Ribasim.tsaves(model)) - @test model.integrator.sol.u[end] ≈ Float32[519.8817, 519.8798, 339.3959, 1418.4331] skip = - Sys.isapple() atol = 1.5 + @test length(model.integrator.sol) == 2 # start and end + @test model.integrator.p.basin.current_properties.current_storage[Float64[]] ≈ + Float32[828.5386, 801.88289, 492.290, 1318.3053] skip = Sys.isapple() atol = 1.5 @test length(logger.logs) > 10 @test logger.logs[1].level == Debug @@ -211,6 +222,11 @@ end # flows are recorded at the end of each period, and are undefined at the start @test unique(table.time) == Ribasim.datetimes(model)[1:(end - 1)] + + @test isfile(joinpath(dirname(toml_path), "results/concentration.arrow")) + table = Ribasim.concentration_table(model) + @test "Continuity" in table.substance + @test all(isapprox.(table.concentration[table.substance .== "Continuity"], 1.0)) end @testitem "basic arrow model" begin @@ -225,6 +241,7 @@ end @testitem "basic transient model" begin using SciMLBase: successful_retcode + using OrdinaryDiffEqCore: get_du toml_path = normpath(@__DIR__, "../../generated_testmodels/basic_transient/ribasim.toml") @@ -233,10 +250,11 @@ end @test model isa Ribasim.Model @test successful_retcode(model) @test allunique(Ribasim.tsaves(model)) - precipitation = Ribasim.get_tmp(model.integrator.p.basin.vertical_flux, 0).precipitation + du = get_du(model.integrator) + precipitation = model.integrator.p.basin.vertical_flux.precipitation @test length(precipitation) == 4 - @test model.integrator.sol.u[end] ≈ Float32[472.02444, 472.02252, 367.6387, 1427.981] skip = - Sys.isapple() + @test model.integrator.p.basin.current_properties.current_storage[parent(du)] ≈ + Float32[721.17656, 695.8066, 416.66188, 1334.4879] atol = 2.0 skip = Sys.isapple() end @testitem "Allocation example model" begin @@ -270,14 +288,14 @@ end @test successful_retcode(sparse_fdm) @test successful_retcode(dense_fdm) - @test dense_ad.integrator.sol.u[end] ≈ sparse_ad.integrator.sol.u[end] atol = 0.1 - @test sparse_fdm.integrator.sol.u[end] ≈ sparse_ad.integrator.sol.u[end] - @test dense_fdm.integrator.sol.u[end] ≈ sparse_ad.integrator.sol.u[end] atol = 0.1 + @test dense_ad.integrator.u ≈ sparse_ad.integrator.u atol = 0.1 + @test sparse_fdm.integrator.u ≈ sparse_ad.integrator.u atol = 4 + @test dense_fdm.integrator.u ≈ sparse_ad.integrator.u atol = 4 - config = Ribasim.Config(toml_path; solver_algorithm = "Rodas5", solver_autodiff = true) + config = Ribasim.Config(toml_path; solver_algorithm = "Rodas5P", solver_autodiff = true) time_ad = Ribasim.run(config) @test successful_retcode(time_ad) - @test time_ad.integrator.sol.u[end] ≈ sparse_ad.integrator.sol.u[end] atol = 1 + @test time_ad.integrator.u ≈ sparse_ad.integrator.u atol = 10 end @testitem "TabulatedRatingCurve model" begin @@ -289,17 +307,16 @@ end model = Ribasim.run(toml_path) @test model isa Ribasim.Model @test successful_retcode(model) - @test model.integrator.sol.u[end] ≈ Float32[7.783636, 726.16394] skip = Sys.isapple() + @test model.integrator.p.basin.current_properties.current_storage[Float64[]] ≈ + Float32[368.31558, 365.68442] skip = Sys.isapple() # the highest level in the dynamic table is updated to 1.2 from the callback @test model.integrator.p.tabulated_rating_curve.table[end].t[end] == 1.2 end @testitem "Profile" begin import Tables - using DataInterpolations: LinearInterpolation, integral - using SmoothInterpolation: invert_integral + using DataInterpolations: LinearInterpolation, integral, invert_integral - "Shorthand for Ribasim.get_area_and_level" function lookup(profile, S) level_to_area = LinearInterpolation(profile.A, profile.h; extrapolate = true) storage_to_level = invert_integral(level_to_area) @@ -313,7 +330,7 @@ end storage = range(0.0, 1000.0, n_interpolations) # Covers interpolation for constant and non-constant area, extrapolation for constant area - A = [0.0, 100.0, 100.0] + A = [1e-9, 100.0, 100.0] h = [0.0, 10.0, 15.0] S = integral.(Ref(LinearInterpolation(A, h)), h) profile = (; S, A, h) @@ -334,6 +351,7 @@ end # On the second segment and extrapolation for S in [500.0 + 100.0, 1000.0 + 100.0] + local A, h S = 500.0 + 100.0 A, h = lookup(profile, S) @test h ≈ 10.0 + (S - 500.0) / 100.0 @@ -341,7 +359,7 @@ end end # Covers extrapolation for non-constant area - A = [0.0, 100.0] + A = [1e-9, 100.0] h = [0.0, 10.0] S = integral.(Ref(LinearInterpolation(A, h)), h) @@ -372,11 +390,11 @@ end outlet_flow = filter([:from_node_id, :to_node_id] => (from, to) -> from == 2 && to == 3, flow) - t_min_crest_level = - level.t[2] * (outlet.min_crest_level[1] - level.u[1]) / (level.u[2] - level.u[1]) + t_min_upstream_level = + level.t[2] * (outlet.min_upstream_level[1] - level.u[1]) / (level.u[2] - level.u[1]) - # No outlet flow when upstream level is below minimum crest level - @test all(@. outlet_flow.flow_rate[t <= t_min_crest_level] == 0) + # No outlet flow when upstream level is below minimum upstream level + @test all(@. outlet_flow.flow_rate[t <= t_min_upstream_level] == 0) t = Ribasim.tsaves(model) t_maximum_level = level.t[2] @@ -388,23 +406,48 @@ end @testitem "UserDemand" begin using SciMLBase: successful_retcode + using Dates + using DataFrames: DataFrame + using Ribasim: formulate_storages! + import BasicModelInterface as BMI toml_path = normpath(@__DIR__, "../../generated_testmodels/user_demand/ribasim.toml") @test ispath(toml_path) - model = Ribasim.run(toml_path) - @test successful_retcode(model) + model = Ribasim.Model(toml_path) + + (; integrator) = model + (; u, p, t, sol) = integrator + current_storage = p.basin.current_properties.current_storage[Float64[]] day = 86400.0 - @test only(model.integrator.sol(0day)) == 1000.0 - # constant UserDemand withdraws to 0.9m/900m3 - @test only(model.integrator.sol(150day)) ≈ 900 atol = 5 - # dynamic UserDemand withdraws to 0.5m/509m3 - @test only(model.integrator.sol(180day)) ≈ 509 atol = 1 + + @test only(current_storage) ≈ 1000.0 + # constant UserDemand withdraws to 0.9m or 900m3 due to min level = 0.9 + BMI.update_until(model, 150day) + @test only(current_storage) ≈ 900 atol = 5 + # dynamic UserDemand withdraws to 0.5m or 500m3 due to min level = 0.5 + BMI.update_until(model, 220day) + @test only(current_storage) ≈ 500 atol = 1 + + # Trasient return factor + flow = DataFrame(Ribasim.flow_table(model)) + return_factor_itp = model.integrator.p.user_demand.return_factor[3] + flow_in = + filter([:from_node_id, :to_node_id] => (from, to) -> (from, to) == (1, 4), flow) + flow_out = + filter([:from_node_id, :to_node_id] => (from, to) -> (from, to) == (4, 5), flow) + time_seconds = Ribasim.seconds_since.(flow_in.time, model.config.starttime) + @test isapprox( + flow_out.flow_rate, + return_factor_itp.(time_seconds) .* flow_in.flow_rate, + rtol = 1e-1, + ) end @testitem "ManningResistance" begin using PreallocationTools: get_tmp using SciMLBase: successful_retcode + using OrdinaryDiffEqCore: get_du using Ribasim: NodeID """ @@ -466,9 +509,9 @@ end model = Ribasim.run(toml_path) @test successful_retcode(model) - u = model.integrator.sol.u[end] - p = model.integrator.p - h_actual = get_tmp(p.basin.current_level, u)[1:50] + du = get_du(model.integrator) + (; p, t) = model.integrator + h_actual = p.basin.current_properties.current_level[parent(du)][1:50] x = collect(10.0:20.0:990.0) h_expected = standard_step_method(x, 5.0, 1.0, 0.04, h_actual[end], 1.0e-6) @@ -478,14 +521,13 @@ end # https://www.hec.usace.army.mil/confluence/rasdocs/ras1dtechref/latest/theoretical-basis-for-one-dimensional-and-two-dimensional-hydrodynamic-calculations/1d-steady-flow-water-surface-profiles/friction-loss-evaluation @test all(isapprox.(h_expected, h_actual; atol = 0.02)) # Test for conservation of mass, flow at the beginning == flow at the end - n_self_loops = length(p.graph[].flow_dict) - @test Ribasim.get_flow(p.graph, NodeID(:FlowBoundary, 1, p), NodeID(:Basin, 2, p), 0) ≈ + @test Ribasim.get_flow(du, p, t, (NodeID(:FlowBoundary, 1, p), NodeID(:Basin, 2, p))) ≈ 5.0 atol = 0.001 skip = Sys.isapple() @test Ribasim.get_flow( - p.graph, - NodeID(:ManningResistance, 101, p), - NodeID(:Basin, 102, p), - 0, + du, + p, + t, + (NodeID(:ManningResistance, 101, p), NodeID(:Basin, 102, p)), ) ≈ 5.0 atol = 0.001 skip = Sys.isapple() end @@ -556,3 +598,46 @@ end @test all(flow .≈ 1.0) @test length(flow) == length(tstops) - 1 end + +@testitem "stroboscopic_forcing" begin + import BasicModelInterface as BMI + using SciMLBase: successful_retcode + + toml_path = normpath(@__DIR__, "../../generated_testmodels/bucket/ribasim.toml") + model = BMI.initialize(Ribasim.Model, toml_path) + + drn = BMI.get_value_ptr(model, "basin.drainage") + drn_sum = BMI.get_value_ptr(model, "basin.cumulative_drainage") + inf = BMI.get_value_ptr(model, "basin.infiltration") + inf_sum = BMI.get_value_ptr(model, "basin.cumulative_infiltration") + + nday = 300 + inf_out = fill(NaN, nday) + drn_out = fill(NaN, nday) + + Δt::Float64 = 86400.0 + + for day in 0:(nday - 1) + if iseven(day) + drn .= 25.0 / Δt + inf .= 0.0 + else + drn .= 0.0 + inf .= 25.0 / Δt + end + BMI.update_until(model, day * Δt) + + inf_out[day + 1] = only(inf_sum) + drn_out[day + 1] = only(drn_sum) + end + + @test successful_retcode(model) + + Δdrn = diff(drn_out) + Δinf = diff(inf_out) + + @test all(Δdrn[1:2:end] .== 0.0) + @test all(isapprox.(Δdrn[2:2:end], 25.0; atol = 1e-10)) + @test all(isapprox.(Δinf[1:2:end], 25.0; atol = 1e-10)) + @test all(Δinf[2:2:end] .== 0.0) +end diff --git a/core/test/runtests.jl b/core/test/runtests.jl index 442308612..cb7c52586 100644 --- a/core/test/runtests.jl +++ b/core/test/runtests.jl @@ -1,3 +1,16 @@ -using ReTestItems, Ribasim +using TestItemRunner -runtests(Ribasim; nworkers = min(4, Sys.CPU_THREADS ÷ 2), nworker_threads = 2) +function test_type(item)::Bool + dir = basename(dirname(item.filename)) + is_integration = dir == "integration_test" + is_regression = dir == "regression_test" + if in("integration", ARGS) + is_integration + elseif in("regression", ARGS) + is_regression + else + !is_integration && !is_regression + end +end + +@run_package_tests filter = test_type diff --git a/core/test/time_test.jl b/core/test/time_test.jl index 4286ac3da..68886c208 100644 --- a/core/test/time_test.jl +++ b/core/test/time_test.jl @@ -29,6 +29,7 @@ end toml_path = normpath(@__DIR__, "../../generated_testmodels/basic_transient/ribasim.toml") @test ispath(toml_path) + config = Ribasim.Config(toml_path; solver_saveat = 0) model = Ribasim.run(toml_path) (; p) = model.integrator (; basin) = p @@ -39,15 +40,19 @@ end t_end = time_table.time[end] filter!(:time => t -> t !== t_end, time_table) + function get_area(basin, idx, storage) + level = Ribasim.get_level_from_storage(basin, idx, storage) + basin.level_to_area[idx](level) + end + time_table[!, "basin_idx"] = [node_id.idx for node_id in Ribasim.NodeID.(:Basin, time_table.node_id, Ref(p))] time_table[!, "area"] = [ - Ribasim.get_area_and_level(basin, idx, storage)[1] for + get_area(basin, idx, storage) for (idx, storage) in zip(time_table.basin_idx, basin_table.storage) ] - # Mean areas are sufficient to compute the mean flows - # (assuming the saveats coincide with the solver timepoints), - # as the potential evaporation is constant over the saveat intervals + # Mean areas over the timestep are computed as an approximation of + # how the area changes over the timestep, affecting evaporation time_table[!, "mean_area"] .= 0.0 n_basins = length(basin.node_id) n_times = length(unique(time_table.time)) - 1 @@ -64,7 +69,7 @@ end isapprox( basin_table.evaporation, time_table.mean_area .* time_table.potential_evaporation; - rtol = 1e-4, + rtol = 1e-2, ), ) @@ -78,7 +83,6 @@ end @testitem "Integrate over discontinuity" begin import BasicModelInterface as BMI - using Ribasim: get_tmp toml_path = normpath(@__DIR__, "../../generated_testmodels/level_demand/ribasim.toml") @test ispath(toml_path) @@ -92,10 +96,11 @@ end solver_algorithm = "Euler", ) model = Ribasim.Model(config) + (; basin) = model.integrator.p starting_precipitation = - get_tmp(model.integrator.p.basin.vertical_flux, 0).precipitation[1] + basin.vertical_flux.precipitation[1] * Ribasim.basin_areas(basin, 1)[end] BMI.update_until(model, saveat) - mean_precipitation = only(model.saved.vertical_flux.saveval).precipitation[1] + mean_precipitation = only(model.saved.flow.saveval).precipitation[1] # Given that precipitation stops after 15 of the 20 days @test mean_precipitation ≈ 3 / 4 * starting_precipitation end diff --git a/core/test/utils.jl b/core/test/utils.jl new file mode 100644 index 000000000..094a883a5 --- /dev/null +++ b/core/test/utils.jl @@ -0,0 +1,23 @@ +macro tcstatus(message) + if haskey(ENV, "TEAMCITY_VERSION") + return esc(:(println("##teamcity[buildStatus text='", $message, "']"))) + else + return esc(:(println($message))) + end +end + +macro tcstatistic(key, value) + if haskey(ENV, "TEAMCITY_VERSION") + return esc( + :(println( + "##teamcity[buildStatisticValue key='", + $key, + "' value='", + $value, + "']", + )), + ) + else + return esc(:(println($key, '=', $value))) + end +end diff --git a/core/test/utils_test.jl b/core/test/utils_test.jl index 5c38789d0..0b8e2c3f9 100644 --- a/core/test/utils_test.jl +++ b/core/test/utils_test.jl @@ -11,31 +11,29 @@ end @testitem "bottom" begin using StructArrays: StructVector - using Ribasim: NodeID - using DataInterpolations: LinearInterpolation, integral - using SmoothInterpolation: invert_integral + using Ribasim: NodeID, cache + using DataInterpolations: LinearInterpolation, integral, invert_integral + using DataStructures: OrderedSet # create two basins with different bottoms/levels area = [[0.01, 1.0], [0.01, 1.0]] level = [[0.0, 1.0], [4.0, 5.0]] level_to_area = LinearInterpolation.(area, level) storage_to_level = invert_integral.(level_to_area) - demand = zeros(2) + basin = Ribasim.Basin(; node_id = NodeID.(:Basin, [5, 7], [1, 2]), - vertical_flux_from_input = [2.0, 3.0], - vertical_flux = [2.0, 3.0], - vertical_flux_prev = [2.0, 3.0], - vertical_flux_integrated = [2.0, 3.0], - vertical_flux_bmi = [2.0, 3.0], - current_level = [2.0, 3.0], - current_area = [2.0, 3.0], storage_to_level, level_to_area, - demand, time = StructVector{Ribasim.BasinTimeV1}(undef, 0), + concentration_time = StructVector{Ribasim.BasinConcentrationV1}(undef, 0), ) + (; current_level, current_area) = basin.current_properties + + current_level[Float64[]] .= [2.0, 3.0] + current_area[Float64[]] .= [2.0, 3.0] + @test Ribasim.basin_levels(basin, 2)[1] === 4.0 @test Ribasim.basin_bottom(basin, NodeID(:Basin, 5, 1))[2] === 0.0 @test Ribasim.basin_bottom(basin, NodeID(:Basin, 7, 2))[2] === 4.0 @@ -46,8 +44,8 @@ end using StructArrays: StructVector using Logging using Ribasim: NodeID - using DataInterpolations: LinearInterpolation - using SmoothInterpolation: invert_integral + using DataInterpolations: LinearInterpolation, invert_integral + using DataStructures: OrderedSet level = [ 0.0, @@ -75,13 +73,13 @@ end ] level_to_area = LinearInterpolation(area, level; extrapolate = true) storage_to_level = invert_integral(level_to_area) - demand = zeros(1) + basin = Ribasim.Basin(; node_id = NodeID.(:Basin, [1], 1), storage_to_level = [storage_to_level], level_to_area = [level_to_area], - demand, time = StructVector{Ribasim.BasinTimeV1}(undef, 0), + concentration_time = StructVector{Ribasim.BasinConcentrationV1}(undef, 0), ) logger = TestLogger() @@ -96,7 +94,7 @@ end # Converting from storages to levels and back should return the same storages storages = range(0.0, 2 * storage_to_level.t[end], 50) - levels = [Ribasim.get_area_and_level(basin, 1, s)[2] for s in storages] + levels = [Ribasim.get_level_from_storage(basin, 1, s) for s in storages] storages_ = [Ribasim.get_storage_from_level(basin, 1, l) for l in levels] @test storages ≈ storages_ @@ -163,36 +161,52 @@ end @testitem "Jacobian sparsity" begin import SQLite + using ComponentArrays: ComponentVector + using SparseArrays: sparse, findnz toml_path = normpath(@__DIR__, "../../generated_testmodels/basic/ribasim.toml") cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) + db_path = Ribasim.database_path(cfg) db = SQLite.DB(db_path) p = Ribasim.Parameters(db, cfg) - jac_prototype = Ribasim.get_jac_prototype(p) - - @test jac_prototype.m == 4 - @test jac_prototype.n == 4 - @test jac_prototype.colptr == [1, 3, 7, 10, 13] - @test jac_prototype.rowval == [1, 2, 1, 2, 3, 4, 2, 3, 4, 2, 3, 4] - @test jac_prototype.nzval == ones(12) + close(db) + t0 = 0.0 + u0 = Ribasim.build_state_vector(p) + du0 = copy(u0) + p = Ribasim.build_flow_to_storage(p, u0) + jac_prototype = Ribasim.get_jac_prototype(du0, u0, p, t0) + + # rows, cols, _ = findnz(jac_prototype) + #! format: off + rows_expected = [1, 2, 3, 6, 7, 9, 13, 1, 2, 3, 4, 6, 7, 9, 10, 13, 14, 1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 15, 2, 3, 4, 5, 10, 11, 14, 15, 3, 4, 5, 11, 15, 1, 2, 3, 6, 7, 9, 13, 1, 2, 3, 6, 7, 8, 9, 12, 13, 7, 8, 12, 1, 2, 3, 6, 7, 9, 13, 2, 4, 10, 14, 3, 4, 5, 11, 15, 7, 8, 12, 1, 2, 3, 6, 7, 9, 13, 2, 4, 10, 14, 3, 4, 5, 11, 15] + cols_expected = [1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15] + #! format: on + jac_prototype_expected = + sparse(rows_expected, cols_expected, true, size(jac_prototype)...) + @test jac_prototype == jac_prototype_expected toml_path = normpath(@__DIR__, "../../generated_testmodels/pid_control/ribasim.toml") cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) + db_path = Ribasim.database_path(cfg) db = SQLite.DB(db_path) p = Ribasim.Parameters(db, cfg) - jac_prototype = Ribasim.get_jac_prototype(p) - - @test jac_prototype.m == 3 - @test jac_prototype.n == 3 - @test jac_prototype.colptr == [1, 4, 5, 6] - @test jac_prototype.rowval == [1, 2, 3, 1, 1] - @test jac_prototype.nzval == ones(5) + close(db) + u0 = Ribasim.build_state_vector(p) + du0 = copy(u0) + p = Ribasim.build_flow_to_storage(p, u0) + jac_prototype = Ribasim.get_jac_prototype(du0, u0, p, t0) + + #! format: off + rows_expected = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2] + cols_expected = [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 6] + #! format: on + jac_prototype_expected = + sparse(rows_expected, cols_expected, true, size(jac_prototype)...) + @test jac_prototype == jac_prototype_expected end @testitem "FlatVector" begin @@ -220,19 +234,8 @@ end @test reduction_factor(1.0, 2.0) === 0.5 @test reduction_factor(3.0f0, 2.0) === 1.0f0 @test reduction_factor(3.0, 2.0) === 1.0 -end - -@testitem "low_storage_factor" begin - using Ribasim: NodeID, low_storage_factor, EdgeMetadata, EdgeType - - node_id = NodeID(:Basin, 5, 1) - @test low_storage_factor([-2.0], node_id, 2.0) === 0.0 - @test low_storage_factor([0.0f0], node_id, 2.0) === 0.0f0 - @test low_storage_factor([0.0], node_id, 2.0) === 0.0 - @test low_storage_factor([1.0f0], node_id, 2.0) === 0.5f0 - @test low_storage_factor([1.0], node_id, 2.0) === 0.5 - @test low_storage_factor([3.0f0], node_id, 2.0) === 1.0f0 - @test low_storage_factor([3.0], node_id, 2.0) === 1.0 + @test reduction_factor(Inf, 2.0) === 1.0 + @test reduction_factor(-Inf, 2.0) === 0.0 end @testitem "constraints_from_nodes" begin @@ -276,20 +279,21 @@ end using Ribasim: nodetypes, NodeType, Parameters, AbstractParameterNode, snake_case @test Set(nodetypes) == Set([ - :Terminal, - :PidControl, - :LevelBoundary, - :Pump, - :UserDemand, - :TabulatedRatingCurve, - :FlowDemand, - :FlowBoundary, :Basin, - :ManningResistance, - :LevelDemand, + :ContinuousControl, :DiscreteControl, - :Outlet, + :FlowBoundary, + :FlowDemand, + :LevelBoundary, + :LevelDemand, :LinearResistance, + :ManningResistance, + :Outlet, + :PidControl, + :Pump, + :TabulatedRatingCurve, + :Terminal, + :UserDemand, ]) for nodetype in nodetypes NodeType.T(nodetype) @@ -301,3 +305,39 @@ end end end end + +@testitem "flow_to_storage matrix" begin + using ComponentArrays: ComponentArray, Axis, getaxes + using LinearAlgebra: I + toml_path = normpath(@__DIR__, "../../generated_testmodels/basic/ribasim.toml") + @test ispath(toml_path) + model = Ribasim.Model(toml_path) + (; u, p) = model.integrator + n_basins = length(u.evaporation) + (; flow_to_storage) = p + flow_to_storage = + ComponentArray(flow_to_storage, (Axis(; basins = 1:n_basins), only(getaxes(u)))) + + @test flow_to_storage[:, :evaporation] == -I + @test flow_to_storage[:, :infiltration] == -I + + for node_name in + [:tabulated_rating_curve, :pump, :outlet, :linear_resistance, :manning_resistance] + flow_to_storage_node = flow_to_storage[:, node_name] + # In every column there is either 0 or 1 instance of 1.0 (flow into a basin) + @test all( + i -> i ∈ (0, 1), + count(==(1.0), collect(flow_to_storage[:, :tabulated_rating_curve]); dims = 1), + ) + + # In every column there is either 0 or 1 instance of -1.0 (flow out of a basin) + @test all( + i -> i ∈ (0, 1), + count( + ==(1 - 0.0), + collect(flow_to_storage[:, :tabulated_rating_curve]); + dims = 1, + ), + ) + end +end diff --git a/core/test/validation_test.jl b/core/test/validation_test.jl index 976e7040a..547a11ff4 100644 --- a/core/test/validation_test.jl +++ b/core/test/validation_test.jl @@ -23,7 +23,7 @@ @test logger.logs[3].message == "Basin #1 profile cannot have decreasing areas." table = StructVector(; flow_rate = [0.0, 0.1], level = [1.0, 2.0], node_id = [5, 5]) - itp = qh_interpolation(NodeID(:TabulatedRatingCurve, 5, 1), table) + itp = qh_interpolation(table, 1:2) # constant extrapolation at the bottom end, linear extrapolation at the top end itp(0.0) ≈ 0.0 itp(1.0) ≈ 0.0 @@ -41,9 +41,9 @@ end @test ispath(toml_path) config = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(config, config.database) + db_path = Ribasim.database_path(config) db = SQLite.DB(db_path) - graph = Ribasim.create_graph(db, config, [1]) + graph = Ribasim.create_graph(db, config) logger = TestLogger() with_logger(logger) do @@ -88,7 +88,6 @@ end function set_edge_metadata!(id_1, id_2, edge_type) graph[id_1, id_2] = EdgeMetadata(; id = 0, - flow_idx = 0, type = edge_type, subnetwork_id_source = 0, edge = (id_1, id_2), @@ -151,7 +150,6 @@ end function set_edge_metadata!(id_1, id_2, edge_type) graph[id_1, id_2] = EdgeMetadata(; id = 0, - flow_idx = 0, type = edge_type, subnetwork_id_source = 0, edge = (id_1, id_2), @@ -196,9 +194,10 @@ end @test ispath(toml_path) cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) + db_path = Ribasim.database_path(cfg) db = SQLite.DB(db_path) p = Ribasim.Parameters(db, cfg) + close(db) logger = TestLogger() with_logger(logger) do @@ -225,14 +224,16 @@ end @testitem "Pump/outlet flow rate sign validation" begin using Logging - using Ribasim: NodeID, NodeType, ControlStateUpdate, ParameterUpdate + using Ribasim: NodeID, NodeType, ControlStateUpdate, ParameterUpdate, cache logger = TestLogger() with_logger(logger) do + flow_rate = cache(1) + flow_rate[Float64[]] .= -1 @test_throws "Invalid Outlet flow rate(s)." Ribasim.Outlet(; node_id = [NodeID(:Outlet, 1, 1)], - flow_rate = [-1.0], + flow_rate, ) end @@ -243,9 +244,11 @@ end logger = TestLogger() with_logger(logger) do + flow_rate = cache(1) + flow_rate[Float64[]] .= -1 @test_throws "Invalid Pump flow rate(s)." Ribasim.Pump(; node_id = [NodeID(:Pump, 1, 1)], - flow_rate = [-1.0], + flow_rate, control_mapping = Dict( (NodeID(:Pump, 1, 1), "foo") => ControlStateUpdate(; active = ParameterUpdate(:active, true), @@ -271,20 +274,21 @@ end @test ispath(toml_path) cfg = Ribasim.Config(toml_path) - db_path = Ribasim.input_path(cfg, cfg.database) + db_path = Ribasim.database_path(cfg) db = SQLite.DB(db_path) logger = TestLogger() with_logger(logger) do @test !Ribasim.valid_edge_types(db) end + close(db) @test length(logger.logs) == 2 @test logger.logs[1].level == Error @test logger.logs[1].message == - "Invalid edge type 'foo' for edge #0 from node #1 to node #2." + "Invalid edge type 'foo' for edge #1 from node #1 to node #2." @test logger.logs[2].level == Error @test logger.logs[2].message == - "Invalid edge type 'bar' for edge #1 from node #2 to node #3." + "Invalid edge type 'bar' for edge #2 from node #2 to node #3." end @testitem "Subgrid validation" begin @@ -394,11 +398,11 @@ end @test length(logger.logs) == 1 @test logger.logs[1].level == Error @test logger.logs[1].message == - "Lowest levels of TabulatedRatingCurve #5 is lower than bottom of upstream Basin #1" + "Lowest level of TabulatedRatingCurve #5 is lower than bottom of upstream Basin #1" end @testitem "Outlet upstream level validation" begin - using Ribasim: valid_outlet_crest_level! + using Ribasim: valid_min_upstream_level! using Logging toml_path = normpath( @@ -414,33 +418,83 @@ end parameters = model.integrator.p (; graph, outlet, basin) = parameters - outlet.min_crest_level[1] = invalid_level + outlet.min_upstream_level[1] = invalid_level logger = TestLogger() with_logger(logger) do - @test !Ribasim.valid_outlet_crest_level!(graph, outlet, basin) + @test !Ribasim.valid_min_upstream_level!(graph, outlet, basin) end @test length(logger.logs) == 1 @test logger.logs[1].level == Error @test logger.logs[1].message == - "Minimum crest level of Outlet #4 is lower than bottom of upstream Basin #3" + "Minimum upstream level of Outlet #4 is lower than bottom of upstream Basin #3" end @testitem "Convergence bottleneck" begin + using Logging using IOCapture: capture toml_path = normpath(@__DIR__, "../../generated_testmodels/invalid_unstable/ribasim.toml") @test ispath(toml_path) + (; output) = capture() do Ribasim.main(toml_path) end - output = split(output, "\n")[(end - 4):end] - @test startswith( - output[1], - "The following basins were identified as convergence bottlenecks", + + @test occursin( + "Warning: Convergence bottlenecks in descending order of severity:", + output, ) - @test startswith(output[2], "Basin #11") - @test startswith(output[3], "Basin #31") - @test startswith(output[4], "Basin #51") + @test occursin("Pump #12 = ", output) + @test occursin("Pump #32 = ", output) + @test occursin("Pump #52 = ", output) +end + +@testitem "Missing priority when allocation is active" begin + using Ribasim + using Logging + using IOCapture: capture + + toml_path = + normpath(@__DIR__, "../../generated_testmodels/invalid_priorities/ribasim.toml") + @test ispath(toml_path) + + logger = TestLogger() + with_logger(logger) do + @test_throws "Priority parameter is missing" Ribasim.run(toml_path) + end + @test length(logger.logs) == 3 + @test logger.logs[1].level == Error + @test logger.logs[1].message == + "Missing priority parameter(s) for a UserDemand / static node in the allocation problem." + @test logger.logs[2].message == + "Missing priority parameter(s) for a LevelDemand / static node in the allocation problem." + @test logger.logs[3].message == + "Missing priority parameter(s) for a FlowDemand / static node in the allocation problem." +end + +@testitem "Node ID not in Node table" begin + using Ribasim + import SQLite + using Logging + + toml_path = normpath(@__DIR__, "../../generated_testmodels/basic/ribasim.toml") + + cfg = Ribasim.Config(toml_path) + db_path = Ribasim.database_path(cfg) + db = SQLite.DB(db_path) + + logger = TestLogger() + with_logger(logger) do + @test_throws "Node ID #1 of type PidControl is not in the Node table." Ribasim.NodeID( + :PidControl, + 1, + db, + ) + end + + with_logger(logger) do + @test_throws "Node ID #20 is not in the Node table." Ribasim.NodeID(20, db) + end end diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 000000000..4e6f10f4f --- /dev/null +++ b/data/.gitignore @@ -0,0 +1,3 @@ +/predict.dat +/integration.csv +/integration.toml diff --git a/docs/.gitignore b/docs/.gitignore index cd2d14289..31d2ae370 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -2,6 +2,8 @@ /_site/ /site_libs/ /reference/python/ +/tutorial/crystal-basin/ guide/data/ *.html +*.quarto_ipynb objects.json diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 000000000..402031205 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +ribasim.org diff --git a/docs/_quarto.yml b/docs/_quarto.yml index 5046b84b5..98654dabd 100644 --- a/docs/_quarto.yml +++ b/docs/_quarto.yml @@ -1,8 +1,7 @@ project: type: website resources: - - schema/*.schema.json - + - CNAME website: title: "Ribasim" page-navigation: true @@ -12,11 +11,11 @@ website: - text: "Overview" file: index.qmd - text: "Tutorials" - file: tutorial/index.qmd + file: tutorial/natural-flow.ipynb - text: "How-to guides" - file: guide/index.qmd + file: guide/examples.ipynb - text: "Concepts" - file: concept/index.qmd + file: concept/concept.qmd - text: "Reference" file: reference/index.qmd right: @@ -32,21 +31,26 @@ website: - index.qmd - install.qmd - changelog.qmd + - known_issues.qmd + - contact.qmd - title: "Tutorials" contents: - - tutorial/index.qmd - - tutorial/qgis.qmd + - tutorial/natural-flow.ipynb + - tutorial/irrigation-demand.ipynb + - tutorial/reservoir.ipynb - title: "How-to guides" contents: - - guide/index.qmd - guide/examples.ipynb + - guide/qgis.qmd - guide/coupling.qmd + - section: "Coupling guides" + contents: + - guide/delwaq.ipynb - title: "Concepts" contents: - - concept/index.qmd - concept/concept.qmd - section: "Numerics" contents: @@ -80,18 +84,25 @@ website: - reference/node/manning-resistance.qmd - reference/node/terminal.qmd - reference/node/discrete-control.qmd + - reference/node/continuous-control.qmd - reference/node/pid-control.qmd - - title: "Dev docs" + - title: "Contributing" contents: - dev/index.qmd - dev/core.qmd + - dev/benchmark.qmd - dev/addnode.qmd - dev/python.qmd - - dev/qgis.qmd + - dev/allocation.qmd - dev/bmi.qmd - dev/ci.qmd - dev/release.qmd + - dev/callstacks.qmd + - section: QGIS + contents: + - dev/qgis.qmd + - dev/qgis_test_plan.qmd format: html: diff --git a/docs/assets/ribasim.ico b/docs/assets/ribasim.ico new file mode 100644 index 000000000..7c9f768f6 Binary files /dev/null and b/docs/assets/ribasim.ico differ diff --git a/docs/changelog.qmd b/docs/changelog.qmd index 2406563cb..d9c04350e 100644 --- a/docs/changelog.qmd +++ b/docs/changelog.qmd @@ -5,39 +5,117 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ## [Unreleased] +## [v2024.11.0] - 2024-10-08 + +This major new release contains many improvements. +A new formulation allows much smaller water balance errors, which is combined with several performance improvements. +Ribasim Python does more validation that was previously only done in the core. +The Ribasim QGIS plugin now sets the relations between tables for easier model inspection. +Adding `min_upstream_level` and `max_downstream_level` to Pump and Outlet means DiscreteControl is often no longer needed. +The most significant breaking change is making the `node_id` and `edge_id` the index of the Node and Edge table; these need to be globally unique. + +Starting from this release Ribasim is labeled as beta software. +Since development is currently mainly driven by applications in the Dutch water system, we expect that addition work needs to be done for general use outside the Netherlands. + +For coupled simulation with MODFLOW and/or MetaSWAP, this release is part of the [iMOD Coupler](https://deltares.github.io/iMOD-Documentation/coupler.html), specifically release [v2024.4.0](https://github.com/Deltares/imod_coupler/releases/tag/v2024.4.0) + ### Added +- Support discrete control based on an external concentration condition. [#1660](https://github.com/Deltares/Ribasim/pull/1660) +- Add `results/solver_stats.arrow` with solver statistics over time. [#1677](https://github.com/Deltares/Ribasim/pull/1677) +- Add icon to `ribasim.exe` on Windows. [#1712](https://github.com/Deltares/Ribasim/pull/1712) +- Save QGIS styling in the model database. [#1713](https://github.com/Deltares/Ribasim/pull/1713) +- Add Delwaq coupling guide. [#1619](https://github.com/Deltares/Ribasim/pull/1619) +- Solver speedup due to backtracking relaxation. [#1761](https://github.com/Deltares/Ribasim/pull/1761) +- Reject adding a duplicate edge in Python. [#1719](https://github.com/Deltares/Ribasim/pull/1719) +- Support transient UserDemand return factor. [#1727](https://github.com/Deltares/Ribasim/pull/1727) +- Document the interpolation of input data. [#1720](https://github.com/Deltares/Ribasim/pull/1720) +- Automate Jacobian sparsity detection. [#1606](https://github.com/Deltares/Ribasim/pull/1606) +- Support specifying the `edge_id` as `model.edge.add(a, b, edge_id=5)`. [#1737](https://github.com/Deltares/Ribasim/pull/1737) +- Use [https://ribasim.org/](https://ribasim.org/) to host our documentation. [#1736](https://github.com/Deltares/Ribasim/pull/1736) +- Validate geometry types in Python. [#1760](https://github.com/Deltares/Ribasim/pull/1760) +- Add relationships between tables in QGIS. [#1755](https://github.com/Deltares/Ribasim/pull/1755) +- Support migrating from older Ribasim versions in Python. [#1764](https://github.com/Deltares/Ribasim/pull/1764) +- Add quick start guide to docs. [#1787](https://github.com/Deltares/Ribasim/pull/1787) +- Add `min_upstream_level` and `max_downstream_level` to Pump and Outlet. [#1792](https://github.com/Deltares/Ribasim/pull/1792) +- Add `max_downstream_level` to TabulatedRatingCurve. [#1795](https://github.com/Deltares/Ribasim/pull/1795) +- Validate edge connections in Python. [#1765](https://github.com/Deltares/Ribasim/pull/1765) +- Add low storage reduction factor to ManningResistance. [#1796](https://github.com/Deltares/Ribasim/pull/1796) + ### Changed +- Refactor of the core to ensure smaller water balance errors. [#1819](https://github.com/Deltares/Ribasim/pull/1819) +- Make `node_id` globally unique. [#1717](https://github.com/Deltares/Ribasim/pull/1717) +- Make the Node ID the index of the Node table, and Edge ID for Edge. [#1737](https://github.com/Deltares/Ribasim/pull/1737) +- Make more Python functions private. [#1702](https://github.com/Deltares/Ribasim/pull/1702) +- Put the contents of the CLI zips in a folder. [#1722](https://github.com/Deltares/Ribasim/pull/1722) +- Changed water balance error definition. [#1767](https://github.com/Deltares/Ribasim/pull/1767) +- Disallow missing priority parameter when using allocation. [#1745](https://github.com/Deltares/Ribasim/pull/1745) +- Rename Outlet's `min_crest_level` to `min_upstream_level`. [#1788](https://github.com/Deltares/Ribasim/pull/1788) +- Only allow flow under gravity in TabulatedRatingCurve. [#1795](https://github.com/Deltares/Ribasim/pull/1795) +- Use `dtype_backend="pyarrow"` for Pandas DataFrames. [#1781](https://github.com/Deltares/Ribasim/pull/1781) + +### Fixed +- Remove oscillations in ManningResistance. [#1750](https://github.com/Deltares/Ribasim/pull/1750) +- Fix GeoPandas CRS warning. [#1810](https://github.com/Deltares/Ribasim/pull/1810) + +## [v2024.10.0] - 2024-07-23 + +For this release we said goodbye to the problematic FractionalFlow node, but welcome the ContinuousControl as a long requested feature. + +### Added +- Control: Add ContinuousControl node type. [#1602](https://github.com/Deltares/Ribasim/pull/1602) +- Control: Support listening to flow through connector nodes. [#1594](https://github.com/Deltares/Ribasim/pull/1594) +- Validate that TabulatedRatingCurve levels are above Basin bottom. [#1607](https://github.com/Deltares/Ribasim/pull/1607) +- Validate that Outlet minimum upstream levels are above Basin bottom. [#1607](https://github.com/Deltares/Ribasim/pull/1607) +- Always show convergence bottlenecks. [#1636](https://github.com/Deltares/Ribasim/pull/1636) +- Docstrings for Ribasim Python. [#1643](https://github.com/Deltares/Ribasim/pull/1643) +- Allocate to UserDemand from directly connected Basin if possible. [#1581](https://github.com/Deltares/Ribasim/pull/1581) +- Add `basin_state.arrow` results. [#1626](https://github.com/Deltares/Ribasim/pull/1626) +- Also write stacktraces to `ribasim.log`. [#1653](https://github.com/Deltares/Ribasim/pull/1653) + +### Changed +- Require QGIS 3.34 (LTR) or newer for Ribasim QGIS plugin. + +### Fixed +- Compatibility with latest NumPy, Pandera and PyArrow releases. [#1618](https://github.com/Deltares/Ribasim/pull/1618) +- LevelDemand can now be without `min_level` or `max_level`. [#1629](https://github.com/Deltares/Ribasim/pull/1629) + +### Removed +- Removed unused urban runoff variable from Basin. [#1611](https://github.com/Deltares/Ribasim/pull/1611) +- Removed unneeded static table from Terminal. [#1624](https://github.com/Deltares/Ribasim/pull/1624) +- Removed FractionalFlow node. [#1616](https://github.com/Deltares/Ribasim/pull/1616) + ## [v2024.9.0] - 2024-06-20 ### Added - Support for concentration state and time for Delwaq coupling. -- Show exact commit on `ribasim --version` if it is not a release. #1479 +- Show exact commit on `ribasim --version` if it is not a release. [#1479](https://github.com/Deltares/Ribasim/pull/1479) ### Changed - Optimized performance. - Documentation has been overhauled to be more user-friendly. -- Stricter TabulatedRatingCurve validation. #1469 -- Stricter Basin / profile validation. #1486 -- Allocation objective function now gives equal ratios during shortage. #1386 +- Stricter TabulatedRatingCurve validation. [#1469](https://github.com/Deltares/Ribasim/pull/1469) +- Stricter Basin / profile validation. [#1486](https://github.com/Deltares/Ribasim/pull/1486) +- Allocation objective function now gives equal ratios during shortage. [#1386](https://github.com/Deltares/Ribasim/pull/1386) ### Fixed -- Don't require unique node IDs. #1513 +- Don't require unique node IDs. [#1513](https://github.com/Deltares/Ribasim/pull/1513) +- Fix QGIS crash on plugin initialization. [#1580](https://github.com/Deltares/Ribasim/pull/1580) ## [v2024.8.0] - 2024-05-14 ### Added -- There is more validation on the edges. #1434 -- If the model does not converge and the used algorithm supports it, we log which Basins don't converge. #1440 +- There is more validation on the edges. [#1434](https://github.com/Deltares/Ribasim/pull/1434) +- If the model does not converge and the used algorithm supports it, we log which Basins don't converge. [#1440](https://github.com/Deltares/Ribasim/pull/1440) ### Changed -- If negative storages inadvertently happen, we now throw an error. #1425 -- Users of the QGIS plugin need to remove the old version to avoid two copies due to #1453. +- If negative storages inadvertently happen, we now throw an error. [#1425](https://github.com/Deltares/Ribasim/pull/1425) +- Users of the QGIS plugin need to remove the old version to avoid two copies due to [#1453](https://github.com/Deltares/Ribasim/pull/1453). ### Fixed -- Performance improvements have been a focus of this release, giving up to 10x faster runs. #1433, #1436, #1438, #1448, #1457 -- The CLI exe is now always in the root of the zip and makes use of the libribasim shared library. #1415 +- Performance improvements have been a focus of this release, giving up to 10x faster runs. [#1433](https://github.com/Deltares/Ribasim/pull/1433), [#1436](https://github.com/Deltares/Ribasim/pull/1436), [#1438](https://github.com/Deltares/Ribasim/pull/1438), [#1448](https://github.com/Deltares/Ribasim/pull/1448), [#1457](https://github.com/Deltares/Ribasim/pull/1457) +- The CLI exe is now always in the root of the zip and makes use of the libribasim shared library. [#1415](https://github.com/Deltares/Ribasim/pull/1415) diff --git a/docs/concept/allocation.qmd b/docs/concept/allocation.qmd index c3274e15f..0901ba7d3 100644 --- a/docs/concept/allocation.qmd +++ b/docs/concept/allocation.qmd @@ -7,11 +7,13 @@ Allocation is the process of assigning an allocated flow rate to demand nodes in The allocation problem is solved per subnetwork (and main network) of the Ribasim model. Each subnetwork is used to formulate an optimization problem with the [JuMP](https://jump.dev/JuMP.jl/stable/) package, which is solved using the [HiGHS solver](https://highs.dev/). For more in-depth information see also the example of solving the maximum flow problem with `JuMP.jl` [here](https://jump.dev/JuMP.jl/stable/tutorials/linear/network_flows/#The-max-flow-problem). +Before the optimization for each priority there is a simple step that tries to allocate flow to the `UserDemand` nodes from the their directly connected basin. + :::{.callout-note} within this *Allocation* section the main network is also considered to be a subnetwork. ::: -# The high level algorithm +# The high level algorithm {#sec-high-level-algorithm} The allocation algorithm contains 3 types of optimization: - `internal_sources`, where flows are allocated within a subnetwork by only using sources inside the subnetwork; @@ -249,7 +251,6 @@ allocation_model = p.allocation.allocation_models[1] t = 0.0 priority_idx = 1 -Ribasim.set_flow!(p.graph, NodeID(:FlowBoundary, 1, p), NodeID(:Basin, 2, p), 1.0) Ribasim.set_objective_priority!(allocation_model, p, u, t, priority_idx) Ribasim.set_initial_values!(allocation_model, p, u, t) diff --git a/docs/concept/concept.qmd b/docs/concept/concept.qmd index 59eff17ce..dca23543d 100644 --- a/docs/concept/concept.qmd +++ b/docs/concept/concept.qmd @@ -11,6 +11,7 @@ Besides a model simulation core, Ribasim also includes tooling to assist in buil The model and its results provides insights to decision makers, enabling them to build consensus amongst water users and make informed decisions about how to manage water resources optimally. The model concept of Ribasim is composed of multiple layers: + - a physical layer representing water bodies and associated infrastructure as well as abstractions, - a rule-based control layer to manage the infrastructure, and - (optionally) a priority-based allocation layer to take centralized decisions on user abstractions. @@ -26,7 +27,7 @@ This version of Ribasim is the follow up of the legacy Fortran kernel of Ribasim ## Physical layer {#sec-physical} -To represent the physical characteristics of the water system in an area, Ribasim allows you to divide the area into a network of connected representative elementary watersheds ([Reggiani, Sivapalan, and Majid Hassanizadeh 1998](https://deltares.github.io/Ribasim/#ref-REGGIANI1998367)). +To represent the physical characteristics of the water system in an area, Ribasim allows you to divide the area into a network of connected representative elementary watersheds [@REGGIANI1998367]. Within Ribasim, these elements are called basins, which are essentially buckets or reservoirs holding an aggregated volume of water bodies in an area. Basins are chained in a graph with connector nodes determining the exchange of water between the basins. These connector nodes can represent open water connections (e.g. bifurcations or resistance in a free flowing open water channel) or infrastructure elements such as pumps, gates or weirs. diff --git a/docs/concept/core.qmd b/docs/concept/core.qmd index 93748cf9c..5dbf510b5 100644 --- a/docs/concept/core.qmd +++ b/docs/concept/core.qmd @@ -13,7 +13,7 @@ can be found in the [Ribasim repository](https://github.com/Deltares/Ribasim) un `core/` folder. For developers we also advise to read the [developer documentation](/dev/core.qmd). Information on coupling can be found [here](/guide/coupling.qmd). -An overview of all components is given in the [Get Started](/tutorial/index.qmd#sec-components) section. +An overview of all components is given in the [installation](/install.qmd#sec-components) section. # The simulation loop {#sec-simulationloop} @@ -119,3 +119,30 @@ end allocation_subNetwork->>user_demand: allocated user_demand->>basin: abstracted ``` + +# Substance (tracer) concentrations + +::: {.callout-caution} +This is an unsupported experimental feature and is disabled by default. +We advise to use the [Delwaq coupling](@sec-waterquality) for tracer calculations. +If you're interested in using this experimental feature, please [contact us](/contact.qmd). +::: + +Ribasim can calculate concentrations of conservative tracers (i.e. substances that are non-reactive). +It does so by calculating the mass transports by flows for each timestep, in the `update_cumulative_flows!` callback. +Specifically, for each Basin at each timestep it calculates: + +- all mass inflows ($flow * source\_concentration$) given the edge inflows +- update the concentrations in the Basin based on the added storage ($previous storage + inflows$) +- all mass outflows ($flow * basin\_concentration\_state$) give the edge outflows +- update the concentrations in the Basin based on the current storage + +We thus keep track of both mass and concentration of substances for each Basin. +Note that we have not added the substance mass to the states, and we assume that concentrations of flows are piecewise constant over a timestep. +This excludes the use of tracer injections. + +By default the following source tracers are enabled. + +- Continuity (mass balance, fraction of all water sources, sum of all other source tracers) +- Initial (fraction of initial storages) +- LevelBoundary, FlowBoundary, UserDemand, Drainage, Precipitation (fraction of different boundaries) diff --git a/docs/concept/equations.qmd b/docs/concept/equations.qmd index 36aff1b81..3f08ba269 100644 --- a/docs/concept/equations.qmd +++ b/docs/concept/equations.qmd @@ -3,76 +3,152 @@ title: "Equations" --- # Formal model description -In this section we give a formal description of the problem that is solved by Ribasim. -The problem is of the form +In this section we give a formal description of the problem that is solved by Ribasim. The problem is of the form +$$ + \frac{\text{d}\mathbf{u}}{\text{d}t} = f(\mathbf{u},p(t),t), \quad t \in [t_0, t_\text{end}], +$$ + +which is a system of coupled first order differential equations. + +The model is given by a directed graph, consisting of a set of node IDs (vertices) $V$ and edges $E$, consisting of ordered pairs of node IDs. +We denote the subset of the nodes given by the Basins $B \subset V$, and the subset of nodes that prescribe flow $N \subset V$. + +The states $\mathbf{u}$ of the model are given by cumulative flows since the start of the simulation as prescribed by the nodes $N$: +$$ + u_n(t) = \int_{t_0}^t q_n\text{d}t' \quad \forall n \in N, +$$ +as well as by the Basin forcings: +$$ + u_b^\text{forcing}(t) = \int_{t_0}^t q_b^\text{forcing}\text{d}t' \quad \forall b \in B. +$$ +Because of this definition, the initial conditions of all states are simple: $$ -\frac{\text{d}\mathbf{u}}{\text{d}t} = f(\mathbf{u},p(t),t),\quad t \in [t_0,t_\text{end}], + u_i(t_0) = 0 \quad \forall i. $$ -i.e. a system of coupled first order ordinary differential equations, with initial condition $\mathbf{u}(t_0)= \mathbf{u}_0$ and time dependent input data denoted by $p(t)$. +From these cumulative flows, the storage in each Basin can be determined at each point in time: +$$ + S_b(t) = S_i(0) + S^\text{exact}(t) - u_b^\text{forcing}(t) + \sum_{n\;|\;(n,b)\in E} u(t) - \sum_{n\;|\;(b,n)\in E} u(t), +$$ -The model is given by a directed graph, consisting of a set of nodes (or vertices) $V$ and edges $E$. -Let $V$ be the set of node IDs and let $E$ be the set of ordered tuples $(i,j)$ meaning that node $i$ is connected to node $j$. +i.e. the storage is given by: -We can split the set of nodes into two subsets $V = B \cup N$, where $B$ is the set of basins and $N$ is the set of non-basins. -The basins have an associated storage state and the non-basins dictate how water flows to or from basins. +- the initial storage; +- plus the exactly integrated flows (more on that below); +- minus the cumulative outgoing forcings; +- plus the cumulative horizontal inflows; +- minus the cumulative horizontal outflows. -$\mathbf{u}(t)$ is given by all the states of the model, which are (currently) the storage of the basins and the integral terms of the PID controllers, the latter being explained in [PID equations](/reference/node/pid-control.qmd#equations). +From these storages in combination with the Basin profiles the Basin levels $h$ are computed. +The relationship between the profile and the storage is given by +$$ + S_b = \int_{h_0}^h A_b(\ell)\text{d}\ell, +$$ -Given a single basin with node ID $i \in B$, the equation that dictates the change of its storage over time is given by +where $A_b$ is the linear interpolation of the area as a function of the level. +These levels are then inputs for determining the flows prescribed by the nodes $N$. From this relation it also follows that $$ -\frac{\text{d}u_i}{\text{d}t} = -\sum_{(i',j') \in E | j' = i} Q_{i',j'} - \sum_{(i',j') \in E | i' = i} Q_{i',j'} + F_i(p,t). + \frac{\text{d}h}{\text{d}t} = \frac{1}{A_b}, $$ +and so areas of zero are not allowed in the Basin profiles. -Here $Q_{i,j}$ is the flow along an edge, where the graph direction dictates positive flow. -So the first term denotes flow towards the basin, the second one denotes flow away from the basin, and the third term denotes external forcing. -$F_i(p,t)$ is given by input data, and $Q_{i' ,j'}$ is determined by the type of nodes that connect to that edge. +## The PID control integral state -The various node and forcing types that the model can contain are explained in the section [Natural water balance terms](/concept/equations.qmd#natural-water-balance-terms). +There's one other type of state, which is not a cumulative flow but a cumulative error. +This is the error integral for PID control, further explained in [PID equations](/reference/node/pid-control.qmd#equations). -::: {.callout-note} -In general a model has more nodes than states, so in the Julia core there is a distinction between node indices and state indices. For simplicity these are treated as equal in the documentation when it comes to basins and their storage. -::: +## Exactly integrating flows to minimize the number of states -## The Jacobian +The more states the problem has, the more time it takes to solve it. +Therefore we want to minimize the number of states. +Flows do not have to be states when they can be integrated over time exactly because they do not depend on the other states. +This is true for FlowBoundary nodes, and Basin precipitation (which uses a fixed basin area) and drainage. -The Jacobian is a $n\times n$ matrix where $n$ is the number of states in the simulation. The Jacobian is computed either using finite difference methods or automatic differentiation. For more details on the computation of the Jacobian and how it is used in the solvers see [numerical considerations](numerics.qmd). +## The Jacobian +The Jacobian is an $N \times N$ matrix where $N$ is the number of states in the simulation. +It is computed as part of implicit time stepping methods. +There are 2 different methods available for computing this matrix: finite difference or automatic differentiation. +For more details on the computation of the Jacobian and how it is used in the solvers see [numerical considerations](numerics.qmd). The entries of the Jacobian $J$ are given by $$ -J[i,j] = \frac{\partial f_j}{\partial u_i}, + J_{i,j} = \frac{\partial f_j}{\partial u_i}, $$ +i.e. $J_{i,j}$ quantifies how $f_j$. the time derivative of state $j$, changes with respect to changes in state $i$. Most of these entries are $0$, because flows in distant parts of the model do not depend on each other. -hence $J[i,j]$ quantifies how $f_j$, the derivative of state $j$ with respect to time, changes with a change in state $i$. If a node creates dependendies between basin storages (or other states), then this yields contributions to the Jacobian. If $j$ corresponds to a storage state, then +## The water balance error +The water balance error quantifies how well the water volume in the model is conserved for each Basin over an output save period, i.e. whether no water erroneously appears or disappears. It looks at the storage rate $$ -J[i,j] = \sum_{(i',j') \in E | j' = i} \frac{\partial Q_{i',j'}}{\partial u_i} - \sum_{(i',j') \in E | i' = i} \frac{\partial Q_{i',j'}}{\partial u_i}, + \text{storage rate} = \frac{\Delta S_b}{\Delta t} $$ -Most of these terms are always $0$, because a flow over an edge only depends on a small number of states. Therefore the matrix $J$ is very sparse. +in a Basin over a time period $\Delta t$ and compares that to the total inflows and outflows of that Basin over that period. More precisely, we first compute the total inflow and outflow, where: + +- $\text{total inflow}$: the precipitation, drainage and horizontal flows into the Basin; +- $\text{total outflow}$: the evaporation, infiltration and horizontal flows out of the Basin. -For many contributions to the Jacobian the derivative of the level $l(u)$ of a basin with respect to its storage $u$ is required. To get an expression for this, we first look at the storage as a function of the level: +Whether a flow is an inflow or an outflow depends on whether the flow contributes to or takes from the Basin storage, which means that this is independent of the edge direction. This is determined for each solver timestep individually. + +Then from this we compute the errors: $$ -u(l) = \int_{l_0}^l A(\ell)d\ell. + \begin{align} + \text{balance error} =&& \text{storage rate} - (\text{total inflow} - \text{total outflow}) \\ + \text{relative error}=&& \frac{\text{absolute error}}{0.5(\text{total inflow} + \text{total outflow})} + \end{align} $$ +Hence the reference used for computing the relative error is the average of the total inflow and total outflow of the Basin (which are both non-negative). + +The default tolerances are $0.001 \text{ m}^3$ for the balance error and $0.01$ for the relative error, which should not be exceeded for realistic models. + +In extreme cases where the storage rate is many orders of magnitude smaller than the storage itself, these computations can have floating point truncation errors which can lead to large relative errors. This is however only when the storage is roughly $\geq 10^{15}$ times bigger than the storage rate. + +### Example calculation + +Say we have the following model: + +![](https://s3.deltares.nl/ribasim/doc-image/concept/equations/subnetwork.png){fig-align="left"} + +and we want to calculate the water balance error for Basin 6. We have the following data: + +- Time period length: $10.0 \text{ s}$ +- Basin storage start: $100.0 \text{ m}^3$ +- Basin storage end: $50.0 \text{ m}^3$ +- UserDemand #11 inflow average: $10.0 \text{ m}^3/\text{s}$ +- UserDemand #11 outflow average: $5.0 \text{ m}^3/\text{s}$ +- Outlet #7 flow average: $- 3.5 \text{ m}^3/\text{s}$ +- Outlet #11 flow average: $4.0 \text{ m}^3/\text{s}$ + +And so we get -From this we obtain $u'(l) = A(l)$ and thus $$ -\frac{\text{d}l}{\text{d}u} = \frac{1}{A(u)}. +\begin{align} + \text{storage rate} = && \frac{50.0 - 100.0}{10.0} &= & -6.0 \text{ m}^3/\text{s} \\ + \text{total inflow} = && 5.0 + 3.5 &= & 8.5 \text{ m}^3/\text{s}\\ + \text{total outflow} = && 10.0 + 4.0 &= & 14.0 \text{ m}^3/\text{s}\\ + \text{balance error} = && -6.0 - (8.5 - 14.0) &= & -0.5 \text{ m}^3/\text{s}\\ + \text{relative error} = && \frac{-0.5}{8.5 + 14.0} &\approx & -0.022 +\end{align} $$ +Note that the balance error and relative error are negative, but we use their absolute value to compare to the respective tolerances. + +## Why this formulation + +You might wonder why in the above explanation the states are given by the cumulative flows and not by the Basin storages, which is arguably conceptually simpler. +The reason is that we do not just want to model the storages in the Basins over time, but we also want accurate output of each individual flow, e.g. to model the spread of pollutants. -:::{.callout-note} -The presence of division by the basin area means that areas of size zero are not allowed. -::: +When the states are given by the storages, generally the individual flows can not accurately be computed from that as a post processing step, because there are more flows than storages. +Also, we can only compute flows at individual points in time explicitly, not over a whole interval. +When the states are given by the cumulative flows however, the output of the problem solve gives these flows directly, and from those the storage over time can be computed accurately. +Hence in short, the formulation above gives more information than a formulation with Basin storages as states. -# Numerical solution +## Numerical solution -Ribasim uses OrdinaryDiffEq.jl to provide a numerical solution to the water balance equations. +Ribasim uses [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl/) to provide a numerical solution to the water balance equations. Changes to forcings or parameters such as precipitation, but also the allocated water abstraction is managed through the use of callback functions [@callbacks]. In a coupled run, the exchanges with MODFLOW 6 are also managed via the use of a callback function. For more a more in-depth discussion of numerical computations see [Numerical considerations](numerics.qmd). @@ -81,8 +157,8 @@ For more a more in-depth discussion of numerical computations see [Numerical con There are many things that can influence the calculations times, for instance: -- [Solver tolerance](https://diffeq.sciml.ai/stable/basics/faq/#What-does-tolerance-mean-and-how-much-error-should-I-expect): - By default we use absolute and relative tolerances of `1e-6` and `1e-5` respectively. +- [Solver tolerance](https://docs.sciml.ai/DiffEqDocs/stable/basics/faq/#What-does-tolerance-mean-and-how-much-error-should-I-expect): + By default both the absolute and relative tolerance is `1e-7`. - [ODE solvers](https://diffeq.sciml.ai/stable/solvers/ode_solve/): The `QNDF` method we use is robust to oscillations and massive stiffness, however other solvers should be tried as well. - Forcing: Every time new forcing data is injected into the model, it needs to pause. diff --git a/docs/concept/index.qmd b/docs/concept/index.qmd deleted file mode 100644 index 1d8a24132..000000000 --- a/docs/concept/index.qmd +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: "Concepts" ---- diff --git a/docs/concept/modelconcept.qmd b/docs/concept/modelconcept.qmd index 96361f5f7..c9e46bea9 100644 --- a/docs/concept/modelconcept.qmd +++ b/docs/concept/modelconcept.qmd @@ -26,6 +26,10 @@ $$ \frac{\mathrm{d}S}{\mathrm{d}t} = P + ET + Q_{rest} $$ +We don't use these equations directly. +Rather, we use an equivalent formulation where solve for the cumulative flows instead of the Basin storages. +For more details on this see [Equations](equations.qmd). + ## Time The water balance equation can be applied on many timescales; years, weeks, days or hours. diff --git a/docs/concept/numerics.qmd b/docs/concept/numerics.qmd index 22d8c01f8..35e887204 100644 --- a/docs/concept/numerics.qmd +++ b/docs/concept/numerics.qmd @@ -10,13 +10,14 @@ $$ \end{cases}, $$ {#eq-prob} -where $\mathbf{f}$ denotes `water_balance!` and $\mathbf{u_0}$ the initial storages (and the PID integrals which start out at $0$). +where $\mathbf{f}$ denotes `water_balance!` and $\mathbf{u_0} = \mathbf{0}$ the initial cumulative flows (and the PID integrals which also start out at $0$). -In general $\mathbf{f}$ is a non-linear function in $\mathbf{u}$. These non-linearities are introduced by: +In general $\mathbf{f}$ is a non-linear function in $\mathbf{u}$. These non-linearities are introduced by e.g.: - `ManningResistance` nodes; - `Basin` profiles; -- `TabulatedRatingCurve` Q(h) relations. +- `TabulatedRatingCurve` Q(h) relations +- `ContinuousControl` functions. The problem @eq-prob can be solved by various numerical time-integration methods. To do this the time interval $[t_0,t_\text{end}]$ is discretized into a finite number of time points $t_0 < t_1 < \ldots < t_N = t_\text{end}$ for which approximate solutions $\mathbf{w}_n \approx \mathbf{u}(t_n)$ are computed. In general we do not assume a fixed timestep (the interval between successive points in time). Rather, the solver attempts to make as large a step as possible while keeping error tolerances within requirements. The [solver settings](/reference/usage.qmd#sec-solver-settings) section details the available configuration options. @@ -100,7 +101,7 @@ where the continuity of this term is given by the least continuous of $Q$ and $h ## Empty basins -[Reduction factors](/concept/equations.qmd#the-reduction-factor) are introduced at several points in the definition of $\mathbf{f}$ to smooth out otherwise discontinuous transitions (e.g. the flow rate of a pump going to zero when the source basin dries out). +[Reduction factors](/reference/node/basin.qmd#sec-reduction-factor) are introduced at several points in the definition of $\mathbf{f}$ to smooth out otherwise discontinuous transitions (e.g. the flow rate of a pump going to zero when the source basin dries out). If flows are not too large with respect to basin storage, this will prevent basins from reaching 0. Rather, the basin gets a very small storage. The reduction factors help with performance, but are also an important tool to avoid getting negative storage in basins. diff --git a/docs/contact.qmd b/docs/contact.qmd new file mode 100644 index 000000000..6e6a7552e --- /dev/null +++ b/docs/contact.qmd @@ -0,0 +1,5 @@ +--- +title: "Contact us" +--- + +You can contact us [via email](mailto:ribasim.info@deltares.nl). diff --git a/docs/dev/addnode.qmd b/docs/dev/addnode.qmd index 15021d0be..e64d28b21 100644 --- a/docs/dev/addnode.qmd +++ b/docs/dev/addnode.qmd @@ -121,22 +121,22 @@ In `python/ribasim/ribasim/config.py` add - a class of the following form with all schemas associated with the node type: ```python -class NewNodeType(NodeModel): +class NewNodeType(MultiNodeModel): static: TableModel[NewNodeTypeStaticSchema] = Field( default_factory=TableModel[NewNodeTypeStaticSchema], json_schema_extra={"sort_keys": ["node_id"]}, ) ``` -In `python/ribasim/ribasim/__init__.py` add +In `python/ribasim/ribasim/nodes/__init__.py` add -- `NewNodeType` to the imports from `ribasim.config`; +- `NewNodeType` to the imports from `ribasim.nodes`; - `"NewNodeType"` to `__all__`. In `python/ribasim/ribasim/model.py`, add - `NewNodeType` to the imports from `ribasim.config`; -- new_node_type as a parameter and in the docstring of the `Model` class. +- new_node_type as a parameter of the `Model` class. In `python/ribasim/ribasim/geometry/node.py` add a color and shape description in the `MARKERS` and `COLORS` dictionaries. @@ -144,8 +144,7 @@ In `python/ribasim/ribasim/geometry/node.py` add a color and shape description i The script `ribasim_qgis/core/nodes.py` has to be updated to specify how the new node type is displayed by the QGIS plugin. Specifically: -- Add a color and shape description in the `MARKERS` dictionary in `Node.renderer`, - consistent with the entries added above; +- Update the .qml style (using QGIS) in the styles folder for the specific Node. - Add an input class per schema, e.g. ```python diff --git a/docs/dev/allocation.qmd b/docs/dev/allocation.qmd new file mode 100644 index 000000000..44800e7d9 --- /dev/null +++ b/docs/dev/allocation.qmd @@ -0,0 +1,280 @@ +--- +title: "Allocation" +--- +# Overview of allocation implementation {#sec-allocation-overview} +In this document, the allocation workflow is explained. Below is an overview of it. +```{mermaid} +flowchart TD + subgraph update_allocation + direction TB + G[update mean flows]-->E[collect demand] + E-->F[allocate] + end + style update_allocation fill:#9ff + C(Begin)-->A[Initialization allocation] + A--> update_allocation --> H[\end of time?\] + H--> |No| update_allocation + H --> |Yes| D(End) +``` + +If allocation is used in a model, [Allocation structs](#sec-allocation-struct) are created. +The allocation struct stores the data that is needed for the calculations and stores also the results of the calculation. +In allocation, optimization is an essential part. +`JuMP.jl` is used to model and solve the optimization problems that are defined by allocation. +The [AllocationModel struct](#sec-allocation-model-struct) is used for constructing the JuMP model. +When an instance of `AllocationModel` is created, a JuMP optimization model is defined and initialized in the instance. +More details on how allocation interacts with `JuMP.jl` is explained [here](#sec-jump-problem). + +After initialization, as the simulation starts, the allocation problem is solved and updated after every allocation timestep (which is specified in the TOML). +With every allocation timestep a new optimization problem is formulated and solved, using the latest available (simulation) model conditions and forcing and demand predictions. + +The update of allocation (`update_allocation`) is repeating and spread into three parts: + +- Updating the mean flows. The mean flow data is only used only for output, not used by any internal functions. +- ["Collect demand"](/concept/allocation.qmd#sec-high-level-algorithm). This step initialize and solve the optimization problems that collects the demand from the subnetworks. +- ["Allocate"](/concept/allocation.qmd#sec-high-level-algorithm). This step solves the optimization problems that allocates the demand. For the main network this step allocates to the subnetworks and demand nodes that are in the main network. For the subnetwork this step allocates to the demand nodes. + +The steps "collect demand" and "allocate" correspond to the function `collect_demand` and `allocate_demand` in the code. + +The iteration stops when it reaches the end time step. + +## The `Allocation` struct {#sec-allocation-struct} + +The `Allocation` struct stores necessary data and calculation results. + +|field | type | description| +|------------ | -------- |---------------------------------------- | +|subnetwork_ids | Vector{Int32} | The unique sorted allocation network IDs| +|allocation_models | AllocationModel | The allocation models for the main network and subnetworks corresponding to subnetwork_ids| +|main_network_connections |Vector{Vector{Tuple{NodeID, NodeID}}} | (from_id, to_id) from the main network to the subnetwork per subnetwork| +|priorities |Vector{Int32}| All used priority values.| +|subnetwork_demands | Dict{Tuple{NodeID, NodeID}, Vector{Float64}} | The demand of an edge from the main network to a subnetwork| +|subnetwork_allocateds |Dict{Tuple{NodeID, NodeID}, Vector{Float64}} | The allocated flow of an edge from the main network to a subnetwork| +|mean_input_flows | Dict{Tuple{NodeID, NodeID}, Float64} | Flows averaged over Δt_allocation over edges that are allocation sources| +|mean_realized_flows | Dict{Tuple{NodeID, NodeID}, Float64} | Flows averaged over Δt_allocation over edges that realize a demand| +|record_demand | | A record of demands and allocated flows for nodes that have these| +|record_flow | | A record of all flows computed by allocation optimization, eventually saved to output file| + +## The `AllocationModel` struct {#sec-allocation-model-struct} + +The `AllocationModel` struct has all the data that is needed for the JuMP optimization problem. + +|field | type | description| +|------------ | -------- |---------------------------------------- | +|subnetwork_id |Int32 |The ID of this allocation network| +|capacity | JuMP.Containers.SparseAxisArray | The capacity per edge of the allocation network, as constrained by nodes that have a max_flow_rate| +|problem | JuMP.Model | The JuMP.jl model for solving the allocation problem| +|Δt_allocation | Float64 | The time interval between consecutive allocation solves | + +## JuMP problem interaction {#sec-jump-problem} +When working with optimization problems using JuMP, there are three fundamental components that need to be defined: + +- Optimization variables: These are the [variables](https://jump.dev/JuMP.jl/stable/api/JuMP/#@constraints) that are optimized in the allocation problem formulation. +They are defined using the [`@variable`](https://jump.dev/JuMP.jl/stable/api/JuMP/#@variables) macro. +For example, to specify the flow rates in all the edges in the allocation network as variables: + +```julia +problem[:F] = JuMP.@variable(problem, F[edge = edges] >= 0.0) +``` + +More details about setting up variables in allocation can be found in the section [below](#sec-optimization-problem). + +- Constraints: These are the constraints that the optimization variables must satisfy. +They are defined using the [`@constraint`](https://jump.dev/JuMP.jl/stable/api/JuMP/#@constraint) macro. +The definition of the edge capacity constraints is shown in section [below](#sec-constraints-and-capacities). +`add_constraints_...` functions are used to [add constraints](#sec-initial-constraints) to the optimization problem. +The [initial value of the constraints](#sec-constraints-and-capacities) is set in the function `set_initial_values_...`. +During the iteration, the constraints are updated based on the current state of the allocation network. +When [looping over priorities](#updating-capacities), the constraints are updated by the function `adjust_...`. + +- Objective function: This is the function that sets the objective of the optimization problem. +It is defined using the [`@objective`](https://jump.dev/JuMP.jl/stable/api/JuMP/#@objective) macro. + +The functions `JuMP.normalized_rhs` and `JuMP.set_normalized_rhs` are used to read and write the constant right hand side of constraints. + +For example, to update the capacity of one of the edges, `JuMP.normalized_rhs` moves all the constants to the right-hand sides and all variables to the left-hand side and `JuMP.set_normalized_rhs` sets the new right-hand-side value. +```julia +JuMP.set_normalized_rhs( + constraints_capacity[edge_id], + JuMP.normalized_rhs(constraints_capacity[edge_id]) - JuMP.value(F[edge_id]), +) +``` + +Some JuMP data structures are used to store intermediate or result data. For more information, see [JuMP API](https://jump.dev/JuMP.jl/stable/api/JuMP/). + +# Initialization +Initialization of the allocation data structures happens in `allocation_init.jl`. Below the steps of allocation problem initialization are explained. + +For each subnetwork, an allocation problem is formulated, which is stored in the `allocation_models` field mentioned above. + +## Data processing +### Deriving edge capacities +Edge capacities are important constraints in the optimization problem. They set the limit for the flows between the nodes. Therefore, the capacities of all the flow edges in the subnetworks are obtained. The capacity of an edge is given by the smallest `max_flow_rate` of the nodes connected to the edges if these nodes have such a value. The capacities are stored in a `SparseArray` object from `JuMP.jl` called `capacities`, indexed by a tuple of node IDs. + +The function `get_capacity` obtains the capacities of the edges within a subnetwork given a subnetwork ID and the Ribasim model parameters `p`, if the sources of the subnetwork are valid (checked in function `valid_sources`). + +### Handling the connection between the main network and subnetworks +The function `find_subnetwork_connetions` finds the edges that connected the main network to a subnetwork. `subnetwork_demands` and `subnetwork_allocateds` will be created, which stores demands and allocated values for subnetworks as a whole. +`main_network_connections` is a vector of edges that connect a subnetwork with the main network. + +## The optimization problem {#sec-optimization-problem} +### Setting up the optimization variables +There are three types of variables in the optimization problems: + +- flows between the edges in the allocation model +- flows in and out of a basin with a level demand +- flows in and out of nodes that have a buffer, which are nodes that have a flow demand + +The function `add_variables_flow` is used to add the variable of flows between the edges. The variables are obtained from the capacity array. +And variables named by `F($startnode, $endnode)` are created. + +```julia +edges = keys(capacity.data) +problem[:F] = JuMP.@variable(problem, F[edge = edges] >= 0.0) +``` + +In the function `add_variables_basin`, variables that represent flows of those basins that are connected with level demand are defined. +Part of the function is shown in the code block below. +A variable is named `F_basin_in` if the corresponding basin is supplied by a level demand and `F_basin_out` if consumed by a level demand. + +```julia +# Get the node IDs from the subnetwork for basins that have a level demand +node_ids_basin = [ + node_id for + node_id in graph[].node_ids[subnetwork_id] if graph[node_id].type == :basin && + has_external_demand(graph, node_id, :level_demand)[1] +] +problem[:F_basin_in] = + JuMP.@variable(problem, F_basin_in[node_id = node_ids_basin,] >= 0.0) +problem[:F_basin_out] = + JuMP.@variable(problem, F_basin_out[node_id = node_ids_basin,] >= 0.0) +``` + +The last set of optimization variables is the flow edges in and out of the buffer of nodes with a flow demand. It is defined in a similar way to the second set of variables. + +### Setting up initial optimization constraints {#sec-initial-constraints} +All the variables are greater and equal to 0. This is set when the variables are added to the optimization problem. + +Other constraints are `capacity`, `source_user`, `source`, `flow_conservation`, `fractional_flow`, `basin_outflow`, `flow_buffer_outflow` and `flow_demand_outflow`. + +For each set of constraints, a function named `add_constrains_[constraints name]` is created. + +Take `add_constraints_user_source` as an example, the nodes that are relevant for the constraints are added to the optimization problem by calling JuMP.\@constraint. + +```julia +node_ids_user = [node_id for node_id in node_ids if node_id.type == NodeType.UserDemand] + +problem[:source_user] = JuMP.@constraint( + problem, + [node_id = node_ids_user], + F[(node_id, outflow_id(graph, node_id))] <= 0.0, + base_name = "source_user" +) +``` + +# Optimization +Initialization of the data structure is in `allocation_init.jl`, and updating, running and reading the results is in `allocation_optim.jl`. + +## Preparing the optimization problem +### Setting up the objective function +The optimization objective is the sum of three quadratic error terms. +The quadratic terms are defined with the `add_objective_term` function. + +Function `set_objective_priority` sets the objective function based on the main network for a given priority with the following steps: + +- First, it treats the subnetworks as user demand nodes and adds the quadratic terms of the main network. +- Then it loops over all the edges in allocation. +- Based on the type of the node that the edge is pointing to (user demand or flow demand), it adds the corresponding quadratic terms. +- Finally, it does the same to the edges that start from a level demand node. + +### Setting the constraints and capacities +In the function `set_initial_values`, the following capacities and demands are initialized: + +- Source capacities come from the physical layer +- Edge capacities derived from the maximum capacities between the connected nodes +- Basin capacities come from the disk of water above the max level set by a level demand node +- Buffer capacities start at 0 +- User demands fractional return flow starts at 0 +- Demands either come from the Ribasim model or are set via the BMI + +As shown below, these functions set the capacities to the corresponding initial values. + +```julia +set_initial_capacities_source!(allocation_model, p) +set_initial_capacities_edge!(allocation_model, p) +set_initial_capacities_basin!(allocation_model, p, u, t) +set_initial_capacities_buffer!(allocation_model) +set_initial_capacities_returnflow!(allocation_model) + +set_initial_demands_user!(allocation_model, p, t) +set_initial_demands_level!(allocation_model, u, p, t) +set_initial_demands_flow!(allocation_model, p, t) +``` + +These capacities determine the constraints of the optimization problem. +Take `set_initial_capacities_source` as an example, the right-hand-side values of the `source_constraints` are set to the `source_capacity`. + +```julia +for edge_metadata in values(graph.edge_data) + (; edge) = edge_metadata + if graph[edge...].subnetwork_id_source == subnetwork_id + # If it is a source edge for this allocation problem + if edge ∉ main_network_source_edges + # Reset the source to the averaged flow over the last allocation period + source_capacity = mean_input_flows[edge][] + JuMP.set_normalized_rhs( + source_constraints[edge], + # It is assumed that the allocation procedure does not have to be differentiated. + source_capacity, + ) + end + end +end +``` + +Apart from the `set_initial_*` function above, capacities of `inlet` are the allocated capacities from the main network to the subnetworks. +Source constraints will be adapted based on the optimization type. +This function is called separately and thus not part of the `set_initial_values`. + +## Looping over priorities +### Updating capacities {#sec-updating-capacities} +While optimizing a given priority, the function `set_capacities_flow_demand_outflow` updates the constraints `flow_demand_outflow`. +If the current priority is the same as the priority of the flow demand, constraints will be infinite, otherwise 0. +At priorities where there is no flow demand, flow can go freely trough the node. When there is flow demand, flow is directed into the buffer. This is to make sure that flow can go to the node with the flow demand, even though the flow might have nowhere to go after that node. + +The optimization objective function is updated based on the new demands and the given priority. + +If a solution is found by the solver, the allocation result will be updated. And it will be [saved](allocation.qmd#output-data), so the [physical layer](allocation.qmd#communicating-to-the-physical-layer) can make use of it. + +Lastly, capacities and demands are updated, as shown below: + +```julia +adjust_capacities_source!(allocation_model) +adjust_capacities_edge!(allocation_model) +adjust_capacities_basin!(allocation_model) +adjust_capacities_buffer!(allocation_model) +adjust_capacities_returnflow!(allocation_model, p) + +for parameter in propertynames(p) + demand_node = getfield(p, parameter) + if demand_node isa AbstractDemandNode + adjust_demands!(allocation_model, p, priority_idx, demand_node) + end +end +``` + +## Output data +The function `save_demands_and_allocations` saves the demand and the allocated value per demand node. And the function `save_allocation_flows` saves the optimized flows over the edges in the subnetwork. +These values are saved in the `record_demand` and `record_flow` fields of the `Allocation` struct and only written to the output file at the end of the simulation. + +## Communicating to the physical layer +The function `assign_allocations` updates the subnetwork demand if the optimization task is `collect_demands`. +It assigns the allocated amount to the `UserDemand` nodes with the result of the optimization if the optimization task is `allocate`. +Afterwards, it writes the resulting flow to the `Allocation` object. + +### `UserDemand` abstraction +When allocation is active, the amount each `UserDemand` node is allowed to extract from its upstream basin is determined by the allocation algorithm. +See [here](/reference/node/user-demand.qmd) for more details on how allocation updates the `UserDemand` node. + +### Controlling pumps/weirs based on allocation results +N/A and TODO in [this task](https://github.com/Deltares/Ribasim/issues/714). diff --git a/docs/dev/benchmark.qmd b/docs/dev/benchmark.qmd new file mode 100644 index 000000000..7b66aa4fd --- /dev/null +++ b/docs/dev/benchmark.qmd @@ -0,0 +1,36 @@ +--- +title: "Benchmark" +--- + +This document describes how the benchmarking and performance testing of Ribasim is handled. +In Ribasim, the benchmarking includes and regression tests on the test models and regressive performance tests on the production models. + +The idea of regression tests on the test models is to run models with various solvers, run models with a sparse Jacobian and a dense one and compare the outputs. +It will possibly involve production models in the future. +And runtime performance test is lined up for the next step (in [issue #1698](https://github.com/Deltares/Ribasim/issues/1698)). + +The idea of regressive performance tests on the production models is to test the performance of running the production models. +It will report if the new changes in the code decrease the model's performance or result in failed runs. + +# Benchmarking of the test models +## Benchmark the ODE solvers +The benchmarking of the ODE solvers is done by running the test models with different ODE solvers and solver settings and comparing the output with the benchmark. + +The settings include toggling the `sparse` and `autodiff` solver settings. +Currently, 4 models are chosen to undergo the regression tests. +They are `trivial`, `basic`, `pid_control` and `subnetwork_with_sources`. + +The benchmark reference are the output files of a run of the test models with default solver settings. +The output files `basin.arrow` and `flow.arrow` are used for comparison. +Different margins are set for the comparison of the outputs, and the benchmark is considered passed if the output is within the margin. +Since we are still in the process of evaluating the performance of different solvers, the margin is subject to change. + +The regression tests are run on a weekly basis. + +# Benchmarking of the production model +Regressive performance tests on the production models are done by running the production models with the new changes of the code and comparing the runtime performance with the reference run. +The references are the output files of a run of the production models with the default solver settings. +The output file `basin_state.arrow` which records the end states of the basin is used for comparison. +Since the development of the model is still ongoing, the benchmark is subject to change. + +The regressive performance tests are currently run on a weekly basis. diff --git a/docs/dev/callstacks.qmd b/docs/dev/callstacks.qmd new file mode 100644 index 000000000..5bd4fe372 --- /dev/null +++ b/docs/dev/callstacks.qmd @@ -0,0 +1,122 @@ +--- +lightbox: auto +--- + +# Call stacks + +```{julia} +# | code-fold: true +using CairoMakie +using Colors +using Graphs, MetaGraphsNext +using JuliaInterpreter, OrderedCollections + +include("scripts/trace_call.jl") +include("scripts/plot_trace.jl") + +using Ribasim +using Random + +Random.seed!(1); +``` + +The plots below show the call stack within the Julia core for several important entrypoints. The function names are colored by the script in which they are defined, and the lines between the function names have random colors to be able to differentiate between them. Solid lines refer to calls to functions defined in the same script, dashed ones to functions defined in a different script. The plots are of high resolution so zooming in to particular parts is encouraged. + +Note that these graphs are obtained by dynamic analysis, i.e. by running parts of the code with specific inputs. This means that there can be unshown paths through the code that are not reached for these particular inputs. + +## Parameter initialization + +Parameter initialization is the process of reading the parameter values from the input files and storing them in data structures for easy access in the core. Most notable here is the convergence of many paths to `load_structvector` and `parse_static_and_time`, as these are needed for parameter initialization for most node types. + +```{julia} +# | code-fold: true +using SQLite +toml_path = normpath(@__DIR__, "../../generated_testmodels/basic_transient/ribasim.toml") +config = Ribasim.Config(toml_path) +db_path = Ribasim.database_path(config) +db = SQLite.DB(db_path) + +graph, verts = tracecall((Ribasim,), Ribasim.Parameters, (db, config)) +close(db) + +plot_graph( + graph; + squash_methods = [ + :n_neighbor_bounds_flow, + :n_neighbor_bounds_control, + :sort_by_function, + :neighbortypes, + ], +) +``` + +## `water_balance!` + +`water_balance!` is the right hand side function of the system of ODEs that is solved by the Ribasim core (for more details see [here](../concept/equations.qmd#formal-model-description)). The various `formulate_flow!` methods are for flow rates as determined by different node types. + +```{julia} +# | code-fold: true +using OrdinaryDiffEqCore: get_du +model = Ribasim.Model(toml_path) +du = get_du(model.integrator) +(; u, p, t) = model.integrator +graph, verts = tracecall((Ribasim,), Ribasim.water_balance!, (du, u, p, t)) +plot_graph(graph; max_depth = 4) +``` + +## Allocation initialization + +In this part of the code the data structures for allocation are set up. Most endpoints in `allocation_init.jl` set up data structures as defined in [JuMP.jl](https://jump.dev/JuMP.jl/stable/). + +```{julia} +# | code-fold: true +toml_path = normpath( + @__DIR__, + "../../generated_testmodels/main_network_with_subnetworks/ribasim.toml", +) +config = Ribasim.Config(toml_path; allocation_use_allocation = false) +db_path = Ribasim.database_path(config) +db = SQLite.DB(db_path) +p = Ribasim.Parameters(db, config) +graph, verts = tracecall((Ribasim,), Ribasim.initialize_allocation!, (p, config)) +plot_graph(graph) +``` + +## Allocation run + +Running the allocation algorithm consists of running the optimization itself (which is handled in `JuMP.jl`), and all Ribasim functions around it are used for communicating data between the optimization problem and the physical layer, as well as gathering output data. Fore more information on the allocation algorithm see [here](../concept/allocation.qmd). + + +```{julia} +# | code-fold: true +model = Ribasim.Model(toml_path) +graph, verts = tracecall((Ribasim,), Ribasim.update_allocation!, (model.integrator,)) +plot_graph(graph) +``` + +## Discrete control + +Discrete control works by a [`FunctionCallingCallback`](https://docs.sciml.ai/DiffEqCallbacks/stable/output_saving/#DiffEqCallbacks.FunctionCallingCallback), changing parameters when a change in control state is detected (see also [here](../reference/node/discrete-control.qmd)). + +```{julia} +# | code-fold: true +toml_path = + normpath(@__DIR__, "../../generated_testmodels/pump_discrete_control/ribasim.toml") +model = Ribasim.Model(toml_path) +(; u, t) = model.integrator +model.integrator.p.basin.storage0 .= [0.1, 100.0] +graph, verts = + tracecall((Ribasim,), Ribasim.apply_discrete_control!, (u, t, model.integrator)) +plot_graph(graph; prune_from = [:water_balance!], max_depth = 3) +``` + +## Writing output + +Writing output (currently) happens only after the full simulation is finished. For more information on the different output tables see [here](../reference/usage.qmd#results). +```{julia} +# | code-fold: true +toml_path = normpath(@__DIR__, "../../generated_testmodels/basic_transient/ribasim.toml") +model = Ribasim.Model(toml_path) +graph, verts = tracecall((Ribasim,), Ribasim.write_results, (model,)) +plot_graph(graph; max_depth = 4) +``` diff --git a/docs/dev/core.qmd b/docs/dev/core.qmd index a264ad853..5a21900e6 100644 --- a/docs/dev/core.qmd +++ b/docs/dev/core.qmd @@ -4,7 +4,7 @@ title: "Julia core development" # Julia core overview -The computational core is one of the components of Ribasim as illustrated in the [component overview](/tutorial/index.qmd#sec-components). +The computational core is one of the components of Ribasim as illustrated in the [component overview](/install.qmd#sec-components). The computational process can be divided in three phases: diff --git a/docs/dev/index.qmd b/docs/dev/index.qmd index d9e4d0a45..56938e676 100644 --- a/docs/dev/index.qmd +++ b/docs/dev/index.qmd @@ -8,7 +8,7 @@ There is developer documentation for the [Julia core](/dev/core.qmd), the [Basic A guide on how to add a new node type to both is written in [adding node types](/dev/addnode.qmd). [Release process](/dev/release.qmd) describes the steps to follow when creating a new Ribasim release. -# Set up the developer environment +# Setting up the developer environment ## Clone Ribasim diff --git a/docs/dev/qgis_test_plan.qmd b/docs/dev/qgis_test_plan.qmd new file mode 100644 index 000000000..5f4cee10d --- /dev/null +++ b/docs/dev/qgis_test_plan.qmd @@ -0,0 +1,239 @@ +--- +title: "QGIS plugin manual test plan" +--- + +This document describes how to perform a full manual test on the Ribasim QGIS plugin. +Known shortcomings and issues can be documented [here](/known_issues.qmd). +Bugs can be reported on [GitHub](https://github.com/Deltares/Ribasim/issues). + +# Clean slate tests +Before starting with data, perform the following tests to see if the plugin doesn't result in any errors. + +## Enable and disable + +- Open QGIS and navigate to "Plugins > Manage and Install Plugins...": _The plugin management window opens_. +- Navigate to "Installed": _Ribasim plugin is in the list (enabled)_. +- Disable the Ribasim plugin: _Ribasim plugin panel hides if it was open, Ribasim button hides from navigation toolbar_. +- Enable the Ribasim plugin: _Ribasim button shows on the navigation toolbar_. + +## Open and close + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the Ribasim button on the QGIS toolbar: _Ribasim panel hides_. + +## Button states on startup + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- _In the Model tab, the "Add to QGIS" and "Remove from Dataset" buttons are disabled_. +- _In the Nodes tab, all buttons are disabled_. + +❌ [Failing](https://github.com/Deltares/Ribasim/issues/1678) + +# New model tests + +## New and cancel + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name. +- Press "Cancel": _Ensure that no files are created in that location_. + +## New single model + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- _The layers tab shows a group with a "Node" and "Edge" layer, the canvas is empty._ +- _The Ribasim panel shows a Node and Edge layer, the file path is set in the text field, all nodes buttons are enabled_. +- Cleanup: Delete the created files from disk. + +## New model in same folder + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test2"). +- Press OK: _An error is given that the database.gpkg already exists, test2.toml is not written_. +- Cleanup: Delete the created files from disk. + +❌ [Failing](https://github.com/Deltares/Ribasim/issues/1679) + +## New model with same name + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Open test1.toml in a text editor and write "EXTRA_LINE=true" +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _Shows a popup window to ask if you want to overwrite_. +- Press Yes: _An error is given that the database.gpkg already exists, test1.toml is not overwritten (EXTRA_LINE=true) is still in test1.toml_. +- Cleanup: Delete the created files from disk. + +Unsure if this is wanted behavior, as we said we wanted to overwrite the TOML file, and therefore also the database file. +Perhaps we should create folders instead of TOML files only. + +❌ [Failing](https://github.com/Deltares/Ribasim/issues/1681) + +## New model and clean new project cleans Ribasim plugin + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Press "Project > New": _Popup asks to save the project_. +- Press Discard: _Layers tab is emptied, Ribasim panel is emptied_. + +❌ [Failing](https://github.com/Deltares/Ribasim/issues/1682) + +# Model tab button interaction tests + +## Open model twice + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Press the "Open" button in the Model tab: _file navigation window pops up_. +- Open test1.toml: _A new layer group is added to the layers panel_. +- In the Nodes tab press "Basin / profile": _A Basin / profile table layer is added to the last layer group only_. + +Intended behavior: The same model is loaded twice, but there is only a connection on the last loaded model when interacting with the plugin. + +## Add to QGIS button + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Press "Add to QGIS": _Nothing happens_. +- Press the "Edge" layer in the Model tab: _"Add to QGIS" button is disabled_. + +❌ [Failing](https://github.com/Deltares/Ribasim/issues/1683) + +## Remove from Dataset button + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Press the "Edge" layer in the Model tab, press "Remove from Dataset": _Popup shows "Deleting: Edge"_. +- Press "Yes": "Edge" layer is removed from Layers panel and from Model tab. + +Unsure if this is wanted behavior, it is now impossible to load the model afterwards because it no longer contains an Edge layer. +Perhaps better if we only allow removal of the optional tables. See this [bug report](https://github.com/Deltares/Ribasim/issues/1684). + +# Nodes tab button interaction tests + +## Add all tables to new model + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Go to the Nodes tab: _All buttons are enabled_. +- From left to right, top to bottom, press every button to add tables to the layers: _The layer group contains extra layers for every button clicked. Basin / area is a MultiPolygon layer_. +- Navigate to Model tab: _All layers are added to the panel_. +- Press the "Open" button to open the same model once again: _The layers panel adds the model containing all of its layers, the Model tab was refreshed_. + +## Add table twice to new model + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Go to the Nodes tab: _All buttons are enabled_. +- Press the Basin / time button: _A layer is added to the layers panel with that name, the button becomes disabled_. + +❌ [Failing](https://github.com/Deltares/Ribasim/issues/1685) + +# Map interaction tests + +## Add points to Node layer + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Select the Node layer in the Layers tab: _edit buttons in the toolbar become enabled_. +- Edit the layer by pressing the pencil button: _Add Point Feature button becomes enabled_. +- Click in the canvas: _Popup appears with Feature Attributes to fill in_. +- Press OK: _The first Node appears on the map_. +- Click in the canvas again: _Popup appears with Feature Attributes to fill in_. +- Press OK: _The second Node appears on the map_. + +Unexpected behavior: The default type of the nodes is NULL, and therefore undefined. +Should be enforced and validated. +See [issue](https://github.com/Deltares/Ribasim/issues/1688#issuecomment-2265315907). + +## Add edges to Edge layer + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "New" button in the Model tab: _file navigation window pops up_. +- Fill in a name ("test1"). +- Press OK: _A TOML and database file are created on the given location_. +- Select the Node layer in the Layers tab: _edit buttons in the toolbar become enabled_. +- Edit the layer by pressing the pencil button: _Add Point Feature button becomes enabled_. +- Click in the canvas: _Popup appears with Feature Attributes to fill in_. +- Add a node id of 1, press OK: _The first Node appears on the map_. +- Click in the canvas again: _Popup appears with Feature Attributes to fill in_. +- Add a node id of 2, press OK: _The second Node appears on the map_. +- Select the Edge layer in the Layers tab: _edit buttons in the toolbar become enabled_. +- Enable snapping under View > Toolbars > Snapping Toolbars: _Magnet button is enabled and active_. +- Press the Add Line Feature button: _Mouse becomes a crosshair_. +- Snap a line between the two nodes, click the two nodes and then right click to finish: _Popup shows with input, most fields are set to NULL_. +- Press OK: _Line appears on screen between the two nodes_. +- Save the layer's edits: _The line becomes blue_. +- Open the attribute table: _The information shows the from\_node\_id, to\_node\_id. This information matches the information from the Node table._ + +## Node selection on map triggers table selection + +- Open QGIS and ensure that the Ribasim plugin is installed and enabled. +- Open the application via the Ribasim button on the QGIS toolbar: _Ribasim panel opens_. +- Press the "Open" button in the Model tab: _file navigation window pops up_. +- Choose an existing model from the `generated_testmodels` folder. +- Press OK: _The model layers appear in the layer panel and on the map_. +- Select the node layer, and make a subselection of nodes on the map: _Nodes are highlighted in yellow, including their edges_. +- Open the Edge attribute table: _The highlighted rows are those with a from/to node\_id that was selected_. +- Open any non-spatial attribute table: _The highlighted rows are those with an node\_id that was selected_. + + +# Tables tests + +## Edit tables with data +TODO + +## Edit the type of a node +TODO + +## Edit information in optional tables +TODO + +# Result inspection tests + +## Run a model and check the time series +TODO + +# Tutorial tests + +## Perform tutorial in documentation + +Go through the tutorial as described in the [How-to guide](/guide/qgis.qmd). diff --git a/docs/dev/release.qmd b/docs/dev/release.qmd index 3f64c3678..e2cec853e 100644 --- a/docs/dev/release.qmd +++ b/docs/dev/release.qmd @@ -22,7 +22,7 @@ Before starting the release process, ensure that all tests are passing and that Determine the new version number like `2023.1.0`, filling in the current year, a bumped `MINOR` number for normal releases and a bumped `MICRO` number for non-breaking, hotfix releases. This follows `YYYY.MINOR.MICRO` from [calver](https://calver.org/). -Create a branch that starts with `release`, like `release-2023-1.0`. +Create a branch that starts with `release`, like `release-2023.1.0`. It needs to start with `release` to trigger extra TeamCity checks. Update the version numbers in the repository to the new version number. @@ -33,7 +33,7 @@ Don't change the old version numbers in `changelog.qmd`. ## Update the changelog -The `docs/changelog.qmd` file, hosted on https://deltares.github.io/Ribasim/changelog, records the most important changes for users. +The `docs/changelog.qmd` file, hosted on [ribasim.org/changelog](https://ribasim.org/changelog), records the most important changes for users. Review the commits since the [latest Ribasim release](https://github.com/Deltares/Ribasim/releases/latest) to make sure these are listed. Change the "Unreleased" section to the new version number and date, and create a new empty "Unreleased" section at the top. @@ -59,8 +59,7 @@ git push --tags This will trigger a workflow on TeamCity that will publish a new release on GitHub as soon as it is finished. You can follow the progress [here](https://dpcbuild.deltares.nl/buildConfiguration/Ribasim_Ribasim_MakeGitHubRelease?mode=builds). It also auto-generates a changelog. -You'll probably want to curate that by rearranging the most important changes for users to the top in the form of [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -The possibly long list of generated release notes can put below an "All changes" collapsed item as such: +You need to edit that by moving the auto-generated contents, except the "Full Changelog" link, in a collapsed details block as shown below. ```
@@ -74,6 +73,8 @@ All changes ``` +Now copy the manually edited changelog entry from changelog.qmd above the details, such that the edited changelog can be seen both from our documentation as well as GitHub releases. + ## Release the Ribasim Python packages to PyPI To be able to install packages with `pip`, they need to be released on the Python Package Index (PyPI). @@ -83,10 +84,10 @@ In order to publish Ribasim Python or Ribasim API follow the following steps: 2) Open a terminal and run `pixi run publish-ribasim-api` -## Do manual checks +## QGIS manual testing Our continuous integration (CI) should have caught most issues. -A current weak spot in our testing is the QGIS plugin, so it is a good idea to do some manual checks to see if it works properly. +A current weak spot in our testing is the QGIS plugin, so a manual test plan is in place. Start with running the automated task to see if it can be correctly installed. ```sh @@ -95,10 +96,10 @@ Start with running the automated task to see if it can be correctly installed. pixi run test-ribasim-qgis-ui ``` -It is a good idea to load new test models if there are any, or test any other changed functionality. +Then follow the instructions as described in the [QGIS manual test plan](/dev/qgis_test_plan.qmd). ## Announce release Announce the release in appropriate channels. Include a link to the release notes and assets, which is whatever [this](https://github.com/Deltares/Ribasim/releases/latest) resolves to at that time. -Also include a link to the [documentation](https://deltares.github.io/Ribasim/). +Also include a link to the [documentation](https://ribasim.org/). diff --git a/docs/dev/scripts/plot_trace.jl b/docs/dev/scripts/plot_trace.jl new file mode 100644 index 000000000..bd966b2bb --- /dev/null +++ b/docs/dev/scripts/plot_trace.jl @@ -0,0 +1,227 @@ +function cut_generated_calls!(graph) + for i in collect(labels(graph)) + nm = graph[i] + (; name) = nm + if startswith(String(name), "#") + for i_in in inneighbor_labels(graph, i) + for i_out in outneighbor_labels(graph, i) + graph[i_in, i_out] = nothing + end + end + delete!(graph, i) + end + end +end + +function get_node_depths(graph) + depths = dijkstra_shortest_paths(graph, 1).dists + nodes_per_depth = Dict(Int(depth) => Int[] for depth in unique(depths)) + + for (i, depth) in zip(labels(graph), depths) + nm = graph[i] + nm.depth[] = depth + nm.loc[1] = depth + + push!(nodes_per_depth[Int(depth)], i) + end + + # Sort nodes by file for each depth + for nodes in values(nodes_per_depth) + sort!(nodes; by = i -> graph[i].file, rev = true) + end + + return nodes_per_depth +end + +function prune_branch!( + graph, + start::Int; + branch_base::Bool = true, + to_delete::Vector{Int} = Int[], +) + branch_base && empty!(to_delete) + for i in outneighbor_labels(graph, start) + prune_branch!(graph, i; branch_base = false, to_delete) + push!(to_delete, i) + end + branch_base && delete!.(Ref(graph), to_delete) +end + +function squash!(graph, nodes_per_depth, max_depth, squash_methods) + for depth in 1:max_depth + names = Dict{String, Vector{Int}}() + nodes_at_depth = nodes_per_depth[depth] + for i in nodes_at_depth + nm = graph[i] + name = if nm.name in squash_methods + "$(nm.mod).$(nm.name)" + else + "$nm" + end + if name in keys(names) + push!(names[name], i) + else + names[name] = [i] + end + end + for nodes in values(names) + (length(nodes) == 1) && continue + survivor = first(nodes) + + for i in nodes[2:end] + for i_in in inneighbor_labels(graph, i) + graph[i_in, survivor] = nothing + delete!(graph, i_in, i) + end + + for i_out in outneighbor_labels(graph, i) + graph[survivor, i_out] = nothing + delete!(graph, i, i_out) + end + + delete!(graph, i) + deleteat!(nodes_at_depth, findfirst(==(i), nodes_at_depth)) + end + end + end +end + +function set_coordinates!(graph, nodes_per_depth, max_depth, plot_non_Ribasim) + for depth in 0:max_depth + nodes = nodes_per_depth[depth] + n_nodes = if plot_non_Ribasim + length(nodes) + else + count(i -> graph[i].mod == :Ribasim, nodes) + end + ys = n_nodes == 1 ? [0.5] : range(0, 1; length = n_nodes) + idx = 1 + + for i in nodes + nm = graph[i] + if (nm.mod == :Ribasim || plot_non_Ribasim) + graph[i].loc .= (depth, ys[idx]) + idx += 1 + end + end + end +end + +function plot_edges!(ax, graph, max_depth, nodes_per_depth; n_points = 25) + for depth in 0:(max_depth - 1) + nodes_at_depth = nodes_per_depth[depth] + n_nodes = length(nodes_at_depth) + for (idx, i) in enumerate(nodes_at_depth) + nm_src = graph[i] + for i_out in outneighbor_labels(graph, i) + nm_dst = graph[i_out] + + A = (nm_src.loc[2] - nm_dst.loc[2]) / 2 + B = π / (nm_dst.loc[1] - nm_src.loc[1]) + C = (nm_src.loc[2] + nm_dst.loc[2]) / 2 + + x = range(nm_src.loc[1], nm_dst.loc[1]; length = n_points) + y = @. A * cos(B * (x - nm_src.loc[1])) + C + + color = RGBA((0.8 * rand(3))..., 0.5) + linestyle = (nm_src.file == nm_dst.file) ? :solid : :dash + lines!(ax, x, y; color, linestyle) + end + end + end +end + +function plot_labels!(ax, graph, max_depth, color_dict) + for node in labels(graph) + nm = graph[node] + x, y = nm.loc + (nm.depth[] > max_depth) && continue + text!( + ax, + x, + y; + text = "$nm", + color = :black, + font = :bold, + strokecolor = get(color_dict, nm.file, :black), + strokewidth = 0.5, + label = String(nm.file), + align = (:center, :bottom), + ) + scatter!(ax, [x], [y]; color = :black) + end +end + +function plot_graph( + graph_orig::MetaGraph; + size = (2000, 1000), + max_depth::Int = 5, + plot_non_Ribasim::Bool = false, + squash_per_depth::Bool = true, + squash_methods::Vector{Symbol} = Symbol[], + prune_from::Vector{Symbol} = Symbol[], + xlims = nothing, +) + graph = copy(graph_orig) + + # Prune branches + for i in collect(labels(graph)) + if haskey(graph, i) + nm = graph[i] + if nm.name in prune_from + prune_branch!(graph, i) + end + end + end + + # Cut out calls whose name starts with '#' + cut_generated_calls!(graph) + + nodes_per_depth = get_node_depths(graph) + max_depth = min(max_depth, maximum(keys(nodes_per_depth))) + + # Squash per depth nodes with the same name into one + squash_per_depth && squash!(graph, nodes_per_depth, max_depth, squash_methods) + + set_coordinates!(graph, nodes_per_depth, max_depth, plot_non_Ribasim) + + files = sort(unique(graph[i].file for i in labels(graph) if graph[i].mod == :Ribasim)) + colors = distinguishable_colors(length(files) + 1)[end:-1:2] + color_dict = OrderedDict(zip(files, colors)) + + theme = theme_minimal() + set_theme!(theme) + delete!(theme, :resolution) # Needed because of a refactor in Makie going from resolution to size + f = Figure(; size = size) + ax = Axis(f[1, 1]; xlabel = "depth →", xticks = 0:max_depth) + plot_edges!(ax, graph, max_depth, nodes_per_depth) + plot_labels!(ax, graph, max_depth, color_dict) + hideydecorations!(ax) + hidespines!(ax) + isnothing(xlims) ? xlims!(ax, -0.25, max_depth + 0.5) : xlims!(ax, xlims...) + + # Build legend + elements = LegendElement[ + MarkerElement(; color = c, marker = :rect) for c in values(color_dict) + ] + descriptions = basename.(String.(files)) + + push!(elements, LineElement(; color = :black, linestyle = :dash)) + push!(descriptions, "between scripts") + + push!(elements, LineElement(; color = :black, linestyle = :solid)) + push!(descriptions, "within a script") + + axislegend( + ax, + elements, + descriptions; + position = :lt, + framevisible = true, + margin = (20, 20, 20, 20), + padding = 10, + framecolor = :lightgrey, + ) + resize_to_layout!(f) + f +end diff --git a/docs/dev/scripts/trace_call.jl b/docs/dev/scripts/trace_call.jl new file mode 100644 index 000000000..aa9c648c6 --- /dev/null +++ b/docs/dev/scripts/trace_call.jl @@ -0,0 +1,98 @@ +# adapted from https://gist.github.com/mkborregaard/81825c3d370bb4d8dbfe59c3b2ae4b33 +# by mkborregaard + +const callchains = OrderedSet{Vector{Method}}() +const modules = Set{Module}() + +function callchain(frame::JuliaInterpreter.Frame) + chain = Method[] + sc = JuliaInterpreter.scopeof(frame) + while sc isa Method + push!(chain, sc) + frame = frame.caller + frame === nothing && break + sc = JuliaInterpreter.scopeof(frame) + end + return chain +end + +function log_far!(@nospecialize(recurse), frame, istoplevel::Bool = false) + chain = callchain(frame) + chain[1].module ∈ modules && push!(callchains, chain) + return JuliaInterpreter.finish_and_return!(recurse, frame, istoplevel) +end + +function encode_vertices(callchains) + i = 0 + vertices = Dict{Array{Method}, Int}() + for chain in callchains + for ind in length(chain):-1:1 + vert = chain[ind:end] + haskey(vertices, vert) || (vertices[vert] = (i += 1)) + end + end + vertices +end + +# per vertex: (module, name, file) +function getdata(vertices) + data = Vector{Tuple{Symbol, Symbol, Symbol, Int}}(undef, length(vertices)) + for (k, v) in vertices + k1 = first(k) + file = Symbol(last(split(String(k1.file), "\\"))) + data[v] = (Symbol(k1.module), k1.name, file, k1.line) + end + data +end + +@kwdef struct NodeMetadata + i::Int + mod::Symbol + name::Symbol + file::Symbol + line::Int + loc::Vector{Float64} = fill(NaN, 2) + depth::Base.RefValue{Int} = Ref(0) + isleaf::Base.RefValue{Bool} = Ref(false) + show_module::Bool = false +end + +function Base.show(io::IO, nm::NodeMetadata) + (; mod, name, line, show_module) = nm + out = "$name (L$line)" + show_module && (out = "$mod.$out") + print(io, out) +end + +function construct_graph(callchains) + vertices = encode_vertices(callchains) + data = getdata(vertices) + + graph = MetaGraph(DiGraph(); label_type = Int, vertex_data_type = NodeMetadata) + + for (i, dat) in enumerate(data) + mod, name, file, line = dat + graph[i] = NodeMetadata(; i, mod, name, file, line) + end + + for chain in callchains + for ind in (length(chain) - 1):-1:1 + src = vertices[chain[(ind + 1):end]] + dst = vertices[chain[ind:end]] + graph[src, dst] = nothing + end + end + + graph, vertices +end + +function tracecall(mods::Tuple, call, args) + empty!(callchains) + empty!(modules) + for m in mods + push!(modules, m) + end + frame = JuliaInterpreter.enter_call(call, args...) + log_far!(log_far!, frame, false) + construct_graph(callchains) +end diff --git a/docs/guide/coupling.qmd b/docs/guide/coupling.qmd index 95a5019b9..da2315b3e 100644 --- a/docs/guide/coupling.qmd +++ b/docs/guide/coupling.qmd @@ -2,24 +2,21 @@ title: "Coupling" --- -# Coupling - -## iMOD +# iMOD Ribasim can also be (online) coupled to other kernels with the help of iMOD Coupler. The corresponding documentation can be found within the [iMOD Suite Documentation](https://deltares.github.io/iMOD-Documentation/coupler.html). -## Water quality +# Water quality {#sec-waterquality} -Ribasim can be offline coupled to Delwaq, the Deltares Water Quality model. Note that this functionality is still in active development. +Ribasim can be offline coupled to Delwaq, the Deltares Water Quality model. ```{mermaid} flowchart LR Ribasim --> Delwaq ``` -### Setup +## Setup Delwaq can calculate the concentration of substances in [Basin](/reference/node/basin.qmd) nodes over time, based on initial concentrations, and of [FlowBoundary](/reference/node/flow-boundary.qmd) nodes. Ribasim exposes the `Basin / concentration`, `Basin / concentration_state`, `FlowBoundary / concentration`, and `LevelBoundary / concentration` tables to setup these substances and concentrations. -When a Ribasim model ran with the above tables, one can use the utilities in the `coupling/delwaq` folder to generate the input required for Delwaq to run, as well as to parse the output from Delwaq into a Ribasim compatible format. -For more information see the `README.md` in the same folder. +When a Ribasim model ran with the above tables, one can use the utilities in the `delwaq` namespace of the Ribasim Python API to generate the input required for Delwaq to run, as well as to parse the output from Delwaq into a Ribasim compatible format. For more information see the [guide](/guide/delwaq.ipynb). diff --git a/docs/guide/delwaq.ipynb b/docs/guide/delwaq.ipynb new file mode 100644 index 000000000..91d6eedf8 --- /dev/null +++ b/docs/guide/delwaq.ipynb @@ -0,0 +1,326 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "title: \"Ribasim Delwaq coupling\"\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to generate the Delwaq input files, we need a completed Ribasim simulation (typically one with a results folder) that ideally also includes some substances and initial concentrations. Let's take the basic test model for example, which already has set some initial concentrations.\n", + "\n", + "All testmodels can be [downloaded from here](/install.qmd)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "toml_path = Path(\"../../generated_testmodels/basic/ribasim.toml\")\n", + "\n", + "assert toml_path.is_file()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This Ribasim model already has substance concentrations for `Cl` and `Tracer` in the input tables, and we will use these to generate the Delwaq input files." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ribasim import Model\n", + "\n", + "model = Model.read(toml_path)\n", + "\n", + "display(model.basin.concentration_state) # basin initial state\n", + "display(model.basin.concentration) # basin boundaries\n", + "display(model.flow_boundary.concentration) # flow boundaries\n", + "display(model.level_boundary.concentration) # level boundaries\n", + "model.plot(); # for later comparison" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.basin.profile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's add another tracer to the model, to setup a fraction calculation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ribasim.delwaq import add_tracer\n", + "\n", + "add_tracer(model, 11, \"Foo\")\n", + "add_tracer(model, 15, \"Bar\")\n", + "display(model.flow_boundary.concentration) # flow boundaries\n", + "display(model.level_boundary.concentration) # flow boundaries\n", + "\n", + "model.write(toml_path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# | include: false\n", + "from subprocess import run\n", + "\n", + "run(\n", + " [\n", + " \"julia\",\n", + " \"--project=../../core\",\n", + " \"--eval\",\n", + " f'using Ribasim; Ribasim.main(\"{toml_path.as_posix()}\")',\n", + " ],\n", + " check=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Given the path to a completed Ribasim simulation, we can call `ribasim.delwaq.generate` for generating the required input files for Delwaq from scratch." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ribasim.delwaq import generate\n", + "\n", + "output_path = Path(\"../../generated_testmodels/basic/delwaq\")\n", + "\n", + "graph, substances = generate(toml_path, output_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This call produces a handful of files in the user defined folder. Let's take a look at them:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "list(output_path.iterdir())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These files form a complete Delwaq simulation, and can be run by either pointing DIMR to the `dimr_config.xml` file or pointing Delwaq to the `delwaq.inp` file." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the call to `generate` produces two output variables; `graph` and `substances` that are required for parsing the results of the Delwaq model later on. Nonetheless, we can also inspect them here, and inspect the created Delwaq network." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "substances # list of substances, as will be present in the Delwaq netcdf output" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, the complete substances list is a combination of user input (`Cl` and `Tracer` in the input tables), a `Continuity` tracer, and tracers for all nodetypes in the Ribasim model. The latter tracers allow for deeper inspection of the Ribasim model, such as debugging the mass balance by plotting fraction graphs. Let's inspect the `graph` next, which is the Delwaq network that was created from the Ribasim model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import networkx as nx\n", + "\n", + "# Let's draw the graph\n", + "fig, ax = plt.subplots(1, 2, figsize=(10, 5))\n", + "nx.draw(\n", + " graph,\n", + " pos={k: v[\"pos\"] for k, v in graph.nodes(data=True)},\n", + " with_labels=True,\n", + " labels={k: k for k, v in graph.nodes(data=True)},\n", + " ax=ax[0],\n", + ")\n", + "ax[0].set_title(\"Delwaq node IDs\")\n", + "nx.draw(\n", + " graph,\n", + " pos={k: v[\"pos\"] for k, v in graph.nodes(data=True)},\n", + " with_labels=True,\n", + " labels={k: v[\"id\"] for k, v in graph.nodes(data=True)},\n", + " ax=ax[1],\n", + ")\n", + "ax[1].set_title(\"Ribasim node IDs\")\n", + "fig.suptitle(\"Delwaq network\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we plotted the Delwaq network twice, with the node IDs as used by Delwaq on the left hand side, and the corresponding Ribasim node IDs on the right hand side.\n", + "As you can see, the Delwaq network is very similar to the Ribasim network, with some notable changes:\n", + "\n", + "- All non-Basin or non-boundary types are removed (e.g. no more Pumps or TabulatedRatingCurves)\n", + "- Basin boundaries are split into separate nodes and links (drainage, precipitation, and evaporation, as indicated by the duplicated Basin IDs on the right hand side)\n", + "- All node IDs have been renumbered, with boundaries being negative, and Basins being positive." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parsing the results\n", + "With Delwaq having run, we can now parse the results using `ribasim.delwaq.parse`. This function requires the `graph` and `substances` variables that were output by `ribasim.delwaq.generate`, as well as the path to the results folder of the Delwaq simulation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# | include: false\n", + "# For documentation purposes, we will download the generated map file\n", + "import urllib.request\n", + "\n", + "urllib.request.urlretrieve(\n", + " \"https://s3.deltares.nl/ribasim/doc-image/delwaq/delwaq_map.nc\",\n", + " output_path / \"delwaq_map.nc\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ribasim.delwaq import parse\n", + "\n", + "nmodel = parse(toml_path, graph, substances, output_folder=output_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The parsed model is identical to the Ribasim model, with the exception of the added concentration_external table that contains all tracer results from Delwaq." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "display(nmodel.basin.concentration_external)\n", + "print(substances)\n", + "t = nmodel.basin.concentration_external.df\n", + "t[t.time == t.time.unique()[2]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use this table to plot the results of the Delwaq model, both spatially as over time." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ribasim.delwaq import plot_fraction\n", + "\n", + "plot_fraction(nmodel, 1) # default tracers, should add up to 1\n", + "plot_fraction(nmodel, 9, [\"Foo\", \"Bar\"]) # custom tracers\n", + "plot_fraction(nmodel, 9, [\"Continuity\"]) # mass balance check" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ribasim.delwaq import plot_spatial\n", + "\n", + "plot_spatial(nmodel, \"Bar\")\n", + "plot_spatial(nmodel, \"Foo\", versus=\"Bar\") # ratio of Meuse to Rhine" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "default", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/guide/examples.ipynb b/docs/guide/examples.ipynb index b38495f97..31e899dd6 100644 --- a/docs/guide/examples.ipynb +++ b/docs/guide/examples.ipynb @@ -41,9 +41,10 @@ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", - "from ribasim import Allocation, Model, Node\n", + "from ribasim import Allocation, Model, Node, Solver\n", "from ribasim.nodes import (\n", " basin,\n", + " continuous_control,\n", " discrete_control,\n", " flow_boundary,\n", " level_boundary,\n", @@ -118,10 +119,10 @@ " basin.State(level=[1.4]),\n", "]\n", "\n", - "model.basin.add(Node(1, Point(0.0, 0.0)), basin_data)\n", - "model.basin.add(Node(3, Point(2.0, 0.0)), basin_data)\n", - "model.basin.add(Node(6, Point(3.0, 2.0)), basin_data)\n", - "model.basin.add(Node(9, Point(5.0, 0.0)), basin_data)" + "basin1 = model.basin.add(Node(1, Point(0.0, 0.0)), basin_data)\n", + "basin3 = model.basin.add(Node(3, Point(2.0, 0.0)), basin_data)\n", + "basin6 = model.basin.add(Node(6, Point(3.0, 2.0)), basin_data)\n", + "basin9 = model.basin.add(Node(9, Point(5.0, 0.0)), basin_data)" ] }, { @@ -138,11 +139,11 @@ "metadata": {}, "outputs": [], "source": [ - "model.linear_resistance.add(\n", + "linear_resistance10 = model.linear_resistance.add(\n", " Node(10, Point(6.0, 0.0)),\n", " [linear_resistance.Static(resistance=[5e3])],\n", ")\n", - "model.linear_resistance.add(\n", + "linear_resistance12 = model.linear_resistance.add(\n", " Node(12, Point(2.0, 1.0)),\n", " [linear_resistance.Static(resistance=[3600.0 * 24.0 / 100.0])],\n", ")" @@ -162,7 +163,7 @@ "metadata": {}, "outputs": [], "source": [ - "model.manning_resistance.add(\n", + "manning_resistance2 = model.manning_resistance.add(\n", " Node(2, Point(1.0, 0.0)),\n", " [\n", " manning_resistance.Static(\n", @@ -187,8 +188,8 @@ "outputs": [], "source": [ "q = 10 / 86400 # 10 m³/day\n", - "model.tabulated_rating_curve.add(\n", - " Node(6, Point(4.0, 0.0)),\n", + "tabulated_rating_curve4 = model.tabulated_rating_curve.add(\n", + " Node(8, Point(3.0, -1.0)),\n", " [\n", " tabulated_rating_curve.Static(\n", " level=[0.0, 1.0],\n", @@ -196,8 +197,8 @@ " )\n", " ],\n", ")\n", - "model.tabulated_rating_curve.add(\n", - " Node(3, Point(3.0, 1.0)),\n", + "tabulated_rating_curve5 = model.tabulated_rating_curve.add(\n", + " Node(5, Point(3.0, 1.0)),\n", " [\n", " tabulated_rating_curve.Static(\n", " level=[0.0, 1.0],\n", @@ -205,8 +206,8 @@ " )\n", " ],\n", ")\n", - "model.tabulated_rating_curve.add(\n", - " Node(1, Point(3.0, -1.0)),\n", + "tabulated_rating_curve8 = model.tabulated_rating_curve.add(\n", + " Node(4, Point(4.0, 0.0)),\n", " [\n", " tabulated_rating_curve.Static(\n", " level=[0.0, 1.0],\n", @@ -230,7 +231,7 @@ "metadata": {}, "outputs": [], "source": [ - "model.pump.add(Node(7, Point(4.0, 1.0)), [pump.Static(flow_rate=[0.5 / 3600])])" + "pump7 = model.pump.add(Node(7, Point(4.0, 1.0)), [pump.Static(flow_rate=[0.5 / 3600])])" ] }, { @@ -247,10 +248,10 @@ "metadata": {}, "outputs": [], "source": [ - "model.level_boundary.add(\n", + "level_boundary11 = model.level_boundary.add(\n", " Node(11, Point(2.0, 2.0)), [level_boundary.Static(level=[0.5])]\n", ")\n", - "model.level_boundary.add(\n", + "level_boundary17 = model.level_boundary.add(\n", " Node(17, Point(6.0, 1.0)), [level_boundary.Static(level=[1.5])]\n", ")" ] @@ -269,10 +270,10 @@ "metadata": {}, "outputs": [], "source": [ - "model.flow_boundary.add(\n", + "flow_boundary15 = model.flow_boundary.add(\n", " Node(15, Point(3.0, 3.0)), [flow_boundary.Static(flow_rate=[1e-4])]\n", ")\n", - "model.flow_boundary.add(\n", + "flow_boundary16 = model.flow_boundary.add(\n", " Node(16, Point(0.0, 1.0)), [flow_boundary.Static(flow_rate=[1e-4])]\n", ")" ] @@ -291,7 +292,7 @@ "metadata": {}, "outputs": [], "source": [ - "model.terminal.add(Node(14, Point(3.0, -2.0)))" + "terminal14 = model.terminal.add(Node(14, Point(3.0, -2.0)))" ] }, { @@ -307,34 +308,34 @@ "metadata": {}, "outputs": [], "source": [ - "model.edge.add(model.basin[1], model.manning_resistance[2])\n", - "model.edge.add(model.manning_resistance[2], model.basin[3])\n", + "model.edge.add(basin1, manning_resistance2)\n", + "model.edge.add(manning_resistance2, basin3)\n", "model.edge.add(\n", - " model.basin[3],\n", - " model.tabulated_rating_curve[6],\n", + " basin3,\n", + " tabulated_rating_curve8,\n", ")\n", "model.edge.add(\n", - " model.basin[3],\n", - " model.tabulated_rating_curve[3],\n", + " basin3,\n", + " tabulated_rating_curve5,\n", ")\n", "model.edge.add(\n", - " model.basin[3],\n", - " model.tabulated_rating_curve[1],\n", + " basin3,\n", + " tabulated_rating_curve4,\n", ")\n", - "model.edge.add(model.tabulated_rating_curve[3], model.basin[6])\n", - "model.edge.add(model.tabulated_rating_curve[6], model.basin[9])\n", + "model.edge.add(tabulated_rating_curve5, basin6)\n", + "model.edge.add(tabulated_rating_curve8, basin9)\n", "model.edge.add(\n", - " model.tabulated_rating_curve[1],\n", - " model.terminal[14],\n", + " tabulated_rating_curve4,\n", + " terminal14,\n", ")\n", - "model.edge.add(model.basin[6], model.pump[7])\n", - "model.edge.add(model.pump[7], model.basin[9])\n", - "model.edge.add(model.basin[9], model.linear_resistance[10])\n", - "model.edge.add(model.level_boundary[11], model.linear_resistance[12])\n", - "model.edge.add(model.linear_resistance[12], model.basin[3])\n", - "model.edge.add(model.flow_boundary[15], model.basin[6])\n", - "model.edge.add(model.flow_boundary[16], model.basin[1])\n", - "model.edge.add(model.linear_resistance[10], model.level_boundary[17])" + "model.edge.add(basin6, pump7)\n", + "model.edge.add(pump7, basin9)\n", + "model.edge.add(basin9, linear_resistance10)\n", + "model.edge.add(level_boundary11, linear_resistance12)\n", + "model.edge.add(linear_resistance12, basin3)\n", + "model.edge.add(flow_boundary15, basin6)\n", + "model.edge.add(flow_boundary16, basin1)\n", + "model.edge.add(linear_resistance10, level_boundary17)" ] }, { @@ -359,7 +360,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Write the model to a TOML and GeoPackage:\n" + "Write the model to a TOML and GeoPackage:" ] }, { @@ -397,14 +398,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now run the model. From Python you can run it with:\n", - "\n", - "```python\n", - "import subprocess\n", - "subprocess.run([cli_path, toml_path], check=True)\n", - "```\n", + "## Running a model\n", + "Now run the model. You can open a terminal and run it from there. For example, to run the basic model, input:\n", "\n", - "Or similarly you can from the terminal with:\n", "```bash\n", "ribasim basic/ribasim.toml\n", "```\n", @@ -418,11 +414,14 @@ "metadata": {}, "outputs": [], "source": [ - "df_basin = pd.read_feather(datadir / \"basic/results/basin.arrow\")\n", + "df_basin = pd.read_feather(\n", + " datadir / \"basic/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", "df_basin_wide = df_basin.pivot_table(\n", " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", ")\n", - "df_basin_wide[\"level\"].plot()" + "ax = df_basin_wide[\"level\"].plot()\n", + "ax.set_ylabel(\"level [m]\");" ] }, { @@ -431,11 +430,12 @@ "metadata": {}, "outputs": [], "source": [ - "df_flow = pd.read_feather(datadir / \"basic/results/flow.arrow\")\n", + "df_flow = pd.read_feather(datadir / \"basic/results/flow.arrow\", dtype_backend=\"pyarrow\")\n", "df_flow[\"edge\"] = list(zip(df_flow.from_node_id, df_flow.to_node_id))\n", "df_flow[\"flow_m3d\"] = df_flow.flow_rate * 86400\n", "ax = df_flow.pivot_table(index=\"time\", columns=\"edge\", values=\"flow_m3d\").plot()\n", - "ax.legend(bbox_to_anchor=(1.3, 1), title=\"Edge\")" + "ax.legend(bbox_to_anchor=(1.3, 1), title=\"Edge\")\n", + "ax.set_ylabel(\"flow [m³day⁻¹]\");" ] }, { @@ -462,7 +462,12 @@ "metadata": {}, "outputs": [], "source": [ - "model = Model(starttime=\"2020-01-01\", endtime=\"2021-01-01\", crs=\"EPSG:4326\")" + "model = Model(\n", + " starttime=\"2020-01-01\",\n", + " endtime=\"2021-01-01\",\n", + " crs=\"EPSG:4326\",\n", + " solver=Solver(abstol=1e-6, reltol=1e-5),\n", + ")" ] }, { @@ -501,7 +506,6 @@ " discrete_control.Variable(\n", " compound_variable_id=1,\n", " listen_node_id=1,\n", - " listen_node_type=[\"Basin\"],\n", " variable=[\"level\"],\n", " ),\n", " discrete_control.Condition(\n", @@ -702,8 +706,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now run the model with `ribasim level_range/ribasim.toml`.\n", - "After running the model, read back the results:\n" + "Now run the model (for running instructions see [here](#running-a-model)).\n", + "After running the model, read back the results:" ] }, { @@ -712,7 +716,9 @@ "metadata": {}, "outputs": [], "source": [ - "df_basin = pd.read_feather(datadir / \"level_range/results/basin.arrow\")\n", + "df_basin = pd.read_feather(\n", + " datadir / \"level_range/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", "df_basin_wide = df_basin.pivot_table(\n", " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", ")\n", @@ -887,7 +893,6 @@ " \"2020-12-01\",\n", " ],\n", " listen_node_id=2,\n", - " listen_node_type=\"Basin\",\n", " target=[5.0, 5.0, 7.5, 7.5],\n", " proportional=proportional,\n", " integral=integral,\n", @@ -983,7 +988,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now run the model with `ribasim pid_control/ribasim.toml`.\n", + "Now run the model (for running instructions see [here](#running-a-model)).\n", "After running the model, read back the results:\n" ] }, @@ -995,7 +1000,9 @@ "source": [ "from matplotlib.dates import date2num\n", "\n", - "df_basin = pd.read_feather(datadir / \"pid_control/results/basin.arrow\")\n", + "df_basin = pd.read_feather(\n", + " datadir / \"pid_control/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", "df_basin_wide = df_basin.pivot_table(\n", " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", ")\n", @@ -1129,7 +1136,7 @@ "metadata": {}, "outputs": [], "source": [ - "model.terminal.add(Node(1, Point(5.0, 0.0), subnetwork_id=1))" + "model.terminal.add(Node(8, Point(5.0, 0.0), subnetwork_id=1))" ] }, { @@ -1204,7 +1211,7 @@ "model.edge.add(model.basin[5], model.tabulated_rating_curve[7])\n", "model.edge.add(model.user_demand[3], model.basin[2])\n", "model.edge.add(model.user_demand[6], model.basin[5])\n", - "model.edge.add(model.tabulated_rating_curve[7], model.terminal[1])" + "model.edge.add(model.tabulated_rating_curve[7], model.terminal[8])" ] }, { @@ -1264,7 +1271,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now run the model with `ribasim allocation_example/ribasim.toml`.\n", + "Now run the model (for running instructions see [here](#running-a-model)).\n", "After running the model, read back the results:\n" ] }, @@ -1276,7 +1283,9 @@ "source": [ "import matplotlib.ticker as plticker\n", "\n", - "df_allocation = pd.read_feather(datadir / \"allocation_example/results/allocation.arrow\")\n", + "df_allocation = pd.read_feather(\n", + " datadir / \"allocation_example/results/allocation.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", "df_allocation_wide = df_allocation.pivot_table(\n", " index=\"time\",\n", " columns=[\"node_type\", \"node_id\", \"priority\"],\n", @@ -1322,7 +1331,9 @@ "metadata": {}, "outputs": [], "source": [ - "df_basin = pd.read_feather(datadir / \"allocation_example/results/basin.arrow\")\n", + "df_basin = pd.read_feather(\n", + " datadir / \"allocation_example/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", "df_basin_wide = df_basin.pivot_table(\n", " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", ")\n", @@ -1551,7 +1562,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now run the model with `ribasim level_demand/ribasim.toml`.\n", + "Now run the model (for running instructions see [here](#running-a-model)).\n", "After running the model, read back the results:\n" ] }, @@ -1561,7 +1572,9 @@ "metadata": {}, "outputs": [], "source": [ - "df_basin = pd.read_feather(datadir / \"level_demand/results/basin.arrow\")\n", + "df_basin = pd.read_feather(\n", + " datadir / \"level_demand/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", "df_basin = df_basin[df_basin.node_id == 2]\n", "df_basin_wide = df_basin.pivot_table(\n", " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", @@ -1776,7 +1789,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "According to the description of situation 1 and 2, the water in one polder basin needs to be able to flow to the downstream basin if the current basin has too much water (i.e. the water level is above the setpoint) or if the downstream basin is below setpoint and needs more water. This could be modelled with an uncontrolled TabulatedRatingCurve node with Q=0 at the setpoint level (and Q rising when the level rises above setpoint) , or with an Outlet node where the minimum crest is specified at or just below the setpoint. In this example, we've chosen for the Outlet where we specify the minimum crest level 5 cm below the setpoint. For example: the Outlet of polder basin 1 (node 4) is specified with a minimum crest level of 1.95 meter." + "According to the description of situation 1 and 2, the water in one polder basin needs to be able to flow to the downstream basin if the current basin has too much water (i.e. the water level is above the setpoint) or if the downstream basin is below setpoint and needs more water. This could be modelled with an uncontrolled TabulatedRatingCurve node with Q=0 at the setpoint level (and Q rising when the level rises above setpoint) , or with an Outlet node where the `min_upstream_level` is specified at or just below the setpoint. In this example, we've chosen for the Outlet where we specify the minimum upstream level 5 cm below the setpoint. For example: the Outlet of polder basin 1 (node 4) is specified with a minimum upstream level of 1.95 meter." ] }, { @@ -1795,23 +1808,23 @@ "# Set up outlet\n", "model.outlet.add(\n", " Node(2, Point(0.0, -1.0)),\n", - " [outlet.Static(flow_rate=[2 * 0.5 / 3600], min_crest_level=[0.0])],\n", + " [outlet.Static(flow_rate=[2 * 0.5 / 3600], min_upstream_level=[0.0])],\n", ")\n", "model.outlet.add(\n", " Node(5, Point(0.0, -3.0)),\n", - " [outlet.Static(flow_rate=[0.5 / 3600], min_crest_level=[1.95])],\n", + " [outlet.Static(flow_rate=[0.5 / 3600], min_upstream_level=[1.95])],\n", ")\n", "model.outlet.add(\n", " Node(7, Point(1.0, -4.0)),\n", - " [outlet.Static(flow_rate=[0.5 / 3600], min_crest_level=[1.45])],\n", + " [outlet.Static(flow_rate=[0.5 / 3600], min_upstream_level=[1.45])],\n", ")\n", "model.outlet.add(\n", " Node(9, Point(3.0, -4.0)),\n", - " [outlet.Static(flow_rate=[0.5 / 3600], min_crest_level=[0.95])],\n", + " [outlet.Static(flow_rate=[0.5 / 3600], min_upstream_level=[0.95])],\n", ")\n", "model.outlet.add(\n", " Node(11, Point(4.0, -3.0)),\n", - " [outlet.Static(flow_rate=[0.5 / 3600], min_crest_level=[0.45])],\n", + " [outlet.Static(flow_rate=[0.5 / 3600], min_upstream_level=[0.45])],\n", ")" ] }, @@ -1836,7 +1849,6 @@ "outputs": [], "source": [ "pid_control_data = {\n", - " \"listen_node_type\": \"Basin\",\n", " \"proportional\": [0.05],\n", " \"integral\": [0.00],\n", " \"derivative\": [0.0],\n", @@ -1947,6 +1959,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "Now run the model (for running instructions see [here](#running-a-model)).\n", "After running the model, read back the result to plot the flow of each polder basin." ] }, @@ -1957,7 +1970,7 @@ "outputs": [], "source": [ "datadir_flow = datadir / \"local_pidcontrolled_cascade/results/flow.arrow\"\n", - "df_flow = pd.read_feather(datadir_flow)\n", + "df_flow = pd.read_feather(datadir_flow, dtype_backend=\"pyarrow\")\n", "df_flow[\"edge\"] = list(zip(df_flow.from_node_id, df_flow.to_node_id))\n", "df_flow[\"flow_m3d\"] = df_flow.flow_rate * 86400\n", "\n", @@ -1978,9 +1991,11 @@ "outputs": [], "source": [ "df_input = df_pivot.loc[:, [(1, 2), (13, 1)]]\n", - "df_input.plot(ylim=[-1.0, 20.0])\n", + "ax = df_input.plot(ylim=[-1.0, 20.0])\n", + "ax.set_ylabel(\"flow [m³day⁻¹]\")\n", "df_weirs = df_pivot.loc[:, [(4, 5), (6, 7), (8, 9), (10, 11)]]\n", - "df_weirs.plot(ylim=[-1.0, 15.0])" + "ax = df_weirs.plot(ylim=[-1.0, 15.0])\n", + "ax.set_ylabel(\"flow [m³day⁻¹]\");" ] }, { @@ -1997,7 +2012,7 @@ "outputs": [], "source": [ "datadir_basin = datadir / \"local_pidcontrolled_cascade/results/basin.arrow\"\n", - "df_basin = pd.read_feather(datadir_basin)\n", + "df_basin = pd.read_feather(datadir_basin, dtype_backend=\"pyarrow\")\n", "df_basin[\"vertical_flux\"] = (\n", " df_basin[\"precipitation\"]\n", " - df_basin[\"evaporation\"]\n", @@ -2007,7 +2022,9 @@ "df_basin_wide = df_basin.pivot_table(\n", " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\", \"vertical_flux\"]\n", ")\n", - "df_basin_wide[\"vertical_flux\"].plot()" + "df_basin_wide[\"vertical_flux\"] *= 86400\n", + "ax = df_basin_wide[\"vertical_flux\"].plot()\n", + "ax.set_ylabel(\"vertical flux [m³day⁻¹]\");" ] }, { @@ -2023,7 +2040,294 @@ "metadata": {}, "outputs": [], "source": [ - "df_basin_wide[\"level\"].plot()" + "ax = df_basin_wide[\"level\"].plot()\n", + "ax.set_ylabel(\"level [m]\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model with continuous control" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model = Model(starttime=\"2020-01-01\", endtime=\"2021-01-01\", crs=\"EPSG:28992\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set up the transient level boundary:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.level_boundary.add(\n", + " Node(1, Point(0, 0)),\n", + " [\n", + " level_boundary.Time(\n", + " time=pd.date_range(\n", + " start=\"2020-01-01\", end=\"2021-01-01\", periods=100, unit=\"ms\"\n", + " ),\n", + " level=6.0 + np.sin(np.linspace(0, 6 * np.pi, 100)),\n", + " )\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set up the linear resistance:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.linear_resistance.add(\n", + " Node(2, Point(1, 0)), [linear_resistance.Static(resistance=[10.0])]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set up the basin:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.basin.add(\n", + " Node(3, Point(2, 0)),\n", + " [\n", + " basin.Profile(area=10000.0, level=[0.0, 1.0]),\n", + " basin.State(level=[10.0]),\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set up the outlets:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.outlet.add(Node(4, Point(3, 1)), [outlet.Static(flow_rate=[1.0])])\n", + "model.outlet.add(Node(5, Point(3, -1)), [outlet.Static(flow_rate=[1.0])])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set up the terminals:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.terminal.add(Node(6, Point(4, 1)))\n", + "model.terminal.add(Node(7, Point(4, -1)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set up the continuous control:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.continuous_control.add(\n", + " Node(8, Point(2, 1)),\n", + " [\n", + " continuous_control.Variable(\n", + " listen_node_id=[2],\n", + " variable=\"flow_rate\",\n", + " ),\n", + " continuous_control.Function(\n", + " input=[0.0, 1.0],\n", + " output=[0.0, 0.6],\n", + " controlled_variable=\"flow_rate\",\n", + " ),\n", + " ],\n", + ")\n", + "model.continuous_control.add(\n", + " Node(9, Point(2, -1)),\n", + " [\n", + " continuous_control.Variable(\n", + " listen_node_id=[2],\n", + " variable=\"flow_rate\",\n", + " ),\n", + " continuous_control.Function(\n", + " input=[0.0, 1.0],\n", + " output=[0.0, 0.4],\n", + " controlled_variable=\"flow_rate\",\n", + " ),\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This defines:\n", + "\n", + "- A `ContinuousControl` node with ID 1, which listens to the flow rate of the `LinearResistance` node with ID 1, puts that trough the function $f(x) = \\max(0, 0.6x)$, and assigns the result to the flow rate of the node this `ContinuousControl` node is controlling, which is defined by a (control) edge;\n", + "- A `ContinuousControl` node with ID 2, which listens to the flow rate of the `LinearResistance` node with ID 1, puts that through the function $f(x) = \\max(0, 0.4x)$, and assigns the result to the flow rate of the node this `ContinuousControl` node is controlling, which is defined by a (control) edge." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.edge.add(model.level_boundary[1], model.linear_resistance[2])\n", + "model.edge.add(model.linear_resistance[2], model.basin[3])\n", + "model.edge.add(model.basin[3], model.outlet[4])\n", + "model.edge.add(model.basin[3], model.outlet[5])\n", + "model.edge.add(model.outlet[4], model.terminal[6])\n", + "model.edge.add(model.outlet[5], model.terminal[7])\n", + "\n", + "# Define which node is controlled by each continuous control node\n", + "model.edge.add(model.continuous_control[8], model.outlet[4])\n", + "model.edge.add(model.continuous_control[9], model.outlet[5])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's take a look at the model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With this setup we want to split the flow coming into the basin into a 60% - 40% ratio." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write the model to a TOML and GeoPackage:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "toml_path = datadir / \"outlet_continuous_control/ribasim.toml\"\n", + "model.write(toml_path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# | include: false\n", + "from subprocess import run\n", + "\n", + "run(\n", + " [\n", + " \"julia\",\n", + " \"--project=../../core\",\n", + " \"--eval\",\n", + " f'using Ribasim; Ribasim.main(\"{toml_path.as_posix()}\")',\n", + " ],\n", + " check=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now run the model (for running instructions see [here](#running-a-model)).\n", + "After running the model, read back the results:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_flow = pd.read_feather(\n", + " datadir / \"outlet_continuous_control/results/flow.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", + "fig, ax = plt.subplots()\n", + "\n", + "\n", + "def plot_edge_flow(from_node_type, from_node_id, to_node_type, to_node_id):\n", + " df_flow_filtered = df_flow[\n", + " (df_flow[\"from_node_id\"] == from_node_id)\n", + " & (df_flow[\"to_node_id\"] == to_node_id)\n", + " ]\n", + " df_flow_filtered.plot(\n", + " x=\"time\",\n", + " y=\"flow_rate\",\n", + " ax=ax,\n", + " label=f\"{from_node_type} #{from_node_id} → {to_node_type} #{to_node_id}\",\n", + " )\n", + "\n", + "\n", + "plot_edge_flow(\"LinearResistance\", 1, \"Basin\", 1)\n", + "plot_edge_flow(\"Basin\", 1, \"Outlet\", 1)\n", + "plot_edge_flow(\"Basin\", 1, \"Outlet\", 2)\n", + "ax.set_ylabel(\"flow [m³s⁻¹]\");" ] } ], @@ -2043,7 +2347,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/docs/guide/index.qmd b/docs/guide/index.qmd deleted file mode 100644 index 1d8fbe80e..000000000 --- a/docs/guide/index.qmd +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: "How-to guides" ---- diff --git a/docs/tutorial/qgis.qmd b/docs/guide/qgis.qmd similarity index 64% rename from docs/tutorial/qgis.qmd rename to docs/guide/qgis.qmd index 8b4f20748..41faf4929 100644 --- a/docs/tutorial/qgis.qmd +++ b/docs/guide/qgis.qmd @@ -2,45 +2,11 @@ title: "QGIS plugin" --- -# How to - -## Start - -Install [QGIS](https://qgis.org/en/site/) version 3.34 or higher. - -### Install Ribasim plugin - -Download `ribasim_qgis.zip`, see the [download section](/install.qmd#sec-download). - -Plugins menu > Manage and Install Plugins... - -![](https://user-images.githubusercontent.com/4471859/224939069-9aae77ea-898f-442f-83b5-f2671c114956.png){fig-align="left"} - -Select "Install from ZIP": - -- Browse to the `ribasim_qgis.zip` file containing the plugin that was downloaded earlier -- Click "Install Plugin" - -![](https://user-images.githubusercontent.com/4471859/224939080-7fec5db2-4417-4f7b-8e45-034d4cf4fd75.png){fig-align="left"} - -Start the Ribasim plugin. - -![](https://user-images.githubusercontent.com/4471859/224939101-228e068a-875b-4df2-98bb-6ee6a3830ddd.png){fig-align="left"} - -### Add iMOD plugin - -In QGIS, navigate to "Plugins > Manage and Install Plugins > All". -In the search bar, type: "iMOD". Select the iMOD plugin, and click "Install". - -At least version 0.4.0 of the iMOD plugin is required. - -The Time Series widget from the iMOD plugin is used for visualizing Ribasim results, which is described in the [results section](#sec-results). -Documentation on the Time Series widget can be found in the [iMOD documentation](https://deltares.github.io/iMOD-Documentation/qgis_user_manual.html#time-series-time-series). - -### Prepare your model +# Preparing a model +This guide assumes you have already installed the Ribasim core, test models and QGIS plugin as described in the [install page](/install.qmd). Open an existing model or create a new model. -As an example of an existing model, you can use the "basic" model from `generated_testmodels.zip`, see the [download section](/install.qmd#sec-download). +As an example of an existing model, you can use the "basic" model from `generated_testmodels.zip`. ![](https://user-images.githubusercontent.com/4471859/224939126-b38f0eed-2e89-4120-b541-5b8c31798c09.png){fig-align="left"} @@ -57,9 +23,9 @@ If you are modeling the Netherlands, select "Amersfoort / RD New" (EPSG:28992). ![](https://user-images.githubusercontent.com/4471859/224939182-3486ff0b-842b-4f98-a37e-ecd04f29aa7f.png){fig-align="left"} -## Edit nodes +## Editing nodes -### Add nodes on the map +### Adding nodes on the map Select the Node layer. @@ -71,13 +37,13 @@ Turn on the edit mode to be able to add nodes on the map. Add nodes to the map with a left click and select the node type. -![](https://user-images.githubusercontent.com/4471859/224939237-67c1150b-15ec-4044-a02a-26a82f81da05.png){fig-align="left"} +Node form Turn the edit mode off and save the edits to the Nodes layer. ![](https://user-images.githubusercontent.com/4471859/224946136-e37021d5-80c1-4d90-ac04-d0dbd96879f3.png){fig-align="left"} -### Edit tables +### Editing node properties Right click a layer and select "Open Attribute Table". @@ -88,7 +54,8 @@ A record can be selected by clicking on the row number. ![](https://user-images.githubusercontent.com/4471859/224939287-a8b9f351-9aea-4e3a-8417-3867cd40cda5.png){fig-align="left"} -Adjust the content. If you prefer, it also works to copy data with the same columns from +Adjust the content. Note that the `node_id` field is connected to the Node layer and thus must be set to an existing `node_id`. +If you prefer, it also works to copy data with the same columns from Excel. Turn off edit mode and save changes to the layer. ![](https://user-images.githubusercontent.com/4471859/224939297-4b0ca812-9618-4d25-ab7a-518bf1ca63e1.png){fig-align="left"} @@ -98,11 +65,11 @@ Excel. Turn off edit mode and save changes to the layer. ### Turn on snapping Make sure the Snapping Toolbar is visible, by going to the View > Toolbars menu. Turn on -snapping mode by clicking the magnet and set the snapping distance to 25 pixels. +snapping mode by clicking the magnet and set the snapping distance to 25 pixels. The keyboard shortcut for snapping is `s` (once the toolbar is enabled). ![](https://user-images.githubusercontent.com/4471859/224939328-8359272a-30bb-4eb1-ab6c-968318ac3997.png){fig-align="left"} -### Create connecting edges +### Creating connecting edges Select the Edge layer and turn on the edit mode. @@ -114,22 +81,34 @@ Select "Add line feature". Create a connection by left clicking a source node and right clicking the destination node. -![](https://user-images.githubusercontent.com/4471859/224939363-88716d43-0536-499d-adb8-2fb4223c0f87.png){fig-align="left"} +Create an edge + +A form where one can change the edge attributes will pop up. Once done with editing, click ok. -Now leave the edit mode and save the results to the layer. +Edge form -## Run a model +Now leave the edit mode and save the results to the layer. Your model is now ready to run. See -- Unzip the Ribasim command line interface, `ribasim_cli.zip` -- Open your terminal and go to the directory where your TOML is stored. Now run - `path/to/ribasim_cli/ribasim ribasim.toml`. Adjust the path to the `ribasim_cli` folder to - where you placed it. This runs the model. +# Running a model + +- Install the Ribasim core application as described in the [install section](/install.qmd) +- Open a terminal like Powershell or Cmd and navigate to the model directory. +- Call Ribasim with the `.toml` file as input. E.g. `\ribasim.exe my_model.toml`. - In your model directory there is now a `results/` folder with `basin.arrow` and `flow.arrow` output files. -## Inspect results {#sec-results} +# Inspect a (large) model {#sec-inspect} + +For larger models the node tables can grow quite large. To facilitate inspection, +the tables are linked via the `node_id` field to the Node table, and react to the selection of the Node layer. That is, on selection of certain nodes---either via the map or the attribute table---the selection is also made in all related tables. This is also the case for the Edge layer. +It helps to set the attribute table of a table of interest to show selected features only (using the dropdown button on the bottom left). + +Selection change + + +# Inspecting results {#sec-results} -Before trying to inspect the results, verify that the run was successful and the output files are there. +Before inspecting the results, verify that the run was successfully and the output files are there. Click the "Time Series" button of the iMOD plugin. @@ -154,6 +133,6 @@ The associated time series are shown the the graph. ![](https://user-images.githubusercontent.com/4471859/224939471-85a23936-6eb6-4a80-a5b7-8c9a55ddc7f7.png){fig-align="left"} -Only the "basin.arrow" and "flow.arrow" can be inspected with the "iMOD Time Series Plot" panel. +Only the `basin.arrow` and `flow.arrow` can be inspected with the "iMOD Time Series Plot" panel. All Arrow files can be loaded as a layer by dragging the files onto QGIS. Right click the layer and select "Open Attribute Table" to view the contents. diff --git a/docs/index.qmd b/docs/index.qmd index 86290d81d..623214fef 100644 --- a/docs/index.qmd +++ b/docs/index.qmd @@ -8,7 +8,12 @@ Ribasim is written in the [Julia programming language](https://julialang.org/) a on top of the [SciML: Open Source Software for Scientific Machine Learning](https://sciml.ai/) libraries. -Ribasim is developed and supported by [Deltares](https://www.deltares.nl). -The first version of Ribasim is developed by Deltares as part of a consortium with funding from TKI by Deltares for the Dutch watersystem. +The initial version of Ribasim is developed by [Deltares](https://www.deltares.nl) as part of a consortium for the Dutch watersystem. +This activity is co-funded by [TKI Deltatechnology](https://tkideltatechnologie.nl/), a Dutch public–private partnership innovation program from the Ministry of Economic Affairs. +Ribasim will be used as the surface water module of the [Netherlands Hydrologic Instrument (NHI)](https://nhi.nu/). -![](https://publicwiki.deltares.nl/download/attachments/232326570/image-2023-3-7_16-39-24-1.png?version=1&modificationDate=1678203564884&api=v2){fig-alt="TKI partner logos"} +![](https://publicwiki.deltares.nl/download/attachments/232326570/image-2024-9-23_16-2-1-1.png?version=1&modificationDate=1727100121340&api=v2){fig-alt="TKI partner logos"} + +Ribasim model of the main water distribution network in the Netherlands. + +HWS on map diff --git a/docs/install.qmd b/docs/install.qmd index f55dd1144..e5ecaba9a 100644 --- a/docs/install.qmd +++ b/docs/install.qmd @@ -2,8 +2,12 @@ title: "Installation" --- +In this document, we describe how to install the different components of Ribasim. +First the components and their relation are introduced, then installation instructions per component follow. + # Components {#sec-components} -The figure below illustrates the relation between the various components of the Ribasim software package. + +The figure below illustrates the relation between the various components of Ribasim. ```{mermaid} flowchart TB @@ -38,44 +42,53 @@ classDef system_ext fill:#D2D2D2 classDef boundary fill:transparent,stroke-dasharray:5 5 ``` +There are three main components of the Ribasim software package. +They are the Ribasim core (written in Julia language), the Ribasim Python package and the Ribasim QGIS plugin. + The kernel of Ribasim is written in the [Julia programming language](https://julialang.org/) and is built on top of the [SciML: Open Source Software for Scientific Machine Learning](https://sciml.ai/) libraries, notably [DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/stable/). The [Ribasim Python package](/install.qmd) is available to build, update and analyze Ribasim models programmatically. For runtime data exchange and coupling with other kernels, the Julia kernel is wrapped in a Python API (`ribasim_api`) which implements the Basic Modelling Interface [BMI](https://bmi-spec.readthedocs.io/en/latest/). -The Ribasim QGIS plugin allows users to view or edit a model without programming. -For specific tasks, like adding long timeseries, using Python is strongly recommended. - +Ribasim uses [GeoPackage](https://www.geopackage.org/) files to store the model database (`database.gpkg`). +[QGIS](https://qgis.org/) works well with GeoPackage files. +This makes QGIS the perfect application to inspect and make edits to Ribasim models. +Deltares also provides the iMOD QGIS plugin, which can be used to inspect the results of a Ribasim model too. +For larger edits using Python is recommended. One can also use Ribasim Python to build entire models from base data, such that your model setup is fully reproducible. -# Download {#sec-download} +Users can choose to use Ribasim Python or QGIS plugin or a combination of them to build a Ribasim model. +And then use the Ribasim core to run the simulation. -- Ribasim executable - Windows: [ribasim_windows.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_windows.zip) -- Ribasim executable - Linux: [ribasim_linux.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_linux.zip) -- QGIS plugin: [ribasim_qgis.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_qgis.zip). -- Generated testmodels: [generated_testmodels.zip](https://github.com/Deltares/Ribasim/releases/latest/download/generated_testmodels.zip) - -The Ribasim Python package is [registered in PyPI](https://pypi.org/project/ribasim/) and [conda-forge](https://prefix.dev/channels/conda-forge/packages/ribasim) and can therefore be installed with [pip](https://docs.python.org/3/installing/index.html), [conda](https://docs.conda.io/) or [pixi](https://pixi.sh/): -``` -pip install ribasim -``` - -# Ribasim core +# Install Ribasim core Ribasim is typically used as a command-line interface (CLI). It is distributed as a `.zip` archive, that must be downloaded and unpacked. It can be placed anywhere, however it is important that the contents of the zip file are kept together in a directory. The Ribasim -CLI executable is in the `bin` directory. +executable is in the main folder. + +To download the Ribasim core, download the appropriate zip file for your operating system: + +- Ribasim executable - Windows: [ribasim_windows.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_windows.zip) +- Ribasim executable - Linux: [ribasim_linux.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_linux.zip) + +Note that we currently only support and provide binaries for Windows and Linux, for the x86_64 architecture. + +To check whether the installation was performed successfully, open a terminal and go to the path where the executable is for example `C:\bin\ribasim\`. +If you are using cmd.exe type `ribasim`, or for PowerShell `./ribasim`. -To check whether the installation was performed successfully, run `ribasim` with no -arguments in the command line. This will give the following message: ``` -Usage: ribasim 'path/to/model/ribasim.toml' +error: the following required arguments were not provided: + + +Usage: ribasim + +For more information, try '--help'.' ``` -# Ribasim Python +# Install Ribasim Python The Ribasim Python package (named `ribasim`) aims to make it easy to build, update and analyze Ribasim models programmatically. @@ -87,10 +100,46 @@ Python instead. One can also use Ribasim Python to build entire models from base data, such that your model setup is fully reproducible. -The package is [registered in PyPI](https://pypi.org/project/ribasim/) and can therefore -be installed with [pip](https://docs.python.org/3/installing/index.html): -``` +The Ribasim Python package is [registered in PyPI](https://pypi.org/project/ribasim/) and [conda-forge](https://prefix.dev/channels/conda-forge/packages/ribasim) and can therefore be installed with [pip](https://docs.python.org/3/installing/index.html), [conda](https://docs.conda.io/) or [pixi](https://pixi.sh/): + +```sh pip install ribasim ``` For documentation please see the [examples](/guide/examples.ipynb) and [API reference](/reference/reference). + +# Install Ribasim QGIS plugin + +The Ribasim QGIS plugin requires [QGIS](https://qgis.org/en/site/) 3.34 or higher. +The Ribasim QGIS plugin is only distributed as a .zip archive and must be downloaded and installed in QGIS. + +## Install Ribasim plugin + +Firstly, download `ribasim_qgis.zip`: + +- QGIS plugin: [ribasim_qgis.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_qgis.zip). + +In QGIS, go to Plugins menu > Manage and Install Plugins... + +![](https://user-images.githubusercontent.com/4471859/224939069-9aae77ea-898f-442f-83b5-f2671c114956.png){fig-align="left"} + +Select "Install from ZIP": + +- Browse to the `ribasim_qgis.zip` file containing the plugin that was downloaded earlier +- Click "Install Plugin" + +![](https://user-images.githubusercontent.com/4471859/224939080-7fec5db2-4417-4f7b-8e45-034d4cf4fd75.png){fig-align="left"} + +Open the Ribasim plugin panel. + +![](https://user-images.githubusercontent.com/4471859/224939101-228e068a-875b-4df2-98bb-6ee6a3830ddd.png){fig-align="left"} + +## Install iMOD plugin + +In QGIS, navigate to "Plugins > Manage and Install Plugins > All". +In the search bar, type: "iMOD". Select the iMOD plugin, and click "Install". + +At least version 0.5.2 of the iMOD plugin is required. + +The Time Series widget from the iMOD plugin is used for visualizing Ribasim results, which is described in the [results section](#sec-results). +Documentation on the Time Series widget can be found in the [iMOD documentation](https://deltares.github.io/iMOD-Documentation/qgis_user_manual.html#time-series-time-series). diff --git a/docs/known_issues.qmd b/docs/known_issues.qmd new file mode 100644 index 000000000..0783d358d --- /dev/null +++ b/docs/known_issues.qmd @@ -0,0 +1,15 @@ +--- +title: "Known Issues" +--- + +Known issues can be found on the [GitHub issues page](https://github.com/Deltares/Ribasim/issues). +Besides the issues that need to be fixed, there are also considerations that had to be made while developing the application. + +# QGIS Plugin Known Shortcomings + +- The QGIS plugin does not have a dynamic relation between its own plugin and the layers that are loaded in the QGIS project. + That means that deleting a layer from the layers panel does not automatically remove it from the GeoPackage, as the layers are clones. +- Tables and geometries are not linked. If you remove an edge or a node, the tables containing information about those objects will remain. + It is up to the user to clean up all tables. +- The QGIS plugin does not update edges when nodes are moved. + Snapping is only used to grab the information of the node the user points to. diff --git a/docs/reference/index.qmd b/docs/reference/index.qmd index ed72654ed..b2c44fb8f 100644 --- a/docs/reference/index.qmd +++ b/docs/reference/index.qmd @@ -2,4 +2,4 @@ title: "Reference" --- -These pages contain the test models, node descriptions and developer documentation. +These pages contain the test models, node descriptions and Ribasim Python API documentation. diff --git a/docs/reference/node/basin.qmd b/docs/reference/node/basin.qmd index 8efe00fa4..ee87fb99a 100644 --- a/docs/reference/node/basin.qmd +++ b/docs/reference/node/basin.qmd @@ -15,13 +15,13 @@ similar schema, with the time column added. A static value for a variable is onl there is no dynamic forcing data for that variable. Specifically, if there is either no time table, it is empty, or all timestamps of that variable are missing. -column | type | unit | restriction ---------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -precipitation | Float64 | $m s^{-1}$ | non-negative -potential_evaporation | Float64 | $m s^{-1}$ | non-negative -drainage | Float64 | $m^3 s^{-1}$ | non-negative -infiltration | Float64 | $m^3 s^{-1}$ | non-negative +column | type | unit | restriction +--------- | ------- | --------------------- | ----------- +node_id | Int32 | - | sorted +precipitation | Float64 | $\text{m}/\text{s}$ | non-negative +potential_evaporation | Float64 | $\text{m}/\text{s}$ | non-negative +drainage | Float64 | $\text{m}^3/\text{s}$ | non-negative +infiltration | Float64 | $\text{m}^3/\text{s}$ | non-negative Note that if variables are not set in the static table, default values are used when possible. These are generally zero, e.g. no precipitation, no inflow. If it is not possible @@ -32,20 +32,80 @@ to have a reasonable and safe default, a value must be provided in the static ta This table is the transient form of the `Basin` table. The only difference is that a time column is added. The table must by sorted by time, and per time it must be sorted by `node_id`. + +### Interpolation + At the given timestamps the values are set in the simulation, such that the timeseries can be seen as forward filled. -## State +```{python} +# | code-fold: true +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from IPython.display import display, Markdown + +np.random.seed(1) +fig, ax = plt.subplots() +fontsize = 15 + +N = 5 +y = np.random.rand(N) +x = np.cumsum(np.random.rand(N)) + +def forward_fill(x_): + i = min(max(0, np.searchsorted(x, x_)-1), len(x)-1) + return y[i] + +def plot_forward_fill(i): + ax.plot([x[i], x[i+1]], [y[i], y[i]], color = "C0", label = "interpolation" if i == 0 else None) + +ax.scatter(x[:-1],y[:-1], label = "forcing at data points") +for i in range(N-1): + plot_forward_fill(i) + +x_missing_data = np.sort(x[0] + (x[-1] - x[0]) * np.random.rand(5)) +y_missing_data = [forward_fill(x_) for x_ in x_missing_data] +ax.scatter(x_missing_data, y_missing_data, color = "C0", marker = "x", label = "missing data") +ax.set_xticks([]) +ax.set_yticks([]) +ax.set_xlabel("time", fontsize = fontsize) +ax.set_ylabel("forcing", fontsize = fontsize) +xlim = ax.get_xlim() +ax.set_xlim(xlim[0], (x[-2] + x[-1])/2) +ax.legend() + +markdown_table = pd.DataFrame( + data = { + "time" : x, + "forcing" : y + } + ).to_markdown(index = False) + +display(Markdown(markdown_table)) +``` + +As shown this interpolation type supports missing data, and just maintains the last available value. Because of this for instance precipitation can be updated while evaporation stays the same. + +## State {#sec-state} -The state table aims to capture the full state of the Basin, such that it can be used as an -initial condition, potentially the outcome of an earlier simulation. Currently only the -Basin node types have state. +The state table gives the initial water levels of all Basins. column | type | unit | restriction --------- | ------- | ------------ | ----------- node_id | Int32 | - | sorted -level | Float64 | $m$ | $\ge$ basin bottom +level | Float64 | $\text{m}$ | $\ge$ basin bottom Each Basin ID needs to be in the table. +To use the final state of an earlier simulation as an initial condition, copy [`results/basin_state.arrow`](/reference/usage.qmd#sec-state) over to the `input_dir`, and point the TOML to it: + +```toml +[basin] +state = "basin_state.arrow" +``` + +This will start of the simulation with the same water levels as the end of the earlier simulation. +Since there is no time information in this state, the user is responsible to ensure that the earlier `endtime` matches the current `starttime`. +This only applies when the user wishes to continue an existing simulation as if it was one continuous simulation. ## Profile @@ -54,12 +114,12 @@ The profile table defines the physical dimensions of the storage reservoir of ea column | type | unit | restriction --------- | ------- | ------------ | ----------- node_id | Int32 | - | sorted -area | Float64 | $m^2$ | non-negative, per node_id: start positive and not decreasing -level | Float64 | $m$ | per node_id: increasing +area | Float64 | $\text{m}^2$ | non-negative, per node_id: start positive and not decreasing +level | Float64 | $\text{m}$ | per node_id: increasing The level is the level at the basin outlet. All levels are defined in meters above a datum -that is the same for the entire model. An example of the first 5 rows of such a table is -given below. The first 4 rows define the profile of ID `2`. The number of rows can vary +that is the same for the entire model. An example of the first 4 rows of such a table is +given below. The first 3 rows define the profile of ID `2`. The number of rows can vary per ID, and must be at least 2. Using a very large number of rows may impact performance. node_id | area | level @@ -75,6 +135,220 @@ Internally this get converted to two functions, $A(S)$ and $h(S)$, by integratin The minimum area cannot be zero to avoid numerical issues. The maximum area is used to convert the precipitation flux into an inflow. +### Interpolation + +#### Level to area + +The level to area relationship is defined with the `Basin / profile` data using linear interpolation. An example of such a relationship is shown below. + +```{python} +# | code-fold: true +fig, ax = plt.subplots() + +# Data +N = 3 +area = 25 * np.cumsum(np.random.rand(N)) +level = np.cumsum(np.random.rand(N)) + +# Interpolation +ax.scatter(level,area, label = "data") +ax.plot(level,area, label = "interpolation") +ax.set_xticks([level[0], level[-1]]) +ax.set_xticklabels(["bottom", "last supplied level"]) +ax.set_xlabel("level", fontsize = fontsize) +ax.set_ylabel("area", fontsize = fontsize) +ax.set_yticks([0]) + +# Extrapolation +level_extrap = 2 * level[-1] - level[-2] +area_extrap = 2 * area[-1] - area[-2] +ax.plot([level[-1], level_extrap], [area[-1], area_extrap], color = "C0", ls = "dashed", label = "extrapolation") +xlim = ax.get_xlim() +ax.set_xlim(xlim[0], (level[-1] + level_extrap)/2) + +ax.legend() +fig.tight_layout() + +markdown_table = pd.DataFrame( + data = { + "level" : level, + "area" : area + } + ).to_markdown(index = False) + +display(Markdown(markdown_table)) +``` + +For this interpolation it is validated that: + +- The areas are positive and are non-decreasing; +- There are at least 2 data points. + +This interpolation is used in each evaluation of the right hand side function of the ODE. + +#### Level to storage + +The level to storage relationship gives the volume of water in the basin at a given level, which is given by the integral over the level to area relationship from the basin bottom to the given level: + +$$ + S(h) = \int_{h_0}^h A(h')\text{d}h'. +$$ + +```{python} +# | code-fold: true +storage = np.diff(level) * area[:-1] + 0.5 * np.diff(area) * np.diff(level) +storage = np.cumsum(storage) +storage = np.insert(storage, 0, 0.0) +def S(h): + i = min(max(0, np.searchsorted(level, h)-1), len(level)-2) + return storage[i] + area[i] * (h - level[i]) + 0.5 * (area[i+1] - area[i]) / (level[i+1] - level[i]) * (h - level[i])**2 + +S = np.vectorize(S) + +# Interpolation +fig, ax = plt.subplots() +level_eval = np.linspace(level[0], level[-1], 100) +storage_eval = S(np.linspace(level[0], level[-1], 100)) +ax.scatter(level, storage, label = "storage at datapoints") +ax.plot(level_eval, storage_eval, label = "interpolation") +ax.set_xticks([level[0], level[-1]]) +ax.set_xticklabels(["bottom", "last supplied level"]) +ax.set_yticks([0]) +ax.set_xlabel("level", fontsize = fontsize) +ax.set_ylabel("storage", fontsize = fontsize) + +# Extrapolation +level_eval_extrap = np.linspace(level[-1], level_extrap, 35) +storage_eval_extrap = S(level_eval_extrap) +ax.plot(level_eval_extrap, storage_eval_extrap, color = "C0", linestyle = "dashed", label = "extrapolation") +xlim = ax.get_xlim() +ax.set_xlim(xlim[0], (level[-1] + level_extrap)/2) +ax.legend() +``` + +for converting the initial state in terms of levels to an initial state in terms of storages used in the core. + +#### Interactive basin example + +The profile data is not detailed enough to create a full 3D picture of the basin. However, if we assume the profile data is for a stretch of canal of given length, the following plot shows a cross section of the basin. +```{python} +# | code-fold: true +import plotly.graph_objects as go +import numpy as np + +def linear_interpolation(X,Y,x): + i = min(max(0, np.searchsorted(X, x)-1), len(X)-2) + return Y[i] + (Y[i+1] - Y[i])/(X[i+1] - X[i]) * (x - X[i]) + +def A(h): + return linear_interpolation(level, area, h) + +fig = go.Figure() + +x = area/2 +x = np.concat([-x[::-1], x]) +y = np.concat([level[::-1], level]) + +# Basin profile +fig.add_trace( + go.Scatter( + x = x, + y = y, + line = dict(color = "green"), + name = "Basin profile" + ) +) + +# Basin profile extrapolation +y_extrap = np.array([level[-1], level_extrap]) +x_extrap = np.array([area[-1]/2, area_extrap/2]) +fig.add_trace( + go.Scatter( + x = x_extrap, + y = y_extrap, + line = dict(color = "green", dash = "dash"), + name = "Basin extrapolation" + ) +) +fig.add_trace( + go.Scatter( + x = -x_extrap, + y = y_extrap, + line = dict(color = "green", dash = "dash"), + showlegend = False + ) +) + +# Water level +fig.add_trace( + go.Scatter(x = [-area[0]/2, area[0]/2], + y = [level[0], level[0]], + line = dict(color = "blue"), + name= "Water level") +) + +# Fill area +fig.add_trace( + go.Scatter( + x = [], + y = [], + fill = 'tonexty', + fillcolor = 'rgba(0, 0, 255, 0.2)', + line = dict(color = 'rgba(255, 255, 255, 0)'), + name = "Filled area" + ) +) + +# Create slider steps +steps = [] +for h in np.linspace(level[0], level_extrap, 100): + a = A(h) + s = S(h).item() + + + i = min(max(0, np.searchsorted(level, h)-1), len(level)-2) + fill_area = np.append(area[:i+1], a) + fill_level = np.append(level[:i+1], h) + fill_x = np.concat([-fill_area[::-1]/2, fill_area/2]) + fill_y = np.concat([fill_level[::-1], fill_level]) + + step = dict( + method = "update", + args=[ + { + "x": [x, x_extrap, -x_extrap, [-a/2, a/2], fill_x], + "y": [y, y_extrap, y_extrap, [h, h], fill_y] + }, + {"title": f"Interactive water level
Area: {a:.2f}, Storage: {s:.2f}"} + ], + label=str(round(h, 2)) + ) + steps.append(step) + +# Create slider +sliders = [dict( + active=0, + currentvalue={"prefix": "Level: "}, + pad={"t": 25}, + steps=steps +)] + +fig.update_layout( + title = { + "text": f"Interactive water level
Area: {area[0]:.2f}, Storage: 0.0", + }, + yaxis_title = "level", + sliders = sliders, + margin = {"t": 100, "b": 100} +) + +fig.show() +``` + +#### Storage to level + +The level is computed from the storage by inverting the level to storage relationship shown above. See [here](https://docs.sciml.ai/DataInterpolations/stable/inverting_integrals/) for more details. + ## Area The optional area table is not used during computation, but provides a place to associate areas in the form of polygons to Basins. @@ -91,12 +365,12 @@ The subgrid table defines a piecewise linear interpolation from a basin water le Many subgrid elements may be associated with a single basin, each with distinct interpolation functions. This functionality can be used to translate a single lumped basin level to a more spatially detailed representation (e.g comparable to the output of a hydrodynamic simulation). -column | type | unit | restriction -------------- | ------- | ----- | ------------------------ -subgrid_id | Int32 | - | sorted -node_id | Int32 | - | constant per subgrid_id -basin_level | Float64 | $m$ | sorted per subgrid_id -subgrid_level | Float64 | $m$ | sorted per subgrid_id +column | type | unit | restriction +------------- | ------- | ------------ | ------------------------ +subgrid_id | Int32 | - | sorted +node_id | Int32 | - | constant per subgrid_id +basin_level | Float64 | $\text{m}$ | sorted per subgrid_id +subgrid_level | Float64 | $\text{m}$ | sorted per subgrid_id The table below shows example input for two subgrid elements: @@ -118,39 +392,38 @@ Note that the interpolation to subgrid water level is not constrained by any wat Generally, to create physically meaningful subgrid water levels, the subgrid table must be parametrized properly such that the spatially integrated water volume of the subgrid elements agrees with the total storage volume of the basin. ## Concentration {#sec-basin-conc} -This table defines the concentration(s) of (a) substance(s) for the inflow boundaries of a Basin node. +This table defines the concentration of substances for the inflow boundaries of a Basin node. -column | type | unit | restriction -------------- | -------- | --------------- | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -substance | String | | can correspond to known Delwaq substances -drainage | Float64 | $g m^{-3}$ | (optional) -precipitation | Float64 | $g m^{-3}$ | (optional) +column | type | unit | restriction +------------- | -------- | ------------------------ | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +substance | String | | can correspond to known Delwaq substances +drainage | Float64 | $\text{g}/\text{m}^3$ | (optional) +precipitation | Float64 | $\text{g}/\text{m}^3$ | (optional) ## ConcentrationState {#sec-basin-conc-state} -This table defines the concentration(s) of (a) substance(s) in the basin at the start of the simulation. +This table defines the concentration of substances in the Basin at the start of the simulation. -column | type | unit | restriction --------------- | -------- | ------------ | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -substance | String | - | can correspond to known Delwaq substances -concentration | Float64 | $g m^{-3}$ | +column | type | unit | restriction +-------------- | -------- | ------------------------ | ----------- +node_id | Int32 | - | sorted +substance | String | - | can correspond to known Delwaq substances +concentration | Float64 | $\text{g}/\text{m}^3$ | ## ConcentrationExternal This table is used for (external) concentrations, that can be used for Control lookups. -column | type | unit | restriction --------------- | -------- | ------------ | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -substance | String | - | can correspond to known Delwaq substances -concentration | Float64 | $g m^{-3}$ | +column | type | unit | restriction +-------------- | -------- | ------------------------ | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +substance | String | - | can correspond to known Delwaq substances +concentration | Float64 | $\text{g}/\text{m}^3$ | # Equations -## The reduction factor {#sec-reduction_factor} +## The reduction factor {#sec-reduction-factor} At several points in the equations below a *reduction factor* is used. This is a term that makes certain transitions more smooth, for instance when a pump stops providing water when its source basin dries up. The reduction factor is given by \begin{align} @@ -226,7 +499,7 @@ $$ $$ {#eq-evap} Here $E_\text{pot} = E_\text{pot}(t)$ is the potential evaporation rate and $A$ is the wetted area. -$\phi$ is the [reduction factor](/concept/equations.qmd#sec-reduction_factor) which depends on the depth $d$. +$\phi$ is the [reduction factor](/reference/node/basin.qmd#sec-reduction-factor) which depends on the depth $d$. It provides a smooth gradient as $u \rightarrow 0$. A straightforward formulation $Q_E = \mathrm{max}(E_\text{pot} A(u), 0)$ is unsuitable, as $\frac{\mathrm{d}Q_E}{\mathrm{d}u}(u=0)$ is not well-defined. @@ -246,7 +519,7 @@ $$ Q_\text{inf} = \sum_{i=1}^{n} \sum_{j=1}^{m} \max(Q_{\mathrm{mf6}_{i,j}}, 0.0) $$ {#eq-inf} -Where $i$ is the index of the boundary condition, $j$ the MODFLOW 6 cell index, $n$ the number of boundary conditions, and $m$ the number of MODFLOW 6 cells in the Basin. +Where $i$ is the index of the boundary condition, $j$ the MODFLOW 6 cell index, $n$ the number of boundary conditions, and $\text{m}$ the number of MODFLOW 6 cells in the Basin. $Q_{\mathrm{mf6}_{i,j}}$ is the flow computed by MODFLOW 6 for cell $j$ for boundary condition $i$. Drainage is a lump sum for the Basin, and consists of the sum of the absolute value of all **negative** flows of the MODFLOW 6 boundary conditions in the Basin. diff --git a/docs/reference/node/continuous-control.qmd b/docs/reference/node/continuous-control.qmd new file mode 100644 index 000000000..d8df6cf0d --- /dev/null +++ b/docs/reference/node/continuous-control.qmd @@ -0,0 +1,49 @@ +--- +title: "ContinuousControl" +--- + +The `ContinuousControl` node allows for fine control of a controllable property of a connector node, which is updated at each time step. This control can be set up as follows: + +1. Define a compound variable. This is a linear combination of variables in the model the `ContinuousControl` node can listen to, i.e. flows and levels.; +2. Define a piecewise linear function by providing datapoints which get interpolated. The controlled parameter is then set to the outcome of this function given the value of the compound variable. + +:::{.callout-note} +Having `ContinuousControl` nodes depend on eachother or `PidControl` nodes does *not* work. +For instance, if one `ContinuousControl` node sets the flow rate of a pump, this flow rate cannot be used as the input of another `ContinuousControl` node. This will not throw an error but will produce incorrect results. +::: + +# Tables + +## Variable + +The compound variable schema defines linear combinations of variables which can be used in conditions. This means that +this schema defines new variables with the given `compound_variable_id` that look like +$$ + \text{weight}_1 * \text{variable}_1 + \text{weight}_2 * \text{variable}_2 + \ldots, +$$ + +which can be for instance an average or a difference of variables. If a variable comes from a timeseries, a look ahead $\Delta t$ can be supplied. There is only one compound variable per `ContinuousControl` node. + +column | type | unit | restriction +-------------------- | -------- | ---------- | ----------- +node_id | Int32 | - | sorted +listen_node_type | String | - | known node type +listen_node_id | Int32 | - | sorted per node_id +variable | String | - | must be "level" or "flow_rate", sorted per listen_node_id +weight | Float64 | - | (optional, default 1.0) +look_ahead | Float64 | $\text{s}$ | Only on transient boundary conditions, non-negative (optional, default 0.0). + +## Function + +The function table defines a piecewise linear function $f$ interpolating between `(input, output)` datapoints for each `ContinuousControl` node. The total computation thus looks like + +$$ + f(\text{weight}_1 * \text{variable}_1 + \text{weight}_2 * \text{variable}_2 + \ldots). +$$ + +column | type | unit | restriction +-------------------- | ------- | ------- | ----------- +node_id | Int32 | - | sorted +input | Float64 | - | sorted per node_id +output | Float64 | - | - +controlled_variable | String | - | must be "level" or "flow_rate" diff --git a/docs/reference/node/discrete-control.qmd b/docs/reference/node/discrete-control.qmd index 022a6290a..ab0d93a08 100644 --- a/docs/reference/node/discrete-control.qmd +++ b/docs/reference/node/discrete-control.qmd @@ -46,15 +46,15 @@ $$ which can be for instance an average or a difference of variables. If a variable comes from a time-series, a look ahead $\Delta t$ can be supplied. -column | type | unit | restriction --------------------- | -------- | ------- | ----------- -node_id | Int32 | - | sorted -compound_variable_id | Int32 | - | sorted per node_id -listen_node_type | String | - | known node type -listen_node_id | Int32 | - | sorted per node_id -variable | String | - | must be "level" or "flow_rate", sorted per listen_node_id -weight | Float64 | - | (optional, default 1.0) -look_ahead | Float64 | $s$ | Only on transient boundary conditions, non-negative (optional, default 0.0). +column | type | unit | restriction +-------------------- | -------- | -----------| ----------- +node_id | Int32 | - | sorted +compound_variable_id | Int32 | - | sorted per node_id +listen_node_type | String | - | known node type +listen_node_id | Int32 | - | sorted per node_id +variable | String | - | must be "level" or "flow_rate", sorted per listen_node_id +weight | Float64 | - | (optional, default 1.0) +look_ahead | Float64 | $\text{s}$ | Only on transient boundary conditions, non-negative (optional, default 0.0). These variables can be listened to: - The level of a Basin diff --git a/docs/reference/node/flow-boundary.qmd b/docs/reference/node/flow-boundary.qmd index b9725a710..0529daf77 100644 --- a/docs/reference/node/flow-boundary.qmd +++ b/docs/reference/node/flow-boundary.qmd @@ -4,48 +4,43 @@ title: "FlowBoundary" A FlowBoundary adds water to the model at a specified flow rate. It can be used as a boundary condition like a measured upstream flow rate, or lateral inflow. +We require that an edge connected to a FlowBoundary is always outgoing, and points towards a Basin. # Tables ## Static -We require that the edge connecting the FlowBoundary to the Basin should point towards the Basin, -so that positive flow corresponds to water being added to the model. -The set flow rate will be pumped unless the intake storage (for a negative flow rate) is less than $10~m^3$, -in which case the flow rate will be linearly reduced to $0~m^3/s$. -Note that the connected node must always be a Basin. - -column | type | unit | restriction -------------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -active | Bool | - | (optional, default true) -flow_rate | Float64 | $m^3 s^{-1}$ | non-negative +column | type | unit | restriction +------------- | ------- | --------------------- | ----------- +node_id | Int32 | - | sorted +active | Bool | - | (optional, default true) +flow_rate | Float64 | $\text{m}^3/\text{s}$ | non-negative ## Time This table is the transient form of the `FlowBoundary` table. -The only differences are that a time column is added and the nodes are assumed to be active so this column is removed. +The only differences are that a time column is added and the nodes are assumed to be active so this column is not present. The table must by sorted by time, and per time it must be sorted by `node_id`. With this the flow rates can be updated over time. In between the given times the flow rate is interpolated linearly, and outside the flow rate is constant given by the nearest time value. Note that a `node_id` can be either in this table or in the static one, but not both. -column | type | unit | restriction ---------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -flow_rate | Float64 | $m^3 s^{-1}$ | non-negative +column | type | unit | restriction +--------- | ------- | --------------------- | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +flow_rate | Float64 | $\text{m}^3/\text{s}$ | non-negative ## Concentration {#sec-flow-boundary-conc} -This table defines the concentration(s) of (a) substance(s) for the flow from the FlowBoundary. - -column | type | unit | restriction --------------- | -------- | ------------ | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -substance | String | - | can correspond to known Delwaq substances -concentration | Float64 | $g m^{-3}$ | +This table defines the concentration of substances for the flow from the FlowBoundary. + +column | type | unit | restriction +-------------- | -------- | --------------------- | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +substance | String | - | can correspond to known Delwaq substances +concentration | Float64 | $\text{g}/\text{m}^3$ | # Equations diff --git a/docs/reference/node/flow-demand.qmd b/docs/reference/node/flow-demand.qmd index 69f993ea9..dbd139fcf 100644 --- a/docs/reference/node/flow-demand.qmd +++ b/docs/reference/node/flow-demand.qmd @@ -9,20 +9,20 @@ FlowDemand nodes can set a flow demand only for a single connector node. ## Static -column | type | unit | restriction -------------- | -------- | ------------ | ----------- -node_id | Int32 | - | sorted -priority | Int32 | - | positive -demand | Float64 | $m^3 s^{-1}$ | non-negative +column | type | unit | restriction +------------- | -------- | --------------------- | ----------- +node_id | Int32 | - | sorted +priority | Int32 | - | positive +demand | Float64 | $\text{m}^3/\text{s}$ | non-negative ## Time This table is the transient form of the `FlowDemand` table, in which a time-dependent demand can be supplied. Similar to the static version, only a single priority per `FlowDemand` node can be provided. -column | type | unit | restriction -------------- | -------- | ------------ | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -priority | Int32 | - | positive -demand | Float64 | $m^3 s^{-1}$ | non-negative +column | type | unit | restriction +------------- | -------- | --------------------- | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +priority | Int32 | - | positive +demand | Float64 | $\text{m}^3/\text{s}$ | non-negative diff --git a/docs/reference/node/level-boundary.qmd b/docs/reference/node/level-boundary.qmd index 8282dcbea..ca77ef0a3 100644 --- a/docs/reference/node/level-boundary.qmd +++ b/docs/reference/node/level-boundary.qmd @@ -15,7 +15,7 @@ column | type | unit | restriction ------------- | ------- | ------------ | ----------- node_id | Int32 | - | sorted active | Bool | - | (optional, default true) -level | Float64 | $m$ | - +level | Float64 | $\text{m}$ | - ## Time @@ -31,17 +31,17 @@ column | type | unit | restriction --------- | ------- | ------------ | ----------- node_id | Int32 | - | sorted time | DateTime | - | sorted per node_id -level | Float64 | $m$ | - +level | Float64 | $\text{m}$ | - ## Concentration {#sec-level-boundary-conc} -This table defines the concentration(s) of (a) substance(s) for the flow from the LevelBoundary. - -column | type | unit | restriction --------------- | -------- | ------------ | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -substance | String | - | can correspond to known Delwaq substances -concentration | Float64 | $g m^{-3}$ | +This table defines the concentration of substances for the flow from the LevelBoundary. + +column | type | unit | restriction +-------------- | -------- | --------------------- | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +substance | String | - | can correspond to known Delwaq substances +concentration | Float64 | $\text{g}/\text{m}^3$ | # Equations diff --git a/docs/reference/node/level-demand.qmd b/docs/reference/node/level-demand.qmd index 9c0f1b74a..23aaff5ef 100644 --- a/docs/reference/node/level-demand.qmd +++ b/docs/reference/node/level-demand.qmd @@ -20,8 +20,8 @@ If both are missing, `LevelDemand` won't have any effects on allocation. column | type | unit | restriction ------------- | ------- | ------------ | ----------- node_id | Int32 | - | sorted -min_level | Float64 | $m$ | (optional, default -Inf) -max_level | Float64 | $m$ | (optional, default Inf) +min_level | Float64 | $\text{m}$ | (optional, default -Inf) +max_level | Float64 | $\text{m}$ | (optional, default Inf) priority | Int32 | - | positive ## Time @@ -33,6 +33,6 @@ column | type | unit | restriction ------------- | ------- | ------------ | ----------- node_id | Int32 | - | sorted time | DateTime | - | sorted per node id -min_level | Float64 | $m$ | - -max_level | Float64 | $m$ | - +min_level | Float64 | $\text{m}$ | - +max_level | Float64 | $\text{m}$ | - priority | Int32 | - | positive diff --git a/docs/reference/node/linear-resistance.qmd b/docs/reference/node/linear-resistance.qmd index fd8fe48ed..1103a04d4 100644 --- a/docs/reference/node/linear-resistance.qmd +++ b/docs/reference/node/linear-resistance.qmd @@ -8,13 +8,13 @@ Bidirectional flow proportional to the level difference between the connected ba ## Static -column | type | unit | restriction -------------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -control_state | String | - | (optional) sorted per node_id -active | Bool | - | (optional, default true) -resistance | Float64 | $sm^{-2}$ | - -max_flow_rate | Float64 | $m^3 s^{-1}$ | non-negative +column | type | unit | restriction +------------- | ------- | --------------------- | ----------- +node_id | Int32 | - | sorted +control_state | String | - | (optional) sorted per node_id +active | Bool | - | (optional, default true) +resistance | Float64 | $\text{s}/\text{m}^2$ | - +max_flow_rate | Float64 | $\text{m}^3/s$ | non-negative # Equations @@ -22,7 +22,7 @@ A LinearResistance connects two Basins together. The flow between the two Basins is determined by a linear relationship, up to an optional maximum flow rate: $$ -Q_\text{linear_resistance} = \mathrm{clamp}(\frac{h_a - h_b}{R}, -Q_{\max}, Q_{\max}) +Q_\text{linear\_resistance} = \mathrm{clamp}\left(\frac{h_a - h_b}{R}, -Q_{\max}, Q_{\max}\right) $$ Here $h_a$ is the water level in the incoming Basin and $h_b$ is the water level in the outgoing Basin. diff --git a/docs/reference/node/manning-resistance.qmd b/docs/reference/node/manning-resistance.qmd index 09f9cb7d2..94713b013 100644 --- a/docs/reference/node/manning-resistance.qmd +++ b/docs/reference/node/manning-resistance.qmd @@ -9,15 +9,15 @@ The flow rate is calculated by conservation of energy and the Manning-Gauckler f ## Static -column | type | unit | restriction -------------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -control_state | String | - | (optional) sorted per node_id -active | Bool | - | (optional, default true) -length | Float64 | $m$ | positive -manning_n | Float64 | $s m^{-\frac{1}{3}}$ | positive -profile_width | Float64 | $m$ | positive -profile_slope | Float64 | - | - +column | type | unit | restriction +------------- | ------- | ---------------------------------- | ----------- +node_id | Int32 | - | sorted +control_state | String | - | (optional) sorted per node_id +active | Bool | - | (optional, default true) +length | Float64 | $\text{m}$ | positive +manning_n | Float64 | $\text{s} \text{m}^{-\frac{1}{3}}$ | positive +profile_width | Float64 | $\text{m}$ | positive +profile_slope | Float64 | - | - # Equations @@ -126,16 +126,49 @@ $$ The $\textrm{sign}(\Delta h)$ term causes the direction of the flow to reverse if the head in basin $b$ is larger than in basin $a$. -This expression however leads to problems in simulation since the derivative of $Q$ -with respect to $\Delta h$ tends to $\pm \infty$ as $\Delta h$ tends to 0. Therefore -we use the slightly modified expression +This expression however has a derivative which tends to $\infty$ as $\Delta h$ tends to $0$, which can lead to instabilities in simulation. Therefore we use the modified expression $$ -Q = \textrm{sign}(\Delta h) \frac{A}{n} R_h^{2/3}\sqrt{\frac{\Delta h}{L} s(\Delta h)} +Q = \frac{A}{n} R_h^{2/3}s\left(\frac{\Delta h}{L}; 10^{-3}\right), $$ -to smooth out this problem. Here $s(x) = \frac{2}{\pi}\arctan{1000x}$ can be thought of as a smooth approximation of the sign function. +where $s$ is a relaxed square root function: +$$ +s(x; x_0) += +\begin{align} + \begin{cases} + \frac{\sqrt{x_0}}{4}\left(\frac{x}{p}\right)^3\left(9 - 5\left(\frac{x}{p}\right)^2\right) &\text{ if } |x| < x_0 \\ + \textrm{sign}(x)\sqrt{|x|} &\text{ if } |x| \ge x_0 + \end{cases} +\end{align} +$$ + +```{python} +# | code-fold: true +import numpy as np +import matplotlib.pyplot as plt + +def s(x, threshold): + if np.abs(x) < threshold: + x_scaled = x / threshold + return np.sqrt(threshold) * x_scaled**3 * (9 - 5*x_scaled**2) / 4 + else: + return np.sign(x)*np.sqrt(np.abs(x)) + +x = np.linspace(-0.0025, 0.0025, 100) +threshold = 1e-3 + +fig, ax = plt.subplots() + +y_o = np.sign(x)*np.sqrt(np.abs(x)) +y_s = [s(x_, threshold) for x_ in x] + +ax.plot(x, y_o, ls = ":", label = r"sign$(x)\sqrt{|x|}$") +ax.plot(x, y_s, color = "C0", label = r"$s\left(x; 10^{-3}\right)$") +ax.legend(); +``` :::{.callout-note} The computation of $S_f$ is not exact: we base it on a representative area and hydraulic radius, rather than integrating $S_f$ along the length of a reach. diff --git a/docs/reference/node/outlet.qmd b/docs/reference/node/outlet.qmd index 38ce6b088..673f7b279 100644 --- a/docs/reference/node/outlet.qmd +++ b/docs/reference/node/outlet.qmd @@ -3,43 +3,38 @@ title: "Outlet" --- The Outlet lets water flow downstream with a prescribed flow rate. -It is similar to the Pump, with two additional physical constraints: +It is similar to the Pump, except that water only flows down, by gravity. -1. Water only flows down, by gravity -2. The upstream level must be above the minimum crest level if the upstream level is defined. - -When PID controlled, the outlet must point towards the controlled basin in terms of edges. +When PID controlled, the Outlet must point towards the controlled Basin in terms of edges. # Tables ## Static -column | type | unit | restriction ---------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -control_state | String | - | (optional) sorted per node_id -active | Bool | - | (optional, default true) -flow_rate | Float64 | $m^3 s^{-1}$ | non-negative -min_flow_rate | Float64 | $m^3 s^{-1}$ | (optional, default 0.0) -max_flow_rate | Float64 | $m^3 s^{-1}$ | (optional) -min_crest_level | Float64 | $m$ | (optional) +column | type | unit | restriction +--------- | ------- | ---------------------- | ----------- +node_id | Int32 | - | sorted +control_state | String | - | (optional) sorted per node_id +active | Bool | - | (optional, default true) +flow_rate | Float64 | $\text{m}^3/\text{s}\$ | non-negative +min_flow_rate | Float64 | $\text{m}^3/\text{s}\$ | (optional, default 0.0) +max_flow_rate | Float64 | $\text{m}^3/\text{s}\$ | (optional) +min_upstream_level | Float64 | $\text{m}$ | (optional) +max_downstream_level | Float64 | $\text{m}$ | (optional) # Equations -The Outlet is very similar to the Pump, but it has a few extra [reduction factors](/concept/equations.qmd#sec-reduction_factor) for physical constraints: +The Outlet is very similar to the Pump, but it has an extra [reduction factor](/reference/node/basin.qmd#sec-reduction-factor) for physical constraints: $$ -Q = \mathrm{clamp}(\phi(u_a; 10.0)\phi(\Delta h; 0.1) \phi(h_a-h_\text{min};0.1) Q_\text{set}, Q_{\min}, Q_{\max}) +Q = \mathrm{clamp}(\phi Q_\text{set}, Q_{\min}, Q_{\max}) $$ -$Q$ is the realized Outlet flow rate. -$Q_\text{set}$ is the Outlet's target `flow_rate`. -$Q_{\min}$ and $Q_{\max}$ are the Outlet `min_flow_rate` and `max_flow_rate`. -The subscript $a$ denotes the upstream node and $b$ the downstream node. -The first reduction factor reduces flow from a drying upstream Basin. -The second one makes sure that the Outlet flow goes to zero as the head difference $\Delta h = h_a - h_b$ goes to zero. -The last one makes sure that the Outlet only produces flow when the upstream level is above the minimum crest level $h_\text{min}$. - - -Not all node types upstream or downstream of the Outlet have a defined level. -If this is the case, and therefore the reduction factor cannot be computed, it is defined to be $1.0$. +- $Q$ is the realized Outlet flow rate. +- $Q_\text{set}$ is the Outlet's target `flow_rate`. +- $Q_{\min}$ and $Q_{\max}$ are the Outlet `min_flow_rate` and `max_flow_rate`. +- $\phi$ is the reduction factor, which smoothly reduces flow based on all of these criteria: + - The upstream volume is below $10 m^3$. + - The upstream level is less than $0.02 m$ above the downstream level. + - The upstream level is below `min_upstream_level` + $0.02 m$ + - The downstream level is above `max_downstream_level` - $0.02 m$ diff --git a/docs/reference/node/pid-control.qmd b/docs/reference/node/pid-control.qmd index 3e6bd9d9a..cae2d0a9b 100644 --- a/docs/reference/node/pid-control.qmd +++ b/docs/reference/node/pid-control.qmd @@ -13,17 +13,17 @@ In the future controlling the flow on a particular edge could be supported. # Static -column | type | unit | restriction ----------------- | -------- | -------- | ----------- -node_id | Int32 | - | sorted -control_state | String | - | (optional) sorted per node_id -active | Bool | - | (optional, default true) -listen_node_type | String | - | known node type -listen_node_id | Int32 | - | - -target | Float64 | $m$ | - -proportional | Float64 | $s^{-1}$ | - -integral | Float64 | $s^{-2}$ | - -derivative | Float64 | - | - +column | type | unit | restriction +---------------- | -------- | --------------- | ----------- +node_id | Int32 | - | sorted +control_state | String | - | (optional) sorted per node_id +active | Bool | - | (optional, default true) +listen_node_type | String | - | known node type +listen_node_id | Int32 | - | - +target | Float64 | $\text{m}$ | - +proportional | Float64 | $\text{s}^{-1}$ | - +integral | Float64 | $\text{s}^{-2}$ | - +derivative | Float64 | - | - ## Time @@ -35,16 +35,16 @@ these values interpolated linearly, and outside these values area constant given nearest time value. Note that a `node_id` can be either in this table or in the static one, but not both. -column | type | unit | restriction ----------------- | -------- | -------- | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -listen_node_type | Int32 | - | known node type -listen_node_id | Int32 | - | - -target | Float64 | $m$ | - -proportional | Float64 | $s^{-1}$ | - -integral | Float64 | $s^{-2}$ | - -derivative | Float64 | - | - +column | type | unit | restriction +---------------- | -------- | --------------- | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +listen_node_type | Int32 | - | known node type +listen_node_id | Int32 | - | - +target | Float64 | $\text{m}$ | - +proportional | Float64 | $\text{s}^{-1}$ | - +integral | Float64 | $\text{s}^{-2}$ | - +derivative | Float64 | - | - # Equations diff --git a/docs/reference/node/pump.qmd b/docs/reference/node/pump.qmd index 2661dad90..67712ad36 100644 --- a/docs/reference/node/pump.qmd +++ b/docs/reference/node/pump.qmd @@ -17,21 +17,25 @@ column | type | unit | restriction node_id | Int32 | - | sorted control_state | String | - | (optional) sorted per node_id active | Bool | - | (optional, default true) -flow_rate | Float64 | $m^3 s^{-1}$ | non-negative -min_flow_rate | Float64 | $m^3 s^{-1}$ | (optional, default 0.0) -max_flow_rate | Float64 | $m^3 s^{-1}$ | (optional) +flow_rate | Float64 | $\text{m}^3/\text{s}$ | non-negative +min_flow_rate | Float64 | $\text{m}^3/\text{s}$ | (optional, default 0.0) +max_flow_rate | Float64 | $\text{m}^3/\text{s}$ | (optional) +min_upstream_level | Float64 | $\text{m}$ | (optional) +max_downstream_level | Float64 | $\text{m}$ | (optional) # Equations The behavior of a Pump is simple if these nodes are not PID controlled. -Their flow is given by a fixed flow rate $q$, multiplied by a reduction factor: +Their flow is given by a fixed flow rate $q$, multiplied by reduction factors: $$ -Q = \mathrm{clamp}(\phi(u; 10.0) Q_\text{set}, Q_{\min}, Q_{\max}) +Q = \mathrm{clamp}(\phi Q_\text{set}, Q_{\min}, Q_{\max}) $$ -$Q$ is the realized Pump flow rate. -$Q_\text{set}$ is the Pump's target `flow_rate`. -$Q_{\min}$ and $Q_{\max}$ are the Pump `min_flow_rate` and `max_flow_rate`. -$u$ is the storage of the incoming Basin. -The [reduction factor](/concept/equations.qmd#sec-reduction_factor) $\phi$ makes sure that the flow of the Pump goes smoothly to $0$ as the incoming Basin dries out. +- $Q$ is the realized Pump flow rate. +- $Q_\text{set}$ is the Pump's target `flow_rate`. +- $Q_{\min}$ and $Q_{\max}$ are the Pump `min_flow_rate` and `max_flow_rate`. +- $\phi$ is the reduction factor, which smoothly reduces flow based on all of these criteria: + - The upstream volume is below $10 m^3$. + - The upstream level is below `min_upstream_level` + $0.02 m$ + - The downstream level is above `max_downstream_level` - $0.02 m$ diff --git a/docs/reference/node/tabulated-rating-curve.qmd b/docs/reference/node/tabulated-rating-curve.qmd index edeaae49b..7e45c6b4f 100644 --- a/docs/reference/node/tabulated-rating-curve.qmd +++ b/docs/reference/node/tabulated-rating-curve.qmd @@ -10,13 +10,14 @@ Use it for instance to model flow over a weir. ## Static -column | type | unit | restriction -------------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -control_state | String | - | (optional) sorted per node_id -active | Bool | - | (optional, default true) -level | Float64 | $m$ | sorted per control_state, unique -flow_rate | Float64 | $m^3 s^{-1}$ | start at 0, increasing +column | type | unit | restriction +------------- | ------- | --------------------- | ----------- +node_id | Int32 | - | sorted +control_state | String | - | (optional) sorted per node_id +active | Bool | - | (optional, default true) +max_downstream_level | Float64 | $\text{m}$ | (optional) +level | Float64 | $\text{m}$ | sorted per control_state, unique +flow_rate | Float64 | $\text{m}^3/\text{s}$ | start at 0, increasing Thus a single rating curve can be given by the following table: @@ -31,6 +32,51 @@ Below the lowest given level of -0.10, the flow rate is kept at 0. Between given levels the flow rate is interpolated linearly. Above the maximum given level of 20.09, the flow rate keeps increases linearly according to the slope of the last segment. +### Interpolation + +The $Q(h)$ relationship of a tabulated rating curve is defined as a linear interpolation. + +```{python} +# | code-fold: true +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from IPython.display import display, Markdown + +np.random.seed(0) +fontsize = 15 + +N = 10 +level = np.cumsum(np.random.rand(N)) +flow = level**2 + np.random.rand(N) +flow[0] = 0.0 +fig, ax = plt.subplots() +ax.set_xticks([]) +ax.set_yticks([0]) +ax.scatter(level, flow, label = "data") +ax.plot(level, flow, label = "interpolation", color = "C0") +ax.plot([level[0] - 1, level[0]], [0, 0], label = "extrapolation", linestyle = "dashed") +ax.legend() +ax.set_xlabel("level", fontsize = fontsize) +ax.set_ylabel("flow", fontsize = fontsize) + +level_extrap = 2 * level[-1] - level[-2] +flow_extrap = 2 * flow[-1] - flow[-2] +ax.plot([level[-1], level_extrap], [flow[-1], flow_extrap], color = "C0", linestyle = "dashed") +ax.set_xlim(level[0] - 0.5, (level[-1] + level_extrap)/2) + +markdown_table = pd.DataFrame( + data = { + "level" : level, + "flow" : flow + } + ).to_markdown(index = False) + +display(Markdown(markdown_table)) +``` + +Here it is validated that the flow starts at $0$ and is non-decreasing. The flow is extrapolated as $0$ backward and linearly forward. + ## Time This table is the transient form of the `TabulatedRatingCurve` table. @@ -39,26 +85,30 @@ The table must by sorted by time, and per time it must be sorted by `node_id`. With this the rating curves can be updated over time. Note that a `node_id` can be either in this table or in the static one, but not both. -column | type | unit | restriction ---------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -time | DateTime | - | sorted per node_id -level | Float64 | $m$ | sorted per node_id per time -flow_rate | Float64 | $m^3 s^{-1}$ | non-negative +column | type | unit | restriction +-------------------- | ------- | --------------------- | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +level | Float64 | $\text{m}$ | sorted per node_id per time +flow_rate | Float64 | $\text{m}^3/\text{s}$ | non-negative +max_downstream_level | Float64 | $\text{m}$ | (optional) # Equations -The Tabulated Rating Curve is a tabulation of a basin's discharge behavior. +The TabulatedRatingCurve is a tabulation of a Basin's discharge behavior. It describes a piecewise linear relationship between the Basin's level and its discharge. It can be understood as an empirical description of a Basin's properties. This can include a weir, but also the lumped hydraulic behavior of the upstream channels. $$ -Q = \phi(u; 10.0) f(h_a) +Q = \phi f(h) $$ Where: -- $h_a$ is the upstream water level -- $\phi$ is the reduction factor for the upstream Basin drying out +- $h$ is the upstream water level - $f$ is a piecewise linear function describing the given rating curve $Q(h)$ +- $\phi$ is the reduction factor, which smoothly reduces flow based on all of these criteria: + - The upstream volume is below $10 m^3$. + - The upstream level is less than $0.02 m$ above the downstream level. + - The downstream level is above `max_downstream_level` - $0.02 m$ diff --git a/docs/reference/node/user-demand.qmd b/docs/reference/node/user-demand.qmd index 64e50ef94..9239cd853 100644 --- a/docs/reference/node/user-demand.qmd +++ b/docs/reference/node/user-demand.qmd @@ -4,8 +4,11 @@ title: "UserDemand" A UserDemand takes water from the Basin that supplies it. -When allocation is not used, UserDemand attempts to extract the full demand from the Basin. -When allocation is used, water is allocated based on its priority, where priority 1 denotes the most important demand. +When allocation is not used, a `UserDemand` node attempts to extract the full demand from the connected Basin. +When allocation is used, the amount a `UserDemand` node is allowed to abstract is determined by the [allocation algorithm](../../concept/allocation.qmd). +This algorithm first tries to allocate from the directly connected basin, and then from other sources whose flow can reach the `UserDemand` node. +Note that `priority` is used to determine the order in which the UserDemands are allocated water. +This parameter is only used when allocation is active and is optional when allocation is not active. When the connected Basin is almost empty or reaches the minimum level at which the UserDemand can extract water (`min_level`), it will stop extraction. @@ -17,14 +20,16 @@ The difference is consumed by the UserDemand. ## Static -column | type | unit | restriction -------------- | ------- | ------------ | ----------- -node_id | Int32 | - | sorted -active | Bool | - | (optional, default true) -demand | Float64 | $m^3 s^{-1}$ | non-negative -return_factor | Float64 | - | between [0 - 1] -min_level | Float64 | $m$ | - -priority | Int32 | - | positive, sorted per node id +This table contains the static form of the `UserDemand` node. + +column | type | unit | restriction +------------- | ------- | ----------------------| ----------- +node_id | Int32 | - | sorted +active | Bool | - | (optional, default true) +demand | Float64 | $\text{m}^3/\text{s}$ | non-negative +return_factor | Float64 | - | between [0 - 1] +min_level | Float64 | $\text{m}$ | - +priority | Int32 | - | positive, sorted per node id ## Time @@ -34,16 +39,27 @@ The table must by sorted by time, and per time it must be sorted by `node_id`. With this the demand can be updated over time. In between the given times the demand is interpolated linearly, and outside the demand is constant given by the nearest time value. +The `priority` is not allowed to change over time. Note that a `node_id` can be either in this table or in the static one, but not both. -column | type | unit | restriction -------------- | -------- | ------------ | ----------- -node_id | Int32 | - | sorted -priority | Int32 | - | positive, sorted per node id -time | DateTime | - | sorted per priority per node id -demand | Float64 | $m^3 s^{-1}$ | non-negative -return_factor | Float64 | - | between [0 - 1] -min_level | Float64 | $m$ | - +column | type | unit | restriction +------------- | -------- | --------------------- | ----------- +node_id | Int32 | - | sorted +priority | Int32 | - | positive, sorted per node id +time | DateTime | - | sorted per priority per node id +demand | Float64 | $\text{m}^3/\text{s}$ | non-negative +return_factor | Float64 | - | between [0 - 1] +min_level | Float64 | $\text{m}$ | - + +## Concentration +This table defines the concentration of substances for the flow from the UserDemand. + +column | type | unit | restriction +-------------- | -------- | --------------------- | ----------- +node_id | Int32 | - | sorted +time | DateTime | - | sorted per node_id +substance | String | - | can correspond to known Delwaq substances +concentration | Float64 | $\text{g}/\text{m}^3$ | # Equations diff --git a/docs/reference/test-models.qmd b/docs/reference/test-models.qmd index 81891cd1d..8ca33d0c0 100644 --- a/docs/reference/test-models.qmd +++ b/docs/reference/test-models.qmd @@ -14,11 +14,11 @@ for model_name, model_constructor in ribasim_testmodels.constructors.items(): continue model = model_constructor() - fig, ax = plt.subplots() + fig, ax = plt.subplots(figsize = (6, 4)) model.plot(ax) ax.set_title(label=model_name, loc="left") fig.text(0, 1, model_constructor.__doc__) - fig.tight_layout() + ax.axis('off') plt.show() plt.close(fig) ``` diff --git a/docs/reference/usage.qmd b/docs/reference/usage.qmd index c44959ac5..63eeedd99 100644 --- a/docs/reference/usage.qmd +++ b/docs/reference/usage.qmd @@ -21,7 +21,7 @@ If your model does not converge, or your performance is lower than expected, it The default solver `algorithm = "QNDF"`, which is a multistep method similar to Matlab's `ode15s` [@shampine1997matlab]. It is an implicit method that supports the default adaptive timestepping. -The full list of available solvers is: `QNDF`, `Rosenbrock23`, `TRBDF2`, `Rodas5`, `KenCarp4`, `Tsit5`, `RK4`, `ImplicitEuler`, `Euler`. +The full list of available solvers is: `QNDF`, `FBDF`, `Rosenbrock23`, `Rodas4P`, `Rodas5P`, `TRBDF2`, `KenCarp4`, `Tsit5`, `RK4`, `ImplicitEuler`, `Euler`. Information on the solver algorithms can be found on the [ODE solvers page](https://docs.sciml.ai/DiffEqDocs/stable/solvers/ode_solve/). By default Ribasim uses adaptive timestepping, though not all algorithms support adaptive timestepping. @@ -35,6 +35,10 @@ The calculation and result stepsize need not be the same. If you wish to save every calculation step, set `saveat = 0`. If you wish to not save any intermediate steps, set `saveat = inf`. +The water balance error is a measure of the error in the consistency with which the core keeps track of the water resources per Basin, for more details see [here](/concept/equations.qmd#the-water-balance-error). +`water_balance_abstol` and `water_balance_reltol` give upper bounds on this error, above which an error is thrown. +A too large error generally indicates an error in the code or floating point truncation errors. + The Jacobian matrix provides information about the local sensitivity of the model with respect to changes in the states. For implicit solvers it must be calculated often, which can be expensive to do. There are several methods to do this. @@ -50,6 +54,9 @@ The total maximum number of iterations `maxiters = 1e9`, can normally stay as-is The absolute and relative tolerance for adaptive timestepping can be set with `abstol` and `reltol`. For more information on these and other solver options, see the [DifferentialEquations.jl docs](https://docs.sciml.ai/DiffEqDocs/latest/basics/common_solver_opts/#solver_options). +Finally there's the `evaporate_mass = true` setting, which determines whether mass is lost due to evaporation in water quality calculations, by default set to true. +While physically incorrect, it is useful for a first correctness check on a model in terms of mass balance (Continuity tracer should always have a concentration of 1). To simulate increasing concentrations (e.g. salinity) due to evaporation, change the setting to `false`. + ## Allocation settings Currently there are the following allocation settings: - `use_allocation`: A boolean which says whether allocation should be used or not; @@ -67,12 +74,28 @@ subgrid | Bool | Compute and output more detailed water levels. ## Logging settings -The following entries can be set in the configuration in the `[logging]` section. +The following can be set in the configuration in the `[logging]` section. entry | type | description ----------------- | ------ | ----------- verbosity | String | Verbosity level: debug, info, warn, or error. -timing | Bool | Enable timings. + +## Experimental features + +::: {.callout-important} +Experimental features are completely unsupported. They can break at any time +and results will be wrong. **Do not use them in production**. If you're interested +in using an experimental feature, please [contact us](/contact.qmd). +::: + +One can enable experimental features in the `[experimental]` section. +Currently the following features can be enabled (all are disabled by default). + +entry | type | description +----------------- | ------ | ----------- +concentration | Bool | Whether to enable tracer calculations or not. + + # GeoPackage database and Arrow tables {#sec-geopackage} @@ -195,25 +218,29 @@ The Basin table contains: It will be placed in a separate output state file in the future. - The `inflow_rate` and `outflow_rate` are the sum of the flows from other nodes into and out of the Basin respectively. The actual flows determine in which term they are counted, not the edge direction. -- The `storage_rate` is flow that adds to the storage in the Basin, increasing the water level. In the equations below this number is split out into two non-negative numbers, `storage_increase` and `storage_decrease`. -- The `balance_error` is the difference of all Basin inflows (`total_inflow`) and outflows (`total_outflow`), that is (`inflow_rate` + `precipitation` + `drainage` - `storage_increase`) - (`outflow_rate` + `evaporation` + `infiltration` - `storage_decrease`). +- The `storage_rate` is the net mean flow that is needed to achieve the storage change between timesteps. +- The `inflow_rate` consists of the sum of all modelled flows into the basin: `inflow_rate` (horizontal flows into the basin, independent of edge direction) + `precipitation` + `drainage`. +- The `outflow_rate` consists of the sum of all modelled flows out of the basin: `outflow_rate` (horizontal flows out of the basin, idependent of edge direction) + `evaporation` + `infiltration`. +- The `balance_error` is the difference between the `storage_rate` on one side and the `inflow_rate` and `outflow_rate` on the other side: `storage_rate` - (`inflow_rate` - `outflow_rate`). It can be used to check if the numerical error when solving the water balance is sufficiently small. - The `relative_error` is the fraction of the `balance_error` over the mean of the `total_inflow` and `total_outflow`. +For a more in-depth explanation of the water balance error see [here](/concept/equations.qmd#the-water-balance-error). + column | type | unit -------------- | ---------| ---- time | DateTime | - node_id | Int32 | - -storage | Float64 | $m^3$ -level | Float64 | $m$ -inflow_rate | Float64 | $m^3 s^{-1}$ -outflow_rate | Float64 | $m^3 s^{-1}$ -storage_rate | Float64 | $m^3 s^{-1}$ -precipitation | Float64 | $m^3 s^{-1}$ -evaporation | Float64 | $m^3 s^{-1}$ -drainage | Float64 | $m^3 s^{-1}$ -infiltration | Float64 | $m^3 s^{-1}$ -balance_error | Float64 | $m^3 s^{-1}$ +storage | Float64 | $\text{m}^3$ +level | Float64 | $\text{m}$ +inflow_rate | Float64 | $\text{m}^3/\text{s}$ +outflow_rate | Float64 | $\text{m}^3/\text{s}$ +storage_rate | Float64 | $\text{m}^3/\text{s}$ +precipitation | Float64 | $\text{m}^3/\text{s}$ +evaporation | Float64 | $\text{m}^3/\text{s}$ +drainage | Float64 | $\text{m}^3/\text{s}$ +infiltration | Float64 | $\text{m}^3/\text{s}$ +balance_error | Float64 | $\text{m}^3/\text{s}$ relative_error | Float64 | - The table is sorted by time, and per time it is sorted by `node_id`. @@ -231,12 +258,23 @@ from_node_type | String | - from_node_id | Int32 | - to_node_type | String | - to_node_id | Int32 | - -flow_rate | Float64 | $m^3 s^{-1}$ +flow_rate | Float64 | $\text{m}^3/\text{s}$ The table is sorted by time, and per time the same `edge_id` order is used, though not sorted. The `edge_id` value is the same as the `fid` written to the Edge table, and can be used to directly look up the Edge geometry. Flows from the "from" to the "to" node have a positive sign, and if the flow is reversed it will be negative. +## State - `basin_state.arrow` {#sec-state} + +The Basin state table contains the water levels in each Basin at the end of the simulation. + +column | type | unit +--------- | ------- | ------------ +node_id | Int32 | - +level | Float64 | $\text{m}$ + +To use this result as the initial condition of another simulation, see the [Basin / state](/reference/node/basin.qmd#sec-state) table reference. + ## DiscreteControl - `control.arrow` The control table contains a record of each change of control state: when it happened, which control node was involved, to which control state it changed and based on which truth state. @@ -305,3 +343,15 @@ column | type time | DateTime subgrid_id | Int32 subgrid_level | Float64 + +## Solver statistics - `solver_stats.arrow` + +This result file contains statistics about the solver, which can give an insight into how well the solver is performing over time. The data is solved by `saveat` (see [configuration file](#configuration-file)). `water_balance` refers to the right-hand-side function of the system of differential equations solved by the Ribasim core. + +column | type +--------------------| ----- +time | DateTime +water_balance_calls | Int +linear_solves | Int +accepted_timesteps | Int +rejected_timesteps | Int diff --git a/docs/tutorial/index.qmd b/docs/tutorial/index.qmd deleted file mode 100644 index 15b3ce668..000000000 --- a/docs/tutorial/index.qmd +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: "Tutorials" ---- diff --git a/docs/tutorial/irrigation-demand.ipynb b/docs/tutorial/irrigation-demand.ipynb new file mode 100644 index 000000000..4497c8381 --- /dev/null +++ b/docs/tutorial/irrigation-demand.ipynb @@ -0,0 +1,444 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "title: \"Irrigation demand\"\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "from ribasim import Model, Node\n", + "from ribasim.nodes import (\n", + " basin,\n", + " flow_boundary,\n", + " tabulated_rating_curve,\n", + " user_demand,\n", + ")\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "base_dir = Path(\"crystal-basin\")\n", + "\n", + "starttime = \"2022-01-01\"\n", + "endtime = \"2023-01-01\"\n", + "model = Model(\n", + " starttime=starttime,\n", + " endtime=endtime,\n", + " crs=\"EPSG:4326\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These nodes are identical to the previous tutorial:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# FlowBoundary\n", + "data = pd.DataFrame({\n", + " \"time\": pd.date_range(start=\"2022-01-01\", end=\"2023-01-01\", freq=\"MS\"),\n", + " \"main\": [74.7, 57.9, 63.2, 183.9, 91.8, 47.5, 32.6, 27.6, 26.5, 25.1, 39.3, 37.8, 57.9],\n", + " \"minor\": [16.3, 3.8, 3.0, 37.6, 18.2, 11.1, 12.9, 12.2, 11.2, 10.8, 15.1, 14.3, 11.8]\n", + "}) # fmt: skip\n", + "data[\"total\"] = data[\"minor\"] + data[\"main\"]\n", + "main = model.flow_boundary.add(\n", + " Node(1, Point(0.0, 0.0), name=\"main\"),\n", + " [\n", + " flow_boundary.Time(\n", + " time=data.time,\n", + " flow_rate=data.main,\n", + " )\n", + " ],\n", + ")\n", + "minor = model.flow_boundary.add(\n", + " Node(2, Point(-3.0, 0.0), name=\"minor\"),\n", + " [\n", + " flow_boundary.Time(\n", + " time=data.time,\n", + " flow_rate=data.minor,\n", + " )\n", + " ],\n", + ")\n", + "\n", + "# Basin\n", + "confluence = model.basin.add(\n", + " Node(3, Point(-1.5, -1), name=\"confluence\"),\n", + " [\n", + " basin.Profile(area=[672000, 5600000], level=[0, 6]),\n", + " basin.State(level=[4]),\n", + " basin.Time(time=[starttime, endtime]),\n", + " ],\n", + ")\n", + "\n", + "# TabulatedRatingCurve\n", + "weir = model.tabulated_rating_curve.add(\n", + " Node(4, Point(-1.5, -1.5), name=\"weir\"),\n", + " [\n", + " tabulated_rating_curve.Static(\n", + " level=[0.0, 2, 5],\n", + " flow_rate=[0.0, 50, 200],\n", + " )\n", + " ],\n", + ")\n", + "\n", + "# Terminal\n", + "sea = model.terminal.add(Node(5, Point(-1.5, -3.0), name=\"sea\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Irrigation demand\n", + "\n", + "Let us modify the environment to include agricultural activities within the basin, which necessitate irrigation.\n", + "Water is diverted from the main river through an irrigation canal, with a portion of it eventually returning to the main river (see @fig-irrigation).\n", + "\n", + "![Crystal basin with irrigation](https://s3.deltares.nl/ribasim/doc-image/quickstart/Crystal-basin-with-irrigation.png){fig-align=\"left\" #fig-irrigation}\n", + "\n", + "For this schematization update, we need to incorporate three additional nodes:\n", + "\n", + "- Basin: Represents a cross-sectional point where water is diverted.\n", + "- UserDemand: Represents the irrigation demand.\n", + "- TabulatedRatingCurve: Defines the remaining water flow from the main river at the diversion point." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add a second Basin node\n", + "This Basin will portray as the point in the river where the diversion takes place, getting the name `diversion`.\n", + "Its profile area at this intersection is slightly smaller than at the confluence." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "diversion_basin = model.basin.add(\n", + " Node(6, Point(-0.75, -0.5), name=\"diversion_basin\"),\n", + " [\n", + " basin.Profile(area=[500000, 5000000], level=[0, 6]),\n", + " basin.State(level=[3]),\n", + " basin.Time(time=[starttime, endtime]),\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add the irrigation demand\n", + "An irrigation district needs to apply irrigation to its field starting from April to September.\n", + "The irrigated area is $> 17000 \\text{ ha}$ and requires around $5 \\text{ mm/day}$.\n", + "In this case the irrigation district diverts from the main river an average flow rate of $10 \\text{ m}^3/\\text{s}$ and $12 \\text{ m}^3/\\text{s}$ during spring and summer, respectively.\n", + "Start of irrigation takes place on the 1st of April until the end of August.\n", + "The water intake is through a canal (demand).\n", + "\n", + "For now, let's assume the return flow remains $0.0$ (`return_factor`).\n", + "Meaning all the supplied water to fulfill the demand is consumed and does not return back to the river.\n", + "The user demand node interpolates the demand values. Thus the following code needs to be implemented:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "irrigation = model.user_demand.add(\n", + " Node(7, Point(-1.5, 0.5), name=\"irrigation\"),\n", + " [\n", + " user_demand.Time(\n", + " demand=[0.0, 0.0, 10, 12, 12, 0.0],\n", + " return_factor=0,\n", + " min_level=0,\n", + " priority=1,\n", + " time=[\n", + " starttime,\n", + " \"2022-03-31\",\n", + " \"2022-04-01\",\n", + " \"2022-07-01\",\n", + " \"2022-09-30\",\n", + " \"2022-10-01\",\n", + " ],\n", + " )\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add a TabulatedRatingCurve\n", + "The second TabulatedRatingCurve node will simulate the rest of the water that is left after diverting a part from the main river to the irrigation disctrict.\n", + "The rest of the water will flow naturally towards the confluence:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "diversion_weir = model.tabulated_rating_curve.add(\n", + " Node(8, Point(-1.125, -0.75), name=\"diversion_weir\"),\n", + " [\n", + " tabulated_rating_curve.Static(\n", + " level=[0.0, 1.5, 5],\n", + " flow_rate=[0.0, 45, 200],\n", + " )\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add edges" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.edge.add(main, diversion_basin, name=\"main\")\n", + "model.edge.add(minor, confluence, name=\"minor\")\n", + "model.edge.add(diversion_basin, irrigation, name=\"irrigation\")\n", + "model.edge.add(irrigation, confluence)\n", + "model.edge.add(diversion_basin, diversion_weir, name=\"not diverted\")\n", + "model.edge.add(diversion_weir, confluence)\n", + "model.edge.add(confluence, weir)\n", + "model.edge.add(weir, sea, name=\"sea\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "toml_path = base_dir / \"Crystal-2/ribasim.toml\"\n", + "model.write(toml_path)\n", + "cli_path = \"ribasim\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plot model and run\n", + "Plot the schematization and run the model.\n", + "This time the new outputs should be written in a new folder called `Crystal-2`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.plot();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# | include: false\n", + "from subprocess import run\n", + "\n", + "run(\n", + " [\n", + " \"julia\",\n", + " \"--project=../../core\",\n", + " \"--eval\",\n", + " f'using Ribasim; Ribasim.main(\"{toml_path.as_posix()}\")',\n", + " ],\n", + " check=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plot and compare the Basin results\n", + "Plot the simulated levels and storages at the diverted section and at the confluence." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_basin = pd.read_feather(\n", + " base_dir / \"Crystal-2/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", + "\n", + "# Create pivot tables and plot for basin data\n", + "df_basin_wide = df_basin.pivot_table(\n", + " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", + ")\n", + "\n", + "df_basin_div = df_basin_wide.loc[:, pd.IndexSlice[:, diversion_basin.node_id]]\n", + "df_basin_conf = df_basin_wide.loc[:, pd.IndexSlice[:, confluence.node_id]]\n", + "\n", + "\n", + "def plot_basin_data(\n", + " ax, ax_twin, df_basin, level_color=\"b\", storage_color=\"r\", title=\"Basin\"\n", + "):\n", + " # Plot level data\n", + " for column in df_basin[\"level\"].columns:\n", + " ax.plot(\n", + " df_basin.index,\n", + " df_basin[\"level\"][column],\n", + " linestyle=\"-\",\n", + " color=level_color,\n", + " label=f\"Level - {column}\",\n", + " )\n", + "\n", + " # Plot storage data\n", + " for column in df_basin[\"storage\"].columns:\n", + " ax_twin.plot(\n", + " df_basin.index,\n", + " df_basin[\"storage\"][column],\n", + " linestyle=\"--\",\n", + " color=storage_color,\n", + " label=f\"Storage - {column}\",\n", + " )\n", + "\n", + " ax.set_ylabel(\"Level [m]\", color=level_color)\n", + " ax_twin.set_ylabel(\"Storage [m³]\", color=storage_color)\n", + "\n", + " ax.tick_params(axis=\"y\", labelcolor=level_color)\n", + " ax_twin.tick_params(axis=\"y\", labelcolor=storage_color)\n", + "\n", + " ax.set_title(title)\n", + "\n", + " # Combine legends from both axes\n", + " lines, labels = ax.get_legend_handles_labels()\n", + " lines_twin, labels_twin = ax_twin.get_legend_handles_labels()\n", + " ax.legend(lines + lines_twin, labels + labels_twin, loc=\"upper left\")\n", + "\n", + "\n", + "# Create subplots\n", + "fig, (ax1, ax3) = plt.subplots(2, 1, figsize=(12, 12), sharex=True)\n", + "\n", + "# Plot Div basin data\n", + "ax2 = ax1.twinx() # Secondary y-axis for storage\n", + "plot_basin_data(ax1, ax2, df_basin_div, title=\"Diversion Basin level and storage\")\n", + "\n", + "# Plot Conf basin data\n", + "ax4 = ax3.twinx() # Secondary y-axis for storage\n", + "plot_basin_data(ax3, ax4, df_basin_conf, title=\"Confluence Basin level and storage\")\n", + "\n", + "# Common X label\n", + "ax3.set_xlabel(\"Time\")\n", + "fig.tight_layout() # Adjust layout to fit labels\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The figure above illustrates the water levels and storage capacities for each Basin.\n", + "\n", + "When compared to the natural flow conditions, where no water is abstracted for irrigation (See Crystal 1), there is a noticeable decrease in both storage and water levels at the confluence downstream.\n", + "This reduction is attributed to the irrigation demand upstream with no return flow, which decreases the amount of available water in the main river, resulting in lower water levels at the confluence.\n", + "\n", + "### Plot and compare the flow results\n", + "Plot the flow results in an interactive plotting tool." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_flow = pd.read_feather(\n", + " base_dir / \"Crystal-2/results/flow.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", + "# Add the edge names and then remove unnamed edges\n", + "df_flow[\"name\"] = model.edge.df[\"name\"].loc[df_flow[\"edge_id\"]].to_numpy()\n", + "df_flow = df_flow[df_flow[\"name\"].astype(bool)]\n", + "\n", + "# Plot the flow data, interactive plot with Plotly\n", + "pivot_flow = df_flow.pivot_table(\n", + " index=\"time\", columns=\"name\", values=\"flow_rate\"\n", + ").reset_index()\n", + "fig = px.line(pivot_flow, x=\"time\", y=pivot_flow.columns[1:], title=\"Flow [m3/s]\")\n", + "\n", + "fig.update_layout(legend_title_text=\"Edge\")\n", + "fig.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Try toggling the edges on and off by clicking on them in the edges." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/tutorial/natural-flow.ipynb b/docs/tutorial/natural-flow.ipynb new file mode 100644 index 000000000..3807769bf --- /dev/null +++ b/docs/tutorial/natural-flow.ipynb @@ -0,0 +1,519 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "title: \"Getting started\"\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction\n", + "Welcome to Ribasim!\n", + "This tutorial will help you get started with the basics of using Ribasim for river basin simulation.\n", + "In this tutorial, the schematization of models is done in Python using the Ribasim Python package.\n", + "The Ribasim Python package (named `ribasim`) simplifies the process of building, updating, and analyzing Ribasim model programmatically.\n", + "It also allows for the creation of entire models from base data, ensuring that your model setup is fully reproducible.\n", + "\n", + "## Learning objectives\n", + "In this tutorial, we will focus on a fictional river basin called Crystal, which will serve as our case study.\n", + "The guide is divided into different modules, each covering various scenarios.\n", + "These include simulating natural flow, implementing reservoirs, and observing the impact of other structures.\n", + "While not all node types and possibilities will be demonstrated, the focus will be on the most commonly used and significant situations.\n", + "By the end of the tutorial, users will be able to:\n", + "\n", + "- **Set up a basic Ribasim model**: Understand how to create a new model for a river basin using the Ribasim Python package.\n", + "- **Evaluate the impact of demands**: Introduce water demand (such as irrigation) and assess their effects on the river basin.\n", + "- **Modify and update models**: Learn how to update existing models with new data and changes.\n", + "- **Analyze simulation results**: Use built-in tools to analyze and interpret the results of your simulations.\n", + "\n", + "## Prerequisites\n", + "First install the latest release of Ribasim as documented in [the installation guide](/install.qmd).\n", + "\n", + "Download the `Crystal_Basin.zip` file from the website. Extract `Crystal_Basin.zip` and place it in the same directory as your Ribasim installation. This folder includes:\n", + "\n", + "- `QuickStartGuide.pdf`\n", + "- `data`: Contains data inputs such as time series needed for running the case.\n", + "Additionally, your Python model (`.py`) and the results will also be saved in this folder." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Crystal River Basin\n", + "We will examine a straightforward example of the Crystal river basin, which includes a main river and a single tributary flowing into the sea (see @fig-crystal-basin).\n", + "An average discharge of $44.45 \\text{ m}^3/\\text{s}$ is measured at the confluence.\n", + "In this module, the basin is free of any activities, allowing the model to simulate the natural flow.\n", + "The next step is to include a demand (irrigation) that taps from a canal out of the main river.\n", + "\n", + "![Crystal Basin based on natural flow](https://s3.deltares.nl/ribasim/doc-image/quickstart/Crystal-Basin-based-on-natural-flow.png){fig-align=\"left\" #fig-crystal-basin}\n", + "\n", + "After this module the user will be able to:\n", + "\n", + "- Build a river basin model from scratch\n", + "- Understand the functionality of the Demand and Basin nodes\n", + "- Generate overview of results\n", + "- Evaluate the simulation results\n", + "\n", + "## Natural flow\n", + "\n", + "### Import packages\n", + "Before building the model we need to import some modules.\n", + "Open your favorite Python editor (Visual Studio Code, Jupyter, ...) and create a new script or notebook and name it `Crystal_1.1` and save it into your model folder `Crystal_Basin`.\n", + "Import the following modules in Python:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "from ribasim import Model, Node\n", + "from ribasim.nodes import basin, flow_boundary, tabulated_rating_curve\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setup paths and model configuration\n", + "Reference the paths of the Ribasim installation and model directory and define the time period (2022-01-01 until 2023-01-01) for the model simulation.\n", + "The coordinate reference system (CRS) is also required, and set to [EPSG:4326](https://epsg.io/4326), which means all coordinates are interpreted as latitude and longitude values.\n", + "The CRS is important for correctly placing Ribasim models on the map, but since this is a fictional model, it is not important." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "base_dir = Path(\"crystal-basin\")\n", + "\n", + "starttime = \"2022-01-01\"\n", + "endtime = \"2023-01-01\"\n", + "model = Model(\n", + " starttime=starttime,\n", + " endtime=endtime,\n", + " crs=\"EPSG:4326\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FlowBoundary nodes\n", + "The Crystal basin consists of two inflow points, the tributary and the main Crystal river, we will call them Minor and Main respectively.\n", + "This is a monthly inflow timeseries from 2014 to 2023.\n", + "The used simulation period is defined by the `starttime` and `endtime` of the model, not by the input timeseries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.DataFrame({\n", + " \"time\": pd.date_range(start=\"2022-01-01\", end=\"2023-01-01\", freq=\"MS\"),\n", + " \"main\": [74.7, 57.9, 63.2, 183.9, 91.8, 47.5, 32.6, 27.6, 26.5, 25.1, 39.3, 37.8, 57.9],\n", + " \"minor\": [16.3, 3.8, 3.0, 37.6, 18.2, 11.1, 12.9, 12.2, 11.2, 10.8, 15.1, 14.3, 11.8]\n", + "}) # fmt: skip\n", + "data[\"total\"] = data[\"minor\"] + data[\"main\"]\n", + "display(data)\n", + "\n", + "# Average and max inflow of the total inflow data timeseries\n", + "# From 2014 - 2023\n", + "print(\"Average inflow [m3/s]:\", data[\"total\"].mean())\n", + "print(\"Maximum inflow [m3/s]:\", data[\"total\"].max())\n", + "\n", + "main = model.flow_boundary.add(\n", + " Node(1, Point(0.0, 0.0), name=\"main\"),\n", + " [\n", + " flow_boundary.Time(\n", + " time=data.time,\n", + " flow_rate=data.main,\n", + " )\n", + " ],\n", + ")\n", + "\n", + "minor = model.flow_boundary.add(\n", + " Node(2, Point(-3.0, 0.0), name=\"minor\"),\n", + " [\n", + " flow_boundary.Time(\n", + " time=data.time,\n", + " flow_rate=data.minor,\n", + " )\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Basin node (confluence)\n", + "To schematize the confluence from the tributary we will use the Basin node.\n", + "The node by itself portrays as water storage with a certain volume of water and can be used for different purposes, such as a reservoir, river reach, lake or in this case a confluence.\n", + "@fig-confluence visualizes a cross section of the confluence point in our model.\n", + "\n", + "![Basin node concept for the confluence](https://s3.deltares.nl/ribasim/doc-image/quickstart/Basin-node-concept-for-the-confluence.png){fig-align=\"left\" #fig-confluence}\n", + "\n", + "@tbl-input1 shows the input data for the Basin node profile.\n", + "\n", + ": Profile data for the basin node {#tbl-input1}\n", + "\n", + "| Area [$\\text{m}^2$] | Level [$\\text{m}$] |\n", + "|---------------------|--------------------|\n", + "| $672000.0$ | $0.0$ |\n", + "| $5600000.0$ | $6.0$ |\n", + "\n", + "Whilst in this case the level starts at $0.0$ and therefore happens to be the same as the depth, it should never be interpreted as a depth.\n", + "All water levels in Ribasim are assumed to be with respect to a shared reference datum, like mean sea level (MSL).\n", + "The first water level in the profile is the height of the Basin bottom above this reference datum.\n", + "\n", + "To specify the Basin profile, the following code is used:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "confluence = model.basin.add(\n", + " Node(3, Point(-1.5, -1), name=\"confluence\"),\n", + " [\n", + " basin.Profile(area=[672000, 5600000], level=[0, 6]),\n", + " basin.State(level=[4]),\n", + " basin.Time(time=[starttime, endtime]),\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TabulatedRatingCurve\n", + "In the previous step we implemented a Basin node that functions as a confluence.\n", + "Conceptually, the Basin acts as a store of water, accumulating inflows and then releasing them.\n", + "A Basin cannot directly connect to another Basin, because the rules for water exchange between them need to be defined.\n", + "Connector nodes take care of this.\n", + "The first such node we introduce is the TabulatedRatingCurve.\n", + "It defines a relation between the water level ($h$) in the Basin and the outflow ($Q$) from the Basin.\n", + "This setup mimics the behavior of a gate or spillway, allowing us to model how varying water levels influence flow rates at the confluence.\n", + "\n", + "As the two inflows come together at the confluence, we expect, as mentioned above, a discharge average of $44.45 \\text{ m}^3/\\text{s}$.\n", + "It is therefore expected that the confluence Basin goes towards a level where the outflow is equal to the inflow via the rating curve.\n", + "Only then is the confluence Basin in equilibrium.\n", + "The maximum depth of the river is $6 \\text{ m}$, and the maximum inflow is $221.5 \\text{ m}^3/\\text{s}$\n", + "The $Q(h)$ relationship in @tbl-input2 allows such inflows with reasonable water levels.\n", + "\n", + ": Input data for the Tabulated Rating Curve {#tbl-input2}\n", + "\n", + "| Water Level ($h$) [$\\text{m}$] | Outflow ($Q$) [$\\text{m}^3/\\text{s}$] |\n", + "| -------------------------------|---------------------------------------|\n", + "| $0.0$ | $0.0$ |\n", + "| $2.0$ | $50.0$ |\n", + "| $5.0$ | $200.0$ |\n", + "\n", + "In Ribasim, the $Q(h)$ relation is a piecewise linear function, so the points in between will be linearly interpolated.\n", + "@fig-discharge illustrates the visual process and shows a progressive increase in discharge with rising water levels.\n", + "In this case this means:\n", + "\n", + "- At level $0.0$: No discharge occurs. This represents a condition where the water level is too low for any flow to be discharged.\n", + "- At level $2.0$: Discharge is $50.0 \\text{ m}^3/\\text{s}$. This is a bit above the average discharge rate, corresponding to the water level where normal flow conditions are established.\n", + "- At level $5.0$: Discharge rate reaches $200.0 \\text{ m}^3/\\text{s}$. This discharge rate occurs at the water level during wet periods, indicating higher flow capacity.\n", + "\n", + "![Discharge at corresponding water levels](https://s3.deltares.nl/ribasim/doc-image/quickstart/Discharge-at-corresponding-water-levels.png){fig-align=\"left\" #fig-discharge}\n", + "\n", + "Taking this into account, add the `TabulatedRatingCurve` as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "weir = model.tabulated_rating_curve.add(\n", + " Node(4, Point(-1.5, -1.5), name=\"weir\"),\n", + " [\n", + " tabulated_rating_curve.Static(\n", + " level=[0.0, 2, 5],\n", + " flow_rate=[0.0, 50, 200],\n", + " )\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Terminal node\n", + "Finally all the water will discharge into the sea.\n", + "We schematize this with the Terminal node, as it portrays the end point of the model, that can receive but not give water.\n", + "Besides the node number/name and location, no further input is needed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sea = model.terminal.add(Node(5, Point(-1.5, -3.0), name=\"sea\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Defining edges\n", + "Implement the connections (edges) between the nodes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.edge.add(main, confluence, name=\"main\")\n", + "model.edge.add(minor, confluence, name=\"minor\")\n", + "model.edge.add(confluence, weir)\n", + "model.edge.add(weir, sea, name=\"sea\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualization and model execution\n", + "Plot the schematization." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.plot();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write the model configuration to the `TOML` file.\n", + "Name the output file `Crystal-1/ribasim.toml`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "toml_path = base_dir / \"Crystal-1/ribasim.toml\"\n", + "model.write(toml_path)\n", + "cli_path = \"ribasim\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After running `model.write` a subfolder `Crystal-1` is created, which contains the model input data and configuration:\n", + "\n", + "- ribasim.toml: The model configuration\n", + "- database.gpkg: A GeoPackage containing the network geometry and input data of the nodes used." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# | include: false\n", + "from subprocess import run\n", + "\n", + "run(\n", + " [\n", + " \"julia\",\n", + " \"--project=../../core\",\n", + " \"--eval\",\n", + " f'using Ribasim; Ribasim.main(\"{toml_path.as_posix()}\")',\n", + " ],\n", + " check=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now run the model. You can open a terminal and run it from there. For example:\n", + "\n", + "```bash\n", + "ribasim Crystal-1/ribasim.toml\n", + "```\n", + "\n", + "From Python you can run it with:\n", + "\n", + "```python\n", + "import subprocess\n", + "result = subprocess.run([cli_path, toml_path], capture_output=True, encoding=\"utf-8\")\n", + "print(result.stderr)\n", + "result.check_returncode()\n", + "```\n", + "\n", + "Where `cli_path` is a string with either the full path to the Ribasim executable, like `r\"c:\\bin\\ribasim\\ribasim\"`, or just `\"ribasim\"` in case you added the `ribasim` folder to your PATH.\n", + "\n", + "The `print(result.stderr)` ensures you see the same logging and error messages that you would see in the terminal. And `result.check_returncode()` will throw an error when the simulation was not successful." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Post-processing results\n", + "Read the Arrow files and plot the simulated flows from different edges and the levels and storages at our confluence point:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_basin = pd.read_feather(\n", + " base_dir / \"Crystal-1/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", + "\n", + "# Create pivot tables and plot for Basin data\n", + "df_basin_wide = df_basin.pivot_table(\n", + " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", + ")\n", + "\n", + "# Plot level and storage on the same graph with dual y-axes\n", + "fig, ax1 = plt.subplots(figsize=(12, 6))\n", + "\n", + "# Plot level on the primary y-axis\n", + "color = \"b\"\n", + "ax1.set_xlabel(\"Time\")\n", + "ax1.set_ylabel(\"Level [m]\", color=color)\n", + "ax1.plot(df_basin_wide.index, df_basin_wide[\"level\"], color=color)\n", + "ax1.tick_params(axis=\"y\", labelcolor=color)\n", + "\n", + "# Create a secondary y-axis for storage\n", + "ax2 = ax1.twinx()\n", + "color = \"r\"\n", + "ax2.set_ylabel(\"Storage [m³]\", color=\"r\")\n", + "ax2.plot(df_basin_wide.index, df_basin_wide[\"storage\"], linestyle=\"--\", color=color)\n", + "ax2.tick_params(axis=\"y\", labelcolor=color)\n", + "\n", + "fig.tight_layout() # Adjust layout to fit labels\n", + "plt.title(\"Basin level and storage\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The figure above shows the storage and levels in the Basin node.\n", + "\n", + "To accurately represent the relationship between water levels and discharge rates at this confluence, a TabulatedRatingCurve is used.\n", + "This setup mimics the behavior of a gate or spillway, allowing us to model how varying water levels influence flow rates at the confluence.\n", + "Since the basin node is functioning as a confluence rather than a storage reservoir, the simulated water levels and storage trends will closely follow the inflow patterns.\n", + "This is because there is no net change in storage; all incoming water is balanced by outgoing flow." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot flow data\n", + "# Read the flow results\n", + "df_flow = pd.read_feather(\n", + " base_dir / \"Crystal-1/results/flow.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", + "# Add the edge names and then remove unnamed edges\n", + "df_flow[\"name\"] = model.edge.df[\"name\"].loc[df_flow[\"edge_id\"]].to_numpy()\n", + "df_flow = df_flow[df_flow[\"name\"].astype(bool)]\n", + "\n", + "# Create a pivot table\n", + "pivot_flow = df_flow.pivot_table(index=\"time\", columns=\"name\", values=\"flow_rate\")\n", + "\n", + "line_styles = [\"-\", \"--\", \"-\", \"-.\"]\n", + "num_styles = len(line_styles)\n", + "\n", + "fig, ax = plt.subplots(figsize=(12, 6))\n", + "for i, column in enumerate(pivot_flow.columns):\n", + " pivot_flow[column].plot(\n", + " ax=ax, linestyle=line_styles[i % num_styles], linewidth=1.5, alpha=0.8\n", + " )\n", + "\n", + "# Set labels and title\n", + "ax.set_xlabel(\"Time\")\n", + "ax.set_ylabel(\"Flow [m³/s]\")\n", + "ax.legend(bbox_to_anchor=(1.15, 1), title=\"Edge\")\n", + "plt.title(\"Flow\")\n", + "plt.grid(True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The figure above shows the discharges in $\\text{m}^3/\\text{s}$ on each edge.\n", + "\n", + "Edge (3,4) represents the flow from the confluence to the TabulatedRatingCurve and edge (4,5) represents the flow from the TabulatedRatingCurve to the Terminal.\n", + "Both show the same discharge over time.\n", + "Which is expected in a natural flow environment, as what is coming into the confluence must come out." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/tutorial/reservoir.ipynb b/docs/tutorial/reservoir.ipynb new file mode 100644 index 000000000..03c1673ed --- /dev/null +++ b/docs/tutorial/reservoir.ipynb @@ -0,0 +1,373 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "title: \"Reservoir\"\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "from ribasim import Model, Node\n", + "from ribasim.nodes import (\n", + " basin,\n", + " flow_boundary,\n", + " tabulated_rating_curve,\n", + " user_demand,\n", + ")\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "base_dir = Path(\"crystal-basin\")\n", + "\n", + "starttime = \"2022-01-01\"\n", + "endtime = \"2023-01-01\"\n", + "model = Model(\n", + " starttime=starttime,\n", + " endtime=endtime,\n", + " crs=\"EPSG:4326\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These nodes are identical to the previous tutorial:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# FlowBoundary\n", + "data = pd.DataFrame({\n", + " \"time\": pd.date_range(start=\"2022-01-01\", end=\"2023-01-01\", freq=\"MS\"),\n", + " \"main\": [74.7, 57.9, 63.2, 183.9, 91.8, 47.5, 32.6, 27.6, 26.5, 25.1, 39.3, 37.8, 57.9],\n", + " \"minor\": [16.3, 3.8, 3.0, 37.6, 18.2, 11.1, 12.9, 12.2, 11.2, 10.8, 15.1, 14.3, 11.8]\n", + "}) # fmt: skip\n", + "data[\"total\"] = data[\"minor\"] + data[\"main\"]\n", + "main = model.flow_boundary.add(\n", + " Node(1, Point(0.0, 0.0), name=\"main\"),\n", + " [\n", + " flow_boundary.Time(\n", + " time=data.time,\n", + " flow_rate=data.main,\n", + " )\n", + " ],\n", + ")\n", + "minor = model.flow_boundary.add(\n", + " Node(2, Point(-3.0, 0.0), name=\"minor\"),\n", + " [\n", + " flow_boundary.Time(\n", + " time=data.time,\n", + " flow_rate=data.minor,\n", + " )\n", + " ],\n", + ")\n", + "\n", + "# Basin\n", + "confluence = model.basin.add(\n", + " Node(3, Point(-1.5, -1), name=\"confluence\"),\n", + " [\n", + " basin.Profile(area=[672000, 5600000], level=[0, 6]),\n", + " basin.State(level=[4]),\n", + " basin.Time(time=[starttime, endtime]),\n", + " ],\n", + ")\n", + "\n", + "# TabulatedRatingCurve\n", + "weir = model.tabulated_rating_curve.add(\n", + " Node(4, Point(-1.5, -1.5), name=\"weir\"),\n", + " [\n", + " tabulated_rating_curve.Static(\n", + " level=[0.0, 2, 5],\n", + " flow_rate=[0.0, 50, 200],\n", + " )\n", + " ],\n", + ")\n", + "diversion_weir = model.tabulated_rating_curve.add(\n", + " Node(8, Point(-1.125, -0.75), name=\"diversion_weir\"),\n", + " [\n", + " tabulated_rating_curve.Static(\n", + " level=[0.0, 1.5, 5],\n", + " flow_rate=[0.0, 45, 200],\n", + " )\n", + " ],\n", + ")\n", + "\n", + "# UserDemand\n", + "irrigation = model.user_demand.add(\n", + " Node(7, Point(-1.5, 0.5), name=\"irrigation\"),\n", + " [\n", + " user_demand.Time(\n", + " demand=[0.0, 0.0, 10, 12, 12, 0.0],\n", + " return_factor=0,\n", + " min_level=0,\n", + " priority=1,\n", + " time=[\n", + " starttime,\n", + " \"2022-03-31\",\n", + " \"2022-04-01\",\n", + " \"2022-07-01\",\n", + " \"2022-09-30\",\n", + " \"2022-10-01\",\n", + " ],\n", + " )\n", + " ],\n", + ")\n", + "\n", + "# Terminal\n", + "sea = model.terminal.add(Node(5, Point(-1.5, -3.0), name=\"sea\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Due to the increase of population and climate change Crystal city has implemented a reservoir upstream to store water for domestic use (See @fig-reservoir).\n", + "The reservoir is to help ensure a reliable supply during dry periods.\n", + "In this module, the user will update the model to incorporate the reservoir's impact on the whole Crystal basin.\n", + "\n", + "![Crystal basin with demands and a reservoir](https://s3.deltares.nl/ribasim/doc-image/quickstart/Crystal-basin-with-demands-and-a-reservoir.png){fig-align=\"left\" #fig-reservoir}\n", + "\n", + "## Reservoir\n", + "### Add a Basin\n", + "The `diversion_basin` from the previous tutorial is not used, but replaced by a larger `reservoir` Basin.\n", + "Its water will play an important role for the users (the city and the irrigation district).\n", + "The reservoir has a maximum area of $32.3 \\text{ km}^2$ and a maximum depth of $7 \\text{ m}$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "reservoir = model.basin.add(\n", + " Node(6, Point(-0.75, -0.5), name=\"reservoir\"),\n", + " [\n", + " basin.Profile(area=[20000000, 32300000], level=[0, 7]),\n", + " basin.State(level=[3.5]),\n", + " basin.Time(time=[starttime, endtime]),\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add a demand node\n", + "$50.000$ people live in Crystal City.\n", + "To represents the total flow rate or abstraction rate required to meet the water demand of $50.000$ people, another demand node needs to be added assuming a return flow of $60%$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "city = model.user_demand.add(\n", + " Node(9, Point(0, -1), name=\"city\"),\n", + " [\n", + " user_demand.Time(\n", + " # Total demand in m³/s\n", + " demand=[0.07, 0.08, 0.09, 0.10, 0.12, 0.14, 0.15, 0.14, 0.12, 0.10, 0.09, 0.08],\n", + " return_factor=0.6,\n", + " min_level=0,\n", + " priority=1,\n", + " time=pd.date_range(start=\"2022-01-01\", periods=12, freq=\"MS\"),\n", + " )\n", + " ],\n", + ") # fmt: skip" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.edge.add(main, reservoir, name=\"main\")\n", + "model.edge.add(minor, confluence, name=\"minor\")\n", + "model.edge.add(reservoir, irrigation, name=\"irrigation\")\n", + "model.edge.add(irrigation, confluence)\n", + "model.edge.add(reservoir, city, name=\"city\")\n", + "model.edge.add(city, confluence, name=\"city returnflow\")\n", + "model.edge.add(reservoir, diversion_weir, name=\"not diverted\")\n", + "model.edge.add(diversion_weir, confluence)\n", + "model.edge.add(confluence, weir)\n", + "model.edge.add(weir, sea, name=\"sea\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.plot();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "toml_path = base_dir / \"Crystal-3/ribasim.toml\"\n", + "model.write(toml_path)\n", + "cli_path = \"ribasim\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Adjust the code\n", + "Adjust the naming of the Basin in the dictionary mapping and the saving file should be `Crystal-3`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# | include: false\n", + "from subprocess import run\n", + "\n", + "run(\n", + " [\n", + " \"julia\",\n", + " \"--project=../../core\",\n", + " \"--eval\",\n", + " f'using Ribasim; Ribasim.main(\"{toml_path.as_posix()}\")',\n", + " ],\n", + " check=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot reservoir storage and level" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_basin = pd.read_feather(\n", + " base_dir / \"Crystal-3/results/basin.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", + "\n", + "# Create pivot tables and plot for Basin data\n", + "df_basin_wide = df_basin.pivot_table(\n", + " index=\"time\", columns=\"node_id\", values=[\"storage\", \"level\"]\n", + ")\n", + "df_basin_wide = df_basin_wide.loc[:, pd.IndexSlice[:, reservoir.node_id]]\n", + "\n", + "# Plot level and storage on the same graph with dual y-axes\n", + "fig, ax1 = plt.subplots(figsize=(12, 6))\n", + "\n", + "# Plot level on the primary y-axis\n", + "color = \"b\"\n", + "ax1.set_xlabel(\"Time\")\n", + "ax1.set_ylabel(\"Level [m]\", color=color)\n", + "ax1.plot(df_basin_wide.index, df_basin_wide[\"level\"], color=color)\n", + "ax1.tick_params(axis=\"y\", labelcolor=color)\n", + "\n", + "# Create a secondary y-axis for storage\n", + "ax2 = ax1.twinx()\n", + "color = \"r\"\n", + "ax2.set_ylabel(\"Storage [m³]\", color=\"r\")\n", + "ax2.plot(df_basin_wide.index, df_basin_wide[\"storage\"], linestyle=\"--\", color=color)\n", + "ax2.tick_params(axis=\"y\", labelcolor=color)\n", + "\n", + "fig.tight_layout() # Adjust layout to fit labels\n", + "plt.title(\"Basin level and storage\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The figure above illustrates the storage and water level at the reservoir.\n", + "As expected, after increasing the profile of the Basin, its storage capacity increased as well.\n", + "\n", + "## Plot flows" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_flow = pd.read_feather(\n", + " base_dir / \"Crystal-3/results/flow.arrow\", dtype_backend=\"pyarrow\"\n", + ")\n", + "# Add the edge names and then remove unnamed edges\n", + "df_flow[\"name\"] = model.edge.df[\"name\"].loc[df_flow[\"edge_id\"]].to_numpy()\n", + "df_flow = df_flow[df_flow[\"name\"].astype(bool)]\n", + "\n", + "# Plot the flow data, interactive plot with Plotly\n", + "pivot_flow = df_flow.pivot_table(\n", + " index=\"time\", columns=\"name\", values=\"flow_rate\"\n", + ").reset_index()\n", + "fig = px.line(pivot_flow, x=\"time\", y=pivot_flow.columns[1:], title=\"Flow [m3/s]\")\n", + "\n", + "fig.update_layout(legend_title_text=\"Edge\")\n", + "fig.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/dvc.lock b/dvc.lock new file mode 100644 index 000000000..9b0bac83b --- /dev/null +++ b/dvc.lock @@ -0,0 +1,26 @@ +schema: '2.0' +stages: + integration: + cmd: pixi run model-integration-test + deps: + - path: core/ + hash: md5 + md5: 6228f56acef895eeb5d4fdcd479cd1ee.dir + size: 474129 + nfiles: 45 + - path: models/hws_2024_7_0 + hash: md5 + md5: e88123c69a0f7e3590b94c55dbe0062e.dir + size: 45421022 + nfiles: 10 + params: + models/integration.toml: + solver.abstol: 1e-07 + solver.algorithm: QNDF + solver.autodiff: false + solver.reltol: 1e-07 + outs: + - path: data/integration.toml + hash: md5 + md5: aa6ff2820a6eda91df1073d3bc41755e + size: 109 diff --git a/dvc.yaml b/dvc.yaml new file mode 100644 index 000000000..880c12600 --- /dev/null +++ b/dvc.yaml @@ -0,0 +1,16 @@ +stages: + integration: + cmd: pixi run model-integration-test + deps: + - core/ + - models/hws_2024_7_0 + params: + - models/integration.toml: + - solver.algorithm + - solver.abstol + - solver.reltol + - solver.autodiff + outs: + - data/integration.toml +metrics: + - data/integration.toml diff --git a/models/benchmark.dvc b/models/benchmark.dvc new file mode 100644 index 000000000..9486b764e --- /dev/null +++ b/models/benchmark.dvc @@ -0,0 +1,14 @@ +md5: 2fac758278d29071bb3e4632d69cbb0c +frozen: true +deps: +- md5: 8620613cb3fc380a20bcbbb2bd36b28c.dir + size: 187932 + nfiles: 6 + hash: md5 + path: remote://minio_readonly/benchmark +outs: +- md5: ceb5e5e81c402510497da43d29dce099.dir + size: 187932 + nfiles: 6 + hash: md5 + path: benchmark diff --git a/models/hws_2024_7_0.dvc b/models/hws_2024_7_0.dvc new file mode 100644 index 000000000..dd89be15b --- /dev/null +++ b/models/hws_2024_7_0.dvc @@ -0,0 +1,14 @@ +md5: aa976a0658b5e52b211b9714c93b6a34 +frozen: true +deps: +- md5: 24169f5a25b4c78f1868b8401a367117.dir + size: 43269986 + nfiles: 4 + hash: md5 + path: remote://minio_readonly/hws_2024_7_0 +outs: +- md5: bc02da0ad6e562f31ae8b61d34884a11.dir + size: 43269986 + nfiles: 4 + hash: md5 + path: hws_2024_7_0 diff --git a/models/hws_migration_test.dvc b/models/hws_migration_test.dvc new file mode 100644 index 000000000..03643c3ae --- /dev/null +++ b/models/hws_migration_test.dvc @@ -0,0 +1,14 @@ +md5: bda2339cc165379b0f6da21aa67039d9 +frozen: true +deps: +- md5: ab64e9bee55f9a7524f36ca317ade8fb.dir + size: 43307158 + nfiles: 2 + hash: md5 + path: remote://minio_readonly/hws_migration_test +outs: +- md5: 6ca6218661d0f021bc53bf468000a62b.dir + size: 43307158 + nfiles: 2 + hash: md5 + path: hws_migration_test diff --git a/models/integration.toml b/models/integration.toml new file mode 100644 index 000000000..fc347697d --- /dev/null +++ b/models/integration.toml @@ -0,0 +1,12 @@ +starttime = 2023-01-20 00:00:00 +endtime = 2023-07-01 00:00:00 +crs = "EPSG:28992" +input_dir = "hws_2024_7_0" +results_dir = "hws_2024_7_0/results" +ribasim_version = "2024.10.0" + +[solver] +algorithm = "QNDF" # optional, default "QNDF" +abstol = 1e-7 # optional, default 1e-7 +reltol = 1e-7 # optional, default 1e-7 +autodiff = false # optional, default false diff --git a/mypy.ini b/mypy.ini index f5510b114..db8f09ecd 100644 --- a/mypy.ini +++ b/mypy.ini @@ -10,6 +10,7 @@ extra_checks = True disallow_subclassing_any = True disallow_untyped_decorators = True disallow_any_generics = True +mypy_path = .pixi/envs/$PIXI_ENVIRONMENT_NAME/Library/python,.pixi/envs/$PIXI_ENVIRONMENT_NAME/share/qgis/python # Ignore errors for imported packages. [mypy-console.*] diff --git a/open-vscode.bat b/open-vscode.bat new file mode 100644 index 000000000..ae86837bf --- /dev/null +++ b/open-vscode.bat @@ -0,0 +1 @@ +pixi run --environment=dev code . | exit diff --git a/pixi.lock b/pixi.lock index bd2cdf2a9..5e119f549 100644 --- a/pixi.lock +++ b/pixi.lock @@ -11,1219 +11,896 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h66e93f0_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.22-heee8711_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.0-h816f305_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.23-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.4.2-hb72ac1a_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.2-had8cc17_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.9-h37d6bf3_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.4-hb0abfc5_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.6.0-h1f67ec3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.16-he027950_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.27.2-heffe44f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.329-habc23cd_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.12.0-h830ed8b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.8.0-hdb0d106_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.11.0-ha67cba7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.6.0-he3f277c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.10.0-h29b5301_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.31-hcdce11a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.4-hd3f4568_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.31-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.19-hf20e7d7_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h72d8268_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.10-h6bb76cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.20-h389d861_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.7-had056f2_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.0-hc85afc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.19-hf20e7d7_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.20-hf20e7d7_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.0-h07ed512_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.407-h9c41b47_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py312h7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py312hf06ca03_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-hf8ad068_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312h085067d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312hc0a28a1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py312h8572e83_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py312h9a8786e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py312h68727a3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py312h178313f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py312h7070661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py312h2ec8cdc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py312h41a817b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py312h178313f_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h743c826_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py312h86af8fa_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-hf7fa9e8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.0-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-h77b800c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.3-h73ef956_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.5-hbaaba92_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.5-haf2f30d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.5.0-hfac3d4d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh3099207_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.17-h7ab15ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hee9dde6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.18-h6688a6e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py312h8572e83_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py312h68727a3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_h5888daf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-16.1.0-h56e7afd_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-16.1.0-hc9a23c6_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.85.0-ha770c72_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-15.0.2-h1972583_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-15.0.2-h5d0bfc1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-15.0.2-h5d0bfc1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-15.0.2-h15553ab_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-sql-15.0.2-ha33d14e_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-gandiva-15.0.2-h18fa613_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-15.0.2-ha33d14e_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h6ae225f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.3-default_hb5137d0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-19.1.3-default_h9c6a7e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.22-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.123-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.1-ha654e03_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.26.0-h26d7fe4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.26.0-ha262f82_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.9.2-hd5b9bfb_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.30.0-h438788a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.30.0-h0121fbd_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.50-h4f305b6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.65.5-hf5c653b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h01aab08_1018.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-hf539b9f_1021.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-25_linux64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-hc9dba70_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm17-17.0.6-hc9dba70_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.3-ha7bfdaf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.10.0-h4bc722e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.5-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-16.1.0-h9e5060d_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.3-ha72fbe1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-hc670b87_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h15fa968_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-15.0.2-hd082c85_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.44-hadc24fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.4-h2d7952a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.27.5-h5b01275_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h97f6797_17.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h1b4f908_11.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.19.0-hb90f79a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-256.7-h2774228_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-he137b08_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-256.7-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.39-h76b75d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h374181b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312h03f37cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312hb3f7f12_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py312h7900ff3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py312h20ab3a6_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py312hd3ec401_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.7-h401b404_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.6-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py312h2492b07_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py312h68727a3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-9.0.1-h266115a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-9.0.1-he0572af_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h1ef7fb6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nss-3.102-h593d115_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h21d6d8e_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py312h83e6fd3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py312h58c1407_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.2-h690cf93_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py312h1d6d2e6_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py312hf9745cd_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py312h287a98d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py312h7b63e92_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.07.0-hb0d391f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.3-h8e811e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.4.1-hb784bbd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py312h9a8786e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.5.0-h12925eb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py312h9cebb41_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py312h70856f0_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-15.0.2-py312h5169447_39_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py312hf008fa9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py312h6368725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py312h12e396e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py312h8ad7a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py312h5d05ceb_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py312h949fe66_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py312h30efb56_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py312he8b4914_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py312he630544_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.7.3-py312h91f0f75_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py312h98912ed_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py312h8fd38d8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-ha2b5568_22.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.7.3-h20baabe_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-54.0-h5888daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h77b4e00_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.17-he19d79f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py312h775a589_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py312hc2bc53b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py312h8413631_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py312h30efb56_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.5-h3931f03_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py312h7a48858_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py312h62794b6_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py312h391bc85_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-ha2e4443_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.13.0-hd2e6256_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.47.0-h9eae976_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.24.2-h9260d03_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h9a8786e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024a-h3f72095_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.17.0-h05e919c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.23.1-h3e06ad9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-hac6953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-h988505b_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.43-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-he73a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.10-h4f16b4b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.5-hb9d3cd8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h75354e8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py312h5b18bf6_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels - osx-64: - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.7.22-he52cbe7_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.7.0-hd73d8db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.9.23-hfdf4475_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.2.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.4.2-ha5205da_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.8.2-hf609411_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.14.9-h9f49e27_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.10.4-hcc4e2a5_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.6.0-h8fdb93b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.1.16-hd73d8db_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.1.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.27.2-h7746516_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.329-hce9e41e_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-core-cpp-1.12.0-hf8dbe3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.8.0-h906f3f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.11.0-h5f32033_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.6.0-h0dc8e96_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.10.0-hc1cec4e_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312heafc425_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.28.1-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.7.4-h8857fd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.0-h9f650ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py312h38bf5a0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cfitsio-4.4.1-ha105788_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py312h5dc8b90_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py312h9230928_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py312h28f332c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/expat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.14.2-h5bb23bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3ec172f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py312h9b1be66_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.12.2-hf036a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geotiff-1.7.3-h4bbec01_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.2.2-hb1e8313_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.3-nompi_h687a608_105.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/json-c-0.17-h8e11ae5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kealib-1.5.3-hb2b617a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py312h49ebfd2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.16-ha2f27b4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20240116.2-cxx17_hc1bcbd7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-16.1.0-h067ad5e_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-16.1.0-h85bc590_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.85.0-h694c41f_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.8.0-hf9fcc65_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-17.0.6-heb59cac_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.20-h49d49c5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-ha90c15b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgdal-3.9.1-h52f6243_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.80.3-h736d271_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.26.0-h721cda5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.26.0-h9e84e37_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.62.2-h384b2fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-hab3ca0e_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm14-14.0.6-hc8e404f_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.2-nompi_h7334405_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.27-openmp_h8869122_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-16.1.0-h904a336_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.43-h92b6c6a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-16.3-h4501773_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-4.25.3-h4e4d658_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2023.09.01-h81f5012_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-he2ba7a0_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.18-hbcb3906_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-hdc25a2c_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.19.0-h064b379_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.6.0-h129831d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.8.0-hb7f2c08_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.4.0-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.16-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-h3e169fe_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.10.1-hc158999_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py312hdeb90da_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py312h904eaf1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py312hb401068_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py312hb6d62fa_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.7-h62b0c8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py312hc3c9ca0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h5846eda_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py312h87064e8_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nspr-4.35-hea0b92c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nss-3.102-he7eb89d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py312h1171441_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py312hbd70edc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.43.4-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/poppler-24.07.0-h744cbf2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/postgresql-16.3-h1d90168_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.4.1-hf92c781_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-hc929b4f_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py312h0be7463_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py312h12b3929_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py312ha47ea1c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py312h43b3a95_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py312ha320102_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.4-h37a9e06_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-4_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py312h104f124_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py312ha04878a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2023.09.01-hb168e87_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py312hc214ba5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py312hb9702fa_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py312h594820c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.1-he1e6707_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/spdlog-1.13.0-h1a4aec9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.46.0-h28673e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tiledb-2.24.2-h493d6f2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tzcode-2024a-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.2.5-hbbe9ea5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.11-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-hde137ed_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py312h331e495_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda - - pypi: python/ribasim - - pypi: python/ribasim_api - - pypi: python/ribasim_testmodels osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py312h024a12e_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.22-haa5a189_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.0-h94d0942_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.23-h99b78c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.4.2-he43e89f_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.2-h638bd1a_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.9-hf0e3e08_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.4-h80c1ce3_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.6.0-h11f64d3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.16-h94d0942_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.27.2-hd9c8ee4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.329-haf867cf_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.12.0-hd01fc5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.8.0-h0a11218_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.11.0-h77cc766_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.6.0-h7024f69_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.10.0-h64d02d0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.31-hee1f4ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.4-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.31-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.19-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h33c80d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.10-h4a91a90_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.20-h5fdde16_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.7-hd821a15_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.0-hc6bcb7c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.19-hfd083d3_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.20-hfd083d3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.0-h45f4ed5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.407-h0a0d3c4_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py312h81bd7bf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312h9f69965_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.7.4-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hc6c324b_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py312h8e38eb3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-h793ed5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312hbebd99a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312h755e627_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py312h0fef576_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py312h4721b07_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py312ha0ccf2a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py312h5c2e7bc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py312hde4cb15_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.6.2-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.14.2-h82840c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py312ha0ccf2a_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-hfbad9fb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py312hf4c14af_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.12.2-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h7e5fb84_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hc88da5d_1004.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.13.0-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h82bf549_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.3-nompi_hec07895_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.17-h40ed0f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py312h81bd7bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h848a2d4_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py312h389731b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.18-he4178ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py312h6142ec9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240116.2-cxx17_hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_hf9b8971_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.3-hebf3989_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-16.1.0-h71e69af_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-16.1.0-hc68f6b8_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.85.0-hce30654_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-22_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-15.0.2-hfcb7bf0_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-15.0.2-h5833ebf_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-15.0.2-h5833ebf_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-15.0.2-h1a98edb_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-sql-15.0.2-h54b16e1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-gandiva-15.0.2-h6d50e30_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-15.0.2-hec64ae3_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-25_osxarm64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.8.0-h7b6f9a7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-17.0.6-h0812c0d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.20-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.22-hd74edd7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.1-h750986c_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.9.2-hfd0b032_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.26.0-hfe08963_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.26.0-h1466eeb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.62.2-h9c18a4f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.30.0-h2e6cea1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.30.0-h90fd6fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.65.5-h3d9cf25_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8fbad5d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-h1eb4d9f_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-22_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-he250239_1021.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-25_osxarm64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm17-17.0.6-h5090b49_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-16.1.0-hcf52c46_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.43-h091b4b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.3-h7afe498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-4.25.3-hbfab5d5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.09.01-h7b2c953_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-h31fb324_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.18-h27ca646_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hf7a34df_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_h517c56d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-15.0.2-h8aa6169_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.44-hc14010f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.27.5-h53f8970_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h2348fd5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha2cf0f4_17.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hffd3212_11.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.19.0-h026a170_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.6.0-h07db509_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-hfce79cd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.8.0-h1a8c8d9_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.4.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.16-hf2054a2_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-ha661575_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.10.1-ha0bc3c6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312h30cb90f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.3-hb52a8e5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312ha9ca408_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312haed5471_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312h11d1bbd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py312h1f38498_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py312h4479663_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py312ha0ccf2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py312h1f38498_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py312h9bd0bc6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.7-h27ee973_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py312h157fec4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py312h6142ec9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-hb89a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hec02768_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.35-hb7217d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.102-hc42bcbf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hd88a8d4_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py312h801f5e3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.2-h4a9587e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py312h8ae5369_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py312hcd31e36_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py312h39b1d8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.43.4-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py312haf37ca6_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.07.0-h9787579_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.3-hdfa2ec6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.4.1-hfb94cee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py312h7e5086c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-h27ca646_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.5.0-h61a8e3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py312h0bf5046_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py312ha814d7c_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py312h21f1c3e_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-15.0.2-py312h5d771bf_39_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py312h552d48e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py312h4cf456b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py312he431725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.9.0-py312h15038b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py312h64656f7_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py312hf9e36c7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py312h1ab748d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.4-h30c5eda_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py312h02f2b3b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py312hfa13136_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.09.01-h4cba328_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hf8a1cbd_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-hcd0e937_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py312h1b546db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py312h14ffa8f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py312hbab3d11_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py312h387f99c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py312h20deb59_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py312h3a6007a_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-hd02b534_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.13.0-h5fcca99_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.46.0-h5838104_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.47.0-hcd14bea_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.24.2-h577ba9b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h024a12e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024a-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py312h0bf5046_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-hf393695_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-h92fc2f4_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hb547adb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.3-h27ca646_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hd74edd7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hcc0f68c_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h9f5b81c_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py312h721a963_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels win-64: + - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py312h4389bb4_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.22-hbd1ec33_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.0-hea5f451_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.23-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.4.2-ha301515_14.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.2-h0d3dc49_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.9-h5623c2f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.4-haec3ea0_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.6.0-hce3953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.16-hea5f451_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.27.2-h161bee7_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.329-haf7a04e_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.12.0-haf5610f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.8.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.11.0-h39eb5e7_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.6.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.31-h459cf4e_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.4-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.31-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.19-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.0-h520d0cd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.10-h2b94654_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.20-he6ac336_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.7-h5d974fa_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.7.0-h6498dec_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.19-h0da4a7a_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.20-h0da4a7a_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.29.0-hb4a7b61_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.407-hdc23f3d_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h53d5487_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.28.1-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.7.4-h56e8100_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h91e5215_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hc2ea260_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h32b962e_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py312h0d7def4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py312hd5eb7cc_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py312h31fea79_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.7-py312hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py312h275cf98_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py312h275cf98_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.0-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/expat-2.6.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.14.2-hbde0cde_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py312h31fea79_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-h8276f4a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py312h7090a6d_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.12.2-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-hd7df778_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.80.3-h4394cf3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.5-hb0a98b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.5-h5006eae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.0-h5a68840_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-h496ac4d_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.13-h63175ca_1003.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-9.0.0-h2bedf89_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.3-nompi_h2b43c12_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh4bbf305_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py312h0d7def4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py312hd5eb7cc_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240116.2-cxx17_h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240722.0-cxx17_he0c23c2_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libarchive-3.7.4-haf234dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h6c1a0db_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-h1f0e801_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.85.0-h57928b3_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-18.1.8-default_ha5278ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h80430d3_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-hac47afa_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-hac47afa_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-ha9530af_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-19.1.3-default_ha5278ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcrc32c-1.1.2-h0e60522_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.8.0-hd5e4a3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.20-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.22-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-h3671451_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libflang-5.0.0-h6538335_20180525.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.1-h26bd040_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.26.0-h5e7cea3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.26.0-he5eb982_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.62.2-h5273850_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.9.2-h042995d_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.30.0-ha00044d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.30.0-he5eb982_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.65.5-ha20e22e_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-haf3e7a6_1018.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h538826c_1021.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-25_win64_mkl.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h92078aa_114.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libopenblas-0.3.27-pthreads_hc140b1d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h178134c_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.43-h19919ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpq-16.3-hab9416b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-4.25.3-h503648d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2023.09.01-hf8d8778_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-h6c42fcb_16.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-hcb35769_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h59f2d37_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.44-h3ca93ac_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-5.27.5-hcaed137_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2024.07.02-h4eb7d71_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-hd4c2148_17.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-h939089a_11.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.19.0-ha2b3283_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-hddb2be6_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.21.0-hbe90ef8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-hfc51747_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.8.0-h82a8f57_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h0e60522_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.4.0-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.16-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h283a6d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.10.1-h1d365fa_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.39-h3df6e99_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h594ca44_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h0608a1d_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hcfcfb64_1001.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py312h2e8e312_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py312hfee7060_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py312h31fea79_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py312h90004f6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/minizip-4.0.6-hb638d1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py312hd5eb7cc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_14.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py312hd5eb7cc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py312hcccf92d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py312h49bc9c5_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openmp-5.0.0-vc14_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.2-h1c5a4bf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py312h72972c8_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py312h72972c8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py312h381445a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py312ha41cd45_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.43.4-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/poppler-24.07.0-h686f694_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.3-h7f155c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.4.1-hd9569ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py312h4389bb4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h3529c54_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.5.0-hd9569ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h6a9c419_6_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py312h2615798_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py312h2615798_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py312hd215820_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py312h6f27134_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py312he09f080_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py312h53d5487_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py312h8705084_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py312ha24589b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py312h2ee7485_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.4-h889d299_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py312h53d5487_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py312he70551f_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py312hd7027bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h06adc49_22.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2023.09.01-hd3b24a8_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py312h275cf98_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py312hd7027bb_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.8.0-hfb098fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rcedit-1.1.1-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2024.07.02-hd3b24a8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py312h816cc57_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py312h1f4e10d_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py312h3a88d77_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py312h53d5487_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py312h816cc57_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py312h337df96_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py312h0c580ee_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.1-h23299a8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.13.0-h64d2f7d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.7.0-h91493d7_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.24.2-h2a0bfd3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/uriparser-0.9.8-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-he0c23c2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-h0e40799_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-he1f189c_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-ha9f60a1_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py312h7606c53_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda - pypi: python/ribasim - pypi: python/ribasim_api @@ -1237,156 +914,157 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_14.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h98912ed_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h66e93f0_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.22-heee8711_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.0-h816f305_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.23-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.4.2-hb72ac1a_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.2-had8cc17_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.9-h37d6bf3_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.4-hb0abfc5_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.6.0-h1f67ec3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.16-he027950_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.27.2-heffe44f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.329-habc23cd_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.12.0-h830ed8b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.8.0-hdb0d106_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.11.0-ha67cba7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.6.0-he3f277c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.10.0-h29b5301_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.31-hcdce11a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.4-hd3f4568_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.31-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.19-hf20e7d7_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h72d8268_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.10-h6bb76cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.20-h389d861_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.7-had056f2_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.0-hc85afc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.19-hf20e7d7_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.20-hf20e7d7_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.0-h07ed512_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.407-h9c41b47_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.14.0-h5cfcd09_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.10.0-h113e628_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.13.0-h3cf044e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.8.0-h736e048_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/beartype-0.18.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/beartype-0.19.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-ha1999f0_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/build-0.7.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-hfae76b8_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py312hf06ca03_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-ha77e7a2_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-hf8ad068_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312h085067d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-ha728647_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312hc0a28a1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-0.8.0-py312h98912ed_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py312h8572e83_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py312h9a8786e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-42.0.8-py312hbcc2302_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py312h68727a3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py312h178313f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cpd-0.5.5-h434a139_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-43.0.3-py312hda17c39_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py312h98912ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dart-sass-1.58.3-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py312h7070661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py312h2ec8cdc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/deno-1.37.2-h335b0a9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/deno-1.41.0-hfc7925d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/deno-dom-0.1.35-hd9586b0_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/draco-1.5.7-h00ab1b0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/esbuild-0.19.2-ha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/esbuild-0.24.0-ha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/exiv2-0.28.3-h4dc94ea_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fgt-0.4.11-h87365c0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-11.0.2-h434a139_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py312h41a817b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py312h178313f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h743c826_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.1.0-h3c94d91_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py312h86af8fa_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-hf7fa9e8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/gh-2.52.0-he0e2781_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.2.0-h6b349bd_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.2-py312h1299960_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.0-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-h77b800c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gh-2.60.1-h76a2195_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.3-h73ef956_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.82.2-h44428e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.82.2-h4833e2c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-0.47.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-1.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gsl-2.7-he838d99_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.5-hbaaba92_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.5-haf2f30d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.7-h0a52356_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.7-hf3bb09a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.5.0-hfac3d4d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httplib2-0.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh3099207_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda @@ -1395,952 +1073,552 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.17-h7ab15ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.18-h6688a6e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.25-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/juliaup-1.14.9-he9194b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.23.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/juliaup-1.17.10-h8fae777_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hee9dde6_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.2.1-pyha804496_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hf8d3e68_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py312h8572e83_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py312h68727a3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/laz-perf-3.4.0-h00ab1b0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_h5888daf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-16.1.0-h56e7afd_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-16.1.0-hc9a23c6_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.85.0-ha770c72_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-15.0.2-h1972583_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-15.0.2-h5d0bfc1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-15.0.2-h5d0bfc1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-15.0.2-h15553ab_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-sql-15.0.2-ha33d14e_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-gandiva-15.0.2-h18fa613_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-15.0.2-ha33d14e_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h6ae225f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.3-default_hb5137d0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-19.1.3-default_h9c6a7e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.22-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.123-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.1.0-h5d3d1c9_100.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.1-ha654e03_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-arrow-parquet-3.9.1-h403c244_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.26.0-h26d7fe4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.26.0-ha262f82_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.2.0-h41c2201_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.2-ha770c72_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-arrow-parquet-3.9.3-h3ff7ee4_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.9.2-hd5b9bfb_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-fits-3.9.2-h2db6552_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-grib-3.9.2-hc3b29a1_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf4-3.9.2-hd5ecb85_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf5-3.9.2-h6283f77_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-jp2openjpeg-3.9.2-h1b2c38e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-kea-3.9.2-h1df15e4_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-netcdf-3.9.2-hf2d2f32_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-pdf-3.9.2-h600f43f_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-pg-3.9.2-h151b34b_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-postgisraster-3.9.2-h151b34b_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-tiledb-3.9.2-ha8d0372_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-xls-3.9.2-h03c987c_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.30.0-h438788a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.30.0-h0121fbd_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.50-h4f305b6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.0-default_h5622ce7_1000.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.65.5-hf5c653b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.2-default_he43201b_1000.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h01aab08_1018.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-hf539b9f_1021.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-25_linux64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-hc9dba70_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm17-17.0.6-hc9dba70_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.3-ha7bfdaf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.10.0-h4bc722e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.5-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-16.1.0-h9e5060d_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.3-ha72fbe1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-hc670b87_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.1.0-hcba0ae0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-15.0.2-hd082c85_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-2.8.0-ha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-arrow-2.8.0-h8bbc2ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-core-2.8.0-h8f62525_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-cpd-2.8.0-h5888daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-draco-2.8.0-h5888daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-e57-2.8.0-h258f5e6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-hdf-2.8.0-hf8d3e68_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-icebridge-2.8.0-hf8d3e68_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-nitf-2.8.0-h86beebd_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-pgpointcloud-2.8.0-hda54c46_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-tiledb-2.8.0-h72bbe06_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpdal-trajectory-2.8.0-h8c7babf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.44-hadc24fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.4-h2d7952a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.27.5-h5b01275_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h97f6797_17.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.2.0-h2a3dede_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsecret-0.18.8-h329b89f_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialindex-2.0.0-he02047a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h15fa968_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h1b4f908_11.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.19.0-hb90f79a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-256.7-h2774228_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-he137b08_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-256.7-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.4.0-h2c329e2_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.39-h76b75d6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h374181b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-5.2.2-py312hb90d8a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312h03f37cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-5.3.0-py312he28fd5a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312hb3f7f12_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py312h7900ff3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py312h20ab3a6_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py312hd3ec401_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.0-h59595ed_1007.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.0-hd0bcaf9_1007.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.7-h401b404_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mock-5.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h9458935_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.6-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py312h2492b07_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.9-hc50e24c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpi-1.0-openmpi.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py312h68727a3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.10.1-py312h9a8786e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.13.0-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-9.0.1-h266115a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-9.0.1-he0572af_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h1ef7fb6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.18-py312hf008fa9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h21d6d8e_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.18-py312h12e396e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nitro-2.7.dev8-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nose2-0.9.2-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nss-3.102-h593d115_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.36-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nss-3.106-hdf54f9c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py312h83e6fd3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py312h58c1407_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.2-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openmpi-5.0.5-h6ae21d5_103.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.2-h690cf93_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/owslib-0.31.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/owslib-0.32.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py312h1d6d2e6_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.1.11.1-ha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py312hf9745cd_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.2-ha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pdal-2.7.2-hdf3bac7_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pep517-0.13.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pdal-2.8.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py312h287a98d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py312h7b63e92_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.22.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.1.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.07.0-hb0d391f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.08.0-h47131b8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.3-h8e811e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.4.1-hb784bbd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py312h9a8786e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psycopg2-2.9.9-py312h08590aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.4-hb2eb5c0_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.5.0-h12925eb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psycopg2-2.9.9-py312h9862866_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py312h9cebb41_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py312h70856f0_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-15.0.2-py312h5169447_39_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py312hf008fa9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py312h6368725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py312h12e396e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py312h8ad7a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py312h5d05ceb_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py312he8b4914_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py312he630544_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py312h949fe66_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyqt-stubs-5.15.6.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py312h30efb56_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqtwebkit-5.15.9-py312hc23280e_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.7.3-py312h91f0f75_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-pdal-3.4.5-py312h356d258_12.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py312h98912ed_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py312h8fd38d8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/qca-2.3.9-h7e7bb2e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qgis-3.38.0-py312h9323a83_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qgis-3.40.0-py312h8d9565f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/qgis-plugin-manager-1.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/qjson-0.9.0-h0c700ba_1009.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/qscintilla2-2.14.1-py312hc23280e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-ha2b5568_22.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.15-h374914d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.7.3-h20baabe_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/qtkeychain-0.14.3-h8f99554_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qtwebkit-5.212-h60108c6_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/quarto-1.4.550-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.7.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qtwebkit-5.212-h0fbc989_17.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/quarto-1.5.57-ha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/qwt-6.3.0-h7c222af_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-54.0-h5888daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h77b4e00_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-42.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.19.0-py312hf008fa9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.5.1-py312hbe4c86d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.79.0-h0a17960_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.79.0-h2c6d0dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.17-he19d79f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py312h775a589_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py312hc2bc53b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.20.1-py312h12e396e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.7.2-py312h2156523_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.81.0-h1a8d7c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.81.0-h2c6d0dc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.5-h3931f03_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py312h7a48858_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py312h62794b6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py312h8413631_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py312h391bc85_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py312h30efb56_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-ha2e4443_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.13.0-hd2e6256_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.14.1-hed91bc2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphobjinv-2.3.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.47.0-h9eae976_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/suitesparse-7.7.0-hf4753ba_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-he073ed8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/suitesparse-7.8.3-hb42a789_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_18.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.12.0-h434a139_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tbb-2022.0.0-hceb3a55_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-8.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.24.2-h9260d03_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.25.0-hd64914e_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h9a8786e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/twine-5.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240316-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20241003-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024a-h3f72095_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h8572e83_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/typst-0.11.0-he8a937b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024b-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.17.0-h05e919c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h68727a3_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-4.0.1-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.4.29-h0f3a69f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.23.1-h3e06ad9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-hac6953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-h988505b_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.43-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-he73a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.10-h4f16b4b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.5-hb9d3cd8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-hb9d3cd8_1004.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h75354e8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py312h5b18bf6_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda - - pypi: python/ribasim - - pypi: python/ribasim_api - - pypi: python/ribasim_testmodels - osx-64: - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-21.2.0-py312h104f124_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.7.22-he52cbe7_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.7.0-hd73d8db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.9.23-hfdf4475_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.2.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.4.2-ha5205da_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.8.2-hf609411_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.14.9-h9f49e27_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.10.4-hcc4e2a5_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.6.0-h8fdb93b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.1.16-hd73d8db_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.1.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.27.2-h7746516_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.329-hce9e41e_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-core-cpp-1.12.0-hf8dbe3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.8.0-h906f3f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.11.0-h5f32033_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.6.0-h0dc8e96_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.10.0-hc1cec4e_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/beartype-0.18.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312heafc425_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/build-0.7.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.28.1-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.7.4-h8857fd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.0-h9f650ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ceres-solver-2.2.0-h337fa08_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py312h38bf5a0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/cfitsio-4.4.1-ha105788_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py312h5dc8b90_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cmarkgfm-0.8.0-py312h104f124_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py312h9230928_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/dart-sass-1.58.3-h694c41f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py312h28f332c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/deno-1.37.2-h51b076b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/deno-dom-0.1.35-h08cba0f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/draco-1.5.7-h7728843_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/eigen-3.4.0-h1c7c39f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/esbuild-0.19.2-h694c41f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/exiv2-0.28.3-h07ad639_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/expat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.14.2-h5bb23bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3ec172f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py312h9b1be66_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.12.2-hf036a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geotiff-1.7.3-h4bbec01_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.2.2-hb1e8313_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/gh-2.52.0-he13f2d6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/glib-2.80.3-h736d271_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/glib-tools-2.80.3-h959cb30_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-0.47.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gsl-2.7-h93259b0_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/gst-plugins-base-1.24.5-h0e442b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gstreamer-1.24.5-hbc75551_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.3-nompi_h687a608_105.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/httplib2-0.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/json-c-0.17-h8e11ae5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.25-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/juliaup-1.14.9-h0e67b80_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.2.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kealib-1.5.3-hb2b617a_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.2.1-pyh534df25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/khronos-opencl-icd-loader-2023.04.17-h37ebe6b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py312h49ebfd2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/laz-perf-3.4.0-h1c7c39f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.16-ha2f27b4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20240116.2-cxx17_hc1bcbd7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-16.1.0-h067ad5e_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-16.1.0-h85bc590_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libasprintf-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.85.0-h694c41f_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp15-15.0.7-default_h7151d67_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang13-18.1.8-default_h9ff962c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.8.0-hf9fcc65_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-17.0.6-heb59cac_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.20-h49d49c5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-ha90c15b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgdal-3.9.1-h52f6243_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgdal-arrow-parquet-3.9.1-h09d7208_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgettextpo-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.80.3-h736d271_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.26.0-h721cda5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.26.0-h9e84e37_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.62.2-h384b2fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.11.0-default_h456cccd_1000.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-devel-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-hab3ca0e_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm14-14.0.6-hc8e404f_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm15-15.0.7-hbedff68_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm18-18.1.8-h9ce406d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.2-nompi_h7334405_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libogg-1.3.5-hfdf4475_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.27-openmp_h8869122_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libopus-1.3.1-hc929b4f_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-16.1.0-h904a336_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.43-h92b6c6a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-16.3-h4501773_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-4.25.3-h4e4d658_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2023.09.01-h81f5012_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-he2ba7a0_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.18-hbcb3906_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialindex-2.0.0-hf036a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-hdc25a2c_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libtasn1-4.19.0-hb7f2c08_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.19.0-h064b379_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.6.0-h129831d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.8.0-hb7f2c08_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libvorbis-1.3.7-h046ec9c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-1.4.0-hc207709_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.4.0-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.16-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-h3e169fe_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.39-h03b04e6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.10.1-hc158999_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py312hdeb90da_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/lxml-5.2.2-py312h1aa9a54_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py312h904eaf1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py312hb401068_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py312hb6d62fa_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/metis-5.1.0-he965462_1007.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.7-h62b0c8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mock-5.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-h4f6b447_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py312hc3c9ca0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.10.1-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/mysql-common-8.3.0-hfd7a639_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/mysql-libs-8.3.0-ha9146f8_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h5846eda_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py312h87064e8_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nh3-0.2.18-py312ha47ea1c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nitro-2.7.dev8-he965462_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nose2-0.9.2-py_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nspr-4.35-hea0b92c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nss-3.102-he7eb89d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/owslib-0.31.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py312h1171441_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandoc-3.1.11.1-h694c41f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pdal-2.7.2-hffc7825_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pep517-0.13.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py312hbd70edc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.43.4-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.1.post1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/poppler-24.07.0-h744cbf2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/postgresql-16.3-h1d90168_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.4.1-hf92c781_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psycopg2-2.9.9-py312hca9e88b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-hc929b4f_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py312h0be7463_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py312h12b3929_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py312ha47ea1c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-10.3.1-py312he77c50b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-10.3.1-py312he77c50b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py312h43b3a95_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py312ha320102_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyqt-5.15.9-py312hd74d816_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyqt-stubs-5.15.6.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyqt5-sip-12.12.2-py312he36337a_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyqtwebkit-5.15.9-py312h5ae8335_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.4-h37a9e06_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.20.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-4_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py312h104f124_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py312ha04878a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qca-2.3.9-h424957d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qgis-3.38.0-py312hd8787b6_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/qgis-plugin-manager-1.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qhull-2020.2-h3c5361c_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qjson-0.9.0-hed3eaa1_1009.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qscintilla2-2.14.1-py312h12cbc42_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qt-main-5.15.8-he8879f6_22.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qtkeychain-0.14.3-h8ef3ffb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qtwebkit-5.212-h3b777d0_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/quarto-1.4.550-h694c41f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.7.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qwt-6.3.0-h69e1d46_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2023.09.01-hb168e87_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-42.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.19.0-py312ha47ea1c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.5.1-py312h8b25c6c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/rust-1.79.0-h6c54e5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.79.0-h38e4360_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py312hc214ba5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py312hb9702fa_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py312h594820c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sip-6.7.12-py312h444b7ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.1-he1e6707_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/spdlog-1.13.0-h1a4aec9_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphobjinv-2.3.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.46.0-h28673e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/suitesparse-7.7.0-hd2b2131_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2021.12.0-h3c5361c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-8.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tiledb-2.24.2-h493d6f2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/twine-5.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240316-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/tzcode-2024a-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312h49ebfd2_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/watchdog-4.0.1-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.2.5-hbbe9ea5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.11-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-hde137ed_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py312h331e495_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda + - pypi: https://files.pythonhosted.org/packages/44/5b/fa477e4fd8e62c722febdc52462d7b037a77aa963c3e400a8e90e8f0d2c0/ptvsd-4.3.2-py2.py3-none-any.whl - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py312h02f2b3b_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py312h024a12e_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.22-haa5a189_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.0-h94d0942_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.23-h99b78c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.4.2-he43e89f_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.2-h638bd1a_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.9-hf0e3e08_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.4-h80c1ce3_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.6.0-h11f64d3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.16-h94d0942_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.27.2-hd9c8ee4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.329-haf867cf_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.12.0-hd01fc5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.8.0-h0a11218_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.11.0-h77cc766_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.6.0-h7024f69_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.10.0-h64d02d0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.31-hee1f4ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.4-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.31-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.19-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h33c80d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.10-h4a91a90_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.20-h5fdde16_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.7-hd821a15_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.0-hc6bcb7c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.19-hfd083d3_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.20-hfd083d3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.0-h45f4ed5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.407-h0a0d3c4_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.14.0-hd50102c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.10.0-hc602bab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.13.0-h7585a09_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.8.0-h9ca1f76_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/beartype-0.18.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/beartype-0.19.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py312h81bd7bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312h9f69965_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/build-0.7.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.7.4-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hc6c324b_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ceres-solver-2.2.0-h4929e67_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py312h8e38eb3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hb4a6bf7_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ceres-solver-2.2.0-h4929e67_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-h793ed5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312hbebd99a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-hd313823_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312h755e627_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cmarkgfm-0.8.0-py312h02f2b3b_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py312h0fef576_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py312h4721b07_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py312ha0ccf2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cpd-0.5.5-h420ef59_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py312he37b823_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py312h024a12e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/dart-sass-1.58.3-hce30654_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py312h5c2e7bc_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py312hde4cb15_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/deno-1.37.2-hce30654_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/deno-1.41.0-hce30654_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/deno-dom-0.1.35-hb9e0d3b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/draco-1.5.7-h2ffa867_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eigen-3.4.0-h1995070_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/esbuild-0.19.2-hce30654_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/esbuild-0.24.0-hce30654_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/exiv2-0.28.3-h62726b0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.6.2-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fgt-0.4.11-h745860c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-11.0.2-h420ef59_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.14.2-h82840c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.15.0-h1383a14_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py312ha0ccf2a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-hfbad9fb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py312hf4c14af_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.12.2-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h7e5fb84_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hc88da5d_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gh-2.52.0-h163aea0_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.2-py312h936c49d_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.13.0-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h82bf549_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gh-2.60.1-hd02bf31_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glib-2.80.3-h59d46d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glib-tools-2.80.3-h8ba3eef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glib-2.82.2-hb1db9eb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glib-tools-2.82.2-h25d4a46_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-0.47.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-1.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gsl-2.7-h6e638da_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gst-plugins-base-1.24.5-h40577aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gstreamer-1.24.5-h430e707_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gst-plugins-base-1.24.7-hb49d354_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gstreamer-1.24.7-hc3f5269_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.3-nompi_hec07895_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httplib2-0.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda @@ -2348,456 +1626,496 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.17-h40ed0f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.18-he4178ee_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.25-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/juliaup-1.14.9-h6e96688_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.23.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/juliaup-1.17.10-h0ef69ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h848a2d4_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.2.1-pyh534df25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/khronos-opencl-icd-loader-2023.04.17-hf50ae52_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py312h389731b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h8edbb62_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh534df25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/khronos-opencl-icd-loader-2024.05.08-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py312h6142ec9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/laz-perf-3.4.0-h1995070_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240116.2-cxx17_hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_hf9b8971_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.3-hebf3989_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-16.1.0-h71e69af_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-16.1.0-hc68f6b8_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-0.22.5-h8fbad5d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.85.0-hce30654_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp15-15.0.7-default_he012953_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-18.1.8-default_hfc66aa2_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-15.0.2-hfcb7bf0_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-15.0.2-h5833ebf_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-15.0.2-h5833ebf_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-15.0.2-h1a98edb_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-sql-15.0.2-h54b16e1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-gandiva-15.0.2-h6d50e30_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-15.0.2-hec64ae3_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-0.22.5-h8414b35_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp17-17.0.6-default_h146c034_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-19.1.3-default_h5f28f6d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.8.0-h7b6f9a7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-17.0.6-h0812c0d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.20-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.22-hd74edd7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.1-h750986c_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-arrow-parquet-3.9.1-h0511033_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-0.22.5-h8fbad5d_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.2-hce30654_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-arrow-parquet-3.9.3-hda027dd_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.9.2-hfd0b032_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-fits-3.9.2-h248c7bc_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-grib-3.9.2-h6d3d72d_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf4-3.9.2-h3847bb8_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf5-3.9.2-h2def128_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-jp2openjpeg-3.9.2-hd61e619_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-kea-3.9.2-h7b2de0b_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-netcdf-3.9.2-h5e0d008_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-pdf-3.9.2-h587d690_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-pg-3.9.2-h147afc8_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-postgisraster-3.9.2-h147afc8_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-tiledb-3.9.2-hf17dc73_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-xls-3.9.2-habc1c91_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-0.22.5-h8414b35_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.26.0-hfe08963_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.26.0-h1466eeb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.62.2-h9c18a4f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.11.0-default_h7685b71_1000.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.82.2-h07bd6cf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.30.0-h2e6cea1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.30.0-h90fd6fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.65.5-h3d9cf25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.11.2-default_h3f80f97_1000.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8fbad5d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-devel-0.22.5-h8fbad5d_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8414b35_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-devel-0.22.5-h8414b35_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-h1eb4d9f_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-22_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-he250239_1021.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-25_osxarm64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm15-15.0.7-h2621b3d_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm18-18.1.8-h5090b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm17-17.0.6-h5090b49_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm19-19.1.3-haf57ff0_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libogg-1.3.5-h99b78c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_h517c56d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopus-1.3.1-h27ca646_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-16.1.0-hcf52c46_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.43-h091b4b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.3-h7afe498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-4.25.3-hbfab5d5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.09.01-h7b2c953_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-h31fb324_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.18-h27ca646_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-15.0.2-h8aa6169_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-2.8.0-hce30654_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-arrow-2.8.0-h7e7b986_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-core-2.8.0-he5fba2a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-cpd-2.8.0-hf9b8971_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-draco-2.8.0-hf9b8971_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-e57-2.8.0-hcfda94f_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-hdf-2.8.0-h8edbb62_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-icebridge-2.8.0-h8edbb62_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-nitf-2.8.0-h9261fd9_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-pgpointcloud-2.8.0-hf47318e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-tiledb-2.8.0-hcc0b866_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-trajectory-2.8.0-h8a7a061_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.44-hc14010f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.4-hfb0b52a_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.27.5-h53f8970_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h2348fd5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha2cf0f4_17.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialindex-2.0.0-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hf7a34df_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hffd3212_11.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtasn1-4.19.0-h1a8c8d9_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.19.0-h026a170_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.6.0-h07db509_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-hfce79cd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.8.0-h1a8c8d9_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libvorbis-1.3.7-h9f76cd9_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-1.4.0-h54798ee_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.4.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.16-hf2054a2_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-ha661575_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxslt-1.1.39-h223e5b9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.10.1-ha0bc3c6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312h30cb90f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.3-hb52a8e5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312ha9ca408_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lxml-5.2.2-py312h0e5ab22_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312haed5471_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lxml-5.3.0-py312ha59c1f6_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312h11d1bbd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py312h1f38498_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py312h4479663_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py312ha0ccf2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py312h1f38498_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py312h9bd0bc6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/metis-5.1.0-h13dd4ca_1007.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/metis-5.1.0-h15f6cfe_1007.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.7-h27ee973_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mock-5.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.1-h41d338b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py312h157fec4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.1-hb693164_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpi-1.0-openmpi.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py312h6142ec9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.10.1-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.13.0-py312h0bf5046_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-common-8.3.0-hd1853d3_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-libs-8.3.0-hf036fc4_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-common-9.0.1-h0887d5e_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-libs-9.0.1-he9bc4e1_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-hb89a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hec02768_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nh3-0.2.18-py312h552d48e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hd88a8d4_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nh3-0.2.18-py312he431725_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nitro-2.7.dev8-h13dd4ca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nose2-0.9.2-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.35-hb7217d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.102-hc42bcbf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.36-h5833ebf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.106-h6f44f80_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py312h801f5e3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openmpi-5.0.5-h5750160_103.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.2-h4a9587e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/owslib-0.31.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/owslib-0.32.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py312h8ae5369_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandoc-3.1.11.1-hce30654_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py312hcd31e36_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandoc-3.2-hce30654_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pdal-2.7.2-h1ff0aea_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pep517-0.13.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pdal-2.8.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py312h39b1d8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py312haf37ca6_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.43.4-hebf3989_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.22.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.1.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.07.0-h9787579_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.08.0-h37b219d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.3-hdfa2ec6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.4.1-hfb94cee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py312h7e5086c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psycopg2-2.9.9-py312h84485f8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-h27ca646_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.4-h8a08265_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.5.0-h61a8e3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py312h0bf5046_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psycopg2-2.9.9-py312h0de0141_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py312ha814d7c_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py312h21f1c3e_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-15.0.2-py312h5d771bf_39_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py312h552d48e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py312h4cf456b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py312he431725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-10.3.1-py312hbb55c70_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-10.3.1-py312hbb55c70_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.9.0-py312h15038b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py312h64656f7_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-10.3.1-py312hd24fc31_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-10.3.1-py312hd24fc31_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py312hf9e36c7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py312h1ab748d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyqt-5.15.9-py312h550cae4_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyqt-stubs-5.15.6.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyqt5-sip-12.12.2-py312h9f69965_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyqtwebkit-5.15.9-py312h14105d7_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.4-h30c5eda_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-pdal-3.4.5-py312hf5f6721_12.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py312h02f2b3b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py312hfa13136_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hf8a1cbd_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qca-2.3.9-h6fd77b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qgis-3.38.0-py312haee25ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qgis-3.40.0-py312h3e019bb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/qgis-plugin-manager-1.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qjson-0.9.0-haa19703_1009.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qscintilla2-2.14.1-py312h14105d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qt-main-5.15.8-hcd44e0d_22.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qt-main-5.15.15-h7d33341_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qtkeychain-0.14.3-h4ff56cd_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qtwebkit-5.212-ha51050e_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/quarto-1.4.550-hce30654_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.7.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qtwebkit-5.212-he56935a_17.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/quarto-1.5.57-hce30654_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qwt-6.3.0-h4ff56cd_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.09.01-h4cba328_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-hcd0e937_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-42.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.19.0-py312h552d48e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.5.1-py312h3402d49_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.79.0-h4ff7c5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.79.0-hf6ec828_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py312h1b546db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py312h14ffa8f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.20.1-py312hcd83bfe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.7.2-py312h5d18b81_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.81.0-h4ff7c5d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.81.0-hf6ec828_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py312h387f99c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py312h20deb59_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py312hbab3d11_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py312h3a6007a_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sip-6.7.12-py312h650e478_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-hd02b534_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.13.0-h5fcca99_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.14.1-h6d8af72_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphobjinv-2.3.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.46.0-h5838104_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.47.0-hcd14bea_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/suitesparse-7.7.0-hf6fcff2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/suitesparse-7.8.3-hcefb574_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2021.12.0-h420ef59_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.0.0-h0cbf7ec_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-8.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.24.2-h577ba9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.25.0-h66ea1f1_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h024a12e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/twine-5.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240316-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20241003-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024a-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h389731b_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typst-0.11.0-ha5936a3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024b-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h6142ec9_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py312h0bf5046_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/watchdog-4.0.1-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.4.29-h668ec48_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/watchdog-6.0.0-py312hea69d52_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-hf393695_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-h92fc2f4_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hb547adb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.3-h27ca646_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hd74edd7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hcc0f68c_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h9f5b81c_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py312h721a963_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + - pypi: https://files.pythonhosted.org/packages/44/5b/fa477e4fd8e62c722febdc52462d7b037a77aa963c3e400a8e90e8f0d2c0/ptvsd-4.3.2-py2.py3-none-any.whl - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels win-64: + - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py312he70551f_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py312h4389bb4_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.22-hbd1ec33_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.0-hea5f451_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.23-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.4.2-ha301515_14.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.2-h0d3dc49_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.9-h5623c2f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.4-haec3ea0_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.6.0-hce3953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.16-hea5f451_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.27.2-h161bee7_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.329-haf7a04e_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.12.0-haf5610f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.8.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.11.0-h39eb5e7_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.6.0-h8578521_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.31-h459cf4e_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.4-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.31-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.19-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.0-h520d0cd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.10-h2b94654_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.20-he6ac336_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.7-h5d974fa_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.7.0-h6498dec_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.19-h0da4a7a_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.20-h0da4a7a_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.29.0-hb4a7b61_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.407-hdc23f3d_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.14.0-haf5610f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.10.0-hd6deed7_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.13.0-h3241184_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.8.0-hd6deed7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/beartype-0.18.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/beartype-0.19.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/blas-2.122-openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/blas-devel-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h53d5487_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/build-0.7.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.28.1-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.7.4-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h91e5215_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h32b962e_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ceres-solver-2.2.0-h0d88682_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py312he70551f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hc2ea260_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hae32d5d_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cmarkgfm-0.8.0-py312he70551f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py312h0d7def4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py312hd5eb7cc_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py312h31fea79_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.7-py312hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py312he70551f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/dart-sass-1.58.3-h57928b3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py312h275cf98_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py312h275cf98_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/deno-1.37.2-hc8b987e_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/deno-1.41.0-h1f5608b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/deno-dom-0.1.35-h8b8d39b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.0-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/draco-1.5.7-h181d51b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/eigen-3.4.0-h91493d7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/esbuild-0.19.2-h57928b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/esbuild-0.24.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/exiv2-0.28.3-h224700a_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/expat-2.6.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-11.0.2-h7f575de_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.14.2-hbde0cde_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py312h31fea79_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-h8276f4a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py312h7090a6d_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.12.2-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-hd7df778_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gflags-2.2.2-ha925a31_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/gh-2.52.0-h36e2d1d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.80.3-h4394cf3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.2-py312h16ac12d_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.0-h5a68840_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-h496ac4d_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/gflags-2.2.2-he0c23c2_1005.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/gh-2.60.1-h36e2d1d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/glib-2.82.2-h7025463_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.82.2-h4394cf3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/glog-0.7.1-h3ff59bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-0.47.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.13-h63175ca_1003.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-1.5.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/gsl-2.7-hdfb1a43_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.5-hb0a98b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.5-h5006eae_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.7-hb0a98b8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.7-h5006eae_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-9.0.0-h2bedf89_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.3-nompi_h2b43c12_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httplib2-0.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.0-h57928b3_979.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh4bbf305_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda @@ -2806,304 +2124,332 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.25-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/juliaup-1.14.9-ha073cba_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.23.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/juliaup-1.17.10-ha073cba_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.2.1-pyh7428d3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/khronos-opencl-icd-loader-2023.04.17-h64bf75a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py312h0d7def4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/khronos-opencl-icd-loader-2024.05.08-hc70643c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py312hd5eb7cc_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/laz-perf-3.4.0-h91493d7_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240116.2-cxx17_h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240722.0-cxx17_he0c23c2_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libarchive-3.7.4-haf234dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h6c1a0db_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-h1f0e801_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.85.0-h57928b3_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-18.1.8-default_ha5278ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h80430d3_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-hac47afa_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-hac47afa_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-ha9530af_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-19.1.3-default_ha5278ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcrc32c-1.1.2-h0e60522_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.8.0-hd5e4a3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.20-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.22-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-h3671451_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libflang-5.0.0-h6538335_20180525.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.1-h26bd040_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-arrow-parquet-3.9.1-h8fc8dec_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.26.0-h5e7cea3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.26.0-he5eb982_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.62.2-h5273850_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.0-default_h8125262_1000.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libflang-19.1.3-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.2-h57928b3_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-arrow-parquet-3.9.3-h9d7c9d0_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.9.2-h042995d_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-fits-3.9.2-h0a0b71e_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-grib-3.9.2-hd2a089b_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf4-3.9.2-h430f241_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf5-3.9.2-had131a1_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-jp2openjpeg-3.9.2-hed4c6cb_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-kea-3.9.2-h95b1a77_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-netcdf-3.9.2-h55e78d3_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-pdf-3.9.2-ha1c78db_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-pg-3.9.2-ha693a0f_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-postgisraster-3.9.2-ha693a0f_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-tiledb-3.9.2-hefbb53f_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-xls-3.9.2-hd0e23a6_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.30.0-ha00044d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.30.0-he5eb982_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.65.5-ha20e22e_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-haf3e7a6_1018.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapacke-3.9.0-22_win64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h538826c_1021.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-25_win64_mkl.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h92078aa_114.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libopenblas-0.3.27-pthreads_hc140b1d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h178134c_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.43-h19919ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpq-16.3-hab9416b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-4.25.3-h503648d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2023.09.01-hf8d8778_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-h6c42fcb_16.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h59f2d37_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-2.8.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-arrow-2.8.0-hc365f4b_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-core-2.8.0-hd2cc1dd_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-draco-2.8.0-he0c23c2_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-e57-2.8.0-hfb18a77_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-hdf-2.8.0-h6c43f9b_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-icebridge-2.8.0-h6c43f9b_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-nitf-2.8.0-hf85b8ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-pgpointcloud-2.8.0-h2951f3b_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-tiledb-2.8.0-h61a99be_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpdal-trajectory-2.8.0-h8b0cdd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.44-h3ca93ac_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpq-16.4-hab9416b_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-5.27.5-hcaed137_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2024.07.02-h4eb7d71_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-hd4c2148_17.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialindex-2.0.0-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-hcb35769_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-h939089a_11.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.19.0-ha2b3283_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-hddb2be6_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.21.0-hbe90ef8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-hfc51747_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.8.0-h82a8f57_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h0e60522_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-1.4.0-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.4.0-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.16-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h283a6d9_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.39-h3df6e99_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.10.1-h1d365fa_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/lxml-5.2.2-py312h56c7e3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h594ca44_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lxml-5.3.0-py312h53bce91_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h0608a1d_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hcfcfb64_1001.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py312h2e8e312_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py312hfee7060_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py312h31fea79_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py312h90004f6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/minizip-4.0.6-hb638d1e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.0-h66d3029_662.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_14.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mock-5.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py312hd5eb7cc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py312hd5eb7cc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.10.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.13.0-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/nh3-0.2.18-py312h68c23d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nh3-0.2.18-py312h68c23d6_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/nitro-2.7.dev8-h1537add_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nose2-0.9.2-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py312hcccf92d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openblas-0.3.27-pthreads_h3721920_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py312h49bc9c5_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openmp-5.0.0-vc14_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.2-h1c5a4bf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/owslib-0.31.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/owslib-0.32.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py312h72972c8_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pandoc-3.1.11.1-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py312h72972c8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandoc-3.2-h57928b3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pdal-2.7.2-ha1f2149_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pep517-0.13.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pdal-2.8.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py312h381445a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py312ha41cd45_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.43.4-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.22.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.1.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/poppler-24.07.0-h686f694_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/poppler-24.08.0-h9415970_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.3-h7f155c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.4.1-hd9569ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py312h4389bb4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psycopg2-2.9.9-py312hf50bb3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h3529c54_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.4-hd835ec0_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.5.0-hd9569ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psycopg2-2.9.9-py312h44033e7_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h6a9c419_6_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py312h2615798_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py312h2615798_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py312hd215820_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py312h6f27134_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py312h8705084_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py312ha24589b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py312he09f080_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyqt-stubs-5.15.6.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py312h53d5487_5.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyqtwebkit-5.15.9-py312hca0710b_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py312h2ee7485_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.4-h889d299_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-pdal-3.4.5-py312h4a804a2_12.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py312h53d5487_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.2-py312h2e8e312_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.13-py312h53d5487_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py312he70551f_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py312hd7027bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py312h275cf98_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.14-py312h275cf98_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py312hd7027bb_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/qca-2.3.9-hcfd1de8_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qgis-3.38.0-py312hf3a2cf0_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qgis-3.40.0-py312h02b007f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/qgis-plugin-manager-1.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda - conda: https://conda.anaconda.org/conda-forge/win-64/qjson-0.9.0-h04a78d6_1009.conda - conda: https://conda.anaconda.org/conda-forge/win-64/qscintilla2-2.14.1-py312hca0710b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h06adc49_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.15-h264fbc2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.8.0-hfb098fa_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/qtkeychain-0.14.3-hf9d22a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qtwebkit-5.212-h4d8ddc9_16.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/quarto-1.4.550-h57928b3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.7.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qtwebkit-5.212-hbc9c816_17.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/quarto-1.5.57-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.8.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/qwt-6.3.0-h9417a65_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2023.09.01-hd3b24a8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-42.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rcedit-1.1.1-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2024.07.02-hd3b24a8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.19.0-py312h2615798_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.5.1-py312h7a6832a_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/rust-1.79.0-hf8d6059_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.79.0-h17fc481_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py312h816cc57_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py312h1f4e10d_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.20.1-py312h2615798_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.7.2-py312h4e4d446_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rust-1.81.0-hf8d6059_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.81.0-h17fc481_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py312h816cc57_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py312h337df96_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh5737063_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py312h3a88d77_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py312h0c580ee_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py312h53d5487_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.1-h23299a8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.13.0-h64d2f7d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.14.1-h9f2357e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphobjinv-2.3.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.12.0-hc790b64_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.7.0-h91493d7_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-8.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh5737063_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.24.2-h2a0bfd3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.25.0-h2e08f1e_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/twine-5.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240316-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20241003-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312h0d7def4_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/typst-0.11.0-h975169c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312hd5eb7cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/uriparser-0.9.8-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_20.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/watchdog-4.0.1-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/uv-0.4.29-ha08ef0e_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/watchdog-6.0.0-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/winpty-0.4.3-4.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-he0c23c2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-h0e40799_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-he1f189c_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-ha9f60a1_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py312h7606c53_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + - pypi: https://files.pythonhosted.org/packages/44/5b/fa477e4fd8e62c722febdc52462d7b037a77aa963c3e400a8e90e8f0d2c0/ptvsd-4.3.2-py2.py3-none-any.whl - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels @@ -3118,1224 +2464,892 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py310ha75aee5_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.22-heee8711_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.0-h816f305_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.23-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.4.2-hb72ac1a_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.2-had8cc17_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.9-h37d6bf3_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.4-hb0abfc5_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.6.0-h1f67ec3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.16-he027950_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.27.2-heffe44f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.329-habc23cd_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.12.0-h830ed8b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.8.0-hdb0d106_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.11.0-ha67cba7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.6.0-he3f277c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.10.0-h29b5301_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py310hff52083_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.31-hcdce11a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.4-hd3f4568_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.31-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.19-hf20e7d7_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h72d8268_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.10-h6bb76cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.20-h389d861_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.7-had056f2_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.0-hc85afc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.19-hf20e7d7_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.20-hf20e7d7_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.0-h07ed512_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.407-h9c41b47_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.14.0-h5cfcd09_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.10.0-h113e628_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.13.0-h3cf044e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.8.0-h736e048_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.12.0-ha633028_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py310hff52083_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-hf8ad068_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py310h261611a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hf71b8c6_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py310h8deb56e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py310hf462985_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py310hd41b1e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py310hc51659f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py310h3788b33_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py310h89163eb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py310h2372a71_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.27-h54b06d7_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py310ha75aee5_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py310h76e45a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py310hf71b8c6_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py310h5b4e0ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py310h89163eb_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h743c826_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py310hb8ea937_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-hf7fa9e8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.0-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-h77b800c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.3-h73ef956_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.5-hbaaba92_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.5-haf2f30d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.5.0-hfac3d4d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh3099207_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.17-h7ab15ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py310hff52083_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hee9dde6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.18-h6688a6e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py310hd41b1e2_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py310h3788b33_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_h5888daf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-16.1.0-h56e7afd_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-16.1.0-hc9a23c6_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.85.0-ha770c72_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h6ae225f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-18.0.0-ha5db6c2_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-18.0.0-h5888daf_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-18.0.0-h5888daf_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-18.0.0-he882d9a_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.3-default_hb5137d0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-19.1.3-default_h9c6a7e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.22-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.123-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.1-ha654e03_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.26.0-h26d7fe4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.26.0-ha262f82_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.50-h4f305b6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.9.3-hd5b9bfb_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.30.0-h438788a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.30.0-h0121fbd_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.65.5-hf5c653b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h01aab08_1018.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-hf539b9f_1021.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-25_linux64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-hc9dba70_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.3-ha7bfdaf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h2564987_115.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.5-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-16.1.0-h9e5060d_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.3-ha72fbe1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-hc670b87_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h15fa968_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libntlm-1.4-h7f98852_1002.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-18.0.0-h6bd9018_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.44-hadc24fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-17.0-h04577a9_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.27.5-h5b01275_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h97f6797_17.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h1b4f908_11.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.19.0-hb90f79a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-he137b08_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py310h4c7c693_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.39-h76b75d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py310h1a6248f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py310h350c4a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py310hb259640_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py310h2372a71_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py310hff52083_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py310hef631a5_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py310h89163eb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py310hff52083_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py310h68603db_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.7-h401b404_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.6-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py310h25c7140_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py310h3788b33_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-9.0.1-h266115a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-9.0.1-he0572af_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py310hf3005e6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nss-3.102-h593d115_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.2-nompi_py310h5146f0f_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py310h5dc88bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py310h515e003_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py310hd6e36ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.8-hedd0468_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.2-h690cf93_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py310hf9f9076_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py310h5eaa309_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py310hebfe307_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py310hfeaa1f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.07.0-hb0d391f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.3-h8e811e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.4.1-hb784bbd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py310hc51659f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.5.0-h12925eb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py310ha75aee5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py310hb7f781d_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py310h46b3431_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-18.0.0-py310hb7f781d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-18.0.0-py310hac404ae_0_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py310h42e942d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py310hb390ff4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py310h505e2c1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py310h3d73142_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py310hf666db6_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py310h04931ad_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py310hc6cd4ac_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py310h63d473e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py310h2e9f774_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.8.0.2-py310hfd10a26_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.14-hd12c33a_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.15-h4a871b0_2_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-5_cp310.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py310h6883aea_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-ha2b5568_22.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py310ha75aee5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py310h71f11fc_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.8.0-h6e8976b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h77b4e00_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.17-he19d79f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py310h146d792_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py310h93e2701_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py310h019a838_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py310hc6cd4ac_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.5-h3931f03_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py310h27f47ee_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py310hfcf56fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py310had3dfd6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-ha2e4443_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.13.0-hd2e6256_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.47.0-h9eae976_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.24.2-h9260d03_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py310hc51659f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py310ha75aee5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024a-h3f72095_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py310h2372a71_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py310ha75aee5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.23.1-h3e06ad9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py310h2372a71_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py310ha75aee5_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-hac6953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-h988505b_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.43-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-he73a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.10-h4f16b4b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcomposite-0.4.6-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcursor-1.2.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.4-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.5-hb9d3cd8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h75354e8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py310hab88d88_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py310ha39cb0e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels - osx-64: + osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py310h493c2e1_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.7.22-he52cbe7_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.7.0-hd73d8db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.9.23-hfdf4475_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.2.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.4.2-ha5205da_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.8.2-hf609411_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.14.9-h9f49e27_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.10.4-hcc4e2a5_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.6.0-h8fdb93b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.1.16-hd73d8db_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.1.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.27.2-h7746516_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.329-hce9e41e_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-core-cpp-1.12.0-hf8dbe3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.8.0-h906f3f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.11.0-h5f32033_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.6.0-h0dc8e96_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.10.0-hc1cec4e_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py310h2ec42d9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.31-hee1f4ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.4-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.31-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.19-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h33c80d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.10-h4a91a90_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.20-h5fdde16_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.7-hd821a15_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.0-hc6bcb7c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.19-hfd083d3_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.20-hfd083d3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.0-h45f4ed5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.407-h0a0d3c4_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.14.0-hd50102c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.10.0-hc602bab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.13.0-h7585a09_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.8.0-h9ca1f76_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.12.0-hcdd55da_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py310hbe9552e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py310h9e9d8ca_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.28.1-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.7.4-h8857fd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.0-h9f650ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py310hdca579f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cfitsio-4.4.1-ha105788_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py310hde789be_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py310hb4ad77e_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py310h497396d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py310hae04be4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py310hb3b189b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py310h936d840_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py310h6000651_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py310h5799be4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py310hb372a2b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py310he0a0c5d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py310h493c2e1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py310hb4ad77e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/expat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.14.2-h5bb23bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py310h936d840_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3ec172f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py310h0a4269c_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.12.2-hf036a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geotiff-1.7.3-h4bbec01_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.2.2-hb1e8313_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py310h5799be4_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-hfbad9fb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.13.0-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h82bf549_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.3-nompi_h687a608_105.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.4-nompi_h99fbd1e_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/json-c-0.17-h8e11ae5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py310h2ec42d9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kealib-1.5.3-hb2b617a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py310h88cfcbd_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.16-ha2f27b4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20240116.2-cxx17_hc1bcbd7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-16.1.0-h067ad5e_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-16.1.0-h85bc590_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.85.0-h694c41f_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.8.0-hf9fcc65_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-17.0.6-heb59cac_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.20-h49d49c5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-ha90c15b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgdal-3.9.1-h52f6243_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.80.3-h736d271_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.26.0-h721cda5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.26.0-h9e84e37_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.62.2-h384b2fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-hab3ca0e_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm14-14.0.6-hc8e404f_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.2-nompi_h7334405_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.27-openmp_h8869122_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-16.1.0-h904a336_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.43-h92b6c6a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-16.3-h4501773_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-4.25.3-h4e4d658_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2023.09.01-h81f5012_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-he2ba7a0_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.18-hbcb3906_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-hdc25a2c_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.19.0-h064b379_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.6.0-h129831d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.8.0-hb7f2c08_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.4.0-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.16-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-h3e169fe_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.10.1-hc158999_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py310h515a046_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py310hf99a7a4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py310hb372a2b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py310h2ec42d9_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py310h7ea1ff3_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.7-h62b0c8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py310h5334dd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h5846eda_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py310ha109cee_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nspr-4.35-hea0b92c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nss-3.102-he7eb89d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py310h89a1501_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py310he367959_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py310hbf2a7f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py310h2fdc51f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.43.4-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/poppler-24.07.0-h744cbf2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/postgresql-16.3-h1d90168_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.4.1-hf92c781_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py310h936d840_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-hc929b4f_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py310h58fd45c_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py310h0aab069_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py310h12a1ced_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py310hc4416aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py310hba78213_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.14-h00d2728_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.10-4_cp310.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py310h6729b98_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py310he0bbd50_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2023.09.01-hb168e87_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py310h9d65eca_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py310h35d8cac_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py310hced8f6d_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.1-he1e6707_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/spdlog-1.13.0-h1a4aec9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.46.0-h28673e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tiledb-2.24.2-h493d6f2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py310h936d840_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tzcode-2024a-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-15.1.0-py310h6729b98_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py310hb372a2b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.2.5-hbbe9ea5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.11-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-hde137ed_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py310h0e17136_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda - - pypi: python/ribasim - - pypi: python/ribasim_api - - pypi: python/ribasim_testmodels - osx-arm64: - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.22-haa5a189_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.0-h94d0942_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.23-h99b78c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.4.2-he43e89f_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.2-h638bd1a_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.9-hf0e3e08_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.4-h80c1ce3_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.6.0-h11f64d3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.16-h94d0942_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.27.2-hd9c8ee4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.329-haf867cf_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.12.0-hd01fc5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.8.0-h0a11218_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.11.0-h77cc766_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.6.0-h7024f69_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.10.0-h64d02d0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py310hbe9552e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py310h1253130_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.7.4-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hc6c324b_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py310hdcd7c05_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-h793ed5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py310hb3e58dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py310h21239e6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py310ha6dd24b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py310hd125d64_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py310hcf9f62a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.6.2-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.14.2-h82840c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py310ha6dd24b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-hfbad9fb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py310hf655ea3_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.12.2-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h7e5fb84_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hc88da5d_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.3-nompi_hec07895_105.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.17-h40ed0f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py310hbe9552e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h848a2d4_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py310h38f39d4_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.18-he4178ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py310h7306fd8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240116.2-cxx17_hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_hf9b8971_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.3-hebf3989_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-16.1.0-h71e69af_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-16.1.0-hc68f6b8_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.85.0-hce30654_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-22_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-18.0.0-h6fea68a_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-18.0.0-h286801f_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-18.0.0-h286801f_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-18.0.0-hdcc9e87_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-25_osxarm64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.8.0-h7b6f9a7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-17.0.6-h0812c0d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.20-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.22-hd74edd7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.1-h750986c_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.9.3-hb8ac103_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.26.0-hfe08963_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.26.0-h1466eeb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.62.2-h9c18a4f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.30.0-h2e6cea1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.30.0-h90fd6fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.65.5-h3d9cf25_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8fbad5d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-h1eb4d9f_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-22_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-he250239_1021.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-25_osxarm64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-16.1.0-hcf52c46_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.43-h091b4b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.3-h7afe498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-4.25.3-hbfab5d5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.09.01-h7b2c953_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-h31fb324_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.18-h27ca646_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hf7a34df_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_h853a48d_115.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_h517c56d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-18.0.0-hda0ea68_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.44-hc14010f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.27.5-h53f8970_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h2348fd5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha2cf0f4_17.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hffd3212_11.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.19.0-h026a170_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.6.0-h07db509_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-hfce79cd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.8.0-h1a8c8d9_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.4.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.16-hf2054a2_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-ha661575_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.10.1-ha0bc3c6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py310h6077e7d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.3-hb52a8e5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py310h9fcfb1b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py310haecba8d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py310hc798581_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py310hd125d64_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py310hb6292c7_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py310hedb7998_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py310h5799be4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py310hb6292c7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py310h2a20ac7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.7-h27ee973_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py310he1a186f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py310h7306fd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-hb89a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py310hae0c4a6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.35-hb7217d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.102-hc42bcbf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.2-nompi_py310haf4bbc2_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py310h0628f0e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py310h52bbd9b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py310hcaf17df_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.2-h4a9587e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py310h2216879_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py310hfd37619_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py310h01af8b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.43.4-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py310h530beaf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.07.0-h9787579_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.3-hdfa2ec6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.4.1-hfb94cee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py310ha6dd24b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-h27ca646_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.5.0-h61a8e3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py310hf9df320_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py310h24597f5_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py310h2e300fa_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-18.0.0-py310h24597f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-18.0.0-py310hc17921c_0_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py310h947b723_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py310h76eb7d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py310h7a930dc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.9.0-py310h2d86289_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py310h39d21c2_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py310he5b2d59_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py310h861c57f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.14-h2469fbe_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.15-hdce6c4c_2_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.10-4_cp310.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.10-5_cp310.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py310h2aa6e3c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py310h16e08c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.09.01-h4cba328_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py310h493c2e1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py310h82ef58e_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-hcd0e937_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py310h64e73be_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py310h7057308_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py310h30dc213_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py310h0b94ddc_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py310hc05a576_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py310h6b3522b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-hd02b534_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.13.0-h5fcca99_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.46.0-h5838104_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.47.0-hcd14bea_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.24.2-h577ba9b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py310ha6dd24b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py310h493c2e1_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024a-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py310h2aa6e3c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py310hf9df320_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py310hd125d64_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-hf393695_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py310h493c2e1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-h92fc2f4_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hb547adb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.3-h27ca646_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hd74edd7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hcc0f68c_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h9f5b81c_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py310hd9c37c8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py310h2665a74_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels win-64: + - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py310ha8f682b_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.22-hbd1ec33_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.0-hea5f451_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.23-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.4.2-ha301515_14.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.2-h0d3dc49_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.9-h5623c2f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.4-haec3ea0_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.6.0-hce3953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.16-hea5f451_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.27.2-h161bee7_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.329-haf7a04e_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.12.0-haf5610f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.8.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.11.0-h39eb5e7_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.6.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py310h5588dad_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.31-h459cf4e_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.4-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.31-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.19-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.0-h520d0cd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.10-h2b94654_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.20-he6ac336_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.7-h5d974fa_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.7.0-h6498dec_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.19-h0da4a7a_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.20-h0da4a7a_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.29.0-hb4a7b61_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.407-hdc23f3d_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py310h5588dad_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py310h00ffb61_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.28.1-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.7.4-h56e8100_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h91e5215_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py310h8d17308_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hc2ea260_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py310hb0944cc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py310h9e98ed7_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h32b962e_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py310ha8f682b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py310hb0944cc_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py310h232114e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py310ha8f682b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py310hc19bc0b_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py310h38315fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.10.15-py310hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py310h8d17308_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py310h9e98ed7_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py310ha8f682b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py310h9e98ed7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.0-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/expat-2.6.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.14.2-hbde0cde_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py310ha8f682b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py310h38315fa_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-h8276f4a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py310hb8df06e_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.12.2-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-hd7df778_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.80.3-h4394cf3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.5-hb0a98b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.5-h5006eae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.0-h5a68840_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-h496ac4d_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.13-h63175ca_1003.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-9.0.0-h2bedf89_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.3-nompi_h2b43c12_105.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.0-h57928b3_979.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh4bbf305_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py310h5588dad_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py310h232114e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py310hc19bc0b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240116.2-cxx17_h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240722.0-cxx17_he0c23c2_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libarchive-3.7.4-haf234dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h6c1a0db_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-h1f0e801_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.85.0-h57928b3_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-18.1.8-default_ha5278ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-18.0.0-h80430d3_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-18.0.0-hac47afa_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-18.0.0-hac47afa_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-18.0.0-ha9530af_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-19.1.3-default_ha5278ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcrc32c-1.1.2-h0e60522_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.8.0-hd5e4a3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.20-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.22-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-h3671451_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.1-h26bd040_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.26.0-h5e7cea3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.26.0-he5eb982_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.62.2-h5273850_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.0-default_h8125262_1000.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.9.3-h042995d_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.30.0-ha00044d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.30.0-he5eb982_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.65.5-ha20e22e_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-haf3e7a6_1018.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h92078aa_114.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h178134c_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.43-h19919ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpq-16.3-hab9416b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-4.25.3-h503648d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2023.09.01-hf8d8778_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-h6c42fcb_16.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-hcb35769_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h538826c_1021.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_he239ae6_115.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-18.0.0-h59f2d37_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.44-h3ca93ac_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-5.27.5-hcaed137_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2024.07.02-h4eb7d71_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-hd4c2148_17.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-h939089a_11.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.19.0-ha2b3283_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-hddb2be6_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.21.0-hbe90ef8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-hfc51747_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.8.0-h82a8f57_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h0e60522_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.4.0-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.16-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h283a6d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.10.1-h1d365fa_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py310h0288bfe_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.39-h3df6e99_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py310h0288bfe_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py310hbbb2075_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py310h7fbadaa_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hcfcfb64_1001.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py310h8d17308_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py310h5588dad_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py310hadb10a8_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py310h38315fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py310h5588dad_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py310h37e0a56_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/minizip-4.0.6-hb638d1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.1.0-h66d3029_692.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py310hc19bc0b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_14.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py310hc19bc0b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py310h0a2a089_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.2-nompi_py310h39c5739_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py310h7793332_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py310h1ec8c79_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py310h1ec8c79_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.2-h1c5a4bf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py310hb4db72f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py310hb4db72f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py310h3e38d90_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py310h4dc435f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.43.4-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/poppler-24.07.0-h686f694_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.3-h7f155c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.4.1-hd9569ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py310ha8f682b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py310h05ea346_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py310h649278f_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.5.0-hd9569ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py310ha8f682b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-18.0.0-py310h05ea346_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-18.0.0-py310h399dd74_0_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py310hc226416_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py310ha8f682b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py310hc226416_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py310h98d268c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py310h67d88da_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py310h1fd54f2_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py310h00ffb61_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py310h4eba6db_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py310h19d4cff_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py310h60c6385_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.10.14-h4de0772_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.10.15-hfaddaf0_2_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-4_cp310.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-5_cp310.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py310h00ffb61_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py310h8d17308_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py310h656833d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h06adc49_22.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2023.09.01-hd3b24a8_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py310h9e98ed7_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py310ha8f682b_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py310h656833d_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.8.0-hfb098fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rcedit-1.1.1-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2024.07.02-hd3b24a8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py310hf2a6c47_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py310h46043a1_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py310ha804f92_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py310h00ffb61_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py310hf2a6c47_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py310hbd0dde3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py310hde62f2e_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.1-h23299a8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.13.0-h64d2f7d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.12.0-hc790b64_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.7.0-h91493d7_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.24.2-h2a0bfd3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py310ha8f682b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py310ha8f682b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py310h8d17308_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py310ha8f682b_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/uriparser-0.9.8-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py310h8d17308_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py310ha8f682b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-he0c23c2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-h0e40799_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-he1f189c_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-ha9f60a1_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py310he5e10e1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py310he5e10e1_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda - pypi: python/ribasim - pypi: python/ribasim_api @@ -4351,1220 +3365,892 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py311h9ecbd09_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.22-heee8711_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.0-h816f305_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.23-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.4.2-hb72ac1a_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.2-had8cc17_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.9-h37d6bf3_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.4-hb0abfc5_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.6.0-h1f67ec3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.16-he027950_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.27.2-heffe44f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.329-habc23cd_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.12.0-h830ed8b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.8.0-hdb0d106_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.11.0-ha67cba7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.6.0-he3f277c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.10.0-h29b5301_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py311h38be061_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.31-hcdce11a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.4-hd3f4568_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.31-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.19-hf20e7d7_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h72d8268_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.10-h6bb76cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.20-h389d861_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.7-had056f2_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.0-hc85afc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.19-hf20e7d7_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.20-hf20e7d7_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.0-h07ed512_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.407-h9c41b47_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.14.0-h5cfcd09_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.10.0-h113e628_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.13.0-h3cf044e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.8.0-h736e048_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.12.0-ha633028_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py311h38be061_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hb755f60_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py311hb3a22ac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-hf8ad068_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py311h18e1886_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py311h9f3472d_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py311h9547e67_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py311h331c9d8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py311hd18a35c_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py311h2dc5d0c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py311h459d7ec_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.27-h54b06d7_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py311h9ecbd09_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py311h4332511_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py311hfdbb021_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py311h61187de_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py311h2dc5d0c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h743c826_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py311hf92cf48_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-hf7fa9e8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.0-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-h77b800c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.3-h73ef956_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.5-hbaaba92_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.5-haf2f30d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.5.0-hfac3d4d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh3099207_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.17-h7ab15ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py311h38be061_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hee9dde6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.18-h6688a6e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py311h9547e67_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py311hd18a35c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_h5888daf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-16.1.0-h56e7afd_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-16.1.0-hc9a23c6_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.85.0-ha770c72_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h6ae225f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-18.0.0-ha5db6c2_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-18.0.0-h5888daf_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-18.0.0-h5888daf_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-18.0.0-he882d9a_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.3-default_hb5137d0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-19.1.3-default_h9c6a7e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.22-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.123-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.1-ha654e03_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.26.0-h26d7fe4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.26.0-ha262f82_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.50-h4f305b6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.9.3-hd5b9bfb_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.30.0-h438788a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.30.0-h0121fbd_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.65.5-hf5c653b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h01aab08_1018.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-hf539b9f_1021.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-25_linux64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-hc9dba70_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.3-ha7bfdaf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h2564987_115.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.5-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-16.1.0-h9e5060d_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.3-ha72fbe1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-hc670b87_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h15fa968_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libntlm-1.4-h7f98852_1002.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-18.0.0-h6bd9018_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.44-hadc24fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-17.0-h04577a9_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.27.5-h5b01275_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h97f6797_17.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h1b4f908_11.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.19.0-hb90f79a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-he137b08_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py311hbde99c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.39-h76b75d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py311h9c9ff8c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py311h38e4bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py311h2cbdf9a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py311h459d7ec_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py311h38be061_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py311ha4ca890_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py311h2dc5d0c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py311h38be061_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py311h2b939e6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.7-h401b404_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.6-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py311h52f7536_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py311hd18a35c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-9.0.1-h266115a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-9.0.1-he0572af_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py311h25b3b55_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nss-3.102-h593d115_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.2-nompi_py311h7c29e4f_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py311h4bc866e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py311h1461c94_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py311h71ddf71_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.8-hedd0468_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.2-h690cf93_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py311h14de704_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py311h7db5c69_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py311h82a398c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py311h49e9ac3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.07.0-hb0d391f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.3-h8e811e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.4.1-hb784bbd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py311h331c9d8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.5.0-h12925eb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py311h9ecbd09_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py311hbd00459_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py311h8c3dac4_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-18.0.0-py311hbd00459_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-18.0.0-py311h4854187_0_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py311hb3a8bbb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py311h35130b2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py311h9e33e62_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py311hfc743a8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py311hc21b84f_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py311hf0fb5b6_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py311hb755f60_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py311h5fbebbf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py311h0f98d5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.8.0.2-py311h9053184_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.9-hb806964_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.10-hc5c86c4_3_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-5_cp311.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py311h459d7ec_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py311h08a0b41_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-ha2b5568_22.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py311h7deb3e3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.8.0-h6e8976b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h77b4e00_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.17-he19d79f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py311hd632256_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py311h517d4fd_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py311h5925939_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py311hb755f60_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.5-h3931f03_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py311h57cc02b_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py311he9a78e4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py311h2fdb869_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-ha2e4443_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.13.0-hd2e6256_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.47.0-h9eae976_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.24.2-h9260d03_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py311h331c9d8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py311h9ecbd09_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024a-h3f72095_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py311h9ecbd09_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.23.1-h3e06ad9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py311h459d7ec_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py311h9ecbd09_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-hac6953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-h988505b_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.43-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-he73a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.10-h4f16b4b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcomposite-0.4.6-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcursor-1.2.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.4-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.5-hb9d3cd8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h75354e8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py311hb6f056b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py311hbc35293_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels - osx-64: - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.7.22-he52cbe7_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.7.0-hd73d8db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.9.23-hfdf4475_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.2.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.4.2-ha5205da_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.8.2-hf609411_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.14.9-h9f49e27_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.10.4-hcc4e2a5_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.6.0-h8fdb93b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.1.16-hd73d8db_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.1.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.27.2-h7746516_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.329-hce9e41e_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-core-cpp-1.12.0-hf8dbe3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.8.0-h906f3f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.11.0-h5f32033_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.6.0-h0dc8e96_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.10.0-hc1cec4e_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py311h6eed73b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py311hdf8f085_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.28.1-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.7.4-h8857fd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.0-h9f650ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py311hc0b63fd_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cfitsio-4.4.1-ha105788_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py311hce3442d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py311h1d816ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py311h72ae277_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py311he705e18_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py311hbafa61a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/expat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.14.2-h5bb23bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py311h72ae277_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3ec172f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py311h055bc3f_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.12.2-hf036a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geotiff-1.7.3-h4bbec01_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.2.2-hb1e8313_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.3-nompi_h687a608_105.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/json-c-0.17-h8e11ae5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py311h6eed73b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kealib-1.5.3-hb2b617a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py311h5fe6e05_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.16-ha2f27b4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20240116.2-cxx17_hc1bcbd7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-16.1.0-h067ad5e_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-16.1.0-h85bc590_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.85.0-h694c41f_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.8.0-hf9fcc65_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-17.0.6-heb59cac_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.20-h49d49c5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-ha90c15b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgdal-3.9.1-h52f6243_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.80.3-h736d271_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.26.0-h721cda5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.26.0-h9e84e37_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.62.2-h384b2fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-hab3ca0e_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm14-14.0.6-hc8e404f_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.2-nompi_h7334405_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.27-openmp_h8869122_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-16.1.0-h904a336_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.43-h92b6c6a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-16.3-h4501773_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-4.25.3-h4e4d658_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2023.09.01-h81f5012_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-he2ba7a0_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.18-hbcb3906_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-hdc25a2c_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.19.0-h064b379_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.6.0-h129831d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.8.0-hb7f2c08_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.4.0-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.16-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-h3e169fe_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.10.1-hc158999_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py311h6cc91e7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py311hdfabcfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py311he705e18_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py311h6eed73b_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py311hff79762_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.7-h62b0c8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py311h46c8309_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h5846eda_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py311ha7361b2_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nspr-4.35-hea0b92c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nss-3.102-he7eb89d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py311h0e5bd6a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py311hc11d9cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py311hfdcbad3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py311h2755ac0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.43.4-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/poppler-24.07.0-h744cbf2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/postgresql-16.3-h1d90168_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.4.1-hf92c781_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py311h72ae277_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-hc929b4f_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py311he764780_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py311h4d2d057_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py311h295b1db_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py311h4afbaa0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py311hc55c11a_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.9-h657bba9_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-4_cp311.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py311h2725bcf_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py311h89e2aaa_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2023.09.01-hb168e87_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py311h3c3ac6d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py311h40a1ab3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py311h85698fe_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.1-he1e6707_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/spdlog-1.13.0-h1a4aec9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.46.0-h28673e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tiledb-2.24.2-h493d6f2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py311h72ae277_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tzcode-2024a-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py311he705e18_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.2.5-hbbe9ea5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.11-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-hde137ed_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py311h51fa951_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda - - pypi: python/ribasim - - pypi: python/ribasim_api - - pypi: python/ribasim_testmodels osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py311h460d6c5_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.22-haa5a189_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.0-h94d0942_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.23-h99b78c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.4.2-he43e89f_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.2-h638bd1a_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.9-hf0e3e08_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.4-h80c1ce3_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.6.0-h11f64d3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.16-h94d0942_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.27.2-hd9c8ee4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.329-haf867cf_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.12.0-hd01fc5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.8.0-h0a11218_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.11.0-h77cc766_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.6.0-h7024f69_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.10.0-h64d02d0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py311h267d04e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.31-hee1f4ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.4-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.31-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.19-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h33c80d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.10-h4a91a90_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.20-h5fdde16_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.7-hd821a15_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.0-hc6bcb7c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.19-hfd083d3_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.20-hfd083d3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.0-h45f4ed5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.407-h0a0d3c4_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.14.0-hd50102c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.10.0-hc602bab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.13.0-h7585a09_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.8.0-h9ca1f76_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.12.0-hcdd55da_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py311h267d04e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py311ha891d26_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.7.4-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hc6c324b_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py311h4a08483_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-h793ed5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py311h5d790af_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py311h0f07fe1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py311hcc98501_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py311hd3f4193_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py311h25f83ee_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py311h56c23cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py311h05b510d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py311hb9542d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py311h460d6c5_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py311h3f08180_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.6.2-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.14.2-h82840c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py311hd3f4193_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py311h56c23cb_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-hfbad9fb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py311h1c6d2b9_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.12.2-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h7e5fb84_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hc88da5d_1004.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.13.0-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h82bf549_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.3-nompi_hec07895_105.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.4-nompi_h99fbd1e_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.17-h40ed0f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py311h267d04e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h848a2d4_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py311he4fd1f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.18-he4178ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py311h2c37856_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240116.2-cxx17_hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_hf9b8971_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.3-hebf3989_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-16.1.0-h71e69af_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-16.1.0-hc68f6b8_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.85.0-hce30654_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-22_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-18.0.0-h6fea68a_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-18.0.0-h286801f_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-18.0.0-h286801f_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-18.0.0-hdcc9e87_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-25_osxarm64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.8.0-h7b6f9a7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-17.0.6-h0812c0d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.20-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.22-hd74edd7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.1-h750986c_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.9.3-hb8ac103_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.26.0-hfe08963_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.26.0-h1466eeb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.62.2-h9c18a4f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.30.0-h2e6cea1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.30.0-h90fd6fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.65.5-h3d9cf25_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8fbad5d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-h1eb4d9f_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-22_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-he250239_1021.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-25_osxarm64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-16.1.0-hcf52c46_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.43-h091b4b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.3-h7afe498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-4.25.3-hbfab5d5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.09.01-h7b2c953_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-h31fb324_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.18-h27ca646_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hf7a34df_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_h853a48d_115.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_h517c56d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-18.0.0-hda0ea68_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.44-hc14010f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.27.5-h53f8970_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h2348fd5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha2cf0f4_17.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hffd3212_11.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.19.0-h026a170_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.6.0-h07db509_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-hfce79cd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.8.0-h1a8c8d9_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.4.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.16-hf2054a2_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-ha661575_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.10.1-ha0bc3c6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py311h02e79e2_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.3-hb52a8e5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py311hc367efa_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py311hd44b8e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py311hebe0b09_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py311h05b510d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py311ha1ab1f8_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py311h000fb6e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py311h56c23cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py311ha1ab1f8_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py311hbe3227e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.7-h27ee973_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py311h6bde47b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py311h2c37856_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-hb89a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py311h42682c7_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.35-hb7217d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.102-hc42bcbf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.2-nompi_py311hd13e3db_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py311h9506ed5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py311h4268184_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py311h6de8079_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.2-h4a9587e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py311h4b4568b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py311h9cb3ce9_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py311hd7951ec_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.43.4-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py311h3894ae9_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.07.0-h9787579_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.3-hdfa2ec6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.4.1-hfb94cee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py311hd3f4193_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-h27ca646_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.5.0-h61a8e3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py311hae2e1ce_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py311h35c05fe_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py311hf5072a7_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-18.0.0-py311h35c05fe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-18.0.0-py311he04fa90_0_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py311h98c6a39_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py311ha9d8091_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py311h481aa64_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.8.0-py311he661659_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py311h5e0e26b_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py311hc9b973e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py311hb4b81e0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.9-h932a869_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.10-hc51fdd5_3_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py311heffc1b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py311h9bed540_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.09.01-h4cba328_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py311h460d6c5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py311h730b646_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-hcd0e937_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py311hbfb48bc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py311hceeca8c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py311h0f19114_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py311h9e23f0f_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py311hf1db568_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py311hac502b4_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-hd02b534_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.13.0-h5fcca99_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.46.0-h5838104_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.47.0-hcd14bea_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.24.2-h577ba9b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py311hd3f4193_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py311h460d6c5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024a-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py311hae2e1ce_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py311h05b510d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-hf393695_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py311h460d6c5_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-h92fc2f4_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hb547adb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.3-h27ca646_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hd74edd7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hcc0f68c_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h9f5b81c_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py311h4a6b76e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py311ha60cc69_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels win-64: + - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py311he736701_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.22-hbd1ec33_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.0-hea5f451_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.23-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.4.2-ha301515_14.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.2-h0d3dc49_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.9-h5623c2f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.4-haec3ea0_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.6.0-hce3953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.16-hea5f451_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.27.2-h161bee7_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.329-haf7a04e_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.12.0-haf5610f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.8.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.11.0-h39eb5e7_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.6.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py311h1ea47a8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.31-h459cf4e_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.4-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.31-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.19-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.0-h520d0cd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.10-h2b94654_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.20-he6ac336_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.7-h5d974fa_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.7.0-h6498dec_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.19-h0da4a7a_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.20-h0da4a7a_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.29.0-hb4a7b61_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.407-hdc23f3d_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py311h1ea47a8_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py311h12c1d0e_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.28.1-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.7.4-h56e8100_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h91e5215_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py311ha68e1ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hc2ea260_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py311h0a17f05_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h32b962e_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py311h0a17f05_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py311h005e61a_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py311he736701_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py311h3257749_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py311h5082efb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.11.10-py311hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py311ha68e1ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py311hda3d55a_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py311he736701_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py311hda3d55a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.0-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/expat-2.6.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.14.2-hbde0cde_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py311he736701_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py311h5082efb_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-h8276f4a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py311h6622a2a_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.12.2-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-hd7df778_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.80.3-h4394cf3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.5-hb0a98b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.5-h5006eae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.0-h5a68840_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-h496ac4d_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.13-h63175ca_1003.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-9.0.0-h2bedf89_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.3-nompi_h2b43c12_105.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.0-h57928b3_979.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh4bbf305_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py311h1ea47a8_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py311h005e61a_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py311h3257749_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240116.2-cxx17_h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240722.0-cxx17_he0c23c2_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libarchive-3.7.4-haf234dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h6c1a0db_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-h1f0e801_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.85.0-h57928b3_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-18.1.8-default_ha5278ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-18.0.0-h80430d3_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-18.0.0-hac47afa_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-18.0.0-hac47afa_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-18.0.0-ha9530af_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-19.1.3-default_ha5278ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcrc32c-1.1.2-h0e60522_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.8.0-hd5e4a3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.20-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.22-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-h3671451_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.1-h26bd040_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.26.0-h5e7cea3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.26.0-he5eb982_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.62.2-h5273850_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.0-default_h8125262_1000.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.9.3-h042995d_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.30.0-ha00044d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.30.0-he5eb982_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.65.5-ha20e22e_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-haf3e7a6_1018.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h92078aa_114.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h178134c_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.43-h19919ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpq-16.3-hab9416b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-4.25.3-h503648d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2023.09.01-hf8d8778_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-h6c42fcb_16.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-hcb35769_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h538826c_1021.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_he239ae6_115.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-18.0.0-h59f2d37_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.44-h3ca93ac_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-5.27.5-hcaed137_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2024.07.02-h4eb7d71_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-hd4c2148_17.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-h939089a_11.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.19.0-ha2b3283_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-hddb2be6_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.21.0-hbe90ef8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-hfc51747_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.8.0-h82a8f57_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h0e60522_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.4.0-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.16-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h283a6d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.10.1-h1d365fa_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py311h7deaa30_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.39-h3df6e99_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py311h7deaa30_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py311haddf500_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py311h8b5e962_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hcfcfb64_1001.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py311ha68e1ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py311h1ea47a8_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py311h9b31f6e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py311h5082efb_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py311h1ea47a8_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py311h8f1b1e4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/minizip-4.0.6-hb638d1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.1.0-h66d3029_692.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py311h3257749_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_14.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py311h3257749_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py311hbdc12eb_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.2-nompi_py311hc43f1c8_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py311h0673bce_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py311h35ffc71_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py311h35ffc71_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.2-h1c5a4bf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py311hcf9f919_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py311hcf9f919_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py311h5592be9_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py311h4fbf6a9_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.43.4-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/poppler-24.07.0-h686f694_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.3-h7f155c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.4.1-hd9569ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py311he736701_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py311h06a5be4_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py311hf9a78b3_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.5.0-hd9569ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py311he736701_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-18.0.0-py311h06a5be4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-18.0.0-py311hdea38fa_0_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py311h533ab2d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py311he736701_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py311h533ab2d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py311h2494c99_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py311h93f6e28_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py311h125bc19_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py311h12c1d0e_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py311h8c1360f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py311h90dcb63_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py311h4238720_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.9-h631f459_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.10-hce54a09_3_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-4_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-5_cp311.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py311h12c1d0e_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py311ha68e1ae_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py311h484c95c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h06adc49_22.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2023.09.01-hd3b24a8_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py311h484c95c_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.8.0-hfb098fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rcedit-1.1.1-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2024.07.02-hd3b24a8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py311hdcb8d17_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py311hd4686c6_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py311hf837ac7_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py311h12c1d0e_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py311hdcb8d17_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py311hf16d85f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py311hd54bd37_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.1-h23299a8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.13.0-h64d2f7d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.12.0-hc790b64_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.7.0-h91493d7_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.24.2-h2a0bfd3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py311he736701_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py311he736701_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py311he736701_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/uriparser-0.9.8-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py311ha68e1ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py311he736701_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-he0c23c2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-h0e40799_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-he1f189c_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-ha9f60a1_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py311h53056dc_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py311h53056dc_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda - pypi: python/ribasim - pypi: python/ribasim_api @@ -5580,1219 +4266,896 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.12-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h66e93f0_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.22-heee8711_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.0-h816f305_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.23-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.4.2-hb72ac1a_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.2-had8cc17_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.9-h37d6bf3_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.4-hb0abfc5_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.6.0-h1f67ec3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.16-he027950_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.18-he027950_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.27.2-heffe44f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.329-habc23cd_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.12.0-h830ed8b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.8.0-hdb0d106_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.11.0-ha67cba7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.6.0-he3f277c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.10.0-h29b5301_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.31-hcdce11a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.4-hd3f4568_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.31-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.19-hf20e7d7_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h72d8268_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.10-h6bb76cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.20-h389d861_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.7-had056f2_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.0-hc85afc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.19-hf20e7d7_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.20-hf20e7d7_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.0-h07ed512_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.407-h9c41b47_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py312h7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py312hf06ca03_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-hf8ad068_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312h085067d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312hc0a28a1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py312h8572e83_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py312h9a8786e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py312h68727a3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py312h178313f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py312h7070661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py312h2ec8cdc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py312h41a817b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py312h178313f_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h743c826_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py312h86af8fa_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-hf7fa9e8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.0-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-h77b800c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.3-h73ef956_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.5-hbaaba92_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.5-haf2f30d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.5.0-hfac3d4d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh3099207_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.17-h7ab15ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hee9dde6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.18-h6688a6e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py312h8572e83_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py312h68727a3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_h5888daf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-16.1.0-h56e7afd_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-16.1.0-he02047a_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-16.1.0-hc9a23c6_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.85.0-ha770c72_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-15.0.2-h1972583_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-15.0.2-h5d0bfc1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-15.0.2-h5d0bfc1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-15.0.2-h15553ab_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-sql-15.0.2-ha33d14e_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-gandiva-15.0.2-h18fa613_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-15.0.2-ha33d14e_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h6ae225f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.3-default_hb5137d0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-19.1.3-default_h9c6a7e4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.22-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.123-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.1-ha654e03_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.26.0-h26d7fe4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.26.0-ha262f82_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.9.2-hd5b9bfb_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.30.0-h438788a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.30.0-h0121fbd_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.50-h4f305b6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.65.5-hf5c653b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h01aab08_1018.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-hf539b9f_1021.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-25_linux64_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-hc9dba70_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm17-17.0.6-hc9dba70_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.3-ha7bfdaf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.10.0-h4bc722e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.5-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-16.1.0-h9e5060d_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.3-ha72fbe1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-hc670b87_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h15fa968_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-15.0.2-hd082c85_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.44-hadc24fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.4-h2d7952a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.27.5-h5b01275_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h97f6797_17.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h1b4f908_11.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.19.0-hb90f79a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-256.7-h2774228_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-he137b08_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libudev1-256.7-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.4.0-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h2c5496b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.39-h76b75d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h374181b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312h03f37cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312hb3f7f12_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py312h7900ff3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py312h20ab3a6_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py312hd3ec401_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.7-h401b404_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.6-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py312h2492b07_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py312h68727a3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-9.0.1-h266115a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-9.0.1-he0572af_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h1ef7fb6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nss-3.102-h593d115_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h21d6d8e_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py312h83e6fd3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py312h58c1407_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.2-h690cf93_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py312h1d6d2e6_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py312hf9745cd_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py312h287a98d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py312h7b63e92_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.07.0-hb0d391f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.3-h8e811e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.4.1-hb784bbd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py312h9a8786e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.5.0-h12925eb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py312h9cebb41_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py312h70856f0_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-15.0.2-py312h5169447_39_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py312hf008fa9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py312h6368725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py312h12e396e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py312h8ad7a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py312h5d05ceb_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py312h949fe66_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py312h30efb56_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py312he8b4914_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py312he630544_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.7.3-py312h91f0f75_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py312h98912ed_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py312h8fd38d8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-ha2b5568_22.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.7.3-h20baabe_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-54.0-h5888daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h77b4e00_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.17-he19d79f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py312h775a589_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py312hc2bc53b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py312h8413631_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py312h30efb56_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.5-h3931f03_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py312h7a48858_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py312h62794b6_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py312h391bc85_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-ha2e4443_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.13.0-hd2e6256_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.47.0-h9eae976_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.24.2-h9260d03_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h9a8786e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024a-h3f72095_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.17.0-h05e919c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.23.1-h3e06ad9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-hb711507_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-hac6953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-h988505b_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.43-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-he73a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.10-h4f16b4b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.5-hb9d3cd8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h75354e8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py312h5b18bf6_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels - osx-64: + osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py312h024a12e_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.7.22-he52cbe7_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.7.0-hd73d8db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.9.23-hfdf4475_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.2.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.4.2-ha5205da_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.8.2-hf609411_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.14.9-h9f49e27_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.10.4-hcc4e2a5_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.6.0-h8fdb93b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.1.16-hd73d8db_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.1.18-hd73d8db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.27.2-h7746516_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.329-hce9e41e_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-core-cpp-1.12.0-hf8dbe3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.8.0-h906f3f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.11.0-h5f32033_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.6.0-h0dc8e96_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.10.0-hc1cec4e_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.31-hee1f4ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.4-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.31-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.19-hfd083d3_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h33c80d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.10-h4a91a90_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.20-h5fdde16_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.7-hd821a15_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.0-hc6bcb7c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.19-hfd083d3_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.20-hfd083d3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.0-h45f4ed5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.407-h0a0d3c4_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312heafc425_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.28.1-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.7.4-h8857fd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.0-h9f650ed_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py312h38bf5a0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cfitsio-4.4.1-ha105788_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py312h5dc8b90_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312h755e627_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py312h9230928_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py312hbd25219_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py312h4721b07_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py312ha0ccf2a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py312h28f332c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py312hde4cb15_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/expat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.14.2-h5bb23bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3ec172f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py312h9b1be66_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.12.2-hf036a51_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/geotiff-1.7.3-h4bbec01_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.2.2-hb1e8313_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py312ha0ccf2a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-hfbad9fb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.13.0-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h82bf549_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.3-nompi_h687a608_105.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.3-nompi_hec07895_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/json-c-0.17-h8e11ae5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kealib-1.5.3-hb2b617a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py312h49ebfd2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.16-ha2f27b4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20240116.2-cxx17_hc1bcbd7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-16.1.0-h067ad5e_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-16.1.0-hf036a51_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-16.1.0-h85bc590_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.85.0-h694c41f_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.8.0-hf9fcc65_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-17.0.6-heb59cac_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.20-h49d49c5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-ha90c15b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgdal-3.9.1-h52f6243_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.80.3-h736d271_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.26.0-h721cda5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.26.0-h9e84e37_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.62.2-h384b2fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.22.5-h5ff76d1_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-hab3ca0e_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-22_osx64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm14-14.0.6-hc8e404f_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.2-nompi_h7334405_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.27-openmp_h8869122_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-16.1.0-h904a336_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.43-h92b6c6a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-16.3-h4501773_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-4.25.3-h4e4d658_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2023.09.01-h81f5012_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-he2ba7a0_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.18-hbcb3906_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-hdc25a2c_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.19.0-h064b379_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.6.0-h129831d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.8.0-hb7f2c08_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.4.0-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.16-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-h3e169fe_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.10.1-hc158999_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py312hdeb90da_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.18-he4178ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py312h6142ec9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_hf9b8971_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.3-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-15.0.2-hfcb7bf0_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-15.0.2-h5833ebf_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-15.0.2-h5833ebf_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-15.0.2-h1a98edb_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-sql-15.0.2-h54b16e1_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-gandiva-15.0.2-h6d50e30_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-15.0.2-hec64ae3_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.22-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.9.2-hfd0b032_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.30.0-h2e6cea1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.30.0-h90fd6fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.65.5-h3d9cf25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-he250239_1021.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-25_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm17-17.0.6-h5090b49_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_h517c56d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-15.0.2-h8aa6169_39_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.44-hc14010f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.27.5-h53f8970_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h2348fd5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha2cf0f4_17.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hffd3212_11.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-hfce79cd_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.8.0-h1a8c8d9_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.4.0-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.3-hb52a8e5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312ha9ca408_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py312h904eaf1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py312hb401068_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py312hb6d62fa_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312h11d1bbd_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py312ha0ccf2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py312h1f38498_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py312h9bd0bc6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.7-h62b0c8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py312hc3c9ca0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.7-h27ee973_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py312h6142ec9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h5846eda_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py312h87064e8_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nspr-4.35-hea0b92c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nss-3.102-he7eb89d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hd88a8d4_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py312h801f5e3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.2-h4a9587e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py312h1171441_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py312hcd31e36_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py312hbd70edc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.43.4-h73e2aa4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py312haf37ca6_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/poppler-24.07.0-h744cbf2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/postgresql-16.3-h1d90168_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.4.1-hf92c781_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py312hbd25219_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-hc929b4f_1001.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.5.0-h61a8e3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py312h0bf5046_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py312h0be7463_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py312h12b3929_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-15.0.2-py312h5d771bf_39_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py312ha47ea1c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py312h4cf456b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py312he431725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py312h43b3a95_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py312ha320102_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py312hf9e36c7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py312h1ab748d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.4-h37a9e06_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py312h104f124_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py312ha04878a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2023.09.01-hb168e87_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hf8a1cbd_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-hcd0e937_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py312hc214ba5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py312hb9702fa_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py312h594820c_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py312h387f99c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py312h20deb59_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py312h3a6007a_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.1-he1e6707_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-hd02b534_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/spdlog-1.13.0-h1a4aec9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.46.0-h28673e1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.47.0-hcd14bea_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tiledb-2.24.2-h493d6f2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py312hbd25219_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h024a12e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tzcode-2024a-h10d778d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py312h0bf5046_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.2.5-hbbe9ea5_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-h92fc2f4_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.11-h0dc2134_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-hde137ed_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hd74edd7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h9f5b81c_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py312h331e495_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda - pypi: python/ribasim - pypi: python/ribasim_api - pypi: python/ribasim_testmodels - osx-arm64: + win-64: + - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py312h4389bb4_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.22-haa5a189_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.0-h94d0942_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.23-h99b78c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.4.2-he43e89f_14.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.2-h638bd1a_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.9-hf0e3e08_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.4-h80c1ce3_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.6.0-h11f64d3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.16-h94d0942_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.18-h94d0942_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.27.2-hd9c8ee4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.329-haf867cf_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.12.0-hd01fc5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.8.0-h0a11218_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.11.0-h77cc766_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.6.0-h7024f69_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.10.0-h64d02d0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py312h81bd7bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.31-h459cf4e_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.4-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.31-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.19-h0da4a7a_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.0-h520d0cd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.10-h2b94654_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.20-he6ac336_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.7-h5d974fa_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.7.0-h6498dec_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.19-h0da4a7a_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.20-h0da4a7a_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.29.0-hb4a7b61_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.407-hdc23f3d_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312h9f69965_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.7.4-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hc6c324b_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py312h8e38eb3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-h793ed5c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312hbebd99a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h32b962e_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py312h0fef576_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py312hd5eb7cc_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py312h31fea79_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.7-py312hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py312h5c2e7bc_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py312h275cf98_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.0-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.6.2-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.14.2-h82840c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py312h7e5086c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-hfbad9fb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py312hf4c14af_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.12.2-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h7e5fb84_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hc88da5d_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.3-nompi_hec07895_105.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh57ce528_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.17-h40ed0f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py312h81bd7bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h848a2d4_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py312h389731b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240116.2-cxx17_hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.3-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-16.1.0-h71e69af_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-16.1.0-h00cdb27_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-16.1.0-hc68f6b8_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.85.0-hce30654_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.8.0-h7b6f9a7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-17.0.6-h0812c0d_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.20-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.1-h750986c_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.26.0-hfe08963_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.26.0-h1466eeb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.62.2-h9c18a4f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8fbad5d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-h1eb4d9f_1018.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-22_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-16.1.0-hcf52c46_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.43-h091b4b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.3-h7afe498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-4.25.3-hbfab5d5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.09.01-h7b2c953_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-h31fb324_16.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.18-h27ca646_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hf7a34df_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.19.0-h026a170_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.6.0-h07db509_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.8.0-h1a8c8d9_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.4.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.16-hf2054a2_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-ha661575_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.10.1-ha0bc3c6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312h30cb90f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312haed5471_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py312h1f38498_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py312h4479663_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.7-h27ee973_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py312h157fec4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-hb89a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hec02768_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.35-hb7217d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.102-hc42bcbf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py312h8ae5369_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py312h39b1d8d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.43.4-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.07.0-h9787579_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.3-hdfa2ec6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.4.1-hfb94cee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py312h7e5086c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-h27ca646_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py312ha814d7c_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py312h21f1c3e_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py312h552d48e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.9.0-py312h15038b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py312h64656f7_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.4-h30c5eda_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-4_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py312h02f2b3b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py312hfa13136_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.09.01-h4cba328_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py312h1b546db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py312h14ffa8f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py312hbab3d11_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-hd02b534_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.13.0-h5fcca99_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.46.0-h5838104_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.24.2-h577ba9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h7e5086c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024a-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-hf393695_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hb547adb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.3-h27ca646_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hcc0f68c_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py312h721a963_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda - - pypi: python/ribasim - - pypi: python/ribasim_api - - pypi: python/ribasim_testmodels - win-64: - - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.22-hbd1ec33_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.0-hea5f451_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.23-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.4.2-ha301515_14.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.2-h0d3dc49_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.9-h5623c2f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.4-haec3ea0_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.6.0-hce3953d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.16-hea5f451_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.18-hea5f451_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.27.2-h161bee7_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.329-haf7a04e_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.12.0-haf5610f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.8.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.11.0-h39eb5e7_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.6.0-h8578521_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bmipy-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h53d5487_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.28.1-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.7.4-h56e8100_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h91e5215_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hc2ea260_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py312h0d7def4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py312h4389bb4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py312h275cf98_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/expat-2.6.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.14.2-hbde0cde_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py312h31fea79_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-h8276f4a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py312h7090a6d_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.12.2-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-hd7df778_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.80.3-h4394cf3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.5-hb0a98b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.5-h5006eae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.0-h5a68840_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-h496ac4d_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.13-h63175ca_1003.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-9.0.0-h2bedf89_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.25.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.3-nompi_h2b43c12_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh4bbf305_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py312h0d7def4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py312hd5eb7cc_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240116.2-cxx17_h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240722.0-cxx17_he0c23c2_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libarchive-3.7.4-haf234dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h6c1a0db_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-he0c23c2_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-h1f0e801_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.85.0-h57928b3_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-18.1.8-default_ha5278ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h80430d3_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-hac47afa_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-hac47afa_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-ha9530af_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-25_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-19.1.3-default_ha5278ca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcrc32c-1.1.2-h0e60522_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.8.0-hd5e4a3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.20-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.22-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-h3671451_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libflang-5.0.0-h6538335_20180525.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.1-h26bd040_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.26.0-h5e7cea3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.26.0-he5eb982_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.62.2-h5273850_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.9.2-h042995d_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.30.0-ha00044d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.30.0-he5eb982_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.65.5-ha20e22e_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-haf3e7a6_1018.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h538826c_1021.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-25_win64_mkl.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h92078aa_114.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libopenblas-0.3.27-pthreads_hc140b1d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h178134c_13_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.43-h19919ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpq-16.3-hab9416b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-4.25.3-h503648d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2023.09.01-hf8d8778_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-h6c42fcb_16.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-hcb35769_8.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h59f2d37_36_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.44-h3ca93ac_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-5.27.5-hcaed137_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2024.07.02-h4eb7d71_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-hd4c2148_17.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-h939089a_11.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.19.0-ha2b3283_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-hddb2be6_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.21.0-hbe90ef8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-hfc51747_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.8.0-h82a8f57_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h0e60522_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.4.0-hcfcfb64_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.16-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h283a6d9_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.10.1-h1d365fa_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.39-h3df6e99_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h594ca44_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h0608a1d_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hcfcfb64_1001.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py312h2e8e312_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py312hfee7060_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py312h31fea79_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py312h90004f6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/minizip-4.0.6-hb638d1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py312hd5eb7cc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_14.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py312hd5eb7cc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/multimethod-1.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_102.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py312hcccf92d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py312h49bc9c5_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openmp-5.0.0-vc14_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.2-h1c5a4bf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py312h72972c8_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py312h72972c8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py312h381445a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py312ha41cd45_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.43.4-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/poppler-24.07.0-h686f694_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.12-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.3-h7f155c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.4.1-hd9569ee_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py312h4389bb4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h3529c54_4_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.5.0-hd9569ee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_6.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h6a9c419_6_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py312h2615798_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py312h2615798_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py312hd215820_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py312h6f27134_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py312he09f080_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py312h53d5487_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py312h8705084_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py312ha24589b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py312h2ee7485_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.4-h889d299_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-4_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py312h53d5487_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py312he70551f_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py312hd7027bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h06adc49_22.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2023.09.01-hd3b24a8_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py312h275cf98_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py312hd7027bb_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.8.0-hfb098fa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rcedit-1.1.1-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2024.07.02-hd3b24a8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py312h816cc57_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py312h1f4e10d_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py312h3a88d77_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py312h53d5487_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py312h816cc57_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py312h337df96_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py312h0c580ee_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.1-h23299a8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.13.0-h64d2f7d_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.46.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.7.0-h91493d7_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.5.0-pyhc1e730c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.24.2-h2a0bfd3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/uriparser-0.9.8-h5a68840_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-he0c23c2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xmipy-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-h0e40799_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-he1f189c_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-ha9f60a1_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py312h7606c53_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda - pypi: python/ribasim - pypi: python/ribasim_api @@ -6830,20 +5193,25 @@ packages: size: 23621 timestamp: 1650670423406 - kind: conda - name: _sysroot_linux-64_curr_repodata_hack - version: '3' - build: h69a702a_14 - build_number: 14 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_14.conda - sha256: 0dbeaddc3d5134b5336c52ac05642533b8d1ba2e1316aa92981f4cf5b5388de0 - md5: 38d211c448a67f12fe693fe25df4da23 - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL + name: _openmp_mutex + version: '4.5' + build: 2_gnu + build_number: 8 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda + sha256: 1a62cd1f215fe0902e7004089693a78347a30ad687781dfda2289cab000e652d + md5: 37e16618af5c4851a3f3d66dd0e11141 + depends: + - libgomp >=7.5.0 + - libwinpthread >=12.0.0.r2.ggc561118da + constrains: + - openmp_impl 9999 + - msys2-conda-epoch <0.0a0 + license: BSD-3-Clause + license_family: BSD purls: [] - size: 21169 - timestamp: 1708000801681 + size: 49468 + timestamp: 1718213032772 - kind: conda name: alsa-lib version: 1.2.12 @@ -6874,33 +5242,33 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/annotated-types?source=conda-forge-mapping + - pkg:pypi/annotated-types?source=hash-mapping size: 18235 timestamp: 1716290348421 - kind: conda name: anyio - version: 4.4.0 + version: 4.6.2.post1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.4.0-pyhd8ed1ab_0.conda - sha256: 84ac9429812495f12939ab4994f2634f7cacd254f6234a0c2c0243daed15a7ee - md5: 1fa97c6e8db1f82c64ff17a5efc4ae8e + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + sha256: 4b54b7ce79d818e3cce54ae4d552dba51b7afac160ceecdefd04b3917a37c502 + md5: 688697ec5e9588bdded167d19577625b depends: - exceptiongroup >=1.0.2 - idna >=2.8 - - python >=3.8 + - python >=3.9 - sniffio >=1.1 - typing_extensions >=4.1 constrains: - - uvloop >=0.17 - - trio >=0.23 + - uvloop >=0.21.0b1 + - trio >=0.26.1 license: MIT license_family: MIT purls: - - pkg:pypi/anyio?source=conda-forge-mapping - size: 104255 - timestamp: 1717693144467 + - pkg:pypi/anyio?source=hash-mapping + size: 109864 + timestamp: 1728935803440 - kind: conda name: appnope version: 0.1.4 @@ -6915,7 +5283,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/appnope?source=conda-forge-mapping + - pkg:pypi/appnope?source=hash-mapping size: 10241 timestamp: 1707233195627 - kind: conda @@ -6936,80 +5304,170 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/argon2-cffi?source=conda-forge-mapping + - pkg:pypi/argon2-cffi?source=hash-mapping size: 18602 timestamp: 1692818472638 - kind: conda name: argon2-cffi-bindings version: 21.2.0 - build: py312h02f2b3b_4 - build_number: 4 + build: py310h493c2e1_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py312h02f2b3b_4.conda - sha256: 1cfcf4b2d36a3b183a5cb1c69f85768166e50af6ced5ae381c440666a6da12c6 - md5: 015edbb6fae68ab35881f55f149d4725 + url: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py310h493c2e1_5.conda + sha256: 888c99261419d786a511bbc711b51bdae06ee1bfa35e8c653a0dda1aa8a348f8 + md5: a6a3f529a421164ba519f564b0559a9e depends: + - __osx >=11.0 - cffi >=1.0.1 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython + - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/argon2-cffi-bindings?source=conda-forge-mapping - size: 33607 - timestamp: 1695387216062 + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 32379 + timestamp: 1725356978614 - kind: conda name: argon2-cffi-bindings version: 21.2.0 - build: py312h104f124_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-21.2.0-py312h104f124_4.conda - sha256: aa321e91f0ff365b5261fa1dcffa2d32aa957561bdbb38988e52e28e25a762a8 - md5: dddfb6125aed1fb84eb13319007c08fd + build: py310ha75aee5_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py310ha75aee5_5.conda + sha256: 1050f55294476b4d9b36ca3cf22b47f2f23d6e143ad6a177025bc5e5984d5409 + md5: a2da54f3a705d518c95a5b6de8ad8af6 depends: + - __glibc >=2.17,<3.0.a0 - cffi >=1.0.1 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - libgcc >=13 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/argon2-cffi-bindings?source=conda-forge-mapping - size: 32556 - timestamp: 1695387174872 + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 34425 + timestamp: 1725356664523 - kind: conda name: argon2-cffi-bindings version: 21.2.0 - build: py312h98912ed_4 - build_number: 4 + build: py310ha8f682b_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py310ha8f682b_5.conda + sha256: f0b23aa9a3c27500d58a383d635c01b86ab652c34646c3ad9e89fd82607178a0 + md5: d18002177f557891c1fc5482da6decd7 + depends: + - cffi >=1.0.1 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 33837 + timestamp: 1725357171155 +- kind: conda + name: argon2-cffi-bindings + version: 21.2.0 + build: py311h460d6c5_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py311h460d6c5_5.conda + sha256: 6eabd1bcefc235b7943688d865519577d7668a2f4dc3a24ee34d81eb4bfe77d1 + md5: 1e8260965552c6ec86453b7d15a598de + depends: + - __osx >=11.0 + - cffi >=1.0.1 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + purls: + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 33008 + timestamp: 1725356833036 +- kind: conda + name: argon2-cffi-bindings + version: 21.2.0 + build: py311h9ecbd09_5 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h98912ed_4.conda - sha256: 8ddb4a586bc128f1b9484f82c5cb0226340527fbfe093adf3b76b7e755e11477 - md5: 00536e0a1734dcde9815fe227f32fc5a + url: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py311h9ecbd09_5.conda + sha256: d1af1fbcb698c2e07b0d1d2b98384dd6021fa55c8bcb920e3652e0b0c393881b + md5: 18143eab7fcd6662c604b85850f0db1e depends: + - __glibc >=2.17,<3.0.a0 - cffi >=1.0.1 - - libgcc-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + purls: + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 35025 + timestamp: 1725356735679 +- kind: conda + name: argon2-cffi-bindings + version: 21.2.0 + build: py311he736701_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py311he736701_5.conda + sha256: 8bbce5e61e012a06e248f58bb675fdc82ba2900c78590696d185150fb9cea91f + md5: 8917bf795c40ec1839ed9d0ab3ad9735 + depends: + - cffi >=1.0.1 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 34883 + timestamp: 1725357113431 +- kind: conda + name: argon2-cffi-bindings + version: 21.2.0 + build: py312h024a12e_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py312h024a12e_5.conda + sha256: 0e32ddd41f273f505956254d81ffadaf982ed1cb7dfd70d9251a8c5b705c7267 + md5: 6ccaeafe1a52b0d0e7ebfbf53a374649 + depends: + - __osx >=11.0 + - cffi >=1.0.1 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/argon2-cffi-bindings?source=conda-forge-mapping - size: 35142 - timestamp: 1695386704886 + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 32838 + timestamp: 1725356954187 - kind: conda name: argon2-cffi-bindings version: 21.2.0 - build: py312he70551f_4 - build_number: 4 + build: py312h4389bb4_5 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py312he70551f_4.conda - sha256: 4c3c428b994400ca753d9d0adbb11ce2d2a87f4dacd86c91d6cf985c5d89a3e1 - md5: 69b7a1d899d46b91f8eecab9abf9728c + url: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-21.2.0-py312h4389bb4_5.conda + sha256: 8764a8a9416d90264c7d36526de77240a454d0ee140841db545bdd5825ebd6f1 + md5: 53943e7ecba6b3e3744b292dc3fb4ae2 depends: - cffi >=1.0.1 - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -7017,9 +5475,30 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/argon2-cffi-bindings?source=conda-forge-mapping - size: 34750 - timestamp: 1695387347676 + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 34399 + timestamp: 1725357069475 +- kind: conda + name: argon2-cffi-bindings + version: 21.2.0 + build: py312h66e93f0_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py312h66e93f0_5.conda + sha256: 3cbc3b026f5c3f26de696ead10607db8d80cbb003d87669ac3b02e884f711978 + md5: 1505fc57c305c0a3174ea7aae0a0db25 + depends: + - __glibc >=2.17,<3.0.a0 + - cffi >=1.0.1 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/argon2-cffi-bindings?source=hash-mapping + size: 34847 + timestamp: 1725356749774 - kind: conda name: arrow version: 1.3.0 @@ -7036,7 +5515,7 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/arrow?source=conda-forge-mapping + - pkg:pypi/arrow?source=hash-mapping size: 100096 timestamp: 1696129131844 - kind: conda @@ -7054,26 +5533,9 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/asttokens?source=conda-forge-mapping + - pkg:pypi/asttokens?source=hash-mapping size: 28922 timestamp: 1698341257884 -- kind: conda - name: astunparse - version: 1.6.3 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 - sha256: e5173d1ed038038e24c0623f0219dc587ee8663cf7efa737e7075128edbc6c60 - md5: 000b6f68a0bfaba800ced7500c11780f - depends: - - python >=3.6 - - six >=1.6.1,<2.0 - license: BSD-3-Clause AND PSF-2.0 - purls: - - pkg:pypi/astunparse?source=conda-forge-mapping - size: 15539 - timestamp: 1610696401707 - kind: conda name: async-lru version: 2.0.4 @@ -7089,7 +5551,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/async-lru?source=conda-forge-mapping + - pkg:pypi/async-lru?source=hash-mapping size: 15342 timestamp: 1690563152778 - kind: conda @@ -7110,182 +5572,152 @@ packages: timestamp: 1660065501192 - kind: conda name: attrs - version: 23.2.0 + version: 24.2.0 build: pyh71513ae_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda - sha256: 77c7d03bdb243a048fff398cedc74327b7dc79169ebe3b4c8448b0331ea55fea - md5: 5e4c0743c70186509d1412e03c2d8dfa + url: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_0.conda + sha256: 28dba85a7e0f7fb57d7315e13f603d1e41b83c5b88aa2a602596b52c833a2ff8 + md5: 6732fa52eb8e66e5afeb32db8701a791 depends: - python >=3.7 license: MIT license_family: MIT purls: - - pkg:pypi/attrs?source=conda-forge-mapping - size: 54582 - timestamp: 1704011393776 -- kind: conda - name: aws-c-auth - version: 0.7.22 - build: haa5a189_7 - build_number: 7 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.22-haa5a189_7.conda - sha256: 48214c89b8552bf3dff7bb57452e4d4ab0f642edb9f2b72615bd7a10000eef58 - md5: 194eb593fd2a7c4cf762ffebbad9bc7c - depends: - - __osx >=11.0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 91341 - timestamp: 1719351456543 + - pkg:pypi/attrs?source=hash-mapping + size: 56048 + timestamp: 1722977241383 - kind: conda name: aws-c-auth - version: 0.7.22 - build: hbd1ec33_7 - build_number: 7 + version: 0.7.31 + build: h459cf4e_5 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.22-hbd1ec33_7.conda - sha256: 9daac2732aba42c6964db0bd8ad36c65c8d650afa000e66ea0b7423f735439ec - md5: c12082ba63e2191eb78109792768c865 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.7.31-h459cf4e_5.conda + sha256: e01e956eff5ee64eff2ec27d64a59edd63e319c70685d76314da4690b71b4c75 + md5: c1dde5a630076bb14fb2f17eab884be6 depends: - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-c-sdkutils >=0.1.19,<0.1.20.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 101280 - timestamp: 1719351896421 -- kind: conda - name: aws-c-auth - version: 0.7.22 - build: he52cbe7_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.7.22-he52cbe7_7.conda - sha256: fc89e3b398983cc978f2c6cd35757b9b3a149ead2ed0524e84eede109374ad5f - md5: bfa9a4d55804bab91ed4006089496264 - depends: - - __osx >=10.13 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 93079 - timestamp: 1719351385107 + size: 102345 + timestamp: 1729645407261 - kind: conda name: aws-c-auth - version: 0.7.22 - build: heee8711_7 - build_number: 7 + version: 0.7.31 + build: hcdce11a_5 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.22-heee8711_7.conda - sha256: 5391c9e3ddcf82de0ce59c6c516ab9e4b2ec70152ceb1ce3e5c6992568013077 - md5: 4f4ea05eaaaf001cad56fc4723caf208 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.31-hcdce11a_5.conda + sha256: f2a0f4ea442315232166ea9b7b85be36d10066507029a7ffd9bdee7c4da4ea1c + md5: 5e8936e89bae15461d8a0d2b8920f181 depends: - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-c-sdkutils >=0.1.19,<0.1.20.0a0 + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 106002 - timestamp: 1719351312419 + size: 107177 + timestamp: 1729645226835 - kind: conda - name: aws-c-cal - version: 0.7.0 - build: h816f305_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.0-h816f305_0.conda - sha256: ad48652b619b3af551b64ac14866a5e398f373a1d78ed9d2c55ec06f1662ae25 - md5: 9024f0647bfac11e986bba79a2e5daaa + name: aws-c-auth + version: 0.7.31 + build: hee1f4ab_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.31-hee1f4ab_5.conda + sha256: c4a5583292972810a24ac062ec8ff5ea16d2c9d4300daa7c895757da3dff1a2d + md5: 262580840e8d3007fd6a55340a518fa8 depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - libgcc-ng >=12 - - openssl >=3.3.1,<4.0a0 + - __osx >=11.0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-c-sdkutils >=0.1.19,<0.1.20.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 47885 - timestamp: 1719242859814 + size: 92423 + timestamp: 1729645339177 - kind: conda name: aws-c-cal - version: 0.7.0 - build: h94d0942_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.0-h94d0942_0.conda - sha256: e0f1a1b9e93e42a91f7960544fc32908a04327446b05ac1e2b8b50b7b030222b - md5: 255ac3454ccb5d4930c8a012da0ba1d3 + version: 0.7.4 + build: h0da4a7a_4 + build_number: 4 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.4-h0da4a7a_4.conda + sha256: df14cfcb748456dfcea23ecade1569d4729090d09eefcb4b52833ea7ea060cc0 + md5: 676448c1ca47b402b5fde84f112c8c7d depends: - - __osx >=11.0 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - openssl >=3.3.1,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 40355 - timestamp: 1719243204994 + size: 46763 + timestamp: 1729595742181 - kind: conda name: aws-c-cal - version: 0.7.0 - build: hd73d8db_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.7.0-hd73d8db_0.conda - sha256: aa13679021c3c6613fb35a3cf9ca1b9d354583f5c54312dd7cfe88f2e62754c4 - md5: 735d5c936d9c2bbe1a1449b408cff4c7 - depends: - - __osx >=10.13 - - aws-c-common >=0.9.23,<0.9.24.0a0 + version: 0.7.4 + build: hd3f4568_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.7.4-hd3f4568_4.conda + sha256: ea8910baaeecdb05f86ee41cf6ea679745677fe320626d347047fce6c04dec02 + md5: 933b666a736387d5a618ae2173364635 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - libgcc >=13 + - openssl >=3.3.1,<4.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 39222 - timestamp: 1719242890270 + size: 47689 + timestamp: 1729595594849 - kind: conda name: aws-c-cal - version: 0.7.0 - build: hea5f451_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.7.0-hea5f451_0.conda - sha256: f74aacdca3fc095c06143185583c5a3ceb996430c363b358513e1c88fc87b217 - md5: abec03ffea50f0119c2943fb2bb67cb5 + version: 0.7.4 + build: hfd083d3_4 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.7.4-hfd083d3_4.conda + sha256: 29f767fd1e7f47b3cedddd04ff3f190ab3ee9c96255dde7234e2b04485595af9 + md5: 335d26e89405e0078c5b43b04c08993c depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - openssl >=3.3.1,<4.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 47130 - timestamp: 1719243439164 + size: 39866 + timestamp: 1729595783840 - kind: conda name: aws-c-common - version: 0.9.23 + version: 0.9.31 build: h2466b09_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.23-h2466b09_0.conda - sha256: 728f9689bea381beebd8c94e333976eec5970bfe5a6a3bf981ee14f5a9229140 - md5: df475c2b12da4aa32d4946a1453681f5 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.9.31-h2466b09_0.conda + sha256: 52e4b04ff909c9e4d5ab5f7892f5eff358417dbb500eca539415732975823567 + md5: 4bf2a26d63fd34e1ad42b73918e452df depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -7293,807 +5725,648 @@ packages: license: Apache-2.0 license_family: Apache purls: [] - size: 234194 - timestamp: 1718918578757 -- kind: conda - name: aws-c-common - version: 0.9.23 - build: h4ab18f5_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.23-h4ab18f5_0.conda - sha256: f3eab0ec3f01ddc3ebdc235d4ae1b3b803d83e40f2cd2389bf8c65ab96e90f02 - md5: 94d61ae2b2b701008a9d52ce6bbead27 - depends: - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 235612 - timestamp: 1718918062664 + size: 234317 + timestamp: 1729562021989 - kind: conda name: aws-c-common - version: 0.9.23 - build: h99b78c6_0 + version: 0.9.31 + build: h7ab814d_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.23-h99b78c6_0.conda - sha256: 15e965a0d1c37927e23d46691e632cf8b39afee5c9ba735f2d535fdb7b58b19e - md5: d9f2adf47d2078d44a23480140e76550 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.31-h7ab814d_0.conda + sha256: b79d2bccd06dec9a54243d617fb6e2436a930707666ba186bbbe047c46b84064 + md5: 37eded160015046030d7a68cb44fb3d2 depends: - __osx >=11.0 license: Apache-2.0 license_family: Apache purls: [] - size: 220102 - timestamp: 1718918149063 + size: 219971 + timestamp: 1729561861114 - kind: conda name: aws-c-common - version: 0.9.23 - build: hfdf4475_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.9.23-hfdf4475_0.conda - sha256: 63680a7e163a947eb97f68cf1d5dd26fe0fef9443196de4fc31615b28d6095a7 - md5: 35083fa12de9dc9918de60c112ceab27 - depends: - - __osx >=10.13 + version: 0.9.31 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.31-hb9d3cd8_0.conda + sha256: 31057d023a4ab78996f15dfefa9b2576da3282953623eeba28934c93baf132bc + md5: 75f7776e1c9af78287f055ca34797517 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 225527 - timestamp: 1718918230587 + size: 235865 + timestamp: 1729561746720 - kind: conda name: aws-c-compression - version: 0.2.18 - build: h94d0942_7 - build_number: 7 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.18-h94d0942_7.conda - sha256: d0244c7638853f8f8feb4a3107844fc6be23c6e29312fc5eda9221df5817b8a7 - md5: c9a37f68bef48f48782746404f4050a2 + version: 0.2.19 + build: h0da4a7a_4 + build_number: 4 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.19-h0da4a7a_4.conda + sha256: 3b7d4ac62a78abd82158702230222e1d4434e78ca6725dd02f1faed03495e7d1 + md5: 21a94ad526aa67b47caf9f63e4bab665 depends: - - __osx >=11.0 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 18226 - timestamp: 1718967294106 + size: 22347 + timestamp: 1729596103202 - kind: conda name: aws-c-compression - version: 0.2.18 - build: hd73d8db_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.2.18-hd73d8db_7.conda - sha256: c8fabda8233f979f9c5173a5ba5f6482c26e8ac8af55e78550fff27e997e0dbd - md5: b082d6b9a40e41fd27f48786d318e910 + version: 0.2.19 + build: hf20e7d7_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.19-hf20e7d7_4.conda + sha256: 48076dd2faa3e7baef0a4e532555ec46c64a0db897d30b1ee505a2c63e70e5e6 + md5: 7035bf89ef7848fbdd1a0df681651dbd depends: - - __osx >=10.13 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 18245 - timestamp: 1718967218275 + size: 19070 + timestamp: 1729595656962 - kind: conda name: aws-c-compression - version: 0.2.18 - build: he027950_7 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.18-he027950_7.conda - sha256: d4c70b8716e19fe56a563ab858ab7440f41c2dd927687357a44e69f23001126d - md5: 11e5cb0b426772974f6416545baee0ce + version: 0.2.19 + build: hfd083d3_4 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.19-hfd083d3_4.conda + sha256: 46635284267648e2b291b73feaac316a9ab2621cfb1ea37190daabb2226f77e9 + md5: 1fbd6d35286563704d3d121be73cc3b2 depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - libgcc-ng >=12 + - __osx >=11.0 + - aws-c-common >=0.9.31,<0.9.32.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 19271 - timestamp: 1718967071890 + size: 18190 + timestamp: 1729595822426 - kind: conda - name: aws-c-compression - version: 0.2.18 - build: hea5f451_7 - build_number: 7 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.2.18-hea5f451_7.conda - sha256: 76899d3e3c482fdbd49d7844dc03a4ead7b727e8978f79c5e2a569ef80d815e0 - md5: 3834f2ba3431fe21692de035a7b992c1 + name: aws-c-event-stream + version: 0.5.0 + build: h33c80d7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h33c80d7_0.conda + sha256: c5318cdaa132e524e59bda10058b97d804758494ba5617a289b1e3dd1c5f434f + md5: fe41af1ea3a037d48c250f6cbdead72b depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 + - libcxx >=17 license: Apache-2.0 license_family: Apache purls: [] - size: 22658 - timestamp: 1718967658946 + size: 47002 + timestamp: 1729717479380 - kind: conda name: aws-c-event-stream - version: 0.4.2 - build: ha301515_14 - build_number: 14 + version: 0.5.0 + build: h520d0cd_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.4.2-ha301515_14.conda - sha256: 25cf1cef78f8fad7563c17cff484c09bfd5e323abfb5b452bd52a65a82cf1bae - md5: b06d8a8e520ba32d1c0bfcea751b0ca3 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.0-h520d0cd_0.conda + sha256: e74f305a13a59003e9c15efe727df9b32ce4968315c6d8300ae0fc7b425d3bf2 + md5: 8a93e203b167f82eec27d0f6182cb10c depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 54745 - timestamp: 1718996502952 -- kind: conda - name: aws-c-event-stream - version: 0.4.2 - build: ha5205da_14 - build_number: 14 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.4.2-ha5205da_14.conda - sha256: 38fd28ea4f1839a80070d9b29df17182455905a0ed7703f830a0575d6f6bbe79 - md5: 86842567307ff168a4237fe214d99cbc - depends: - - __osx >=10.13 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - libcxx >=16 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 46808 - timestamp: 1718996003884 + size: 54570 + timestamp: 1729717519676 - kind: conda name: aws-c-event-stream - version: 0.4.2 - build: hb72ac1a_14 - build_number: 14 + version: 0.5.0 + build: h72d8268_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.4.2-hb72ac1a_14.conda - sha256: 3d35d94361acaba6f272df690f3d25f62eaccd82e7f33aba7972f60283905fa4 - md5: 64676cc50610171ec66083b82be93e52 - depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 54092 - timestamp: 1718995981240 -- kind: conda - name: aws-c-event-stream - version: 0.4.2 - build: he43e89f_14 - build_number: 14 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.4.2-he43e89f_14.conda - sha256: 74da88265e7ad47edc62160c30cd1e25dff8b5468c0a1e38b1fa04052e348653 - md5: 80418a84df5d4ad87f3a35df31c6398d + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h72d8268_0.conda + sha256: 2b7515d53020bde5a8fcd76c0f0b8cbba396f8482fa879f96c8e6ce914b7aa3a + md5: a2d73df9aa3ab6eafc1c8dc0642d532f depends: - - __osx >=11.0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 + - libgcc >=13 + - libstdcxx >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 47513 - timestamp: 1718996179063 + size: 53685 + timestamp: 1729717317804 - kind: conda name: aws-c-http - version: 0.8.2 - build: h0d3dc49_4 - build_number: 4 + version: 0.8.10 + build: h2b94654_5 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.2-h0d3dc49_4.conda - sha256: 370711c37ade586a02d4151dce5672c8864e17a32bc06e121fb303b27758bf40 - md5: 3943b45176ee92ce8938a3e4a0601a2f + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.8.10-h2b94654_5.conda + sha256: 15eaf8d3617084cac273e00844a092d2797653ce01e5097b1b588ca6afeed585 + md5: e52b9db099b8689dbdca42865edb1677 depends: - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-compression >=0.2.18,<0.2.19.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-compression >=0.2.19,<0.2.20.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 180550 - timestamp: 1719329866132 + size: 182149 + timestamp: 1729625062064 - kind: conda name: aws-c-http - version: 0.8.2 - build: h638bd1a_4 - build_number: 4 + version: 0.8.10 + build: h4a91a90_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.2-h638bd1a_4.conda - sha256: 667cbdfb389b4e4a3bb0f706b01cbdae13a17dbfda79a89cee8e112fbef5d158 - md5: adfd440d1b11273adfb17bf9a1af3350 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.8.10-h4a91a90_5.conda + sha256: 5a6a382998e3f7f91a909d5c0d5faed19ed2b05a8f7334b6dfabcc1b0f72aaec + md5: 8508d0f9a832dba72601771fb1bff339 depends: - __osx >=11.0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-compression >=0.2.18,<0.2.19.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-compression >=0.2.19,<0.2.20.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 151369 - timestamp: 1719329440496 + size: 152140 + timestamp: 1729624809388 - kind: conda name: aws-c-http - version: 0.8.2 - build: had8cc17_4 - build_number: 4 + version: 0.8.10 + build: h6bb76cc_5 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.2-had8cc17_4.conda - sha256: 69381a48e10f469d4d36a6de64e585ddf891ddd01ec3644d8396e1a7528a308f - md5: ccf5df89d5ac0e7812c1bd0023356248 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.8.10-h6bb76cc_5.conda + sha256: 16b2b1c1498c0b1a2143b418e18ec4ccd40e776837f8a176c351aada48b818b5 + md5: 243b3e5ef92b277b04b1490213c21ca7 depends: - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-compression >=0.2.18,<0.2.19.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-compression >=0.2.19,<0.2.20.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 194752 - timestamp: 1719329411586 + size: 197365 + timestamp: 1729624546275 - kind: conda - name: aws-c-http - version: 0.8.2 - build: hf609411_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.8.2-hf609411_4.conda - sha256: 64916072087a874b122293370d0683865554f4fbd3c46a30fded1be5ab47f82b - md5: db8bcad486843bab0ce73a4c51e8988e - depends: - - __osx >=10.13 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-compression >=0.2.18,<0.2.19.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 + name: aws-c-io + version: 0.14.20 + build: h389d861_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.20-h389d861_2.conda + sha256: 1f345fac0112b1a7b34a3c9f7c4952c28080ef793ca188d3a10694091f112c53 + md5: 79adfaf8508472f5fbffe6df841d3d8c + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - libgcc >=13 + - s2n >=1.5.5,<1.5.6.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 163038 - timestamp: 1719329472705 + size: 159514 + timestamp: 1729608940267 - kind: conda name: aws-c-io - version: 0.14.9 - build: h37d6bf3_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.14.9-h37d6bf3_5.conda - sha256: 956af71689342edddd7524ea26b5f5ca8bf07df936ec0266c7d180eafd4de018 - md5: 2a651c0ba059f3da2449b4e03fddf9fb + version: 0.14.20 + build: h5fdde16_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.20-h5fdde16_2.conda + sha256: a7dbeccb720b1afcad782c6f987cb73d3330d0e132f09b0f6b2742d6e80cd68c + md5: 9126fa7621e270452608acd95e21c263 depends: - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - libgcc-ng >=12 - - s2n >=1.4.17,<1.4.18.0a0 + - __osx >=11.0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 157880 - timestamp: 1719652317327 + size: 137534 + timestamp: 1729608966952 - kind: conda name: aws-c-io - version: 0.14.9 - build: h5623c2f_5 - build_number: 5 + version: 0.14.20 + build: he6ac336_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.9-h5623c2f_5.conda - sha256: 66232a7c3d302c79de72a171bfa41f3629bd7011907b08518c3cd0176e458023 - md5: 14086cdca140bf687338ceea9b92e4c6 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.14.20-he6ac336_2.conda + sha256: 0196f3af94e2f8b877bc17a57fcd8e5c5d71b2b0a36d72d4d912b5144d1e096d + md5: 82e070f9e1fa14390ae8697311278e56 depends: - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 159618 - timestamp: 1719652799060 + size: 160844 + timestamp: 1729609288045 - kind: conda - name: aws-c-io - version: 0.14.9 - build: h9f49e27_5 + name: aws-c-mqtt + version: 0.10.7 + build: h5d974fa_5 build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.14.9-h9f49e27_5.conda - sha256: 073354624ed160d65a5cb9ccc4693fb30a50556dda0943359cd3d8edd42d1bd1 - md5: 8b1dafe98eefa86a9f874b30d88b0f06 - depends: - - __osx >=10.13 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.7-h5d974fa_5.conda + sha256: 6420fc5152fc9c2391e6a45c955c8b9bc1ce617b2448015b270d43ce535f3e55 + md5: b5067f12aac99f6d25521621d0adbad5 + depends: + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 137622 - timestamp: 1719652393199 + size: 187007 + timestamp: 1729646194268 - kind: conda - name: aws-c-io - version: 0.14.9 - build: hf0e3e08_5 + name: aws-c-mqtt + version: 0.10.7 + build: had056f2_5 build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.14.9-hf0e3e08_5.conda - sha256: 10158d10734fd0efa0c7ddeac137c2e56cca88c4b92a74b7527ba39888ecb2f7 - md5: e279aef614bea9aa7ddb8f43ae282c18 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.7-had056f2_5.conda + sha256: d2e6e45502253646f9f78e2ac034ff15bc4fd7ae5898707f24f91c3039c8ceda + md5: 575798408145288d75bf0fd36bed5aa1 depends: - - __osx >=11.0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 137789 - timestamp: 1719652444041 + size: 194676 + timestamp: 1729646037940 - kind: conda name: aws-c-mqtt - version: 0.10.4 - build: h80c1ce3_7 - build_number: 7 + version: 0.10.7 + build: hd821a15_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.4-h80c1ce3_7.conda - sha256: b2d6d92a9daed8db9de940b87aae7c699c3e96e723335f2fea4310e2d1486bed - md5: 1c3749103857d0f31826d7f37f9776e9 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.10.7-hd821a15_5.conda + sha256: a9ba03c5f143d0d792261c9b0c2cc500b49e7b617164e090ddcbf5974a0c617a + md5: 8cd5a4acf5aa0d20d30781faaf74d7ad depends: - __osx >=11.0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 118299 - timestamp: 1719010608651 + size: 135540 + timestamp: 1729645603895 - kind: conda - name: aws-c-mqtt - version: 0.10.4 - build: haec3ea0_7 - build_number: 7 + name: aws-c-s3 + version: 0.7.0 + build: h6498dec_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.10.4-haec3ea0_7.conda - sha256: bc508d2ed16560e8a9cfef58bfa4277ff8d58b7f4d4fbaa2910d346961aecba1 - md5: 808ae8d6f1e924ce42419f8f1bdc83a6 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.7.0-h6498dec_0.conda + sha256: 180a0b1f1c023e332da9aeff754efa711199e45a8c6671b7a2270cb823e4d82c + md5: 95022b5de4c50e58072d9d4126eca293 depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 + - aws-c-auth >=0.7.31,<0.7.32.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 157632 - timestamp: 1719011323676 -- kind: conda - name: aws-c-mqtt - version: 0.10.4 - build: hb0abfc5_7 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.10.4-hb0abfc5_7.conda - sha256: 0878b77aa589c09fb4c00d8f383ac564e8908a5ccf39ac48e94fb0c14d7d4379 - md5: b49afe12555befb53150e401d03264b3 - depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 163455 - timestamp: 1719328721605 -- kind: conda - name: aws-c-mqtt - version: 0.10.4 - build: hcc4e2a5_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.10.4-hcc4e2a5_7.conda - sha256: fa609345a28eeebaaa2595f0a572e06e220cc62751a7c8711522ddbb2d6dbce1 - md5: 385617b6f01c4b53e0f223988db1c78e - depends: - - __osx >=10.13 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 138479 - timestamp: 1719010949262 + size: 108908 + timestamp: 1729717587948 - kind: conda name: aws-c-s3 - version: 0.6.0 - build: h11f64d3_0 + version: 0.7.0 + build: hc6bcb7c_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.6.0-h11f64d3_0.conda - sha256: 3c50502ff37e238fc1a773aa80dbd1f3c9f57a10ca025ee85ec9c3987b53f044 - md5: c565526ae0997e4eb1fec3dae61cec99 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.0-hc6bcb7c_0.conda + sha256: a77487a570970d35b63268808e283ff64e4482b3a2a6c641ba0a11dd2a189093 + md5: 1334e8b8532d5b462eba6bfc1cca59a7 depends: - __osx >=11.0 - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 95121 - timestamp: 1719620105818 -- kind: conda - name: aws-c-s3 - version: 0.6.0 - build: h1f67ec3_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.6.0-h1f67ec3_0.conda - sha256: 21e874d3400e9235e5cb5bd6feafa3eb492050a947fd261fce4d9542a5eee54e - md5: 3db1e3d14496117a12851350eafe7c82 - depends: - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - libgcc-ng >=12 - - openssl >=3.3.1,<4.0a0 + - aws-c-auth >=0.7.31,<0.7.32.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 110634 - timestamp: 1719620028487 + size: 96959 + timestamp: 1729717328952 - kind: conda name: aws-c-s3 - version: 0.6.0 - build: h8fdb93b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.6.0-h8fdb93b_0.conda - sha256: 0c3be55a5c433836f9c91cbe4e268af0af9f8af7a449690f35d4ea5f4021439f - md5: cc22bdb00822a498d9d53b5c31048c01 - depends: - - __osx >=10.13 - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 + version: 0.7.0 + build: hc85afc5_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.0-hc85afc5_0.conda + sha256: 4cb865c093e33e5463bccdca1ee0e986d5467507f7e3353076960124e3d19a4c + md5: 7824d1b3e9570ab637f4baf0144cdeaf + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-auth >=0.7.31,<0.7.32.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 96045 - timestamp: 1719620045165 + size: 114367 + timestamp: 1729717110736 - kind: conda - name: aws-c-s3 - version: 0.6.0 - build: hce3953d_0 + name: aws-c-sdkutils + version: 0.1.19 + build: h0da4a7a_6 + build_number: 6 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.6.0-hce3953d_0.conda - sha256: 14e414fedf26893f39bb69d107765eeff8bd7f9c14305452c4659bd5ef51fa4f - md5: 09ffe2c87b98b2854bcda6b3dafe7533 + url: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.19-h0da4a7a_6.conda + sha256: 57bf5d6bb5222b7ae5ad2e93c907897896e61d7b86d6cd6c50b3a9f6fed78196 + md5: 0f10a7213c60389f950cc629f81b8976 depends: - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 106277 - timestamp: 1719620431575 -- kind: conda - name: aws-c-sdkutils - version: 0.1.16 - build: h94d0942_3 - build_number: 3 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.16-h94d0942_3.conda - sha256: 4303f310b156abeca86ea8a4b4c8be5cfb96dd4214c2ebcfeef1bec3fa1dc793 - md5: 1f9dd57e79cf2191ed139491aa460e24 - depends: - - __osx >=11.0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 49180 - timestamp: 1718973550277 + size: 55034 + timestamp: 1729602627714 - kind: conda name: aws-c-sdkutils - version: 0.1.16 - build: hd73d8db_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.1.16-hd73d8db_3.conda - sha256: b944db69a4bf7481362378d81ff634b5eeed88f0b85c6609f195cd68ab3a8948 - md5: 7932c9b2420f0a809ab1b08e2ea53896 + version: 0.1.19 + build: hf20e7d7_6 + build_number: 6 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.19-hf20e7d7_6.conda + sha256: d09020368d88fe8db7c6d7f61c79bc729f3fb0993b1eba9665e9775152c30369 + md5: e5885a040165a8775ea8558058b87555 depends: - - __osx >=10.13 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 49533 - timestamp: 1718973334715 + size: 55815 + timestamp: 1729602473258 - kind: conda name: aws-c-sdkutils - version: 0.1.16 - build: he027950_3 - build_number: 3 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.16-he027950_3.conda - sha256: 0f957d8cebe9c9b4041c858ca9a20619eb3fa866c71b21478a02d51f219d59cb - md5: adbf0c44ca88a3cded175cd809a106b6 + version: 0.1.19 + build: hfd083d3_6 + build_number: 6 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.19-hfd083d3_6.conda + sha256: dac95362fca87b19bdfd13c48266a22d39fee2192a759868a0736d6b29e855e5 + md5: b00b00335e3c5ea91acb2619ecc5d9ce depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - libgcc-ng >=12 + - __osx >=11.0 + - aws-c-common >=0.9.31,<0.9.32.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 54943 - timestamp: 1718973317061 + size: 49775 + timestamp: 1729602625619 - kind: conda - name: aws-c-sdkutils - version: 0.1.16 - build: hea5f451_3 + name: aws-checksums + version: 0.1.20 + build: h0da4a7a_3 build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.1.16-hea5f451_3.conda - sha256: f7f80b7650ce03ca9700b8138df625ad4b2a1c49a20ff555cf0fbd4f4b6faa1b - md5: 367b3cc3a418fca38f7afc47e753c993 + url: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.20-h0da4a7a_3.conda + sha256: 7f432fc5e95bbf8bda6e27beaf114b17e1f1bacf43f1dd4075cdf192f6eaa32b + md5: c0888566951528bbcc1d2180cb9e3341 depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 54072 - timestamp: 1718973704299 + size: 75467 + timestamp: 1729602743839 - kind: conda name: aws-checksums - version: 0.1.18 - build: h94d0942_7 - build_number: 7 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.18-h94d0942_7.conda - sha256: cdd08a5b6b4ebadf05087238987681dc370bd0336ed410d0047171020f160187 - md5: fbd0be30bdd84b6735dfa3d6c5916b2e + version: 0.1.20 + build: hf20e7d7_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.20-hf20e7d7_3.conda + sha256: 7bfd6394646231b0e967e6de27f0cb03587883256e512a22b98fa8203915f0d5 + md5: 8b9d7eb23651b31d4db8b50236be9d25 depends: - - __osx >=11.0 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 49160 - timestamp: 1718973261942 + size: 72880 + timestamp: 1729602448721 - kind: conda name: aws-checksums - version: 0.1.18 - build: hd73d8db_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.1.18-hd73d8db_7.conda - sha256: a4e2dc37e4bbb2d64d1fac29c1d9fbc7c50ad3b5e15ff52e05ae63e8052e54d3 - md5: c3f25d79d4a36a89b3c638a6e3614f28 + version: 0.1.20 + build: hfd083d3_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.20-hfd083d3_3.conda + sha256: 776aaf074ca90d0b9b8f73f4c402ce580a6b30261fdc7a143aca7deb3ca474d3 + md5: cd06e766af6df7063db6cb0ad6bb590b depends: - - __osx >=10.13 - - aws-c-common >=0.9.23,<0.9.24.0a0 + - __osx >=11.0 + - aws-c-common >=0.9.31,<0.9.32.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 49210 - timestamp: 1718973197891 + size: 70091 + timestamp: 1729602726939 - kind: conda - name: aws-checksums - version: 0.1.18 - build: he027950_7 - build_number: 7 + name: aws-crt-cpp + version: 0.29.0 + build: h07ed512_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.18-he027950_7.conda - sha256: 094cff556dbf8fdd60505c8285b0a873de101374f568200275d8fd7fb77ad5e9 - md5: 95611b325a9728ed68b8f7eef2dd3feb + url: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.0-h07ed512_0.conda + sha256: 266b700186acaf5002624f097c52350a1b83dee5ae3e9bf064a7d9b2404a24be + md5: 4122cbb9952f750ef4728df6f3dafcb3 depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - aws-c-auth >=0.7.31,<0.7.32.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-c-mqtt >=0.10.7,<0.10.8.0a0 + - aws-c-s3 >=0.7.0,<0.7.1.0a0 + - aws-c-sdkutils >=0.1.19,<0.1.20.0a0 + - libgcc >=13 + - libstdcxx >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 50220 - timestamp: 1718973002363 + size: 346552 + timestamp: 1729770541326 - kind: conda - name: aws-checksums - version: 0.1.18 - build: hea5f451_7 - build_number: 7 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.1.18-hea5f451_7.conda - sha256: dfb5d5311ca15516739acd30a7cbfc9077a6164ded265a7247fbf52ea774aea2 - md5: 1f9a89bde3856fe9feb32eb05f59f231 + name: aws-crt-cpp + version: 0.29.0 + build: h45f4ed5_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.0-h45f4ed5_0.conda + sha256: 5be298cc2e36920271babf7054013168c7333bd4782dbe0ddc9c340657c7a9cd + md5: 10a7b87e5b99107476b148d27f7345ac depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 + - aws-c-auth >=0.7.31,<0.7.32.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-c-mqtt >=0.10.7,<0.10.8.0a0 + - aws-c-s3 >=0.7.0,<0.7.1.0a0 + - aws-c-sdkutils >=0.1.19,<0.1.20.0a0 + - libcxx >=17 license: Apache-2.0 license_family: Apache purls: [] - size: 52585 - timestamp: 1718973550940 + size: 229280 + timestamp: 1729770878998 - kind: conda name: aws-crt-cpp - version: 0.27.2 - build: h161bee7_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.27.2-h161bee7_0.conda - sha256: 411da26ef2871935e1b05cdab0293599d25bf4e756ce178b1945e9cae05c9537 - md5: 54d7b9caeba1de143ea91dae761e11f6 - depends: - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-mqtt >=0.10.4,<0.10.5.0a0 - - aws-c-s3 >=0.6.0,<0.6.1.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 + version: 0.29.0 + build: hb4a7b61_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.29.0-hb4a7b61_0.conda + sha256: 2f8860f93195d041bce2fb783f7561a99b31b80e24a0b0926ad010c519903a89 + md5: 1a2160c56f9910f683ff6e84a0ecc7b8 + depends: + - aws-c-auth >=0.7.31,<0.7.32.0a0 + - aws-c-cal >=0.7.4,<0.7.5.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-c-http >=0.8.10,<0.8.11.0a0 + - aws-c-io >=0.14.20,<0.14.21.0a0 + - aws-c-mqtt >=0.10.7,<0.10.8.0a0 + - aws-c-s3 >=0.7.0,<0.7.1.0a0 + - aws-c-sdkutils >=0.1.19,<0.1.20.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 254968 - timestamp: 1720070130353 -- kind: conda - name: aws-crt-cpp - version: 0.27.2 - build: h7746516_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.27.2-h7746516_0.conda - sha256: 5584d4febc8179d64b76e6a3831bdf55beb3f4fb602f6d1e1dde873f9ebae109 - md5: 3edacdac85446f8e8b19ddb7f366919c - depends: - - __osx >=10.13 - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-mqtt >=0.10.4,<0.10.5.0a0 - - aws-c-s3 >=0.6.0,<0.6.1.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 - - libcxx >=16 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 292644 - timestamp: 1720069990732 -- kind: conda - name: aws-crt-cpp - version: 0.27.2 - build: hd9c8ee4_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.27.2-hd9c8ee4_0.conda - sha256: babeb9df9290198629ce4236315312721777955026ab71ce0c3459103249554c - md5: f9c5468b84202b89ac5a19748f88660c - depends: - - __osx >=11.0 - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-mqtt >=0.10.4,<0.10.5.0a0 - - aws-c-s3 >=0.6.0,<0.6.1.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 - - libcxx >=16 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 229256 - timestamp: 1720069929988 + size: 255208 + timestamp: 1729770958145 - kind: conda - name: aws-crt-cpp - version: 0.27.2 - build: heffe44f_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.27.2-heffe44f_0.conda - sha256: 3332ea4915514b1649fa0f85920b87fd68882ab642d3e346324a2dc30d4cd5a5 - md5: 6ee0af31304bca1d7406e41d30721db8 - depends: - - __glibc >=2.17,<3.0.a0 - - aws-c-auth >=0.7.22,<0.7.23.0a0 - - aws-c-cal >=0.7.0,<0.7.1.0a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-c-http >=0.8.2,<0.8.3.0a0 - - aws-c-io >=0.14.9,<0.14.10.0a0 - - aws-c-mqtt >=0.10.4,<0.10.5.0a0 - - aws-c-s3 >=0.6.0,<0.6.1.0a0 - - aws-c-sdkutils >=0.1.16,<0.1.17.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + name: aws-sdk-cpp + version: 1.11.407 + build: h0a0d3c4_6 + build_number: 6 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.407-h0a0d3c4_6.conda + sha256: 2991388a278df6ea16ef6029be269dc6de1db3b90fed26b9046db1d347ec2e67 + md5: 0b1563943346dbbe64feba305a28fac7 + depends: + - __osx >=11.0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 344887 - timestamp: 1720069698303 + size: 2717498 + timestamp: 1729832162744 - kind: conda name: aws-sdk-cpp - version: 1.11.329 - build: habc23cd_8 - build_number: 8 + version: 1.11.407 + build: h9c41b47_6 + build_number: 6 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.329-habc23cd_8.conda - sha256: 160e0583ee46bc9eeb0ddcc6053b0c966e510d508085704394063c802278c67d - md5: 9d709ffcc4cfaa5ae35a740084188c5e + url: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.407-h9c41b47_6.conda + sha256: 534bad638e17c88b17c32618b51fe34d0861ad50f7a84e136d48b18723049176 + md5: 29bb91b9dcb9af1a5aa9d657bb325711 depends: - __glibc >=2.17,<3.0.a0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libstdcxx >=13 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 3644476 - timestamp: 1720423565474 + size: 2920673 + timestamp: 1729831505960 - kind: conda name: aws-sdk-cpp - version: 1.11.329 - build: haf7a04e_8 - build_number: 8 + version: 1.11.407 + build: hdc23f3d_6 + build_number: 6 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.329-haf7a04e_8.conda - sha256: 8e2d3148a43083e89a172c86454db019befba50024160c22aeb7de1b27a2bdc8 - md5: 419ecfd2116bcada623b6227a199b627 + url: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.407-hdc23f3d_6.conda + sha256: c20a380d72a8ccd6bdca99f7632de0392c867b6e69fc876649eda6604747f759 + md5: d03e5406e8f8977594807d8d8c620279 depends: - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 + - aws-c-common >=0.9.31,<0.9.32.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-checksums >=0.1.20,<0.1.21.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -8101,420 +6374,278 @@ packages: license: Apache-2.0 license_family: Apache purls: [] - size: 3406879 - timestamp: 1720424767448 -- kind: conda - name: aws-sdk-cpp - version: 1.11.329 - build: haf867cf_8 - build_number: 8 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.329-haf867cf_8.conda - sha256: e5a1fdc4875905a37128a0f01939996f023ea0d52fce5e70620e9e91558869aa - md5: b802184760523a9e0c1c0e8dbb56e2d0 - depends: - - __osx >=11.0 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 3357741 - timestamp: 1720423847154 -- kind: conda - name: aws-sdk-cpp - version: 1.11.329 - build: hce9e41e_8 - build_number: 8 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.329-hce9e41e_8.conda - sha256: f0bfff6e7e705d54c4363ac3a91239da43fff781b6496f028946b5b20a8df17d - md5: 1e9d46fc8971c589be2e5c3ddd7ad736 - depends: - - __osx >=10.13 - - aws-c-common >=0.9.23,<0.9.24.0a0 - - aws-c-event-stream >=0.4.2,<0.4.3.0a0 - - aws-checksums >=0.1.18,<0.1.19.0a0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 3451043 - timestamp: 1720424216566 + size: 2798036 + timestamp: 1729832047260 - kind: conda name: azure-core-cpp - version: 1.12.0 - build: h830ed8b_0 + version: 1.14.0 + build: h5cfcd09_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.12.0-h830ed8b_0.conda - sha256: f76438c1f2a2c6142b344652c9fb93304cf1bb1534521f94c9c30fb9b238f0f5 - md5: 320d066f9cad598854f4af32c7c82931 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.14.0-h5cfcd09_0.conda + sha256: fe07debdb089a3db17f40a7f20d283d75284bb4fc269ef727b8ba6fc93f7cb5a + md5: 0a8838771cc2e985cd295e01ae83baf1 depends: - - libcurl >=8.7.1,<9.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - openssl >=3.3.0,<4.0a0 + - __glibc >=2.17,<3.0.a0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libstdcxx >=13 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT purls: [] - size: 343309 - timestamp: 1715352349052 + size: 345117 + timestamp: 1728053909574 - kind: conda name: azure-core-cpp - version: 1.12.0 + version: 1.14.0 build: haf5610f_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.12.0-haf5610f_0.conda - sha256: 7cf6406f5cfa4d63b1c44909fd4c03fed50142db5a8ac0599524df8efa01169e - md5: 67994861f2ad1b37d1e10f158b7c928f + url: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.14.0-haf5610f_0.conda + sha256: cfa87475993d22a1119f617ab56ae11289809414d0533db942856ed9e27aca11 + md5: 29fefbcaa92a797c0597437a21754c84 depends: - - libcurl >=8.7.1,<9.0a0 + - libcurl >=8.10.1,<9.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 484815 - timestamp: 1715352771226 + size: 490425 + timestamp: 1728054410522 - kind: conda name: azure-core-cpp - version: 1.12.0 - build: hd01fc5c_0 + version: 1.14.0 + build: hd50102c_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.12.0-hd01fc5c_0.conda - sha256: 046435d3502da0f13c13ee6d92d57684624bf18aefc0d84b99d3ed39d034b078 - md5: 2accb43f3af2ebf2dbd127978242c10a + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.14.0-hd50102c_0.conda + sha256: f5b91329ed59ffc0be8747784c6e4cc7e56250c54032883a83bc11808ef6a87e + md5: f093a11dcf3cdcca010b20a818fcc6dc depends: - __osx >=11.0 - - libcurl >=8.7.1,<9.0a0 - - libcxx >=16 - - openssl >=3.3.0,<4.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT purls: [] - size: 295160 - timestamp: 1715352604782 + size: 294299 + timestamp: 1728054014060 - kind: conda - name: azure-core-cpp - version: 1.12.0 - build: hf8dbe3c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/azure-core-cpp-1.12.0-hf8dbe3c_0.conda - sha256: c6ea0cec8d2a6d1cb6c30105f7e99fb8bf3de6cbd8c36dafb972517998725448 - md5: bbe2fcdfbdd6bb570691ea3c814bf0ea - depends: - - __osx >=10.13 - - libcurl >=8.7.1,<9.0a0 - - libcxx >=16 - - openssl >=3.3.0,<4.0a0 + name: azure-identity-cpp + version: 1.10.0 + build: h113e628_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.10.0-h113e628_0.conda + sha256: 286b31616c191486626cb49e9ceb5920d29394b9e913c23adb7eb637629ba4de + md5: 73f73f60854f325a55f1d31459f2ab73 + depends: + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libgcc >=13 + - libstdcxx >=13 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT purls: [] - size: 305101 - timestamp: 1715352440366 + size: 232351 + timestamp: 1728486729511 - kind: conda name: azure-identity-cpp - version: 1.8.0 - build: h0a11218_1 - build_number: 1 + version: 1.10.0 + build: hc602bab_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.8.0-h0a11218_1.conda - sha256: 2e54b5d0bd189f43d93e5d3f93534d360c071a4fa4c9f1c9e17301cb29943d43 - md5: ed8853eaa0ea62cee06025902a46ff17 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.10.0-hc602bab_0.conda + sha256: bde446b916fff5150606f8ed3e6058ffc55a3aa72381e46f1ab346590b1ae40a + md5: d7b71593a937459f2d4b67e1a4727dc2 depends: - __osx >=11.0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - libcxx >=16 - - openssl >=3.3.1,<4.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libcxx >=17 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT purls: [] - size: 145294 - timestamp: 1718986610816 + size: 166907 + timestamp: 1728486882502 - kind: conda name: azure-identity-cpp - version: 1.8.0 - build: h8578521_1 - build_number: 1 + version: 1.10.0 + build: hd6deed7_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.8.0-h8578521_1.conda - sha256: 1afbff8a53b288fe2f5f7421f8c851e717622c4153cfd19c6315bc8e512157d9 - md5: 94d553e22aecb59b2634bc3182a7a462 + url: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.10.0-hd6deed7_0.conda + sha256: 1e33a3ac53db30dd1d6a49dfdfd3e7f67b96faeee0d54025665de18bd565439f + md5: 4bb53530510eb2d983c46abce9bee9e2 depends: - - azure-core-cpp >=1.12.0,<1.12.1.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 372333 - timestamp: 1718986947131 -- kind: conda - name: azure-identity-cpp - version: 1.8.0 - build: h906f3f0_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.8.0-h906f3f0_1.conda - sha256: d6656ddfd349b546105f9b47944f2fe3200601d5fa31e13236b3a248e85faa47 - md5: 710118f53411ec0f8b8832cb52374d72 - depends: - - __osx >=10.13 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - libcxx >=16 - - openssl >=3.3.1,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 152268 - timestamp: 1718986617037 -- kind: conda - name: azure-identity-cpp - version: 1.8.0 - build: hdb0d106_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.8.0-hdb0d106_1.conda - sha256: 87420c137ae4d3e139cace9d9da8d63e6888d206f4eea0082975352d4ee65b14 - md5: a297ffb4b505f51d0f58352c5c13971b - depends: - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - openssl >=3.3.1,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 197711 - timestamp: 1718986423496 + size: 401221 + timestamp: 1728487334019 - kind: conda name: azure-storage-blobs-cpp - version: 12.11.0 - build: h39eb5e7_1 + version: 12.13.0 + build: h3241184_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.11.0-h39eb5e7_1.conda - sha256: a2b14afb4ecbcc3479f972290c06a476cbe9894c8654d87ac11e18cd4bf8e5c8 - md5: 78712b83caedfcadb6c620d7bf7def86 + url: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.13.0-h3241184_1.conda + sha256: 7daae9b73aa785ace6e6b4a701a5c02655ba9724326354cc6171f22f2fbcbd90 + md5: 2e050178dd479163794041ede5c476c7 depends: - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 957365 - timestamp: 1718994459694 + size: 981573 + timestamp: 1728578740233 - kind: conda name: azure-storage-blobs-cpp - version: 12.11.0 - build: h5f32033_1 + version: 12.13.0 + build: h3cf044e_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.11.0-h5f32033_1.conda - sha256: b77b800ff43ed3ef54c78a66e280905244086d8cb5188ba2c04c3b0fb4708528 - md5: ac9d444eda34370acdf088291aeeaf5b + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.13.0-h3cf044e_1.conda + sha256: 2606260e5379eed255bcdc6adc39b93fb31477337bcd911c121fc43cd29bf394 + md5: 7eb66060455c7a47d9dcdbfa9f46579b depends: - - __osx >=10.13 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libgcc >=13 + - libstdcxx >=13 license: MIT license_family: MIT purls: [] - size: 427452 - timestamp: 1718994110504 + size: 549342 + timestamp: 1728578123088 - kind: conda name: azure-storage-blobs-cpp - version: 12.11.0 - build: h77cc766_1 + version: 12.13.0 + build: h7585a09_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.11.0-h77cc766_1.conda - sha256: 390ada2bad5c76b33ef3d2e9e03ee54f7245060a34d6b199117e956301101449 - md5: 817fa040e0458866a658a471abc74c64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.13.0-h7585a09_1.conda + sha256: 08d52d130addc0fb55d5ba10d9fa483e39be25d69bac7f4c676c2c3069207590 + md5: 704238ef05d46144dae2e6b5853df8bc depends: - __osx >=11.0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 - - libcxx >=16 - license: MIT - license_family: MIT - purls: [] - size: 420145 - timestamp: 1718994123570 -- kind: conda - name: azure-storage-blobs-cpp - version: 12.11.0 - build: ha67cba7_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.11.0-ha67cba7_1.conda - sha256: 1dc694bcecdead2dbd871bb3abe5470c4473a7e46cfa39885aec70c230d3c16e - md5: f03bba57b85a5b3ac443a871787fc429 - depends: - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libcxx >=17 license: MIT license_family: MIT purls: [] - size: 522085 - timestamp: 1718993907705 + size: 438636 + timestamp: 1728578216193 - kind: conda name: azure-storage-common-cpp - version: 12.6.0 - build: h0dc8e96_1 + version: 12.8.0 + build: h736e048_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.6.0-h0dc8e96_1.conda - sha256: 8ca1fa9c687825bb8fc6578e6d29569d1a0158361e1f9217e018ab1c0743e9c4 - md5: 91bbe2122324a2044d5d174b493d4670 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.8.0-h736e048_1.conda + sha256: 273475f002b091b66ce7366da04bf164c3732c03f8692ab2ee2d23335b6a82ba + md5: 13de36be8de3ae3f05ba127631599213 depends: - - __osx >=10.13 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libgcc >=13 + - libstdcxx >=13 - libxml2 >=2.12.7,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT purls: [] - size: 116244 - timestamp: 1718986878532 + size: 149312 + timestamp: 1728563338704 - kind: conda name: azure-storage-common-cpp - version: 12.6.0 - build: h7024f69_1 + version: 12.8.0 + build: h9ca1f76_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.6.0-h7024f69_1.conda - sha256: fbf126aad4d98627a32334cdff8e8f0626120a641f424e08d741595d8b6dc8de - md5: e796ec0c1c7486270353910f0683de86 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.8.0-h9ca1f76_1.conda + sha256: 77ab04e8fe5636a2de9c718f72a43645f7502cd208868c8a91ffba385547d585 + md5: 7a187cd7b1445afc80253bb186a607cc depends: - __osx >=11.0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - libcxx >=16 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libcxx >=17 - libxml2 >=2.12.7,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT purls: [] - size: 112303 - timestamp: 1718986939585 + size: 121278 + timestamp: 1728563418777 - kind: conda name: azure-storage-common-cpp - version: 12.6.0 - build: h8578521_1 + version: 12.8.0 + build: hd6deed7_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.6.0-h8578521_1.conda - sha256: 3687f5d8d80c5c9cd6eb96e93c91f808381c2e2455257dfacccd87a74649353c - md5: d8a540d0d6447d27aa04c7e3155cd775 + url: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.8.0-hd6deed7_1.conda + sha256: 433c3f4691682d5ff06453e02a2d631b8dd91fcf3e507094e0718dcb44a8b5c1 + md5: dae51ef526eb277bc350875cd05fbf08 depends: - - azure-core-cpp >=1.12.0,<1.12.1.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 227586 - timestamp: 1718987377230 -- kind: conda - name: azure-storage-common-cpp - version: 12.6.0 - build: he3f277c_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.6.0-he3f277c_1.conda - sha256: 464c687ed110befb4099be88ea69d2d2fd039a428ab6d9575ac9bf88e932dd55 - md5: 8a10bb068b138dd473300b5fe34a1865 - depends: - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libxml2 >=2.12.7,<3.0a0 - - openssl >=3.3.1,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 136709 - timestamp: 1718986773861 + size: 241811 + timestamp: 1728563797953 - kind: conda name: azure-storage-files-datalake-cpp - version: 12.10.0 - build: h29b5301_1 + version: 12.12.0 + build: ha633028_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.10.0-h29b5301_1.conda - sha256: ef222289612266a7e60a968b16921ecf22845e6a8354133f61b6e9c376659c19 - md5: bb35c23b178fc17b9e4458766f91da7f + url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.12.0-ha633028_1.conda + sha256: 5371e4f3f920933bb89b926a85a67f24388227419abd6e99f6086481e5e8d5f2 + md5: 7c1980f89dd41b097549782121a73490 depends: - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libgcc >=13 + - libstdcxx >=13 license: MIT license_family: MIT purls: [] - size: 275723 - timestamp: 1719000071367 + size: 287366 + timestamp: 1728729530295 - kind: conda name: azure-storage-files-datalake-cpp - version: 12.10.0 - build: h64d02d0_1 + version: 12.12.0 + build: hcdd55da_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.10.0-h64d02d0_1.conda - sha256: 593d9d1343ff5ff012264002b9190bc0a7a2a51fb94f54e23b0c54f45153a59b - md5: ddbd1d97fa5a420f5a68384be1079e42 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.12.0-hcdd55da_1.conda + sha256: f48523f8aa0b5b80f45a92f0556b388dd96f44ac2dc2f44a01d08c1822eec97d + md5: c49fbc5233fcbaa86391162ff1adef38 depends: - __osx >=11.0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 - - libcxx >=16 - license: MIT - license_family: MIT - purls: [] - size: 184592 - timestamp: 1719000309622 -- kind: conda - name: azure-storage-files-datalake-cpp - version: 12.10.0 - build: hc1cec4e_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.10.0-hc1cec4e_1.conda - sha256: e632fb435a08ca7d44e7adf5f45aa7128587b36e96bdd6771a051782e6124079 - md5: 9a035eab2cbda7b3e2d2ccc5013e8604 - depends: - - __osx >=10.13 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 - - libcxx >=16 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libcxx >=17 license: MIT license_family: MIT purls: [] - size: 190030 - timestamp: 1719000148151 + size: 196032 + timestamp: 1728729672889 - kind: conda name: babel version: 2.14.0 @@ -8531,26 +6662,26 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/babel?source=conda-forge-mapping + - pkg:pypi/babel?source=hash-mapping size: 7609750 timestamp: 1702422720584 - kind: conda name: backports version: '1.0' - build: pyhd8ed1ab_3 - build_number: 3 + build: pyhd8ed1ab_4 + build_number: 4 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda - sha256: 711602276ae39276cb0faaca6fd0ac851fff0ca17151917569174841ef830bbd - md5: 54ca2e08b3220c148a1d8329c2678e02 + url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + sha256: 31b51537ce7d2ba8b5b3d0095f1813711884304ac1701bc55938ca75f6c82e19 + md5: 67bdebbc334513034826e9b63f769d4c depends: - - python >=2.7 + - python >=3 license: BSD-3-Clause license_family: BSD purls: [] - size: 5950 - timestamp: 1669158729416 + size: 6989 + timestamp: 1722295637981 - kind: conda name: backports.tarfile version: 1.0.0 @@ -8567,26 +6698,26 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/backports-tarfile?source=conda-forge-mapping + - pkg:pypi/backports-tarfile?source=hash-mapping size: 31951 timestamp: 1712700751335 - kind: conda name: beartype - version: 0.18.5 + version: 0.19.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/beartype-0.18.5-pyhd8ed1ab_0.conda - sha256: b68b7db7b849d999c5cc97b831e06a490c3dcb64aad84367c0969139a7a8f844 - md5: 28786996506a2f2dd7819b5f3705f4e4 + url: https://conda.anaconda.org/conda-forge/noarch/beartype-0.19.0-pyhd8ed1ab_0.conda + sha256: b99118bdb935028cb854e107d8aa007522fb02831be64c27f8c29f616e0cd9c0 + md5: 4d35362664efdc0c9de9b685f94ecae3 depends: - python >=3.8 license: MIT license_family: MIT purls: - - pkg:pypi/beartype?source=conda-forge-mapping - size: 766954 - timestamp: 1713735111213 + - pkg:pypi/beartype?source=hash-mapping + size: 855068 + timestamp: 1727502610463 - kind: conda name: beautifulsoup4 version: 4.12.3 @@ -8602,58 +6733,34 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/beautifulsoup4?source=conda-forge-mapping + - pkg:pypi/beautifulsoup4?source=hash-mapping size: 118200 timestamp: 1705564819537 - kind: conda name: binutils_impl_linux-64 - version: '2.40' - build: ha1999f0_7 - build_number: 7 + version: '2.43' + build: h4bf12b8_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-ha1999f0_7.conda - sha256: 230f3136d17fdcf0e6da3a3ae59118570bc18106d79dd29bf2f341338d2a42c4 - md5: 3f840c7ed70a96b5ebde8044b2f36f32 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda + sha256: 267e78990247369b13234bda270f31beb56a600b4851a8244e31dd9ad85b3b17 + md5: cf0c5521ac2a20dfa6c662a4009eeef6 depends: - - ld_impl_linux-64 2.40 hf3520f5_7 + - ld_impl_linux-64 2.43 h712a8e2_2 - sysroot_linux-64 license: GPL-3.0-only license_family: GPL purls: [] - size: 6250821 - timestamp: 1718625666382 -- kind: conda - name: black - version: 24.4.2 - build: py310h2ec42d9_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py310h2ec42d9_0.conda - sha256: a668399c6a935c3ab4d08d9a5d57d78cd186d9422e2ae3d5c2de47d5ecd1c0fd - md5: 7fafa01b8738a4eb0cd87abb692021f0 - depends: - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9 - - platformdirs >=2 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - tomli >=1.1.0 - - typing_extensions >=4.0.1 - license: MIT - license_family: MIT - purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 304013 - timestamp: 1714119868724 + size: 5682777 + timestamp: 1729655371045 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py310h5588dad_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py310h5588dad_0.conda - sha256: a70f22707c5f17c3227230ea4c51ca7ba11fddd0d09a22f0272bf46f82215cf5 - md5: 971b013d585f24095b228363cccab490 + url: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py310h5588dad_0.conda + sha256: ef2dc2c2dc2c3d543d02e4abb571732db3ee9f767e79a634feb531bde012711e + md5: d5a9b55fc55318234680cc348610fb24 depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8667,17 +6774,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 319065 - timestamp: 1714120180710 + - pkg:pypi/black?source=hash-mapping + size: 330286 + timestamp: 1728504291008 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py310hbe9552e_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py310hbe9552e_0.conda - sha256: b83acf3f52eb7fdac37c0bdfe155c93b8f6ee61da39d38eb422a3aff69203b97 - md5: 0f1f6d0cb22f88fca9a0218580091a53 + url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py310hbe9552e_0.conda + sha256: 34382dc011fc3f5689f4db2c8c64505d464bdc16de6f90e1e1d5cba03c53700e + md5: e748e5ef3972fdf03715fe5de560ba97 depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8692,17 +6799,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 303952 - timestamp: 1714119950914 + - pkg:pypi/black?source=hash-mapping + size: 306408 + timestamp: 1728504041163 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py310hff52083_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py310hff52083_0.conda - sha256: 22b31a7272c7ec7d1c9713a0884ea838b9100363d9d8bf525f896bb1c227aee9 - md5: 5c621f729a9e1a3aea616fe355b8d447 + url: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py310hff52083_0.conda + sha256: 4073392248e07cca46c6e16daaf93ba89fe931bb6c65a68f0e4c3bc35972e4fd + md5: deafc5dce4b3c2acbc81d414cf006017 depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8716,17 +6823,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 302679 - timestamp: 1714119719392 + - pkg:pypi/black?source=hash-mapping + size: 305298 + timestamp: 1728503898727 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py311h1ea47a8_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py311h1ea47a8_0.conda - sha256: 82db623c127446bbe2e5f537532ca16da1131d268ab2afe1e50228b6f955214d - md5: 98f26a940a2055ba319faf00d04a6102 + url: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py311h1ea47a8_0.conda + sha256: 8f818b565127c2846b331addd64ad9e7db59f3b413126a4eba5c08e50eca8d13 + md5: 22b6302f1fd44b83c5d659b40dc4fedc depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8738,17 +6845,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 413897 - timestamp: 1714120235176 + - pkg:pypi/black?source=hash-mapping + size: 423352 + timestamp: 1728504147411 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py311h267d04e_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py311h267d04e_0.conda - sha256: 44455977d999d80d760d69069b6fbff6c66eec8f19461f68b6882c61be1be0cf - md5: d898886b3eb420e021805ee4c37e5fc1 + url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py311h267d04e_0.conda + sha256: 70c41af42699e765acb5a027740b97300bf696af22d0406dd26d66cd1aa7959f + md5: 2780798c556604ad91ddeb01e2e3f2ea depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8761,39 +6868,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 397720 - timestamp: 1714119904447 + - pkg:pypi/black?source=hash-mapping + size: 399611 + timestamp: 1728503954546 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py311h38be061_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py311h38be061_0.conda - sha256: b8b6c719a0544e5d79110082260630ec9318b74e29a84833e2f104cb61b5c346 - md5: 046337f3e5c047e7685bd7570980b579 - depends: - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9 - - platformdirs >=2 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 397402 - timestamp: 1714119753522 -- kind: conda - name: black - version: 24.4.2 - build: py311h6eed73b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py311h6eed73b_0.conda - sha256: 6b553bb18ecbb71f3e84b6f5e9b599a3f8915e6927f837150b785b18d9a3763d - md5: abe675ce1312f5f2e42f688aa3c2a2a9 + url: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py311h38be061_0.conda + sha256: fad9bf51c6574af15900a4e1226f45d315fe79a5424f9fc97db35e3f74927e70 + md5: fceab39cec6b08375a81d1406e30ea1e depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8805,17 +6890,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 398964 - timestamp: 1714119810562 + - pkg:pypi/black?source=hash-mapping + size: 398766 + timestamp: 1728503879231 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py312h2e8e312_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/black-24.4.2-py312h2e8e312_0.conda - sha256: e96b5277eee85982ab2a0d2811829d544a8df8a903578ce410f8105049d8daee - md5: 1c22d45c6d43af563cd39c597226922d + url: https://conda.anaconda.org/conda-forge/win-64/black-24.10.0-py312h2e8e312_0.conda + sha256: 64df9c7e1454386b5ec763e82a40062b47e80700b1bc556878b7aa7b659c3ae1 + md5: 6e943a224409da3599a8ec52944e3c15 depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8827,17 +6912,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 407116 - timestamp: 1714120180643 + - pkg:pypi/black?source=hash-mapping + size: 417913 + timestamp: 1728504045145 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py312h7900ff3_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/black-24.4.2-py312h7900ff3_0.conda - sha256: 02e36917e82adf0b2929b6fc35e60d7df224621c2d0b0c5ef819a4fb016e0742 - md5: 777e84c9bef7349c8cee65cffb11f7c4 + url: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py312h7900ff3_0.conda + sha256: 2b4344d18328b3e8fd9b5356f4ee15556779766db8cb21ecf2ff818809773df6 + md5: 2daba153b913b1b901cf61440ad5e019 depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8849,17 +6934,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 387770 - timestamp: 1714119755759 + - pkg:pypi/black?source=hash-mapping + size: 390571 + timestamp: 1728503839694 - kind: conda name: black - version: 24.4.2 + version: 24.10.0 build: py312h81bd7bf_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.4.2-py312h81bd7bf_0.conda - sha256: c78b125ad8e3492836524add8dd757489bf109363bb89ad9b6f86b64e5f6513b - md5: 696163f7d375e2bef948694129470337 + url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.10.0-py312h81bd7bf_0.conda + sha256: 7e0cd77935e68717506469463546365637abf3f73aa597a890cb5f5ef3c75caf + md5: 702d7bf6d22135d3e30811ed9c62bb07 depends: - click >=8.0.0 - mypy_extensions >=0.4.3 @@ -8872,94 +6957,27 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 391658 - timestamp: 1714119953743 -- kind: conda - name: black - version: 24.4.2 - build: py312hb401068_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/black-24.4.2-py312hb401068_0.conda - sha256: ed5cd347f987e1f581e5ccee4cba0a03451bbe6e72d800c636c617a427c48e7a - md5: 22de584e109e98d9ee0ca3820fcff185 - depends: - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9 - - platformdirs >=2 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/black?source=conda-forge-mapping - size: 391969 - timestamp: 1714119854151 -- kind: conda - name: blas - version: '2.122' - build: openblas - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/blas-2.122-openblas.conda - sha256: b195808f2d30cd63361033350531714f01cdb7f106a7c23aba6de9cfc7bef7e5 - md5: 8f99dceaf517820297f993350d24bb5c - depends: - - blas-devel 3.9.0 22_win64_openblas - - libblas 3.9.0 22_win64_openblas - - libcblas 3.9.0 22_win64_openblas - - liblapack 3.9.0 22_win64_openblas - - liblapacke 3.9.0 22_win64_openblas - - m2w64-gcc-libs - - m2w64-gcc-libs-core - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 15990 - timestamp: 1712543021549 -- kind: conda - name: blas-devel - version: 3.9.0 - build: 22_win64_openblas - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/blas-devel-3.9.0-22_win64_openblas.conda - sha256: cf9d5d409e5c324634277a999340cb043767e9be3264f8e04ca8c0c5ac46bf1b - md5: e2eac94fc2a449fe80701b9125c04ea2 - depends: - - libblas 3.9.0 22_win64_openblas - - libcblas 3.9.0 22_win64_openblas - - liblapack 3.9.0 22_win64_openblas - - liblapacke 3.9.0 22_win64_openblas - - openblas 0.3.27.* - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 15322 - timestamp: 1712542844430 + - pkg:pypi/black?source=hash-mapping + size: 392801 + timestamp: 1728503954904 - kind: conda name: bleach - version: 6.1.0 + version: 6.2.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - sha256: 845e77ef495376c5c3c328ccfd746ca0ef1978150cae8eae61a300fe7755fb08 - md5: 0ed9d7c0e9afa7c025807a9a8136ea3e + url: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyhd8ed1ab_0.conda + sha256: 01be7fb5163e7c31356a18c259ddc19a5431b8b974dc65e2427b88c2d30034f3 + md5: 461bcfab8e65c166e297222ae919a2d4 depends: - - packaging - - python >=3.6 - - setuptools - - six >=1.9.0 + - python >=3.9 - webencodings - license: Apache-2.0 + license: Apache-2.0 AND MIT license_family: Apache purls: - - pkg:pypi/bleach?source=conda-forge-mapping - size: 131220 - timestamp: 1696630354218 + - pkg:pypi/bleach?source=hash-mapping + size: 132652 + timestamp: 1730286301829 - kind: conda name: blosc version: 1.21.6 @@ -8980,26 +6998,6 @@ packages: purls: [] size: 33201 timestamp: 1719266149627 -- kind: conda - name: blosc - version: 1.21.6 - build: h7d75f6d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda - sha256: 65e5f5dd3d68ed0d9d35e79d64f8141283cad2b55dcd9a04480ceea0e436aca8 - md5: 3e5669e51737d04f4806dd3e8c424663 - depends: - - __osx >=10.13 - - libcxx >=16 - - libzlib >=1.3.1,<2.0a0 - - lz4-c >=1.9.3,<1.10.0a0 - - snappy >=1.2.0,<1.3.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 47051 - timestamp: 1719266142315 - kind: conda name: blosc version: 1.21.6 @@ -9059,18 +7057,18 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/bmipy?source=conda-forge-mapping + - pkg:pypi/bmipy?source=hash-mapping size: 14075 timestamp: 1698243713437 - kind: conda name: bokeh - version: 3.4.2 + version: 3.6.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.2-pyhd8ed1ab_0.conda - sha256: 33f7fdb46804da0930346ab2b7b1fab1225752b0977f5bf8f4763c4e2c1a824e - md5: e704d0474c0155db9632bd740b6c9d17 + url: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.6.0-pyhd8ed1ab_0.conda + sha256: 6658b1ac45ba1c6a486b0b1eb22235a42435e5b014ec3ca696e41c6fc43761a3 + md5: 6728ca650187933a007b89f00ece4279 depends: - contourpy >=1.2 - jinja2 >=2.9 @@ -9078,16 +7076,16 @@ packages: - packaging >=16.8 - pandas >=1.2 - pillow >=7.1.0 - - python >=3.9 + - python >=3.10 - pyyaml >=3.10 - tornado >=6.2 - xyzservices >=2021.09.1 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/bokeh?source=conda-forge-mapping - size: 4745611 - timestamp: 1719324760487 + - pkg:pypi/bokeh?source=hash-mapping + size: 4519248 + timestamp: 1728932643855 - kind: conda name: branca version: 0.7.2 @@ -9103,479 +7101,342 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/branca?source=conda-forge-mapping + - pkg:pypi/branca?source=hash-mapping size: 28923 timestamp: 1714071906758 - kind: conda name: brotli version: 1.1.0 - build: h0dc2134_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.1.0-h0dc2134_1.conda - sha256: 4bf66d450be5d3f9ebe029b50f818d088b1ef9666b1f19e90c85479c77bbdcde - md5: 9272dd3b19c4e8212f8542cefd5c3d67 + build: h2466b09_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-h2466b09_2.conda + sha256: d8fd7d1b446706776117d2dcad1c0289b9f5e1521cb13405173bad38568dd252 + md5: 378f1c9421775dfe644731cb121c8979 depends: - - brotli-bin 1.1.0 h0dc2134_1 - - libbrotlidec 1.1.0 h0dc2134_1 - - libbrotlienc 1.1.0 h0dc2134_1 + - brotli-bin 1.1.0 h2466b09_2 + - libbrotlidec 1.1.0 h2466b09_2 + - libbrotlienc 1.1.0 h2466b09_2 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 19530 - timestamp: 1695990310168 + size: 19697 + timestamp: 1725268293988 - kind: conda name: brotli version: 1.1.0 - build: hb547adb_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hb547adb_1.conda - sha256: 62d1587deab752fcee07adc371eb20fcadc09f72c0c85399c22b637ca858020f - md5: a33aa58d448cbc054f887e39dd1dfaea + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb9d3cd8_2.conda + sha256: fcb0b5b28ba7492093e54f3184435144e074dfceab27ac8e6a9457e736565b0b + md5: 98514fe74548d768907ce7a13f680e8f depends: - - brotli-bin 1.1.0 hb547adb_1 - - libbrotlidec 1.1.0 hb547adb_1 - - libbrotlienc 1.1.0 hb547adb_1 + - __glibc >=2.17,<3.0.a0 + - brotli-bin 1.1.0 hb9d3cd8_2 + - libbrotlidec 1.1.0 hb9d3cd8_2 + - libbrotlienc 1.1.0 hb9d3cd8_2 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 19506 - timestamp: 1695990588610 + size: 19264 + timestamp: 1725267697072 - kind: conda name: brotli version: 1.1.0 - build: hcfcfb64_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hcfcfb64_1.conda - sha256: b927c95121c5f3d82fe084730281739fb04621afebf2d9f05711a0f42d27e326 - md5: f47f6db2528e38321fb00ae31674c133 + build: hd74edd7_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.1.0-hd74edd7_2.conda + sha256: a086f36ff68d6e30da625e910547f6211385246fb2474b144ac8c47c32254576 + md5: 215e3dc8f2f837906d066e7f01aa77c0 depends: - - brotli-bin 1.1.0 hcfcfb64_1 - - libbrotlidec 1.1.0 hcfcfb64_1 - - libbrotlienc 1.1.0 hcfcfb64_1 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 + - brotli-bin 1.1.0 hd74edd7_2 + - libbrotlidec 1.1.0 hd74edd7_2 + - libbrotlienc 1.1.0 hd74edd7_2 license: MIT license_family: MIT purls: [] - size: 19772 - timestamp: 1695990547936 + size: 19588 + timestamp: 1725268044856 - kind: conda - name: brotli + name: brotli-bin version: 1.1.0 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda - sha256: f2d918d351edd06c55a6c2d84b488fe392f85ea018ff227daac07db22b408f6b - md5: f27a24d46e3ea7b70a1f98e50c62508f + build: h2466b09_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-h2466b09_2.conda + sha256: f3bf2893613540ac256c68f211861c4de618d96291719e32178d894114ac2bc2 + md5: d22534a9be5771fc58eb7564947f669d depends: - - brotli-bin 1.1.0 hd590300_1 - - libbrotlidec 1.1.0 hd590300_1 - - libbrotlienc 1.1.0 hd590300_1 - - libgcc-ng >=12 + - libbrotlidec 1.1.0 h2466b09_2 + - libbrotlienc 1.1.0 h2466b09_2 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 19383 - timestamp: 1695990069230 + size: 20837 + timestamp: 1725268270219 - kind: conda name: brotli-bin version: 1.1.0 - build: h0dc2134_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_1.conda - sha256: 7ca3cfb4c5df314ed481301335387ab2b2ee651e2c74fbb15bacc795c664a5f1 - md5: ece565c215adcc47fc1db4e651ee094b + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb9d3cd8_2.conda + sha256: 261364d7445513b9a4debc345650fad13c627029bfc800655a266bf1e375bc65 + md5: c63b5e52939e795ba8d26e35d767a843 depends: - - libbrotlidec 1.1.0 h0dc2134_1 - - libbrotlienc 1.1.0 h0dc2134_1 + - __glibc >=2.17,<3.0.a0 + - libbrotlidec 1.1.0 hb9d3cd8_2 + - libbrotlienc 1.1.0 hb9d3cd8_2 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 16660 - timestamp: 1695990286737 + size: 18881 + timestamp: 1725267688731 - kind: conda name: brotli-bin version: 1.1.0 - build: hb547adb_1 - build_number: 1 + build: hd74edd7_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hb547adb_1.conda - sha256: 8fbfc2834606292016f2faffac67deea4c5cdbc21a61169f0b355e1600105a24 - md5: 990d04f8c017b1b77103f9a7730a5f12 + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.1.0-hd74edd7_2.conda + sha256: 28f1af63b49fddf58084fb94e5512ad46e9c453eb4be1d97449c67059e5b0680 + md5: b8512db2145dc3ae8d86cdc21a8d421e depends: - - libbrotlidec 1.1.0 hb547adb_1 - - libbrotlienc 1.1.0 hb547adb_1 + - __osx >=11.0 + - libbrotlidec 1.1.0 hd74edd7_2 + - libbrotlienc 1.1.0 hd74edd7_2 license: MIT license_family: MIT purls: [] - size: 17001 - timestamp: 1695990551239 + size: 16772 + timestamp: 1725268026061 - kind: conda - name: brotli-bin + name: brotli-python version: 1.1.0 - build: hcfcfb64_1 - build_number: 1 + build: py310h9e98ed7_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hcfcfb64_1.conda - sha256: 4fbcb8f94acc97b2b04adbc64e304acd7c06fa0cf01953527bddae46091cc942 - md5: 0105229d7c5fabaa840043a86c10ec64 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py310h9e98ed7_2.conda + sha256: 1b7893a07f2323410b09b63b4627103efa86163be835ac94966333b37741cdc7 + md5: 3a10a1d0cf3ece273195f26191fd6cc6 depends: - - libbrotlidec 1.1.0 hcfcfb64_1 - - libbrotlienc 1.1.0 hcfcfb64_1 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 + constrains: + - libbrotlicommon 1.1.0 h2466b09_2 license: MIT license_family: MIT - purls: [] - size: 20885 - timestamp: 1695990517506 + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 321576 + timestamp: 1725268612274 - kind: conda - name: brotli-bin + name: brotli-python version: 1.1.0 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda - sha256: a641abfbaec54f454c8434061fffa7fdaa9c695e8a5a400ed96b4f07c0c00677 - md5: 39f910d205726805a958da408ca194ba + build: py310hb4ad77e_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py310hb4ad77e_2.conda + sha256: a824cc3da3975a2812fac81a53902c07c5cf47d9dd344b783ff4401894de851f + md5: 3117b40143698e1afd17bca69f04e2d9 depends: - - libbrotlidec 1.1.0 hd590300_1 - - libbrotlienc 1.1.0 hd590300_1 - - libgcc-ng >=12 - license: MIT - license_family: MIT - purls: [] - size: 18980 - timestamp: 1695990054140 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py310h00ffb61_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py310h00ffb61_1.conda - sha256: 8de77cf62a653dd6ffe19927b92c421f5fa73c078d7799181f5211a1bac2883b - md5: 42bfbc1d41cbe2696a3c9d8b0342324f - depends: - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - constrains: - - libbrotlicommon 1.1.0 hcfcfb64_1 - license: MIT - license_family: MIT - purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 321672 - timestamp: 1695990897641 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py310h1253130_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py310h1253130_1.conda - sha256: dab21e18c0275bfd93a09b751096998485677ed17c2e2d08298bc5b43c10bee1 - md5: 26fab7f65a80fff9f402ec3b7860b88a - depends: - - libcxx >=15.0.7 + - __osx >=11.0 + - libcxx >=17 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 constrains: - - libbrotlicommon 1.1.0 hb547adb_1 - license: MIT - license_family: MIT - purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 344275 - timestamp: 1695990848681 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py310h9e9d8ca_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py310h9e9d8ca_1.conda - sha256: 57d66ca3e072b889c94cfaf56eb7e1794d3b1b3179bd475a4edef50a03359354 - md5: 2362e323293e7699cf1e621d502f86d6 - depends: - - libcxx >=15.0.7 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - constrains: - - libbrotlicommon 1.1.0 h0dc2134_1 + - libbrotlicommon 1.1.0 hd74edd7_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 367037 - timestamp: 1695990378635 + - pkg:pypi/brotli?source=hash-mapping + size: 339329 + timestamp: 1725268335778 - kind: conda name: brotli-python version: 1.1.0 - build: py310hc6cd4ac_1 - build_number: 1 + build: py310hf71b8c6_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda - sha256: e22268d81905338570786921b3def88e55f9ed6d0ccdd17d9fbae31a02fbef69 - md5: 1f95722c94f00b69af69a066c7433714 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hf71b8c6_2.conda + sha256: 14f1e89d3888d560a553f40ac5ba83e4435a107552fa5b2b2029a7472554c1ef + md5: bf502c169c71e3c6ac0d6175addfacc2 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 constrains: - - libbrotlicommon 1.1.0 hd590300_1 - license: MIT - license_family: MIT - purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 349397 - timestamp: 1695990295884 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py311h12c1d0e_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py311h12c1d0e_1.conda - sha256: 5390e1e5e8e159d4893ecbfd2c08ca75ef51bdce1a4a44ff4ee9e2d596004aac - md5: 42fbf4e947c17ea605e6a4d7f526669a - depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - constrains: - - libbrotlicommon 1.1.0 hcfcfb64_1 + - libbrotlicommon 1.1.0 hb9d3cd8_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 322086 - timestamp: 1695990976742 + - pkg:pypi/brotli?source=hash-mapping + size: 349668 + timestamp: 1725267875087 - kind: conda name: brotli-python version: 1.1.0 - build: py311ha891d26_1 - build_number: 1 + build: py311h3f08180_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py311ha891d26_1.conda - sha256: 2d78c79ccf2c17236c52ef217a4c34b762eb7908a6903d94439f787aac1c8f4b - md5: 5e802b015e33447d1283d599d21f052b + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda + sha256: f507d65e740777a629ceacb062c768829ab76fde01446b191699a734521ecaad + md5: c8793a23206344faa25f4e0b5d0e7908 depends: - - libcxx >=15.0.7 + - __osx >=11.0 + - libcxx >=17 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 constrains: - - libbrotlicommon 1.1.0 hb547adb_1 + - libbrotlicommon 1.1.0 hd74edd7_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 343332 - timestamp: 1695991223439 + - pkg:pypi/brotli?source=hash-mapping + size: 339584 + timestamp: 1725268241628 - kind: conda name: brotli-python version: 1.1.0 - build: py311hb755f60_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hb755f60_1.conda - sha256: 559093679e9fdb6061b7b80ca0f9a31fe6ffc213f1dae65bc5c82e2cd1a94107 - md5: cce9e7c3f1c307f2a5fb08a2922d6164 + build: py311hda3d55a_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda + sha256: aa3ac5dbf63db2f145235708973c626c2189ee4040d769fdf0076286fa45dc26 + md5: a0ea2839841a06740a1c110ba3317b42 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - - libbrotlicommon 1.1.0 hd590300_1 + - libbrotlicommon 1.1.0 h2466b09_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 351340 - timestamp: 1695990160360 + - pkg:pypi/brotli?source=hash-mapping + size: 322114 + timestamp: 1725268368720 - kind: conda name: brotli-python version: 1.1.0 - build: py311hdf8f085_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py311hdf8f085_1.conda - sha256: 0f5e0a7de58006f349220365e32db521a1fe494c37ee455e5ecf05b8fe567dcc - md5: 546fdccabb90492fbaf2da4ffb78f352 + build: py311hfdbb021_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda + sha256: 949913bbd1f74d1af202d3e4bff2e0a4e792ec00271dc4dd08641d4221aa2e12 + md5: d21daab070d76490cb39a8f1d1729d79 depends: - - libcxx >=15.0.7 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 constrains: - - libbrotlicommon 1.1.0 h0dc2134_1 - license: MIT - license_family: MIT - purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 366864 - timestamp: 1695990449997 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py312h30efb56_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda - sha256: b68706698b6ac0d31196a8bcb061f0d1f35264bcd967ea45e03e108149a74c6f - md5: 45801a89533d3336a365284d93298e36 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - constrains: - - libbrotlicommon 1.1.0 hd590300_1 + - libbrotlicommon 1.1.0 hb9d3cd8_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 350604 - timestamp: 1695990206327 + - pkg:pypi/brotli?source=hash-mapping + size: 350367 + timestamp: 1725267768486 - kind: conda name: brotli-python version: 1.1.0 - build: py312h53d5487_1 - build_number: 1 + build: py312h275cf98_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h53d5487_1.conda - sha256: 769e276ecdebf86f097786cbde1ebd11e018cd6cd838800995954fe6360e0797 - md5: d01a6667b99f0e8ad4097af66c938e62 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_2.conda + sha256: f83baa6f6bcba7b73f6921d5c1aa95ffc5d8b246ade933ade79250de0a4c9c4c + md5: a99aec1ac46794a5fb1cd3cf5d2b6110 depends: - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - libbrotlicommon 1.1.0 hcfcfb64_1 + - libbrotlicommon 1.1.0 h2466b09_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 322514 - timestamp: 1695991054894 + - pkg:pypi/brotli?source=hash-mapping + size: 321874 + timestamp: 1725268491976 - kind: conda name: brotli-python version: 1.1.0 - build: py312h9f69965_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312h9f69965_1.conda - sha256: 3418b1738243abba99e931c017b952771eeaa1f353c07f7d45b55e83bb74fcb3 - md5: 1bc01b9ffdf42beb1a9fe4e9222e0567 + build: py312h2ec8cdc_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + sha256: f2a59ccd20b4816dea9a2a5cb917eb69728271dbf1aeab4e1b7e609330a50b6f + md5: b0b867af6fc74b2a0aa206da29c0f3cf depends: - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 constrains: - - libbrotlicommon 1.1.0 hb547adb_1 + - libbrotlicommon 1.1.0 hb9d3cd8_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 343435 - timestamp: 1695990731924 + - pkg:pypi/brotli?source=hash-mapping + size: 349867 + timestamp: 1725267732089 - kind: conda name: brotli-python version: 1.1.0 - build: py312heafc425_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312heafc425_1.conda - sha256: fc55988f9bc05a938ea4b8c20d6545bed6e9c6c10aa5147695f981136ca894c1 - md5: a288b88f06b8bfe0dedaf5c4b6ac6b7a + build: py312hde4cb15_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda + sha256: 254b411fa78ccc226f42daf606772972466f93e9bc6895eabb4cfda22f5178af + md5: a83c2ef76ccb11bc2349f4f17696b15d depends: - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 + - __osx >=11.0 + - libcxx >=17 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - - libbrotlicommon 1.1.0 h0dc2134_1 + - libbrotlicommon 1.1.0 hd74edd7_2 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=conda-forge-mapping - size: 366883 - timestamp: 1695990710194 -- kind: conda - name: build - version: 0.7.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/build-0.7.0-pyhd8ed1ab_0.tar.bz2 - sha256: 44e2d3270209d1f10b8adec2a159699ed66914e851ec34775902e856ea04afeb - md5: add7f31586d03678695b32b78a1337a1 - depends: - - importlib-metadata - - packaging - - pep517 >=0.9.1 - - python >=3.6 - - tomli - license: MIT - license_family: MIT - purls: - - pkg:pypi/build?source=conda-forge-mapping - size: 17759 - timestamp: 1631843776429 -- kind: conda - name: bzip2 - version: 1.0.8 - build: h10d778d_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - sha256: 61fb2b488928a54d9472113e1280b468a309561caa54f33825a3593da390b242 - md5: 6097a6ca9ada32699b5fc4312dd6ef18 - license: bzip2-1.0.6 - license_family: BSD - purls: [] - size: 127885 - timestamp: 1699280178474 -- kind: conda - name: bzip2 - version: 1.0.8 - build: h93a5062_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - sha256: bfa84296a638bea78a8bb29abc493ee95f2a0218775642474a840411b950fe5f - md5: 1bbc659ca658bfd49a481b5ef7a0f40f - license: bzip2-1.0.6 - license_family: BSD - purls: [] - size: 122325 - timestamp: 1699280294368 + - pkg:pypi/brotli?source=hash-mapping + size: 339360 + timestamp: 1725268143995 - kind: conda name: bzip2 version: 1.0.8 - build: hcfcfb64_5 - build_number: 5 + build: h2466b09_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - sha256: ae5f47a5c86fd6db822931255dcf017eb12f60c77f07dc782ccb477f7808aab2 - md5: 26eb8ca6ea332b675e11704cce84a3be + url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b + md5: 276e7ffe9ffe39688abc665ef0f45596 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -9583,58 +7444,49 @@ packages: license: bzip2-1.0.6 license_family: BSD purls: [] - size: 124580 - timestamp: 1699280668742 + size: 54927 + timestamp: 1720974860185 - kind: conda name: bzip2 version: 1.0.8 - build: hd590300_5 - build_number: 5 + build: h4bc722e_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8 - md5: 69b8b6202a07720f448be700e300ccf4 + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 license: bzip2-1.0.6 license_family: BSD purls: [] - size: 254228 - timestamp: 1699279927352 -- kind: conda - name: c-ares - version: 1.28.1 - build: h10d778d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.28.1-h10d778d_0.conda - sha256: fccd7ad7e3dfa6b19352705b33eb738c4c55f79f398e106e6cf03bab9415595a - md5: d5eb7992227254c0e9a0ce71151f0079 - license: MIT - license_family: MIT - purls: [] - size: 152607 - timestamp: 1711819681694 + size: 252783 + timestamp: 1720974456583 - kind: conda - name: c-ares - version: 1.28.1 - build: h93a5062_0 + name: bzip2 + version: 1.0.8 + build: h99b78c6_7 + build_number: 7 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - sha256: 2fc553d7a75e912efbdd6b82cd7916cc9cb2773e6cd873b77e02d631dd7be698 - md5: 04f776a6139f7eafc2f38668570eb7db - license: MIT - license_family: MIT + url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + sha256: adfa71f158cbd872a36394c56c3568e6034aa55c623634b37a4836bd036e6b91 + md5: fc6948412dbbbe9a4c9ddbbcfe0a79ab + depends: + - __osx >=11.0 + license: bzip2-1.0.6 + license_family: BSD purls: [] - size: 150488 - timestamp: 1711819630164 + size: 122909 + timestamp: 1720974522888 - kind: conda name: c-ares - version: 1.28.1 - build: hcfcfb64_0 + version: 1.34.2 + build: h2466b09_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.28.1-hcfcfb64_0.conda - sha256: 44ded34fdac46d4a37942c1cae3fc871dc6ecb13e0408442c6f8797671b332e6 - md5: 3b2a518680f790a79a7e77bad1861c3a + url: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.2-h2466b09_0.conda + sha256: 5b7a6bb814bc2df92c0c08d7f2f63ae5bc4d71efdc6131130bdc230a8db936fc + md5: 6fcf481938188279f28757a4814a4b73 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -9642,71 +7494,75 @@ packages: license: MIT license_family: MIT purls: [] - size: 159060 - timestamp: 1711820066438 + size: 192859 + timestamp: 1729006899124 - kind: conda name: c-ares - version: 1.28.1 - build: hd590300_0 + version: 1.34.2 + build: h7ab814d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda + sha256: 24d53d27397f9c2f0c168992690b5ec1bd62593fb4fc1f1e906ab91b10fd06c3 + md5: 8a8cfc11064b521bc54bd2d8591cb137 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 177487 + timestamp: 1729006763496 +- kind: conda + name: c-ares + version: 1.34.2 + build: heb4867d_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - sha256: cb25063f3342149c7924b21544109696197a9d774f1407567477d4f3026bf38a - md5: dcde58ff9a1f30b0037a2315d1846d1f + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda + sha256: c2a515e623ac3e17a56027c06098fbd5ab47afefefbd386b4c21289f2ec55139 + md5: 2b780c0338fc0ffa678ac82c54af51fd depends: - - libgcc-ng >=12 + - __glibc >=2.28,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 168875 - timestamp: 1711819445938 + size: 205797 + timestamp: 1729006575652 - kind: conda name: ca-certificates - version: 2024.7.4 + version: 2024.8.30 build: h56e8100_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.7.4-h56e8100_0.conda - sha256: 7f37bb33c7954de1b4d19ad622859feb4f6c58f751c38b895524cad4e44af72e - md5: 9caa97c9504072cd060cf0a3142cc0ed - license: ISC - purls: [] - size: 154943 - timestamp: 1720077592592 -- kind: conda - name: ca-certificates - version: 2024.7.4 - build: h8857fd0_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.7.4-h8857fd0_0.conda - sha256: d16f46c489cb3192305c7d25b795333c5fc17bb0986de20598ed519f8c9cc9e4 - md5: 7df874a4b05b2d2b82826190170eaa0f + url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + sha256: 0fcac3a7ffcc556649e034a1802aedf795e64227eaa7194d207b01eaf26454c4 + md5: 4c4fd67c18619be5aa65dc5b6c72e490 license: ISC purls: [] - size: 154473 - timestamp: 1720077510541 + size: 158773 + timestamp: 1725019107649 - kind: conda name: ca-certificates - version: 2024.7.4 + version: 2024.8.30 build: hbcca054_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda - sha256: c1548a3235376f464f9931850b64b02492f379b2f2bb98bc786055329b080446 - md5: 23ab7665c5f63cfb9f1f6195256daac6 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + sha256: afee721baa6d988e27fef1832f68d6f32ac8cc99cdf6015732224c2841a09cea + md5: c27d1c142233b5bc9ca570c6e2e0c244 license: ISC purls: [] - size: 154853 - timestamp: 1720077432978 + size: 159003 + timestamp: 1725018903918 - kind: conda name: ca-certificates - version: 2024.7.4 + version: 2024.8.30 build: hf0a4a13_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.7.4-hf0a4a13_0.conda - sha256: 33a61116dae7f369b6ce92a7f2a1ff361ae737c675a493b11feb5570b89e0e3b - md5: 21f9a33e5fe996189e470c19c5354dbe + url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + sha256: 2db1733f4b644575dbbdd7994a8f338e6ef937f5ebdb74acd557e9dda0211709 + md5: 40dec13fd8348dbe303e57be74bd3d35 license: ISC purls: [] - size: 154517 - timestamp: 1720077468981 + size: 158482 + timestamp: 1725019034582 - kind: conda name: cached-property version: 1.5.2 @@ -9721,8 +7577,7 @@ packages: - cached_property >=1.5.2,<1.5.3.0a0 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/cached-property?source=conda-forge-mapping + purls: [] size: 4134 timestamp: 1615209571450 - kind: conda @@ -9740,24 +7595,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cached-property?source=conda-forge-mapping + - pkg:pypi/cached-property?source=hash-mapping size: 11065 timestamp: 1615209567874 - kind: conda name: cairo version: 1.18.0 - build: h91e5215_2 - build_number: 2 + build: h32b962e_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h91e5215_2.conda - sha256: 89568f4f6844c8c195457fbb2ce39acd9a727be4daadebc2464455db2fda143c - md5: 7a0b2818b003bd79106c29f55126d2c3 + url: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.0-h32b962e_3.conda + sha256: 127101c9c2d1a56f8791c19141ceff13fd1d1a1da28cfaca549dc99d210cec6a + md5: 8f43723a4925c51e55c2d81725a97db4 depends: - fontconfig >=2.14.2,<3.0a0 - fonts-conda-ecosystem - freetype >=2.12.1,<3.0a0 - - icu >=73.2,<74.0a0 - - libglib >=2.80.2,<3.0a0 + - icu >=75.1,<76.0a0 + - libglib >=2.80.3,<3.0a0 - libpng >=1.6.43,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 - pixman >=0.43.4,<1.0a0 @@ -9767,52 +7622,53 @@ packages: - zlib license: LGPL-2.1-only or MPL-1.1 purls: [] - size: 1519852 - timestamp: 1718986279087 + size: 1516680 + timestamp: 1721139332360 - kind: conda name: cairo version: 1.18.0 - build: h9f650ed_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.0-h9f650ed_2.conda - sha256: 1d2480538838cf5009df0285a73aa405798bc49de0c689ab270f543f5ae961aa - md5: d264e5b9759cab8d203cdfe43eabd8b5 + build: hb4a6bf7_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hb4a6bf7_3.conda + sha256: f7603b7f6ee7c6e07c23d77302420194f4ec1b8e8facfff2b6aab17c7988a102 + md5: 08bd0752f3de8a2d8a35fd012f09531f depends: - - __osx >=10.13 + - __osx >=11.0 - fontconfig >=2.14.2,<3.0a0 - fonts-conda-ecosystem - freetype >=2.12.1,<3.0a0 - - icu >=73.2,<74.0a0 + - icu >=75.1,<76.0a0 - libcxx >=16 - - libglib >=2.80.2,<3.0a0 + - libglib >=2.80.3,<3.0a0 - libpng >=1.6.43,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 - pixman >=0.43.4,<1.0a0 - zlib license: LGPL-2.1-only or MPL-1.1 purls: [] - size: 886028 - timestamp: 1718985776278 + size: 899126 + timestamp: 1721139203735 - kind: conda name: cairo version: 1.18.0 - build: hbb29018_2 - build_number: 2 + build: hebfffa5_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hbb29018_2.conda - sha256: 51cfaf4669ad83499b3da215b915c503d36faf6edf6db4681a70b5710842a86c - md5: b6d90276c5aee9b4407dd94eb0cd40a8 + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-hebfffa5_3.conda + sha256: aee5b9e6ef71cdfb2aee9beae3ea91910ca761c01c0ef32052e3f94a252fa173 + md5: fceaedf1cdbcb02df9699a0d9b005292 depends: + - __glibc >=2.17,<3.0.a0 - fontconfig >=2.14.2,<3.0a0 - fonts-conda-ecosystem - freetype >=2.12.1,<3.0a0 - - icu >=73.2,<74.0a0 + - icu >=75.1,<76.0a0 - libgcc-ng >=12 - - libglib >=2.80.2,<3.0a0 + - libglib >=2.80.3,<3.0a0 - libpng >=1.6.43,<1.7.0a0 - libstdcxx-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.16,<2.0.0a0 - libzlib >=1.3.1,<2.0a0 - pixman >=0.43.2,<1.0a0 - xorg-libice >=1.1.1,<2.0a0 @@ -9823,33 +7679,8 @@ packages: - zlib license: LGPL-2.1-only or MPL-1.1 purls: [] - size: 984224 - timestamp: 1718985592664 -- kind: conda - name: cairo - version: 1.18.0 - build: hc6c324b_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.0-hc6c324b_2.conda - sha256: 7cb330f41fd5abd3d2444a62c0439af8b11c96497aa2f87d76a5b580edf6d35c - md5: 6efeefcad878c15377f49f64e2cbf232 - depends: - - __osx >=11.0 - - fontconfig >=2.14.2,<3.0a0 - - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=73.2,<74.0a0 - - libcxx >=16 - - libglib >=2.80.2,<3.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libzlib >=1.3.1,<2.0a0 - - pixman >=0.43.4,<1.0a0 - - zlib - license: LGPL-2.1-only or MPL-1.1 - purls: [] - size: 898820 - timestamp: 1718985829269 + size: 983604 + timestamp: 1721138900054 - kind: conda name: ceres-solver version: 2.2.0 @@ -9878,183 +7709,143 @@ packages: - kind: conda name: ceres-solver version: 2.2.0 - build: h337fa08_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ceres-solver-2.2.0-h337fa08_3.conda - sha256: 3489ad9960b7b0ea16e55a041addbe6f3d37851f4ca5f74b0907e27379e79717 - md5: 00c7c5f70bcf320dda54720fd42c109c - depends: - - __osx >=10.13 - - eigen - - gflags >=2.2.2,<2.3.0a0 - - glog >=0.7.0,<0.8.0a0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - - liblapack >=3.9.0,<4.0a0 - - suitesparse >=7.7.0,<8.0a0 - - tbb - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 1410706 - timestamp: 1715070745764 -- kind: conda - name: ceres-solver - version: 2.2.0 - build: h4929e67_3 - build_number: 3 + build: h4929e67_4 + build_number: 4 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ceres-solver-2.2.0-h4929e67_3.conda - sha256: 49f3a63bd331404e24db5787f5b4638592450fc6bb98b81efcbfaa8498aab559 - md5: 7cd578bb796b98e41535156563559702 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ceres-solver-2.2.0-h4929e67_4.conda + sha256: 2adcf2af4062e26a6453d8ca6dd26556fc4415a62c9c8e140060a196aed8e568 + md5: eeb98a6f1b1505bda5d74ff032d8a67f depends: - __osx >=11.0 - eigen - gflags >=2.2.2,<2.3.0a0 - - glog >=0.7.0,<0.8.0a0 + - glog >=0.7.1,<0.8.0a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 - liblapack >=3.9.0,<4.0a0 - - suitesparse >=7.7.0,<8.0a0 + - suitesparse >=7.8.1,<8.0a0 - tbb license: BSD-3-Clause license_family: BSD purls: [] - size: 1261779 - timestamp: 1715071701020 + size: 1252234 + timestamp: 1723982895964 - kind: conda name: ceres-solver version: 2.2.0 - build: hfae76b8_3 - build_number: 3 + build: ha77e7a2_4 + build_number: 4 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-hfae76b8_3.conda - sha256: c23a6eb2012044f9e3e637c05b6581ba343c958ef8a597d6cbf3f5f46912a98d - md5: f73763890eb0e54b7aeea81880f53fb1 + url: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-ha77e7a2_4.conda + sha256: c965c5bbaf02987fa7fed38e5e8ab3a80be5ce488185beed8938337e240fd2b7 + md5: 3f9a0bc76226edcf3acd5c194802287d depends: + - __glibc >=2.17,<3.0.a0 - eigen - gflags >=2.2.2,<2.3.0a0 - - glog >=0.7.0,<0.8.0a0 + - glog >=0.7.1,<0.8.0a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libgcc-ng >=12 - liblapack >=3.9.0,<4.0a0 - libstdcxx-ng >=12 - - suitesparse >=7.7.0,<8.0a0 + - suitesparse >=7.8.1,<8.0a0 - tbb license: BSD-3-Clause license_family: BSD purls: [] - size: 1464199 - timestamp: 1715070563360 + size: 1460234 + timestamp: 1723982723928 - kind: conda name: certifi - version: 2024.7.4 + version: 2024.8.30 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - sha256: dd3577bb5275062c388c46b075dcb795f47f8dac561da7dd35fe504b936934e5 - md5: 24e7fd6ca65997938fff9e5ab6f653e4 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + sha256: 7020770df338c45ac6b560185956c32f0a5abf4b76179c037f115fc7d687819f + md5: 12f7d00853807b0531775e9be891cb11 depends: - python >=3.7 license: ISC purls: - - pkg:pypi/certifi?source=conda-forge-mapping - size: 159308 - timestamp: 1720458053074 + - pkg:pypi/certifi?source=hash-mapping + size: 163752 + timestamp: 1725278204397 - kind: conda name: cffi - version: 1.16.0 - build: py310h2fee648_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda - sha256: 007e7f69ab45553b7bf11f2c1b8d3f3a13fd42997266a0d57795f41c7d38df36 - md5: 45846a970e71ac98fd327da5d40a0a2c + version: 1.17.1 + build: py310h497396d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py310h497396d_0.conda + sha256: 2cd81f5f8bb45f7625c232905e5f50f4f50a0cef651ec7143c6cf7d8d87bebcb + md5: 61ed55c277b0bdb5e6e67771f9e5b63e depends: + - __osx >=11.0 - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - pycparser - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 241339 - timestamp: 1696001848492 + - pkg:pypi/cffi?source=hash-mapping + size: 229224 + timestamp: 1725560797724 - kind: conda name: cffi - version: 1.16.0 - build: py310h8d17308_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py310h8d17308_0.conda - sha256: 1aeebb88518ab48c927d7360648a2799def172d8fcb0d7e20cb7208a3570ef9e - md5: b4bcce1a7ea1164e6dcea6c4f00d962b + version: 1.17.1 + build: py310h8deb56e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py310h8deb56e_0.conda + sha256: 1b389293670268ab80c3b8735bc61bc71366862953e000efbb82204d00e41b6c + md5: 1fc24a3196ad5ede2a68148be61894f4 depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 - pycparser - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 237888 - timestamp: 1696002116250 + - pkg:pypi/cffi?source=hash-mapping + size: 243532 + timestamp: 1725560630552 - kind: conda name: cffi - version: 1.16.0 - build: py310hdca579f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py310hdca579f_0.conda - sha256: 37802485964f1a3137ed6ab21ebc08fe9d35e7dc4da39f2b72a814644dd1ac15 - md5: b9e6213f0eb91f40c009ce69139c1869 + version: 1.17.1 + build: py310ha8f682b_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py310ha8f682b_0.conda + sha256: 32638e79658f76e3700f783c519025290110f207833ae1d166d262572cbec8a8 + md5: 9c7ec967f4ae263aec56cff05bdbfc07 depends: - - libffi >=3.4,<4.0a0 - pycparser - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 229407 - timestamp: 1696002017767 + - pkg:pypi/cffi?source=hash-mapping + size: 238887 + timestamp: 1725561032032 - kind: conda name: cffi - version: 1.16.0 - build: py310hdcd7c05_0 + version: 1.17.1 + build: py311h3a79f62_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py310hdcd7c05_0.conda - sha256: 4edab3f1f855554e10950efe064b75138943812af829a764f9b570d1a7189d15 - md5: 8855823d908004e4d3b4fd4218795ad2 - depends: - - libffi >=3.4,<4.0a0 - - pycparser - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 232227 - timestamp: 1696002085787 -- kind: conda - name: cffi - version: 1.16.0 - build: py311h4a08483_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py311h4a08483_0.conda - sha256: 9430416328fe2a28e206e703de771817064c8613a79a6a21fe7107f6a783104c - md5: cbdde0484a47b40e6ce2a4e5aaeb48d7 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda + sha256: 253605b305cc4548b8f97eb7c2e146697e0c7672b099c4862ec5ca7e8e995307 + md5: a42272c5dbb6ffbc1a5af70f24c7b448 depends: + - __osx >=11.0 - libffi >=3.4,<4.0a0 - pycparser - python >=3.11,<3.12.0a0 @@ -10063,17 +7854,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 292511 - timestamp: 1696002194472 + - pkg:pypi/cffi?source=hash-mapping + size: 288211 + timestamp: 1725560745212 - kind: conda name: cffi - version: 1.16.0 - build: py311ha68e1ae_0 + version: 1.17.1 + build: py311he736701_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py311ha68e1ae_0.conda - sha256: eb7463fe3785dd9ac0b3b1e5fea3b721d20eb082e194cab0af8d9ff28c28934f - md5: d109d6e767c4890ea32880b8bfa4a3b6 + url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda + sha256: 9689fbd8a31fdf273f826601e90146006f6631619767a67955048c7ad7798a1d + md5: e1c69be23bd05471a6c623e91680ad59 depends: - pycparser - python >=3.11,<3.12.0a0 @@ -10084,98 +7875,83 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 297043 - timestamp: 1696002186279 + - pkg:pypi/cffi?source=hash-mapping + size: 297627 + timestamp: 1725561079708 - kind: conda name: cffi - version: 1.16.0 - build: py311hb3a22ac_0 + version: 1.17.1 + build: py311hf29c0ef_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py311hb3a22ac_0.conda - sha256: b71c94528ca0c35133da4b7ef69b51a0b55eeee570376057f3d2ad60c3ab1444 - md5: b3469563ac5e808b0cd92810d0697043 - depends: - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - pycparser - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 300207 - timestamp: 1696001873452 -- kind: conda - name: cffi - version: 1.16.0 - build: py311hc0b63fd_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py311hc0b63fd_0.conda - sha256: 1f13a5fa7f310fdbd27f5eddceb9e62cfb10012c58a58c923dd6f51fa979748a - md5: 15d07b82223cac96af629e5e747ba27a + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda + sha256: bc47aa39c8254e9e487b8bcd74cfa3b4a3de3648869eb1a0b89905986b668e35 + md5: 55553ecd5328336368db611f350b7039 depends: + - __glibc >=2.17,<3.0.a0 - libffi >=3.4,<4.0a0 + - libgcc >=13 - pycparser - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 289932 - timestamp: 1696002096156 + - pkg:pypi/cffi?source=hash-mapping + size: 302115 + timestamp: 1725560701719 - kind: conda name: cffi - version: 1.16.0 - build: py312h38bf5a0_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.16.0-py312h38bf5a0_0.conda - sha256: 8b856583b56fc30f064a7cb286f85e4b5725f2bd4fda8ba0c4e94bffe258741e - md5: a45759c013ab20b9017ef9539d234dd7 + version: 1.17.1 + build: py312h06ac9bb_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457 + md5: a861504bbea4161a9170b85d4d2be840 depends: + - __glibc >=2.17,<3.0.a0 - libffi >=3.4,<4.0a0 + - libgcc >=13 - pycparser - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 282370 - timestamp: 1696002004433 + - pkg:pypi/cffi?source=hash-mapping + size: 294403 + timestamp: 1725560714366 - kind: conda name: cffi - version: 1.16.0 - build: py312h8e38eb3_0 + version: 1.17.1 + build: py312h0fad829_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py312h8e38eb3_0.conda - sha256: 1544403cb1a5ca2aeabf0dac86d9ce6066d6fb4363493643b33ffd1b78038d18 - md5: 960ecbd65860d3b1de5e30373e1bffb1 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + sha256: 8d91a0d01358b5c3f20297c6c536c5d24ccd3e0c2ddd37f9d0593d0f0070226f + md5: 19a5456f72f505881ba493979777b24e depends: + - __osx >=11.0 - libffi >=3.4,<4.0a0 - pycparser - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 284245 - timestamp: 1696002181644 + - pkg:pypi/cffi?source=hash-mapping + size: 281206 + timestamp: 1725560813378 - kind: conda name: cffi - version: 1.16.0 - build: py312he70551f_0 + version: 1.17.1 + build: py312h4389bb4_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.16.0-py312he70551f_0.conda - sha256: dd39e594f5c6bca52dfed343de2af9326a99700ce2ba3404bd89706926fc0137 - md5: 5a51096925d52332c62bfd8904899055 + url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + sha256: ac007bf5fd56d13e16d95eea036433012f2e079dc015505c8a79efebbad1fcbc + md5: 08310c1a22ef957d537e547f8d484f92 depends: - pycparser - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -10183,29 +7959,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 287805 - timestamp: 1696002408940 -- kind: conda - name: cffi - version: 1.16.0 - build: py312hf06ca03_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py312hf06ca03_0.conda - sha256: 5a36e2c254603c367d26378fa3a205bd92263e30acf195f488749562b4c44251 - md5: 56b0ca764ce23cc54f3f7e2a7b970f6d - depends: - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - pycparser - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cffi?source=conda-forge-mapping - size: 294523 - timestamp: 1696001868949 + - pkg:pypi/cffi?source=hash-mapping + size: 288142 + timestamp: 1725560896359 - kind: conda name: cfgv version: 3.3.1 @@ -10220,113 +7976,100 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cfgv?source=conda-forge-mapping + - pkg:pypi/cfgv?source=hash-mapping size: 10788 timestamp: 1629909423398 - kind: conda name: cfitsio version: 4.4.1 - build: h793ed5c_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-h793ed5c_0.conda - sha256: cad6c9f86f98f1ac980e8229ef76a9bb8f62d167a52d29770e0548c7f9a80eb1 - md5: c2a9a79b58d2de021ad9295f53e1f40a - depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - libgfortran5 >=13.2.0 - - libzlib >=1.3.1,<2.0a0 - license: LicenseRef-fitsio - purls: [] - size: 802060 - timestamp: 1718906517515 -- kind: conda - name: cfitsio - version: 4.4.1 - build: ha105788_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cfitsio-4.4.1-ha105788_0.conda - sha256: 6b54b24abd3122d33d80a59a901cd51b26b6d47fbb9f84c2bf1f87606e9899c6 - md5: 99445be39aaea44a05046c479f8c6dc9 + build: ha728647_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-ha728647_2.conda + sha256: 985f6dd1346b3cdc6658ec9b17d794d8a5859f966e8e5b2a886a2bdc84c39975 + md5: dab65ce7f9da0b25f53f0ec0d37ee09c depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - libgfortran5 >=13.2.0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libgfortran + - libgfortran5 >=13.3.0 - libzlib >=1.3.1,<2.0a0 license: LicenseRef-fitsio purls: [] - size: 849075 - timestamp: 1718906514228 + size: 908041 + timestamp: 1729563306012 - kind: conda name: cfitsio version: 4.4.1 - build: hc2ea260_0 + build: hae32d5d_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hc2ea260_0.conda - sha256: 97249ec67f115c05a2a452e62f6aed2e3f3a244ba1f33b0e9395a05f9d7f6fee - md5: b3263858e6a924d05dc2e9ce335593ba + url: https://conda.anaconda.org/conda-forge/win-64/cfitsio-4.4.1-hae32d5d_2.conda + sha256: 58ee500483b00d5959b96729a82e534a652f74f8a83d10e4bc6bd6c6d46151bd + md5: 11878a3a16e42c4ed4feb79dd9625de8 depends: - - libcurl >=8.8.0,<9.0a0 + - libcurl >=8.10.1,<9.0a0 + - libflang >=19.1.2 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: LicenseRef-fitsio purls: [] - size: 601046 - timestamp: 1718906922426 + size: 599811 + timestamp: 1729563818871 - kind: conda name: cfitsio version: 4.4.1 - build: hf8ad068_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.4.1-hf8ad068_0.conda - sha256: 74ed4d8b327fa775d9c87e476a7221b74fb913aadcef207622596a99683c8faf - md5: 1b7a01fd02d11efe0eb5a676842a7b7d + build: hd313823_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cfitsio-4.4.1-hd313823_2.conda + sha256: df2eb73c631b4993f5f21d99bfb78d86a7fd83642e7d787284d29a27ffe5ff8c + md5: cdd112ea3fdf3ae6aa4afc6460dc2036 depends: + - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgcc-ng >=12 - - libgfortran-ng - - libgfortran5 >=12.3.0 + - libcurl >=8.10.1,<9.0a0 + - libgfortran 5.* + - libgfortran5 >=13.2.0 - libzlib >=1.3.1,<2.0a0 license: LicenseRef-fitsio purls: [] - size: 924198 - timestamp: 1718906379286 + size: 794923 + timestamp: 1729563447297 - kind: conda name: cftime version: 1.6.4 - build: py310h261611a_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py310h261611a_0.conda - sha256: b58f9e2a2e33a17d40b51f163bfdfac4bf455224da867f70c51f5e6077ad6abd - md5: 5c0e2cd80ceab2ac5201459cc016b88b + build: py310hae04be4_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py310hae04be4_1.conda + sha256: 3e79af224176e0e5191b6b74a3e30bf6cb0ddc0777d1abb05ad17c313c6f8c45 + md5: 14f87740d55ffc691243b38629ebc450 depends: - - libgcc-ng >=12 + - __osx >=11.0 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 248380 - timestamp: 1718096561049 + - pkg:pypi/cftime?source=hash-mapping + size: 204453 + timestamp: 1725400767575 - kind: conda name: cftime version: 1.6.4 - build: py310hb0944cc_0 + build: py310hb0944cc_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py310hb0944cc_0.conda - sha256: 6cdc28f1b05064578cd2c06f0e6c7cb5037db967c9bd3f607c069cd6c9182dfb - md5: 27ccb8a6d304e0db550f3f1189db0a75 + url: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py310hb0944cc_1.conda + sha256: 0aab536214fafdca4d8be79befd14ec8467ed8ddc41662e4ed05e420e6242230 + md5: 498a422b819cd6efdb306fe84de2d636 depends: - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 @@ -10337,56 +8080,39 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 186377 - timestamp: 1718096906522 -- kind: conda - name: cftime - version: 1.6.4 - build: py310hb3e58dc_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py310hb3e58dc_0.conda - sha256: 977dac75b21e1ce955ee7162b30cfbeab9d4d9a1c6e9d1319d1ac49f821b1186 - md5: c823f8b35cb3d899995776e90eedeeff - depends: - - __osx >=11.0 - - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 205049 - timestamp: 1718096661006 + - pkg:pypi/cftime?source=hash-mapping + size: 186088 + timestamp: 1725401142536 - kind: conda name: cftime version: 1.6.4 - build: py310hde789be_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py310hde789be_0.conda - sha256: 3a3961ffac52a2ff09b440735b1991cd767096f9e1e16d2732c1cb1629690907 - md5: c169a1ef3a5f622bd23bb416cfd62c80 + build: py310hf462985_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py310hf462985_1.conda + sha256: 0c9dd9a89937cd1615c4c2ec4d89b48fb6b3b9e6471aec219027a78a4f52f819 + md5: c2d5289e6cbcecf2c549e01772fe5274 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 210874 - timestamp: 1718096704559 + - pkg:pypi/cftime?source=hash-mapping + size: 249092 + timestamp: 1725400584881 - kind: conda name: cftime version: 1.6.4 - build: py311h0a17f05_0 + build: py311h0a17f05_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py311h0a17f05_0.conda - sha256: 795d5127d34f78d62e42ac184f0c75d4687a032726e9784374839d99156f6355 - md5: be0158556407bb5e8e78ec665812634d + url: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py311h0a17f05_1.conda + sha256: 1ab7b1dd6e6610042b48adc47dd85f4b0bdfe19230585a75fdec2d1bb4c64f3a + md5: a46fb98d896ccf723aa9f1bba8ccdef1 depends: - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 @@ -10397,36 +8123,18 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 187708 - timestamp: 1718097030515 -- kind: conda - name: cftime - version: 1.6.4 - build: py311h18e1886_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py311h18e1886_0.conda - sha256: bc3784d8622bab058c2a76ded90559e8acf19cea2768bc2bcac5e525890647b0 - md5: 0eb1e6c7d10285ec12e01f73d1896d93 - depends: - - libgcc-ng >=12 - - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 250491 - timestamp: 1718096595206 + - pkg:pypi/cftime?source=hash-mapping + size: 187832 + timestamp: 1725401239339 - kind: conda name: cftime version: 1.6.4 - build: py311h5d790af_0 + build: py311h0f07fe1_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py311h5d790af_0.conda - sha256: a3548d9f89fa41144a55dd5f2b696d4212bdfa24eef2e0e866be34b23ca47b4c - md5: ac42ae0d4cb643c229313a9dc2857449 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py311h0f07fe1_1.conda + sha256: a77f11a4e202e7e856b368e7bae7a463d4193d5263927ca8c6e02eee6e5a0703 + md5: f239945e88a60c79f705944b22ab56d3 depends: - __osx >=11.0 - numpy >=1.19,<3 @@ -10436,55 +8144,39 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 206929 - timestamp: 1718096847756 + - pkg:pypi/cftime?source=hash-mapping + size: 206517 + timestamp: 1725400747908 - kind: conda name: cftime version: 1.6.4 - build: py311hce3442d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py311hce3442d_0.conda - sha256: 2df629f269bb8c82a5c9310f37ea278ee62987a6745110b794562f21f8708956 - md5: d7d27c26b91d3ebb7efdae3e0afa619a + build: py311h9f3472d_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py311h9f3472d_1.conda + sha256: 8fa32d106c8757eac936105a5a14eb2eac0c66398cfa954855cb0bd220f003a5 + md5: 2c3c4f115d28ed9e001a271d5d8585aa depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 213388 - timestamp: 1718096811666 -- kind: conda - name: cftime - version: 1.6.4 - build: py312h085067d_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312h085067d_0.conda - sha256: 012a195194adaa5886bde21815f764b5652a0a9a818b9892b38c370111e9e54f - md5: 864d9e92f012bcc49650428d5343c98a - depends: - - libgcc-ng >=12 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 248107 - timestamp: 1718096615685 + - pkg:pypi/cftime?source=hash-mapping + size: 249930 + timestamp: 1725400597307 - kind: conda name: cftime version: 1.6.4 - build: py312h1a27103_0 + build: py312h1a27103_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_0.conda - sha256: ec92d4e1ad67f428ef987e6d492b3f8824330f4ee1907fba40397675fb737e8d - md5: 7041741ff629e068c3ab7174912a727a + url: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h1a27103_1.conda + sha256: 24d85f9737258940b6de2d52c5bb3e8deaead62849b4992f32f5d2c5d6244373 + md5: dc76be2943a23a41c999fa0c233fc345 depends: - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 @@ -10495,65 +8187,68 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 179439 - timestamp: 1718097078473 + - pkg:pypi/cftime?source=hash-mapping + size: 178922 + timestamp: 1725401137650 - kind: conda name: cftime version: 1.6.4 - build: py312h5dc8b90_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py312h5dc8b90_0.conda - sha256: fb5b08aeabaafac0615164a369ab4e719173073ec8955ead087a14a9a650a8f1 - md5: 213524e1a5e601eeefa524f3c57b7886 + build: py312h755e627_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312h755e627_1.conda + sha256: fe33603ceba5022485da697d6dada0cf4624638ab10465b86203ed5335f38e27 + md5: 4bc8fd608d8c259fd10fdcac6b4b6c12 depends: - - __osx >=10.13 + - __osx >=11.0 - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 209100 - timestamp: 1718096622696 + - pkg:pypi/cftime?source=hash-mapping + size: 200432 + timestamp: 1725400849542 - kind: conda name: cftime version: 1.6.4 - build: py312hbebd99a_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312hbebd99a_0.conda - sha256: 5f3e55f3666520b146d156b39046a15da09d9e0460ec8be37e3bed04f0a5c954 - md5: 5cd3c210381981606795cebe1b282a35 + build: py312hc0a28a1_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312hc0a28a1_1.conda + sha256: f881ead7671e89367003eaedcba8108828661d01d6fb1e160a6ad93145301328 + md5: 990033147b0a998e756eaaed6b28f48d depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/cftime?source=conda-forge-mapping - size: 200328 - timestamp: 1718096775174 + - pkg:pypi/cftime?source=hash-mapping + size: 247446 + timestamp: 1725400651615 - kind: conda name: charset-normalizer - version: 3.3.2 + version: 3.4.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9 - md5: 7f4a9e3fcff3f6356ae99244a014da6a + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda + sha256: 1873ac45ea61f95750cb0b4e5e675d1c5b3def937e80c7eebb19297f76810be8 + md5: a374efa97290b8799046df7c5ca17164 depends: - python >=3.7 license: MIT license_family: MIT purls: - - pkg:pypi/charset-normalizer?source=conda-forge-mapping - size: 46597 - timestamp: 1698833765762 + - pkg:pypi/charset-normalizer?source=hash-mapping + size: 47314 + timestamp: 1728479405343 - kind: conda name: click version: 8.1.7 @@ -10569,7 +8264,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/click?source=conda-forge-mapping + - pkg:pypi/click?source=hash-mapping size: 84437 timestamp: 1692311973840 - kind: conda @@ -10588,26 +8283,27 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/click?source=conda-forge-mapping + - pkg:pypi/click?source=hash-mapping size: 85051 timestamp: 1692312207348 - kind: conda name: cloudpickle - version: 3.0.0 - build: pyhd8ed1ab_0 + version: 3.1.0 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.0.0-pyhd8ed1ab_0.conda - sha256: 0dfbc1ffa72e7a0882f486c9b1e4e9cccb68cf5c576fe53a89d076c9f1d43754 - md5: 753d29fe41bb881e4b9c004f0abf973f + url: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda + sha256: 5a33d0d3ef33121c546eaf78b3dac2141fc4d30bbaeb3959bbc66fcd5e99ced6 + md5: c88ca2bb7099167912e3b26463fff079 depends: - python >=3.8 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cloudpickle?source=conda-forge-mapping - size: 24746 - timestamp: 1697464875382 + - pkg:pypi/cloudpickle?source=hash-mapping + size: 25952 + timestamp: 1729059365471 - kind: conda name: cmarkgfm version: 0.8.0 @@ -10625,28 +8321,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cmarkgfm?source=conda-forge-mapping + - pkg:pypi/cmarkgfm?source=hash-mapping size: 113474 timestamp: 1695670347968 -- kind: conda - name: cmarkgfm - version: 0.8.0 - build: py312h104f124_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cmarkgfm-0.8.0-py312h104f124_3.conda - sha256: d478a91584a96c5fcb372cde110cb37605b0821b2b8ec6e519d419b4851e9e4e - md5: 75b0ed827a414319d0c6fa63b92341b6 - depends: - - cffi >=1.0.0 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cmarkgfm?source=conda-forge-mapping - size: 112756 - timestamp: 1695670021195 - kind: conda name: cmarkgfm version: 0.8.0 @@ -10664,7 +8341,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cmarkgfm?source=conda-forge-mapping + - pkg:pypi/cmarkgfm?source=hash-mapping size: 135963 timestamp: 1695669875921 - kind: conda @@ -10686,7 +8363,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cmarkgfm?source=conda-forge-mapping + - pkg:pypi/cmarkgfm?source=hash-mapping size: 119774 timestamp: 1695670282391 - kind: conda @@ -10703,7 +8380,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/colorama?source=conda-forge-mapping + - pkg:pypi/colorama?source=hash-mapping size: 25170 timestamp: 1666700778190 - kind: conda @@ -10721,99 +8398,108 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/comm?source=conda-forge-mapping + - pkg:pypi/comm?source=hash-mapping size: 12134 timestamp: 1710320435158 - kind: conda name: contourpy - version: 1.2.1 - build: py310h21239e6_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py310h21239e6_0.conda - sha256: 3b97cb954719a53ea66e0c024eb9a5ed28da61036a2c74b9104eaac425ee95fd - md5: db10923835b6b8c082b126c7cbbe50ff + version: 1.3.0 + build: py310h3788b33_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py310h3788b33_2.conda + sha256: f38a4fed5060da3b91f172d1cace04a8ca1f65cb38d071c55f9a5afeed75f584 + md5: de92ea39a4d3afe19b6ee56701ebfa05 depends: - - libcxx >=16 - - numpy >=1.20 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - numpy >=1.23 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 226024 - timestamp: 1712430306572 + - pkg:pypi/contourpy?source=hash-mapping + size: 261308 + timestamp: 1727293755823 - kind: conda name: contourpy - version: 1.2.1 - build: py310h232114e_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py310h232114e_0.conda - sha256: 9a53e5c28fc4348743beee9e2700a64e2378cdc8a383653da0501f05df677600 - md5: 69968a52474279f0c44c08c87752096f + version: 1.3.0 + build: py310h6000651_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py310h6000651_2.conda + sha256: 9fe3bcdb5ad3ca964f50afcd411f90a1bf18416bf2aada541f299d154f3f0fe6 + md5: f2f3bbd0c02493b4f5e021c236c6c9ec depends: - - numpy >=1.20 + - __osx >=11.0 + - libcxx >=17 + - numpy >=1.23 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 189962 - timestamp: 1712430301862 + - pkg:pypi/contourpy?source=hash-mapping + size: 236086 + timestamp: 1729602622692 - kind: conda name: contourpy - version: 1.2.1 - build: py310hb3b189b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py310hb3b189b_0.conda - sha256: 193fbd7c7b95e4692d12140e8c82d1be0c0bfd450edae9a95fd43f607fbb0c80 - md5: 6601d125e2f6c32c8e853da2651e04fd + version: 1.3.0 + build: py310hc19bc0b_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py310hc19bc0b_2.conda + sha256: b2a6eb0ca7353a8d16515a2d57ef6b9b9fcfb56f61ec1e8fb6051bdafd4a7709 + md5: c72dc96b38a36bc632f9c02f01c01809 depends: - - libcxx >=16 - - numpy >=1.20 + - numpy >=1.23 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 233310 - timestamp: 1712430195722 + - pkg:pypi/contourpy?source=hash-mapping + size: 200314 + timestamp: 1727294089550 - kind: conda name: contourpy - version: 1.2.1 - build: py310hd41b1e2_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py310hd41b1e2_0.conda - sha256: b9283a52ec79bf71325cde80b8845e86bdf9ac80d8b38f95ad47cbaab32447fe - md5: 60ee50b1968f802f2a487ba36d4cce0d + version: 1.3.0 + build: py311h25f83ee_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py311h25f83ee_2.conda + sha256: 68ffe842c5c8be95546e7ed430eaf592956db08f65efbe3315ca3c9738eb09c9 + md5: a2c1baacde15fda12e258f267d8f91e6 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - numpy >=1.20 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - __osx >=11.0 + - libcxx >=17 + - numpy >=1.23 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 241947 - timestamp: 1712430089559 + - pkg:pypi/contourpy?source=hash-mapping + size: 252827 + timestamp: 1729602846516 - kind: conda name: contourpy - version: 1.2.1 - build: py311h005e61a_0 + version: 1.3.0 + build: py311h3257749_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py311h005e61a_0.conda - sha256: f9c392ae4c746ac32c55b20d8c487cbc06a91d5dd650261089d90fb55cfcb8c2 - md5: 050075a7a22e39222595b9191bc082e3 + url: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py311h3257749_2.conda + sha256: 9e0263f5a5cb72d74687504b7b9c30de009bbd148513c65cfb07923af908e1d2 + md5: f94f6c4d0e793b6d175267f3fb3b4f39 depends: - - numpy >=1.20 + - numpy >=1.23 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - ucrt >=10.0.20348.0 @@ -10822,78 +8508,86 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 206670 - timestamp: 1712430308615 + - pkg:pypi/contourpy?source=hash-mapping + size: 216421 + timestamp: 1727294331402 - kind: conda name: contourpy - version: 1.2.1 - build: py311h1d816ee_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py311h1d816ee_0.conda - sha256: b33d5801564943bbbbe939a9ec4d460b2e0ced624089bdfe0bfa2a5e5d8fa1f3 - md5: 4f7502f4d2cddbea5feba4e82d99c6c4 + version: 1.3.0 + build: py311hd18a35c_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py311hd18a35c_2.conda + sha256: 9d0abbb1f3bbfdd9070afbe389d6f9bf71e33bd53c0b3d1dcf12e63084f7993b + md5: 66266cd4f20e47dc1de458c93fb4d2a9 depends: - - libcxx >=16 - - numpy >=1.20 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - numpy >=1.23 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 249875 - timestamp: 1712430222440 + - pkg:pypi/contourpy?source=hash-mapping + size: 277946 + timestamp: 1727293740030 - kind: conda name: contourpy - version: 1.2.1 - build: py311h9547e67_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py311h9547e67_0.conda - sha256: 82cec326aa81b9b6b40d9f4dab5045f0553092405efd0de9d2daf71179f20607 - md5: 74ad0ae64f1ef565e27eda87fa749e84 + version: 1.3.0 + build: py312h4721b07_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py312h4721b07_2.conda + sha256: 1452b38f34d4b7803c21d6d908793fbb2975da591e780d099c25bc773e9f0da3 + md5: 3bb511fda97b3dbe459a2e67e5d185d6 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - numpy >=1.20 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - __osx >=11.0 + - libcxx >=17 + - numpy >=1.23 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 258932 - timestamp: 1712430087609 + - pkg:pypi/contourpy?source=hash-mapping + size: 250676 + timestamp: 1729602748580 - kind: conda name: contourpy - version: 1.2.1 - build: py311hcc98501_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py311hcc98501_0.conda - sha256: 9045fa8a05a102d4cd484fec327511386db759b4241bbacd2c5ac34a238f9379 - md5: 3f5b59b9e9b329527f1af3ee98b3d750 + version: 1.3.0 + build: py312h68727a3_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.0-py312h68727a3_2.conda + sha256: 777ff055866872f45f0f8d2ad17a0c42f3c63463f8c1da9d75fa5b1652940b50 + md5: ff28f374b31937c048107521c814791e depends: - - libcxx >=16 - - numpy >=1.20 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - numpy >=1.23 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 242204 - timestamp: 1712430316704 + - pkg:pypi/contourpy?source=hash-mapping + size: 276004 + timestamp: 1727293728397 - kind: conda name: contourpy - version: 1.2.1 - build: py312h0d7def4_0 + version: 1.3.0 + build: py312hd5eb7cc_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.1-py312h0d7def4_0.conda - sha256: 3af3de9a099d9ab88d24d0956c3acb838a774b64e52afa25abeed7b31c1174ef - md5: bc0160f16ae02e18de578eaddadd4f61 + url: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.0-py312hd5eb7cc_2.conda + sha256: d151bce7aa260d9b930a02b0e559f3f2655648c113dbaeb4ac4149db73a1f8d6 + md5: 1792f9a7cf336580fb0137691a00e7a9 depends: - - numpy >=1.20 + - numpy >=1.23 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 @@ -10902,95 +8596,38 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 206433 - timestamp: 1712430299728 -- kind: conda - name: contourpy - version: 1.2.1 - build: py312h0fef576_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.2.1-py312h0fef576_0.conda - sha256: 89bb5c2f1f5daed13240d5fccfc51cd63b92293cee690c8b0a8f633971e588bb - md5: f825cced50aa6ae9f6ae158a49ecb68c - depends: - - libcxx >=16 - - numpy >=1.20 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 239915 - timestamp: 1712430307181 -- kind: conda - name: contourpy - version: 1.2.1 - build: py312h8572e83_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.1-py312h8572e83_0.conda - sha256: b0731336b9788c247b11a592352f700a647119340b549aba9e933835c7c77df0 - md5: 12c6a831ef734f0b2dd4caff514cbb7f - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - numpy >=1.20 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 256764 - timestamp: 1712430146809 -- kind: conda - name: contourpy - version: 1.2.1 - build: py312h9230928_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.1-py312h9230928_0.conda - sha256: 3879ed298cc9ec5486d13b7d65da960c813925837fe67fc385c9b31f7eefddc0 - md5: 079df34ce7c71259cfdd394645370891 - depends: - - libcxx >=16 - - numpy >=1.20 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/contourpy?source=conda-forge-mapping - size: 248928 - timestamp: 1712430234380 + - pkg:pypi/contourpy?source=hash-mapping + size: 216606 + timestamp: 1727294254434 - kind: conda name: coverage - version: 7.5.4 - build: py310h936d840_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py310h936d840_0.conda - sha256: a9d61f6e7f2b04d3f7bd7d316cfb455780aebfdd0ae076f0ecf29462f0e2bc8e - md5: 059209a823cfb269049197c2ffbc46c2 - depends: - - __osx >=10.13 + version: 7.6.4 + build: py310h38315fa_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py310h38315fa_0.conda + sha256: 119e078840f9920c72dc6188649412ec6525af38a1a99cad7310a2e56a898729 + md5: f9fbf2c23507d4bd03ccb19760194b54 + depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - tomli + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 290066 - timestamp: 1719113757242 + - pkg:pypi/coverage?source=hash-mapping + size: 318570 + timestamp: 1729610642048 - kind: conda name: coverage - version: 7.5.4 - build: py310ha6dd24b_0 + version: 7.6.4 + build: py310h5799be4_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py310ha6dd24b_0.conda - sha256: c0e7eaeb07156be9734f81a64a0f91bc4817cc4f9464ac719d5df87c6fb2b261 - md5: 2a620a8c4719ad2f0aad0bb4a71c15dc + url: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py310h5799be4_0.conda + sha256: 44d0cd60e7ed89500e191d43510bedb1d5002aeaf1f6e7afee734234cd954782 + md5: 380821e5415e15e36f5e85a2581dcbca depends: - __osx >=11.0 - python >=3.10,<3.11.0a0 @@ -11000,95 +8637,78 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 290557 - timestamp: 1719113828125 -- kind: conda - name: coverage - version: 7.5.4 - build: py310ha8f682b_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py310ha8f682b_0.conda - sha256: 2a75c92abf423a8785c72394744dd0374663b59f7d9be561aa5d3d23d9fd74bb - md5: 482417204036a723d4a516c234ff0ebd - depends: - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - tomli - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 317451 - timestamp: 1719114258207 + - pkg:pypi/coverage?source=hash-mapping + size: 292349 + timestamp: 1729610262681 - kind: conda name: coverage - version: 7.5.4 - build: py310hc51659f_0 + version: 7.6.4 + build: py310h89163eb_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py310hc51659f_0.conda - sha256: a28441edb664e76f6776830b3eea80914e1d236d135964813ccfcd7ca2d23c1d - md5: b27dd9fc9a5f0ffd01999f2c8a53ec0b + url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py310h89163eb_0.conda + sha256: b4df2e45f8c43bc47c1695bfbd4c526ce5224812f9c41d9451c88541c36655ea + md5: 5222543cdb180f0fecc0d4b9f6b4a225 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - tomli license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 291737 - timestamp: 1719113775742 + - pkg:pypi/coverage?source=hash-mapping + size: 292863 + timestamp: 1729610244611 - kind: conda name: coverage - version: 7.5.4 - build: py311h331c9d8_0 + version: 7.6.4 + build: py311h2dc5d0c_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py311h331c9d8_0.conda - sha256: d2e668b5e42a4048b76f18b1626447b3ceee981e756a2207fabf3050957c7b14 - md5: 5c93ea564766cd29c0864436ca9f247e + url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py311h2dc5d0c_0.conda + sha256: c4cde56626b863128f7f249073aa093aee885fe8d68415d7cec74877caa39ff8 + md5: 4d74dedf541d0f87fce0b5797b66e425 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - tomli license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 371492 - timestamp: 1719113771405 + - pkg:pypi/coverage?source=hash-mapping + size: 373322 + timestamp: 1729610201298 - kind: conda name: coverage - version: 7.5.4 - build: py311h72ae277_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py311h72ae277_0.conda - sha256: 6097b968a28cc882273b6a031b345c9dff1d710470fb4c93e9deb7f3ed3bee80 - md5: eb14039c4eaf6abbddb57e5c1dc01244 - depends: - - __osx >=10.13 + version: 7.6.4 + build: py311h5082efb_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py311h5082efb_0.conda + sha256: fa8b16e32bf9b2dcc1a517a77aca49172d36489f707725cbcc4887f0839653ab + md5: c9501fe8c7975b95dc9a467ed020f83a + depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - tomli + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 368880 - timestamp: 1719113778825 + - pkg:pypi/coverage?source=hash-mapping + size: 398671 + timestamp: 1729610502579 - kind: conda name: coverage - version: 7.5.4 - build: py311hd3f4193_0 + version: 7.6.4 + build: py311h56c23cb_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py311hd3f4193_0.conda - sha256: 1cc9483be4418d49941a324cba8067fcc927623a999f16273e0130cd49547a02 - md5: b4e8dc88dd72727496da5328f9a20895 + url: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py311h56c23cb_0.conda + sha256: 44b3a9de067245302934dc85973bd2b29d56849332774d8dda3b0c2eb0f78e7c + md5: 3485c1ee29d72d316c427f872d0f368c depends: - __osx >=11.0 - python >=3.11,<3.12.0a0 @@ -11098,38 +8718,37 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 370865 - timestamp: 1719113837698 + - pkg:pypi/coverage?source=hash-mapping + size: 372411 + timestamp: 1729610328835 - kind: conda name: coverage - version: 7.5.4 - build: py311he736701_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py311he736701_0.conda - sha256: a4d6f71133bea0e5b72eeec9c6c928c6c8b6f0abcd19654c454c76946378e03e - md5: 0b62e854068114195984c9c690f0a973 + version: 7.6.4 + build: py312h178313f_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.4-py312h178313f_0.conda + sha256: 62ef1654898b67a1aae353c8910323c803db0dcf0c117d5796eb1cfb03a2d777 + md5: a32fbd2322865ac80c7db74c553f5306 depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - tomli - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 395035 - timestamp: 1719114216815 + - pkg:pypi/coverage?source=hash-mapping + size: 363969 + timestamp: 1729610283175 - kind: conda name: coverage - version: 7.5.4 - build: py312h4389bb4_0 + version: 7.6.4 + build: py312h31fea79_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.5.4-py312h4389bb4_0.conda - sha256: 127c21eb5c3e87cdef01b1bdc79c0d1267c957d80cf5eed858c0c3ba71949ced - md5: 9fb92ea504e3c1251ab68ac1b05e40f3 + url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.4-py312h31fea79_0.conda + sha256: f8dab11095b58ce898e63b958981a3c4e57e4a90c67fdf26897557943184180e + md5: e04090ead5d6f503e34ee225528a6229 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -11140,17 +8759,17 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 386441 - timestamp: 1719114238614 + - pkg:pypi/coverage?source=hash-mapping + size: 389323 + timestamp: 1729610585096 - kind: conda name: coverage - version: 7.5.4 - build: py312h7e5086c_0 + version: 7.6.4 + build: py312ha0ccf2a_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.5.4-py312h7e5086c_0.conda - sha256: aad0cc647099dc1194b40b81f144b86a8ee934205e77485e5f93b916c78ef2a0 - md5: 3ff9a82cbf2d33d537b66029bc7cef7e + url: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.4-py312ha0ccf2a_0.conda + sha256: 4211bf3f5a2f9f45fbf7c73e40dfb6ad84f6123bbf77c3bee5ca04b85c8c400f + md5: ff7f61eae0c3bc906a37f0804208fd46 depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -11160,67 +8779,119 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 361043 - timestamp: 1719114038250 + - pkg:pypi/coverage?source=hash-mapping + size: 362479 + timestamp: 1729610313800 - kind: conda - name: coverage - version: 7.5.4 - build: py312h9a8786e_0 + name: cpd + version: 0.5.5 + build: h420ef59_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cpd-0.5.5-h420ef59_2.conda + sha256: c46ce2e9247b7617aa5ee84f612d3f942650547dcad6729878a845364d0b0eb5 + md5: 9f540053a83d8c7476654f6a63b6663f + depends: + - __osx >=11.0 + - eigen + - libcxx >=16 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 136613 + timestamp: 1721322234551 +- kind: conda + name: cpd + version: 0.5.5 + build: h434a139_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.5.4-py312h9a8786e_0.conda - sha256: 2902fb27f4a6b16512264973b13fea7ddb81811ba8599906a737d3cc1ee24db0 - md5: b40224324679d1966a9fafbd602b28f3 + url: https://conda.anaconda.org/conda-forge/linux-64/cpd-0.5.5-h434a139_2.conda + sha256: f8dcdac7e17d64e389ebb15bc2bed5f854981aadb82671913b4de7468ece161c + md5: 2e99fbaf88b79533f22710d278b336be depends: + - __glibc >=2.17,<3.0.a0 + - eigen - libgcc-ng >=12 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tomli - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 361123 - timestamp: 1719113789335 + - libstdcxx-ng >=12 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 145869 + timestamp: 1721322106944 - kind: conda - name: coverage - version: 7.5.4 - build: py312hbd25219_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.5.4-py312hbd25219_0.conda - sha256: 630b0029aca2dd9313e35366b389befe43495374944b143e8bda7a9286f171c8 - md5: 43835a5631d9118d18681fd4d0c2463f - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tomli - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/coverage?source=conda-forge-mapping - size: 359455 - timestamp: 1719113776494 + name: cpython + version: 3.10.15 + build: py310hd8ed1ab_2 + build_number: 2 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/cpython-3.10.15-py310hd8ed1ab_2.conda + sha256: b17052af1e1d51a674c502c7e37a8185286789d784b529e05b19792add27e575 + md5: e9cf6abfa50a94f83da49c63cfef8790 + depends: + - python 3.10.15.* + - python_abi * *_cp310 + license: Python-2.0 + purls: [] + size: 48936 + timestamp: 1729041693552 +- kind: conda + name: cpython + version: 3.11.10 + build: py311hd8ed1ab_3 + build_number: 3 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/cpython-3.11.10-py311hd8ed1ab_3.conda + sha256: 3b2460b6cce53ce95f1f3aeb8ef7a50b356226dc48d45265ce5e585fc5e8cbed + md5: b6d1a583921c24bb45feef32262b10aa + depends: + - python 3.11.10.* + - python_abi * *_cp311 + license: Python-2.0 + purls: [] + size: 45741 + timestamp: 1729041746101 +- kind: conda + name: cpython + version: 3.12.7 + build: py312hd8ed1ab_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.7-py312hd8ed1ab_0.conda + sha256: 9bbd08c83cc9c3142755b96dc5f3e0f0370d7afdb773c8285359b31e7ce96f0a + md5: f0d1309310498284ab13c9fd73db4781 + depends: + - python 3.12.7.* + - python_abi * *_cp312 + license: Python-2.0 + purls: [] + size: 44632 + timestamp: 1728057282977 - kind: conda name: cryptography - version: 42.0.8 - build: py312hbcc2302_0 + version: 43.0.3 + build: py312hda17c39_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-42.0.8-py312hbcc2302_0.conda - sha256: 3808035ab718df43aa27e5df372cf17685a61c41ddced539e83f38e82372e18d - md5: d6cbf583b33e9473ca9129ad21936507 + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-43.0.3-py312hda17c39_0.conda + sha256: ba9e5aced2e7dc0bbc48f60bf38f514839424a01975fb2aed30e9246c2f82c7c + md5: 2abada8c216dd6e32514535a3fa245d4 depends: + - __glibc >=2.17,<3.0.a0 - cffi >=1.12 - - libgcc-ng >=12 - - openssl >=3.3.1,<4.0a0 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT license_family: BSD purls: - - pkg:pypi/cryptography?source=conda-forge-mapping - size: 1981326 - timestamp: 1717559617177 + - pkg:pypi/cryptography?source=hash-mapping + size: 1488388 + timestamp: 1729286882127 - kind: conda name: cycler version: 0.12.1 @@ -11235,95 +8906,104 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cycler?source=conda-forge-mapping + - pkg:pypi/cycler?source=hash-mapping size: 13458 timestamp: 1696677888423 - kind: conda - name: cytoolz - version: 0.12.3 - build: py310h2372a71_0 + name: cyrus-sasl + version: 2.1.27 + build: h54b06d7_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py310h2372a71_0.conda - sha256: a75c195a71b8a1676f057a785515d1f78515d4f59389d5ac6d3cd9a08880566a - md5: 21362970a6fea90ca507c253c20465f2 + url: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.27-h54b06d7_7.conda + sha256: d2ea5e52da745c4249e1a818095a28f9c57bd4df22cbfc645352defa468e86c2 + md5: dce22f70b4e5a407ce88f2be046f4ceb depends: + - krb5 >=1.21.1,<1.22.0a0 - libgcc-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - toolz >=0.10.0 - license: BSD-3-Clause + - libntlm + - libstdcxx-ng >=12 + - openssl >=3.1.1,<4.0a0 + license: BSD-3-Clause-Attribution license_family: BSD - purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 368467 - timestamp: 1706897294269 + purls: [] + size: 219527 + timestamp: 1690061203707 - kind: conda name: cytoolz - version: 0.12.3 - build: py310h8d17308_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py310h8d17308_0.conda - sha256: 0e994dcb9da1c419fe9a974234e60b507a375e06bc39b03895e8eac46c0128ee - md5: 6051dfb72d955bc0355c2a38a5d85493 + version: 1.0.0 + build: py310h493c2e1_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py310h493c2e1_1.conda + sha256: 041a4d0b54f755cadb115a09e8ee73ebe57fa0671869b57306901efca973ba61 + md5: 1c0055b6470352e1001ba055746ca8e3 depends: + - __osx >=11.0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - toolz >=0.10.0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 295577 - timestamp: 1706897660502 + - pkg:pypi/cytoolz?source=hash-mapping + size: 315010 + timestamp: 1728335219255 - kind: conda name: cytoolz - version: 0.12.3 - build: py310hb372a2b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py310hb372a2b_0.conda - sha256: 332b79f09e56754b95accb02fca694bc18e14bb3d44eafc89dab7c132bdd6007 - md5: f257633897bf6f962e49f07820656421 + version: 1.0.0 + build: py310ha75aee5_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py310ha75aee5_1.conda + sha256: cfedba6ebe6b9b0cefdb074ca5696734e570f370e7f19c146333bf4e05863cad + md5: 81bbbb02f3664a012ce65c4fa8e8ca35 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - toolz >=0.10.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 316676 - timestamp: 1706897332355 + - pkg:pypi/cytoolz?source=hash-mapping + size: 367927 + timestamp: 1728335155211 - kind: conda name: cytoolz - version: 0.12.3 - build: py310hd125d64_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py310hd125d64_0.conda - sha256: 82841782ce65086bbc90e5736c0b494f6aaa7d4424490517ff7ba483fcd40aab - md5: a2d459b5f4df33378ff8089e31a9460a + version: 1.0.0 + build: py310ha8f682b_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py310ha8f682b_1.conda + sha256: 7fd0e84bbba8e3c6c76bb7544ac010a62649a3e9139f388ab1180f09d32d7060 + md5: 43d004ac0bbb0da71d6fff3fdaab57b2 depends: - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - toolz >=0.10.0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 315555 - timestamp: 1706897593187 + - pkg:pypi/cytoolz?source=hash-mapping + size: 296327 + timestamp: 1728335601907 - kind: conda name: cytoolz - version: 0.12.3 - build: py311h05b510d_0 + version: 1.0.0 + build: py311h460d6c5_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py311h05b510d_0.conda - sha256: 260980644b0ed686518437f9e86346b0798d7cab6a368a7ab61f085526ae5920 - md5: d880c8585f9f1dc7057efd5bf7a212e2 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py311h460d6c5_1.conda + sha256: cff9cd6a8652a73d9e1d73c51bfd1bac6b526e705885b1ec8f0c159bd34046d2 + md5: 72740cbbba07d1fb0f37448e1e1c7ef9 depends: + - __osx >=11.0 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 @@ -11331,36 +9011,39 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 342071 - timestamp: 1706897488336 + - pkg:pypi/cytoolz?source=hash-mapping + size: 341441 + timestamp: 1728335223644 - kind: conda name: cytoolz - version: 0.12.3 - build: py311h459d7ec_0 + version: 1.0.0 + build: py311h9ecbd09_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py311h459d7ec_0.conda - sha256: 1c05863330af1c1af9fcd721170fe50a42757b60e32f35933edd96e97bc188bd - md5: 13d385f635d7fbe9acc93600f67a6cb4 + url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py311h9ecbd09_1.conda + sha256: 42544e13dc4bb018cec0579ad7a6158c1f296e32fa0995ffd8abb116734dc427 + md5: 765c19c0b6df9c143ac8f959d1a1a238 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - toolz >=0.10.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 395711 - timestamp: 1706897222426 + - pkg:pypi/cytoolz?source=hash-mapping + size: 393854 + timestamp: 1728335173137 - kind: conda name: cytoolz - version: 0.12.3 - build: py311ha68e1ae_0 + version: 1.0.0 + build: py311he736701_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py311ha68e1ae_0.conda - sha256: 41a67dd265e30f79fcbc5a9ecba50fc6dbe69fd66b7b12fe07ccb61ae75303ef - md5: cac7a698148d6f4c5818ef6edc0a1e58 + url: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py311he736701_1.conda + sha256: e8f2027af0cf22feebad76ccbbb3139437fd07b5c6c35497b45e8de2d1f636ea + md5: b0845b4087a24616d2fecc716397b3f6 depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -11371,104 +9054,73 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 322488 - timestamp: 1706897983176 -- kind: conda - name: cytoolz - version: 0.12.3 - build: py311he705e18_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py311he705e18_0.conda - sha256: ef0ce284ca238ab279d7c0ffc7710e0e797855d07f1be3d5ae6cf17389311f15 - md5: e5d928a48ce4a515ac69d5f65fda1a60 - depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - toolz >=0.10.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 343617 - timestamp: 1706897348938 -- kind: conda - name: cytoolz - version: 0.12.3 - build: py312h41838bb_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-0.12.3-py312h41838bb_0.conda - sha256: 79df086b364cb7b80c367d6b19fc2fad7879e89d811bb7e9c25ddf02e94d7959 - md5: b8e837f24cd0f2a2478ecf2299ce55a8 - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - toolz >=0.10.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 342008 - timestamp: 1706897335369 + - pkg:pypi/cytoolz?source=hash-mapping + size: 322558 + timestamp: 1728335601937 - kind: conda name: cytoolz - version: 0.12.3 - build: py312h98912ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py312h98912ed_0.conda - sha256: 8fae95ac24fb9dc05ee0284c929869cb97467319460bafac52956c79b1fee3f0 - md5: a4fbffb84a54767266c69e3699078a00 + version: 1.0.0 + build: py312h024a12e_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.0.0-py312h024a12e_1.conda + sha256: 6ae87213edd6b3ae004251c6a6a47ef7898b22e3650b757197e0ae9debba61f2 + md5: ac4f7cc0fdb7599e866e53277eef8b1e depends: - - libgcc-ng >=12 + - __osx >=11.0 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - toolz >=0.10.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 393874 - timestamp: 1706897203319 + - pkg:pypi/cytoolz?source=hash-mapping + size: 339006 + timestamp: 1728335229450 - kind: conda name: cytoolz - version: 0.12.3 - build: py312he37b823_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py312he37b823_0.conda - sha256: 2c8dafd751fda1e6d0b7d5969a94361d38787bf34beafeb96b0121eed6206bc4 - md5: 0f3187f8eb62ed0bae39385b7aed90ad + version: 1.0.0 + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.0.0-py312h4389bb4_1.conda + sha256: 640df307a193ad3b34e97a8c274428247ad613289d612de7f8d775a6087a5aef + md5: d957d8852eb4b4a4f8b6af1e8a0cc044 depends: - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - toolz >=0.10.0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 337770 - timestamp: 1706897589738 + - pkg:pypi/cytoolz?source=hash-mapping + size: 316445 + timestamp: 1728335602220 - kind: conda name: cytoolz - version: 0.12.3 - build: py312he70551f_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cytoolz-0.12.3-py312he70551f_0.conda - sha256: 9b3a63be81910d653e2ef7ceba12f22c92e22ca2fd5cb37e72aa1bef8e6d8fc3 - md5: bf01d5b4e152592d0483cc10df040ad8 + version: 1.0.0 + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.0.0-py312h66e93f0_1.conda + sha256: 73ad7e01d83734a1418be3a225c14d7840ad93f21cecb13d75a3ca5ea9a464c8 + md5: a921e2fe122e7f38417b9b17c7a13343 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - toolz >=0.10.0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cytoolz?source=conda-forge-mapping - size: 315464 - timestamp: 1706897770551 + - pkg:pypi/cytoolz?source=hash-mapping + size: 395285 + timestamp: 1728335183361 - kind: conda name: dart-sass version: 1.58.3 @@ -11483,20 +9135,6 @@ packages: purls: [] size: 2846260 timestamp: 1683598954152 -- kind: conda - name: dart-sass - version: 1.58.3 - build: h694c41f_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/dart-sass-1.58.3-h694c41f_1.conda - sha256: d6bd5e712d55ef3e2b222fcb98eb20ab8e72042594e38369c28b8fb75ce7a1f8 - md5: 5151299fff69a62e792c79d1b726a470 - license: MIT - license_family: MIT - purls: [] - size: 2810170 - timestamp: 1683598628559 - kind: conda name: dart-sass version: 1.58.3 @@ -11527,96 +9165,77 @@ packages: timestamp: 1683598631146 - kind: conda name: dask - version: 2024.7.0 + version: 2024.10.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/dask-2024.7.0-pyhd8ed1ab_0.conda - sha256: 8c4c05e42b34fb0c5eec1ce2fd542ee756333659e056ac34fab20e12376f4d21 - md5: f0647685bcd2c8d78b6e8177d6735edb + url: https://conda.anaconda.org/conda-forge/noarch/dask-2024.10.0-pyhd8ed1ab_0.conda + sha256: 1e4f516d536ecb7cb11c1ab4fa60e9862ed4d8ff84441f769d88e413510893a5 + md5: 719832923b1d98803d07b2ca38eb3baa depends: - - bokeh >=2.4.2,!=3.0.* + - bokeh >=3.1.0 - cytoolz >=0.11.0 - - dask-core >=2024.7.0,<2024.7.1.0a0 + - dask-core >=2024.10.0,<2024.10.1.0a0 - dask-expr >=1.1,<1.2 - - distributed >=2024.7.0,<2024.7.1.0a0 + - distributed >=2024.10.0,<2024.10.1.0a0 - jinja2 >=2.10.3 - lz4 >=4.3.2 - - numpy >=1.21 + - numpy >=1.24 - pandas >=2.0 - - pyarrow >=7.0 - - pyarrow-hotfix - - python >=3.9 + - pyarrow >=14.0.1 + - python >=3.10 constrains: - openssl !=1.1.1e license: BSD-3-Clause - purls: - - pkg:pypi/dask?source=conda-forge-mapping - size: 7434 - timestamp: 1720318437409 + license_family: BSD + purls: [] + size: 7416 + timestamp: 1729259321643 - kind: conda name: dask-core - version: 2024.7.0 + version: 2024.10.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.7.0-pyhd8ed1ab_0.conda - sha256: 9c0f6ef94a1967fa553b1b26db032f9a61881c92f9ff0dbee572d2df5d173c53 - md5: 755e47653ae38f5c50f1435af756e844 + url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.10.0-pyhd8ed1ab_0.conda + sha256: 8523eb7b861cae9a87e781ad8fe1d2121910eb522c3a16e632f71674bfff3b7b + md5: 7823092a3cf14e98a52d2a2875c47c80 depends: - click >=8.1 - - cloudpickle >=1.5.0 + - cloudpickle >=3.0.0 - fsspec >=2021.09.0 - importlib_metadata >=4.13.0 - packaging >=20.0 - partd >=1.4.0 - - python >=3.9 + - python >=3.10 - pyyaml >=5.3.1 - toolz >=0.10.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/dask?source=conda-forge-mapping - size: 878090 - timestamp: 1720290443126 + - pkg:pypi/dask?source=hash-mapping + size: 899752 + timestamp: 1729174208253 - kind: conda name: dask-expr - version: 1.1.7 + version: 1.1.16 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.7-pyhd8ed1ab_0.conda - sha256: bdcb6a1a26cb5c61711e4bfdb99565ce4aba4e292faab6ca595bceca76ff9d13 - md5: 412b700b5a88f167078cd7b839881086 + url: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.1.16-pyhd8ed1ab_0.conda + sha256: b279d5cde7e049cb859f21938aee9ffec2c25460f651431c809d19a34b3ffa34 + md5: 81de1c44ab7f6cadab4a59b6d76dfa87 depends: - - dask-core 2024.7.0 + - dask-core 2024.10.0 - pandas >=2 - - pyarrow - - python >=3.9 + - pyarrow >=14.0.1 + - python >=3.10 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/dask-expr?source=conda-forge-mapping - size: 183907 - timestamp: 1720300457390 -- kind: conda - name: dataclasses - version: '0.8' - build: pyhc8e2a94_3 - build_number: 3 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 - sha256: 63a83e62e0939bc1ab32de4ec736f6403084198c4639638b354a352113809c92 - md5: a362b2124b06aad102e2ee4581acee7d - depends: - - python >=3.7 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/dataclasses?source=conda-forge-mapping - size: 9870 - timestamp: 1628958582931 + - pkg:pypi/dask-expr?source=hash-mapping + size: 184799 + timestamp: 1729201054149 - kind: conda name: dbus version: 1.13.6 @@ -11637,31 +9256,12 @@ packages: timestamp: 1640112124844 - kind: conda name: debugpy - version: 1.8.2 - build: py310h76e45a6_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py310h76e45a6_0.conda - sha256: 774223fe937ab70312502a0dede4a567d16f41ab034444965ba03e5e1b4928fa - md5: 285568244bd06fbe2cccf2ee1617f582 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: MIT - license_family: MIT - purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 1919980 - timestamp: 1719378823849 -- kind: conda - name: debugpy - version: 1.8.2 + version: 1.8.7 build: py310h9e98ed7_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py310h9e98ed7_0.conda - sha256: d9d3b4d1dd3b00a8fd2caae02285902a294aad8d633620f517ffcf89d38fb57a - md5: 6edfa966360b5df86d7277b0a4829381 + url: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py310h9e98ed7_0.conda + sha256: 8a4efe16d3034ab0ccd6243e055b9e421f180abe34e20968bfa7cd3b83a08518 + md5: 8c8390e399f1728f701186227cfe4d3a depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -11671,134 +9271,117 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 2887694 - timestamp: 1719379259087 + - pkg:pypi/debugpy?source=hash-mapping + size: 3092827 + timestamp: 1728594977065 - kind: conda name: debugpy - version: 1.8.2 - build: py310hcf9f62a_0 + version: 1.8.7 + build: py310hb4ad77e_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py310hcf9f62a_0.conda - sha256: 7f6c7b223d62d5aeeb56f66c16b53b6c1b930bcfaef03289fffb7774c5c115ef - md5: 8ebe2e869f46080a58f65664ecc9f893 + url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py310hb4ad77e_0.conda + sha256: b80310c7b22ba18fe84e8f6902d8852f815ffa79b64898b869066b338e9d0643 + md5: 298692f5fe67ee787bb4e157dab81ada depends: - __osx >=11.0 - - libcxx >=16 + - libcxx >=17 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 1857200 - timestamp: 1719378905400 + - pkg:pypi/debugpy?source=hash-mapping + size: 2051562 + timestamp: 1728594341189 - kind: conda name: debugpy - version: 1.8.2 - build: py310he0a0c5d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py310he0a0c5d_0.conda - sha256: dac8acfbb36168e796255e87836759c1df73ba64950e5312c2e4ba75045b2c7d - md5: 0d7ac070e7defc6b572453b8467a60ab + version: 1.8.7 + build: py310hf71b8c6_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py310hf71b8c6_0.conda + sha256: 8ac9105a307992a8ba58a2d95c825d8ad60a7511fb51da8cfa8d2e3b8859ca82 + md5: 62f74768159cd1b97db23a4d6d05516e depends: - - __osx >=10.13 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 1853950 - timestamp: 1719378827687 -- kind: conda - name: debugpy - version: 1.8.2 - build: py311h4332511_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py311h4332511_0.conda - sha256: e2db26eab0c42553287acdb1e34d88f144e14fa04be6b0e986e05e7b4deb8bd6 - md5: 22beed609083cfd67ea057020117894f - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 2303586 - timestamp: 1719378778171 + - pkg:pypi/debugpy?source=hash-mapping + size: 2169154 + timestamp: 1728594300052 - kind: conda name: debugpy - version: 1.8.2 - build: py311hb9542d7_0 + version: 1.8.7 + build: py311h3f08180_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py311hb9542d7_0.conda - sha256: 785e8e4147c0f13bdeff92e6812f0a6f7345c5bc984f3e39c94bfc3ee8b7c14b - md5: 04a6fbf1020eaae55565eea41378a2fb + url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py311h3f08180_0.conda + sha256: 88a6c8db209168a20e9e3c91db527f531b2994013852e6ac9f122b8ce28d88ea + md5: 6bea7745539923fc0facaa2cba50369c depends: - __osx >=11.0 - - libcxx >=16 + - libcxx >=17 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 2249814 - timestamp: 1719378977314 + - pkg:pypi/debugpy?source=hash-mapping + size: 2493171 + timestamp: 1728594326810 - kind: conda name: debugpy - version: 1.8.2 - build: py311hbafa61a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py311hbafa61a_0.conda - sha256: ebf44cc0eaa650f9cdb85045cbef1c2ebb4ef74fabb8394a1e5cd5f4ae06bb8e - md5: 404cbe80fc0990a9965bdb8622c6f5a4 + version: 1.8.7 + build: py311hda3d55a_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py311hda3d55a_0.conda + sha256: 714deaaa5ed757b259062f7979c2ed5e9fea66361ef72a5b63c644ea4b75232d + md5: 351ff5f8591856aa848a2cc89ca53957 depends: - - __osx >=10.13 - - libcxx >=16 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 2264268 - timestamp: 1719378841584 + - pkg:pypi/debugpy?source=hash-mapping + size: 3548917 + timestamp: 1728594758491 - kind: conda name: debugpy - version: 1.8.2 - build: py311hda3d55a_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py311hda3d55a_0.conda - sha256: 334cc1ad70e050c0dfbab8fc132a5fe41504247189443945723403e3e645c14f - md5: e9e8facb47c1afe755daf256c4781124 + version: 1.8.7 + build: py311hfdbb021_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py311hfdbb021_0.conda + sha256: 540d6b509d68ba77f6ad06f3bc419ba42930f1b3139ab4fda0476e12de8d7f4d + md5: e02dac14097eb3605342cd35c13f0a26 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 3238916 - timestamp: 1719379343465 + - pkg:pypi/debugpy?source=hash-mapping + size: 2544636 + timestamp: 1728594337523 - kind: conda name: debugpy - version: 1.8.2 + version: 1.8.7 build: py312h275cf98_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.2-py312h275cf98_0.conda - sha256: b50f40759b56625ab2b6c05ef6311de4834f299801fb3290e04fab124112941f - md5: 20c6fc38d22363e36db3c2a4aa66b697 + url: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.7-py312h275cf98_0.conda + sha256: 09e3d6ce099093c95fea5e491aa3027f4a10a290ccea4a4b1f596adb682bdd31 + md5: d44035420f6e1aa2f1983e0860c14ce6 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -11808,67 +9391,49 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 3089422 - timestamp: 1719379214342 + - pkg:pypi/debugpy?source=hash-mapping + size: 3502851 + timestamp: 1728594816374 - kind: conda name: debugpy - version: 1.8.2 - build: py312h28f332c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.2-py312h28f332c_0.conda - sha256: 418b7e7d615687aaf2b879443653603fef4659f1d20b45ab50fcf85c656bfab0 - md5: 4dbee036ef0d52ff63647f0fffa5bab2 + version: 1.8.7 + build: py312h2ec8cdc_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.7-py312h2ec8cdc_0.conda + sha256: e03c74ba23342f580f4cc822e46623561206da4857fd47c84c482f36a121095d + md5: 13e4b568d8f94e2a38f9acd192149516 depends: - - __osx >=10.13 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 2078006 - timestamp: 1719378840368 + - pkg:pypi/debugpy?source=hash-mapping + size: 2640727 + timestamp: 1728594265044 - kind: conda name: debugpy - version: 1.8.2 - build: py312h5c2e7bc_0 + version: 1.8.7 + build: py312hde4cb15_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.2-py312h5c2e7bc_0.conda - sha256: 975fb000bc719db2802ea78a2eb8ad48ed7f71e347d300e5c4f38fa6331ce96f - md5: 868257c902dd31ae9b9db6ba78dd1fc6 + url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.7-py312hde4cb15_0.conda + sha256: 65f015c6c2a2c5f52f91cfb1622f9e82499e9d7f3c4ccb4fa255b16ae575c9a2 + md5: 1985200ccb082e68d47b4fdd0bacfe97 depends: - __osx >=11.0 - - libcxx >=16 + - libcxx >=17 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 2088418 - timestamp: 1719378883923 -- kind: conda - name: debugpy - version: 1.8.2 - build: py312h7070661_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.2-py312h7070661_0.conda - sha256: 8b30358bbb92d302f41298fa42ae2388faccfa290988bde3285af0bfa607522e - md5: b19f2a4267351e36728133431f623e98 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/debugpy?source=conda-forge-mapping - size: 2070791 - timestamp: 1719378841042 + - pkg:pypi/debugpy?source=hash-mapping + size: 2555984 + timestamp: 1728594350396 - kind: conda name: decorator version: 5.1.1 @@ -11883,7 +9448,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/decorator?source=conda-forge-mapping + - pkg:pypi/decorator?source=hash-mapping size: 12072 timestamp: 1641555714315 - kind: conda @@ -11900,50 +9465,17 @@ packages: license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/defusedxml?source=conda-forge-mapping + - pkg:pypi/defusedxml?source=hash-mapping size: 24062 timestamp: 1615232388757 - kind: conda name: deno - version: 1.37.2 - build: h335b0a9_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/deno-1.37.2-h335b0a9_1.conda - sha256: b14a2f951839e1b511283ed135d31e1168e62c6f360d00ba55a52e38d2ed1e34 - md5: 50fe6d0064adfd83846a6f9c87da03e3 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - purls: [] - size: 33937403 - timestamp: 1698785299272 -- kind: conda - name: deno - version: 1.37.2 - build: h51b076b_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/deno-1.37.2-h51b076b_1.conda - sha256: ec5a5f6219ee6dda4dff7673af05321934ffa041ef71407509ac84f887e66b88 - md5: d452ae5711d2261a9a2600c1c9cb95f1 - depends: - - __osx >=10.11 - license: MIT - license_family: MIT - purls: [] - size: 28443709 - timestamp: 1698786998658 -- kind: conda - name: deno - version: 1.37.2 - build: hc8b987e_1 - build_number: 1 + version: 1.41.0 + build: h1f5608b_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/deno-1.37.2-hc8b987e_1.conda - sha256: 075fd651513a4458a67ad7f1f635019d342b3047ba9b453acb1fc65f39279581 - md5: 9e817ed60642f1c1b4d19f7998b3ff21 + url: https://conda.anaconda.org/conda-forge/win-64/deno-1.41.0-h1f5608b_0.conda + sha256: c361072324d65fbf465f45e986cdf165bee2feefad1869e071bd424c2855e712 + md5: 1b1bdc63520e9487d9a15657dc877583 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -11951,38 +9483,36 @@ packages: license: MIT license_family: MIT purls: [] - size: 27940247 - timestamp: 1698788945614 + size: 30182915 + timestamp: 1709751737132 - kind: conda name: deno - version: 1.37.2 - build: hce30654_1 - build_number: 1 + version: 1.41.0 + build: hce30654_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/deno-1.37.2-hce30654_1.conda - sha256: 40c59e8035a9e2c3a712053316c41ead55b22e94a5e9904d52b108d4f8c48ddc - md5: 98041d72a6ee027b467e2014191ac25f + url: https://conda.anaconda.org/conda-forge/osx-arm64/deno-1.41.0-hce30654_0.conda + sha256: 2510977bf4e76fa56c83ec94d80b212b93177cad0e4088c7c9b3b1c510a8fd72 + md5: 6e0a9e0c15a06dcc65680ddf6dc1218c license: MIT license_family: MIT purls: [] - size: 29940099 - timestamp: 1698784034240 + size: 33455306 + timestamp: 1709746555180 - kind: conda - name: deno-dom - version: 0.1.35 - build: h08cba0f_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/deno-dom-0.1.35-h08cba0f_1.conda - sha256: b743fc9a6bcb5991321a4a7c35fcdac04b64b13b232f624052b34e31585a2e74 - md5: a066a401b756000c623b09113f59f9c1 + name: deno + version: 1.41.0 + build: hfc7925d_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/deno-1.41.0-hfc7925d_0.conda + sha256: 0b68555ab0a01d86b1e9a5eeb3d783c784bd91226c388ad2f65aae12744999ad + md5: 8d6e6bd74055bd30c88d3a678395a7e9 depends: - - deno >=1.24.2 + - libgcc-ng >=12 license: MIT license_family: MIT purls: [] - size: 372486 - timestamp: 1682953705956 + size: 39040588 + timestamp: 1709747957637 - kind: conda name: deno-dom version: 0.1.35 @@ -12033,56 +9563,56 @@ packages: timestamp: 1682953401972 - kind: conda name: distlib - version: 0.3.8 + version: 0.3.9 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e - md5: db16c66b759a64dc5183d69cc3745a52 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + sha256: 300b2e714f59403df0560174f5ef6c19db8b4a3b74a7244862cf771f07dee8fb + md5: fe521c1608280cc2803ebd26dc252212 depends: - python 2.7|>=3.6 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/distlib?source=conda-forge-mapping - size: 274915 - timestamp: 1702383349284 + - pkg:pypi/distlib?source=hash-mapping + size: 276214 + timestamp: 1728557312342 - kind: conda name: distributed - version: 2024.7.0 + version: 2024.10.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.7.0-pyhd8ed1ab_0.conda - sha256: 69f9a962a122b4fdd36f1aa59a8780299d8e0b9ec3e11c757ce77dadb63a1231 - md5: 2ae917b0098f286f63f69ec9365fb0b1 + url: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.10.0-pyhd8ed1ab_0.conda + sha256: 2994121c3e2f57e42fac50ccde8fbd08dbc3e1ecd90f6a90d05e77d4cfbe922c + md5: b3b498f7bcc9a2543ad72a3501f3d87b depends: - click >=8.0 - - cloudpickle >=1.5.0 - - cytoolz >=0.10.1 - - dask-core >=2024.7.0,<2024.7.1.0a0 + - cloudpickle >=3.0.0 + - cytoolz >=0.11.2 + - dask-core >=2024.10.0,<2024.10.1.0a0 - jinja2 >=2.10.3 - locket >=1.0.0 - - msgpack-python >=1.0.0 + - msgpack-python >=1.0.2 - packaging >=20.0 - - psutil >=5.7.2 - - python >=3.9 - - pyyaml >=5.3.1 + - psutil >=5.8.0 + - python >=3.10 + - pyyaml >=5.4.1 - sortedcontainers >=2.0.5 - tblib >=1.6.0 - - toolz >=0.10.0 - - tornado >=6.0.4 - - urllib3 >=1.24.3 + - toolz >=0.11.2 + - tornado >=6.2.0 + - urllib3 >=1.26.5 - zict >=3.0.0 constrains: - openssl !=1.1.1e license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/distributed?source=conda-forge-mapping - size: 795925 - timestamp: 1720300404413 + - pkg:pypi/distributed?source=hash-mapping + size: 801083 + timestamp: 1729197454118 - kind: conda name: docutils version: 0.21.2 @@ -12096,9 +9626,42 @@ packages: - python >=3.9 license: CC-PDDC AND BSD-3-Clause AND BSD-2-Clause AND ZPL-2.1 purls: - - pkg:pypi/docutils?source=conda-forge-mapping + - pkg:pypi/docutils?source=hash-mapping size: 403226 timestamp: 1713930478970 +- kind: conda + name: double-conversion + version: 3.3.0 + build: h59595ed_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda + sha256: 9eee491a73b67fd64379cf715f85f8681568ebc1f02f9e11b4c50d46a3323544 + md5: c2f83a5ddadadcdb08fe05863295ee97 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 78645 + timestamp: 1686489937183 +- kind: conda + name: double-conversion + version: 3.3.0 + build: h63175ca_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.0-h63175ca_0.conda + sha256: 735d40b44a0f39386d1e2988384b6d78a98efd4fa1818e7f2f6fb01f91e16b64 + md5: 1a8bc18b24014167b2184c5afbe6037e + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 70425 + timestamp: 1686490368655 - kind: conda name: draco version: 1.5.7 @@ -12147,21 +9710,6 @@ packages: purls: [] size: 738431 timestamp: 1705582600037 -- kind: conda - name: draco - version: 1.5.7 - build: h7728843_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/draco-1.5.7-h7728843_0.conda - sha256: fe288b7f9f1b9aad6d668c61c31da71ec81d941eb2b3017290cd94e96a8e13ea - md5: 6fb1e85e3c898d165b3411e756e21c89 - depends: - - libcxx >=15 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 757816 - timestamp: 1705582507448 - kind: conda name: editables version: '0.5' @@ -12176,7 +9724,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/editables?source=conda-forge-mapping + - pkg:pypi/editables?source=hash-mapping size: 10988 timestamp: 1705857085102 - kind: conda @@ -12210,21 +9758,6 @@ packages: purls: [] size: 1087751 timestamp: 1690275869049 -- kind: conda - name: eigen - version: 3.4.0 - build: h1c7c39f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/eigen-3.4.0-h1c7c39f_0.conda - sha256: 187c0677e0cdcdc39aed716687a6290dd5b7f52b49eedaef2ed76be6cd0a5a3d - md5: 5b2cfc277e3d42d84a2a648825761156 - depends: - - libcxx >=15.0.7 - license: MPL-2.0 - license_family: MOZILLA - purls: [] - size: 1090184 - timestamp: 1690272503232 - kind: conda name: eigen version: 3.4.0 @@ -12256,80 +9789,64 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/entrypoints?source=conda-forge-mapping + - pkg:pypi/entrypoints?source=hash-mapping size: 9199 timestamp: 1643888357950 - kind: conda name: esbuild - version: 0.19.2 + version: 0.24.0 build: h57928b3_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/esbuild-0.19.2-h57928b3_0.conda - sha256: 7a6354b23d03a4eaff672e4d20cf4a6c554da31be506050055af97f4b023a8b9 - md5: 7250cb4e9c20f9f7acdf4b523844ad90 - license: MIT - license_family: MIT - purls: [] - size: 3430198 - timestamp: 1693244283213 -- kind: conda - name: esbuild - version: 0.19.2 - build: h694c41f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/esbuild-0.19.2-h694c41f_0.conda - sha256: 3c52971d424630e4e5e749208c144bd070b94ae404aa8ea72ae20c9e5300517d - md5: 61cc0fd0aa08d9a37b2df02b88c00203 - constrains: - - __osx>=10.12 + url: https://conda.anaconda.org/conda-forge/win-64/esbuild-0.24.0-h57928b3_0.conda + sha256: 8a41f8838a024fc3d132eb8d5cfc8a2f73d812e516e4f99c8a1bfd082ef931cb + md5: 333e68de31627c2a782cd24cc19ed385 license: MIT license_family: MIT purls: [] - size: 3465734 - timestamp: 1693243810332 + size: 3707406 + timestamp: 1727001690308 - kind: conda name: esbuild - version: 0.19.2 + version: 0.24.0 build: ha770c72_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/esbuild-0.19.2-ha770c72_0.conda - sha256: bb6dee100b3f62ee088a212834c9d47ad158f3fc678ff595e402803db5fab871 - md5: 8fa87b764cf6143cb66e9cc3548b186a + url: https://conda.anaconda.org/conda-forge/linux-64/esbuild-0.24.0-ha770c72_0.conda + sha256: 38bfefeafd4dfad798615740e424efacb2122b81eacfce736bc6a90b05ccd8a5 + md5: b2cdfd1d3c62519b913d71f200e7f9ca license: MIT license_family: MIT purls: [] - size: 3376650 - timestamp: 1693243729127 + size: 3636196 + timestamp: 1727000941821 - kind: conda name: esbuild - version: 0.19.2 + version: 0.24.0 build: hce30654_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/esbuild-0.19.2-hce30654_0.conda - sha256: 73c7100fc6521a6e261b4aa8c2f2630c970cec8a54d5b7945873293e8f0c6f98 - md5: 9aacf373feb68fbf6cab70db465777eb + url: https://conda.anaconda.org/conda-forge/osx-arm64/esbuild-0.24.0-hce30654_0.conda + sha256: dfa1b02c6261587cd4393bb8a0dcd515eb279d579199334d94447b34f025c329 + md5: 6a3e9efecd148bfa60369a5a099aa083 license: MIT license_family: MIT purls: [] - size: 3268434 - timestamp: 1693243834619 + size: 3382290 + timestamp: 1727001073958 - kind: conda name: exceptiongroup - version: 1.2.0 - build: pyhd8ed1ab_2 - build_number: 2 + version: 1.2.2 + build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda - sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d - md5: 8d652ea2ee8eaee02ed8dc820bc794aa + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + sha256: e0edd30c4b7144406bb4da975e6bb97d6bc9c0e999aa4efe66ae108cada5d5b5 + md5: d02ae936e42063ca46af6cdad2dbd1e0 depends: - python >=3.7 license: MIT and PSF-2.0 purls: - - pkg:pypi/exceptiongroup?source=conda-forge-mapping - size: 20551 - timestamp: 1704921321122 + - pkg:pypi/exceptiongroup?source=hash-mapping + size: 20418 + timestamp: 1720869435725 - kind: conda name: execnet version: 2.1.1 @@ -12344,51 +9861,26 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/execnet?source=conda-forge-mapping + - pkg:pypi/execnet?source=hash-mapping size: 38883 timestamp: 1712591929944 - kind: conda name: executing - version: 2.0.1 + version: 2.1.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda - sha256: c738804ab1e6376f8ea63372229a04c8d658dc90fd5a218c6273a2eaf02f4057 - md5: e16be50e378d8a4533b989035b196ab8 + url: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_0.conda + sha256: a52d7516e2e11d3eb10908e10d3eb3f8ef267fea99ed9b09d52d96c4db3441b8 + md5: d0441db20c827c11721889a241df1220 depends: - python >=2.7 license: MIT license_family: MIT purls: - - pkg:pypi/executing?source=conda-forge-mapping - size: 27689 - timestamp: 1698580072627 -- kind: conda - name: exiv2 - version: 0.28.3 - build: h07ad639_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/exiv2-0.28.3-h07ad639_0.conda - sha256: 6a93b5c95e83c3d6bddcd929817ab87a41739c3edbdf9f0b357c8d2ace94d87d - md5: e6f27272d5ba3925c7caae2ba292d941 - depends: - - __osx >=10.15 - - libasprintf >=0.22.5,<1.0a0 - - libbrotlicommon >=1.1.0,<1.2.0a0 - - libbrotlidec >=1.1.0,<1.2.0a0 - - libbrotlienc >=1.1.0,<1.2.0a0 - - libcxx >=16 - - libexpat >=2.6.2,<3.0a0 - - libgettextpo >=0.22.5,<1.0a0 - - libiconv >=1.17,<2.0a0 - - libintl >=0.22.5,<1.0a0 - - libzlib >=1.3.1,<2.0a0 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 1041177 - timestamp: 1720456900109 + - pkg:pypi/executing?source=hash-mapping + size: 28337 + timestamp: 1725214501850 - kind: conda name: exiv2 version: 0.28.3 @@ -12462,105 +9954,117 @@ packages: timestamp: 1720457069043 - kind: conda name: expat - version: 2.6.2 - build: h59595ed_0 + version: 2.6.3 + build: h5888daf_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - sha256: 89916c536ae5b85bb8bf0cfa27d751e274ea0911f04e4a928744735c14ef5155 - md5: 53fb86322bdb89496d7579fe3f02fd61 - depends: - - libexpat 2.6.2 h59595ed_0 - - libgcc-ng >=12 - license: MIT - license_family: MIT - purls: [] - size: 137627 - timestamp: 1710362144873 -- kind: conda - name: expat - version: 2.6.2 - build: h63175ca_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/expat-2.6.2-h63175ca_0.conda - sha256: f5a13d4bc591a4dc210954f492dd59a0ecf9b9d2ab28bf2ece755ca8f69ec1b4 - md5: 52f9dec6758ceb8ce0ea8af9fa13eb1a + url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.3-h5888daf_0.conda + sha256: 65bd479c75ce876f26600cb230d6ebc474086e31fa384af9b4282b36842ed7e2 + md5: 6595440079bed734b113de44ffd3cd0a depends: - - libexpat 2.6.2 h63175ca_0 + - __glibc >=2.17,<3.0.a0 + - libexpat 2.6.3 h5888daf_0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 229627 - timestamp: 1710362661692 + size: 137891 + timestamp: 1725568750673 - kind: conda - name: expat - version: 2.6.2 - build: h73e2aa4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/expat-2.6.2-h73e2aa4_0.conda - sha256: 0fd1befb18d9d937358a90d5b8f97ac2402761e9d4295779cbad9d7adfb47976 - md5: dc0882915da2ec74696ad87aa2350f27 + name: fgt + version: 0.4.11 + build: h745860c_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/fgt-0.4.11-h745860c_1.conda + sha256: 48e89f11689e3d4595adef644537e45544a8852610708670a8d63dab09464e69 + md5: 9bd0d49b99c01f83fc858a913d893a7a depends: - - libexpat 2.6.2 h73e2aa4_0 - license: MIT - license_family: MIT + - __osx >=11.0 + - eigen + - libcxx >=17 + - openmpi + license: LGPL-2.0-or-later + license_family: LGPL purls: [] - size: 126612 - timestamp: 1710362607162 + size: 43263 + timestamp: 1729705335397 - kind: conda - name: expat - version: 2.6.2 - build: hebf3989_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.6.2-hebf3989_0.conda - sha256: 9ac22553a4d595d7e4c9ca9aa09a0b38da65314529a7a7008edc73d3f9e7904a - md5: de0cff0ec74f273c4b6aa281479906c3 + name: fgt + version: 0.4.11 + build: h87365c0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/fgt-0.4.11-h87365c0_1.conda + sha256: 9d85b3952ea29acaf4b9d9fadbd67e74ca0381e768cc3aba195491f6dd4c4dc9 + md5: 24a719d37a8902acce3d332aefa11445 depends: - - libexpat 2.6.2 hebf3989_0 - license: MIT - license_family: MIT + - __glibc >=2.17,<3.0.a0 + - eigen + - libgcc >=13 + - libstdcxx >=13 + - openmpi + license: LGPL-2.0-or-later + license_family: LGPL purls: [] - size: 124594 - timestamp: 1710362455984 + size: 46579 + timestamp: 1729705111944 - kind: conda name: filelock - version: 3.15.4 + version: 3.16.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - sha256: f78d9c0be189a77cb0c67d02f33005f71b89037a85531996583fb79ff3fe1a0a - md5: 0e7e4388e9d5283e22b35a9443bdbcc9 + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + sha256: 1da766da9dba05091af87977922fe60dc7464091a9ccffb3765d403189d39be4 + md5: 916f8ec5dd4128cd5f207a3c4c07b2c6 depends: - python >=3.7 license: Unlicense purls: - - pkg:pypi/filelock?source=conda-forge-mapping - size: 17592 - timestamp: 1719088395353 + - pkg:pypi/filelock?source=hash-mapping + size: 17357 + timestamp: 1726613593584 - kind: conda name: fmt - version: 10.2.1 - build: h00ab1b0_0 + version: 11.0.2 + build: h420ef59_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-11.0.2-h420ef59_0.conda + sha256: 62e6508d5bbde4aa36f7b7658ce2d8fdd0e509c0d1661735c1bd1bed00e070c4 + md5: 0e44849fd4764e9f85ed8caa9f24c118 + depends: + - __osx >=11.0 + - libcxx >=16 + license: MIT + license_family: MIT + purls: [] + size: 179582 + timestamp: 1723046771323 +- kind: conda + name: fmt + version: 11.0.2 + build: h434a139_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - sha256: 7b9ba098a3661e023c3555e01554354ac4891af8f8998e85f0fcbfdac79fc0d4 - md5: 35ef8bc24bd34074ebae3c943d551728 + url: https://conda.anaconda.org/conda-forge/linux-64/fmt-11.0.2-h434a139_0.conda + sha256: c620e2ab084948985ae9b8848d841f603e8055655513340e04b6cf129099b5ca + md5: 995f7e13598497691c1dc476d889bc04 depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 - libstdcxx-ng >=12 license: MIT license_family: MIT purls: [] - size: 193853 - timestamp: 1704454679950 + size: 198533 + timestamp: 1723046725112 - kind: conda name: fmt - version: 10.2.1 - build: h181d51b_0 + version: 11.0.2 + build: h7f575de_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - sha256: 4593d75b6a1e0b5b43fdcba6b968537638a6e469521fb4c3073929f973891828 - md5: 4253b572559cc775cae49def5c97b3c0 + url: https://conda.anaconda.org/conda-forge/win-64/fmt-11.0.2-h7f575de_0.conda + sha256: 951c6c8676611e7a9f9b868d008e8fce55e9097996ecef66a09bd2eedfe7fe5a + md5: 4bd427b6423eead4edea9533dc5381ba depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -12568,47 +10072,17 @@ packages: license: MIT license_family: MIT purls: [] - size: 185170 - timestamp: 1704455079451 -- kind: conda - name: fmt - version: 10.2.1 - build: h2ffa867_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - sha256: 8570ae6fb7cd1179c646e2c48105e91b3ed8ba15855f12965cc5c9719753c06f - md5: 8cccde6755bdd787f9840f38a34b4e7d - depends: - - libcxx >=15 - license: MIT - license_family: MIT - purls: [] - size: 174209 - timestamp: 1704454873305 -- kind: conda - name: fmt - version: 10.2.1 - build: h7728843_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - sha256: 2faeccfe2b9f7c028cf271f66757365fe43b15a1234084c16f159646a646ccbc - md5: ab205d53bda43d03f5c5b993ccb406b3 - depends: - - libcxx >=15 - license: MIT - license_family: MIT - purls: [] - size: 181468 - timestamp: 1704454938658 + size: 188872 + timestamp: 1723047364214 - kind: conda name: folium - version: 0.17.0 + version: 0.18.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/folium-0.17.0-pyhd8ed1ab_0.conda - sha256: d5c4153cad0154112daf0db648afe82ad7930523e2cb9f7379bb2d148fac0537 - md5: 9b96a3e6e0473b5722fa4fbefcefcded + url: https://conda.anaconda.org/conda-forge/noarch/folium-0.18.0-pyhd8ed1ab_0.conda + sha256: b0692047888db2875cbdb3280aec69e9d88c229adf830c4f88357796d35ce006 + md5: 26a1457f3e698dc0c9e656874cc6b623 depends: - branca >=0.6.0 - jinja2 >=2.9 @@ -12619,9 +10093,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/folium?source=conda-forge-mapping - size: 78894 - timestamp: 1718606077008 + - pkg:pypi/folium?source=hash-mapping + size: 79126 + timestamp: 1729664648900 - kind: conda name: font-ttf-dejavu-sans-mono version: '2.37' @@ -12667,92 +10141,80 @@ packages: - kind: conda name: font-ttf-ubuntu version: '0.83' - build: h77eed37_2 - build_number: 2 + build: h77eed37_3 + build_number: 3 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_2.conda - sha256: c940f6e969143e13a3a9660abb3c7e7e23b8319efb29dbdd5dee0b9939236e13 - md5: cbbe59391138ea5ad3658c76912e147f + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + sha256: 2821ec1dc454bd8b9a31d0ed22a7ce22422c0aef163c59f49dfdf915d0f0ca14 + md5: 49023d73832ef61042f6a237cb2687e7 license: LicenseRef-Ubuntu-Font-Licence-Version-1.0 license_family: Other purls: [] - size: 1622566 - timestamp: 1714483134319 -- kind: conda - name: fontconfig - version: 2.14.2 - build: h14ed4e7_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda - sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83 - md5: 0f69b688f52ff6da70bccb7ff7001d1d - depends: - - 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 - license: MIT - license_family: MIT - purls: [] - size: 272010 - timestamp: 1674828850194 + size: 1620504 + timestamp: 1727511233259 - kind: conda name: fontconfig - version: 2.14.2 - build: h5bb23bf_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.14.2-h5bb23bf_0.conda - sha256: f63e6d1d6aef8ba6de4fc54d3d7898a153479888d40ffdf2e4cfad6f92679d34 - md5: 86cc5867dfbee4178118392bae4a3c89 + version: 2.15.0 + build: h1383a14_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.15.0-h1383a14_1.conda + sha256: f79d3d816fafbd6a2b0f75ebc3251a30d3294b08af9bb747194121f5efa364bc + md5: 7b29f48742cea5d1ccb5edd839cb5621 depends: - - expat >=2.5.0,<3.0a0 + - __osx >=11.0 - freetype >=2.12.1,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libexpat >=2.6.3,<3.0a0 + - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] - size: 237068 - timestamp: 1674829100063 + size: 234227 + timestamp: 1730284037572 - kind: conda name: fontconfig - version: 2.14.2 - build: h82840c6_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.14.2-h82840c6_0.conda - sha256: 7094917fc6758186e17c61d8ee8fd2bbbe9f303b4addac61d918fa415c497e2b - md5: f77d47ddb6d3cc5b39b9bdf65635afbb + version: 2.15.0 + build: h765892d_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda + sha256: ed122fc858fb95768ca9ca77e73c8d9ddc21d4b2e13aaab5281e27593e840691 + md5: 9bb0026a2131b09404c59c4290c697cd depends: - - expat >=2.5.0,<3.0a0 - freetype >=2.12.1,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libexpat >=2.6.3,<3.0a0 + - 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 license: MIT license_family: MIT purls: [] - size: 237668 - timestamp: 1674829263740 + size: 192355 + timestamp: 1730284147944 - kind: conda name: fontconfig - version: 2.14.2 - build: hbde0cde_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.14.2-hbde0cde_0.conda - sha256: 643f2b95be68abeb130c53d543dcd0c1244bebabd58c774a21b31e4b51ac3c96 - md5: 08767992f1a4f1336a257af1241034bd + version: 2.15.0 + build: h7e30c49_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda + sha256: 7093aa19d6df5ccb6ca50329ef8510c6acb6b0d8001191909397368b65b02113 + md5: 8f5b0b297b59e1ac160ad4beec99dbee depends: - - expat >=2.5.0,<3.0a0 + - __glibc >=2.17,<3.0.a0 - freetype >=2.12.1,<3.0a0 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vs2015_runtime >=14.29.30139 + - libexpat >=2.6.3,<3.0a0 + - libgcc >=13 + - libuuid >=2.38.1,<3.0a0 + - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] - size: 190111 - timestamp: 1674829354122 + size: 265599 + timestamp: 1730283881107 - kind: conda name: fonts-conda-ecosystem version: '1' @@ -12790,141 +10252,130 @@ packages: timestamp: 1566932280397 - kind: conda name: fonttools - version: 4.53.1 - build: py310h5b4e0ec_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py310h5b4e0ec_0.conda - sha256: 704527a916f81811043921205a7aa4fc8463c6e1069c771ad51078290529e9a9 - md5: 2c5257cb35d1946f5e80a0cfd69ed7ec + version: 4.54.1 + build: py310h38315fa_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py310h38315fa_1.conda + sha256: 109ac95a475e8622a6f548159be60b1521aef7bd471aae150d427ece58ba3eaa + md5: 4854c75f952c3883231a5c26c02b5053 depends: - - __glibc >=2.17,<3.0.a0 - brotli - - libgcc-ng >=12 - munkres - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - unicodedata2 >=14.0.0 + - ucrt >=10.0.20348.0 + - unicodedata2 >=15.1.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2359986 - timestamp: 1720359222661 + - pkg:pypi/fonttools?source=hash-mapping + size: 1949495 + timestamp: 1729530841973 - kind: conda name: fonttools - version: 4.53.1 - build: py310h936d840_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py310h936d840_0.conda - sha256: 9f4166f08554aa570bc2db8ff3fb06acacddf40db90ade78bb67cb1fddafacb7 - md5: 4723569dda157bef259d2568585c1c8a - depends: - - __osx >=10.13 - - brotli - - munkres - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - unicodedata2 >=14.0.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2255941 - timestamp: 1720359299042 -- kind: conda - name: fonttools - version: 4.53.1 - build: py310ha6dd24b_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py310ha6dd24b_0.conda - sha256: 67807e288e2905a73484e447e4f0fcf866d1093be849ee26831b3f136b1de236 - md5: fc62f751224a4fb32c25bf338f68c28e - depends: - - __osx >=11.0 + version: 4.54.1 + build: py310h5799be4_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py310h5799be4_1.conda + sha256: af71d300cce0b591cfd3b6fc17aacc367787163a86345b5b5d380a397871e3f0 + md5: 74aa6ca004b9ad6d335739a284764f91 + depends: + - __osx >=11.0 - brotli - munkres - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - - unicodedata2 >=14.0.0 + - unicodedata2 >=15.1.0 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2238131 - timestamp: 1720359370974 + - pkg:pypi/fonttools?source=hash-mapping + size: 2245078 + timestamp: 1729530730236 - kind: conda name: fonttools - version: 4.53.1 - build: py310ha8f682b_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py310ha8f682b_0.conda - sha256: 71940803ccc516c06363badfc4d83b3f730f5916dbacbf6d1f42457785db9525 - md5: 2cc3108eee7252ac8dcf22060a97be8d + version: 4.54.1 + build: py310h89163eb_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py310h89163eb_1.conda + sha256: 2bf67457397185ca039d7c1fa1f2984c8d22df74ac56197b59326d3038e82f41 + md5: d30cf58ede43135249a18c5926a96d3f depends: + - __glibc >=2.17,<3.0.a0 - brotli + - libgcc >=13 - munkres - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - unicodedata2 >=14.0.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - unicodedata2 >=15.1.0 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 1942539 - timestamp: 1720359509701 + - pkg:pypi/fonttools?source=hash-mapping + size: 2345893 + timestamp: 1729530494277 - kind: conda name: fonttools - version: 4.53.1 - build: py311h61187de_0 + version: 4.54.1 + build: py311h2dc5d0c_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py311h61187de_0.conda - sha256: 4d12e34631e2a883fdf723617fd338b35b0a5cc901fe110c6642cdd03524abb6 - md5: bcbe6c9db1c25900c3808b8974e1bb90 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py311h2dc5d0c_1.conda + sha256: cdef0c6c6597a759b7db2c31eeab773c1097f053ab40f81f0919e2b2a2f56293 + md5: 7336fc1b2ead4cbdda1268dd6b7a6c38 depends: - __glibc >=2.17,<3.0.a0 - brotli - - libgcc-ng >=12 + - libgcc >=13 - munkres - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - unicodedata2 >=15.1.0 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2906675 - timestamp: 1720359181737 + - pkg:pypi/fonttools?source=hash-mapping + size: 2876108 + timestamp: 1729530501689 - kind: conda name: fonttools - version: 4.53.1 - build: py311h72ae277_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py311h72ae277_0.conda - sha256: a7f9b44870386c7fbb67ede9a2e7736e612e0b72c08a12353abd528c80e1adbf - md5: 8fced2d56f0b77c803cf31d9cd06e7a5 - depends: - - __osx >=10.13 + version: 4.54.1 + build: py311h5082efb_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py311h5082efb_1.conda + sha256: 829c0f2b1656bef5569e41ca2c9ca1dc70704f6adf2b437b10781c6b2a92f748 + md5: 9479dd6402cf6085d1f27b4c557d1405 + depends: - brotli - munkres - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - unicodedata2 >=15.1.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2826047 - timestamp: 1720359212068 + - pkg:pypi/fonttools?source=hash-mapping + size: 2469782 + timestamp: 1729530692321 - kind: conda name: fonttools - version: 4.53.1 - build: py311hd3f4193_0 + version: 4.54.1 + build: py311h56c23cb_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py311hd3f4193_0.conda - sha256: 3b72a418e742b6440ad6591b3f249a0ec3db85143bdb80dfe468525e927b412f - md5: 23c938d8d8c598d230f3f6658ee4ec56 + url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py311h56c23cb_1.conda + sha256: 25a2f4bc2e1fb7ab428f39c86305664b5c0c43d22bc88fc665d6902360e66f47 + md5: 435d43c6653a8e3e6ec5b4b686cba58a depends: - __osx >=11.0 - brotli @@ -12932,85 +10383,69 @@ packages: - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 + - unicodedata2 >=15.1.0 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2771834 - timestamp: 1720359359538 -- kind: conda - name: fonttools - version: 4.53.1 - build: py311he736701_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py311he736701_0.conda - sha256: bc3770f12525e47778bcd80e95a60f7b6f26ba7b037909dfca232867e6b0900c - md5: ff5f337c093df4d814ae6de175113610 - depends: - - brotli - - munkres - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - license_family: MIT - purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2466222 - timestamp: 1720359708882 + - pkg:pypi/fonttools?source=hash-mapping + size: 2782220 + timestamp: 1729530656712 - kind: conda name: fonttools - version: 4.53.1 - build: py312h41a817b_0 + version: 4.54.1 + build: py312h178313f_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.1-py312h41a817b_0.conda - sha256: b1d9f95c13b9caa26689875b0af654b7f464e273eea94abdf5b1be1baa6c8870 - md5: da921c56bcf69a8b97216ecec0cc4015 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.54.1-py312h178313f_1.conda + sha256: 45f405d6d1ef528226c20b681373db0bdb79cc70fec1e495003247b0d3d00140 + md5: bbbf5fa5cab622c33907bc8d7eeea9f7 depends: - __glibc >=2.17,<3.0.a0 - brotli - - libgcc-ng >=12 + - libgcc >=13 - munkres - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - unicodedata2 >=15.1.0 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2847552 - timestamp: 1720359185195 + - pkg:pypi/fonttools?source=hash-mapping + size: 2827447 + timestamp: 1729530553018 - kind: conda name: fonttools - version: 4.53.1 - build: py312h4389bb4_0 + version: 4.54.1 + build: py312h31fea79_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.1-py312h4389bb4_0.conda - sha256: 508b8443a382eec4a6c389e0ab43543797a99172982d9999df8972bfa42e2829 - md5: d1d90dc02033f12ab8020dbb653a9fc8 + url: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.54.1-py312h31fea79_1.conda + sha256: d26b32ddef1681528c2f2dcc2a839110123064024f6714450494acc8b6c24d46 + md5: fd93ec7f1eb77f3c06b188bc35733d34 depends: - brotli - munkres - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 + - unicodedata2 >=15.1.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2412400 - timestamp: 1720359443784 + - pkg:pypi/fonttools?source=hash-mapping + size: 2416144 + timestamp: 1729530841909 - kind: conda name: fonttools - version: 4.53.1 - build: py312h7e5086c_0 + version: 4.54.1 + build: py312ha0ccf2a_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.1-py312h7e5086c_0.conda - sha256: 981798c317c040bbfecce20f1d0da7c29ca26988fa6940d0310f095a8ce694b2 - md5: a8a42a73e820792f338b5cf220dab07e + url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.54.1-py312ha0ccf2a_1.conda + sha256: 7db92b5980ac60c362d2c7fa9c75c21578b0ebe58a23ba6e123f47d4d3baca53 + md5: 1d203fe9d62f4d2fea1c955d77bc642a depends: - __osx >=11.0 - brotli @@ -13018,32 +10453,13 @@ packages: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - unicodedata2 >=15.1.0 license: MIT license_family: MIT purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2723003 - timestamp: 1720359411794 -- kind: conda - name: fonttools - version: 4.53.1 - build: py312hbd25219_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.1-py312hbd25219_0.conda - sha256: bfb83e8a6e95e7d50880cd4811e2312e315d7e8b95b99a405f4056c3162e6ee2 - md5: 56b85d2b2f034ed31feaaa0b90c37b7f - depends: - - __osx >=10.13 - - brotli - - munkres - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/fonttools?source=conda-forge-mapping - size: 2714145 - timestamp: 1720359359694 + - pkg:pypi/fonttools?source=hash-mapping + size: 2730304 + timestamp: 1729530557674 - kind: conda name: fqdn version: 1.5.1 @@ -13059,7 +10475,7 @@ packages: license: MPL-2.0 license_family: MOZILLA purls: - - pkg:pypi/fqdn?source=conda-forge-mapping + - pkg:pypi/fqdn?source=hash-mapping size: 14395 timestamp: 1638810388635 - kind: conda @@ -13079,22 +10495,6 @@ packages: purls: [] size: 634972 timestamp: 1694615932610 -- kind: conda - name: freetype - version: 2.12.1 - build: h60636b9_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda - sha256: b292cf5a25f094eeb4b66e37d99a97894aafd04a5683980852a8cbddccdc8e4e - md5: 25152fce119320c980e5470e64834b50 - depends: - - libpng >=1.6.39,<1.7.0a0 - - libzlib >=1.2.13,<2.0.0a0 - license: GPL-2.0-only OR FTL - purls: [] - size: 599300 - timestamp: 1694616137838 - kind: conda name: freetype version: 2.12.1 @@ -13130,23 +10530,6 @@ packages: purls: [] size: 510306 timestamp: 1694616398888 -- kind: conda - name: freexl - version: 2.0.0 - build: h3ec172f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3ec172f_0.conda - sha256: 9d59f1894c3b526e6806e376e979b81d0df23a836415122b86458aef72cda24a - md5: 640c34a8084e2a812bcee5b804597fc9 - depends: - - libexpat >=2.5.0,<3.0a0 - - libiconv >=1.17,<2.0a0 - - minizip >=4.0.1,<5.0a0 - license: MPL-1.1 - license_family: MOZILLA - purls: [] - size: 54007 - timestamp: 1694952882265 - kind: conda name: freexl version: 2.0.0 @@ -13204,21 +10587,21 @@ packages: timestamp: 1694952828719 - kind: conda name: fsspec - version: 2024.6.1 + version: 2024.10.0 build: pyhff2d567_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.6.1-pyhff2d567_0.conda - sha256: 2b8e98294c70d9a33ee0ef27539a8a8752a26efeafa0225e85dc876ef5bb49f4 - md5: 996bf792cdb8c0ac38ff54b9fde56841 + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.10.0-pyhff2d567_0.conda + sha256: 40bb76981dd49d5869b48925a8975bb7bbe4e33e1e40af4ec06f6bf4a62effd7 + md5: 816dbc4679a64e4417cd1385d661bb31 depends: - python >=3.8 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/fsspec?source=conda-forge-mapping - size: 133141 - timestamp: 1719515065535 + - pkg:pypi/fsspec?source=hash-mapping + size: 134745 + timestamp: 1729608972363 - kind: conda name: future version: 1.0.0 @@ -13233,339 +10616,119 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/future?source=conda-forge-mapping + - pkg:pypi/future?source=hash-mapping size: 364081 timestamp: 1708610254418 - kind: conda name: gcc_impl_linux-64 - version: 14.1.0 - build: h3c94d91_0 + version: 14.2.0 + build: h6b349bd_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.1.0-h3c94d91_0.conda - sha256: 770fa4e28b8a4fa880c3165fc5f959aa2b70e2f4258e3ae870eb7f852e6d4fcd - md5: b0dd0de49e0f3e34f3f636e5c7d149fe + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.2.0-h6b349bd_1.conda + sha256: 0cadb23ebe6d95216c8eab57fdc1e76c8f98a10b8bdd0d922b9ccde94706dd95 + md5: 0551d01d65027359bf011c049f9c6401 depends: - binutils_impl_linux-64 >=2.40 - - libgcc-devel_linux-64 14.1.0 h5d3d1c9_100 - - libgcc-ng >=14.1.0 - - libgomp >=14.1.0 - - libsanitizer 14.1.0 hcba0ae0_0 - - libstdcxx-ng >=14.1.0 + - libgcc >=14.2.0 + - libgcc-devel_linux-64 14.2.0 h41c2201_101 + - libgomp >=14.2.0 + - libsanitizer 14.2.0 h2a3dede_1 + - libstdcxx >=14.2.0 - sysroot_linux-64 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 72030163 - timestamp: 1719539005903 -- kind: conda - name: gdal - version: 3.9.1 - build: py310h0a4269c_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py310h0a4269c_5.conda - sha256: e3acceeed946b4181d6e7b2be7eedf33d8126aaa36e196318159c05f02f4de82 - md5: a3e7c6258a67218e3fff44f4c41169d3 - depends: - - __osx >=10.13 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 - - libgdal 3.9.1 h52f6243_5 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1511468 - timestamp: 1720443144659 -- kind: conda - name: gdal - version: 3.9.1 - build: py310hb8df06e_5 - build_number: 5 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py310hb8df06e_5.conda - sha256: 5dd976f228c20b96462b9a2c195b1f589b8ead43d8fde87303a614bbfd332346 - md5: 0a74115c892d4f883597a314bb774fd3 - depends: - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgdal 3.9.1 h26bd040_5 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1468243 - timestamp: 1720444409086 -- kind: conda - name: gdal - version: 3.9.1 - build: py310hb8ea937_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py310hb8ea937_5.conda - sha256: 2be5194701e25007414cf2126188b528ee825c862afaf78c138fcf890dfe83be - md5: 07ac9bbc813625abbc896445e53ca106 - depends: - - __glibc >=2.17,<3.0.a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgcc-ng >=12 - - libgdal 3.9.1 ha654e03_5 - - libstdcxx-ng >=12 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1532057 - timestamp: 1720442099173 -- kind: conda - name: gdal - version: 3.9.1 - build: py310hf655ea3_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py310hf655ea3_5.conda - sha256: 66ec4f4cdf51724baee9a613431c2a5afdf8825cd41bb1b5f1fd36c5f63eab80 - md5: 6ef72c9ec13d6c53fe3aead599e0cc38 - depends: - - __osx >=11.0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 - - libgdal 3.9.1 h750986c_5 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1496495 - timestamp: 1720443652967 -- kind: conda - name: gdal - version: 3.9.1 - build: py311h055bc3f_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py311h055bc3f_5.conda - sha256: f8c6af8571b9c3a09a4cafba4fee5459bff9f9bb9a8d430d46a05db06d9b0440 - md5: 6f77d86804c49f310a5387bbc64b0549 - depends: - - __osx >=10.13 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 - - libgdal 3.9.1 h52f6243_5 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1695508 - timestamp: 1720442802097 -- kind: conda - name: gdal - version: 3.9.1 - build: py311h1c6d2b9_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py311h1c6d2b9_5.conda - sha256: fe6e6018a77d638d8f84b748b7e9d235a4945e459bab083b89f4a07f7867d830 - md5: 8436c8f0aa6404b17594e1d0dfddbc35 - depends: - - __osx >=11.0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 - - libgdal 3.9.1 h750986c_5 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1681033 - timestamp: 1720444069850 -- kind: conda - name: gdal - version: 3.9.1 - build: py311h6622a2a_5 - build_number: 5 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py311h6622a2a_5.conda - sha256: b442075e62fafd6108b8ced1f1e093613c3b3fa1371d3b9eda8d1be1e0a914af - md5: 9b69ce90c3e95fe011c7cb496160fa53 - depends: - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgdal 3.9.1 h26bd040_5 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1650641 - timestamp: 1720443807312 + size: 72496116 + timestamp: 1729027827248 - kind: conda name: gdal - version: 3.9.1 - build: py311hf92cf48_5 - build_number: 5 + version: 3.9.2 + build: py312h1299960_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py311hf92cf48_5.conda - sha256: 2c10b224dbdcd8eadc3269d905d6c84640b2f3778196546526b4bf67bc0b2d63 - md5: 9861779b38731c663c8352ba5effaebe + url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.2-py312h1299960_7.conda + sha256: 656eea557c38f713cb6d94efa798ecae9b70b807976d2e99fd7080462575098d + md5: 9cf27e3f9d97ea13f250db9253a25dc8 depends: - __glibc >=2.17,<3.0.a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgcc-ng >=12 - - libgdal 3.9.1 ha654e03_5 - - libstdcxx-ng >=12 + - libgcc >=13 + - libgdal-core 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 - libxml2 >=2.12.7,<3.0a0 - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: MIT + license_family: MIT purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1712008 - timestamp: 1720441838330 + - pkg:pypi/gdal?source=hash-mapping + size: 1698682 + timestamp: 1728293498040 - kind: conda name: gdal - version: 3.9.1 - build: py312h7090a6d_5 - build_number: 5 + version: 3.9.2 + build: py312h16ac12d_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.1-py312h7090a6d_5.conda - sha256: f8bb16743e639ccb22f693862f727949213b8ea4363fa14c21ceb1d2c9b3d603 - md5: 32e1ccfc90b7d5826b555929cb322e5f + url: https://conda.anaconda.org/conda-forge/win-64/gdal-3.9.2-py312h16ac12d_7.conda + sha256: 4247071c2216b9813f6732edc9c4728bb11f6877a1c87000b6695eebef741641 + md5: 4a093f053f2827cfa102304bf945e845 depends: - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgdal 3.9.1 h26bd040_5 + - libgdal-core 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 - libxml2 >=2.12.7,<3.0a0 - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT + license_family: MIT purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1634942 - timestamp: 1720444102295 -- kind: conda - name: gdal - version: 3.9.1 - build: py312h86af8fa_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.9.1-py312h86af8fa_5.conda - sha256: 37912e310ed07e274bb62d2c47a67d1a9d512eead5ce57de83b0494791b97232 - md5: c39ce48769813bd85174fcdfd4e5f806 - depends: - - __glibc >=2.17,<3.0.a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgcc-ng >=12 - - libgdal 3.9.1 ha654e03_5 - - libstdcxx-ng >=12 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1692655 - timestamp: 1720441905006 -- kind: conda - name: gdal - version: 3.9.1 - build: py312h9b1be66_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gdal-3.9.1-py312h9b1be66_5.conda - sha256: e8b4d43e17535bea63a6814b9192869af74c55ae0925c49e2a6ae8430286fbab - md5: 8b1661fe468d730194317c826d1745d3 - depends: - - __osx >=10.13 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 - - libgdal 3.9.1 h52f6243_5 - - libxml2 >=2.12.7,<3.0a0 - - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1676043 - timestamp: 1720443028714 + - pkg:pypi/gdal?source=hash-mapping + size: 1634719 + timestamp: 1728294392653 - kind: conda name: gdal - version: 3.9.1 - build: py312hf4c14af_5 - build_number: 5 + version: 3.9.2 + build: py312h936c49d_7 + build_number: 7 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.1-py312hf4c14af_5.conda - sha256: d6e20d6de2fb574524e57ab2dffab3a012899f753f1c6b558e86f11646371a6f - md5: c79e90e82d26de6ddab283284603a368 + url: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.9.2-py312h936c49d_7.conda + sha256: ffd8d88c9e7d3b8617df4cbe9ad4755995ef5f180bfb6afc50e1f8a4f68446a3 + md5: 305595575712364e99c69bf43d7078f0 depends: - __osx >=11.0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 - - libgdal 3.9.1 h750986c_5 + - libcxx >=17 + - libgdal-core 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 - libxml2 >=2.12.7,<3.0a0 - numpy >=1.19,<3 - - openssl >=3.3.1,<4.0a0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT + license_family: MIT purls: - - pkg:pypi/gdal?source=conda-forge-mapping - size: 1662041 - timestamp: 1720443867366 + - pkg:pypi/gdal?source=hash-mapping + size: 1662506 + timestamp: 1728293877630 - kind: conda name: geopandas version: 1.0.1 - build: pyhd8ed1ab_0 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_0.conda - sha256: 6d3f8148d88b1f2c100e03fce441f19577f6a4b69e3a2c57d522b48010d84f5f - md5: efef4ce75a678216d510d08222845c7f + url: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.0.1-pyhd8ed1ab_1.conda + sha256: ea0e200967b93a1342670bee137917e93d04742f3c3c626fe435ebb29462bbd7 + md5: 79a9a8d2fd39ecb4081c0df0c10135dc depends: - folium - - geopandas-base 1.0.1 pyha770c72_0 + - geopandas-base 1.0.1 pyha770c72_1 - mapclassify >=2.4.0 - matplotlib-base - pyogrio >=0.7.2 @@ -13574,19 +10737,19 @@ packages: - xyzservices license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/geopandas?source=conda-forge-mapping - size: 7438 - timestamp: 1719933423912 + purls: [] + size: 7545 + timestamp: 1726898026216 - kind: conda name: geopandas-base version: 1.0.1 - build: pyha770c72_0 + build: pyha770c72_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_0.conda - sha256: b07d76f79cc3b1dc7f5a73aeeb0f7c9977526d73237df7e200582fdff48045d1 - md5: 1b7d46173c29e14dde41f97cf5aa61df + url: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.0.1-pyha770c72_1.conda + sha256: 1b0853491a299e95d57ccf3f3c9053a1b7e49fc9b2ad959f321b0717e567e249 + md5: cad8d8e1583463e7642adc72a76dc3c5 depends: - numpy >=1.22 - packaging @@ -13596,286 +10759,224 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/geopandas?source=conda-forge-mapping - size: 239347 - timestamp: 1719933418796 + - pkg:pypi/geopandas?source=hash-mapping + size: 239539 + timestamp: 1726898022361 - kind: conda name: geos - version: 3.12.2 - build: h00cdb27_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.12.2-h00cdb27_0.conda - sha256: dd763dbafab15d06dbb0995dd2d3f72a49539b00f4325cebb31dd8c89bc5bfdf - md5: 9fbc852def80f2d9861be720920e9706 + version: 3.13.0 + build: h5888daf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.0-h5888daf_0.conda + sha256: 5c70d6d16e044859edca85feb9d4f1c3c6062aaf88d650826f5ccdf8c44336de + md5: 40b4ab956c90390e407bb177f8a58bab depends: - - __osx >=11.0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 license: LGPL-2.1-only purls: [] - size: 1393461 - timestamp: 1717689921980 + size: 1869233 + timestamp: 1725676083126 - kind: conda name: geos - version: 3.12.2 + version: 3.13.0 build: h5a68840_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/geos-3.12.2-h5a68840_0.conda - sha256: 9b56fa160cd15891636fa050ecc0f0b4bdaffbcb31de626aae7468e7110df969 - md5: 002724d477c22c106ad05ad90ecce1b8 + url: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.0-h5a68840_0.conda + sha256: 2b46d6f304f70dfca304169299908b558bd1e83992acb5077766eefa3d3fe35f + md5: 08a30fe29a645fc5c768c0968db116d3 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: LGPL-2.1-only purls: [] - size: 1569073 - timestamp: 1717690066933 + size: 1665961 + timestamp: 1725676536384 - kind: conda name: geos - version: 3.12.2 - build: hac33072_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/geos-3.12.2-hac33072_0.conda - sha256: 8ccddcf6263f972122d2ea7388b881194dcd9bc8e1092b4440b7a7572c65b226 - md5: 621d814955342209dc8e7f87c41f1ba0 + version: 3.13.0 + build: hf9b8971_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.13.0-hf9b8971_0.conda + sha256: 273381020b72bde1597d4e07e855ed50ffac083512e61ccbdd99d93f03c6cbf2 + md5: 45b2e9adb9663644b1eefa5300b9eef3 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: LGPL-2.1-only - purls: [] - size: 1737620 - timestamp: 1717689194737 -- kind: conda - name: geos - version: 3.12.2 - build: hf036a51_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/geos-3.12.2-hf036a51_0.conda - sha256: 43f959ac8f463b78a66cd6c2fd772bf68228e360559e74e774150aa2541b1f52 - md5: 69d6f60244f3a1fa8cfc34a9be856f19 - depends: - - __osx >=10.13 - - libcxx >=16 + - __osx >=11.0 + - libcxx >=17 license: LGPL-2.1-only purls: [] - size: 1480180 - timestamp: 1717689508174 -- kind: conda - name: geotiff - version: 1.7.3 - build: h4bbec01_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/geotiff-1.7.3-h4bbec01_1.conda - sha256: 7f5c0d021822e12cd64848caa77d43398cea90381f420d6f973877f3eccc2188 - md5: 94b592c68bb826b1ffee62524b117aa2 - depends: - - __osx >=10.13 - - libcxx >=16 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 - - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.0,<9.5.0a0 - - zlib - license: MIT - license_family: MIT - purls: [] - size: 116364 - timestamp: 1717777078423 + size: 1481430 + timestamp: 1725676193541 - kind: conda name: geotiff version: 1.7.3 - build: h7e5fb84_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h7e5fb84_1.conda - sha256: d25259c84a706a2bf9568c96b68e198a1155c8761b6788fe00d4b15ca21f12f7 - md5: 5e689f0ec059ec6fa91deb388f4d9510 + build: h496ac4d_3 + build_number: 3 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-h496ac4d_3.conda + sha256: 116120a2f4411618800c2a5ce246dfc313298e545ce1ffaa85f28cc3ac2236ac + md5: fb20f424102030f3952532cc7aebdbd8 depends: - - __osx >=11.0 - - libcxx >=16 - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - zlib license: MIT license_family: MIT purls: [] - size: 114637 - timestamp: 1717777096013 + size: 123087 + timestamp: 1726603487099 - kind: conda name: geotiff version: 1.7.3 - build: hd7df778_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.3-hd7df778_1.conda - sha256: 6e1d97f71644fe2e8c1b69c37c1967aed0b4a545605b7f9d540f1e62c06166cc - md5: ebc0058bce6824048891fe3c58bf6acd + build: h77b800c_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-h77b800c_3.conda + sha256: 94c7d002c70a4802a78ac2925ad6b36327cff85e0af6af2825b11a968c81ec20 + md5: 4eb52aecb43e7c72f8e4fca0c386354e depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libstdcxx >=13 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.0,<9.5.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - proj >=9.5.0,<9.6.0a0 - zlib license: MIT license_family: MIT purls: [] - size: 123487 - timestamp: 1717777636505 + size: 131394 + timestamp: 1726602918349 - kind: conda name: geotiff version: 1.7.3 - build: hf7fa9e8_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.3-hf7fa9e8_1.conda - sha256: df00139c22b1b2ab1e1e48bb94c68febcc40a7ca812bd4f228a3e09ac9d2cdf2 - md5: 8ff4fa3ab0b63dc5b214a68839499e41 + build: h82bf549_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.3-h82bf549_3.conda + sha256: 7ce4d6dced3cd313ea170db69d6929b88d77ebd40715f9f38c3bcba3633d6c65 + md5: cb84033d7c167a16c4577272b4493bc5 depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 + - __osx >=11.0 + - libcxx >=17 - libjpeg-turbo >=3.0.0,<4.0a0 - - libstdcxx-ng >=12 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - zlib license: MIT license_family: MIT purls: [] - size: 131934 - timestamp: 1717777012441 + size: 113739 + timestamp: 1726603324989 - kind: conda name: gettext version: 0.22.5 - build: h59595ed_2 - build_number: 2 + build: he02047a_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-h59595ed_2.conda - sha256: 386181254ddd2aed1fccdfc217da5b6545f6df4e9979ad8e08f5e91e22eaf7dc - md5: 219ba82e95d7614cf7140d2a4afc0926 + url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.22.5-he02047a_3.conda + sha256: c3d9a453f523acbf2b3e1c82a42edfc7c7111b4686a2180ab48cb9b51a274218 + md5: c7f243bbaea97cd6ea1edd693270100e depends: - - gettext-tools 0.22.5 h59595ed_2 - - libasprintf 0.22.5 h661eb56_2 - - libasprintf-devel 0.22.5 h661eb56_2 + - __glibc >=2.17,<3.0.a0 + - gettext-tools 0.22.5 he02047a_3 + - libasprintf 0.22.5 he8f35ee_3 + - libasprintf-devel 0.22.5 he8f35ee_3 - libgcc-ng >=12 - - libgettextpo 0.22.5 h59595ed_2 - - libgettextpo-devel 0.22.5 h59595ed_2 + - libgettextpo 0.22.5 he02047a_3 + - libgettextpo-devel 0.22.5 he02047a_3 - libstdcxx-ng >=12 license: LGPL-2.1-or-later AND GPL-3.0-or-later purls: [] - size: 475058 - timestamp: 1712512357949 + size: 479452 + timestamp: 1723626088190 - kind: conda name: gettext-tools version: 0.22.5 - build: h59595ed_2 - build_number: 2 + build: he02047a_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-h59595ed_2.conda - sha256: 67d7b1d6fe4f1c516df2000640ec7dcfebf3ff6ea0785f0276870e730c403d33 - md5: 985f2f453fb72408d6b6f1be0f324033 + url: https://conda.anaconda.org/conda-forge/linux-64/gettext-tools-0.22.5-he02047a_3.conda + sha256: 0fd003953ce1ce9f4569458aab9ffaa397e3be2bc069250e2f05fd93b0ad2976 + md5: fcd2016d1d299f654f81021e27496818 depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 license: GPL-3.0-or-later license_family: GPL purls: [] - size: 2728420 - timestamp: 1712512328692 + size: 2750908 + timestamp: 1723626056740 - kind: conda name: gflags version: 2.2.2 - build: ha925a31_1004 - build_number: 1004 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/gflags-2.2.2-ha925a31_1004.tar.bz2 - sha256: d2dbb918efa9c89ead501347cce753bdbac3f5426d42ae5f48eee73790757f54 - md5: e9442160f56fa442d4ff3eb2e4cf0f22 + build: h5888daf_1005 + build_number: 1005 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda + sha256: 6c33bf0c4d8f418546ba9c250db4e4221040936aef8956353bc764d4877bc39a + md5: d411fc29e338efb48c5fd4576d71d881 depends: - - vc >=14.1,<15.0a0 - - vs2015_runtime >=14.16.27012 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 license: BSD-3-Clause license_family: BSD purls: [] - size: 82263 - timestamp: 1594304231182 + size: 119654 + timestamp: 1726600001928 - kind: conda name: gflags version: 2.2.2 - build: hb1e8313_1004 - build_number: 1004 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.2.2-hb1e8313_1004.tar.bz2 - sha256: 39540f879057ae529cad131644af111a8c3c48b384ec6212de6a5381e0863948 - md5: 3f59cc77a929537e42120faf104e0d16 + build: he0c23c2_1005 + build_number: 1005 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/gflags-2.2.2-he0c23c2_1005.conda + sha256: 4f3c7a4c1ed660737fe4a8d73cbb1770d10bc0fc64ad6391dfa9667fbc898664 + md5: 9b088c904c7d06d17363682e42ecf403 depends: - - libcxx >=10.0.1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: [] - size: 94612 - timestamp: 1599590973213 + size: 76765 + timestamp: 1726600357514 - kind: conda name: gflags version: 2.2.2 - build: hc88da5d_1004 - build_number: 1004 + build: hf9b8971_1005 + build_number: 1005 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hc88da5d_1004.tar.bz2 - sha256: 25d4a20af2e5ace95fdec88970f6d190e77e20074d2f6d3cef766198b76a4289 - md5: aab9ddfad863e9ef81229a1f8852211b - depends: - - libcxx >=11.0.0.rc1 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 86690 - timestamp: 1599590990520 -- kind: conda - name: gflags - version: 2.2.2 - build: he1b5a44_1004 - build_number: 1004 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2 - sha256: a853c0cacf53cfc59e1bca8d6e5cdfe9f38fce836f08c2a69e35429c2a492e77 - md5: cddaf2c63ea4a5901cf09524c490ecdc + url: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda + sha256: fd56ed8a1dab72ab90d8a8929b6f916a6d9220ca297ff077f8f04c5ed3408e20 + md5: 57a511a5905caa37540eb914dfcbf1fb depends: - - libgcc-ng >=7.5.0 - - libstdcxx-ng >=7.5.0 + - __osx >=11.0 + - libcxx >=17 license: BSD-3-Clause license_family: BSD purls: [] - size: 116549 - timestamp: 1594303828933 -- kind: conda - name: gh - version: 2.52.0 - build: h163aea0_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gh-2.52.0-h163aea0_0.conda - sha256: 8445074794faf46e6ebb16b41bdad32d8de6dc7a9d00b9db0f6dd46037582ec9 - md5: ac74dc3aac3fd7bfd87c5f3b3e91735b - depends: - - __osx >=11.0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 19997863 - timestamp: 1719275874208 + size: 82090 + timestamp: 1726600145480 - kind: conda name: gh - version: 2.52.0 + version: 2.60.1 build: h36e2d1d_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/gh-2.52.0-h36e2d1d_0.conda - sha256: dee1397fa6e110e5a9ac7df20d902d80288d71530b331d56fc3b6ccf989b7a6b - md5: 0052c925d9face2c438055211dff3ed3 + url: https://conda.anaconda.org/conda-forge/win-64/gh-2.60.1-h36e2d1d_0.conda + sha256: 29716db5fa9f8a0fec51fe349cd7823d8ff6876e6015c5fd99b461836f19e9c5 + md5: 286e5f11f191c38376eba920626786cc depends: - ucrt >=10.0.20348.0 - vc >=14.3,<15 @@ -13883,51 +10984,38 @@ packages: license: Apache-2.0 license_family: APACHE purls: [] - size: 21192942 - timestamp: 1719276543323 + size: 21570028 + timestamp: 1729895474248 - kind: conda name: gh - version: 2.52.0 - build: he0e2781_0 + version: 2.60.1 + build: h76a2195_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gh-2.52.0-he0e2781_0.conda - sha256: 42a159ada4afa117086a04aae9fc997f21e62e4fb8bab1f1096b4e7b3ca5a2fc - md5: 0e4747d7bf12efb14f468cdf2433b4ec + url: https://conda.anaconda.org/conda-forge/linux-64/gh-2.60.1-h76a2195_0.conda + sha256: 9a1d628b5117753da15d0dc16c43894c5c1a9c97693604863270d5333b56ad0c + md5: 10f760f134ec1883103c62bdeeabc525 + depends: + - __glibc >=2.17,<3.0.a0 license: Apache-2.0 license_family: APACHE purls: [] - size: 21183429 - timestamp: 1719275775374 + size: 21600463 + timestamp: 1729895204812 - kind: conda name: gh - version: 2.52.0 - build: he13f2d6_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gh-2.52.0-he13f2d6_0.conda - sha256: 5ae3afeb72f588f0b57ef93b79cdd5b5a63f8ae4c22e3262547efcf4e58be8cb - md5: e5a9f786b98e0382955d2f9c12cf67ba - depends: - - __osx >=10.13 - constrains: - - __osx>=10.12 + version: 2.60.1 + build: hd02bf31_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/gh-2.60.1-hd02bf31_0.conda + sha256: 42948e7fe84c595408f80a87b9e5a65ea9366dd26595f32ca07c31efd4631717 + md5: a6205e39d068f9bb9ac856115d6e9936 + depends: + - __osx >=11.0 license: Apache-2.0 license_family: APACHE purls: [] - size: 20977209 - timestamp: 1719275830142 -- kind: conda - name: giflib - version: 5.2.2 - build: h10d778d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - sha256: 2c825df829097536314a195ae5cacaa8695209da6b4400135a65d8e23c008ff8 - md5: 03e8c9b4d3da5f3d6eabdd020c2d63ac - license: MIT - license_family: MIT - purls: [] - size: 74516 - timestamp: 1712692686914 + size: 20240010 + timestamp: 1729895395188 - kind: conda name: giflib version: 5.2.2 @@ -13958,174 +11046,115 @@ packages: timestamp: 1712692454246 - kind: conda name: glib - version: 2.80.3 - build: h59d46d9_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/glib-2.80.3-h59d46d9_1.conda - sha256: cb7a6795ea874a47e49f86ce8c62b832980485cffe6151f86657c1e34464f020 - md5: ca9bb84eb3f461909a2e9cb2f43e8782 + version: 2.82.2 + build: h44428e9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/glib-2.82.2-h44428e9_0.conda + sha256: f89540cbca9d981fd65d2f3913e8aaa3fe30bc76aa0f70015be4a2169539025b + md5: f19f985ab043e8843045410f3b99de8a depends: - - __osx >=11.0 - - glib-tools 2.80.3 h8ba3eef_1 + - glib-tools 2.82.2 h4833e2c_0 - libffi >=3.4,<4.0a0 - - libglib 2.80.3 h59d46d9_1 - - libintl >=0.22.5,<1.0a0 - - libintl-devel + - libglib 2.82.2 h2ff4ddf_0 + - packaging - python * license: LGPL-2.1-or-later purls: [] - size: 582433 - timestamp: 1720335212411 + size: 602771 + timestamp: 1729191500463 - kind: conda name: glib - version: 2.80.3 - build: h7025463_1 - build_number: 1 + version: 2.82.2 + build: h7025463_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/glib-2.80.3-h7025463_1.conda - sha256: 892d784d7a8c7444004109734dcf71d11ded0d1dc06d3dfc14227576993239a5 - md5: 13ce8fd2eb07f41c7108f7ad7bb0062e + url: https://conda.anaconda.org/conda-forge/win-64/glib-2.82.2-h7025463_0.conda + sha256: 68632bb5aec001fcd09b7f9ea415fab09ad479eb640fb667141cbb747a8d48b5 + md5: c295bf0ccb6823efdf40ebc5992384c4 depends: - - glib-tools 2.80.3 h4394cf3_1 + - glib-tools 2.82.2 h4394cf3_0 - libffi >=3.4,<4.0a0 - - libglib 2.80.3 h7025463_1 + - libglib 2.82.2 h7025463_0 - libintl >=0.22.5,<1.0a0 - libintl-devel + - packaging - python * - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: LGPL-2.1-or-later purls: [] - size: 572358 - timestamp: 1720335131283 + size: 573556 + timestamp: 1729192350624 - kind: conda name: glib - version: 2.80.3 - build: h736d271_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/glib-2.80.3-h736d271_1.conda - sha256: e50ff494db723788082c6aa711c5f4637b5b5ef42482bbbc42b23c4033e26fa8 - md5: 365632695ccffab11c7355d33f12dac6 + version: 2.82.2 + build: hb1db9eb_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/glib-2.82.2-hb1db9eb_0.conda + sha256: 14efe746ba95154a89208e8478b71fb12ba5f25815029803d30196e561b9d94a + md5: 0642d868967b66fc7f0a5fda24bd7ac2 depends: - - __osx >=10.13 - - glib-tools 2.80.3 h959cb30_1 + - glib-tools 2.82.2 h25d4a46_0 - libffi >=3.4,<4.0a0 - - libglib 2.80.3 h736d271_1 + - libglib 2.82.2 h07bd6cf_0 - libintl >=0.22.5,<1.0a0 - libintl-devel + - packaging - python * license: LGPL-2.1-or-later purls: [] - size: 587790 - timestamp: 1720335219081 + size: 585193 + timestamp: 1729191888264 - kind: conda - name: glib - version: 2.80.3 - build: h8a4344b_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.3-h8a4344b_1.conda - sha256: 51db16c42f0f07aa9d4f922a629d8f68fe3b2590917b8282b7e8ab5ced45c0f6 - md5: a3acc4920c9ca19cb6b295028d606477 + name: glib-tools + version: 2.82.2 + build: h25d4a46_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/glib-tools-2.82.2-h25d4a46_0.conda + sha256: e9855cc94eb05894255811e070adefe158acf7e03e62b223cc27615a5b7bfcbd + md5: a2a75ed0bf49f94478d356424f158c61 depends: - - glib-tools 2.80.3 h73ef956_1 - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - libglib 2.80.3 h8a4344b_1 - - python * + - __osx >=11.0 + - libglib 2.82.2 h07bd6cf_0 + - libintl >=0.22.5,<1.0a0 license: LGPL-2.1-or-later purls: [] - size: 599204 - timestamp: 1720334967965 + size: 99919 + timestamp: 1729191855779 - kind: conda name: glib-tools - version: 2.80.3 - build: h4394cf3_1 - build_number: 1 + version: 2.82.2 + build: h4394cf3_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.80.3-h4394cf3_1.conda - sha256: 0bc71e397b49c622a224b4ecdef338ec215d037d0e385a5870afd5a96197399d - md5: 12d270a5f8b8ae0a9536c1960f21e0aa + url: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.82.2-h4394cf3_0.conda + sha256: 2c502b66fb68ed3dd4ce9f8121ae8f613df08a83c354c55435994dd9a8ee780a + md5: 5aa50df298dca67e20ad24c622d1a27c depends: - - libglib 2.80.3 h7025463_1 + - libglib 2.82.2 h7025463_0 - libintl >=0.22.5,<1.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: LGPL-2.1-or-later purls: [] - size: 95020 - timestamp: 1720335074003 + size: 96434 + timestamp: 1729192296587 - kind: conda name: glib-tools - version: 2.80.3 - build: h73ef956_1 - build_number: 1 + version: 2.82.2 + build: h4833e2c_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.3-h73ef956_1.conda - sha256: 1cbaa71af8ed506c158e345e3f951b4f36506f96e957b9486dea5eaca86252b2 - md5: 99701cdc9a25a333d15265d1d243b2dc - depends: - - libgcc-ng >=12 - - libglib 2.80.3 h8a4344b_1 - license: LGPL-2.1-or-later - purls: [] - size: 113361 - timestamp: 1720334924695 -- kind: conda - name: glib-tools - version: 2.80.3 - build: h8ba3eef_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/glib-tools-2.80.3-h8ba3eef_1.conda - sha256: 59125bc3cbf2622a0f6a91a30f7e55c97b6aca396b4cc3d85d40b03889aaf9d3 - md5: 8922d572276925a3e5e43b5c356d640c - depends: - - __osx >=11.0 - - libglib 2.80.3 h59d46d9_1 - - libintl >=0.22.5,<1.0a0 - license: LGPL-2.1-or-later - purls: [] - size: 99211 - timestamp: 1720335164115 -- kind: conda - name: glib-tools - version: 2.80.3 - build: h959cb30_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/glib-tools-2.80.3-h959cb30_1.conda - sha256: d2580a194cf9403510e4ea43386f83f47f2339382d418f46b125862220b6b58f - md5: 0102ea3086287d7ffb208e5df6bd065a + url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.82.2-h4833e2c_0.conda + sha256: 4d6d7175a841be9dd25f5041c9b9419b25f4f5e8de8f289b3c7914a76f5a24d4 + md5: 12859f91830f58b1803e32846651c6f6 depends: - - __osx >=10.13 - - libglib 2.80.3 h736d271_1 - - libintl >=0.22.5,<1.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libglib 2.82.2 h2ff4ddf_0 license: LGPL-2.1-or-later purls: [] - size: 98691 - timestamp: 1720335148970 -- kind: conda - name: glog - version: 0.7.1 - build: h2790a97_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - sha256: dd56547db8625eb5c91bb0a9fbe8bd6f5c7fbf5b6059d46365e94472c46b24f9 - md5: 06cf91665775b0da395229cd4331b27d - depends: - - __osx >=10.13 - - gflags >=2.2.2,<2.3.0a0 - - libcxx >=16 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 117017 - timestamp: 1718284325443 + size: 114038 + timestamp: 1729191458625 - kind: conda name: glog version: 0.7.1 @@ -14210,22 +11239,6 @@ packages: purls: [] size: 460055 timestamp: 1718980856608 -- kind: conda - name: gmp - version: 6.3.0 - build: hf036a51_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - sha256: 75aa5e7a875afdcf4903b7dc98577672a3dc17b528ac217b915f9528f93c85fc - md5: 427101d13f19c4974552a4e5b072eef1 - depends: - - __osx >=10.13 - - libcxx >=16 - license: GPL-2.0-or-later OR LGPL-3.0-or-later - purls: [] - size: 428919 - timestamp: 1718981041839 - kind: conda name: graphite2 version: 1.3.13 @@ -14243,25 +11256,41 @@ packages: purls: [] size: 96855 timestamp: 1711634169756 +- kind: conda + name: graphite2 + version: 1.3.13 + build: h63175ca_1003 + build_number: 1003 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.13-h63175ca_1003.conda + sha256: 25040a4f371b9b51663f546bac620122c237fa1d5d32968e21b0751af9b7f56f + md5: 3194499ee7d1a67404a87d0eefdd92c6 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-2.0-or-later + license_family: LGPL + purls: [] + size: 95406 + timestamp: 1711634622644 - kind: conda name: griffe - version: 0.47.0 + version: 1.5.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/griffe-0.47.0-pyhd8ed1ab_0.conda - sha256: 870cd50f0fbc9b8b7f9866b82f9ebdf395fa768d5c824ae748d7ebc89830ca3b - md5: 7ccc670475bc540c67a9281f2122efee + url: https://conda.anaconda.org/conda-forge/noarch/griffe-1.5.1-pyhd8ed1ab_0.conda + sha256: 591bf3247a0872b76e2cf57cbdb71762913568390f5a745fe0f3f779a16459a9 + md5: 87db2aa0738c4acc5f565388d519fb25 depends: - - astunparse >=1.6 - colorama >=0.4 - - python >=3.8 - license: MIT - license_family: MIT + - python >=3.9 + license: ISC purls: - - pkg:pypi/griffe?source=conda-forge-mapping - size: 93598 - timestamp: 1718730712927 + - pkg:pypi/griffe?source=hash-mapping + size: 97620 + timestamp: 1729348988898 - kind: conda name: gsl version: '2.7' @@ -14278,22 +11307,6 @@ packages: purls: [] size: 2734398 timestamp: 1626369562748 -- kind: conda - name: gsl - version: '2.7' - build: h93259b0_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gsl-2.7-h93259b0_0.tar.bz2 - sha256: 8550d64004810fa0b5f552d1f21f9fe51483cd30d2d3200d7b0c5e324f7e6995 - md5: b4942b1ee2a52fd67f446074488d774d - depends: - - libblas >=3.8.0,<4.0a0 - - libcblas >=3.8.0,<4.0a0 - license: GPL-3.0-or-later - license_family: GPL - purls: [] - size: 3221488 - timestamp: 1626369980688 - kind: conda name: gsl version: '2.7' @@ -14331,65 +11344,49 @@ packages: timestamp: 1626369596591 - kind: conda name: gst-plugins-base - version: 1.24.5 - build: h0e442b8_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gst-plugins-base-1.24.5-h0e442b8_0.conda - sha256: 49a7f69a75883cfac24ef7b5365d3ffcab2a0441e8017060be0627fe402a0237 - md5: 6a3431dd5cd55b6f6b1b253a018cb6ff - depends: - - __osx >=10.13 - - gstreamer 1.24.5 hbc75551_0 - - libcxx >=16 - - libglib >=2.80.2,<3.0a0 - - libintl >=0.22.5,<1.0a0 - - libogg >=1.3.4,<1.4.0a0 - - libopus >=1.3.1,<2.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libvorbis >=1.3.7,<1.4.0a0 - - libzlib >=1.3.1,<2.0a0 - license: LGPL-2.0-or-later - license_family: LGPL - purls: [] - size: 2418185 - timestamp: 1718924508129 -- kind: conda - name: gst-plugins-base - version: 1.24.5 - build: h40577aa_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gst-plugins-base-1.24.5-h40577aa_0.conda - sha256: 2d50960660a35593d411d3ee5678e5d3efb2e0654f29bc1b8ff6dd913169f206 - md5: 8466f595ab272fa8d8bd7d8e1392552c + version: 1.24.7 + build: h0a52356_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.7-h0a52356_0.conda + sha256: 6606a2686c0aed281a60fb546703e62c66ea9afa1e46adcca5eb428a3ff67f9e + md5: d368425fbd031a2f8e801a40c3415c72 depends: - - __osx >=11.0 - - gstreamer 1.24.5 h430e707_0 - - libcxx >=16 - - libglib >=2.80.2,<3.0a0 - - libintl >=0.22.5,<1.0a0 - - libogg >=1.3.4,<1.4.0a0 + - __glibc >=2.17,<3.0.a0 + - alsa-lib >=1.2.12,<1.3.0a0 + - gstreamer 1.24.7 hf3bb09a_0 + - libexpat >=2.6.2,<3.0a0 + - libgcc >=13 + - libglib >=2.80.3,<3.0a0 + - libogg >=1.3.5,<1.4.0a0 - libopus >=1.3.1,<2.0a0 - libpng >=1.6.43,<1.7.0a0 + - libstdcxx >=13 - libvorbis >=1.3.7,<1.4.0a0 + - libxcb >=1.16,<2.0.0a0 - libzlib >=1.3.1,<2.0a0 + - xorg-libx11 >=1.8.9,<2.0a0 + - xorg-libxau >=1.0.11,<2.0a0 + - xorg-libxext >=1.3.4,<2.0a0 + - xorg-libxrender >=0.9.11,<0.10.0a0 + - xorg-libxxf86vm >=1.1.5,<2.0a0 license: LGPL-2.0-or-later license_family: LGPL purls: [] - size: 1966146 - timestamp: 1718924693510 + size: 2822378 + timestamp: 1725536496791 - kind: conda name: gst-plugins-base - version: 1.24.5 + version: 1.24.7 build: hb0a98b8_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.5-hb0a98b8_0.conda - sha256: 0958c192be2b1d05aaa7ca2f9df5a479fac8b014780236c0ec1fff361c454ab6 - md5: b770c056a4d17c9860ffa6464982db70 + url: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.24.7-hb0a98b8_0.conda + sha256: c8951e6af014cdeff2de740d1e6e4781ac6813853739c56c6e07266e7aefcf28 + md5: 92edfae477856e97db6c2610dea95bb1 depends: - - gstreamer 1.24.5 h5006eae_0 - - libglib >=2.80.2,<3.0a0 + - gstreamer 1.24.7 h5006eae_0 + - libglib >=2.80.3,<3.0a0 - libintl >=0.22.5,<1.0a0 - - libogg >=1.3.4,<1.4.0a0 + - libogg >=1.3.5,<1.4.0a0 - libvorbis >=1.3.7,<1.4.0a0 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 @@ -14398,70 +11395,43 @@ packages: license: LGPL-2.0-or-later license_family: LGPL purls: [] - size: 2063797 - timestamp: 1718925751976 + size: 2061727 + timestamp: 1725537068521 - kind: conda name: gst-plugins-base - version: 1.24.5 - build: hbaaba92_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.24.5-hbaaba92_0.conda - sha256: eb9ea3a6b2a3873a379f9b2c86abba510709ae6e0083a7c0c8563c25ed3dc4bd - md5: 4a485842570569ba754863b2c083b346 + version: 1.24.7 + build: hb49d354_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/gst-plugins-base-1.24.7-hb49d354_0.conda + sha256: 56b84bf80b6301e715312e6c1b8c44b2e2f0821854b1d05ec065b59bf38adad1 + md5: 3dfb86c12a1bc38d03be9f52225b8ef7 depends: - - __glibc >=2.17,<3.0.a0 - - alsa-lib >=1.2.12,<1.3.0a0 - - gstreamer 1.24.5 haf2f30d_0 - - libexpat >=2.6.2,<3.0a0 - - libgcc-ng >=12 - - libglib >=2.80.2,<3.0a0 - - libogg >=1.3.4,<1.4.0a0 + - __osx >=11.0 + - gstreamer 1.24.7 hc3f5269_0 + - libcxx >=17 + - libglib >=2.80.3,<3.0a0 + - libintl >=0.22.5,<1.0a0 + - libogg >=1.3.5,<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.16,<1.17.0a0 - libzlib >=1.3.1,<2.0a0 - - xorg-libx11 >=1.8.9,<2.0a0 - - xorg-libxau >=1.0.11,<2.0a0 - - xorg-libxext >=1.3.4,<2.0a0 - - xorg-libxrender >=0.9.11,<0.10.0a0 - license: LGPL-2.0-or-later - license_family: LGPL - purls: [] - size: 2804833 - timestamp: 1718924385674 -- kind: conda - name: gstreamer - version: 1.24.5 - build: h430e707_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gstreamer-1.24.5-h430e707_0.conda - sha256: b12af40c97c522c47c42548b30c587b1a2f1e53be531d5ec888a4cdc84b72611 - md5: 294ad990698387e63f8ce36487c93936 - depends: - - __osx >=11.0 - - glib >=2.80.2,<3.0a0 - - libcxx >=16 - - libglib >=2.80.2,<3.0a0 - - libiconv >=1.17,<2.0a0 - - libintl >=0.22.5,<1.0a0 license: LGPL-2.0-or-later license_family: LGPL purls: [] - size: 1352409 - timestamp: 1718924422768 + size: 1962829 + timestamp: 1725536921391 - kind: conda name: gstreamer - version: 1.24.5 + version: 1.24.7 build: h5006eae_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.5-h5006eae_0.conda - sha256: 4039dafcfec7a2c0d4c458b403ea652572ef81521bec4b6bd8df704c0cb0b032 - md5: 5f5d9ef53cd63a2bf341091786d031e5 + url: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.24.7-h5006eae_0.conda + sha256: bd3ad109ef3e2e49da8710ff49378b3fa5da916aa2351d932d1b9018b7123512 + md5: 58e1df95fdab219039e39033302771e8 depends: - - glib >=2.80.2,<3.0a0 - - libglib >=2.80.2,<3.0a0 + - glib >=2.80.3,<3.0a0 + - libglib >=2.80.3,<3.0a0 - libiconv >=1.17,<2.0a0 - libintl >=0.22.5,<1.0a0 - ucrt >=10.0.20348.0 @@ -14470,48 +11440,48 @@ packages: license: LGPL-2.0-or-later license_family: LGPL purls: [] - size: 2030810 - timestamp: 1718925519580 + size: 2022487 + timestamp: 1725536894511 - kind: conda name: gstreamer - version: 1.24.5 - build: haf2f30d_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.5-haf2f30d_0.conda - sha256: b824bf5e8b1b2aed4b6cad08caccdb48624a3180a96e7e6b5b978f009a3a7e85 - md5: c5252c02592373fa8caf5a5327165a89 + version: 1.24.7 + build: hc3f5269_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/gstreamer-1.24.7-hc3f5269_0.conda + sha256: 414b1919b746ace641e8cc1eae99ee0bf616a62da2851e248cb04413dcc496b0 + md5: 51a487eebf20e94bec393d83901ca5eb depends: - - __glibc >=2.17,<3.0.a0 - - glib >=2.80.2,<3.0a0 - - libgcc-ng >=12 - - libglib >=2.80.2,<3.0a0 + - __osx >=11.0 + - glib >=2.80.3,<3.0a0 + - libcxx >=17 + - libglib >=2.80.3,<3.0a0 - libiconv >=1.17,<2.0a0 - - libstdcxx-ng >=12 + - libintl >=0.22.5,<1.0a0 license: LGPL-2.0-or-later license_family: LGPL purls: [] - size: 2020578 - timestamp: 1718924252333 + size: 1347352 + timestamp: 1725536657414 - kind: conda name: gstreamer - version: 1.24.5 - build: hbc75551_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/gstreamer-1.24.5-hbc75551_0.conda - sha256: 4427bca83120a6691a4d6956d0ec16a766704f6b4b2a4b81ddca922569527e4a - md5: c8bc10f8e05d53c3c2f69749ad5812f6 - depends: - - __osx >=10.13 - - glib >=2.80.2,<3.0a0 - - libcxx >=16 - - libglib >=2.80.2,<3.0a0 + version: 1.24.7 + build: hf3bb09a_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.24.7-hf3bb09a_0.conda + sha256: 9c059cc7dcb2732da8face18b1c0351da148ef26db0563fed08e818ea0515bb1 + md5: c78bc4ef0afb3cd2365d9973c71fc876 + depends: + - __glibc >=2.17,<3.0.a0 + - glib >=2.80.3,<3.0a0 + - libgcc >=13 + - libglib >=2.80.3,<3.0a0 - libiconv >=1.17,<2.0a0 - - libintl >=0.22.5,<1.0a0 + - libstdcxx >=13 license: LGPL-2.0-or-later license_family: LGPL purls: [] - size: 1808978 - timestamp: 1718924295035 + size: 2023966 + timestamp: 1725536373253 - kind: conda name: h11 version: 0.14.0 @@ -14527,7 +11497,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/h11?source=conda-forge-mapping + - pkg:pypi/h11?source=hash-mapping size: 48251 timestamp: 1664132995560 - kind: conda @@ -14546,30 +11516,88 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/h2?source=conda-forge-mapping + - pkg:pypi/h2?source=hash-mapping size: 46754 timestamp: 1634280590080 - kind: conda name: harfbuzz - version: 8.5.0 - build: hfac3d4d_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.5.0-hfac3d4d_0.conda - sha256: a141fc55f8bfdab7db03fe9d8e61cb0f8c8b5970ed6540eda2db7186223f4444 - md5: f5126317dd0ce0ba26945e411ecc6960 + version: 9.0.0 + build: h2bedf89_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-9.0.0-h2bedf89_1.conda + sha256: 20f42ec76e075902c22c1f8ddc71fb88eff0b93e74f5705c1e72220030965810 + md5: 254f119aaed2c0be271c1114ae18d09b depends: - 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 - license: MIT - license_family: MIT + - icu >=75.1,<76.0a0 + - libglib >=2.80.3,<3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: [] + size: 1095620 + timestamp: 1721187287831 +- kind: conda + name: harfbuzz + version: 9.0.0 + build: hda332d3_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda + sha256: 973afa37840b4e55e2540018902255cfb0d953aaed6353bb83a4d120f5256767 + md5: 76b32dcf243444aea9c6b804bcfa40b8 + depends: + - __glibc >=2.17,<3.0.a0 + - cairo >=1.18.0,<2.0a0 + - freetype >=2.12.1,<3.0a0 + - graphite2 + - icu >=75.1,<76.0a0 + - libgcc-ng >=12 + - libglib >=2.80.3,<3.0a0 + - libstdcxx-ng >=12 + license: MIT + license_family: MIT purls: [] - size: 1598244 - timestamp: 1715701061364 + size: 1603653 + timestamp: 1721186240105 +- kind: conda + name: hatch + version: 1.13.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + sha256: 675b0304b129a4dbc39b8e6f337cea51adebef20508a656f43b6e6b43d9cf458 + md5: b8a6437f94d29aef00decdbe1174be27 + depends: + - click >=8.0.6 + - hatchling >=1.24.2 + - httpx >=0.22.0 + - hyperlink >=21.0.0 + - keyring >=23.5.0 + - packaging >=23.2 + - pexpect >=4.8,<5 + - platformdirs >=2.5.0 + - python >=3.8 + - rich >=11.2.0 + - shellingham >=1.4.0 + - tomli-w >=1.0 + - tomlkit >=0.11.1 + - userpath >=1.7,<2 + - uv >=0.1.35 + - virtualenv >=20.26.1 + - zstandard <1.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hatch?source=hash-mapping + size: 177173 + timestamp: 1728879212263 - kind: conda name: hatchling version: 1.25.0 @@ -14591,7 +11619,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/hatchling?source=conda-forge-mapping + - pkg:pypi/hatchling?source=hash-mapping size: 64580 timestamp: 1719090878694 - kind: conda @@ -14651,24 +11679,6 @@ packages: purls: [] size: 779637 timestamp: 1695662145568 -- kind: conda - name: hdf4 - version: 4.2.15 - build: h8138101_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - sha256: 8c767cc71226e9eb62649c903c68ba73c5f5e7e3696ec0319d1f90586cebec7d - md5: 7ce543bf38dbfae0de9af112ee178af2 - depends: - - libcxx >=15.0.7 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libzlib >=1.2.13,<2.0.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 724103 - timestamp: 1695661907511 - kind: conda name: hdf5 version: 1.14.3 @@ -14691,30 +11701,6 @@ packages: purls: [] size: 2039111 timestamp: 1717587493910 -- kind: conda - name: hdf5 - version: 1.14.3 - build: nompi_h687a608_105 - build_number: 105 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.3-nompi_h687a608_105.conda - sha256: 98f8350730d09e8ad7b62ca6d6be38ee2324b11bbcd1a5fe2cac619b12cd68d7 - md5: 98544299f6bb2ef4d7362506a3dde886 - depends: - - __osx >=10.13 - - libaec >=1.1.3,<2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - libgfortran5 >=13.2.0 - - libzlib >=1.2.13,<2.0a0 - - openssl >=3.3.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 3733954 - timestamp: 1717588360008 - kind: conda name: hdf5 version: 1.14.3 @@ -14762,6 +11748,75 @@ packages: purls: [] size: 3445248 timestamp: 1717587775787 +- kind: conda + name: hdf5 + version: 1.14.4 + build: nompi_h2d575fe_101 + build_number: 101 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_101.conda + sha256: fdc091d50eb0a2e5fcc5cab5b605bdaf57471c724aa897aaee67dd5c66d34d53 + md5: 09967792ea2191a0bdb461f9c889e510 + depends: + - __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.3.2,<4.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 3954807 + timestamp: 1728044935147 +- kind: conda + name: hdf5 + version: 1.14.4 + build: nompi_h99fbd1e_101 + build_number: 101 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.4-nompi_h99fbd1e_101.conda + sha256: 2339506be886b37275039d33e7e4cfa30f3774d6b554f1ec3aea9e1805b10840 + md5: 719a03d8953ca6cbc5277fbff127e6c6 + depends: + - __osx >=11.0 + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libgfortran 5.* + - libgfortran5 >=13.2.0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 3490762 + timestamp: 1728044046987 +- kind: conda + name: hdf5 + version: 1.14.4 + build: nompi_hd5d9e70_101 + build_number: 101 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_101.conda + sha256: fa6696af3c73954849ad2b53674f13d7ea6df1d6e790524aff7332f18476b42c + md5: 65175ce2be9c8885586039e0fb594f86 + depends: + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.10.1,<9.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 2050706 + timestamp: 1728044187427 - kind: conda name: hpack version: 4.0.0 @@ -14776,18 +11831,18 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/hpack?source=conda-forge-mapping + - pkg:pypi/hpack?source=hash-mapping size: 25341 timestamp: 1598856368685 - kind: conda name: httpcore - version: 1.0.5 + version: 1.0.6 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.5-pyhd8ed1ab_0.conda - sha256: 4025644200eefa0598e4600a66fd4804a57d9fd7054a5c8c45e508fd875e0b84 - md5: a6b9a0158301e697e4d0a36a3d60e133 + url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.6-pyhd8ed1ab_0.conda + sha256: 8952c3f1eb18bf4d7e813176c3b23e0af4e863e8b05087e73f74f371d73077ca + md5: b8e1901ef9a215fc41ecfb6bef7e0943 depends: - anyio >=3.0,<5.0 - certifi @@ -14798,9 +11853,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/httpcore?source=conda-forge-mapping - size: 45816 - timestamp: 1711597091407 + - pkg:pypi/httpcore?source=hash-mapping + size: 45711 + timestamp: 1727821031365 - kind: conda name: httplib2 version: 0.22.0 @@ -14816,18 +11871,18 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/httplib2?source=conda-forge-mapping + - pkg:pypi/httplib2?source=hash-mapping size: 94812 timestamp: 1679483627678 - kind: conda name: httpx - version: 0.27.0 + version: 0.27.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda - sha256: fdaf341fb2630b7afe8238315448fc93947f77ebfa4da68bb349e1bcf820af58 - md5: 9f359af5a886fd6ca6b2b6ea02e58332 + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + sha256: 1a33f160548bf447e15c0273899d27e4473f1d5b7ca1441232ec2d9d07c56d03 + md5: 7e9ac3faeebdbd7b53b462c41891e7f7 depends: - anyio - certifi @@ -14838,9 +11893,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/httpx?source=conda-forge-mapping - size: 64651 - timestamp: 1708531043505 + - pkg:pypi/httpx?source=hash-mapping + size: 65085 + timestamp: 1724778453275 - kind: conda name: hyperframe version: 6.0.1 @@ -14855,33 +11910,52 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/hyperframe?source=conda-forge-mapping + - pkg:pypi/hyperframe?source=hash-mapping size: 14646 timestamp: 1619110249723 +- kind: conda + name: hyperlink + version: 21.0.0 + build: pyhd3deb0d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + sha256: 026cb82ada41be9ee2836a2ace526e85c4603e77617887c41c6e62c9bde798b3 + md5: 1303beb57b40f8f4ff6fb1bb23bf0553 + depends: + - idna >=2.6 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/hyperlink?source=hash-mapping + size: 72732 + timestamp: 1610092261086 - kind: conda name: icu - version: '73.2' - build: h59595ed_0 + version: '75.1' + build: he02047a_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 - md5: cc47e1facc155f91abd89b11e48e72ff + url: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e + md5: 8b189310083baabfb622af68fd9d3ae3 depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 - libstdcxx-ng >=12 license: MIT license_family: MIT purls: [] - size: 12089150 - timestamp: 1692900650789 + size: 12129203 + timestamp: 1720853576813 - kind: conda name: icu - version: '73.2' - build: h63175ca_0 + version: '75.1' + build: he0c23c2_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda - sha256: 423aaa2b69d713520712f55c7c71994b7e6f967824bb39b59ad968e7b209ce8c - md5: 0f47d9e3192d9e09ae300da0d28e0f56 + url: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda + sha256: 1d04369a1860a1e9e371b9fc82dd0092b616adcf057d6c88371856669280e920 + md5: 8579b6bb8d18be7c0b27fb08adeeeb40 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -14889,142 +11963,129 @@ packages: license: MIT license_family: MIT purls: [] - size: 13422193 - timestamp: 1692901469029 + size: 14544252 + timestamp: 1720853966338 - kind: conda name: icu - version: '73.2' - build: hc8870d7_0 + version: '75.1' + build: hfee45f7_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - sha256: ff9cd0c6cd1349954c801fb443c94192b637e1b414514539f3c49c56a39f51b1 - md5: 8521bd47c0e11c5902535bb1a17c565f - license: MIT - license_family: MIT - purls: [] - size: 11997841 - timestamp: 1692902104771 -- kind: conda - name: icu - version: '73.2' - build: hf5e326d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda - sha256: f66362dc36178ac9b7c7a9b012948a9d2d050b3debec24bbd94aadbc44854185 - md5: 5cc301d759ec03f28328428e28f65591 + url: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + sha256: 9ba12c93406f3df5ab0a43db8a4b4ef67a5871dfd401010fbe29b218b2cbe620 + md5: 5eb22c1d7b3fc4abb50d92d621583137 + depends: + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 11787527 - timestamp: 1692901622519 + size: 11857802 + timestamp: 1720853997952 - kind: conda name: identify - version: 2.6.0 + version: 2.6.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - sha256: 4a2889027df94d51be283536ac235feba77eaa42a0d051f65cd07ba824b324a6 - md5: f80cc5989f445f23b1622d6c455896d9 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + sha256: dc752392f327e64e32bc3122758b2d8951aec9d6e6aa888463c73d18a10e3c56 + md5: 43f629202f9eec21be5f71171fb5daf8 depends: - python >=3.6 - ukkonen license: MIT license_family: MIT purls: - - pkg:pypi/identify?source=conda-forge-mapping - size: 78197 - timestamp: 1720413864262 + - pkg:pypi/identify?source=hash-mapping + size: 78078 + timestamp: 1726369674008 - kind: conda name: idna - version: '3.7' + version: '3.10' build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/idna-3.7-pyhd8ed1ab_0.conda - sha256: 9687ee909ed46169395d4f99a0ee94b80a52f87bed69cd454bb6d37ffeb0ec7b - md5: c0cc1420498b17414d8617d0b9f506ca + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + sha256: 8c57fd68e6be5eecba4462e983aed7e85761a519aab80e834bbd7794d4b545b2 + md5: 7ba2ede0e7c795ff95088daf0dc59753 depends: - python >=3.6 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/idna?source=conda-forge-mapping - size: 52718 - timestamp: 1713279497047 + - pkg:pypi/idna?source=hash-mapping + size: 49837 + timestamp: 1726459583613 - kind: conda name: importlib-metadata - version: 8.0.0 + version: 8.5.0 build: pyha770c72_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.0.0-pyha770c72_0.conda - sha256: e40d7e71c37ec95df9a19d39f5bb7a567c325be3ccde06290a71400aab719cac - md5: 3286556cdd99048d198f72c3f6f69103 + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + sha256: 7194700ce1a5ad2621fd68e894dd8c1ceaff9a38723e6e0e5298fdef13017b1c + md5: 54198435fce4d64d8a89af22573012a8 depends: - python >=3.8 - zipp >=0.5 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/importlib-metadata?source=conda-forge-mapping - size: 27367 - timestamp: 1719361971438 + - pkg:pypi/importlib-metadata?source=hash-mapping + size: 28646 + timestamp: 1726082927916 - kind: conda name: importlib-resources - version: 6.4.0 + version: 6.4.5 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.0-pyhd8ed1ab_0.conda - sha256: 38db827f445ae437a15d50a94816ae67a48285d0700f736af3eb90800a71f079 - md5: dcbadab7a68738a028e195ab68ab2d2e + url: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_0.conda + sha256: b5a63a3e2bc2c8d3e5978a6ef4efaf2d6b02803c1bce3c2eb42e238dd91afe0b + md5: 67f4772681cf86652f3e2261794cf045 depends: - - importlib_resources >=6.4.0,<6.4.1.0a0 + - importlib_resources >=6.4.5,<6.4.6.0a0 - python >=3.8 license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/importlib-resources?source=conda-forge-mapping - size: 9657 - timestamp: 1711041029062 + purls: [] + size: 9595 + timestamp: 1725921472017 - kind: conda name: importlib_metadata - version: 8.0.0 + version: 8.5.0 build: hd8ed1ab_0 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.0.0-hd8ed1ab_0.conda - sha256: f786f67bcdd6debb6edc2bc496e2899a560bbcc970e66727d42a805a1a5bf9a3 - md5: 5f8c8ebbe6413a7838cf6ecf14d5d31b + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-8.5.0-hd8ed1ab_0.conda + sha256: 313b8a05211bacd6b15ab2621cb73d7f41ea5c6cae98db53367d47833f03fef1 + md5: 2a92e152208121afadf85a5e1f3a5f4d depends: - - importlib-metadata >=8.0.0,<8.0.1.0a0 + - importlib-metadata >=8.5.0,<8.5.1.0a0 license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/importlib-metadata?source=conda-forge-mapping - size: 9511 - timestamp: 1719361975786 + purls: [] + size: 9385 + timestamp: 1726082930346 - kind: conda name: importlib_resources - version: 6.4.0 + version: 6.4.5 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.0-pyhd8ed1ab_0.conda - sha256: c6ae80c0beaeabb342c5b041f19669992ae6e937dbec56ced766cb035900f9de - md5: c5d3907ad8bd7bf557521a1833cf7e6d + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + sha256: 2cb9db3e40033c3df72d3defc678a012840378fd55a67e4351363d4b321a0dc1 + md5: c808991d29b9838fb4d96ce8267ec9ec depends: - python >=3.8 - zipp >=3.1.0 constrains: - - importlib-resources >=6.4.0,<6.4.1.0a0 + - importlib-resources >=6.4.5,<6.4.6.0a0 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/importlib-resources?source=conda-forge-mapping - size: 33056 - timestamp: 1711041009039 + - pkg:pypi/importlib-resources?source=hash-mapping + size: 32725 + timestamp: 1725921462405 - kind: conda name: iniconfig version: 2.0.0 @@ -15039,23 +12100,23 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/iniconfig?source=conda-forge-mapping + - pkg:pypi/iniconfig?source=hash-mapping size: 11101 timestamp: 1673103208955 - kind: conda name: intel-openmp - version: 2024.2.0 - build: h57928b3_979 - build_number: 979 + version: 2024.2.1 + build: h57928b3_1083 + build_number: 1083 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.0-h57928b3_979.conda - sha256: 49ba0097aa41406eefd09903a525abbe6e98b5452a9a3dddb68989a86eb519ed - md5: 192b0028299eebbc8d88624764df61f5 + url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda + sha256: 0fd2b0b84c854029041b0ede8f4c2369242ee92acc0092f8407b1fe9238a8209 + md5: 2d89243bfb53652c182a7c73182cce4f license: LicenseRef-IntelSimplifiedSoftwareOct2022 license_family: Proprietary purls: [] - size: 1854665 - timestamp: 1720049226486 + size: 1852356 + timestamp: 1723739573141 - kind: conda name: ipykernel version: 6.29.5 @@ -15083,7 +12144,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipykernel?source=conda-forge-mapping + - pkg:pypi/ipykernel?source=hash-mapping size: 119084 timestamp: 1719845605084 - kind: conda @@ -15113,7 +12174,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipykernel?source=conda-forge-mapping + - pkg:pypi/ipykernel?source=hash-mapping size: 119853 timestamp: 1719845858082 - kind: conda @@ -15144,18 +12205,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipykernel?source=conda-forge-mapping + - pkg:pypi/ipykernel?source=hash-mapping size: 119568 timestamp: 1719845667420 - kind: conda name: ipython - version: 8.26.0 + version: 8.29.0 build: pyh707e725_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh707e725_0.conda - sha256: a40c2859a055d98ba234d67b233fb1ba55d86cbe632ec96eecb7c5019c16478b - md5: f64d3520d5d00321c10f4dabb5b903f3 + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh707e725_0.conda + sha256: 606723272a208cca1036852e04fbb61741b78451784746e75edd1becb70347d2 + md5: 56db21d7d51410fcfbfeca3d1a6b4269 depends: - __unix - decorator @@ -15173,18 +12234,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipython?source=conda-forge-mapping - size: 599279 - timestamp: 1719582627972 + - pkg:pypi/ipython?source=hash-mapping + size: 599356 + timestamp: 1729866495921 - kind: conda name: ipython - version: 8.26.0 + version: 8.29.0 build: pyh7428d3b_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.26.0-pyh7428d3b_0.conda - sha256: b0fd9f89ef87c4b968ae8aae01c4ff8969eb4463f1fb28c77ff0b33b444d9cef - md5: f5047e2bc6a82dcdf2f169fdb0bbed99 + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.29.0-pyh7428d3b_0.conda + sha256: 2208dbe96e94ba653c4e0a5f302e36f16df73eec1968cfb85eff2d9775c9ced1 + md5: 9dc505b3569b4c26cffc241c50695f75 depends: - __win - colorama @@ -15202,9 +12263,31 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipython?source=conda-forge-mapping - size: 600345 - timestamp: 1719583103556 + - pkg:pypi/ipython?source=hash-mapping + size: 600237 + timestamp: 1729866942619 +- kind: conda + name: ipywidgets + version: 8.1.5 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.5-pyhd8ed1ab_0.conda + sha256: ae27447f300c85a184d5d4fa08674eaa93931c12275daca981eb986f5d7795b3 + md5: a022d34163147d16b27de86dc53e93fc + depends: + - comm >=0.1.3 + - ipython >=6.1.0 + - jupyterlab_widgets >=3.0.13,<3.1.0 + - python >=3.7 + - traitlets >=4.3.1 + - widgetsnbextension >=4.0.13,<4.1.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/ipywidgets?source=hash-mapping + size: 113497 + timestamp: 1724334989324 - kind: conda name: isoduration version: 20.11.0 @@ -15220,7 +12303,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/isoduration?source=conda-forge-mapping + - pkg:pypi/isoduration?source=hash-mapping size: 17189 timestamp: 1638811664194 - kind: conda @@ -15239,7 +12322,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/jaraco-classes?source=conda-forge-mapping + - pkg:pypi/jaraco-classes?source=hash-mapping size: 12223 timestamp: 1713939433204 - kind: conda @@ -15258,7 +12341,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/jaraco-context?source=conda-forge-mapping + - pkg:pypi/jaraco-context?source=hash-mapping size: 12456 timestamp: 1714372284922 - kind: conda @@ -15276,7 +12359,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/jaraco-functools?source=conda-forge-mapping + - pkg:pypi/jaraco-functools?source=hash-mapping size: 15192 timestamp: 1701695329516 - kind: conda @@ -15294,7 +12377,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/jedi?source=conda-forge-mapping + - pkg:pypi/jedi?source=hash-mapping size: 841312 timestamp: 1696326218364 - kind: conda @@ -15311,7 +12394,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/jeepney?source=conda-forge-mapping + - pkg:pypi/jeepney?source=hash-mapping size: 36895 timestamp: 1649085298891 - kind: conda @@ -15329,7 +12412,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jinja2?source=conda-forge-mapping + - pkg:pypi/jinja2?source=hash-mapping size: 111565 timestamp: 1715127275924 - kind: conda @@ -15347,50 +12430,40 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/joblib?source=conda-forge-mapping + - pkg:pypi/joblib?source=hash-mapping size: 219731 timestamp: 1714665585214 - kind: conda name: json-c - version: '0.17' - build: h40ed0f5_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.17-h40ed0f5_0.conda - sha256: d47138a2829ce47d2e9ec1dbe108d1a6fe58c5d8724ea904985a420ad760f93f - md5: 7de5604deb99090c8e8c4863f60568d1 - license: MIT - license_family: MIT - purls: [] - size: 76941 - timestamp: 1691934174484 -- kind: conda - name: json-c - version: '0.17' - build: h7ab15ed_0 + version: '0.18' + build: h6688a6e_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.17-h7ab15ed_0.conda - sha256: 5646496ca07dfa1486d27ed07282967007811dfc63d6394652e87f94166ecae3 - md5: 9961b1f100c3b6852bd97c9233d06979 + url: https://conda.anaconda.org/conda-forge/linux-64/json-c-0.18-h6688a6e_0.conda + sha256: 09e706cb388d3ea977fabcee8e28384bdaad8ce1fc49340df5f868a2bd95a7da + md5: 38f5dbc9ac808e31c00650f7be1db93f depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 83050 - timestamp: 1691933952501 + size: 82709 + timestamp: 1726487116178 - kind: conda name: json-c - version: '0.17' - build: h8e11ae5_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/json-c-0.17-h8e11ae5_0.conda - sha256: 2a493095fe1292108ff1799a1b47ababe82d844bfa3abcf2252676c1017a1e04 - md5: 266d2e4ebbf37091c8322937392bb540 + version: '0.18' + build: he4178ee_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.18-he4178ee_0.conda + sha256: 73179a1cd0b45c09d4f631cb359d9e755e6e573c5d908df42006728e0bf8297c + md5: 94f14ef6157687c30feb44e1abecd577 + depends: + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 71671 - timestamp: 1691934144512 + size: 73715 + timestamp: 1726487214495 - kind: conda name: json5 version: 0.9.25 @@ -15405,51 +12478,54 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/json5?source=conda-forge-mapping + - pkg:pypi/json5?source=hash-mapping size: 27995 timestamp: 1712986338874 - kind: conda name: jsonpointer version: 3.0.0 - build: py312h2e8e312_0 + build: py312h2e8e312_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_0.conda - sha256: 74d440e8250ff2ca05013b959de954bc85d84ff14a3b60c9e3dc7e071cddfa42 - md5: 6509bc42d9d26be656db3332da504913 + url: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_1.conda + sha256: 6865b97780e795337f65592582aee6f25e5b96214c64ffd3f8cdf580fd64ba22 + md5: e3ceda014d8461a11ca8552830a978f9 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jsonpointer?source=conda-forge-mapping - size: 42461 - timestamp: 1718283943216 + - pkg:pypi/jsonpointer?source=hash-mapping + size: 42235 + timestamp: 1725303419414 - kind: conda name: jsonpointer version: 3.0.0 - build: py312h7900ff3_0 + build: py312h7900ff3_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_0.conda - sha256: b5d17c5db3c7306d3625745a27359f806a6dd94707d76d74cba541fc1daa2ae3 - md5: 320338762418ae59539ae368d4386085 + url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_1.conda + sha256: 76ccb7bffc7761d1d3133ffbe1f7f1710a0f0d9aaa9f7ea522652e799f3601f4 + md5: 6b51f7459ea4073eeb5057207e2e1e3d depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jsonpointer?source=conda-forge-mapping - size: 17497 - timestamp: 1718283512438 + - pkg:pypi/jsonpointer?source=hash-mapping + size: 17277 + timestamp: 1725303032027 - kind: conda name: jsonpointer version: 3.0.0 - build: py312h81bd7bf_0 + build: py312h81bd7bf_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_0.conda - sha256: a7326ba42944287a44a5959dc67b40e002798aa9eed97ef4ec9ad39bbd84c9a3 - md5: bc1baf9c7772acbd2cb4f8d9190286f5 + url: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_1.conda + sha256: f6fb3734e967d1cd0cde32844ee952809f6c0a49895da7ec1c8cfdf97739b947 + md5: 80f403c03290e1662be03e026fb5f8ab depends: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython @@ -15457,35 +12533,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jsonpointer?source=conda-forge-mapping - size: 18080 - timestamp: 1718283673740 -- kind: conda - name: jsonpointer - version: 3.0.0 - build: py312hb401068_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_0.conda - sha256: c28d5ee8ddc58858c711f0a4874916ed7d1306fa8b12bb95e3e8bb7183f2e287 - md5: 7d360dce2fa56d1701773d26ecccb038 - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jsonpointer?source=conda-forge-mapping - size: 17704 - timestamp: 1718283533709 + - pkg:pypi/jsonpointer?source=hash-mapping + size: 17865 + timestamp: 1725303130815 - kind: conda name: jsonschema - version: 4.22.0 + version: 4.23.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.22.0-pyhd8ed1ab_0.conda - sha256: 57a466e8c42635d8e930fa065dc6e461f4215aa259ab03873eacb03ddaeefc8a - md5: b9661a4b1200d6bc7d8a4cdafdc91468 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_0.conda + sha256: 7d0c4c0346b26be9f220682b7c5c0d84606d48c6dbc36fc238e4452dda733aff + md5: da304c192ad59975202859b367d0f6a2 depends: - attrs >=22.2.0 - importlib_resources >=1.4.0 @@ -15497,95 +12556,94 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/jsonschema?source=conda-forge-mapping - size: 74149 - timestamp: 1714573245148 + - pkg:pypi/jsonschema?source=hash-mapping + size: 74323 + timestamp: 1720529611305 - kind: conda name: jsonschema-specifications - version: 2023.12.1 + version: 2024.10.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda - sha256: a9630556ddc3121c0be32f4cbf792dd9102bd380d5cd81d57759d172cf0c2da2 - md5: a0e4efb5f35786a05af4809a2fb1f855 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_0.conda + sha256: 82f8bed0f21dc0b3aff40dd4e39d77e85b93b0417bc5659b001e0109341b8b98 + md5: 720745920222587ef942acfbc578b584 depends: - - importlib_resources >=1.4.0 - python >=3.8 - referencing >=0.31.0 license: MIT license_family: MIT purls: - - pkg:pypi/jsonschema-specifications?source=conda-forge-mapping - size: 16431 - timestamp: 1703778502971 + - pkg:pypi/jsonschema-specifications?source=hash-mapping + size: 16165 + timestamp: 1728418976382 - kind: conda name: jsonschema-with-format-nongpl - version: 4.22.0 - build: pyhd8ed1ab_0 + version: 4.23.0 + build: hd8ed1ab_0 subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.22.0-pyhd8ed1ab_0.conda - sha256: 3c98d791bebd477597fe083b3cec35132ac974c61ba1e481dc6c29fac78b419d - md5: 32ab666927ee17b9468c2c72bbd7ba1b + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.23.0-hd8ed1ab_0.conda + sha256: 007a0a506a0d1805b099629cb0ee743ad0afe7d9749e57339f32c168119e0139 + md5: 16b37612b3a2fd77f409329e213b530c depends: - fqdn - idna - isoduration - jsonpointer >1.13 - - jsonschema >=4.22.0,<4.22.1.0a0 - - python + - jsonschema >=4.23.0,<4.23.1.0a0 - rfc3339-validator - rfc3986-validator >0.1.0 - uri-template - - webcolors >=1.11 + - webcolors >=24.6.0 license: MIT license_family: MIT purls: [] - size: 7441 - timestamp: 1714573279350 + size: 7143 + timestamp: 1720529619500 - kind: conda name: juliaup - version: 1.14.9 - build: h0e67b80_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/juliaup-1.14.9-h0e67b80_0.conda - sha256: b61b0abeb88402cc13220bf5ed14de8278569ea7165e51c5452bce9afd61d829 - md5: 160c89c456392cd934dd823872d2408e - depends: - - __osx >=10.15 + version: 1.17.10 + build: h0ef69ab_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/juliaup-1.17.10-h0ef69ab_0.conda + sha256: fae2c1d57b7203d431a8155bb24ebcaf92e797b2277fdb6ba9bb4793fb6ed884 + md5: 0e7be85d7dbeb5aecd7c6489ad468ed5 + depends: + - __osx >=11.0 constrains: - - __osx >=10.12 + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 1910185 - timestamp: 1718119824681 + size: 1895561 + timestamp: 1730008499108 - kind: conda name: juliaup - version: 1.14.9 - build: h6e96688_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/juliaup-1.14.9-h6e96688_0.conda - sha256: b90c95464bd0178b871ba6cc4987ff915eee05a229e532d3eb98017a10475324 - md5: cbcdd3419299f586da84bd9c22f007ec + version: 1.17.10 + build: h8fae777_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/juliaup-1.17.10-h8fae777_0.conda + sha256: cb49b3e12b453a7defb4d3601d37e7f647df990448695e1559e8694c8a926d90 + md5: a647c7a61a76ae32d782df4b61f8cbc7 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 constrains: - - __osx >=11.0 + - __glibc >=2.17 license: MIT license_family: MIT purls: [] - size: 1868338 - timestamp: 1718119706363 + size: 2678262 + timestamp: 1730007965805 - kind: conda name: juliaup - version: 1.14.9 + version: 1.17.10 build: ha073cba_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/juliaup-1.14.9-ha073cba_0.conda - sha256: 487ddd380c895af2416190215cd2953b0f4a248acaeccededd85ea905e86a63f - md5: ca499e94f25b1805f790c66644a88349 + url: https://conda.anaconda.org/conda-forge/win-64/juliaup-1.17.10-ha073cba_0.conda + sha256: ef64827a964514301713bc08f5dc58875d87307c1fefb3c83bae3ba3c2f7a7cc + md5: c2a63eef511c0f9ec2cb278cd73a8811 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -15593,23 +12651,8 @@ packages: license: MIT license_family: MIT purls: [] - size: 1466794 - timestamp: 1718120342245 -- kind: conda - name: juliaup - version: 1.14.9 - build: he9194b0_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/juliaup-1.14.9-he9194b0_0.conda - sha256: 0702ce94cfccbc2481482025740b5ee3af194e5ce33145d4d9db413a9927e1c4 - md5: 03c5eeceb105e72e2d7702a895913ab6 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - purls: [] - size: 3377978 - timestamp: 1718119548811 + size: 1565457 + timestamp: 1730008356766 - kind: conda name: jupyter-lsp version: 2.2.5 @@ -15626,20 +12669,20 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-lsp?source=conda-forge-mapping + - pkg:pypi/jupyter-lsp?source=hash-mapping size: 55539 timestamp: 1712707521811 - kind: conda name: jupyter_client - version: 8.6.2 + version: 8.6.3 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.2-pyhd8ed1ab_0.conda - sha256: 634f065cdd1d0aacd4bb6848ebf240dcebc8578135d65f4ad4aa42b2276c4e0c - md5: 3cdbb2fa84490e5fd44c9f9806c0d292 + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + sha256: 4419c85e209a715f551a5c9bead746f29ee9d0fc41e772a76db3868622795671 + md5: a14218cfb29662b4a19ceb04e93e298e depends: - - importlib_metadata >=4.8.3 + - importlib-metadata >=4.8.3 - jupyter_core >=4.12,!=5.0.* - python >=3.8 - python-dateutil >=2.8.2 @@ -15649,302 +12692,112 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-client?source=conda-forge-mapping - size: 106248 - timestamp: 1716472312833 + - pkg:pypi/jupyter-client?source=hash-mapping + size: 106055 + timestamp: 1726610805505 - kind: conda name: jupyter_core version: 5.7.2 - build: py310h2ec42d9_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py310h2ec42d9_0.conda - sha256: ab2f20f7532322b2393220846cad453ee47848491971ec306755e7c1010b4e0a - md5: cc37456f73db17d159de1b07a26e91cc + build: pyh31011fe_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + sha256: 732b1e8536bc22a5a174baa79842d79db2f4956d90293dd82dc1b3f6099bcccd + md5: 0a2980dada0dd7fd0998f0342308b1b1 depends: + - __unix - platformdirs >=2.5 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - python >=3.8 - traitlets >=5.3 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 80504 - timestamp: 1710257739574 + - pkg:pypi/jupyter-core?source=hash-mapping + size: 57671 + timestamp: 1727163547058 - kind: conda name: jupyter_core version: 5.7.2 - build: py310h5588dad_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py310h5588dad_0.conda - sha256: 220a6fe571d3e9a5b5f4467d7f2fb22080b96f7143c9b2703528032528338d50 - md5: 6646c59c6c096e0b99c53dc9d3deaada + build: pyh5737063_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + sha256: 7c903b2d62414c3e8da1f78db21f45b98de387aae195f8ca959794113ba4b3fd + md5: 46d87d1c0ea5da0aae36f77fa406e20d depends: + - __win + - cpython - platformdirs >=2.5 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - python >=3.8 - pywin32 >=300 - traitlets >=5.3 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 97082 - timestamp: 1710257770270 + - pkg:pypi/jupyter-core?source=hash-mapping + size: 58269 + timestamp: 1727164026641 - kind: conda - name: jupyter_core - version: 5.7.2 - build: py310hbe9552e_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py310hbe9552e_0.conda - sha256: 9e351b25482c50c49fdf0e2203e238c5f04fed0cf192e227915fec955c5d890f - md5: bd7737fbd26eecd0f39cafb52a956f9e + name: jupyter_events + version: 0.10.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.10.0-pyhd8ed1ab_0.conda + sha256: cd3f41dc093162a41d4bae171e40a1b9b115c4d488e9bb837a8fa9d084931fb9 + md5: ed45423c41b3da15ea1df39b1f80c2ca depends: - - platformdirs >=2.5 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 + - jsonschema-with-format-nongpl >=4.18.0 + - python >=3.8 + - python-json-logger >=2.0.4 + - pyyaml >=5.3 + - referencing + - rfc3339-validator + - rfc3986-validator >=0.1.1 - traitlets >=5.3 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 80605 - timestamp: 1710257888050 + - pkg:pypi/jupyter-events?source=hash-mapping + size: 21475 + timestamp: 1710805759187 - kind: conda - name: jupyter_core - version: 5.7.2 - build: py310hff52083_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py310hff52083_0.conda - sha256: 837039256d39a249b5bec850f87948e1967c47c9e747056df8155d80c4d3b094 - md5: cb92c27600d5716fd526a206aa43342c + name: jupyter_server + version: 2.14.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.2-pyhd8ed1ab_0.conda + sha256: edab71a05feceac54bdb90e755a257545af7832b9911607c1a70f09be44ba985 + md5: ca23c71f70a7c7935b3d03f0f1a5801d depends: - - platformdirs >=2.5 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - traitlets >=5.3 + - anyio >=3.1.0 + - argon2-cffi >=21.1 + - jinja2 >=3.0.3 + - jupyter_client >=7.4.4 + - jupyter_core >=4.12,!=5.0.* + - jupyter_events >=0.9.0 + - jupyter_server_terminals >=0.4.4 + - nbconvert-core >=6.4.4 + - nbformat >=5.3.0 + - overrides >=5.0 + - packaging >=22.0 + - prometheus_client >=0.9 + - python >=3.8 + - pyzmq >=24 + - send2trash >=1.8.2 + - terminado >=0.8.3 + - tornado >=6.2.0 + - traitlets >=5.6.0 + - websocket-client >=1.7 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 79565 - timestamp: 1710257392136 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py311h1ea47a8_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py311h1ea47a8_0.conda - sha256: 59a353a47826a4bf136dec1100c90604a6a9fd06f3c203da73d4ea8bbe359aab - md5: 191bcd5e85d4f305510e46893de9ae08 - depends: - - platformdirs >=2.5 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - pywin32 >=300 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 111749 - timestamp: 1710257755792 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py311h267d04e_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py311h267d04e_0.conda - sha256: 0606c9f5a0a9de1e3d8348df4639b7f9dc493a7cf641fd4e9c956af5a33d2b7a - md5: f9e296ff8724469af7117f453824a6de - depends: - - platformdirs >=2.5 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 96069 - timestamp: 1710257757802 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py311h38be061_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py311h38be061_0.conda - sha256: 49834d76e70d6461e19c265296b0f492578f63360d0e4799b06bbe2c0d018a7a - md5: f85e78497dfed6f6a4b865191f42de2e - depends: - - platformdirs >=2.5 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 95226 - timestamp: 1710257482063 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py311h6eed73b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py311h6eed73b_0.conda - sha256: 3078f27009ce1f3cdd46dc97bd4f3f51277aa5957f6a90e300c613bd848767b7 - md5: 582fe977a5a6b9f37a72ff34a753381e - depends: - - platformdirs >=2.5 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 95661 - timestamp: 1710257750738 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py312h2e8e312_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.2-py312h2e8e312_0.conda - sha256: bf2a315febec297e05fa77e39bd371d53553bd1c347e495ac34198fec18afb11 - md5: 3ed5c1981d05f125696f392407d36ce2 - depends: - - platformdirs >=2.5 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - pywin32 >=300 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 109880 - timestamp: 1710257719549 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py312h7900ff3_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py312h7900ff3_0.conda - sha256: 22a6259c2b139191c76ed7633d1865757b3c15007989f6c74304a80f28e5a262 - md5: eee5a2e3465220ed87196bbb5665f420 - depends: - - platformdirs >=2.5 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 92843 - timestamp: 1710257533875 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py312h81bd7bf_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py312h81bd7bf_0.conda - sha256: 5ab0e75a30915d34ae27b4a76f1241c2f4cc4419b6b1c838cc1160b9ec8bfaf5 - md5: 209b9cb7159212afce5e16d7a3ee3b47 - depends: - - platformdirs >=2.5 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 93829 - timestamp: 1710257916303 -- kind: conda - name: jupyter_core - version: 5.7.2 - build: py312hb401068_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.2-py312hb401068_0.conda - sha256: 3e57d1eaf22c793711367335f9f8b647c011b64a95bfc796b50967a4b2ae27c2 - md5: a205e28ce7ab71773dcaaf94f6418612 - depends: - - platformdirs >=2.5 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=conda-forge-mapping - size: 92679 - timestamp: 1710257658978 -- kind: conda - name: jupyter_events - version: 0.10.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.10.0-pyhd8ed1ab_0.conda - sha256: cd3f41dc093162a41d4bae171e40a1b9b115c4d488e9bb837a8fa9d084931fb9 - md5: ed45423c41b3da15ea1df39b1f80c2ca - depends: - - jsonschema-with-format-nongpl >=4.18.0 - - python >=3.8 - - python-json-logger >=2.0.4 - - pyyaml >=5.3 - - referencing - - rfc3339-validator - - rfc3986-validator >=0.1.1 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-events?source=conda-forge-mapping - size: 21475 - timestamp: 1710805759187 -- kind: conda - name: jupyter_server - version: 2.14.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.14.1-pyhd8ed1ab_0.conda - sha256: 58628ef004ba0f754cc01b33199b6aefd94f5aed7fbf7afd2b796d8b5c4ef22c - md5: 174af03c6e6038edd32021a48aa003c4 - depends: - - anyio >=3.1.0 - - argon2-cffi - - jinja2 - - jupyter_client >=7.4.4 - - jupyter_core >=4.12,!=5.0.* - - jupyter_events >=0.9.0 - - jupyter_server_terminals - - nbconvert-core >=6.4.4 - - nbformat >=5.3.0 - - overrides - - packaging - - prometheus_client - - python >=3.8 - - pyzmq >=24 - - send2trash >=1.8.2 - - terminado >=0.8.3 - - tornado >=6.2.0 - - traitlets >=5.6.0 - - websocket-client - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-server?source=conda-forge-mapping - size: 324369 - timestamp: 1717122163377 + - pkg:pypi/jupyter-server?source=hash-mapping + size: 323978 + timestamp: 1720816754998 - kind: conda name: jupyter_server_terminals version: 0.5.3 @@ -15960,22 +12813,22 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-server-terminals?source=conda-forge-mapping + - pkg:pypi/jupyter-server-terminals?source=hash-mapping size: 19818 timestamp: 1710262791393 - kind: conda name: jupyterlab - version: 4.2.3 + version: 4.3.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.2.3-pyhd8ed1ab_0.conda - sha256: f1241eb715870fa70cc64afc6003181de19686ddfec81fe3590a1a29a4c35c77 - md5: fc3e207aa4596a682acc725da4b845ad + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.3.0-pyhd8ed1ab_0.conda + sha256: a27e5227a11c2ce7b299d02f2f2c99713df4c9bb0e78ddd6cf8ffc6a77593dc2 + md5: 4e51411b565d07405d7d3245b9a3b8c1 depends: - async-lru >=1.0.0 - httpx >=0.25.0 - - importlib_metadata >=4.8.3 + - importlib-metadata >=4.8.3 - importlib_resources >=1.4 - ipykernel >=6.5.0 - jinja2 >=3.0.3 @@ -15993,9 +12846,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyterlab?source=conda-forge-mapping - size: 7832005 - timestamp: 1719418789516 + - pkg:pypi/jupyterlab?source=hash-mapping + size: 7327279 + timestamp: 1730308848803 - kind: conda name: jupyterlab_pygments version: 0.3.0 @@ -16014,18 +12867,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyterlab-pygments?source=conda-forge-mapping + - pkg:pypi/jupyterlab-pygments?source=hash-mapping size: 18776 timestamp: 1707149279640 - kind: conda name: jupyterlab_server - version: 2.27.2 + version: 2.27.3 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.2-pyhd8ed1ab_0.conda - sha256: d4b9f9f46b3c494d678b4f003d7a2f7ac834dba641bd02332079dde5a9a85c98 - md5: d1cb7b113daaadd89e5aa6a32b28bf0d + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.27.3-pyhd8ed1ab_0.conda + sha256: a23b26d1a35bccdb91b9232119e5f402624e1e1a252b0e64cc20c6eb5b87cefb + md5: af8239bf1ba7e8c69b689f780f653488 depends: - babel >=2.10 - importlib-metadata >=4.8.3 @@ -16041,18 +12894,37 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyterlab-server?source=conda-forge-mapping - size: 49349 - timestamp: 1716434054129 + - pkg:pypi/jupyterlab-server?source=hash-mapping + size: 49355 + timestamp: 1721163412436 +- kind: conda + name: jupyterlab_widgets + version: 3.0.13 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.13-pyhd8ed1ab_0.conda + sha256: 0e7ec7936d766f39d5a0a8eafc63f5543f488883ad3645246bc22db6d632566e + md5: ccea946e6dce9f330fbf7fca97fe8de7 + depends: + - python >=3.7 + constrains: + - jupyterlab >=3,<5 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/jupyterlab-widgets?source=hash-mapping + size: 186024 + timestamp: 1724331451102 - kind: conda name: kealib version: 1.5.3 - build: h6c43f9b_1 - build_number: 1 + build: h6c43f9b_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_1.conda - sha256: b4b2cee0ad62ae1f8e4a541d34074c575df935682c023fdf1c21c9c5c9995fa9 - md5: a20c9e3598a55ca3e61cad90ef33ada3 + url: https://conda.anaconda.org/conda-forge/win-64/kealib-1.5.3-h6c43f9b_2.conda + sha256: 19c981a049651439cfd851bbf785144d0f10db1f605ce19001a8eb27da6def94 + md5: 873b3deabbefe46d00cc81ce7d9547a7 depends: - hdf5 >=1.14.3,<1.14.4.0a0 - ucrt >=10.0.20348.0 @@ -16061,93 +12933,74 @@ packages: license: MIT license_family: MIT purls: [] - size: 133355 - timestamp: 1716158947179 + size: 133242 + timestamp: 1725399840908 - kind: conda name: kealib version: 1.5.3 - build: h848a2d4_1 - build_number: 1 + build: h8edbb62_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h848a2d4_1.conda - sha256: f17ee2e89bce1923222148956c3b3ab2e859b60f82568a3241593239a8412546 - md5: dafdda3213a216870027af0c76f204c7 + url: https://conda.anaconda.org/conda-forge/osx-arm64/kealib-1.5.3-h8edbb62_2.conda + sha256: 29fef9ff99514a34d8026da4be5289bc4d2526974df459b63e92445fca7fd55e + md5: d5c581103f5433dd862acbf24facdf9b depends: - __osx >=11.0 - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 - license: MIT - license_family: MIT - purls: [] - size: 142911 - timestamp: 1716158475936 -- kind: conda - name: kealib - version: 1.5.3 - build: hb2b617a_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/kealib-1.5.3-hb2b617a_1.conda - sha256: 3150dedf047284e8b808a169dfe630d818d8513b79d08a5404b90973c61c6914 - md5: e24e1fa559fd29c34593d6a47b459443 - depends: - - __osx >=10.13 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcxx >=16 + - libcxx >=17 license: MIT license_family: MIT purls: [] - size: 152270 - timestamp: 1716158359765 + size: 142261 + timestamp: 1725399546359 - kind: conda name: kealib version: 1.5.3 - build: hee9dde6_1 - build_number: 1 + build: hf8d3e68_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hee9dde6_1.conda - sha256: d607ddb5906a335cb3665dd81f3adec4af248cf398147693b470b65d887408e7 - md5: c5b7b29e2b66107553d0366538257a51 + url: https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.3-hf8d3e68_2.conda + sha256: a45cb038fce2b6fa154cf0c71485a75b59cb1d8d6b0465bdcb23736aca6bf2ac + md5: ffe68c611ae0ccfda4e7a605195e22b3 depends: + - __glibc >=2.17,<3.0.a0 - hdf5 >=1.14.3,<1.14.4.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - libgcc >=13 + - libstdcxx >=13 license: MIT license_family: MIT purls: [] - size: 170709 - timestamp: 1716158265533 + size: 180005 + timestamp: 1725399272056 - kind: conda name: kernel-headers_linux-64 - version: 4.18.0 - build: he073ed8_2 - build_number: 2 + version: 3.10.0 + build: he073ed8_18 + build_number: 18 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_2.conda - sha256: a66f71d354bcc0890f683cc0183b2c66c846c3af630c4cdd88eb54d1d17afb3f - md5: 53dce80e1e9c697ef06e17cad8f18786 - depends: - - _sysroot_linux-64_curr_repodata_hack 3.* + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda + sha256: a922841ad80bd7b222502e65c07ecb67e4176c4fa5b03678a005f39fcc98be4b + md5: ad8527bf134a90e1c9ed35fa0b64318c constrains: - - sysroot_linux-64 ==2.28 + - sysroot_linux-64 ==2.17 license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 license_family: GPL purls: [] - size: 1258066 - timestamp: 1711086600855 + size: 943486 + timestamp: 1729794504440 - kind: conda name: keyring - version: 25.2.1 + version: 25.5.0 build: pyh534df25_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.2.1-pyh534df25_0.conda - sha256: 25c638602ef3854a8f1785004124ac3acba2b1ceaa7a2f23f51dfa09b5cd6d3f - md5: 8c071c544a2fc27cbc75dfa0d7362f0c + url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh534df25_0.conda + sha256: d4a5b92e82dfd1b60ea882618ecf9333ab0c2d6a16a36edbbe0d3102cc157081 + md5: a0ed4210b80d1c9b4737774c22e222a6 depends: - __osx - - importlib_metadata >=4.11.4 + - importlib-metadata >=4.11.4 - importlib_resources - jaraco.classes - jaraco.context @@ -16156,21 +13009,21 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/keyring?source=conda-forge-mapping - size: 36754 - timestamp: 1715715393602 + - pkg:pypi/keyring?source=hash-mapping + size: 37437 + timestamp: 1730056689995 - kind: conda name: keyring - version: 25.2.1 + version: 25.5.0 build: pyh7428d3b_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.2.1-pyh7428d3b_0.conda - sha256: 3c7402db93f974fee3ef88f1208c8d9ab4009f33392a6b6d340516c96b3ae5b5 - md5: 70fb816c1b6ab81e048e4c6227ec922c + url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh7428d3b_0.conda + sha256: 9199708fb578b7150bfd7c37fbb6b876f0432e2514a623148be29b96b8705afe + md5: 872fd60cb5aef19f8c83dfc6753e0385 depends: - __win - - importlib_metadata >=4.11.4 + - importlib-metadata >=4.11.4 - importlib_resources - jaraco.classes - jaraco.context @@ -16180,21 +13033,21 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/keyring?source=conda-forge-mapping - size: 36949 - timestamp: 1715715857146 + - pkg:pypi/keyring?source=hash-mapping + size: 37357 + timestamp: 1730056956899 - kind: conda name: keyring - version: 25.2.1 + version: 25.5.0 build: pyha804496_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.2.1-pyha804496_0.conda - sha256: a9608fa7d3ec6a58f01a8901773a28bbe08f2e799476cd2b9aae7f578dff8fab - md5: 8508b734287ac18dd1caa72a0d8127ee + url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + sha256: f9a0b7838db9366fba0b9917fe8d0654377ebf8959e904f963e12ff76a5cc9ba + md5: a36af57a05ceaed6827adc5e4ba81267 depends: - __linux - - importlib_metadata >=4.11.4 + - importlib-metadata >=4.11.4 - importlib_resources - jaraco.classes - jaraco.context @@ -16205,9 +13058,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/keyring?source=conda-forge-mapping - size: 36391 - timestamp: 1715715251004 + - pkg:pypi/keyring?source=hash-mapping + size: 37056 + timestamp: 1730056658373 - kind: conda name: keyutils version: 1.6.1 @@ -16224,27 +13077,12 @@ packages: timestamp: 1646151697040 - kind: conda name: khronos-opencl-icd-loader - version: 2023.04.17 - build: h37ebe6b_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/khronos-opencl-icd-loader-2023.04.17-h37ebe6b_1.conda - sha256: 3b24974863fd2d91a1aca1cface5c2aeac27d2d7d99544106e093a97e83fbe99 - md5: eaea84d06d52920a193a25acad540263 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 73863 - timestamp: 1717164474111 -- kind: conda - name: khronos-opencl-icd-loader - version: 2023.04.17 - build: h64bf75a_1 - build_number: 1 + version: 2024.05.08 + build: hc70643c_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/khronos-opencl-icd-loader-2023.04.17-h64bf75a_1.conda - sha256: c9a98f54a7b0dc8360285c71c3a5623f05276fd77ad10b37b3fa7118e5733364 - md5: 796b3630250f121b56cc70b616b942a8 + url: https://conda.anaconda.org/conda-forge/win-64/khronos-opencl-icd-loader-2024.05.08-hc70643c_0.conda + sha256: 701357f02926bef5cb6d060a5471d50dc6528500fd045805ea785398fbb6d6d2 + md5: 22b22ac3be757e10705caa3b5f321e0d depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -16252,111 +13090,111 @@ packages: license: Apache-2.0 license_family: APACHE purls: [] - size: 86227 - timestamp: 1717164911259 + size: 87736 + timestamp: 1727732609299 - kind: conda name: khronos-opencl-icd-loader - version: 2023.04.17 - build: hf50ae52_1 - build_number: 1 + version: 2024.05.08 + build: hd74edd7_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/khronos-opencl-icd-loader-2023.04.17-hf50ae52_1.conda - sha256: ee1450f9d73576c159eb9708bc223362d7801acd09f3a5fc8e6e705051522023 - md5: bbbbc2ed688a0d13c193d4bfbc5e54f5 + url: https://conda.anaconda.org/conda-forge/osx-arm64/khronos-opencl-icd-loader-2024.05.08-hd74edd7_0.conda + sha256: f5ef654f990ffe66fe940984db2074a17f1c59bb6426d965f0671e6cd9e2be04 + md5: ecf4c4b14fae860e2cebb7119df33cda + depends: + - __osx >=11.0 license: Apache-2.0 license_family: APACHE purls: [] - size: 74740 - timestamp: 1717164698426 + size: 76306 + timestamp: 1727732002349 - kind: conda name: kiwisolver - version: 1.4.5 - build: py310h232114e_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py310h232114e_1.conda - sha256: 8969469887a0b72f732ec9250fd25982499270bda473a5db4c04ee252db96d89 - md5: a340ed8a9c513e2782cb7feb3cfe665d + version: 1.4.7 + build: py310h3788b33_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py310h3788b33_0.conda + sha256: d97a9894803674e4f8155a5e98a49337d28bdee77dfd87e1614a824d190cd086 + md5: 4186d9b4d004b0fe0de6aa62496fb48a depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 55587 - timestamp: 1695380469062 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 71864 + timestamp: 1725459334634 - kind: conda name: kiwisolver - version: 1.4.5 - build: py310h38f39d4_1 - build_number: 1 + version: 1.4.7 + build: py310h7306fd8_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py310h38f39d4_1.conda - sha256: e84793b3bef7e5d92f96c511a06dc9cbcc49424995777595365c654effe67d6f - md5: 84392f391faad11ea910f38226590a88 + url: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py310h7306fd8_0.conda + sha256: 3032519a31c9110e8acaacb36432d7dd7f08208dc83901564ede5c639eab4c6b + md5: c00e8da20e1c9a572bed21b89361f9fc depends: - - libcxx >=15.0.7 + - __osx >=11.0 + - libcxx >=17 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 62043 - timestamp: 1695380329047 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 59106 + timestamp: 1725459558097 - kind: conda name: kiwisolver - version: 1.4.5 - build: py310h88cfcbd_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py310h88cfcbd_1.conda - sha256: ccd88bcb67f0cc8b68ed320039d58701da125de0579680d7d2ffe7857b872613 - md5: cb1db728c5e65918e30b65f9652a3458 + version: 1.4.7 + build: py310hc19bc0b_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py310hc19bc0b_0.conda + sha256: a87dff54b753a2ee19188ab9491a63d40a08873f17c7797cd5c44467a2ff4f12 + md5: 50d96539497fc7493cbe469fbb6b8b6e depends: - - libcxx >=15.0.7 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 60432 - timestamp: 1695380318538 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 55447 + timestamp: 1725459813185 - kind: conda name: kiwisolver - version: 1.4.5 - build: py310hd41b1e2_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py310hd41b1e2_1.conda - sha256: bb51906639bced3de1d4d7740ac284cdaa89e2f22e0b1ec796378b090b0648ba - md5: b8d67603d43b23ce7e988a5d81a7ab79 + version: 1.4.7 + build: py311h2c37856_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py311h2c37856_0.conda + sha256: 8ffc46f6e99c95c48426cf34c033d16cde3bcf100cd74d1d74a33943a85a6ec8 + md5: ee572d19da1346db8e78cb8e7d5d2330 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - __osx >=11.0 + - libcxx >=17 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 73123 - timestamp: 1695380074542 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 59357 + timestamp: 1725459504453 - kind: conda name: kiwisolver - version: 1.4.5 - build: py311h005e61a_1 - build_number: 1 + version: 1.4.7 + build: py311h3257749_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py311h005e61a_1.conda - sha256: 8fdd1bff75c24ac6a2a13be4db1c9abcfa39ab50b81539e8bd01131141df271a - md5: de0b3f37405f8386ac8be18fdc06ff92 + url: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py311h3257749_0.conda + sha256: a2079e13d1345a5dd61df6be933e828e805051256e7260009ba93fce55aebd75 + md5: 18fd1ac3d79a8d6550eaea5ceaa00036 depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -16366,79 +13204,79 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 55822 - timestamp: 1695380386563 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 55867 + timestamp: 1725459681416 - kind: conda name: kiwisolver - version: 1.4.5 - build: py311h5fe6e05_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py311h5fe6e05_1.conda - sha256: 586a4d0a17e6cfd9f8fdee56106d263ee40ca156832774d6e899f82ad68ac8d0 - md5: 24305b23f7995de72bbd53b7c01242a2 + version: 1.4.7 + build: py311hd18a35c_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py311hd18a35c_0.conda + sha256: 4af11cbc063096a284fe1689b33424e7e49732a27fd396d74c7dee03d1e788ee + md5: be34c90cce87090d24da64a7c239ca96 depends: - - libcxx >=15.0.7 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 60694 - timestamp: 1695380246398 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 72393 + timestamp: 1725459421768 - kind: conda name: kiwisolver - version: 1.4.5 - build: py311h9547e67_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py311h9547e67_1.conda - sha256: 723b0894d2d2b05a38f9c5a285d5a0a5baa27235ceab6531dbf262ba7c6955c1 - md5: 2c65bdf442b0d37aad080c8a4e0d452f + version: 1.4.7 + build: py312h6142ec9_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py312h6142ec9_0.conda + sha256: 056a2cc3b6c07c79719cb8f2eda09408fca137b49fe46f919ef14247caa6f0e9 + md5: ea8a65d24baad7ed822ab7f07f19e105 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - __osx >=11.0 + - libcxx >=17 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 73273 - timestamp: 1695380140676 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 60966 + timestamp: 1725459569843 - kind: conda name: kiwisolver - version: 1.4.5 - build: py311he4fd1f5_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py311he4fd1f5_1.conda - sha256: 907af50734789d47b3e8b2148dde763699dc746c64e5849baf6bd720c8cd0235 - md5: 4c871d65040b8c7bbb914df7f8f11492 + version: 1.4.7 + build: py312h68727a3_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.7-py312h68727a3_0.conda + sha256: d752c53071ee5d712baa9742dd1629e60388c5ce4ab11d4e73a1690443e41769 + md5: 444266743652a4f1538145e9362f6d3b depends: - - libcxx >=15.0.7 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 61946 - timestamp: 1695380538042 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 70922 + timestamp: 1725459412788 - kind: conda name: kiwisolver - version: 1.4.5 - build: py312h0d7def4_1 - build_number: 1 + version: 1.4.7 + build: py312hd5eb7cc_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py312h0d7def4_1.conda - sha256: 07021ffc3bbf42922694c23634e028950547d088717b448b46296b3ca5a26068 - md5: 77c9d46fc8680bb08f4e1ebb6669e44e + url: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.7-py312hd5eb7cc_0.conda + sha256: b5b3ed78e4c44483afb68f53427db3d232ddf7930ca180bb00fa86ceca7cf7e4 + md5: 1eddb74a9fbb1d4d6fde9aef272ad1d0 depends: - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -16446,68 +13284,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 55576 - timestamp: 1695380565733 -- kind: conda - name: kiwisolver - version: 1.4.5 - build: py312h389731b_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.5-py312h389731b_1.conda - sha256: ee1a2189dc405f59c27ee1f061076d8761684c0fcd38cccc215630d8debf9f85 - md5: 77eeca70c1c4f4187d6b199015c99ee5 - depends: - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 61747 - timestamp: 1695380538266 -- kind: conda - name: kiwisolver - version: 1.4.5 - build: py312h49ebfd2_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py312h49ebfd2_1.conda - sha256: 11d9daa79051a7ae52881d11f48816366fd3d46018281431abe507da7b45f69c - md5: 21f174a5cfb5964069c374171a979157 - depends: - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 60227 - timestamp: 1695380392812 -- kind: conda - name: kiwisolver - version: 1.4.5 - build: py312h8572e83_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py312h8572e83_1.conda - sha256: 2ffd3f6726392591c6794ab130f6701f5ffba0ec8658ef40db5a95ec8d583143 - md5: c1e71f2bc05d8e8e033aefac2c490d05 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/kiwisolver?source=conda-forge-mapping - size: 72099 - timestamp: 1695380122482 + - pkg:pypi/kiwisolver?source=hash-mapping + size: 55405 + timestamp: 1725459633511 - kind: conda name: krb5 version: 1.21.3 @@ -16527,25 +13306,6 @@ packages: purls: [] size: 1155530 timestamp: 1719463474401 -- kind: conda - name: krb5 - version: 1.21.3 - build: h37d8d59_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - sha256: 83b52685a4ce542772f0892a0f05764ac69d57187975579a0835ff255ae3ef9c - md5: d4765c524b1d91567886bde656fb514b - depends: - - __osx >=10.13 - - libcxx >=16 - - libedit >=3.1.20191231,<3.2.0a0 - - libedit >=3.1.20191231,<4.0a0 - - openssl >=3.3.1,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 1185323 - timestamp: 1719463492984 - kind: conda name: krb5 version: 1.21.3 @@ -16631,21 +13391,6 @@ packages: purls: [] size: 105177 timestamp: 1692821351822 -- kind: conda - name: laz-perf - version: 3.4.0 - build: h1c7c39f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/laz-perf-3.4.0-h1c7c39f_0.conda - sha256: ff7dca1285859dfe6c27dadda11c56d3377ccfb1aa64c53ced7e5196e9b02e92 - md5: 88233bde759c0bc3563646e3e04ff1e0 - depends: - - libcxx >=15.0.7 - license: LGPL-2.1-or-later - license_family: LGPL - purls: [] - size: 105370 - timestamp: 1692821223944 - kind: conda name: laz-perf version: 3.4.0 @@ -16673,7 +13418,7 @@ packages: md5: d3592435917b62a8becff3a60db674f6 depends: - 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 @@ -16692,28 +13437,12 @@ packages: md5: 66f6c134e76fe13cce8a9ea5814b5dd5 depends: - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 license: MIT license_family: MIT purls: [] size: 211959 timestamp: 1701647962657 -- kind: conda - name: lcms2 - version: '2.16' - build: ha2f27b4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.16-ha2f27b4_0.conda - sha256: 222ebc0a55544b9922f61e75015d02861e65b48f12113af41d48ba0814e14e4e - md5: 1442db8f03517834843666c422238c9b - depends: - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 - license: MIT - license_family: MIT - purls: [] - size: 224432 - timestamp: 1701648089496 - kind: conda name: lcms2 version: '2.16' @@ -16725,7 +13454,7 @@ packages: depends: - libgcc-ng >=12 - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 license: MIT license_family: MIT purls: [] @@ -16733,20 +13462,22 @@ packages: timestamp: 1701647787198 - kind: conda name: ld_impl_linux-64 - version: '2.40' - build: hf3520f5_7 - build_number: 7 + version: '2.43' + build: h712a8e2_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda - sha256: 764b6950aceaaad0c67ef925417594dd14cd2e22fff864aeef455ac259263d15 - md5: b80f2f396ca2c28b8c14c437a4ed1e74 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe + md5: 048b02e3962f066da18efe3a21b77672 + depends: + - __glibc >=2.17,<3.0.a0 constrains: - - binutils_impl_linux-64 2.40 + - binutils_impl_linux-64 2.43 license: GPL-3.0-only license_family: GPL purls: [] - size: 707602 - timestamp: 1718625640445 + size: 669211 + timestamp: 1729655358674 - kind: conda name: lerc version: 4.0.0 @@ -16794,97 +13525,68 @@ packages: purls: [] size: 215721 timestamp: 1657977558796 -- kind: conda - name: lerc - version: 4.0.0 - build: hb486fe8_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2 - sha256: e41790fc0f4089726369b3c7f813117bbc14b533e0ed8b94cf75aba252e82497 - md5: f9d6a4c82889d5ecedec1d90eb673c55 - depends: - - libcxx >=13.0.1 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 290319 - timestamp: 1657977526749 - kind: conda name: libabseil - version: '20240116.2' - build: cxx17_h59595ed_0 + version: '20240722.0' + build: cxx17_h5888daf_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240116.2-cxx17_h59595ed_0.conda - sha256: 19b789dc38dff64eee2002675991e63f381eedf5efd5c85f2dac512ed97376d7 - md5: 682bdbe046a68f749769b492f3625c5c + url: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_h5888daf_1.conda + sha256: 8f91429091183c26950f1e7ffa730e8632f0627ba35d2fccd71df31628c9b4e5 + md5: e1f604644fe8d78e22660e2fec6756bc depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 constrains: - - libabseil-static =20240116.2=cxx17* - - abseil-cpp =20240116.2 + - libabseil-static =20240722.0=cxx17* + - abseil-cpp =20240722.0 license: Apache-2.0 license_family: Apache purls: [] - size: 1266634 - timestamp: 1714403128134 + size: 1310521 + timestamp: 1727295454064 - kind: conda name: libabseil - version: '20240116.2' - build: cxx17_h63175ca_0 + version: '20240722.0' + build: cxx17_he0c23c2_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240116.2-cxx17_h63175ca_0.conda - sha256: 37539d02a9d1064a18838303a9829fa14d5bffa5e02349b3a15d9bd8a2815e79 - md5: 31b8c712b478ba94896707c159c60499 + url: https://conda.anaconda.org/conda-forge/win-64/libabseil-20240722.0-cxx17_he0c23c2_1.conda + sha256: 52ff148dee1871ef1d5c298bae20309707e866b44714a0a333a5ed2cf9a38832 + md5: 3f59a73b07a05530b252ecb07dd882b9 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - abseil-cpp =20240116.2 - - libabseil-static =20240116.2=cxx17* - license: Apache-2.0 - license_family: Apache - purls: [] - size: 1781843 - timestamp: 1714404063887 -- kind: conda - name: libabseil - version: '20240116.2' - build: cxx17_hc1bcbd7_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20240116.2-cxx17_hc1bcbd7_0.conda - sha256: 91c7818fd4d4e1d7e7fb6ace5f72e699112a9207f00f1ee82e62b7a87d239837 - md5: f2ac89dbd4914f487706282ebf787636 - depends: - - libcxx >=16 - constrains: - - __osx >=10.13 - - libabseil-static =20240116.2=cxx17* - - abseil-cpp =20240116.2 + - libabseil-static =20240722.0=cxx17* + - abseil-cpp =20240722.0 license: Apache-2.0 license_family: Apache purls: [] - size: 1131191 - timestamp: 1714403767205 + size: 1777570 + timestamp: 1727296115119 - kind: conda name: libabseil - version: '20240116.2' - build: cxx17_hebf3989_0 + version: '20240722.0' + build: cxx17_hf9b8971_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240116.2-cxx17_hebf3989_0.conda - sha256: d96bd35e162637be3767637352195e6cdfd85d98068564f73f3450b0cb265776 - md5: edc3edb68fd9cbb014ac675dc73006c2 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_hf9b8971_1.conda + sha256: 90bf08a75506dfcf28a70977da8ab050bcf594cd02abd3a9d84a22c9e8161724 + md5: 706da5e791c569a7b9814877098a6a0a depends: - - libcxx >=16 + - __osx >=11.0 + - libcxx >=17 constrains: - - abseil-cpp =20240116.2 - - libabseil-static =20240116.2=cxx17* + - libabseil-static =20240722.0=cxx17* + - abseil-cpp =20240722.0 license: Apache-2.0 license_family: Apache purls: [] - size: 1143678 - timestamp: 1714403860076 + size: 1179072 + timestamp: 1727295571173 - kind: conda name: libaec version: 1.1.3 @@ -16918,21 +13620,6 @@ packages: purls: [] size: 32567 timestamp: 1711021603471 -- kind: conda - name: libaec - version: 1.1.3 - build: h73e2aa4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda - sha256: dae5921339c5d89f4bf58a95fd4e9c76270dbf7f6a94f3c5081b574905fcccf8 - md5: 66d3c1f6dd4636216b4fca7a748d50eb - depends: - - libcxx >=16 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 28602 - timestamp: 1711021419744 - kind: conda name: libaec version: 1.1.3 @@ -16948,30 +13635,6 @@ packages: purls: [] size: 28451 timestamp: 1711021498493 -- kind: conda - name: libarchive - version: 3.7.4 - build: h20e244c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - sha256: 9e46db25e976630e6738b351d76d9b79047ae232638b82f9f45eba774caaef8a - md5: 82a85fa38e83366009b7f4b2cef4deb8 - depends: - - __osx >=10.13 - - bzip2 >=1.0.8,<2.0a0 - - libiconv >=1.17,<2.0a0 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - lz4-c >=1.9.3,<1.10.0a0 - - lzo >=2.10,<3.0a0 - - openssl >=3.3.0,<4.0a0 - - xz >=5.2.6,<6.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 742682 - timestamp: 1716394747351 - kind: conda name: libarchive version: 3.7.4 @@ -17046,675 +13709,880 @@ packages: timestamp: 1716394516418 - kind: conda name: libarrow - version: 16.1.0 - build: h067ad5e_13_cpu - build_number: 13 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libarrow-16.1.0-h067ad5e_13_cpu.conda - sha256: 164f11eb92b0d95b0d9dca6be689dd25985c034d7f9848821c0d4e24bf137fd0 - md5: b3e7a157ad105ec63220cc45b6a0d4cb - depends: - - __osx >=10.13 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-identity-cpp >=1.8.0,<1.8.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-files-datalake-cpp >=12.10.0,<12.10.1.0a0 + version: 15.0.2 + build: h1972583_39_cpu + build_number: 39 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-15.0.2-h1972583_39_cpu.conda + sha256: d363688457c63efedcef74e2ea358c5e24e4a2000b87ef09ae9675aef7fa1619 + md5: 15141161fce390b3ffa8dcdf6c08d7ef + depends: + - __glibc >=2.17,<3.0.a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 - bzip2 >=1.0.8,<2.0a0 + - gflags >=2.2.2,<2.3.0a0 - glog >=0.7.1,<0.8.0a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 + - libabseil >=20240722.0,<20240723.0a0 - libbrotlidec >=1.1.0,<1.2.0a0 - libbrotlienc >=1.1.0,<1.2.0a0 - - libcxx >=16 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 + - libgcc >=13 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 + - libre2-11 >=2024.7.2 + - libstdcxx >=13 - libutf8proc >=2.8.0,<3.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - orc >=2.0.1,<2.0.2.0a0 + - orc >=2.0.2,<2.0.3.0a0 - re2 - snappy >=1.2.1,<1.3.0a0 - zstd >=1.5.6,<1.6.0a0 constrains: - - parquet-cpp <0.0a0 - - apache-arrow-proc =*=cpu - arrow-cpp <0.0a0 + - apache-arrow-proc =*=cpu + - parquet-cpp <0.0a0 license: Apache-2.0 + license_family: APACHE purls: [] - size: 5930058 - timestamp: 1720436527348 + size: 8256135 + timestamp: 1729869501017 - kind: conda name: libarrow - version: 16.1.0 - build: h56e7afd_13_cpu - build_number: 13 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-16.1.0-h56e7afd_13_cpu.conda - sha256: 995cf6bda60272fa62947573afdeb41cf590da429087bf2466309bf669c00220 - md5: f946bff9ab0922a79e5cd53a26546e89 + version: 15.0.2 + build: hfcb7bf0_39_cpu + build_number: 39 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-15.0.2-hfcb7bf0_39_cpu.conda + sha256: 370c416fe810aced638ae353461b8c7dfee2d04803f7f8b9bc2c03dca069dad1 + md5: 403cf66905c6c957722ed422b9dad8dd depends: - - __glibc >=2.17,<3.0.a0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-identity-cpp >=1.8.0,<1.8.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-files-datalake-cpp >=12.10.0,<12.10.1.0a0 + - __osx >=11.0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 - bzip2 >=1.0.8,<2.0a0 - - gflags >=2.2.2,<2.3.0a0 - glog >=0.7.1,<0.8.0a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 + - libabseil >=20240722.0,<20240723.0a0 - libbrotlidec >=1.1.0,<1.2.0a0 - libbrotlienc >=1.1.0,<1.2.0a0 - - libgcc-ng >=12 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 - - libstdcxx-ng >=12 + - libcxx >=17 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 + - libre2-11 >=2024.7.2 - libutf8proc >=2.8.0,<3.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - orc >=2.0.1,<2.0.2.0a0 + - orc >=2.0.2,<2.0.3.0a0 - re2 - snappy >=1.2.1,<1.3.0a0 - zstd >=1.5.6,<1.6.0a0 constrains: - parquet-cpp <0.0a0 - - arrow-cpp <0.0a0 - apache-arrow-proc =*=cpu + - arrow-cpp <0.0a0 license: Apache-2.0 + license_family: APACHE purls: [] - size: 8359700 - timestamp: 1720437133430 + size: 5148088 + timestamp: 1729870070382 - kind: conda name: libarrow version: 16.1.0 - build: h6c1a0db_13_cpu - build_number: 13 + build: h80430d3_36_cpu + build_number: 36 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h6c1a0db_13_cpu.conda - sha256: 3398f355f01bc567ca72ec0de6db65168a6f92c7eed38eda28356465d9da9b63 - md5: 5f21131becfcb79419d21ce1fd0feb1d + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-16.1.0-h80430d3_36_cpu.conda + sha256: f711ad565d64a10805174a50df7db243a6e8528595329d94e73429c936a69580 + md5: ce30987cc614d14f3a98948cd59f4c12 depends: - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 - bzip2 >=1.0.8,<2.0a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 + - libabseil >=20240722.0,<20240723.0a0 - libbrotlidec >=1.1.0,<1.2.0a0 - libbrotlienc >=1.1.0,<1.2.0a0 - libcrc32c >=1.1.2,<1.2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 + - libre2-11 >=2024.7.2 - libutf8proc >=2.8.0,<3.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - orc >=2.0.1,<2.0.2.0a0 + - orc >=2.0.2,<2.0.3.0a0 - re2 - snappy >=1.2.1,<1.3.0a0 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 - zstd >=1.5.6,<1.6.0a0 constrains: + - apache-arrow-proc =*=cpu - arrow-cpp <0.0a0 - parquet-cpp <0.0a0 - - apache-arrow-proc =*=cpu license: Apache-2.0 + license_family: APACHE purls: [] - size: 5104865 - timestamp: 1720437362815 + size: 5063576 + timestamp: 1729855880986 - kind: conda name: libarrow - version: 16.1.0 - build: h71e69af_13_cpu - build_number: 13 + version: 18.0.0 + build: h6fea68a_0_cpu subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-16.1.0-h71e69af_13_cpu.conda - sha256: 86fac029cf6be35816a49756c54f44afddd0a5f2c3e31ab0f8909e7c16891e02 - md5: 012e51e41fbdd3b9d9fc5fc6869b8a22 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-18.0.0-h6fea68a_0_cpu.conda + sha256: ddd556d066216a1e3f157eaa0cedd811105bae706f98feaeef064569e889f40f + md5: 64ff84a32d9fa037380459f0440f3d8e depends: - __osx >=11.0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-identity-cpp >=1.8.0,<1.8.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-files-datalake-cpp >=12.10.0,<12.10.1.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-identity-cpp >=1.10.0,<1.10.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-files-datalake-cpp >=12.12.0,<12.12.1.0a0 - bzip2 >=1.0.8,<2.0a0 - glog >=0.7.1,<0.8.0a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 + - libabseil >=20240722.0,<20240723.0a0 - libbrotlidec >=1.1.0,<1.2.0a0 - libbrotlienc >=1.1.0,<1.2.0a0 - - libcxx >=16 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 + - libcxx >=18 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 + - libre2-11 >=2024.7.2 - libutf8proc >=2.8.0,<3.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - orc >=2.0.1,<2.0.2.0a0 + - orc >=2.0.2,<2.0.3.0a0 - re2 - snappy >=1.2.1,<1.3.0a0 - zstd >=1.5.6,<1.6.0a0 constrains: + - arrow-cpp <0.0a0 + - apache-arrow-proc =*=cpu - parquet-cpp <0.0a0 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 5448966 + timestamp: 1730155187081 +- kind: conda + name: libarrow + version: 18.0.0 + build: h80430d3_0_cpu + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-18.0.0-h80430d3_0_cpu.conda + sha256: 418bdf6f615264a5840da7c5033bcdbba4c97dad355808d30edcdcc460bdc731 + md5: 72eb0a88a9904fde9b70da74cf589f24 + depends: + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 + - bzip2 >=1.0.8,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libbrotlidec >=1.1.0,<1.2.0a0 + - libbrotlienc >=1.1.0,<1.2.0a0 + - libcrc32c >=1.1.2,<1.2.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 + - libre2-11 >=2024.7.2 + - libutf8proc >=2.8.0,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - orc >=2.0.2,<2.0.3.0a0 + - re2 + - snappy >=1.2.1,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 + - zstd >=1.5.6,<1.6.0a0 + constrains: - arrow-cpp <0.0a0 + - parquet-cpp <0.0a0 + - apache-arrow-proc =*=cpu + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 5215151 + timestamp: 1730157012602 +- kind: conda + name: libarrow + version: 18.0.0 + build: ha5db6c2_0_cpu + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-18.0.0-ha5db6c2_0_cpu.conda + sha256: a997e60707f8c36aa6adadbe1dad4a92b02b6b7a8c58042c12ed1e8102887429 + md5: 55f4011e75175bfbbc10f8e5998345d4 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-identity-cpp >=1.10.0,<1.10.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-files-datalake-cpp >=12.12.0,<12.12.1.0a0 + - bzip2 >=1.0.8,<2.0a0 + - gflags >=2.2.2,<2.3.0a0 + - glog >=0.7.1,<0.8.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libbrotlidec >=1.1.0,<1.2.0a0 + - libbrotlienc >=1.1.0,<1.2.0a0 + - libgcc >=13 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 + - libre2-11 >=2024.7.2 + - libstdcxx >=13 + - libutf8proc >=2.8.0,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - orc >=2.0.2,<2.0.3.0a0 + - re2 + - snappy >=1.2.1,<1.3.0a0 + - zstd >=1.5.6,<1.6.0a0 + constrains: + - parquet-cpp <0.0a0 - apache-arrow-proc =*=cpu + - arrow-cpp <0.0a0 license: Apache-2.0 + license_family: APACHE purls: [] - size: 5295923 - timestamp: 1720437225852 + size: 8719515 + timestamp: 1730155543609 - kind: conda name: libarrow-acero - version: 16.1.0 - build: h00cdb27_13_cpu - build_number: 13 + version: 15.0.2 + build: h5833ebf_39_cpu + build_number: 39 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-16.1.0-h00cdb27_13_cpu.conda - sha256: b9b85a6e4da6a0946a0f51d6785d1e4efab53402a2c8f55af0c90c41b5d4dc42 - md5: 35db47aab7c926b7288655c6098a535e + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-15.0.2-h5833ebf_39_cpu.conda + sha256: ca58ac6de69e2b96053ec7f1666f8648e6f2fe3138c64280c0a6a1d2e6598e20 + md5: 410118d1a2d31957e46042ee5da9afac depends: - __osx >=11.0 - - libarrow 16.1.0 h71e69af_13_cpu - - libcxx >=16 + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libcxx >=17 license: Apache-2.0 + license_family: APACHE purls: [] - size: 487103 - timestamp: 1720437332109 + size: 491456 + timestamp: 1729870155309 - kind: conda name: libarrow-acero - version: 16.1.0 - build: he02047a_13_cpu - build_number: 13 + version: 15.0.2 + build: h5d0bfc1_39_cpu + build_number: 39 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-16.1.0-he02047a_13_cpu.conda - sha256: 219ea05c4ce10c92ab4c8c6fe168bebc4875d2df14b794482bb311334bfcad13 - md5: af6fe29b2ff224505239ce660d13753c + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-15.0.2-h5d0bfc1_39_cpu.conda + sha256: 21d80d106e0f09187c2a2f4cf54494738063ab6801ff15e947a76cb96ffbc847 + md5: b17fe7a1f6bc45fd3a4424c43463130a depends: - __glibc >=2.17,<3.0.a0 - - libarrow 16.1.0 h56e7afd_13_cpu - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - gflags >=2.2.2,<2.3.0a0 + - libarrow 15.0.2 h1972583_39_cpu + - libgcc >=13 + - libstdcxx >=13 license: Apache-2.0 + license_family: APACHE purls: [] - size: 600134 - timestamp: 1720437181747 + size: 614751 + timestamp: 1729869532333 - kind: conda name: libarrow-acero version: 16.1.0 - build: he0c23c2_13_cpu - build_number: 13 + build: hac47afa_36_cpu + build_number: 36 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-he0c23c2_13_cpu.conda - sha256: 4da46deffffa042c76b9bef83012f2bf3a49a708be82827358db8a3f53ec292d - md5: b9f1a82bc2add1deabbc3ef11307583d + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-16.1.0-hac47afa_36_cpu.conda + sha256: f8d14f1bca74d637e50467d0fe3c6ad6efb09351cbdfb2c619a3367b61c14e39 + md5: e3f1cddd365383c8552825c7157b869e depends: - - libarrow 16.1.0 h6c1a0db_13_cpu + - libarrow 16.1.0 h80430d3_36_cpu - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 license: Apache-2.0 + license_family: APACHE purls: [] - size: 445782 - timestamp: 1720437433953 + size: 446433 + timestamp: 1729855922674 - kind: conda name: libarrow-acero - version: 16.1.0 - build: hf036a51_13_cpu - build_number: 13 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-16.1.0-hf036a51_13_cpu.conda - sha256: 924f2ca930e1c69943ede1b58b553895104b31d6ab9127d606a31f349b9b48dc - md5: 6db98bf2d18310dc5bd59e443783e44e - depends: - - __osx >=10.13 - - libarrow 16.1.0 h067ad5e_13_cpu - - libcxx >=16 + version: 18.0.0 + build: h286801f_0_cpu + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-18.0.0-h286801f_0_cpu.conda + sha256: 93014da94788f24710be8e457c49609cf8dc17cd91e5fb80285ce28cefce6b57 + md5: deab7a5984465e46176d289377025757 + depends: + - __osx >=11.0 + - libarrow 18.0.0 h6fea68a_0_cpu + - libcxx >=18 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 491557 + timestamp: 1730155291137 +- kind: conda + name: libarrow-acero + version: 18.0.0 + build: h5888daf_0_cpu + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-18.0.0-h5888daf_0_cpu.conda + sha256: 62cefa335403df349ddf91f2a2c0ff8f967edbdb5a4c0ca7e9c5bc13c47ed163 + md5: 8771a1fcc6d8bf2fd18cc57d778f90a3 + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow 18.0.0 ha5db6c2_0_cpu + - libgcc >=13 + - libstdcxx >=13 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 620074 + timestamp: 1730155586601 +- kind: conda + name: libarrow-acero + version: 18.0.0 + build: hac47afa_0_cpu + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-18.0.0-hac47afa_0_cpu.conda + sha256: 4ca832f1e4e50b9257308a5f9e34d9af74644f32add016aa47a21b5e9900a4e9 + md5: 699d7bec1899acd4cd1a93e2871e81be + depends: + - libarrow 18.0.0 h80430d3_0_cpu + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 license: Apache-2.0 + license_family: APACHE purls: [] - size: 525308 - timestamp: 1720436646010 + size: 455994 + timestamp: 1730157065782 - kind: conda name: libarrow-dataset - version: 16.1.0 - build: h00cdb27_13_cpu - build_number: 13 + version: 15.0.2 + build: h5833ebf_39_cpu + build_number: 39 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-16.1.0-h00cdb27_13_cpu.conda - sha256: 1dd5b37c26c2e93c29b21b62481c140ad0c04ec3c4a6a146c015fceb21b7a678 - md5: 16db099afd0425fcecfa451d75ada509 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-15.0.2-h5833ebf_39_cpu.conda + sha256: d8986d5dd9f799248dd0cf7c40ca929fc71c6a8ca352675171c116503fd225b7 + md5: 1f6bb00ed3e91c4941093add50f75b7d depends: - __osx >=11.0 - - libarrow 16.1.0 h71e69af_13_cpu - - libarrow-acero 16.1.0 h00cdb27_13_cpu - - libcxx >=16 - - libparquet 16.1.0 hcf52c46_13_cpu + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libarrow-acero 15.0.2 h5833ebf_39_cpu + - libcxx >=17 + - libparquet 15.0.2 h8aa6169_39_cpu license: Apache-2.0 + license_family: APACHE purls: [] - size: 493710 - timestamp: 1720438486816 + size: 503371 + timestamp: 1729871331025 - kind: conda name: libarrow-dataset - version: 16.1.0 - build: he02047a_13_cpu - build_number: 13 + version: 15.0.2 + build: h5d0bfc1_39_cpu + build_number: 39 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-16.1.0-he02047a_13_cpu.conda - sha256: bdf405bca856b1f576f5f819a8bc1943bcf07bff80091131ca46f6dcd37d8093 - md5: 79ff4667979272cc344c6bb16e64d354 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-15.0.2-h5d0bfc1_39_cpu.conda + sha256: bdb0c11dd665d058f11a4843acb1669e758c1e98aa7af64c09fae18a4609f1bc + md5: d5aba146ac48c1a87a67fbf3d780535a depends: - __glibc >=2.17,<3.0.a0 - - libarrow 16.1.0 h56e7afd_13_cpu - - libarrow-acero 16.1.0 he02047a_13_cpu - - libgcc-ng >=12 - - libparquet 16.1.0 h9e5060d_13_cpu - - libstdcxx-ng >=12 + - gflags >=2.2.2,<2.3.0a0 + - libarrow 15.0.2 h1972583_39_cpu + - libarrow-acero 15.0.2 h5d0bfc1_39_cpu + - libgcc >=13 + - libparquet 15.0.2 hd082c85_39_cpu + - libstdcxx >=13 license: Apache-2.0 + license_family: APACHE purls: [] - size: 579189 - timestamp: 1720437278656 + size: 593755 + timestamp: 1729869589959 - kind: conda name: libarrow-dataset version: 16.1.0 - build: he0c23c2_13_cpu - build_number: 13 + build: hac47afa_36_cpu + build_number: 36 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-he0c23c2_13_cpu.conda - sha256: 0a68d1a176487897e054e664e09993d06fa4972443761e745cf2c067c6c53b13 - md5: 29360f59191cee83561a03c5edb5b012 + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-16.1.0-hac47afa_36_cpu.conda + sha256: 717fdca7b62af62eac8cab3cd0119f477941686c3c5578632188dc6bdf9cdeff + md5: 002b377bfc6f9559669e669b55c2615b depends: - - libarrow 16.1.0 h6c1a0db_13_cpu - - libarrow-acero 16.1.0 he0c23c2_13_cpu - - libparquet 16.1.0 h178134c_13_cpu + - libarrow 16.1.0 h80430d3_36_cpu + - libarrow-acero 16.1.0 hac47afa_36_cpu + - libparquet 16.1.0 h59f2d37_36_cpu - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 license: Apache-2.0 + license_family: APACHE purls: [] - size: 427825 - timestamp: 1720437664456 + size: 433320 + timestamp: 1729856072338 - kind: conda name: libarrow-dataset - version: 16.1.0 - build: hf036a51_13_cpu - build_number: 13 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-16.1.0-hf036a51_13_cpu.conda - sha256: 1e68602533505792fe3d3d0a4716858d24306ffda5b320bd8be16de2bcceb5f7 - md5: eacefb3101868102cde8ed27c8acec47 - depends: - - __osx >=10.13 - - libarrow 16.1.0 h067ad5e_13_cpu - - libarrow-acero 16.1.0 hf036a51_13_cpu - - libcxx >=16 - - libparquet 16.1.0 h904a336_13_cpu + version: 18.0.0 + build: h286801f_0_cpu + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-18.0.0-h286801f_0_cpu.conda + sha256: b204bb8d3c5d5a2ab74b9375086ebee91c0a500e2146aed01e8915a4eae2f140 + md5: 719055efe1941ef666b3882e6a85a9bb + depends: + - __osx >=11.0 + - libarrow 18.0.0 h6fea68a_0_cpu + - libarrow-acero 18.0.0 h286801f_0_cpu + - libcxx >=18 + - libparquet 18.0.0 hda0ea68_0_cpu license: Apache-2.0 + license_family: APACHE purls: [] - size: 517672 - timestamp: 1720437238559 + size: 497503 + timestamp: 1730156406678 - kind: conda - name: libarrow-substrait - version: 16.1.0 - build: h1f0e801_13_cpu - build_number: 13 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-h1f0e801_13_cpu.conda - sha256: adc27c9d7bfe4f62f7e707c9654ab99e666af4a785bc3249e3bafa33c07b1366 - md5: f6133fea37a904caab0cd23bafb9c879 + name: libarrow-dataset + version: 18.0.0 + build: h5888daf_0_cpu + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-18.0.0-h5888daf_0_cpu.conda + sha256: e90edc2e0982c00f75130d7d2837de7402453ee033adc1030b1475f33746a8b4 + md5: 5c121a2d50b068076ff4f2b6d68dbca5 depends: - - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libarrow 16.1.0 h6c1a0db_13_cpu - - libarrow-acero 16.1.0 he0c23c2_13_cpu - - libarrow-dataset 16.1.0 he0c23c2_13_cpu - - libprotobuf >=4.25.3,<4.25.4.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __glibc >=2.17,<3.0.a0 + - libarrow 18.0.0 ha5db6c2_0_cpu + - libarrow-acero 18.0.0 h5888daf_0_cpu + - libgcc >=13 + - libparquet 18.0.0 h6bd9018_0_cpu + - libstdcxx >=13 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 594320 + timestamp: 1730155664725 +- kind: conda + name: libarrow-dataset + version: 18.0.0 + build: hac47afa_0_cpu + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-18.0.0-hac47afa_0_cpu.conda + sha256: a66bd30c5fe0e4e68b5e3873caedb2538f2ad5331ba63c253a1a240acc37dff5 + md5: b196e65eea5f925160298ce0336d8e5c + depends: + - libarrow 18.0.0 h80430d3_0_cpu + - libarrow-acero 18.0.0 hac47afa_0_cpu + - libparquet 18.0.0 h59f2d37_0_cpu + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 442595 + timestamp: 1730157246040 +- kind: conda + name: libarrow-flight + version: 15.0.2 + build: h15553ab_39_cpu + build_number: 39 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-15.0.2-h15553ab_39_cpu.conda + sha256: a0a8e144cfb9123265ecad004933dd4d03a08320d07176bcdd0718b8283dad77 + md5: 60c7e7a6f9b8beab20c40f82f4e2ecc1 + depends: + - __glibc >=2.17,<3.0.a0 + - gflags >=2.2.2,<2.3.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 15.0.2 h1972583_39_cpu + - libgcc >=13 + - libgrpc >=1.65.5,<1.66.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libstdcxx >=13 + - ucx >=1.17.0,<1.18.0a0 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 517769 + timestamp: 1729869548038 +- kind: conda + name: libarrow-flight + version: 15.0.2 + build: h1a98edb_39_cpu + build_number: 39 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-15.0.2-h1a98edb_39_cpu.conda + sha256: 34f5bf10ed16c0814a6b53b40e8c9e5a4f1f80277d0c283b2e1fcb6776038207 + md5: 513ea5339645747d5251730ab4fad806 + depends: + - __osx >=11.0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libcxx >=17 + - libgrpc >=1.65.5,<1.66.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 322742 + timestamp: 1729870375285 +- kind: conda + name: libarrow-flight-sql + version: 15.0.2 + build: h54b16e1_39_cpu + build_number: 39 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-flight-sql-15.0.2-h54b16e1_39_cpu.conda + sha256: b0cf761ee0351e338127b9219f45dfff976ef75b1afe7a004d898de147f04038 + md5: 9ec8b44fd23d0a90fd9123ab917e8c29 + depends: + - __osx >=11.0 + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libarrow-flight 15.0.2 h1a98edb_39_cpu + - libcxx >=17 + - libprotobuf >=5.27.5,<5.27.6.0a0 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 162179 + timestamp: 1729871397511 +- kind: conda + name: libarrow-flight-sql + version: 15.0.2 + build: ha33d14e_39_cpu + build_number: 39 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-flight-sql-15.0.2-ha33d14e_39_cpu.conda + sha256: 941416d30e510525529929e3b9086cf0c9ba4223f6bb4dc3f23ad34f4f179636 + md5: 477a8ffb0d19eacc091a13f8d4156331 + depends: + - __glibc >=2.17,<3.0.a0 + - gflags >=2.2.2,<2.3.0a0 + - libarrow 15.0.2 h1972583_39_cpu + - libarrow-flight 15.0.2 h15553ab_39_cpu + - libgcc >=13 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libstdcxx >=13 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 200768 + timestamp: 1729869604818 +- kind: conda + name: libarrow-gandiva + version: 15.0.2 + build: h18fa613_39_cpu + build_number: 39 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-gandiva-15.0.2-h18fa613_39_cpu.conda + sha256: d0ea12dc1b4e4e6924ee1602571345bd9c5fd48062585abc4667de536e807541 + md5: 85a54d6af4391c6876f536271949a315 + depends: + - __glibc >=2.17,<3.0.a0 + - gflags >=2.2.2,<2.3.0a0 + - libarrow 15.0.2 h1972583_39_cpu + - libgcc >=13 + - libllvm17 >=17.0.6,<17.1.0a0 + - libre2-11 >=2024.7.2 + - libstdcxx >=13 + - libutf8proc >=2.8.0,<3.0a0 + - openssl >=3.3.2,<4.0a0 + - re2 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 916965 + timestamp: 1729869563140 +- kind: conda + name: libarrow-gandiva + version: 15.0.2 + build: h6d50e30_39_cpu + build_number: 39 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-gandiva-15.0.2-h6d50e30_39_cpu.conda + sha256: 52d9c815d91298833b36aa0016247b187098b3a0c6c629e8f7cc273b37a60e0b + md5: 1b1e2741ea52420fc8c6fda74f4a75c7 + depends: + - __osx >=11.0 + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libcxx >=17 + - libllvm17 >=17.0.6,<17.1.0a0 + - libre2-11 >=2024.7.2 + - libutf8proc >=2.8.0,<3.0a0 + - openssl >=3.3.2,<4.0a0 + - re2 license: Apache-2.0 + license_family: APACHE + purls: [] + size: 693401 + timestamp: 1729871126807 +- kind: conda + name: libarrow-substrait + version: 15.0.2 + build: ha33d14e_39_cpu + build_number: 39 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-15.0.2-ha33d14e_39_cpu.conda + sha256: 3497770b8f0e39bb0e62f0446ffe34de239c6f17da0d7f433b7163af64b02a20 + md5: 38d4b12393c784d1c8dd52271663245a + depends: + - __glibc >=2.17,<3.0.a0 + - gflags >=2.2.2,<2.3.0a0 + - libarrow 15.0.2 h1972583_39_cpu + - libarrow-acero 15.0.2 h5d0bfc1_39_cpu + - libarrow-dataset 15.0.2 h5d0bfc1_39_cpu + - libgcc >=13 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libstdcxx >=13 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 498856 + timestamp: 1729869616716 +- kind: conda + name: libarrow-substrait + version: 15.0.2 + build: hec64ae3_39_cpu + build_number: 39 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-15.0.2-hec64ae3_39_cpu.conda + sha256: 140b534d81809ba511522f423d5390f889332568135a22040bc23541c4957cab + md5: 33fdcc5b763a68f3a793c32d7d985f16 + depends: + - __osx >=11.0 + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libarrow-acero 15.0.2 h5833ebf_39_cpu + - libarrow-dataset 15.0.2 h5833ebf_39_cpu + - libcxx >=17 + - libprotobuf >=5.27.5,<5.27.6.0a0 + license: Apache-2.0 + license_family: APACHE purls: [] - size: 383345 - timestamp: 1720437770952 + size: 423892 + timestamp: 1729871496557 - kind: conda name: libarrow-substrait version: 16.1.0 - build: h85bc590_13_cpu - build_number: 13 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-16.1.0-h85bc590_13_cpu.conda - sha256: dbe819a7c08831939317bb83875bdba08c60082982763d163c8d81bb04b3e3e8 - md5: 4d97eb2d2e10c97cbf3f8249d46dce27 - depends: - - __osx >=10.13 + build: ha9530af_36_cpu + build_number: 36 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-16.1.0-ha9530af_36_cpu.conda + sha256: 56f6f759e306b7cbfb033a213cc36a032b2e922b727c9a2b6219cfacad13ad5c + md5: 59012432eb900efcb76578806a8f160f + depends: - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libarrow 16.1.0 h067ad5e_13_cpu - - libarrow-acero 16.1.0 hf036a51_13_cpu - - libarrow-dataset 16.1.0 hf036a51_13_cpu - - libcxx >=16 - - libprotobuf >=4.25.3,<4.25.4.0a0 + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 16.1.0 h80430d3_36_cpu + - libarrow-acero 16.1.0 hac47afa_36_cpu + - libarrow-dataset 16.1.0 hac47afa_36_cpu + - libprotobuf >=5.27.5,<5.27.6.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 license: Apache-2.0 + license_family: APACHE purls: [] - size: 485698 - timestamp: 1720437383024 + size: 366876 + timestamp: 1729856130376 - kind: conda name: libarrow-substrait - version: 16.1.0 - build: hc68f6b8_13_cpu - build_number: 13 + version: 18.0.0 + build: ha9530af_0_cpu + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-18.0.0-ha9530af_0_cpu.conda + sha256: 5a9e11593b6fd17d821ad3cb08e006936b6d9701c52a78a0232d67decb9990de + md5: 57e88c31fb06a16c4f3d80356d07c33d + depends: + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 18.0.0 h80430d3_0_cpu + - libarrow-acero 18.0.0 hac47afa_0_cpu + - libarrow-dataset 18.0.0 hac47afa_0_cpu + - libprotobuf >=5.27.5,<5.27.6.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 377193 + timestamp: 1730157327161 +- kind: conda + name: libarrow-substrait + version: 18.0.0 + build: hdcc9e87_0_cpu subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-16.1.0-hc68f6b8_13_cpu.conda - sha256: aa48a393e8769ea2dde3f7dde13faa127c02e523b9f711e81231b20fda17c33f - md5: 02a4c5212e9e108e1b618cfc8a81be2c + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-18.0.0-hdcc9e87_0_cpu.conda + sha256: 6ea9df616248191a06fb4d078486f282b1807bd8eab3e4f380f04df46264cea2 + md5: dd51b0ba8e9dc24f04362cca5a93569d depends: - __osx >=11.0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libarrow 16.1.0 h71e69af_13_cpu - - libarrow-acero 16.1.0 h00cdb27_13_cpu - - libarrow-dataset 16.1.0 h00cdb27_13_cpu - - libcxx >=16 - - libprotobuf >=4.25.3,<4.25.4.0a0 + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 18.0.0 h6fea68a_0_cpu + - libarrow-acero 18.0.0 h286801f_0_cpu + - libarrow-dataset 18.0.0 h286801f_0_cpu + - libcxx >=18 + - libprotobuf >=5.27.5,<5.27.6.0a0 license: Apache-2.0 + license_family: APACHE purls: [] - size: 473419 - timestamp: 1720438689061 + size: 457812 + timestamp: 1730156602117 - kind: conda name: libarrow-substrait - version: 16.1.0 - build: hc9a23c6_13_cpu - build_number: 13 + version: 18.0.0 + build: he882d9a_0_cpu subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-16.1.0-hc9a23c6_13_cpu.conda - sha256: 770421768b28d3a1c5d9c95cfe967bfd6a7e8074580f8a99ed4bd3d822a02a98 - md5: 4c29416218bcb470fad0b0b28ca932d5 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-18.0.0-he882d9a_0_cpu.conda + sha256: 0d4458a0ccbfa19031fecf94a5e610eda9be81ee342d8a0a2685e076f6b14881 + md5: 1d73c2c8cabb70f9bf1dd36222ef7b25 depends: - __glibc >=2.17,<3.0.a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libarrow 16.1.0 h56e7afd_13_cpu - - libarrow-acero 16.1.0 he02047a_13_cpu - - libarrow-dataset 16.1.0 he02047a_13_cpu - - libgcc-ng >=12 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libstdcxx-ng >=12 + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 18.0.0 ha5db6c2_0_cpu + - libarrow-acero 18.0.0 h5888daf_0_cpu + - libarrow-dataset 18.0.0 h5888daf_0_cpu + - libgcc >=13 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libstdcxx >=13 license: Apache-2.0 + license_family: APACHE purls: [] - size: 548396 - timestamp: 1720437323767 + size: 528788 + timestamp: 1730155701400 - kind: conda name: libasprintf version: 0.22.5 - build: h5ff76d1_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libasprintf-0.22.5-h5ff76d1_2.conda - sha256: 4babb29b8d39ae8b341c094c134a1917c595846e5f974c9d0cb64d3f734b46b1 - md5: ad803793d7168331f1395685cbdae212 + build: h8414b35_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-0.22.5-h8414b35_3.conda + sha256: 819bf95543470658f48db53a267a3fabe1616797c4031cf88e63f451c5029e6f + md5: 472b673c083175195965a48f2f4808f8 + depends: + - __osx >=11.0 + - libcxx >=16 license: LGPL-2.1-or-later purls: [] - size: 40438 - timestamp: 1712512749697 + size: 40657 + timestamp: 1723626937704 - kind: conda name: libasprintf version: 0.22.5 - build: h661eb56_2 - build_number: 2 + build: he8f35ee_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-h661eb56_2.conda - sha256: 31d58af7eb54e2938123200239277f14893c5fa4b5d0280c8cf55ae10000638b - md5: dd197c968bf9760bba0031888d431ede + url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.22.5-he8f35ee_3.conda + sha256: 2da5c735811cbf38c7f7844ab457ff8b25046bbf5fe5ebd5dc1c2fafdf4fbe1c + md5: 4fab9799da9571266d05ca5503330655 depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 - libstdcxx-ng >=12 license: LGPL-2.1-or-later purls: [] - size: 43226 - timestamp: 1712512265295 -- kind: conda - name: libasprintf - version: 0.22.5 - build: h8fbad5d_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libasprintf-0.22.5-h8fbad5d_2.conda - sha256: 04bbe4374719906cd08b639a3f34828030f405c33b47c757b47fd55aa7310179 - md5: 1b27402397a76115679c4855ab2ece41 - license: LGPL-2.1-or-later - purls: [] - size: 40630 - timestamp: 1712512727388 + size: 42817 + timestamp: 1723626012203 - kind: conda name: libasprintf-devel version: 0.22.5 - build: h661eb56_2 - build_number: 2 + build: he8f35ee_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-h661eb56_2.conda - sha256: 99d26d272a8203d30b3efbe734a99c823499884d7759b4291674438137c4b5ca - md5: 02e41ab5834dcdcc8590cf29d9526f50 + url: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-devel-0.22.5-he8f35ee_3.conda + sha256: ccc7967e298ddf3124c8ad9741c7180dc6f778ae4135ec87978214f7b3c64dc2 + md5: 1091193789bb830127ed067a9e01ac57 depends: - - libasprintf 0.22.5 h661eb56_2 + - __glibc >=2.17,<3.0.a0 + - libasprintf 0.22.5 he8f35ee_3 - libgcc-ng >=12 license: LGPL-2.1-or-later purls: [] - size: 34225 - timestamp: 1712512295117 + size: 34172 + timestamp: 1723626026096 - kind: conda name: libblas version: 3.9.0 - build: 22_linux64_openblas - build_number: 22 + build: 25_linux64_openblas + build_number: 25 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda - sha256: 082b8ac20d43a7bbcdc28b3b1cd40e4df3a8b5daf0a2d23d68953a44d2d12c1b - md5: 1a2a0cd3153464fee6646f3dd6dad9b8 - depends: - - libopenblas >=0.3.27,<0.3.28.0a0 - - libopenblas >=0.3.27,<1.0a0 - constrains: - - libcblas 3.9.0 22_linux64_openblas - - blas * openblas - - liblapacke 3.9.0 22_linux64_openblas - - liblapack 3.9.0 22_linux64_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 14537 - timestamp: 1712542250081 -- kind: conda - name: libblas - version: 3.9.0 - build: 22_osx64_openblas - build_number: 22 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-22_osx64_openblas.conda - sha256: d72060239f904b3a81d2329efcf84dc62c2dfd66dbc4efc8dcae1afdf8f02b59 - md5: b80966a8c8dd0b531f8e65f709d732e8 + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-25_linux64_openblas.conda + sha256: d6d12dc437d060f838820e9e61bf73baab651f91935ac594cf10beb9ef1b4450 + md5: 8ea26d42ca88ec5258802715fe1ee10b depends: - - libopenblas >=0.3.27,<0.3.28.0a0 - - libopenblas >=0.3.27,<1.0a0 + - libopenblas >=0.3.28,<0.3.29.0a0 + - libopenblas >=0.3.28,<1.0a0 constrains: - - liblapacke 3.9.0 22_osx64_openblas + - liblapack 3.9.0 25_linux64_openblas + - libcblas 3.9.0 25_linux64_openblas - blas * openblas - - libcblas 3.9.0 22_osx64_openblas - - liblapack 3.9.0 22_osx64_openblas + - liblapacke 3.9.0 25_linux64_openblas license: BSD-3-Clause license_family: BSD purls: [] - size: 14749 - timestamp: 1712542279018 + size: 15677 + timestamp: 1729642900350 - kind: conda name: libblas version: 3.9.0 - build: 22_osxarm64_openblas - build_number: 22 + build: 25_osxarm64_openblas + build_number: 25 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-22_osxarm64_openblas.conda - sha256: 8620e13366076011cfcc6b2565c7a2d362c5d3f0423f54b9ef9bfc17b1a012a4 - md5: aeaf35355ef0f37c7c1ba35b7b7db55f + url: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-25_osxarm64_openblas.conda + sha256: f1fb9a11af0b2878bd8804b4c77d3733c40076218bcbdb35f575b1c0c9fddf11 + md5: f8cf4d920ff36ce471619010eff59cac depends: - - libopenblas >=0.3.27,<0.3.28.0a0 - - libopenblas >=0.3.27,<1.0a0 + - libopenblas >=0.3.28,<0.3.29.0a0 + - libopenblas >=0.3.28,<1.0a0 constrains: - blas * openblas - - liblapack 3.9.0 22_osxarm64_openblas - - liblapacke 3.9.0 22_osxarm64_openblas - - libcblas 3.9.0 22_osxarm64_openblas + - liblapack 3.9.0 25_osxarm64_openblas + - liblapacke 3.9.0 25_osxarm64_openblas + - libcblas 3.9.0 25_osxarm64_openblas license: BSD-3-Clause license_family: BSD purls: [] - size: 14824 - timestamp: 1712542396471 + size: 15913 + timestamp: 1729643265495 - kind: conda name: libblas version: 3.9.0 - build: 22_win64_mkl - build_number: 22 + build: 25_win64_mkl + build_number: 25 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_mkl.conda - sha256: 4faab445cbd9a13736a206b98fde962d0a9fa80dcbd38300951a8b2863e7c35c - md5: 65c56ecdeceffd6c32d3d54db7e02c6e + url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-25_win64_mkl.conda + sha256: 5468bb91c44b41ce060bbd997c797b2f91e2b7ce91a7cbf4ddf7e7b734a8dc98 + md5: 499208e81242efb6e5abc7366c91c816 depends: - - mkl 2024.1.0 h66d3029_692 + - mkl 2024.2.2 h66d3029_14 constrains: - - liblapacke 3.9.0 22_win64_mkl - blas * mkl - - libcblas 3.9.0 22_win64_mkl - - liblapack 3.9.0 22_win64_mkl - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 5182602 - timestamp: 1712542984136 -- kind: conda - name: libblas - version: 3.9.0 - build: 22_win64_openblas - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-22_win64_openblas.conda - sha256: 0b1d7f17c124b847ad4318490ee182322d543ce3a406f058e4ed17e24fecf7a6 - md5: 2ab0756ac16e79ae9d1acdb66824f981 - depends: - - libopenblas 0.3.27 pthreads_hc140b1d_0 - constrains: - - liblapack 3.9.0 22_win64_openblas - - libcblas 3.9.0 22_win64_openblas - - liblapacke 3.9.0 22_win64_openblas - - blas * openblas - track_features: - - blas_openblas + - libcblas 3.9.0 25_win64_mkl + - liblapack 3.9.0 25_win64_mkl + - liblapacke 3.9.0 25_win64_mkl license: BSD-3-Clause license_family: BSD purls: [] - size: 3975024 - timestamp: 1712542707123 -- kind: conda - name: libboost-headers - version: 1.85.0 - build: h57928b3_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.85.0-h57928b3_2.conda - sha256: 7327e31dc122c8fa612ef33b5d21b6cac395235ab685524413f0f913a5da2d7a - md5: c2a76e7c4f594bbbc247ab3c063c4222 - constrains: - - boost-cpp =1.85.0 - license: BSL-1.0 - purls: [] - size: 14169021 - timestamp: 1719280717184 -- kind: conda - name: libboost-headers - version: 1.85.0 - build: h694c41f_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.85.0-h694c41f_2.conda - sha256: 83dba48ba426308e00644f798bf40e938523b82253182d22cf3cfe4efb1a7c73 - md5: c0c69e9eefeb1771ab08aa2efb52693d - constrains: - - boost-cpp =1.85.0 - license: BSL-1.0 - purls: [] - size: 14166844 - timestamp: 1719280285399 -- kind: conda - name: libboost-headers - version: 1.85.0 - build: ha770c72_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.85.0-ha770c72_2.conda - sha256: 77dd38f4d45a219839833371b610b6a12d0f85b1be73cc5e2e31b223795f6d75 - md5: a685407e4876ad2327fcfc0024b5e204 - constrains: - - boost-cpp =1.85.0 - license: BSL-1.0 - purls: [] - size: 14019221 - timestamp: 1719279300831 -- kind: conda - name: libboost-headers - version: 1.85.0 - build: hce30654_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.85.0-hce30654_2.conda - sha256: bd8f30e728a568aba0b3c268f86dbb766be23539c31db5624e3f7ab52ac9d035 - md5: 9dfe46e30b61ee747ada1330a346e688 - constrains: - - boost-cpp =1.85.0 - license: BSL-1.0 - purls: [] - size: 14088550 - timestamp: 1719279933109 -- kind: conda - name: libbrotlicommon - version: 1.1.0 - build: h0dc2134_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.1.0-h0dc2134_1.conda - sha256: f57c57c442ef371982619f82af8735f93a4f50293022cfd1ffaf2ff89c2e0b2a - md5: 9e6c31441c9aa24e41ace40d6151aab6 - license: MIT - license_family: MIT - purls: [] - size: 67476 - timestamp: 1695990207321 -- kind: conda - name: libbrotlicommon - version: 1.1.0 - build: hb547adb_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hb547adb_1.conda - sha256: 556f0fddf4bd4d35febab404d98cb6862ce3b7ca843e393da0451bfc4654cf07 - md5: cd68f024df0304be41d29a9088162b02 - license: MIT - license_family: MIT - purls: [] - size: 68579 - timestamp: 1695990426128 + size: 3736641 + timestamp: 1729643534444 - kind: conda name: libbrotlicommon version: 1.1.0 - build: hcfcfb64_1 - build_number: 1 + build: h2466b09_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hcfcfb64_1.conda - sha256: f75fed29b0cc503d1b149a4945eaa32df56e19da5e2933de29e8f03947203709 - md5: f77f319fb82980166569e1280d5b2864 + url: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-h2466b09_2.conda + sha256: 33e8851c6cc8e2d93059792cd65445bfe6be47e4782f826f01593898ec95764c + md5: f7dc9a8f21d74eab46456df301da2972 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -17722,160 +14590,149 @@ packages: license: MIT license_family: MIT purls: [] - size: 70598 - timestamp: 1695990405143 + size: 70526 + timestamp: 1725268159739 - kind: conda name: libbrotlicommon version: 1.1.0 - build: hd590300_1 - build_number: 1 + build: hb9d3cd8_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda - sha256: 40f29d1fab92c847b083739af86ad2f36d8154008cf99b64194e4705a1725d78 - md5: aec6c91c7371c26392a06708a73c70e5 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + sha256: d9db2de60ea917298e658143354a530e9ca5f9c63471c65cf47ab39fd2f429e3 + md5: 41b599ed2b02abcfdd84302bff174b23 depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - purls: [] - size: 69403 - timestamp: 1695990007212 -- kind: conda - name: libbrotlidec - version: 1.1.0 - build: h0dc2134_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.1.0-h0dc2134_1.conda - sha256: b11939c4c93c29448660ab5f63273216969d1f2f315dd9be60f3c43c4e61a50c - md5: 9ee0bab91b2ca579e10353738be36063 - depends: - - libbrotlicommon 1.1.0 h0dc2134_1 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 30327 - timestamp: 1695990232422 + size: 68851 + timestamp: 1725267660471 - kind: conda - name: libbrotlidec + name: libbrotlicommon version: 1.1.0 - build: hb547adb_1 - build_number: 1 + build: hd74edd7_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hb547adb_1.conda - sha256: c1c85937828ad3bc434ac60b7bcbde376f4d2ea4ee42d15d369bf2a591775b4a - md5: ee1a519335cc10d0ec7e097602058c0a + url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + sha256: 839dacb741bdbb25e58f42088a2001b649f4f12195aeb700b5ddfca3267749e5 + md5: d0bf1dff146b799b319ea0434b93f779 depends: - - libbrotlicommon 1.1.0 hb547adb_1 + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 28928 - timestamp: 1695990463780 + size: 68426 + timestamp: 1725267943211 - kind: conda name: libbrotlidec version: 1.1.0 - build: hcfcfb64_1 - build_number: 1 + build: h2466b09_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_1.conda - sha256: 1b352ee05931ea24c11cd4a994d673890fd1cc690c21e023e736bdaac2632e93 - md5: 19ce3e1dacc7912b3d6ff40690ba9ae0 + url: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-h2466b09_2.conda + sha256: 234fc92f4c4f1cf22f6464b2b15bfc872fa583c74bf3ab9539ff38892c43612f + md5: 9bae75ce723fa34e98e239d21d752a7e depends: - - libbrotlicommon 1.1.0 hcfcfb64_1 + - libbrotlicommon 1.1.0 h2466b09_2 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 32788 - timestamp: 1695990443165 + size: 32685 + timestamp: 1725268208844 - kind: conda name: libbrotlidec version: 1.1.0 - build: hd590300_1 - build_number: 1 + build: hb9d3cd8_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda - sha256: 86fc861246fbe5ad85c1b6b3882aaffc89590a48b42d794d3d5c8e6d99e5f926 - md5: f07002e225d7a60a694d42a7bf5ff53f + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + sha256: 2892d512cad096cb03f1b66361deeab58b64e15ba525d6592bb6d609e7045edf + md5: 9566f0bd264fbd463002e759b8a82401 depends: - - libbrotlicommon 1.1.0 hd590300_1 - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.1.0 hb9d3cd8_2 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 32775 - timestamp: 1695990022788 + size: 32696 + timestamp: 1725267669305 - kind: conda - name: libbrotlienc + name: libbrotlidec version: 1.1.0 - build: h0dc2134_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_1.conda - sha256: bc964c23e1a60ca1afe7bac38a9c1f2af3db4a8072c9f2eac4e4de537a844ac7 - md5: 8a421fe09c6187f0eb5e2338a8a8be6d + build: hd74edd7_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + sha256: 6c6862eb274f21a7c0b60e5345467a12e6dda8b9af4438c66d496a2c1a538264 + md5: 55e66e68ce55523a6811633dd1ac74e2 depends: - - libbrotlicommon 1.1.0 h0dc2134_1 + - __osx >=11.0 + - libbrotlicommon 1.1.0 hd74edd7_2 license: MIT license_family: MIT purls: [] - size: 299092 - timestamp: 1695990259225 + size: 28378 + timestamp: 1725267980316 - kind: conda name: libbrotlienc version: 1.1.0 - build: hb547adb_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hb547adb_1.conda - sha256: 690dfc98e891ee1871c54166d30f6e22edfc2d7d6b29e7988dde5f1ce271c81a - md5: d7e077f326a98b2cc60087eaff7c730b + build: h2466b09_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-h2466b09_2.conda + sha256: 3d0dd7ef505962f107b7ea8f894e0b3dd01bf46852b362c8a7fc136b039bc9e1 + md5: 85741a24d97954a991e55e34bc55990b depends: - - libbrotlicommon 1.1.0 hb547adb_1 + - libbrotlicommon 1.1.0 h2466b09_2 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 280943 - timestamp: 1695990509392 + size: 245929 + timestamp: 1725268238259 - kind: conda name: libbrotlienc version: 1.1.0 - build: hcfcfb64_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hcfcfb64_1.conda - sha256: eae6b76154e594c6d211160c6d1aeed848672618152a562e0eabdfa641d34aca - md5: 71e890a0b361fd58743a13f77e1506b7 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda + sha256: 779f58174e99de3600e939fa46eddb453ec5d3c60bb46cdaa8b4c127224dbf29 + md5: 06f70867945ea6a84d35836af780f1de depends: - - libbrotlicommon 1.1.0 hcfcfb64_1 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.1.0 hb9d3cd8_2 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 246515 - timestamp: 1695990479484 + size: 281750 + timestamp: 1725267679782 - kind: conda name: libbrotlienc version: 1.1.0 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda - sha256: f751b8b1c4754a2a8dfdc3b4040fa7818f35bbf6b10e905a47d3a194b746b071 - md5: 5fc11c6020d421960607d821310fcd4d + build: hd74edd7_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + sha256: eeb1eb0d58b9d02bc1b98dc0a058f104ab168eb2f7d1c7bfa0570a12cfcdb7b7 + md5: 4f3a434504c67b2c42565c0b85c1885c depends: - - libbrotlicommon 1.1.0 hd590300_1 - - libgcc-ng >=12 + - __osx >=11.0 + - libbrotlicommon 1.1.0 hd74edd7_2 license: MIT license_family: MIT purls: [] - size: 282523 - timestamp: 1695990038302 + size: 279644 + timestamp: 1725268003553 - kind: conda name: libcap version: '2.69' @@ -17895,199 +14752,142 @@ packages: - kind: conda name: libcblas version: 3.9.0 - build: 22_linux64_openblas - build_number: 22 + build: 25_linux64_openblas + build_number: 25 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda - sha256: da1b2faa017663c8f5555c1c5518e96ac4cd8e0be2a673c1c9e2cb8507c8fe46 - md5: 4b31699e0ec5de64d5896e580389c9a1 + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda + sha256: ab87b0477078837c91d9cda62a9faca18fba7c57cc77aa779ae24b3ac783b5dd + md5: 5dbd1b0fc0d01ec5e0e1fbe667281a11 depends: - - libblas 3.9.0 22_linux64_openblas + - libblas 3.9.0 25_linux64_openblas constrains: - - liblapack 3.9.0 22_linux64_openblas + - liblapack 3.9.0 25_linux64_openblas - blas * openblas - - liblapacke 3.9.0 22_linux64_openblas + - liblapacke 3.9.0 25_linux64_openblas license: BSD-3-Clause license_family: BSD purls: [] - size: 14438 - timestamp: 1712542270166 + size: 15613 + timestamp: 1729642905619 - kind: conda name: libcblas version: 3.9.0 - build: 22_osx64_openblas - build_number: 22 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-22_osx64_openblas.conda - sha256: 6a2ba9198e2320c3e22fe3d121310cf8a8ac663e94100c5693b34523fcb3cc04 - md5: b9fef82772330f61b2b0201c72d2c29b + build: 25_osxarm64_openblas + build_number: 25 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-25_osxarm64_openblas.conda + sha256: d9fa5b6b11252132a3383bbf87bd2f1b9d6248bef1b7e113c2a8ae41b0376218 + md5: 4df0fae81f0b5bf47d48c882b086da11 depends: - - libblas 3.9.0 22_osx64_openblas + - libblas 3.9.0 25_osxarm64_openblas constrains: - - liblapacke 3.9.0 22_osx64_openblas - blas * openblas - - liblapack 3.9.0 22_osx64_openblas + - liblapack 3.9.0 25_osxarm64_openblas + - liblapacke 3.9.0 25_osxarm64_openblas license: BSD-3-Clause license_family: BSD purls: [] - size: 14636 - timestamp: 1712542311437 + size: 15837 + timestamp: 1729643270793 - kind: conda name: libcblas version: 3.9.0 - build: 22_osxarm64_openblas - build_number: 22 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-22_osxarm64_openblas.conda - sha256: 2c7902985dc77db1d7252b4e838d92a34b1729799ae402988d62d077868f6cca - md5: 37b3682240a69874a22658dedbca37d9 + build: 25_win64_mkl + build_number: 25 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-25_win64_mkl.conda + sha256: 21528cdfe67dafdb2d21925515a167f13963e002c2b6d06d68984767f731850c + md5: 3ed189ba03a9888a8013aaee0d67c49d depends: - - libblas 3.9.0 22_osxarm64_openblas + - libblas 3.9.0 25_win64_mkl constrains: - - blas * openblas - - liblapack 3.9.0 22_osxarm64_openblas - - liblapacke 3.9.0 22_osxarm64_openblas + - blas * mkl + - liblapack 3.9.0 25_win64_mkl + - liblapacke 3.9.0 25_win64_mkl license: BSD-3-Clause license_family: BSD purls: [] - size: 14741 - timestamp: 1712542420590 + size: 3732258 + timestamp: 1729643561581 - kind: conda - name: libcblas - version: 3.9.0 - build: 22_win64_mkl - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_mkl.conda - sha256: 5503273924650330dc03edd1eb01ec4020b9967b5a4cafc377ba20b976d15590 - md5: 336c93ab102846c6131cf68e722a68f1 - depends: - - libblas 3.9.0 22_win64_mkl - constrains: - - liblapacke 3.9.0 22_win64_mkl - - blas * mkl - - liblapack 3.9.0 22_win64_mkl - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 5191513 - timestamp: 1712543043641 -- kind: conda - name: libcblas - version: 3.9.0 - build: 22_win64_openblas - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-22_win64_openblas.conda - sha256: b4b6f8e582ced20499d7ef8fb367cfb799ff530d1318231285fc13e25963e777 - md5: 4d923369db654f12b8fd66b0cc1de9e2 - depends: - - libblas 3.9.0 22_win64_openblas - constrains: - - liblapack 3.9.0 22_win64_openblas - - liblapacke 3.9.0 22_win64_openblas - - blas * openblas - track_features: - - blas_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 3974318 - timestamp: 1712542759723 -- kind: conda - name: libclang-cpp15 - version: 15.0.7 - build: default_h127d8a8_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda - sha256: 9b0238e705a33da74ca82efd03974f499550f7dada1340cc9cb7c35a92411ed8 - md5: d0a9633b53cdc319b8a1a532ae7822b8 + name: libclang-cpp17 + version: 17.0.6 + build: default_h146c034_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp17-17.0.6-default_h146c034_7.conda + sha256: 2e338629ae19faae0d1a85543b8c84441ead61957cf69a65c0031d5b18ebac08 + md5: bc6797a6a66ec6f919cc8d4d9285b11c depends: - - libgcc-ng >=12 - - libllvm15 >=15.0.7,<15.1.0a0 - - libstdcxx-ng >=12 + - __osx >=11.0 + - libcxx >=17.0.6 + - libllvm17 >=17.0.6,<17.1.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 17206402 - timestamp: 1711063711931 + size: 12408943 + timestamp: 1725505311206 - kind: conda - name: libclang-cpp15 - version: 15.0.7 - build: default_h7151d67_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp15-15.0.7-default_h7151d67_5.conda - sha256: 0389c856f8524615e29980ed15ad39cdca6bbd01de35ddf5f6550392db943838 - md5: ec9151310badcf29fa53ae554273e269 + name: libclang-cpp19.1 + version: 19.1.3 + build: default_hb5137d0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.3-default_hb5137d0_0.conda + sha256: 576c1826a91f93ef7c433fc6481334d21177996bd72ff6901f58fae8f6a765db + md5: 311e6a1d041db3d6a8a8437750d4234f depends: - - libcxx >=16.0.6 - - libllvm15 >=15.0.7,<15.1.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libllvm19 >=19.1.3,<19.2.0a0 + - libstdcxx >=13 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 12345888 - timestamp: 1711067079759 + size: 20548148 + timestamp: 1730335997703 - kind: conda - name: libclang-cpp15 - version: 15.0.7 - build: default_he012953_5 - build_number: 5 + name: libclang13 + version: 19.1.3 + build: default_h5f28f6d_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp15-15.0.7-default_he012953_5.conda - sha256: 2e56e0acc3afad2708bc410e499d23db517cd66dcfaba150d7d28cf5a35911a8 - md5: a3035345155ca0a31eb1588bbbb2cff0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-19.1.3-default_h5f28f6d_0.conda + sha256: 88867feff3fa105505da9e74c334ba994ca9328c6deec640001d43e9d0c93f82 + md5: 883e1a71b3c28fee013bae5459ed394c depends: - - libcxx >=16.0.6 - - libllvm15 >=15.0.7,<15.1.0a0 + - __osx >=11.0 + - libcxx >=19.1.3 + - libllvm19 >=19.1.3,<19.2.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 11404805 - timestamp: 1711086898132 + size: 8060128 + timestamp: 1730332344891 - kind: conda name: libclang13 - version: 18.1.8 - build: default_h6ae225f_0 + version: 19.1.3 + build: default_h9c6a7e4_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.8-default_h6ae225f_0.conda - sha256: c4c878a7419b6cce2b81d538025a577e1761e95731463aad7d211ebe5c8a2ede - md5: 28ad2db5c14d2e23d7962b8389e2cc0b + url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-19.1.3-default_h9c6a7e4_0.conda + sha256: 7537cfefd76ffb0208484a2dc7d35d3752c6c42c80edabbc5f0dcae354d4b41e + md5: b8a8cd77810b20754f358f2327812552 depends: - - libgcc-ng >=12 - - libllvm18 >=18.1.8,<18.2.0a0 - - libstdcxx-ng >=12 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 11033359 - timestamp: 1718868986747 -- kind: conda - name: libclang13 - version: 18.1.8 - build: default_h9ff962c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libclang13-18.1.8-default_h9ff962c_0.conda - sha256: a86532e14e761bdc509d8fad19888fd424878c9287d4868f72f3b9127bf56cfe - md5: 23f49632e47918edd400c2647dd5aecd - depends: - - __osx >=10.13 - - libcxx >=16.0.6 - - libllvm18 >=18.1.8,<18.2.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libllvm19 >=19.1.3,<19.2.0a0 + - libstdcxx >=13 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 8121956 - timestamp: 1718887566950 + size: 11827604 + timestamp: 1730336232401 - kind: conda name: libclang13 - version: 18.1.8 + version: 19.1.3 build: default_ha5278ca_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libclang13-18.1.8-default_ha5278ca_0.conda - sha256: 07f2393266770d8fa7509647939de5717894618f3ac676679ab42caeee65dee6 - md5: 2f4204ba38a8654b132e5ae03287efb8 + url: https://conda.anaconda.org/conda-forge/win-64/libclang13-19.1.3-default_ha5278ca_0.conda + sha256: 02e9e0ee3f9a7b375d1a268f90f1f2ffe31bccacb904b9f36270255e9a02df6e + md5: fe6aa50eeb307558f8974f115305388f depends: - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 @@ -18097,25 +14897,8 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 25295743 - timestamp: 1718869037582 -- kind: conda - name: libclang13 - version: 18.1.8 - build: default_hfc66aa2_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-18.1.8-default_hfc66aa2_0.conda - sha256: e03762bf2ffa84851c01d641cff1dbf1eec6d123547fd35c7e3a021d0774f5b6 - md5: 6eeb60d9a913a0929603a3bb56975860 - depends: - - __osx >=11.0 - - libcxx >=16.0.6 - - libllvm18 >=18.1.8,<18.2.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 7582316 - timestamp: 1718864124416 + size: 26749218 + timestamp: 1730355727736 - kind: conda name: libcrc32c version: 1.1.2 @@ -18163,21 +14946,6 @@ packages: purls: [] size: 18765 timestamp: 1633683992603 -- kind: conda - name: libcrc32c - version: 1.1.2 - build: he49afe7_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2 - sha256: 3043869ac1ee84554f177695e92f2f3c2c507b260edad38a0bf3981fce1632ff - md5: 23d6d5a69918a438355d7cbc4c3d54c9 - depends: - - libcxx >=11.1.0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 20128 - timestamp: 1633683906221 - kind: conda name: libcups version: 2.3.3 @@ -18199,195 +14967,147 @@ packages: timestamp: 1689195353551 - kind: conda name: libcurl - version: 8.8.0 - build: h7b6f9a7_1 - build_number: 1 + version: 8.10.1 + build: h13a7ad3_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.8.0-h7b6f9a7_1.conda - sha256: 9da82a9bd72e9872941da32be54543076c92dbeb2aba688a1c24adbc1c699e64 - md5: e9580b0bb247a2ccf937b16161478f19 - depends: - - krb5 >=1.21.3,<1.22.0a0 - - libnghttp2 >=1.58.0,<2.0a0 - - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<2.0a0 - - openssl >=3.3.1,<4.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: curl - license_family: MIT - purls: [] - size: 370070 - timestamp: 1719603062088 -- kind: conda - name: libcurl - version: 8.8.0 - build: hca28451_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda - sha256: 6b5b64cdcdb643368ebe236de07eedee99b025bb95129bbe317c46e5bdc693f3 - md5: b8afb3e3cb3423cc445cf611ab95fdb0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + sha256: 983a977c5627f975a930542c8aabb46089ec6ea72f28d9c4d3ee8eafaf2fc25a + md5: d84030d0863ffe7dea00b9a807fee961 depends: + - __osx >=11.0 - krb5 >=1.21.3,<1.22.0a0 - - libgcc-ng >=12 - libnghttp2 >=1.58.0,<2.0a0 - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 - zstd >=1.5.6,<1.6.0a0 license: curl license_family: MIT purls: [] - size: 410158 - timestamp: 1719602718702 + size: 379948 + timestamp: 1726660033582 - kind: conda name: libcurl - version: 8.8.0 - build: hd5e4a3a_1 - build_number: 1 + version: 8.10.1 + build: h1ee3ff0_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.8.0-hd5e4a3a_1.conda - sha256: ebe665ec226672e7e6e37f2b1fe554db83f9fea5267cbc5a849ab34d8546b2c3 - md5: 88fbd2ea44690c6dfad8737659936461 + url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + sha256: dfbac497c4fee74f67391f9c4a40cab559468b7d04ff9fad4b404a26b5e1d5b8 + md5: 7ead800e22ff7b4bccb73e42a8f7a0f4 depends: - krb5 >=1.21.3,<1.22.0a0 - libssh2 >=1.11.0,<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 license: curl license_family: MIT purls: [] - size: 334189 - timestamp: 1719603160758 + size: 342388 + timestamp: 1726660508261 - kind: conda name: libcurl - version: 8.8.0 - build: hf9fcc65_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.8.0-hf9fcc65_1.conda - sha256: 25e2b044e6978f1714a4b2844f34a45fc8a0c60185db8d332906989d70b65927 - md5: 11711bab5306a6534797a68b3c4c2bed + version: 8.10.1 + build: hbbe4b11_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda + sha256: 54e6114dfce566c3a22ad3b7b309657e3600cdb668398e95f1301360d5d52c99 + md5: 6e801c50a40301f6978c53976917b277 depends: + - __glibc >=2.17,<3.0.a0 - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 - libnghttp2 >=1.58.0,<2.0a0 - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 - zstd >=1.5.6,<1.6.0a0 license: curl license_family: MIT purls: [] - size: 390707 - timestamp: 1719602983754 + size: 424900 + timestamp: 1726659794676 - kind: conda name: libcxx - version: 17.0.6 - build: h0812c0d_3 - build_number: 3 + version: 19.1.3 + build: ha82da77_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-17.0.6-h0812c0d_3.conda - sha256: a0568191ad6dc889d5482f7858e501f94d50139d1a0ef96434047fa34599e9a4 - md5: bb3540fadfee3013271e4323c8cb1ade + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda + sha256: 6d062760c6439e75b9a44d800d89aff60fe3441998d87506c62dc94c50412ef4 + md5: bf691071fba4734984231617783225bc depends: - __osx >=11.0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 1250190 - timestamp: 1720040315257 -- kind: conda - name: libcxx - version: 17.0.6 - build: heb59cac_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-17.0.6-heb59cac_3.conda - sha256: 9df841c64b19a3843869467ff8ff2eb3f6c5491ebaac8fd94fb8029a5b00dcbf - md5: ef15f182e353155497e13726b915bfc4 - depends: - - __osx >=10.13 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 1250659 - timestamp: 1720040263499 + size: 520771 + timestamp: 1730314603920 - kind: conda name: libdeflate - version: '1.20' - build: h49d49c5_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.20-h49d49c5_0.conda - sha256: 8c2087952db55c4118dd2e29381176a54606da47033fd61ebb1b0f4391fcd28d - md5: d46104f6a896a0bc6a1d37b88b2edf5c + version: '1.22' + build: h2466b09_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.22-h2466b09_0.conda + sha256: 579c634b7de8869cb1d76eccd4c032dc275d5a017212128502ea4dc828a5b361 + md5: a3439ce12d4e3cd887270d9436f9a4c8 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 70364 - timestamp: 1711196727346 + size: 155506 + timestamp: 1728177485361 - kind: conda name: libdeflate - version: '1.20' - build: h93a5062_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.20-h93a5062_0.conda - sha256: 6d16cccb141b6bb05c38107b335089046664ea1d6611601d3f6e7e4227a99925 - md5: 97efeaeba2a9a82bdf46fc6d025e3a57 + version: '1.22' + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.22-hb9d3cd8_0.conda + sha256: 780f0530a3adfc1497ba49d626931c6afc978c540e1abfde6ccd57128ded6ad6 + md5: b422943d5d772b7cc858b36ad2a92db5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 54481 - timestamp: 1711196723486 + size: 72242 + timestamp: 1728177071251 - kind: conda name: libdeflate - version: '1.20' - build: hcfcfb64_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.20-hcfcfb64_0.conda - sha256: 6628a5b76ad70c1a0909563c637ddc446ee824739ba7c348d4da2f0aa6ac9527 - md5: b12b5bde5eb201a1df75e49320cc938a + version: '1.22' + build: hd74edd7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.22-hd74edd7_0.conda + sha256: 3552894ca62bebc33d05982937cda25a4fa19e56a82af2ff20944ff4c2532fda + md5: 2d3e3f3d8ab315748420ef58d5a3ae0f depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 155358 - timestamp: 1711197066985 + size: 54089 + timestamp: 1728177149927 - kind: conda - name: libdeflate - version: '1.20' - build: hd590300_0 + name: libdrm + version: 2.4.123 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda - sha256: f8e0f25c382b1d0b87a9b03887a34dbd91485453f1ea991fef726dba57373612 - md5: 8e88f9389f1165d7c0936fe40d9a9a79 + url: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.123-hb9d3cd8_0.conda + sha256: 5f274243fc7480b721a4ed6623c72d07b86a508a1363a85f0f16451ab655ace8 + md5: ee605e794bdc14e2b7f84c4faa0d8c2c depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=13 + - libpciaccess >=0.18,<0.19.0a0 license: MIT license_family: MIT purls: [] - size: 71500 - timestamp: 1711196523408 -- kind: conda - name: libedit - version: 3.1.20191231 - build: h0678c8f_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - sha256: dbd3c3f2eca1d21c52e4c03b21930bbce414c4592f8ce805801575b9e9256095 - md5: 6016a8a1d0e63cac3de2c352cd40208b - depends: - - ncurses >=6.2,<7.0.0a0 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 105382 - timestamp: 1597616576726 + size: 303108 + timestamp: 1724719521496 - kind: conda name: libedit version: 3.1.20191231 @@ -18422,19 +15142,21 @@ packages: size: 123878 timestamp: 1597616541093 - kind: conda - name: libev - version: '4.33' - build: h10d778d_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - sha256: 0d238488564a7992942aa165ff994eca540f687753b4f0998b29b4e4d030ff43 - md5: 899db79329439820b7e8f8de41bca902 - license: BSD-2-Clause - license_family: BSD + name: libegl + version: 1.7.0 + build: ha4b6fd6_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_1.conda + sha256: e64388e983cf14354b70fe908ca3943f2481ea63df8a4de5e4d418dc2addd38e + md5: 38a5cd3be5fb620b48069e27285f1a44 + depends: + - __glibc >=2.17,<3.0.a0 + - libglvnd 1.7.0 ha4b6fd6_1 + license: LicenseRef-libglvnd purls: [] - size: 106663 - timestamp: 1702146352558 + size: 44620 + timestamp: 1727968589748 - kind: conda name: libev version: '4.33' @@ -18500,22 +15222,6 @@ packages: purls: [] size: 410555 timestamp: 1685726568668 -- kind: conda - name: libevent - version: 2.1.12 - build: ha90c15b_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-ha90c15b_1.conda - sha256: e0bd9af2a29f8dd74309c0ae4f17a7c2b8c4b89f875ff1d6540c941eefbd07fb - md5: e38e467e577bd193a7d5de7c2c540b04 - depends: - - openssl >=3.1.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 372661 - timestamp: 1685726378869 - kind: conda name: libevent version: 2.1.12 @@ -18535,80 +15241,58 @@ packages: timestamp: 1685725977222 - kind: conda name: libexpat - version: 2.6.2 - build: h59595ed_0 + version: 2.6.3 + build: h5888daf_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda - sha256: 331bb7c7c05025343ebd79f86ae612b9e1e74d2687b8f3179faec234f986ce19 - md5: e7ba12deb7020dd080c6c70e7b6f6a3d + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda + sha256: 4bb47bb2cd09898737a5211e2992d63c555d63715a07ba56eae0aff31fb89c22 + md5: 59f4c43bb1b5ef1c71946ff2cbf59524 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 constrains: - - expat 2.6.2.* + - expat 2.6.3.* license: MIT license_family: MIT purls: [] - size: 73730 - timestamp: 1710362120304 + size: 73616 + timestamp: 1725568742634 - kind: conda name: libexpat - version: 2.6.2 - build: h63175ca_0 + version: 2.6.3 + build: he0c23c2_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda - sha256: 79f612f75108f3e16bbdc127d4885bb74729cf66a8702fca0373dad89d40c4b7 - md5: bc592d03f62779511d392c175dcece64 - constrains: - - expat 2.6.2.* - license: MIT - license_family: MIT - purls: [] - size: 139224 - timestamp: 1710362609641 -- kind: conda - name: libexpat - version: 2.6.2 - build: h73e2aa4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda - sha256: a188a77b275d61159a32ab547f7d17892226e7dac4518d2c6ac3ac8fc8dfde92 - md5: 3d1d51c8f716d97c864d12f7af329526 + url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda + sha256: 9543965d155b8da96fc67dd81705fe5c2571c7c00becc8de5534c850393d4e3c + md5: 21415fbf4d0de6767a621160b43e5dea + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - - expat 2.6.2.* + - expat 2.6.3.* license: MIT license_family: MIT purls: [] - size: 69246 - timestamp: 1710362566073 + size: 138992 + timestamp: 1725569106114 - kind: conda name: libexpat - version: 2.6.2 - build: hebf3989_0 + version: 2.6.3 + build: hf9b8971_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda - sha256: ba7173ac30064ea901a4c9fb5a51846dcc25512ceb565759be7d18cbf3e5415e - md5: e3cde7cfa87f82f7cb13d482d5e0ad09 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda + sha256: 5cbe5a199fba14ade55457a468ce663aac0b54832c39aa54470b3889b4c75c4a + md5: 5f22f07c2ab2dea8c66fe9585a062c96 + depends: + - __osx >=11.0 constrains: - - expat 2.6.2.* - license: MIT - license_family: MIT - purls: [] - size: 63655 - timestamp: 1710362424980 -- kind: conda - name: libffi - version: 3.4.2 - build: h0d85af4_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f - md5: ccb34fb14960ad8b125962d3d79b31a9 + - expat 2.6.3.* license: MIT license_family: MIT purls: [] - size: 51348 - timestamp: 1636488394370 + size: 63895 + timestamp: 1725568783033 - kind: conda name: libffi version: 3.4.2 @@ -18677,2589 +15361,3960 @@ packages: timestamp: 1687765514062 - kind: conda name: libflang - version: 5.0.0 - build: h6538335_20180525 - build_number: 20180525 + version: 19.1.3 + build: he0c23c2_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libflang-5.0.0-h6538335_20180525.tar.bz2 - sha256: 0b893b511190332320f4a3e3d6424fbd350271ffbca34eb25b5cd8bc451f1a05 - md5: 9f473a344e18668e99a93f7e21a54b69 + url: https://conda.anaconda.org/conda-forge/win-64/libflang-19.1.3-he0c23c2_0.conda + sha256: 5d677c849518c2b53dc30a377561fdc0b1544d79fa8584921d4d0b88767b65e2 + md5: b74b1a6f72f5b000dbb9233baa369a32 depends: - - openmp 5.0.0 - - vc >=14,<15.0a0 - arch: x86_64 - platform: win - track_features: - - flang - license: Apache 2.0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 1168347 + timestamp: 1730429024070 +- kind: conda + name: libgcc + version: 14.2.0 + build: h1383e82_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda + sha256: ef840e797714440bb10b69446d815966fff41fdac79f79c4e19c475d81cd375d + md5: 75fdd34824997a0f9950a703b15d8ac5 + depends: + - _openmp_mutex >=4.5 + - libwinpthread >=12.0.0.r4.gg4f2fc60ca + constrains: + - libgcc-ng ==14.2.0=*_1 + - libgomp 14.2.0 h1383e82_1 + - msys2-conda-epoch <0.0a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 666386 + timestamp: 1729089506769 +- kind: conda + name: libgcc + version: 14.2.0 + build: h77fa898_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569 + md5: 3cb76c3f10d3bc7f1105b2fc9db984df + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 14.2.0 h77fa898_1 + - libgcc-ng ==14.2.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 531143 - timestamp: 1527899216421 + size: 848745 + timestamp: 1729027721139 - kind: conda name: libgcc-devel_linux-64 - version: 14.1.0 - build: h5d3d1c9_100 - build_number: 100 + version: 14.2.0 + build: h41c2201_101 + build_number: 101 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.1.0-h5d3d1c9_100.conda - sha256: 1ec4d97e9596126b65323816f876e6bcdc69c5cc828469184ecdabb686e5c090 - md5: 6d4f65dc440f7b3422113b135be19703 + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.2.0-h41c2201_101.conda + sha256: 939f73ccab0ef61d02b26e348adcbf0ebd249914073a62e861ca45d125c9335c + md5: fb126e22f5350c15fec6ddbd062f4871 depends: - __unix license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 2747330 - timestamp: 1719538730538 + size: 2753144 + timestamp: 1729027627734 - kind: conda name: libgcc-ng - version: 14.1.0 - build: h77fa898_0 + version: 14.2.0 + build: h69a702a_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - sha256: b8e869ac96591cda2704bf7e77a301025e405227791a0bddf14a3dac65125538 - md5: ca0fad6a41ddaef54a153b78eccb5037 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7 + md5: e39480b9ca41323497b05492a63bc35b depends: - - _libgcc_mutex 0.1 conda_forge - - _openmp_mutex >=4.5 - constrains: - - libgomp 14.1.0 h77fa898_0 + - libgcc 14.2.0 h77fa898_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 842109 - timestamp: 1719538896937 + size: 54142 + timestamp: 1729027726517 - kind: conda name: libgcrypt version: 1.11.0 - build: h4ab18f5_0 + build: h4ab18f5_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_0.conda - sha256: df01345f5f23ef268523f1fc6c088b6cec1b49c978b8b92da608b4d81c16d62f - md5: 0a00e32cabe3e571c0611387e7bc2042 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.11.0-h4ab18f5_1.conda + sha256: 9e97e4a753d2ee238cfc7375f0882830f0d8c1667431bc9d070a0f6718355570 + md5: 14858a47d4cc995892e79f2b340682d7 depends: - libgcc-ng >=12 - libgpg-error >=1.50,<2.0a0 license: LGPL-2.1-or-later AND GPL-2.0-or-later license_family: GPL purls: [] - size: 685291 - timestamp: 1719405073729 + size: 684307 + timestamp: 1721392291497 - kind: conda name: libgdal - version: 3.9.1 - build: h26bd040_5 - build_number: 5 + version: 3.9.2 + build: h57928b3_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.1-h26bd040_5.conda - sha256: 7b916af6fbbb5c17a279fc4ec22123adef9cf032158b973507b34dfc089eb9db - md5: 715bed4641c0051ae81b1da73745f4bd + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-3.9.2-h57928b3_7.conda + sha256: 84c190f70ff07a75cb9dd42e8a71e5f44846ce423cf68846f7000ead89ab19aa + md5: 08b7dfed6465467d50389c323e7b2a15 depends: - - blosc >=1.21.6,<2.0a0 - - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 - - geotiff >=1.7.3,<1.8.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - kealib >=1.5.3,<1.6.0a0 - - lerc >=4.0.0,<5.0a0 - - libaec >=1.1.3,<2.0a0 - - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.8.0,<9.0a0 - - libdeflate >=1.20,<1.21.0a0 - - libexpat >=2.6.2,<3.0a0 - - libiconv >=1.17,<2.0a0 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 - - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 - - libwebp-base >=1.4.0,<2.0a0 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - lz4-c >=1.9.3,<1.10.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 - - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - - xerces-c >=3.2.5,<3.3.0a0 - - xz >=5.2.6,<6.0a0 - - zstd >=1.5.6,<1.6.0a0 + - libgdal-core 3.9.2.* + - libgdal-fits 3.9.2.* + - libgdal-grib 3.9.2.* + - libgdal-hdf4 3.9.2.* + - libgdal-hdf5 3.9.2.* + - libgdal-jp2openjpeg 3.9.2.* + - libgdal-kea 3.9.2.* + - libgdal-netcdf 3.9.2.* + - libgdal-pdf 3.9.2.* + - libgdal-pg 3.9.2.* + - libgdal-postgisraster 3.9.2.* + - libgdal-tiledb 3.9.2.* + - libgdal-xls 3.9.2.* license: MIT + license_family: MIT purls: [] - size: 9040803 - timestamp: 1720443415399 + size: 423224 + timestamp: 1728298647854 - kind: conda name: libgdal - version: 3.9.1 - build: h52f6243_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgdal-3.9.1-h52f6243_5.conda - sha256: 62f060e1a3d72b4d6d922b421766342065eb7d38ca12660eb9430df2c617e198 - md5: 07fa5077cefae304f36bde4e309559ad + version: 3.9.2 + build: ha770c72_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.2-ha770c72_7.conda + sha256: 33ae5aed64c19e3e7e50f0d1bbbd7abfe814687b2a350444c4b2867f81fca9b4 + md5: 63779711c7afd4fcf9cea67538baa67a depends: - - __osx >=10.13 - - blosc >=1.21.6,<2.0a0 - - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 - - geotiff >=1.7.3,<1.8.0a0 - - giflib >=5.2.2,<5.3.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - json-c >=0.17,<0.18.0a0 - - kealib >=1.5.3,<1.6.0a0 + - libgdal-core 3.9.2.* + - libgdal-fits 3.9.2.* + - libgdal-grib 3.9.2.* + - libgdal-hdf4 3.9.2.* + - libgdal-hdf5 3.9.2.* + - libgdal-jp2openjpeg 3.9.2.* + - libgdal-kea 3.9.2.* + - libgdal-netcdf 3.9.2.* + - libgdal-pdf 3.9.2.* + - libgdal-pg 3.9.2.* + - libgdal-postgisraster 3.9.2.* + - libgdal-tiledb 3.9.2.* + - libgdal-xls 3.9.2.* + license: MIT + license_family: MIT + purls: [] + size: 422887 + timestamp: 1728295073003 +- kind: conda + name: libgdal + version: 3.9.2 + build: hce30654_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.2-hce30654_7.conda + sha256: a8344237821a6a71c5f0b415df44fea61faed86afc09dd18d2a311cb3a2593b9 + md5: b9ff370534f04743fea9a532bb1cb967 + depends: + - libgdal-core 3.9.2.* + - libgdal-fits 3.9.2.* + - libgdal-grib 3.9.2.* + - libgdal-hdf4 3.9.2.* + - libgdal-hdf5 3.9.2.* + - libgdal-jp2openjpeg 3.9.2.* + - libgdal-kea 3.9.2.* + - libgdal-netcdf 3.9.2.* + - libgdal-pdf 3.9.2.* + - libgdal-pg 3.9.2.* + - libgdal-postgisraster 3.9.2.* + - libgdal-tiledb 3.9.2.* + - libgdal-xls 3.9.2.* + license: MIT + license_family: MIT + purls: [] + size: 422965 + timestamp: 1728296452637 +- kind: conda + name: libgdal-arrow-parquet + version: 3.9.3 + build: h3ff7ee4_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-arrow-parquet-3.9.3-h3ff7ee4_2.conda + sha256: 04bf3cf69ffe83fb3d32b8a103ffca8efe0d48fc0a06eb07bb29e75ae5b5103f + md5: 0d0ce9a5dde94fa52c066b0565c2f9ba + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow >=15.0.2,<16.0a0 + - libarrow-dataset >=15.0.2,<16.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libparquet >=15.0.2,<16.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT + purls: [] + size: 779076 + timestamp: 1730219945244 +- kind: conda + name: libgdal-arrow-parquet + version: 3.9.3 + build: h9d7c9d0_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-arrow-parquet-3.9.3-h9d7c9d0_2.conda + sha256: 7964baaad69d5f7e07e791e21fc90568226f688546c56ede36e205eb401c2640 + md5: 385a014018db5ca1980e9e125c7ec530 + depends: + - libarrow >=16.1.0,<16.2.0a0 + - libarrow-dataset >=16.1.0,<16.2.0a0 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libparquet >=16.1.0,<16.2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: [] + size: 700630 + timestamp: 1730223107187 +- kind: conda + name: libgdal-arrow-parquet + version: 3.9.3 + build: hda027dd_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-arrow-parquet-3.9.3-hda027dd_2.conda + sha256: 2e7d2ae3934b7d57d76227325e8f18dc9e4d1341eec70f9cdcd204b8a6c5525c + md5: 2da3ea0ecae27a2dd6f3058dda675fb5 + depends: + - __osx >=11.0 + - libarrow >=15.0.2,<16.0a0 + - libarrow-dataset >=15.0.2,<16.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libparquet >=15.0.2,<16.0a0 + license: MIT + license_family: MIT + purls: [] + size: 699654 + timestamp: 1730221654641 +- kind: conda + name: libgdal-core + version: 3.9.2 + build: h042995d_7 + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.9.2-h042995d_7.conda + sha256: 6e8283f660f1528e7f9f08fb60471fad259722b26a97f010d1f5d5ea5022d53a + md5: cb3a804c9039d13e7f3b93d17f6fa0de + depends: + - blosc >=1.21.6,<2.0a0 + - geos >=3.13.0,<3.13.1.0a0 + - geotiff >=1.7.3,<1.8.0a0 - lerc >=4.0.0,<5.0a0 - - libaec >=1.1.3,<2.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libdeflate >=1.20,<1.21.0a0 - - libexpat >=2.6.2,<3.0a0 + - libcurl >=8.10.1,<9.0a0 + - libdeflate >=1.22,<1.23.0a0 + - libexpat >=2.6.3,<3.0a0 - libiconv >=1.17,<2.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 + - libpng >=1.6.44,<1.7.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 + - proj >=9.5.0,<9.6.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - xerces-c >=3.2.5,<3.3.0a0 - xz >=5.2.6,<6.0a0 - zstd >=1.5.6,<1.6.0a0 + constrains: + - libgdal 3.9.2.* license: MIT + license_family: MIT purls: [] - size: 10240168 - timestamp: 1720442551532 + size: 8026134 + timestamp: 1728294105231 - kind: conda - name: libgdal - version: 3.9.1 - build: h750986c_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.9.1-h750986c_5.conda - sha256: 0dd3f7f4155c4c970ea560e51262d557aea907d8b442e256d3c7d0255bbb7662 - md5: ebd483d02a846d8051612ed7d59c3da7 + name: libgdal-core + version: 3.9.2 + build: hd5b9bfb_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.9.2-hd5b9bfb_7.conda + sha256: afff658dece6c8f4dbff2fc459bc834f8491e7ed1a491397e23280cf0917aa19 + md5: a23eb349d023a8543752566be00b6d88 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 - blosc >=1.21.6,<2.0a0 - - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - geotiff >=1.7.3,<1.8.0a0 - giflib >=5.2.2,<5.3.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - json-c >=0.17,<0.18.0a0 - - kealib >=1.5.3,<1.6.0a0 + - json-c >=0.18,<0.19.0a0 - lerc >=4.0.0,<5.0a0 - - libaec >=1.1.3,<2.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libdeflate >=1.20,<1.21.0a0 - - libexpat >=2.6.2,<3.0a0 + - libcurl >=8.10.1,<9.0a0 + - libdeflate >=1.22,<1.23.0a0 + - libexpat >=2.6.3,<3.0a0 + - libgcc >=13 - libiconv >=1.17,<2.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 + - libpng >=1.6.44,<1.7.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libstdcxx >=13 + - libtiff >=4.7.0,<4.8.0a0 + - libuuid >=2.38.1,<3.0a0 - libwebp-base >=1.4.0,<2.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 + - proj >=9.5.0,<9.6.0a0 - xerces-c >=3.2.5,<3.3.0a0 - xz >=5.2.6,<6.0a0 - zstd >=1.5.6,<1.6.0a0 + constrains: + - libgdal 3.9.2.* license: MIT + license_family: MIT purls: [] - size: 9363131 - timestamp: 1720443454077 + size: 10419110 + timestamp: 1728293224908 - kind: conda - name: libgdal - version: 3.9.1 - build: ha654e03_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.9.1-ha654e03_5.conda - sha256: 0ec8d98784e8f5a5f529339bce31669d76a2d4ae4cd427ff770ada68744f38c9 - md5: d1b70328bd7ff0d7b6da052ca33cfe60 + name: libgdal-core + version: 3.9.2 + build: hfd0b032_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.9.2-hfd0b032_7.conda + sha256: 243f081ad166e32a614d02293a4fa2ba773ab8e4ba01e5945d64536b68414c71 + md5: b553800429e5682120428772324184f6 depends: - - __glibc >=2.17,<3.0.a0 + - __osx >=11.0 - blosc >=1.21.6,<2.0a0 - - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - geotiff >=1.7.3,<1.8.0a0 - giflib >=5.2.2,<5.3.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - json-c >=0.17,<0.18.0a0 - - kealib >=1.5.3,<1.6.0a0 + - json-c >=0.18,<0.19.0a0 - lerc >=4.0.0,<5.0a0 - - libaec >=1.1.3,<2.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.8.0,<9.0a0 - - libdeflate >=1.20,<1.21.0a0 - - libexpat >=2.6.2,<3.0a0 - - libgcc-ng >=12 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libdeflate >=1.22,<1.23.0a0 + - libexpat >=2.6.3,<3.0a0 - libiconv >=1.17,<2.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 + - libpng >=1.6.44,<1.7.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libstdcxx-ng >=12 - - libtiff >=4.6.0,<4.7.0a0 - - libuuid >=2.38.1,<3.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 + - proj >=9.5.0,<9.6.0a0 - xerces-c >=3.2.5,<3.3.0a0 - xz >=5.2.6,<6.0a0 - zstd >=1.5.6,<1.6.0a0 + constrains: + - libgdal 3.9.2.* license: MIT + license_family: MIT purls: [] - size: 11661041 - timestamp: 1720441738532 + size: 8269844 + timestamp: 1728293331738 - kind: conda - name: libgdal-arrow-parquet - version: 3.9.1 - build: h0511033_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-arrow-parquet-3.9.1-h0511033_5.conda - sha256: 5b8d6fd3a5f349b68f020b65db008a2eef8e12a99bb81b28b93daebff65b8bbb - md5: 4b2f21d1c38fa24b3853d6d55448fdbd + name: libgdal-core + version: 3.9.3 + build: h042995d_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.9.3-h042995d_2.conda + sha256: 93db19e8d4c154f87858bf899df9939fd4d447813f1cf388ef19f9a45f18ef9f + md5: b44638b26dc33246d046a8ed3004ce46 depends: - - __osx >=11.0 - blosc >=1.21.6,<2.0a0 - - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - geotiff >=1.7.3,<1.8.0a0 - - giflib >=5.2.2,<5.3.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - json-c >=0.17,<0.18.0a0 - - kealib >=1.5.3,<1.6.0a0 + - lerc >=4.0.0,<5.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libarrow >=16.1.0,<16.2.0a0 - - libarrow-dataset >=16.1.0,<16.2.0a0 - - libcxx >=16 - - libexpat >=2.6.2,<3.0a0 - - libgdal 3.9.1 h750986c_5 + - libcurl >=8.10.1,<9.0a0 + - libdeflate >=1.22,<1.23.0a0 + - libexpat >=2.6.3,<3.0a0 + - libiconv >=1.17,<2.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libparquet >=16.1.0,<16.2.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 + - libpng >=1.6.44,<1.7.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - openssl >=3.3.2,<4.0a0 - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - qhull >=2020.2,<2020.3.0a0 - - tiledb >=2.24.2,<2.25.0a0 + - proj >=9.5.0,<9.6.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - xerces-c >=3.2.5,<3.3.0a0 - xz >=5.2.6,<6.0a0 - zstd >=1.5.6,<1.6.0a0 + constrains: + - libgdal 3.9.3.* license: MIT + license_family: MIT purls: [] - size: 696727 - timestamp: 1720445879333 + size: 8035558 + timestamp: 1730221244847 - kind: conda - name: libgdal-arrow-parquet - version: 3.9.1 - build: h09d7208_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgdal-arrow-parquet-3.9.1-h09d7208_5.conda - sha256: de0fca07bd8b88650a7d015d05b501b99af69dbdf261b886f8ccff87a57a4b43 - md5: 6a4282ffad1fc17e3375f2f8a6b2e14a + name: libgdal-core + version: 3.9.3 + build: hb8ac103_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.9.3-hb8ac103_2.conda + sha256: 20689dcd48fb76e0f21db1d1876d3dab354c191d8c6d4bc922a847f42aa571c5 + md5: 1e2a7da651b747b86708f42b0ea8f3b8 depends: - - __osx >=10.13 + - __osx >=11.0 - blosc >=1.21.6,<2.0a0 - - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - geotiff >=1.7.3,<1.8.0a0 - giflib >=5.2.2,<5.3.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - json-c >=0.17,<0.18.0a0 - - kealib >=1.5.3,<1.6.0a0 + - json-c >=0.18,<0.19.0a0 + - lerc >=4.0.0,<5.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libarrow >=16.1.0,<16.2.0a0 - - libarrow-dataset >=16.1.0,<16.2.0a0 - - libcxx >=16 - - libexpat >=2.6.2,<3.0a0 - - libgdal 3.9.1 h52f6243_5 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libdeflate >=1.22,<1.23.0a0 + - libexpat >=2.6.3,<3.0a0 + - libiconv >=1.17,<2.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libparquet >=16.1.0,<16.2.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 + - libpng >=1.6.44,<1.7.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - openssl >=3.3.2,<4.0a0 - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - qhull >=2020.2,<2020.3.0a0 - - tiledb >=2.24.2,<2.25.0a0 + - proj >=9.5.0,<9.6.0a0 - xerces-c >=3.2.5,<3.3.0a0 - xz >=5.2.6,<6.0a0 - zstd >=1.5.6,<1.6.0a0 + constrains: + - libgdal 3.9.3.* license: MIT + license_family: MIT purls: [] - size: 712620 - timestamp: 1720443485737 + size: 8279267 + timestamp: 1730220682729 - kind: conda - name: libgdal-arrow-parquet - version: 3.9.1 - build: h403c244_5 - build_number: 5 + name: libgdal-core + version: 3.9.3 + build: hd5b9bfb_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-arrow-parquet-3.9.1-h403c244_5.conda - sha256: 063ddd52e94f10c683a751cab8dd79113630aca1daf333c7f12a8391815e04aa - md5: 68aec7d5a39128defded27525229a52c + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.9.3-hd5b9bfb_2.conda + sha256: ac788fcbb7ae09f7d771f08ecfd4a985af8e608e8ae7b04a878dced496cd0d48 + md5: b70c6b3de9d4779d40dc3194f3958889 depends: - __glibc >=2.17,<3.0.a0 - blosc >=1.21.6,<2.0a0 - - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - geotiff >=1.7.3,<1.8.0a0 - giflib >=5.2.2,<5.3.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - json-c >=0.17,<0.18.0a0 - - kealib >=1.5.3,<1.6.0a0 + - json-c >=0.18,<0.19.0a0 + - lerc >=4.0.0,<5.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libarrow >=16.1.0,<16.2.0a0 - - libarrow-dataset >=16.1.0,<16.2.0a0 - - libexpat >=2.6.2,<3.0a0 - - libgcc-ng >=12 - - libgdal 3.9.1 ha654e03_5 + - libcurl >=8.10.1,<9.0a0 + - libdeflate >=1.22,<1.23.0a0 + - libexpat >=2.6.3,<3.0a0 + - libgcc >=13 + - libiconv >=1.17,<2.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libparquet >=16.1.0,<16.2.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 + - libpng >=1.6.44,<1.7.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libstdcxx-ng >=12 - - libtiff >=4.6.0,<4.7.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libstdcxx >=13 + - libtiff >=4.7.0,<4.8.0a0 - libuuid >=2.38.1,<3.0a0 - libwebp-base >=1.4.0,<2.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - openssl >=3.3.2,<4.0a0 - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - qhull >=2020.2,<2020.3.0a0 - - tiledb >=2.24.2,<2.25.0a0 + - proj >=9.5.0,<9.6.0a0 - xerces-c >=3.2.5,<3.3.0a0 - xz >=5.2.6,<6.0a0 - zstd >=1.5.6,<1.6.0a0 + constrains: + - libgdal 3.9.3.* license: MIT + license_family: MIT purls: [] - size: 771518 - timestamp: 1720442363945 + size: 10427151 + timestamp: 1730219530936 - kind: conda - name: libgdal-arrow-parquet - version: 3.9.1 - build: h8fc8dec_5 - build_number: 5 + name: libgdal-fits + version: 3.9.2 + build: h0a0b71e_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libgdal-arrow-parquet-3.9.1-h8fc8dec_5.conda - sha256: 4cff40b6cf0941f88b26b834b06a5cead7949cdd12a87fe22d709efaf11a86e7 - md5: e583ab8202b70d7fd9d75e9e4bc47a9f + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-fits-3.9.2-h0a0b71e_7.conda + sha256: 2c5b68e63880919d8f7c17b9928db2be118153506c99a70b74b19b5e163a0bbb + md5: d24f52a1eeec99436f3e7b548ae4d048 depends: - - blosc >=1.21.6,<2.0a0 - cfitsio >=4.4.1,<4.4.2.0a0 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 - - geotiff >=1.7.3,<1.8.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - kealib >=1.5.3,<1.6.0a0 - - libarchive >=3.7.4,<3.8.0a0 - - libarrow >=16.1.0,<16.2.0a0 - - libarrow-dataset >=16.1.0,<16.2.0a0 - - libexpat >=2.6.2,<3.0a0 - - libgdal 3.9.1 h26bd040_5 - - libjpeg-turbo >=3.0.0,<4.0a0 + - libgdal-core >=3.9 - libkml >=1.3.0,<1.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libparquet >=16.1.0,<16.2.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libpq >=16.3,<17.0a0 - - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 - - libwebp-base >=1.4.0,<2.0a0 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - openssl >=3.3.1,<4.0a0 - - pcre2 >=10.44,<10.45.0a0 - - poppler >=24.7.0,<24.8.0a0 - - postgresql - - proj >=9.4.1,<9.5.0a0 - - qhull >=2020.2,<2020.3.0a0 - - tiledb >=2.24.2,<2.25.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - - xerces-c >=3.2.5,<3.3.0a0 - - xz >=5.2.6,<6.0a0 - - zstd >=1.5.6,<1.6.0a0 license: MIT + license_family: MIT purls: [] - size: 699448 - timestamp: 1720445623594 + size: 497868 + timestamp: 1728296632048 - kind: conda - name: libgettextpo - version: 0.22.5 - build: h59595ed_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-h59595ed_2.conda - sha256: e2f784564a2bdc6f753f00f63cc77c97601eb03bc89dccc4413336ec6d95490b - md5: 172bcc51059416e7ce99e7b528cede83 + name: libgdal-fits + version: 3.9.2 + build: h248c7bc_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-fits-3.9.2-h248c7bc_7.conda + sha256: 2795e2d484722cbc3381920982da0250d3dcc3f3556b8bcdf1ed1c134a7d2f1b + md5: f6fddae38163fff25a99adef1765496c depends: - - libgcc-ng >=12 - license: GPL-3.0-or-later - license_family: GPL + - __osx >=11.0 + - cfitsio >=4.4.1,<4.4.2.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + license: MIT + license_family: MIT purls: [] - size: 170582 - timestamp: 1712512286907 + size: 466138 + timestamp: 1728294964843 - kind: conda - name: libgettextpo - version: 0.22.5 - build: h5ff76d1_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgettextpo-0.22.5-h5ff76d1_2.conda - sha256: 139d1861e21c41b950ebf9e395db2492839337a3b481ad2901a4a6800c555e37 - md5: 54cc9d12c29c2f0516f2ef4987de53ae + name: libgdal-fits + version: 3.9.2 + build: h2db6552_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-fits-3.9.2-h2db6552_7.conda + sha256: 156ae6b968301cc0ce51c96b60df594569a6df0caab0ac936d2532d09619e2fc + md5: 524e64f1aa0ebc87230109e684f392f4 depends: - - libiconv >=1.17,<2.0a0 - - libintl 0.22.5 h5ff76d1_2 - license: GPL-3.0-or-later - license_family: GPL - purls: [] - size: 172506 - timestamp: 1712512827340 -- kind: conda - name: libgettextpo - version: 0.22.5 - build: h8fbad5d_2 - build_number: 2 + - __glibc >=2.17,<3.0.a0 + - cfitsio >=4.4.1,<4.4.2.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT + purls: [] + size: 478024 + timestamp: 1728294286914 +- kind: conda + name: libgdal-grib + version: 3.9.2 + build: h6d3d72d_7 + build_number: 7 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-0.22.5-h8fbad5d_2.conda - sha256: c3f5580e172c3fc03d33e8994024f08b709a239bd599792e51435fa7a06beb64 - md5: a66fad933e22d22599a6dd149d359d25 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-grib-3.9.2-h6d3d72d_7.conda + sha256: d9eb5d2a428da6d057c84c0902692e73ce77993b5dbced725dc0b814d382d23d + md5: f8794c6cd7aaa4cd18ebde3fe10fba07 depends: - - libiconv >=1.17,<2.0a0 - - libintl 0.22.5 h8fbad5d_2 - license: GPL-3.0-or-later - license_family: GPL + - __osx >=11.0 + - libaec >=1.1.3,<2.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + license: MIT + license_family: MIT purls: [] - size: 159856 - timestamp: 1712512788407 + size: 652171 + timestamp: 1728295096895 - kind: conda - name: libgettextpo-devel - version: 0.22.5 - build: h59595ed_2 - build_number: 2 + name: libgdal-grib + version: 3.9.2 + build: hc3b29a1_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-h59595ed_2.conda - sha256: 695eb2439ad4a89e4205dd675cc52fba5cef6b5d41b83f07cdbf4770a336cc15 - md5: b63d9b6da3653179a278077f0de20014 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-grib-3.9.2-hc3b29a1_7.conda + sha256: 54937f8f0b85b941321324f350a9e1895b772153b70be64539689466899dd9b1 + md5: 56a7436a66a1a4636001ce4b621a3a33 depends: - - libgcc-ng >=12 - - libgettextpo 0.22.5 h59595ed_2 - license: GPL-3.0-or-later - license_family: GPL + - __glibc >=2.17,<3.0.a0 + - libaec >=1.1.3,<2.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT purls: [] - size: 36758 - timestamp: 1712512303244 + size: 722657 + timestamp: 1728294356817 - kind: conda - name: libgfortran - version: 5.0.0 - build: 13_2_0_h97931a8_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda - sha256: 4874422e567b68334705c135c17e5acdca1404de8255673ce30ad3510e00be0d - md5: 0b6e23a012ee7a9a5f6b244f5a92c1d5 + name: libgdal-grib + version: 3.9.2 + build: hd2a089b_7 + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-grib-3.9.2-hd2a089b_7.conda + sha256: 695af1fb1f52beeb2b0d3f0ea922c00c5373fbbdc300a0b227ccfc258c40c086 + md5: dd3572ebb1832021bb0bd1dc06b56043 depends: - - libgfortran5 13.2.0 h2873a65_3 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL + - libaec >=1.1.3,<2.0a0 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT purls: [] - size: 110106 - timestamp: 1707328956438 + size: 678215 + timestamp: 1728296811437 - kind: conda - name: libgfortran - version: 5.0.0 - build: 13_2_0_hd922786_3 - build_number: 3 + name: libgdal-hdf4 + version: 3.9.2 + build: h3847bb8_7 + build_number: 7 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - sha256: 44e541b4821c96b28b27fef5630883a60ce4fee91fd9c79f25a199f8f73f337b - md5: 4a55d9e169114b2b90d3ec4604cd7bbf + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf4-3.9.2-h3847bb8_7.conda + sha256: 2431fbe2e19007c61093052ce021963313446472a5bfd148da546c388c9409be + md5: 0ff2c29987702b8f7b61c865d951cd90 depends: - - libgfortran5 13.2.0 hf226fd6_3 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL + - __osx >=11.0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - libaec >=1.1.3,<2.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + license: MIT + license_family: MIT purls: [] - size: 110233 - timestamp: 1707330749033 + size: 578331 + timestamp: 1728295222220 - kind: conda - name: libgfortran-ng - version: 14.1.0 - build: h69a702a_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_0.conda - sha256: ef624dacacf97b2b0af39110b36e2fd3e39e358a1a6b7b21b85c9ac22d8ffed9 - md5: f4ca84fbd6d06b0a052fb2d5b96dde41 + name: libgdal-hdf4 + version: 3.9.2 + build: h430f241_7 + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf4-3.9.2-h430f241_7.conda + sha256: 8a0f9532574fd7cdb26a3b79c505c26dd04317bd742fd9587ee508e773c527ab + md5: 720ff75366c6e31259ccd53b73b27abf depends: - - libgfortran5 14.1.0 hc5f4f2c_0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL + - hdf4 >=4.2.15,<4.2.16.0a0 + - libaec >=1.1.3,<2.0a0 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT purls: [] - size: 49893 - timestamp: 1719538933879 + size: 562915 + timestamp: 1728296979645 - kind: conda - name: libgfortran5 - version: 13.2.0 - build: h2873a65_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda - sha256: da3db4b947e30aec7596a3ef92200d17e774cccbbf7efc47802529a4ca5ca31b - md5: e4fb4d23ec2870ff3c40d10afe305aec + name: libgdal-hdf4 + version: 3.9.2 + build: hd5ecb85_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf4-3.9.2-hd5ecb85_7.conda + sha256: 0b8b77e609b72a51e9548e63c4423222515cd833ab5321eb7f283cf250bb00b5 + md5: 9c8431dc0b83d5fe9c12a2c0b6861a72 depends: - - llvm-openmp >=8.0.0 - constrains: - - libgfortran 5.0.0 13_2_0_*_3 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL + - __glibc >=2.17,<3.0.a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - libaec >=1.1.3,<2.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT purls: [] - size: 1571379 - timestamp: 1707328880361 + size: 579075 + timestamp: 1728294420920 - kind: conda - name: libgfortran5 - version: 13.2.0 - build: hf226fd6_3 - build_number: 3 + name: libgdal-hdf5 + version: 3.9.2 + build: h2def128_7 + build_number: 7 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - sha256: bafc679eedb468a86aa4636061c55966186399ee0a04b605920d208d97ac579a - md5: 66ac81d54e95c534ae488726c1f698ea + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf5-3.9.2-h2def128_7.conda + sha256: 3c298f5da6f445637deba5bd3bd48389e84740060f565fcc889912de7eeccd12 + md5: 6bbc7e8df9ef22139bc1bab39ba3dd56 depends: - - llvm-openmp >=8.0.0 - constrains: - - libgfortran 5.0.0 13_2_0_*_3 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL + - __osx >=11.0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + license: MIT + license_family: MIT purls: [] - size: 997381 - timestamp: 1707330687590 + size: 591844 + timestamp: 1728295364313 - kind: conda - name: libgfortran5 - version: 14.1.0 - build: hc5f4f2c_0 + name: libgdal-hdf5 + version: 3.9.2 + build: h6283f77_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_0.conda - sha256: a67d66b1e60a8a9a9e4440cee627c959acb4810cb182e089a4b0729bfdfbdf90 - md5: 6456c2620c990cd8dde2428a27ba0bc5 - depends: - - libgcc-ng >=14.1.0 - constrains: - - libgfortran-ng 14.1.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 1457561 - timestamp: 1719538909168 -- kind: conda - name: libglib - version: 2.80.3 - build: h59d46d9_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_1.conda - sha256: 92f9ca586a0d8070ae2c8924cbc7cc4fd79d47ff9cce58336984c86a197ab181 - md5: 2fd194003b4e69ab690f18994a71fd70 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf5-3.9.2-h6283f77_7.conda + sha256: 0998f51e51086a56871538c803eb4e87eb404862a38ab0109e1dc78705491db2 + md5: c8c82df3aece4e23804d178a8a8b308a depends: - - __osx >=11.0 - - 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 - constrains: - - glib 2.80.3 *_1 - license: LGPL-2.1-or-later + - __glibc >=2.17,<3.0.a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT purls: [] - size: 3655117 - timestamp: 1720335093245 + size: 643208 + timestamp: 1728294499558 - kind: conda - name: libglib - version: 2.80.3 - build: h7025463_1 - build_number: 1 + name: libgdal-hdf5 + version: 3.9.2 + build: had131a1_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_1.conda - sha256: cae4f5ab6c64512aa6ae9f5c808f9b0aaea19496ddeab3720c118ad0809f7733 - md5: 53c80e0ed9a3905ca7047c03756a5caa + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf5-3.9.2-had131a1_7.conda + sha256: f64a98ee37ed7eb3fbdd6de402190403b4b28d893d50b08bd92262e847effae4 + md5: 7e62763a83b3730f5058daefb4962053 depends: - - 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 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - constrains: - - glib 2.80.3 *_1 - license: LGPL-2.1-or-later + license: MIT + license_family: MIT purls: [] - size: 3743922 - timestamp: 1720334986136 + size: 613800 + timestamp: 1728297167598 - kind: conda - name: libglib - version: 2.80.3 - build: h736d271_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.80.3-h736d271_1.conda - sha256: bfd5a28140d31f9310efcdfd1136f36d7ca718a297690a1a8869b3a1966675ae - md5: 0919d467624606fbc05c38c458f3f42a + name: libgdal-jp2openjpeg + version: 3.9.2 + build: h1b2c38e_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-jp2openjpeg-3.9.2-h1b2c38e_7.conda + sha256: 27068921e22565c71cca415211f0185154db3f1d070680790f5c3cc59bb376c7 + md5: f0f86f8cb8835bb91acb8c7fa2c350b0 depends: - - __osx >=10.13 - - 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 - constrains: - - glib 2.80.3 *_1 - license: LGPL-2.1-or-later + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + - openjpeg >=2.5.2,<3.0a0 + license: MIT + license_family: MIT purls: [] - size: 3655643 - timestamp: 1720335043559 + size: 469287 + timestamp: 1728294554655 - kind: conda - name: libglib - version: 2.80.3 - build: h8a4344b_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.3-h8a4344b_1.conda - sha256: 5f5854a7cee117d115009d8f22a70d5f9e28f09cb6e453e8f1dd712e354ecec9 - md5: 6ea440297aacee4893f02ad759e6ffbc + name: libgdal-jp2openjpeg + version: 3.9.2 + build: hd61e619_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-jp2openjpeg-3.9.2-hd61e619_7.conda + sha256: abcbbe2d98a6eb471ac620aef4d687ad6acdcc61188063dc42e9e598a90d7868 + md5: 3114191129246e6571d739289bb8083f depends: - - 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 - constrains: - - glib 2.80.3 *_1 - license: LGPL-2.1-or-later + - __osx >=11.0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - openjpeg >=2.5.2,<3.0a0 + license: MIT + license_family: MIT purls: [] - size: 3886207 - timestamp: 1720334852370 + size: 462891 + timestamp: 1728295482655 - kind: conda - name: libgomp - version: 14.1.0 - build: h77fa898_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda - sha256: 7699df61a1f6c644b3576a40f54791561f2845983120477a16116b951c9cdb05 - md5: ae061a5ed5f05818acdf9adab72c146d + name: libgdal-jp2openjpeg + version: 3.9.2 + build: hed4c6cb_7 + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-jp2openjpeg-3.9.2-hed4c6cb_7.conda + sha256: 88f40b96af8df6d164ead2a138fc3ead313821f127cfcaadf60059d07f54c62a + md5: 4135def2658a84e8739677a39eadd200 depends: - - _libgcc_mutex 0.1 conda_forge - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - openjpeg >=2.5.2,<3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT purls: [] - size: 456925 - timestamp: 1719538796073 + size: 498132 + timestamp: 1728297319442 - kind: conda - name: libgoogle-cloud - version: 2.26.0 - build: h26d7fe4_0 + name: libgdal-kea + version: 3.9.2 + build: h1df15e4_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.26.0-h26d7fe4_0.conda - sha256: c6caa2d4c375c6c5718e6223bb20ccf6305313c0fef2a66499b4f6cdaa299635 - md5: 7b9d4c93870fb2d644168071d4d76afb + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-kea-3.9.2-h1df15e4_7.conda + sha256: 252d6f9cc3bb2fa2788e73ce5c8a4587f653f9b1f1dc34ecc022ef4aa1b53bf0 + md5: c693e703649051ee9db0fabd4fcd0483 depends: - __glibc >=2.17,<3.0.a0 - - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgcc-ng >=12 - - libgrpc >=1.62.2,<1.63.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libstdcxx-ng >=12 - - openssl >=3.3.1,<4.0a0 - constrains: - - libgoogle-cloud 2.26.0 *_0 - license: Apache-2.0 - license_family: Apache + - hdf5 >=1.14.3,<1.14.4.0a0 + - kealib >=1.5.3,<1.6.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libgdal-hdf5 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT purls: [] - size: 1223584 - timestamp: 1719889637602 + size: 480532 + timestamp: 1728294987957 - kind: conda - name: libgoogle-cloud - version: 2.26.0 - build: h5e7cea3_0 + name: libgdal-kea + version: 3.9.2 + build: h7b2de0b_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-kea-3.9.2-h7b2de0b_7.conda + sha256: 8ba32b0e3654b221f3dc902ddfb3ad1e74777220c5b4ea30331e80fe801c5bef + md5: 47c89ca8baab301fb54f3b1faa166e4d + depends: + - __osx >=11.0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - kealib >=1.5.3,<1.6.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libgdal-hdf5 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 469587 + timestamp: 1728296301261 +- kind: conda + name: libgdal-kea + version: 3.9.2 + build: h95b1a77_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.26.0-h5e7cea3_0.conda - sha256: 31e0abd909dce9b0223471383e5f561c802da0abfe7d6f28eb0317c806879c41 - md5: 641d850ed6a3d2bffb546868eb7cb4db + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-kea-3.9.2-h95b1a77_7.conda + sha256: eb0c503103eaf5821564ab47d0dfcc23481037115cb988d7af3c7963fadbb9c4 + md5: a20cfdcc279d52808b1a53296bfd308c depends: - - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgrpc >=1.62.2,<1.63.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - kealib >=1.5.3,<1.6.0a0 + - libgdal-core >=3.9 + - libgdal-hdf5 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - constrains: - - libgoogle-cloud 2.26.0 *_0 - license: Apache-2.0 - license_family: Apache + license: MIT + license_family: MIT purls: [] - size: 14356 - timestamp: 1719889580338 + size: 518891 + timestamp: 1728298457098 - kind: conda - name: libgoogle-cloud - version: 2.26.0 - build: h721cda5_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.26.0-h721cda5_0.conda - sha256: f514519dc7a48cfd81e5c2dd436223b221f80c03f224253739e22d60d896f632 - md5: 7f7f4537746da4470385ec3a496730a4 - depends: - - __osx >=10.13 - - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libgrpc >=1.62.2,<1.63.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - openssl >=3.3.1,<4.0a0 - constrains: - - libgoogle-cloud 2.26.0 *_0 - license: Apache-2.0 - license_family: Apache + name: libgdal-netcdf + version: 3.9.2 + build: h55e78d3_7 + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-netcdf-3.9.2-h55e78d3_7.conda + sha256: 0e74029976a25c4088d7aa5967f0cd81e7963aae4633fd01bae9a63df5ad799e + md5: 55406e979f268a570952c49fe941eb04 + depends: + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgdal-core >=3.9 + - libgdal-hdf4 3.9.2.* + - libgdal-hdf5 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 + - libnetcdf >=4.9.2,<4.9.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT purls: [] - size: 875432 - timestamp: 1719889038115 + size: 667045 + timestamp: 1728298642403 - kind: conda - name: libgoogle-cloud - version: 2.26.0 - build: hfe08963_0 + name: libgdal-netcdf + version: 3.9.2 + build: h5e0d008_7 + build_number: 7 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.26.0-hfe08963_0.conda - sha256: 6753beade8465987399e85ca47c94814e8e24c58cf0ff5591545e6cbe7172ec5 - md5: db7ab92239aeb06c3c52de90cc1e6f7a + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-netcdf-3.9.2-h5e0d008_7.conda + sha256: eb093b7e72a9374c421fa92128282a676a54bb37ca5960a8132dd6326306a1a8 + md5: 438cf785fe8b4d9acabbae8ce6e39cb6 depends: - __osx >=11.0 - - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libgrpc >=1.62.2,<1.63.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - openssl >=3.3.1,<4.0a0 - constrains: - - libgoogle-cloud 2.26.0 *_0 - license: Apache-2.0 - license_family: Apache + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libgdal-hdf4 3.9.2.* + - libgdal-hdf5 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 + - libnetcdf >=4.9.2,<4.9.3.0a0 + license: MIT + license_family: MIT purls: [] - size: 860834 - timestamp: 1719889280878 + size: 668071 + timestamp: 1728296444763 - kind: conda - name: libgoogle-cloud-storage - version: 2.26.0 - build: h1466eeb_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.26.0-h1466eeb_0.conda - sha256: b4c37ebd74a1453ee1cf561e40354544866d1816fa12637b7076377d0ef205ae - md5: 385940a9a022e911e88f4e9ea45e47b3 + name: libgdal-netcdf + version: 3.9.2 + build: hf2d2f32_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-netcdf-3.9.2-hf2d2f32_7.conda + sha256: 58155b0df43b090ed55341c9b24e07047db9b4bd8889309a02180e99c4e69558 + md5: 4015ef020928219acc0b5c9edbce8d30 depends: - - __osx >=11.0 - - libabseil - - libcrc32c >=1.1.2,<1.2.0a0 - - libcurl - - libcxx >=16 - - libgoogle-cloud 2.26.0 hfe08963_0 - - libzlib >=1.3.1,<2.0a0 - - openssl - license: Apache-2.0 - license_family: Apache + - __glibc >=2.17,<3.0.a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libgdal-hdf4 3.9.2.* + - libgdal-hdf5 3.9.2.* + - libkml >=1.3.0,<1.4.0a0 + - libnetcdf >=4.9.2,<4.9.3.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT purls: [] - size: 531614 - timestamp: 1719890205153 + size: 738251 + timestamp: 1728295070799 - kind: conda - name: libgoogle-cloud-storage - version: 2.26.0 - build: h9e84e37_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.26.0-h9e84e37_0.conda - sha256: d2081318e2962225c7b00fee355f66737553828eac42ddfbab968f59b039213a - md5: b1e5017003917b69d5c046fc7ac0dcc3 - depends: - - __osx >=10.13 - - libabseil - - libcrc32c >=1.1.2,<1.2.0a0 - - libcurl - - libcxx >=16 - - libgoogle-cloud 2.26.0 h721cda5_0 - - libzlib >=1.3.1,<2.0a0 - - openssl - license: Apache-2.0 - license_family: Apache + name: libgdal-pdf + version: 3.9.2 + build: h587d690_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-pdf-3.9.2-h587d690_7.conda + sha256: 68c1a57552963982a1a703b85a42bbd8a15bb253d9acce13332d1ff911078de4 + md5: 4323634089f1156bd69a77ad48f53d0d + depends: + - __osx >=11.0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - poppler + license: MIT + license_family: MIT purls: [] - size: 549363 - timestamp: 1719890135847 + size: 598629 + timestamp: 1728295629149 - kind: conda - name: libgoogle-cloud-storage - version: 2.26.0 - build: ha262f82_0 + name: libgdal-pdf + version: 3.9.2 + build: h600f43f_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.26.0-ha262f82_0.conda - sha256: 7c16bf2e5aa6b5e42450c218fdfa7d5ff1da952c5a5c821c001ab3fd940c2aed - md5: 89b53708fd67762b26c38c8ecc5d323d + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-pdf-3.9.2-h600f43f_7.conda + sha256: 10ebe0047d4300152185c095a74a3159fcc3b3d2b0e0bb111381dc7d018cbf65 + md5: 567066db0820f4983a6741e429c651d1 depends: - __glibc >=2.17,<3.0.a0 - - libabseil - - libcrc32c >=1.1.2,<1.2.0a0 - - libcurl - - libgcc-ng >=12 - - libgoogle-cloud 2.26.0 h26d7fe4_0 - - libstdcxx-ng >=12 - - libzlib >=1.3.1,<2.0a0 - - openssl - license: Apache-2.0 - license_family: Apache + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + - poppler + license: MIT + license_family: MIT purls: [] - size: 764005 - timestamp: 1719889827732 + size: 668085 + timestamp: 1728294642230 - kind: conda - name: libgoogle-cloud-storage - version: 2.26.0 - build: he5eb982_0 + name: libgdal-pdf + version: 3.9.2 + build: ha1c78db_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.26.0-he5eb982_0.conda - sha256: cfe666f4e205148661249a87587335a1dae58f7bf530fb08dcc2ffcd1bc6adb9 - md5: 31d875f47c82afb1c9bbe3beb3bd8d6e + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-pdf-3.9.2-ha1c78db_7.conda + sha256: 0ae547978fb81ce421257dd2cff84e83cc78e921f0bd5c99ceeef167164188fa + md5: 27fb85b4f988b64aa9ab0e926ddd6b33 depends: - - libabseil - - libcrc32c >=1.1.2,<1.2.0a0 - - libcurl - - libgoogle-cloud 2.26.0 h5e7cea3_0 - - libzlib >=1.3.1,<2.0a0 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - poppler - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - license: Apache-2.0 - license_family: Apache + license: MIT + license_family: MIT purls: [] - size: 14267 - timestamp: 1719889928831 + size: 626278 + timestamp: 1728297526707 - kind: conda - name: libgpg-error - version: '1.50' - build: h4f305b6_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.50-h4f305b6_0.conda - sha256: c60969d5c315f33fee90a1f2dd5d169e2834ace5a55f5a6f822aa7485a3a84cc - md5: 0d7ff1a8e69565ca3add6925e18e708f + name: libgdal-pg + version: 3.9.2 + build: h147afc8_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-pg-3.9.2-h147afc8_5.conda + sha256: e0ddd543ed987936f24e14f16440e3c8f15436a89d22fa0a8a22d27ce1358eaa + md5: 98809be24692acf80313305135b5e8c5 depends: - - gettext - - libasprintf >=0.22.5,<1.0a0 - - libgcc-ng >=12 - - libgettextpo >=0.22.5,<1.0a0 - - libstdcxx-ng >=12 - license: GPL-2.0-only - license_family: GPL + - __osx >=11.0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libpq >=16.4,<17.0a0 + - postgresql + license: MIT + license_family: MIT purls: [] - size: 273774 - timestamp: 1719390736440 + size: 503908 + timestamp: 1727369383446 - kind: conda - name: libgrpc - version: 1.62.2 - build: h15f2491_0 + name: libgdal-pg + version: 3.9.2 + build: h151b34b_5 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.conda - sha256: 28241ed89335871db33cb6010e9ccb2d9e9b6bb444ddf6884f02f0857363c06a - md5: 8dabe607748cb3d7002ad73cd06f1325 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-pg-3.9.2-h151b34b_5.conda + sha256: 1f87025d40002b4600a3456666eaa3d2ec236acb0e622813fa65eb7e35c22815 + md5: 95bba10c8a24274a3a374e595c2e108b depends: - - c-ares >=1.28.1,<2.0a0 - - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libgcc-ng >=12 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.1,<4.0a0 - - re2 - constrains: - - grpc-cpp =1.62.2 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 7316832 - timestamp: 1713390645548 -- kind: conda - name: libgrpc - version: 1.62.2 - build: h384b2fc_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.62.2-h384b2fc_0.conda - sha256: 7c228040e7dac4e5e7e6935a4decf6bc2155cc05fcfb0811d25ccb242d0036ba - md5: 9421f67cf8b4bc976fe5d0c3ab42de18 - depends: - - __osx >=10.13 - - c-ares >=1.28.1,<2.0a0 - - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libcxx >=16 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.1,<4.0a0 - - re2 - constrains: - - grpc-cpp =1.62.2 - license: Apache-2.0 - license_family: APACHE + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libpq >=16.4,<17.0a0 + - libstdcxx >=13 + - postgresql + license: MIT + license_family: MIT purls: [] - size: 5189573 - timestamp: 1713392887258 + size: 526493 + timestamp: 1727366151832 - kind: conda - name: libgrpc - version: 1.62.2 - build: h5273850_0 + name: libgdal-pg + version: 3.9.2 + build: ha693a0f_5 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.62.2-h5273850_0.conda - sha256: 08794bf5ea0e19ac23ed47d0f8699b5c05c46f14334b41f075e53bac9bbf97d8 - md5: 2939e4b5baecfeac1e8dee5c4f579f1a + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-pg-3.9.2-ha693a0f_5.conda + sha256: 78bd230d342f823d33977c3715238d5a3268d8abd06d48007ac80698cb336d06 + md5: 4cb454739461b90a3dec5b4fa49aac11 depends: - - c-ares >=1.28.1,<2.0a0 - - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.1,<4.0a0 - - re2 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libpq >=16.4,<17.0a0 + - postgresql - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - constrains: - - grpc-cpp =1.62.2 - license: Apache-2.0 - license_family: APACHE + license: MIT + license_family: MIT purls: [] - size: 16097674 - timestamp: 1713392821679 + size: 531991 + timestamp: 1727368564775 - kind: conda - name: libgrpc - version: 1.62.2 - build: h9c18a4f_0 + name: libgdal-postgisraster + version: 3.9.2 + build: h147afc8_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.62.2-h9c18a4f_0.conda - sha256: d2c5b5a828f6f1242c11e8c91968f48f64446f7dd5cbfa1197545e465eb7d47a - md5: e624fc11026dbb84c549435eccd08623 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-postgisraster-3.9.2-h147afc8_5.conda + sha256: de6bf10e1aafe4c91b6376fbda93c80ad703b0af74b5c01bb46a5b9937de08d8 + md5: 50fc8bbbdf4db317393e1198db4ca7f0 depends: - - c-ares >=1.28.1,<2.0a0 - - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libcxx >=16 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libre2-11 >=2023.9.1,<2024.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.1,<4.0a0 - - re2 - constrains: - - grpc-cpp =1.62.2 - license: Apache-2.0 - license_family: APACHE + - __osx >=11.0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libpq >=16.4,<17.0a0 + - postgresql + license: MIT + license_family: MIT purls: [] - size: 5016525 - timestamp: 1713392846329 + size: 468680 + timestamp: 1727369592264 - kind: conda - name: libhwloc - version: 2.11.0 - build: default_h456cccd_1000 - build_number: 1000 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.11.0-default_h456cccd_1000.conda - sha256: cbd6e20aa4dede5025f03be0d1d8bccfa6b3549b3b3d98f94d10ea73ebf550e4 - md5: 3e07b3953681279cc9cbc4d8b2723009 + name: libgdal-postgisraster + version: 3.9.2 + build: h151b34b_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-postgisraster-3.9.2-h151b34b_5.conda + sha256: 5efb03a1a0962e051bcfb75f409f1ecc08883ed6febdbecba4f4e54c297d43d3 + md5: c9163dca620888a9df0a3ef3ad992150 depends: - - __osx >=10.13 - - libcxx >=16 - - libxml2 >=2.12.7,<3.0a0 - license: BSD-3-Clause - license_family: BSD + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libpq >=16.4,<17.0a0 + - libstdcxx >=13 + - postgresql + license: MIT + license_family: MIT purls: [] - size: 2350298 - timestamp: 1719334081063 + size: 480108 + timestamp: 1727366213070 - kind: conda - name: libhwloc - version: 2.11.0 - build: default_h5622ce7_1000 - build_number: 1000 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.0-default_h5622ce7_1000.conda - sha256: 4cc0292ee8fff450da8b02ceadfab6e44646e0d6a586012b76c5454f770f546e - md5: 695ee1e435b873780efccc64362cda89 + name: libgdal-postgisraster + version: 3.9.2 + build: ha693a0f_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-postgisraster-3.9.2-ha693a0f_5.conda + sha256: 989ffd65fdaef864afbda2ed9e6e8c24b761a4ca955a363dfce2a0162ffa7ed2 + md5: 0c5c04418da007ad032381b8cd0736bf depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libxml2 >=2.12.7,<3.0a0 - license: BSD-3-Clause - license_family: BSD + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libpq >=16.4,<17.0a0 + - postgresql + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT purls: [] - size: 2415753 - timestamp: 1719333896030 + size: 504760 + timestamp: 1727368720479 - kind: conda - name: libhwloc - version: 2.11.0 - build: default_h7685b71_1000 - build_number: 1000 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.11.0-default_h7685b71_1000.conda - sha256: e1b92011a85ce4de0b8f107c6a85fe4d7dfa81fbf5aaecda5cd68d408667eba6 - md5: dfa163200dabc0fb31bd6a6bca96f836 + name: libgdal-tiledb + version: 3.9.2 + build: ha8d0372_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-tiledb-3.9.2-ha8d0372_1.conda + sha256: 3ae27949cc6230aee012035735231f727f762179f71c8fd99ee97ce5e79c7707 + md5: 99186faa63e7e920f3a6e5a553ec543a depends: - - __osx >=11.0 - - libcxx >=16 - - libxml2 >=2.12.7,<3.0a0 - license: BSD-3-Clause - license_family: BSD + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + - tiledb >=2.25.0,<2.26.0a0 + license: MIT + license_family: MIT purls: [] - size: 2325334 - timestamp: 1719333994790 + size: 682276 + timestamp: 1725467454724 - kind: conda - name: libhwloc - version: 2.11.0 - build: default_h8125262_1000 - build_number: 1000 + name: libgdal-tiledb + version: 3.9.2 + build: hefbb53f_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.0-default_h8125262_1000.conda - sha256: f7f7733b2a839499a6d340edcce08dca5b5798293d3429f8b4a5c8a799dbabe9 - md5: 065e86390dcd9304259ad8b627f724bd + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-tiledb-3.9.2-hefbb53f_1.conda + sha256: 6d7c490fc56ab8c70bd61f1bb2b2da383b47b70df631facb6c02f5655c522f8e + md5: a26fc09177e995d1d9e181036ce579a3 depends: - - libxml2 >=2.12.7,<3.0a0 - - pthreads-win32 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - tiledb >=2.25.0,<2.26.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - license_family: BSD + license: MIT + license_family: MIT purls: [] - size: 2380869 - timestamp: 1719335179554 + size: 628469 + timestamp: 1725470128473 - kind: conda - name: libiconv - version: '1.17' - build: h0d3ecfb_2 - build_number: 2 + name: libgdal-tiledb + version: 3.9.2 + build: hf17dc73_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - sha256: bc7de5097b97bcafcf7deaaed505f7ce02f648aac8eccc0d5a47cc599a1d0304 - md5: 69bda57310071cf6d2b86caf11573d2d - license: LGPL-2.1-only + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-tiledb-3.9.2-hf17dc73_1.conda + sha256: 8a765d68591c9accd9c623ac200b4c16b55c00d803b7e51a70cea0d7f076261a + md5: 4742d7ded6308b9fa290449f3e43b976 + depends: + - __osx >=11.0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - tiledb >=2.25.0,<2.26.0a0 + license: MIT + license_family: MIT purls: [] - size: 676469 - timestamp: 1702682458114 + size: 615114 + timestamp: 1725468868835 - kind: conda - name: libiconv - version: '1.17' - build: hcfcfb64_2 - build_number: 2 + name: libgdal-xls + version: 3.9.2 + build: h03c987c_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-xls-3.9.2-h03c987c_7.conda + sha256: 363f00ff7b5295a65e918c5f96bcd8fd3daba09fd8d6563de7b7d266144f86e5 + md5: 165f12373452e8d17889e9c877431acf + depends: + - __glibc >=2.17,<3.0.a0 + - freexl >=2.0.0,<3.0a0 + - libgcc >=13 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + - libstdcxx >=13 + license: MIT + license_family: MIT + purls: [] + size: 434813 + timestamp: 1728294922029 +- kind: conda + name: libgdal-xls + version: 3.9.2 + build: habc1c91_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-xls-3.9.2-habc1c91_7.conda + sha256: ad62f074cd24ebf915b2e715e2d2a1e315795672444b7be1be0c6ddd7f51b0e4 + md5: 09290c8b53af1b977967ad9a4734a0e2 + depends: + - __osx >=11.0 + - freexl >=2.0.0,<3.0a0 + - libcxx >=17 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 432445 + timestamp: 1728296164752 +- kind: conda + name: libgdal-xls + version: 3.9.2 + build: hd0e23a6_7 + build_number: 7 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - sha256: 5f844dd19b046d43174ad80c6ea75b5d504020e3b63cfbc4ace97b8730d35c7b - md5: e1eb10b1cca179f2baa3601e4efc8712 + url: https://conda.anaconda.org/conda-forge/win-64/libgdal-xls-3.9.2-hd0e23a6_7.conda + sha256: 44c5c2fd75a5b34fbd71316bef26018023376adaaf2145a8277f906899184eb2 + md5: c7366f3ec5ce24208987333a077b42f6 depends: + - freexl >=2.0.0,<3.0a0 + - libgdal-core >=3.9 + - libkml >=1.3.0,<1.4.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - license: LGPL-2.1-only + license: MIT + license_family: MIT purls: [] - size: 636146 - timestamp: 1702682547199 + size: 466632 + timestamp: 1728298290371 - kind: conda - name: libiconv - version: '1.17' - build: hd590300_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 - md5: d66573916ffcf376178462f1b61c941e + name: libgettextpo + version: 0.22.5 + build: h8414b35_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgettextpo-0.22.5-h8414b35_3.conda + sha256: bc446fad58155e96a01b28e99254415c2151bdddf57f9a2c00c44e6f0298bb62 + md5: c8cd7295cfb7bda5cbabea4fef904349 depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - purls: [] - size: 705775 - timestamp: 1702682170569 -- kind: conda - name: libiconv - version: '1.17' - build: hd75f5a5_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - sha256: 23d4923baeca359423a7347c2ed7aaf48c68603df0cf8b87cc94a10b0d4e9a23 - md5: 6c3628d047e151efba7cf08c5e54d1ca - license: LGPL-2.1-only + - __osx >=11.0 + - libiconv >=1.17,<2.0a0 + - libintl 0.22.5 h8414b35_3 + license: GPL-3.0-or-later + license_family: GPL purls: [] - size: 666538 - timestamp: 1702682713201 + size: 159800 + timestamp: 1723627007035 - kind: conda - name: libintl + name: libgettextpo version: 0.22.5 - build: h5728263_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_2.conda - sha256: 1b95335af0a3e278b31e16667fa4e51d1c3f5e22d394d982539dfd5d34c5ae19 - md5: aa622c938af057adc119f8b8eecada01 + build: he02047a_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-0.22.5-he02047a_3.conda + sha256: 7f2d1f4d69973e2c3c3d2b6420d5eb989982baba97d63ab2d7a2b25a92d886b4 + md5: efab66b82ec976930b96d62a976de8e7 depends: - - libiconv >=1.17,<2.0a0 - license: LGPL-2.1-or-later + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: GPL-3.0-or-later + license_family: GPL purls: [] - size: 95745 - timestamp: 1712516102666 + size: 170646 + timestamp: 1723626019265 - kind: conda - name: libintl + name: libgettextpo-devel version: 0.22.5 - build: h5ff76d1_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.22.5-h5ff76d1_2.conda - sha256: 280aaef0ed84637ee869012ad9ad9ed208e068dd9b8cf010dafeea717dad7203 - md5: 3fb6774cb8cdbb93a6013b67bcf9716d + build: he02047a_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgettextpo-devel-0.22.5-he02047a_3.conda + sha256: 0a66cdd46d1cd5201061252535cd91905b3222328a9294c1a5bcd32e85531545 + md5: 9aba7960731e6b4547b3a52f812ed801 depends: - - libiconv >=1.17,<2.0a0 - license: LGPL-2.1-or-later + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libgettextpo 0.22.5 he02047a_3 + license: GPL-3.0-or-later + license_family: GPL purls: [] - size: 74307 - timestamp: 1712512790983 + size: 36790 + timestamp: 1723626032786 - kind: conda - name: libintl - version: 0.22.5 - build: h8fbad5d_2 - build_number: 2 + name: libgfortran + version: 5.0.0 + build: 13_2_0_hd922786_3 + build_number: 3 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8fbad5d_2.conda - sha256: 21bc79bdf34ffd20cb84d2a8bd82d7d0e2a1b94b9e72773f0fb207e5b4f1ff63 - md5: 3d216d0add050129007de3342be7b8c5 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda + sha256: 44e541b4821c96b28b27fef5630883a60ce4fee91fd9c79f25a199f8f73f337b + md5: 4a55d9e169114b2b90d3ec4604cd7bbf depends: - - libiconv >=1.17,<2.0a0 - license: LGPL-2.1-or-later + - libgfortran5 13.2.0 hf226fd6_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 81206 - timestamp: 1712512755390 + size: 110233 + timestamp: 1707330749033 - kind: conda - name: libintl-devel - version: 0.22.5 - build: h5728263_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_2.conda - sha256: 6164fd51abfc7294477c58da77ee1ff9ebc63b9a33404b646407f7fbc3cc7d0d - md5: a2ad82fae23975e4ccbfab2847d31d48 + name: libgfortran + version: 14.2.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + sha256: fc9e7f22a17faf74da904ebfc4d88699013d2992e55505e4aa0eb01770290977 + md5: f1fd30127802683586f768875127a987 depends: - - libiconv >=1.17,<2.0a0 - - libintl 0.22.5 h5728263_2 - license: LGPL-2.1-or-later + - libgfortran5 14.2.0 hd5240d6_1 + constrains: + - libgfortran-ng ==14.2.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 40772 - timestamp: 1712516363413 + size: 53997 + timestamp: 1729027752995 - kind: conda - name: libintl-devel - version: 0.22.5 - build: h5ff76d1_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libintl-devel-0.22.5-h5ff76d1_2.conda - sha256: e3f15a85c6e63633a5ff503d56366bab31cd2e07ea21559889bc7eb19564106d - md5: ea0a07e556d6b238db685cae6e3585d0 + name: libgfortran-ng + version: 14.2.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.2.0-h69a702a_1.conda + sha256: 423f1e2403f0c665748e42d335e421e53fd03c08d457cfb6f360d329d9459851 + md5: 0a7f4cd238267c88e5d69f7826a407eb depends: - - libiconv >=1.17,<2.0a0 - - libintl 0.22.5 h5ff76d1_2 - license: LGPL-2.1-or-later + - libgfortran 14.2.0 h69a702a_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 38422 - timestamp: 1712512843420 + size: 54106 + timestamp: 1729027945817 - kind: conda - name: libintl-devel - version: 0.22.5 - build: h8fbad5d_2 - build_number: 2 + name: libgfortran5 + version: 13.2.0 + build: hf226fd6_3 + build_number: 3 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-devel-0.22.5-h8fbad5d_2.conda - sha256: e52b2d0c5711f64b523756ccd9b800ee6f10a6317432b20a417dc3792e0a794a - md5: 962b3348c68efd25da253e94590ea9a2 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda + sha256: bafc679eedb468a86aa4636061c55966186399ee0a04b605920d208d97ac579a + md5: 66ac81d54e95c534ae488726c1f698ea depends: - - libiconv >=1.17,<2.0a0 - - libintl 0.22.5 h8fbad5d_2 - license: LGPL-2.1-or-later + - llvm-openmp >=8.0.0 + constrains: + - libgfortran 5.0.0 13_2_0_*_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 38616 - timestamp: 1712512805567 + size: 997381 + timestamp: 1707330687590 - kind: conda - name: libjpeg-turbo - version: 3.0.0 - build: h0dc2134_1 + name: libgfortran5 + version: 14.2.0 + build: hd5240d6_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda - sha256: d9572fd1024adc374aae7c247d0f29fdf4b122f1e3586fe62acc18067f40d02f - md5: 72507f8e3961bc968af17435060b6dd6 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d + md5: 9822b874ea29af082e5d36098d25427d + depends: + - libgcc >=14.2.0 constrains: - - jpeg <0.0.0a - license: IJG AND BSD-3-Clause AND Zlib + - libgfortran 14.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 579748 - timestamp: 1694475265912 + size: 1462645 + timestamp: 1729027735353 - kind: conda - name: libjpeg-turbo - version: 3.0.0 - build: hb547adb_1 + name: libgl + version: 1.7.0 + build: ha4b6fd6_1 build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_1.conda + sha256: 2de573a2231d0ffa13242e274d33b7bae88fb0a178392fd4a03cf803a47e4051 + md5: 204892bce2e44252b5cf272712f10bdd + depends: + - __glibc >=2.17,<3.0.a0 + - libglvnd 1.7.0 ha4b6fd6_1 + - libglx 1.7.0 ha4b6fd6_1 + license: LicenseRef-libglvnd + purls: [] + size: 134476 + timestamp: 1727968620103 +- kind: conda + name: libglib + version: 2.82.2 + build: h07bd6cf_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda - sha256: a42054eaa38e84fc1e5ab443facac4bbc9d1b6b6f23f54b7bf4f1eb687e1d993 - md5: 3ff1e053dc3a2b8e36b9bfa4256a58d1 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.82.2-h07bd6cf_0.conda + sha256: 101fb31c509d6a69ac5d612b51d4088ddbc675fca18cf0c3589cfee26cd01ca0 + md5: 890783f64502fa6bfcdc723cfbf581b4 + depends: + - __osx >=11.0 + - 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 constrains: - - jpeg <0.0.0a - license: IJG AND BSD-3-Clause AND Zlib + - glib 2.82.2 *_0 + license: LGPL-2.1-or-later purls: [] - size: 547541 - timestamp: 1694475104253 + size: 3635416 + timestamp: 1729191799117 - kind: conda - name: libjpeg-turbo - version: 3.0.0 - build: hcfcfb64_1 - build_number: 1 + name: libglib + version: 2.82.2 + build: h2ff4ddf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + sha256: 49ee9401d483a76423461c50dcd37f91d070efaec7e4dc2828d8cdd2ce694231 + md5: 13e8e54035ddd2b91875ba399f0f7c04 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - pcre2 >=10.44,<10.45.0a0 + constrains: + - glib 2.82.2 *_0 + license: LGPL-2.1-or-later + purls: [] + size: 3931898 + timestamp: 1729191404130 +- kind: conda + name: libglib + version: 2.82.2 + build: h7025463_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda - sha256: 4e7808e3098b4b4ed7e287f63bb24f9045cc4d95bfd39f0db870fc2837d74dff - md5: 3f1b948619c45b1ca714d60c7389092c + url: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda + sha256: 7dfbf492b736f8d379f8c3b32a823f0bf2167ff69963e4c940339b146a04c54a + md5: 3e379c1b908a7101ecbc503def24613f depends: + - 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 constrains: - - jpeg <0.0.0a - license: IJG AND BSD-3-Clause AND Zlib + - glib 2.82.2 *_0 + license: LGPL-2.1-or-later purls: [] - size: 822966 - timestamp: 1694475223854 + size: 3810166 + timestamp: 1729192227078 - kind: conda - name: libjpeg-turbo - version: 3.0.0 - build: hd590300_1 + name: libglvnd + version: 1.7.0 + build: ha4b6fd6_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f - md5: ea25936bb4080d843790b586850f82b8 + url: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_1.conda + sha256: 67942c2b6e4ddb705640b5db962e678f17d8305df5c1633e939cef1158a95058 + md5: 1ece2ccb1dc8c68639712b05e0fae070 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + license: LicenseRef-libglvnd + purls: [] + size: 132216 + timestamp: 1727968577428 +- kind: conda + name: libglx + version: 1.7.0 + build: ha4b6fd6_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_1.conda + sha256: facc239145719034f7b8815d9630032e701d26534dae28303cdbae8b19590a82 + md5: 80a57756c545ad11f9847835aa21e6b2 + depends: + - __glibc >=2.17,<3.0.a0 + - libglvnd 1.7.0 ha4b6fd6_1 + - xorg-libx11 >=1.8.10,<2.0a0 + license: LicenseRef-libglvnd + purls: [] + size: 77902 + timestamp: 1727968607539 +- kind: conda + name: libgomp + version: 14.2.0 + build: h1383e82_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda + sha256: d8739b834608f35775209b032f0c2be752ef187863c7ec847afcebe2f681be4e + md5: 9e2d4d1214df6f21cba12f6eff4972f9 + depends: + - libwinpthread >=12.0.0.r4.gg4f2fc60ca constrains: - - jpeg <0.0.0a - license: IJG AND BSD-3-Clause AND Zlib + - msys2-conda-epoch <0.0a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 618575 - timestamp: 1694474974816 + size: 524249 + timestamp: 1729089441747 - kind: conda - name: libkml - version: 1.3.0 - build: h01aab08_1018 - build_number: 1018 + name: libgomp + version: 14.2.0 + build: h77fa898_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h01aab08_1018.conda - sha256: f67fc0be886c7eac14dbce858bfcffbc90a55b598e897e513f0979dd2caad750 - md5: 3eb5f16bcc8a02892199aa63555c731f + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63 + md5: cc3573974587f12dda90d96e3e55a702 depends: - - libboost-headers - - libexpat >=2.5.0,<3.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - uriparser >=0.9.7,<1.0a0 - license: BSD-3-Clause - license_family: BSD + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 513804 - timestamp: 1696451330826 + size: 460992 + timestamp: 1729027639220 - kind: conda - name: libkml - version: 1.3.0 - build: h1eb4d9f_1018 - build_number: 1018 + name: libgoogle-cloud + version: 2.30.0 + build: h2e6cea1_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-h1eb4d9f_1018.conda - sha256: ba3833cd0c517bb7a00b235b85a35bc58096e981ef3ac392c0916d83a1abc00a - md5: f287028317d50fa3edad9c715d22e26b + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.30.0-h2e6cea1_0.conda + sha256: 2c58299d8275cfcf575166ba59baa9ac2b32c0c5a2677ee7a51e1d67b2d28f92 + md5: be857dc2a7d747d9aa191ed6c701bde7 depends: - - libboost-headers - - libcxx >=15.0.7 - - libexpat >=2.5.0,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - uriparser >=0.9.7,<1.0a0 - license: BSD-3-Clause - license_family: BSD + - __osx >=11.0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libgrpc >=1.65.5,<1.66.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - openssl >=3.3.2,<4.0a0 + constrains: + - libgoogle-cloud 2.30.0 *_0 + license: Apache-2.0 + license_family: Apache purls: [] - size: 421133 - timestamp: 1696451613703 + size: 845094 + timestamp: 1728021687922 - kind: conda - name: libkml - version: 1.3.0 - build: hab3ca0e_1018 - build_number: 1018 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-hab3ca0e_1018.conda - sha256: f546750a59b85a4b721f69e34e797ceddb93c438ee384db285e3344490d6a9b5 - md5: 535b1bb4896b113c14dfa64141370a12 - depends: - - libboost-headers - - libcxx >=15.0.7 - - libexpat >=2.5.0,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - uriparser >=0.9.7,<1.0a0 - license: BSD-3-Clause - license_family: BSD + name: libgoogle-cloud + version: 2.30.0 + build: h438788a_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.30.0-h438788a_0.conda + sha256: 506a0997b586536a6bbe8fd260bd50b625a541850507486fa66abc5a99104bce + md5: ab8466a39822527f7786b0d0b2aac223 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libgrpc >=1.65.5,<1.66.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libstdcxx >=13 + - openssl >=3.3.2,<4.0a0 + constrains: + - libgoogle-cloud 2.30.0 *_0 + license: Apache-2.0 + license_family: Apache purls: [] - size: 398649 - timestamp: 1696452291278 + size: 1200100 + timestamp: 1728022256338 - kind: conda - name: libkml - version: 1.3.0 - build: haf3e7a6_1018 - build_number: 1018 + name: libgoogle-cloud + version: 2.30.0 + build: ha00044d_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-haf3e7a6_1018.conda - sha256: 74117fe100d9aa3aaab25eb705c44165f8ff6feec2e7c058212a3f5434f85d5f - md5: 950e8765b20b79ecbd296543f848b4ec + url: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.30.0-ha00044d_0.conda + sha256: 2bc9b941eea49287ada92875734f717e4f24fcf9e55c0cdf2e4ead896ad92931 + md5: 6abd86bf0b053dd2fe698568a3f38821 depends: - - libboost-headers - - libexpat >=2.5.0,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgrpc >=1.65.5,<1.66.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 - ucrt >=10.0.20348.0 - - uriparser >=0.9.7,<1.0a0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 + constrains: + - libgoogle-cloud 2.30.0 *_0 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 14593 + timestamp: 1728022894892 +- kind: conda + name: libgoogle-cloud-storage + version: 2.30.0 + build: h0121fbd_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.30.0-h0121fbd_0.conda + sha256: 9fad535d14a204f3646a29f9884c024b69d84120bea5489e14e7dc895b543646 + md5: ad86b6c98964772688298a727cb20ef8 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil + - libcrc32c >=1.1.2,<1.2.0a0 + - libcurl + - libgcc >=13 + - libgoogle-cloud 2.30.0 h438788a_0 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl + license: Apache-2.0 + license_family: Apache + purls: [] + size: 782269 + timestamp: 1728022391174 +- kind: conda + name: libgoogle-cloud-storage + version: 2.30.0 + build: h90fd6fa_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.30.0-h90fd6fa_0.conda + sha256: 1c531f3f5867c5ec9d3d8a7f0babee5ca106f6bf39510b277503d9aea55afeae + md5: 34381339cf47d7af329026d1474f30ff + depends: + - __osx >=11.0 + - libabseil + - libcrc32c >=1.1.2,<1.2.0a0 + - libcurl + - libcxx >=17 + - libgoogle-cloud 2.30.0 h2e6cea1_0 + - libzlib >=1.3.1,<2.0a0 + - openssl + license: Apache-2.0 + license_family: Apache + purls: [] + size: 538215 + timestamp: 1728022502810 +- kind: conda + name: libgoogle-cloud-storage + version: 2.30.0 + build: he5eb982_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.30.0-he5eb982_0.conda + sha256: 2bc1e02125d7a2ca86debc5c7580f3027472439739effc10d96960285593b7de + md5: 116f6a285dbe98e6d4126a88de2878dd + depends: + - libabseil + - libcrc32c >=1.1.2,<1.2.0a0 + - libcurl + - libgoogle-cloud 2.30.0 ha00044d_0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 14456 + timestamp: 1728023196706 +- kind: conda + name: libgpg-error + version: '1.50' + build: h4f305b6_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.50-h4f305b6_0.conda + sha256: c60969d5c315f33fee90a1f2dd5d169e2834ace5a55f5a6f822aa7485a3a84cc + md5: 0d7ff1a8e69565ca3add6925e18e708f + depends: + - gettext + - libasprintf >=0.22.5,<1.0a0 + - libgcc-ng >=12 + - libgettextpo >=0.22.5,<1.0a0 + - libstdcxx-ng >=12 + license: GPL-2.0-only + license_family: GPL + purls: [] + size: 273774 + timestamp: 1719390736440 +- kind: conda + name: libgrpc + version: 1.65.5 + build: h3d9cf25_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.65.5-h3d9cf25_0.conda + sha256: a92096af0fa67bb03fe2d40dfb11e7746603842a78fddce9f06e3ced9d93b61e + md5: b829a3509f5d89b21fa481ebc8edd953 + depends: + - __osx >=11.0 + - c-ares >=1.33.1,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcxx >=17 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libre2-11 >=2023.9.1 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - re2 + constrains: + - grpc-cpp =1.65.5 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 4614162 + timestamp: 1727200966365 +- kind: conda + name: libgrpc + version: 1.65.5 + build: ha20e22e_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.65.5-ha20e22e_0.conda + sha256: f3aee23aac459be6206081ac9c996d3a7480deb1faab6088c268d29a890b9875 + md5: b550afe2fea16769fa9ef3fcbeadf0c1 + depends: + - c-ares >=1.33.1,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libre2-11 >=2023.9.1 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - re2 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - grpc-cpp =1.65.5 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 16648528 + timestamp: 1727201450991 +- kind: conda + name: libgrpc + version: 1.65.5 + build: hf5c653b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.65.5-hf5c653b_0.conda + sha256: d279abd46262e817c7a00aeb4df9b5ed4de38130130b248e2c50875e982f30fa + md5: 3b0048cabc6815a4d8874a0240519d32 + depends: + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.32.3,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libgcc >=13 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libre2-11 >=2023.9.1 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - re2 + constrains: + - grpc-cpp =1.65.5 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 7229891 + timestamp: 1727200905306 +- kind: conda + name: libhwloc + version: 2.11.2 + build: default_h3f80f97_1000 + build_number: 1000 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.11.2-default_h3f80f97_1000.conda + sha256: 24b5aa4cf1df330f07492e9d27e5ec77b92fbe86ff689ef411ffd660eb837a7f + md5: 642da422d3cea85e76caad1e6333d56b + depends: + - __osx >=11.0 + - libcxx >=17 + - libxml2 >=2.12.7,<3.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 2334888 + timestamp: 1727379312877 +- kind: conda + name: libhwloc + version: 2.11.2 + build: default_he43201b_1000 + build_number: 1000 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.2-default_he43201b_1000.conda + sha256: 75be8732e6f94ff2faa129f44ec4970275e1d977559b0c2fb75b7baa5347e16b + md5: 36247217c4e1018085bd9db41eb3526a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - libxml2 >=2.12.7,<3.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 2425405 + timestamp: 1727379398547 +- kind: conda + name: libiconv + version: '1.17' + build: h0d3ecfb_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda + sha256: bc7de5097b97bcafcf7deaaed505f7ce02f648aac8eccc0d5a47cc599a1d0304 + md5: 69bda57310071cf6d2b86caf11573d2d + license: LGPL-2.1-only + purls: [] + size: 676469 + timestamp: 1702682458114 +- kind: conda + name: libiconv + version: '1.17' + build: hcfcfb64_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda + sha256: 5f844dd19b046d43174ad80c6ea75b5d504020e3b63cfbc4ace97b8730d35c7b + md5: e1eb10b1cca179f2baa3601e4efc8712 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-2.1-only + purls: [] + size: 636146 + timestamp: 1702682547199 +- kind: conda + name: libiconv + version: '1.17' + build: hd590300_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + md5: d66573916ffcf376178462f1b61c941e + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + purls: [] + size: 705775 + timestamp: 1702682170569 +- kind: conda + name: libintl + version: 0.22.5 + build: h5728263_3 + build_number: 3 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda + sha256: c7e4600f28bcada8ea81456a6530c2329312519efcf0c886030ada38976b0511 + md5: 2cf0cf76cc15d360dfa2f17fd6cf9772 + depends: + - libiconv >=1.17,<2.0a0 + license: LGPL-2.1-or-later + purls: [] + size: 95568 + timestamp: 1723629479451 +- kind: conda + name: libintl + version: 0.22.5 + build: h8414b35_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8414b35_3.conda + sha256: 7c1d238d4333af385e594c89ebcb520caad7ed83a735c901099ec0970a87a891 + md5: 3b98ec32e91b3b59ad53dbb9c96dd334 + depends: + - __osx >=11.0 + - libiconv >=1.17,<2.0a0 + license: LGPL-2.1-or-later + purls: [] + size: 81171 + timestamp: 1723626968270 +- kind: conda + name: libintl-devel + version: 0.22.5 + build: h5728263_3 + build_number: 3 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libintl-devel-0.22.5-h5728263_3.conda + sha256: be1f3c48bc750bca7e68955d57180dfd826d6f9fa7eb32994f6cb61b813f9a6a + md5: 7537784e9e35399234d4007f45cdb744 + depends: + - libiconv >=1.17,<2.0a0 + - libintl 0.22.5 h5728263_3 + license: LGPL-2.1-or-later + purls: [] + size: 40746 + timestamp: 1723629745649 +- kind: conda + name: libintl-devel + version: 0.22.5 + build: h8414b35_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-devel-0.22.5-h8414b35_3.conda + sha256: c9d1d4fdfb5775828e54bc9fb443b1a6de9319a04b81d1bac52c26114a763154 + md5: 271646de11b018c66e81eb4c4717b291 + depends: + - __osx >=11.0 + - libiconv >=1.17,<2.0a0 + - libintl 0.22.5 h8414b35_3 + license: LGPL-2.1-or-later + purls: [] + size: 38584 + timestamp: 1723627022409 +- kind: conda + name: libjpeg-turbo + version: 3.0.0 + build: hb547adb_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda + sha256: a42054eaa38e84fc1e5ab443facac4bbc9d1b6b6f23f54b7bf4f1eb687e1d993 + md5: 3ff1e053dc3a2b8e36b9bfa4256a58d1 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + purls: [] + size: 547541 + timestamp: 1694475104253 +- kind: conda + name: libjpeg-turbo + version: 3.0.0 + build: hcfcfb64_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda + sha256: 4e7808e3098b4b4ed7e287f63bb24f9045cc4d95bfd39f0db870fc2837d74dff + md5: 3f1b948619c45b1ca714d60c7389092c + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + purls: [] + size: 822966 + timestamp: 1694475223854 +- kind: conda + name: libjpeg-turbo + version: 3.0.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f + md5: ea25936bb4080d843790b586850f82b8 + depends: + - libgcc-ng >=12 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + purls: [] + size: 618575 + timestamp: 1694474974816 +- kind: conda + name: libkml + version: 1.3.0 + build: h538826c_1021 + build_number: 1021 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h538826c_1021.conda + sha256: 81a6096a2db500f0c3527ae59398eacca0634c3381559713ab28022d711dd3bd + md5: 431ec3b40b041576811641e2d643954e + depends: + - libexpat >=2.6.2,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - uriparser >=0.9.8,<1.0a0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 1651104 + timestamp: 1724667610262 +- kind: conda + name: libkml + version: 1.3.0 + build: he250239_1021 + build_number: 1021 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-he250239_1021.conda + sha256: e578ba448489465b8fea743e214272a9fcfccb0d152ba1ff57657aaa76a0cd7d + md5: 891bb2a18eaef684f37bd4fb942cd8b2 + depends: + - __osx >=11.0 + - libcxx >=17 + - libexpat >=2.6.2,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - uriparser >=0.9.8,<1.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 281362 + timestamp: 1724667138089 +- kind: conda + name: libkml + version: 1.3.0 + build: hf539b9f_1021 + build_number: 1021 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-hf539b9f_1021.conda + sha256: 721c3916d41e052ffd8b60e77f2da6ee47ff0d18babfca48ccf93606f1e0656a + md5: e8c7620cc49de0c6a2349b6dd6e39beb + depends: + - __glibc >=2.17,<3.0.a0 + - libexpat >=2.6.2,<3.0a0 + - libgcc-ng >=13 + - libstdcxx-ng >=13 + - libzlib >=1.3.1,<2.0a0 + - uriparser >=0.9.8,<1.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 402219 + timestamp: 1724667059411 +- kind: conda + name: liblapack + version: 3.9.0 + build: 25_linux64_openblas + build_number: 25 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-25_linux64_openblas.conda + sha256: 9d1ff017714edb2d84868f0f931a4a0e7c289a971062b2ac66cfc8145df7e20e + md5: 4dc03a53fc69371a6158d0ed37214cd3 + depends: + - libblas 3.9.0 25_linux64_openblas + constrains: + - liblapacke 3.9.0 25_linux64_openblas + - libcblas 3.9.0 25_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 15608 + timestamp: 1729642910812 +- kind: conda + name: liblapack + version: 3.9.0 + build: 25_osxarm64_openblas + build_number: 25 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-25_osxarm64_openblas.conda + sha256: fdd742407672a9af20e70764550cf18b3ab67f12e48bf04163b90492fbc401e7 + md5: 19bbddfec972d401838330453186108d + depends: + - libblas 3.9.0 25_osxarm64_openblas + constrains: + - blas * openblas + - liblapacke 3.9.0 25_osxarm64_openblas + - libcblas 3.9.0 25_osxarm64_openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 15823 + timestamp: 1729643275943 +- kind: conda + name: liblapack + version: 3.9.0 + build: 25_win64_mkl + build_number: 25 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-25_win64_mkl.conda + sha256: 98c13a28596389539abe3f608c6fbd2826df47671f77c58a331df878c6140c53 + md5: f716ef84564c574e8e74ae725f5d5f93 + depends: + - libblas 3.9.0 25_win64_mkl + constrains: + - blas * mkl + - libcblas 3.9.0 25_win64_mkl + - liblapacke 3.9.0 25_win64_mkl + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 3736560 + timestamp: 1729643588182 +- kind: conda + name: libllvm14 + version: 14.0.6 + build: hcd5def8_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda + sha256: 225cc7c3b20ac1db1bdb37fa18c95bf8aecef4388e984ab2f7540a9f4382106a + md5: 73301c133ded2bf71906aa2104edae8b + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 31484415 + timestamp: 1690557554081 +- kind: conda + name: libllvm14 + version: 14.0.6 + build: hd1a9a77_4 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda + sha256: 6f603914fe8633a615f0d2f1383978eb279eeb552079a78449c9fbb43f22a349 + md5: 9f3dce5d26ea56a9000cd74c034582bd + depends: + - libcxx >=15 + - libzlib >=1.2.13,<2.0.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 20571387 + timestamp: 1690559110016 +- kind: conda + name: libllvm17 + version: 17.0.6 + build: h5090b49_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm17-17.0.6-h5090b49_2.conda + sha256: 5829e490e395d85442fb6c7edb0ec18d1a5bb1bc529919a89337d34235205064 + md5: 443b26505722696a9535732bc2a07576 + depends: + - __osx >=11.0 + - libcxx >=16 + - libxml2 >=2.12.7,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 24612870 + timestamp: 1718320971519 +- kind: conda + name: libllvm17 + version: 17.0.6 + build: hc9dba70_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm17-17.0.6-hc9dba70_2.conda + sha256: dac3e9b8d32edeefbde05875f219c91cc40b001ded81bb4d367235f789313e21 + md5: 008e8b2fa164520d6245dd818f971600 + depends: + - 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 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 36650063 + timestamp: 1718324111448 +- kind: conda + name: libllvm19 + version: 19.1.3 + build: ha7bfdaf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.3-ha7bfdaf_0.conda + sha256: 44502d37011472549367110a58ea78ff6c627f9436d1e4ebb5b34f80763dbf2a + md5: 8bd654307c455162668cd66e36494000 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - libxml2 >=2.13.4,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 40124530 + timestamp: 1730301303455 +- kind: conda + name: libllvm19 + version: 19.1.3 + build: haf57ff0_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm19-19.1.3-haf57ff0_0.conda + sha256: 174e24adb8bf5e55c6871057c6ac6aace11a043afd0528a7314c4f641c176444 + md5: 25dd0e37da590d639d35e1b6a66a4a96 + depends: + - __osx >=11.0 + - libcxx >=17 + - libxml2 >=2.13.4,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 26881534 + timestamp: 1730291029268 +- kind: conda + name: libnetcdf + version: 4.9.2 + build: nompi_h135f659_114 + build_number: 114 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda + sha256: 055572a4c8a1c3f9ac60071ee678f5ea49cfd7ac60a636d817988a6f9d6de6ae + md5: a908e463c710bd6b10a9eaa89fdf003c + depends: + - blosc >=1.21.5,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.8.0,<9.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libxml2 >=2.12.7,<3.0a0 + - libzip >=1.10.1,<2.0a0 + - libzlib >=1.2.13,<2.0a0 + - openssl >=3.3.1,<4.0a0 + - zlib + - zstd >=1.5.6,<1.6.0a0 + license: MIT + license_family: MIT + purls: [] + size: 849172 + timestamp: 1717671645362 +- kind: conda + name: libnetcdf + version: 4.9.2 + build: nompi_h2564987_115 + build_number: 115 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h2564987_115.conda + sha256: 77d9536095a076414b787a0c2497bb35fcd72f71eb899fae5acb9853a64b4ec4 + md5: c5ce70b76c77a6c9a3107be8d8e8ab0b + depends: + - __glibc >=2.17,<3.0.a0 + - blosc >=1.21.6,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.4,<1.14.5.0a0 + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libxml2 >=2.12.7,<3.0a0 + - libzip >=1.11.1,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - zlib + - zstd >=1.5.6,<1.6.0a0 + license: MIT + license_family: MIT + purls: [] + size: 835104 + timestamp: 1728055792846 +- kind: conda + name: libnetcdf + version: 4.9.2 + build: nompi_h853a48d_115 + build_number: 115 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_h853a48d_115.conda + sha256: 8d7c9ede65241de34aa5aa4c1cf04964fd6e027e2a7d4e8cce654b2350c0f2d3 + md5: 94b3a12456a4e257e65c6b962c785190 + depends: + - __osx >=11.0 + - blosc >=1.21.6,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.4,<1.14.5.0a0 + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libxml2 >=2.12.7,<3.0a0 + - libzip >=1.11.1,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - zlib + - zstd >=1.5.6,<1.6.0a0 + license: MIT + license_family: MIT + purls: [] + size: 678786 + timestamp: 1728055979264 +- kind: conda + name: libnetcdf + version: 4.9.2 + build: nompi_h92078aa_114 + build_number: 114 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h92078aa_114.conda + sha256: 111fb98bf02e717c69eb78388a5b03dc7af05bfa840ac51c2b31beb70bf42318 + md5: 819507db3802d9a179de4d161285c22f + depends: + - blosc >=1.21.5,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.8.0,<9.0a0 + - libxml2 >=2.12.7,<3.0a0 + - libzip >=1.10.1,<2.0a0 + - libzlib >=1.2.13,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zlib + - zstd >=1.5.6,<1.6.0a0 + license: MIT + license_family: MIT + purls: [] + size: 624793 + timestamp: 1717672198533 +- kind: conda + name: libnetcdf + version: 4.9.2 + build: nompi_he239ae6_115 + build_number: 115 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_he239ae6_115.conda + sha256: bdf67732b92836287bdf6618093dada2ec20f2be4102d031a80f736e082cc410 + md5: 582fd971ca8f54b59f007f2c1f1a113e + depends: + - blosc >=1.21.6,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.4,<1.14.5.0a0 + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.10.1,<9.0a0 + - libxml2 >=2.12.7,<3.0a0 + - libzip >=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 + - zlib + - zstd >=1.5.6,<1.6.0a0 + license: MIT + license_family: MIT + purls: [] + size: 625327 + timestamp: 1728056291410 +- kind: conda + name: libnetcdf + version: 4.9.2 + build: nompi_he469be0_114 + build_number: 114 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda + sha256: aeac591ba859f9cf775993e8b7f21e50803405d41ef363dc4981d114e8df88a8 + md5: 8fd3ce6d910ed831c130c391c4364d3f + depends: + - __osx >=11.0 + - blosc >=1.21.5,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - hdf4 >=4.2.15,<4.2.16.0a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libaec >=1.1.3,<2.0a0 + - libcurl >=8.8.0,<9.0a0 + - libcxx >=16 + - libxml2 >=2.12.7,<3.0a0 + - libzip >=1.10.1,<2.0a0 + - libzlib >=1.2.13,<2.0a0 + - openssl >=3.3.1,<4.0a0 + - zlib + - zstd >=1.5.6,<1.6.0a0 + license: MIT + license_family: MIT + purls: [] + size: 681051 + timestamp: 1717671966211 +- kind: conda + name: libnghttp2 + version: 1.64.0 + build: h161d5f1_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975 + md5: 19e57602824042dfd0446292ef90488b + depends: + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.32.3,<2.0a0 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 647599 + timestamp: 1729571887612 +- kind: conda + name: libnghttp2 + version: 1.64.0 + build: h6d7220d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + sha256: 00cc685824f39f51be5233b54e19f45abd60de5d8847f1a56906f8936648b72f + md5: 3408c02539cee5f1141f9f11450b6a51 + depends: + - __osx >=11.0 + - c-ares >=1.34.2,<2.0a0 + - libcxx >=17 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 566719 + timestamp: 1729572385640 +- kind: conda + name: libnl + version: 3.10.0 + build: h4bc722e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnl-3.10.0-h4bc722e_0.conda + sha256: 51593540670434d304a14e31f783cedcaae8a8b4101e9d0d59a7d4051397cb04 + md5: 6221e705f55cf0533f0777ae54ad86c6 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: LGPL-2.1-or-later + license_family: LGPL + purls: [] + size: 734296 + timestamp: 1721460768363 +- kind: conda + name: libnsl + version: 2.0.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 33408 + timestamp: 1697359010159 +- kind: conda + name: libntlm + version: '1.4' + build: h7f98852_1002 + build_number: 1002 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libntlm-1.4-h7f98852_1002.tar.bz2 + sha256: 63244b73156033ea3b7c2a1581526e79b4670349d64b15f645dcdb12de441d1a + md5: e728e874159b042d92b90238a3cb0dc2 + depends: + - libgcc-ng >=9.3.0 + license: LGPL-2.1-or-later + purls: [] + size: 33201 + timestamp: 1609781914458 +- kind: conda + name: libogg + version: 1.3.5 + build: h2466b09_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_0.conda + sha256: fcffdf32c620569738b85c98ddd25e1c84c8add80cd732743d90d469b7b532bb + md5: 44a4d173e62c5ed6d715f18ae7c46b7a + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 35459 + timestamp: 1719302192495 +- kind: conda + name: libogg + version: 1.3.5 + build: h4ab18f5_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.5-h4ab18f5_0.conda + sha256: 5eda3fe92b99b25dd4737226a9485078ab405672d9f621be75edcb68f1e9026d + md5: 601bfb4b3c6f0b844443bb81a56651e0 + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 205914 + timestamp: 1719301575771 +- kind: conda + name: libogg + version: 1.3.5 + build: h99b78c6_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libogg-1.3.5-h99b78c6_0.conda + sha256: 685f73b7241978007dfe0cecb9cae46c6a26d87d192b6f85a09eb65023c0b99e + md5: 57b668b9b78dea2c08e44bb2385d57c0 + depends: + - __osx >=11.0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 205451 + timestamp: 1719301708541 +- kind: conda + name: libopenblas + version: 0.3.28 + build: openmp_h517c56d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_h517c56d_0.conda + sha256: 43d69d072f1a3774994d31f9d3241cfa0f1c5560b536989020d7cde30fbef956 + md5: 9306fd5b6b39b2b7e13c1d50c3fee354 + depends: + - __osx >=11.0 + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - llvm-openmp >=16.0.6 + constrains: + - openblas >=0.3.28,<0.3.29.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 1764160 - timestamp: 1696451646350 + size: 2934061 + timestamp: 1723931625423 - kind: conda - name: liblapack - version: 3.9.0 - build: 22_linux64_openblas - build_number: 22 + name: libopenblas + version: 0.3.28 + build: pthreads_h94d23a6_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda - sha256: db246341d42f9100d45adeb1a7ba8b1ef5b51ceb9056fd643e98046a3259fde6 - md5: b083767b6c877e24ee597d93b87ab838 + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_0.conda + sha256: 1e41a6d63e07be996238a1e840a426f86068956a45e0c0bb24e49a8dad9874c1 + md5: 9ebc9aedafaa2515ab247ff6bb509458 depends: - - libblas 3.9.0 22_linux64_openblas + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=14 + - libgfortran-ng + - libgfortran5 >=14.1.0 constrains: - - libcblas 3.9.0 22_linux64_openblas - - blas * openblas - - liblapacke 3.9.0 22_linux64_openblas + - openblas >=0.3.28,<0.3.29.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 14471 - timestamp: 1712542277696 + size: 5572213 + timestamp: 1723932528810 - kind: conda - name: liblapack - version: 3.9.0 - build: 22_osx64_openblas - build_number: 22 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-22_osx64_openblas.conda - sha256: e36744f3e780564d6748b5dd05e15ad6a1af9184cf32ab9d1304c13a6bc3e16b - md5: f21b282ff7ba14df6134a0fe6ab42b1b + name: libopengl + version: 1.7.0 + build: ha4b6fd6_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_1.conda + sha256: b367afa1b63462b7bd64101dc8156470e9932a3f703c3423be26dd5a539a2ec2 + md5: e12057a66af8f2a38a839754ca4481e9 depends: - - libblas 3.9.0 22_osx64_openblas - constrains: - - liblapacke 3.9.0 22_osx64_openblas - - blas * openblas - - libcblas 3.9.0 22_osx64_openblas - license: BSD-3-Clause - license_family: BSD + - __glibc >=2.17,<3.0.a0 + - libglvnd 1.7.0 ha4b6fd6_1 + license: LicenseRef-libglvnd purls: [] - size: 14657 - timestamp: 1712542322711 + size: 50219 + timestamp: 1727968613527 - kind: conda - name: liblapack - version: 3.9.0 - build: 22_osxarm64_openblas - build_number: 22 + name: libopus + version: 1.3.1 + build: h27ca646_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-22_osxarm64_openblas.conda - sha256: 2b1b24c98d15a6a3ad54cf7c8fef1ddccf84b7c557cde08235aaeffd1ff50ee8 - md5: f2794950bc005e123b2c21f7fa3d7a6e - depends: - - libblas 3.9.0 22_osxarm64_openblas - constrains: - - blas * openblas - - liblapacke 3.9.0 22_osxarm64_openblas - - libcblas 3.9.0 22_osxarm64_openblas + url: https://conda.anaconda.org/conda-forge/osx-arm64/libopus-1.3.1-h27ca646_1.tar.bz2 + sha256: e9912101a58cbc609a1917c5289f3bd1f600c82ed3a1c90a6dd4ca02df77958a + md5: 3d0dbee0ccd2f6d6781d270313627b62 license: BSD-3-Clause license_family: BSD purls: [] - size: 14730 - timestamp: 1712542435551 + size: 252854 + timestamp: 1606823635137 - kind: conda - name: liblapack - version: 3.9.0 - build: 22_win64_mkl - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_mkl.conda - sha256: 8b28b361a13819ed83a67d3bfdde750a13bc8b50b9af26d94fd61616d0f2d703 - md5: c752cc2af9f3d8d7b2fdebb915a33ef7 + name: libopus + version: 1.3.1 + build: h7f98852_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 + sha256: 0e1c2740ebd1c93226dc5387461bbcf8142c518f2092f3ea7551f77755decc8f + md5: 15345e56d527b330e1cacbdf58676e8f depends: - - libblas 3.9.0 22_win64_mkl - constrains: - - liblapacke 3.9.0 22_win64_mkl - - blas * mkl - - libcblas 3.9.0 22_win64_mkl + - libgcc-ng >=9.3.0 license: BSD-3-Clause license_family: BSD purls: [] - size: 5182500 - timestamp: 1712543085027 + size: 260658 + timestamp: 1606823578035 - kind: conda - name: liblapack - version: 3.9.0 - build: 22_win64_openblas - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-22_win64_openblas.conda - sha256: 245c757dbe420e6b620444feb1c1af8f2afd2210342a0463a8fa80c0bed05977 - md5: 7f69d8f99e92832f1df1d99c8199f3c3 + name: libparquet + version: 15.0.2 + build: h8aa6169_39_cpu + build_number: 39 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-15.0.2-h8aa6169_39_cpu.conda + sha256: ae7fc580fa4ed23e01b7ff0cc193efb62c4553f284185a6583961b5bfab0043a + md5: 5547a0906a9bf532648d792d4c6f5486 depends: - - libblas 3.9.0 22_win64_openblas - constrains: - - libcblas 3.9.0 22_win64_openblas - - liblapacke 3.9.0 22_win64_openblas - - blas * openblas - track_features: - - blas_openblas - license: BSD-3-Clause - license_family: BSD + - __osx >=11.0 + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libcxx >=17 + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.3.2,<4.0a0 + license: Apache-2.0 + license_family: APACHE purls: [] - size: 3974148 - timestamp: 1712542790634 + size: 881304 + timestamp: 1729871254724 - kind: conda - name: liblapacke - version: 3.9.0 - build: 22_win64_openblas - build_number: 22 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/liblapacke-3.9.0-22_win64_openblas.conda - sha256: c3f8ce8cd9765e9c14a986d218b368189a843daf98ae466668b1aed2b455ca52 - md5: 7c6d911d2d2b4e4e65197911947f65e1 + name: libparquet + version: 15.0.2 + build: hd082c85_39_cpu + build_number: 39 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libparquet-15.0.2-hd082c85_39_cpu.conda + sha256: 3571ce2cd857d21b181468e4b7f7984f76b25f04145c4ee8a1be5f3309481dd1 + md5: 7be9e0568e5b36184d92fc9853a7c277 depends: - - libblas 3.9.0 22_win64_openblas - - libcblas 3.9.0 22_win64_openblas - - liblapack 3.9.0 22_win64_openblas - constrains: - - blas * openblas - track_features: - - blas_openblas - license: BSD-3-Clause - license_family: BSD + - __glibc >=2.17,<3.0.a0 + - gflags >=2.2.2,<2.3.0a0 + - libarrow 15.0.2 h1972583_39_cpu + - libgcc >=13 + - libstdcxx >=13 + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.3.2,<4.0a0 + license: Apache-2.0 + license_family: APACHE purls: [] - size: 3975832 - timestamp: 1712542821933 + size: 1202559 + timestamp: 1729869576170 - kind: conda - name: libllvm14 - version: 14.0.6 - build: hc8e404f_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libllvm14-14.0.6-hc8e404f_4.conda - sha256: 0df3902a300cfe092425f86144d5e00ef67be3cd1cc89fd63084d45262a772ad - md5: ed06753e2ba7c66ed0ca7f19578fcb68 + name: libparquet + version: 16.1.0 + build: h59f2d37_36_cpu + build_number: 36 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h59f2d37_36_cpu.conda + sha256: 80ce6dbe0348cd0671b6894397e7aa4295e9120041334b24d0f9fdc51bca481f + md5: def4e6d143db18c7137e82d778d3b2cd depends: - - libcxx >=15 - - libzlib >=1.2.13,<2.0.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + - libarrow 16.1.0 h80430d3_36_cpu + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.3.2,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 + license: Apache-2.0 + license_family: APACHE purls: [] - size: 22467131 - timestamp: 1690563140552 + size: 792724 + timestamp: 1729856040668 - kind: conda - name: libllvm14 - version: 14.0.6 - build: hcd5def8_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda - sha256: 225cc7c3b20ac1db1bdb37fa18c95bf8aecef4388e984ab2f7540a9f4382106a - md5: 73301c133ded2bf71906aa2104edae8b + name: libparquet + version: 18.0.0 + build: h59f2d37_0_cpu + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libparquet-18.0.0-h59f2d37_0_cpu.conda + sha256: 4247e9446df73679d22442f8ef72d4bc1eb90fb1663fec582fe557fdcb96ad06 + md5: d29748d49a29f0c7ce4fc5d82285c9ae depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + - libarrow 18.0.0 h80430d3_0_cpu + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.3.2,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.40.33810 + license: Apache-2.0 + license_family: APACHE purls: [] - size: 31484415 - timestamp: 1690557554081 + size: 818376 + timestamp: 1730157206082 - kind: conda - name: libllvm14 - version: 14.0.6 - build: hd1a9a77_4 - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm14-14.0.6-hd1a9a77_4.conda - sha256: 6f603914fe8633a615f0d2f1383978eb279eeb552079a78449c9fbb43f22a349 - md5: 9f3dce5d26ea56a9000cd74c034582bd + name: libparquet + version: 18.0.0 + build: h6bd9018_0_cpu + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libparquet-18.0.0-h6bd9018_0_cpu.conda + sha256: e6bc15680d5c0bad21d7292e1c1f1a6cd82c2226cba652df3f765f460e33e015 + md5: f9efb8ef19962dc9d87b29e667a13287 depends: - - libcxx >=15 - - libzlib >=1.2.13,<2.0.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + - __glibc >=2.17,<3.0.a0 + - libarrow 18.0.0 ha5db6c2_0_cpu + - libgcc >=13 + - libstdcxx >=13 + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.3.2,<4.0a0 + license: Apache-2.0 + license_family: APACHE purls: [] - size: 20571387 - timestamp: 1690559110016 + size: 1212570 + timestamp: 1730155645262 - kind: conda - name: libllvm15 - version: 15.0.7 - build: h2621b3d_4 - build_number: 4 + name: libparquet + version: 18.0.0 + build: hda0ea68_0_cpu subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm15-15.0.7-h2621b3d_4.conda - sha256: 63e22ccd4c1b80dfc7da169c65c62a878a46ef0e5771c3b0c091071e718ae1b1 - md5: 8d7f7a7286d99a2671df2619cb3bfb2c + url: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-18.0.0-hda0ea68_0_cpu.conda + sha256: 2b691ea4f0150dd1abbbd0321d3ec92315be9ad07d1e9f575175f042fbdddbe1 + md5: b24b66fb60eacddddaa69532a7f37776 depends: - - libcxx >=16 - - libxml2 >=2.12.1,<3.0.0a0 - - libzlib >=1.2.13,<2.0.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + - __osx >=11.0 + - libarrow 18.0.0 h6fea68a_0_cpu + - libcxx >=18 + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.3.2,<4.0a0 + license: Apache-2.0 + license_family: APACHE purls: [] - size: 22049607 - timestamp: 1701372072765 + size: 882091 + timestamp: 1730156351893 - kind: conda - name: libllvm15 - version: 15.0.7 - build: hb3ce162_4 - build_number: 4 + name: libpciaccess + version: '0.18' + build: hd590300_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda - sha256: e71584c0f910140630580fdd0a013029a52fd31e435192aea2aa8d29005262d1 - md5: 8a35df3cbc0c8b12cc8af9473ae75eef + url: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hd590300_0.conda + sha256: c0a30ac74eba66ea76a4f0a39acc7833f5ed783a632ca3bb6665b2d81aabd2fb + md5: 48f4330bfcd959c3cfb704d424903c82 depends: - 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 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + license: MIT + license_family: MIT purls: [] - size: 33321457 - timestamp: 1701375836233 + size: 28361 + timestamp: 1707101388552 - kind: conda - name: libllvm15 - version: 15.0.7 - build: hbedff68_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libllvm15-15.0.7-hbedff68_4.conda - sha256: a0598cc166e92c6c63e58a7eaa184fa0b8b467693b965dbe19f1c9ff37e134c3 - md5: bdc80cf2aa69d6eb8dd101dfd804db07 - depends: - - libcxx >=16 - - libxml2 >=2.12.1,<3.0.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + name: libpdal + version: 2.8.0 + build: h57928b3_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-2.8.0-h57928b3_1.conda + sha256: 48045b5e953b20ae75a666d22fc38dd1b9b81bc12b7cbf6feffabc5877cdbc5a + md5: 88c186ba6d190a2c3e0a507f9de17b7b + depends: + - libpdal-arrow 2.8.0 hc365f4b_1 + - libpdal-draco 2.8.0 he0c23c2_1 + - libpdal-e57 2.8.0 hfb18a77_1 + - libpdal-hdf 2.8.0 h6c43f9b_1 + - libpdal-icebridge 2.8.0 h6c43f9b_1 + - libpdal-nitf 2.8.0 hf85b8ca_1 + - libpdal-pgpointcloud 2.8.0 h2951f3b_1 + - libpdal-tiledb 2.8.0 h61a99be_1 + - libpdal-trajectory 2.8.0 h8b0cdd8_1 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 11488 + timestamp: 1726669730513 +- kind: conda + name: libpdal + version: 2.8.0 + build: ha770c72_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-2.8.0-ha770c72_1.conda + sha256: 72a25898964b213468311cafc37dde9751e216449051282da2cc372089758958 + md5: 2fa4e341795712974f5f340449c12b90 + depends: + - libpdal-arrow 2.8.0 h8bbc2ab_1 + - libpdal-cpd 2.8.0 h5888daf_1 + - libpdal-draco 2.8.0 h5888daf_1 + - libpdal-e57 2.8.0 h258f5e6_1 + - libpdal-hdf 2.8.0 hf8d3e68_1 + - libpdal-icebridge 2.8.0 hf8d3e68_1 + - libpdal-nitf 2.8.0 h86beebd_1 + - libpdal-pgpointcloud 2.8.0 hda54c46_1 + - libpdal-tiledb 2.8.0 h72bbe06_1 + - libpdal-trajectory 2.8.0 h8c7babf_1 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 23755109 - timestamp: 1701376376564 + size: 11064 + timestamp: 1726668337613 - kind: conda - name: libllvm18 - version: 18.1.8 - build: h5090b49_0 + name: libpdal + version: 2.8.0 + build: hce30654_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm18-18.1.8-h5090b49_0.conda - sha256: b1854f8677d5f4cd6f89614e5f54b22e87cb9974f7fde62e5fa25ec8118c0c75 - md5: 991c64a2ca78e3d719eea5106467e48b - depends: - - __osx >=11.0 - - libcxx >=16 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-2.8.0-hce30654_1.conda + sha256: 0c92d59945eb19e78d3bcef27b7f76329ec47687e20feb097525388ea2d0f288 + md5: e8c64e1efe326c5c1b6e4911370a0ec3 + depends: + - libpdal-arrow 2.8.0 h7e7b986_1 + - libpdal-cpd 2.8.0 hf9b8971_1 + - libpdal-draco 2.8.0 hf9b8971_1 + - libpdal-e57 2.8.0 hcfda94f_1 + - libpdal-hdf 2.8.0 h8edbb62_1 + - libpdal-icebridge 2.8.0 h8edbb62_1 + - libpdal-nitf 2.8.0 h9261fd9_1 + - libpdal-pgpointcloud 2.8.0 hf47318e_1 + - libpdal-tiledb 2.8.0 hcc0b866_1 + - libpdal-trajectory 2.8.0 h8a7a061_1 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 25775169 - timestamp: 1718823975660 + size: 11213 + timestamp: 1726668988106 - kind: conda - name: libllvm18 - version: 18.1.8 - build: h9ce406d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libllvm18-18.1.8-h9ce406d_0.conda - sha256: 6662f6bc9c213650d05c0339e271456b8deb1e7c9c217f2bba47ed3ae67c5066 - md5: b96aa2fc3b13c2856433c3ade7c95101 + name: libpdal-arrow + version: 2.8.0 + build: h7e7b986_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-arrow-2.8.0-h7e7b986_1.conda + sha256: 6654f54e18328d53874ed3c6227b9b33b9eb00c1d2c0f76a45aa94e07dc87691 + md5: 38875043ff3b16d031b4cc2708ac9fd8 depends: - - __osx >=10.13 - - libcxx >=16 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + - __osx >=11.0 + - libarrow >=15.0.2,<16.0a0 + - libarrow-dataset >=15.0.2,<16.0a0 + - libcxx >=17 + - libgdal-arrow-parquet + - libparquet >=15.0.2,<16.0a0 + - libpdal-core 2.8.0 he5fba2a_1 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 27578606 - timestamp: 1718827471656 + size: 152456 + timestamp: 1726668384553 - kind: conda - name: libllvm18 - version: 18.1.8 - build: hc9dba70_0 + name: libpdal-arrow + version: 2.8.0 + build: h8bbc2ab_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.8-hc9dba70_0.conda - sha256: e29a5f79a746f33a73fe540ae46eaaf8bbb64abceeb9f056347d9f2112b8e799 - md5: f94ed0c5953c78dcca7adb953f4c5bfb + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-arrow-2.8.0-h8bbc2ab_1.conda + sha256: d3d245623d203cf25c01c5ef27e3bae581f8e8cd5c80c4b2214e191b5007a620 + md5: d69b504b8c13f9c2f3a19dd73ce57321 depends: - - 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 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache + - __glibc >=2.17,<3.0.a0 + - libarrow >=15.0.2,<16.0a0 + - libarrow-dataset >=15.0.2,<16.0a0 + - libgcc >=13 + - libgdal-arrow-parquet + - libparquet >=15.0.2,<16.0a0 + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 38397164 - timestamp: 1718831290770 + size: 184183 + timestamp: 1726667935401 - kind: conda - name: libnetcdf - version: 4.9.2 - build: nompi_h135f659_114 - build_number: 114 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h135f659_114.conda - sha256: 055572a4c8a1c3f9ac60071ee678f5ea49cfd7ac60a636d817988a6f9d6de6ae - md5: a908e463c710bd6b10a9eaa89fdf003c + name: libpdal-arrow + version: 2.8.0 + build: hc365f4b_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-arrow-2.8.0-hc365f4b_1.conda + sha256: f3b6da18fcfce385e1bbb83a0dc0879eee8c1d1c975388b95dad39692b1dc031 + md5: b6222b5b45a0dc0fdc2979bea700df2c depends: - - blosc >=1.21.5,<2.0a0 - - bzip2 >=1.0.8,<2.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libaec >=1.1.3,<2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libxml2 >=2.12.7,<3.0a0 - - libzip >=1.10.1,<2.0a0 - - libzlib >=1.2.13,<2.0a0 - - openssl >=3.3.1,<4.0a0 - - zlib - - zstd >=1.5.6,<1.6.0a0 - license: MIT - license_family: MIT + - libarrow >=16.1.0,<16.2.0a0 + - libarrow-dataset >=16.1.0,<16.2.0a0 + - libgdal-arrow-parquet + - libparquet >=16.1.0,<16.2.0a0 + - libpdal-core 2.8.0 hd2cc1dd_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 849172 - timestamp: 1717671645362 + size: 234757 + timestamp: 1726669019903 - kind: conda - name: libnetcdf - version: 4.9.2 - build: nompi_h7334405_114 - build_number: 114 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.2-nompi_h7334405_114.conda - sha256: a4af96274a6c72d97e84dfc728ecc765af300de805d962a835c0841bb6a8f331 - md5: 32ffbe5b0b0134e49f6347f4de8c5dcc + name: libpdal-core + version: 2.8.0 + build: h8f62525_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-core-2.8.0-h8f62525_1.conda + sha256: 94334bce7ae5ca277a8a54e36ca8916d8a354f980b4d60613a9a1e50a4641a1e + md5: 8c2038878af385632292e134bebcc7c6 depends: - - __osx >=10.13 - - blosc >=1.21.5,<2.0a0 - - bzip2 >=1.0.8,<2.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libaec >=1.1.3,<2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - geotiff >=1.7.3,<1.8.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libgdal-core >=3.9.2,<3.10.0a0 + - libstdcxx >=13 - libxml2 >=2.12.7,<3.0a0 - - libzip >=1.10.1,<2.0a0 - - libzlib >=1.2.13,<2.0a0 - - openssl >=3.3.1,<4.0a0 - - zlib + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - proj >=9.5.0,<9.6.0a0 - zstd >=1.5.6,<1.6.0a0 - license: MIT - license_family: MIT + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 726205 - timestamp: 1717671847032 + size: 3571152 + timestamp: 1726667764892 - kind: conda - name: libnetcdf - version: 4.9.2 - build: nompi_h92078aa_114 - build_number: 114 + name: libpdal-core + version: 2.8.0 + build: hd2cc1dd_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.2-nompi_h92078aa_114.conda - sha256: 111fb98bf02e717c69eb78388a5b03dc7af05bfa840ac51c2b31beb70bf42318 - md5: 819507db3802d9a179de4d161285c22f + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-core-2.8.0-hd2cc1dd_1.conda + sha256: 9f620a8db43c5695b48318c27f1a6269313ff2c744e2c818271f9ca6edc6bd89 + md5: 92796e545a6bee35d8f26edabb1ad995 depends: - - blosc >=1.21.5,<2.0a0 - - bzip2 >=1.0.8,<2.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libaec >=1.1.3,<2.0a0 - - libcurl >=8.8.0,<9.0a0 + - geotiff >=1.7.3,<1.8.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgdal-core >=3.9.2,<3.10.0a0 - libxml2 >=2.12.7,<3.0a0 - - libzip >=1.10.1,<2.0a0 - - libzlib >=1.2.13,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - proj >=9.5.0,<9.6.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - - zlib - zstd >=1.5.6,<1.6.0a0 - license: MIT - license_family: MIT + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 624793 - timestamp: 1717672198533 + size: 2143425 + timestamp: 1726668589767 - kind: conda - name: libnetcdf - version: 4.9.2 - build: nompi_he469be0_114 - build_number: 114 + name: libpdal-core + version: 2.8.0 + build: he5fba2a_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.2-nompi_he469be0_114.conda - sha256: aeac591ba859f9cf775993e8b7f21e50803405d41ef363dc4981d114e8df88a8 - md5: 8fd3ce6d910ed831c130c391c4364d3f + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-core-2.8.0-he5fba2a_1.conda + sha256: e7ed584483d967d2dafce69cf98468cf931853ac928aa053c3620505adb067e2 + md5: e0468f0da9f8a8e2066354aa88575803 depends: - __osx >=11.0 - - blosc >=1.21.5,<2.0a0 - - bzip2 >=1.0.8,<2.0a0 - - hdf4 >=4.2.15,<4.2.16.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libaec >=1.1.3,<2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 + - geotiff >=1.7.3,<1.8.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libgdal-core >=3.9.2,<3.10.0a0 - libxml2 >=2.12.7,<3.0a0 - - libzip >=1.10.1,<2.0a0 - - libzlib >=1.2.13,<2.0a0 - - openssl >=3.3.1,<4.0a0 - - zlib + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - proj >=9.5.0,<9.6.0a0 - zstd >=1.5.6,<1.6.0a0 - license: MIT - license_family: MIT + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 681051 - timestamp: 1717671966211 + size: 2244461 + timestamp: 1726667952627 - kind: conda - name: libnghttp2 - version: 1.58.0 - build: h47da74e_1 + name: libpdal-cpd + version: 2.8.0 + build: h5888daf_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda - sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb - md5: 700ac6ea6d53d5510591c4344d5c989a + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-cpd-2.8.0-h5888daf_1.conda + sha256: f0c9fc4f18f2d802c455a14f436003b51b81021bc32c3f4989db91ebc87dc946 + md5: f1fcee65d78802f13305b274e0fa8db8 depends: - - c-ares >=1.23.0,<2.0a0 - - libev >=4.33,<4.34.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 - license: MIT - license_family: MIT + - __glibc >=2.17,<3.0.a0 + - cpd >=0.5.5,<0.6.0a0 + - fgt >=0.4.11,<0.5.0a0 + - libgcc >=13 + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 631936 - timestamp: 1702130036271 + size: 160855 + timestamp: 1726667965940 - kind: conda - name: libnghttp2 - version: 1.58.0 - build: h64cf6d3_1 + name: libpdal-cpd + version: 2.8.0 + build: hf9b8971_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda - sha256: 412fd768e787e586602f8e9ea52bf089f3460fc630f6987f0cbd89b70e9a4380 - md5: faecc55c2a8155d9ff1c0ff9a0fef64f + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-cpd-2.8.0-hf9b8971_1.conda + sha256: 23637ca24038bf8a3411a7965e6f0520526a2e3b02225515ceec6c393273ac29 + md5: 94cefd043fa20fb291c0a33f107946b7 depends: - - __osx >=10.9 - - c-ares >=1.23.0,<2.0a0 - - libcxx >=16.0.6 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.0,<4.0a0 - license: MIT - license_family: MIT + - __osx >=11.0 + - cpd >=0.5.5,<0.6.0a0 + - fgt >=0.4.11,<0.5.0a0 + - libcxx >=17 + - libpdal-core 2.8.0 he5fba2a_1 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 599736 - timestamp: 1702130398536 + size: 132255 + timestamp: 1726668441870 - kind: conda - name: libnghttp2 - version: 1.58.0 - build: ha4dd798_1 + name: libpdal-draco + version: 2.8.0 + build: h5888daf_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-draco-2.8.0-h5888daf_1.conda + sha256: e369143ef39568793f5e6798aec6eab0d18794b3ea74d48d12fdecde69c99081 + md5: e76cc52d457edcc231f1910c7e249e99 + depends: + - __glibc >=2.17,<3.0.a0 + - draco 1.5.7 h00ab1b0_0 + - libgcc >=13 + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 134168 + timestamp: 1726668010532 +- kind: conda + name: libpdal-draco + version: 2.8.0 + build: he0c23c2_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-draco-2.8.0-he0c23c2_1.conda + sha256: a47c3a0009373ddbf46caa2d671e139cac8a294f028f8d020f2ce8a2dff1fc4a + md5: 86d0104b27a31b7f40c78deed20b08f1 + depends: + - draco 1.5.7 h181d51b_0 + - libpdal-core 2.8.0 hd2cc1dd_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 378950 + timestamp: 1726669100100 +- kind: conda + name: libpdal-draco + version: 2.8.0 + build: hf9b8971_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - sha256: fc97aaaf0c6d0f508be313d86c2705b490998d382560df24be918b8e977802cd - md5: 1813e066bfcef82de579a0be8a766df4 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-draco-2.8.0-hf9b8971_1.conda + sha256: d29a14d2cf43ed394212ddf8237dc41a6732947b7540cb2f085aa9122f3726ea + md5: 533a1a2e727c5ebab67cbe4f8e3b051f depends: - - __osx >=10.9 - - c-ares >=1.23.0,<2.0a0 - - libcxx >=16.0.6 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.0,<4.0a0 - license: MIT - license_family: MIT + - __osx >=11.0 + - draco 1.5.7 h2ffa867_0 + - libcxx >=17 + - libpdal-core 2.8.0 he5fba2a_1 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 565451 - timestamp: 1702130473930 + size: 103309 + timestamp: 1726668505307 - kind: conda - name: libnsl - version: 2.0.1 - build: hd590300_0 + name: libpdal-e57 + version: 2.8.0 + build: h258f5e6_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 - md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-e57-2.8.0-h258f5e6_1.conda + sha256: b28925bf9118f6fbf20b47bc8c4fb35761fb009cb9da50cbb7a35573ce01e70f + md5: 9b0d67520f29e8965699db618da095cc depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - license_family: GPL + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + - xerces-c >=3.2.5,<3.3.0a0 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 33408 - timestamp: 1697359010159 + size: 437709 + timestamp: 1726668057342 - kind: conda - name: libogg - version: 1.3.5 - build: h2466b09_0 + name: libpdal-e57 + version: 2.8.0 + build: hcfda94f_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-e57-2.8.0-hcfda94f_1.conda + sha256: 881b8c1214ddbaf51bcf0f8a4084d6438e971160acf1756df0dbb6c767ea5428 + md5: ecd97b410ea17ec749380654eb013fcf + depends: + - __osx >=11.0 + - libcxx >=17 + - libpdal-core 2.8.0 he5fba2a_1 + - xerces-c >=3.2.5,<3.3.0a0 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 320711 + timestamp: 1726668613422 +- kind: conda + name: libpdal-e57 + version: 2.8.0 + build: hfb18a77_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.5-h2466b09_0.conda - sha256: fcffdf32c620569738b85c98ddd25e1c84c8add80cd732743d90d469b7b532bb - md5: 44a4d173e62c5ed6d715f18ae7c46b7a + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-e57-2.8.0-hfb18a77_1.conda + sha256: 96f48382a18b4ad18bf033d9ddf9f73d71a332700fa3023f196ae30f08e312b1 + md5: ebc921e26c528b6801d83703c86671c4 depends: + - libpdal-core 2.8.0 hd2cc1dd_1 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 + - xerces-c >=3.2.5,<3.3.0a0 + constrains: + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 35459 - timestamp: 1719302192495 + size: 299683 + timestamp: 1726669183433 - kind: conda - name: libogg - version: 1.3.5 - build: h4ab18f5_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.5-h4ab18f5_0.conda - sha256: 5eda3fe92b99b25dd4737226a9485078ab405672d9f621be75edcb68f1e9026d - md5: 601bfb4b3c6f0b844443bb81a56651e0 + name: libpdal-hdf + version: 2.8.0 + build: h6c43f9b_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-hdf-2.8.0-h6c43f9b_1.conda + sha256: 0a8d37d20613fef80c09ac6e669a49defc6b6c249e8dd75b1913fc78f73ba9d7 + md5: 99af754992a1f64f77b3d3e6c218ca9e depends: - - libgcc-ng >=12 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgdal-hdf5 + - libpdal-core 2.8.0 hd2cc1dd_1 + - libpdal-icebridge 2.8.0 h6c43f9b_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 205914 - timestamp: 1719301575771 + size: 147253 + timestamp: 1726669726136 - kind: conda - name: libogg - version: 1.3.5 - build: h99b78c6_0 + name: libpdal-hdf + version: 2.8.0 + build: h8edbb62_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libogg-1.3.5-h99b78c6_0.conda - sha256: 685f73b7241978007dfe0cecb9cae46c6a26d87d192b6f85a09eb65023c0b99e - md5: 57b668b9b78dea2c08e44bb2385d57c0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-hdf-2.8.0-h8edbb62_1.conda + sha256: 5ea1c75b001b0c2b4c64227c1455704edb0db76f28bc525f7dd764d6d7a82541 + md5: 2558aa47b12ef407c4f212cef58a9e1d depends: - __osx >=11.0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libcxx >=17 + - libgdal-hdf5 + - libpdal-core 2.8.0 he5fba2a_1 + - libpdal-icebridge 2.8.0 h8edbb62_1 + constrains: + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 205451 - timestamp: 1719301708541 + size: 82807 + timestamp: 1726668982878 - kind: conda - name: libogg - version: 1.3.5 - build: hfdf4475_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libogg-1.3.5-hfdf4475_0.conda - sha256: bebf5797e2a278fd2094f2b0c29ccdfc51d400f4736701108a7e544a49705c64 - md5: 7497372c91a31d3e8d64ce3f1a9632e8 + name: libpdal-hdf + version: 2.8.0 + build: hf8d3e68_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-hdf-2.8.0-hf8d3e68_1.conda + sha256: 8c57fbe60ace9db18288b976e148fb8bf9551ea87a29592f1fe7961868f3b4f6 + md5: 2314e278c515fb47388958165c043f90 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgcc >=13 + - libgdal-hdf5 + - libpdal-core 2.8.0 h8f62525_1 + - libpdal-icebridge 2.8.0 hf8d3e68_1 + - libstdcxx >=13 + constrains: + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 203604 - timestamp: 1719301669662 + size: 102756 + timestamp: 1726668334254 - kind: conda - name: libopenblas - version: 0.3.27 - build: openmp_h517c56d_1 + name: libpdal-icebridge + version: 2.8.0 + build: h6c43f9b_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-icebridge-2.8.0-h6c43f9b_1.conda + sha256: f31c3f498a69d1ec9377493e64fdbe56199af4ba4e7a9b9afe5b685b018c8723 + md5: fbd7876345cabba505db95eaa7b6b34e + depends: + - hdf5 >=1.14.3,<1.14.4.0a0 + - libpdal-core 2.8.0 hd2cc1dd_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 114338 + timestamp: 1726669255363 +- kind: conda + name: libpdal-icebridge + version: 2.8.0 + build: h8edbb62_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda - sha256: 46cfcc592b5255262f567cd098be3c61da6bca6c24d640e878dc8342b0f6d069 - md5: 71b8a34d70aa567a990162f327e81505 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-icebridge-2.8.0-h8edbb62_1.conda + sha256: cdfbc7186a27ad53b34970a849a1e48f6181eaba4cd2333018e474a8ca0635fc + md5: 2f8ccc0df3883b717a0618b4d8a5e0b0 depends: - __osx >=11.0 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - llvm-openmp >=16.0.6 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libcxx >=17 + - libpdal-core 2.8.0 he5fba2a_1 constrains: - - openblas >=0.3.27,<0.3.28.0a0 + - pdal 2.8.0.* license: BSD-3-Clause + license_family: BSD purls: [] - size: 2925328 - timestamp: 1720425811743 + size: 42673 + timestamp: 1726668676236 - kind: conda - name: libopenblas - version: 0.3.27 - build: openmp_h8869122_1 + name: libpdal-icebridge + version: 2.8.0 + build: hf8d3e68_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-icebridge-2.8.0-hf8d3e68_1.conda + sha256: d0cc99b5edfd9237da16ef5d6cd21654ca620373ae0277d4f4b02e7e6c180d2e + md5: caaeb9eb62ff50d7732af51007ba639f + depends: + - __glibc >=2.17,<3.0.a0 + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgcc >=13 + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 52466 + timestamp: 1726668100716 +- kind: conda + name: libpdal-nitf + version: 2.8.0 + build: h86beebd_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.27-openmp_h8869122_1.conda - sha256: 83b0b9d3d09889b3648a81d2c18a2d78c405b03b115107941f0496a8b358ce6d - md5: c0798ad76ddd730dade6ff4dff66e0b5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-nitf-2.8.0-h86beebd_1.conda + sha256: e0aeb73c8a3f77884bd6a2641990206b22dc993173759cc02f8594e01bfaa4e1 + md5: e78f3f53a6ad77c20b4a1eb38facccd3 depends: - - __osx >=10.13 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - llvm-openmp >=16.0.6 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + - nitro 2.7.dev8 h59595ed_0 constrains: - - openblas >=0.3.27,<0.3.28.0a0 + - pdal 2.8.0.* license: BSD-3-Clause + license_family: BSD purls: [] - size: 6047513 - timestamp: 1720426759731 + size: 151721 + timestamp: 1726668150394 - kind: conda - name: libopenblas - version: 0.3.27 - build: pthreads_hac2b453_1 + name: libpdal-nitf + version: 2.8.0 + build: h9261fd9_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda - sha256: 714cb82d7c4620ea2635a92d3df263ab841676c9b183d0c01992767bb2451c39 - md5: ae05ece66d3924ac3d48b4aa3fa96cec + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-nitf-2.8.0-h9261fd9_1.conda + sha256: d8a3042f03fdba46b99fb33f93f5c56d2fa2a83c9903c91c2d29432aa8efe62a + md5: 5a494f62a54e58b29463a5999ba9c574 depends: - - libgcc-ng >=12 - - libgfortran-ng - - libgfortran5 >=12.3.0 + - __osx >=11.0 + - libcxx >=17 + - libpdal-core 2.8.0 he5fba2a_1 + - nitro 2.7.dev8 h13dd4ca_0 constrains: - - openblas >=0.3.27,<0.3.28.0a0 + - pdal 2.8.0.* license: BSD-3-Clause + license_family: BSD purls: [] - size: 5563053 - timestamp: 1720426334043 + size: 109921 + timestamp: 1726668740943 - kind: conda - name: libopenblas - version: 0.3.27 - build: pthreads_hc140b1d_0 + name: libpdal-nitf + version: 2.8.0 + build: hf85b8ca_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libopenblas-0.3.27-pthreads_hc140b1d_0.conda - sha256: 55b39dd44b036675eb41f08dd76606692130c6468773237dc014ff0fa22072b5 - md5: 84ff56055a31cbc0022898f21b35092b + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-nitf-2.8.0-hf85b8ca_1.conda + sha256: dc3c05ebd210b84a631e3e567acd55b1564f8d8f45ab69b0d3cde5b1a85cf072 + md5: 663296b8d06bf1a6825d434a43480b93 depends: - - libflang >=5.0.0,<6.0.0.a0 + - libpdal-core 2.8.0 hd2cc1dd_1 + - nitro 2.7.dev8 h1537add_0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - openblas >=0.3.27,<0.3.28.0a0 + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 3968906 - timestamp: 1712369208698 + size: 200428 + timestamp: 1726669344032 - kind: conda - name: libopus - version: 1.3.1 - build: h27ca646_1 + name: libpdal-pgpointcloud + version: 2.8.0 + build: h2951f3b_1 build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libopus-1.3.1-h27ca646_1.tar.bz2 - sha256: e9912101a58cbc609a1917c5289f3bd1f600c82ed3a1c90a6dd4ca02df77958a - md5: 3d0dbee0ccd2f6d6781d270313627b62 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-pgpointcloud-2.8.0-h2951f3b_1.conda + sha256: 2b7c9890964b4bea44572282106a5e35bfbc4dcdaf8fb320039cb49ebb7db933 + md5: 4d34dfb3ce9236ce6596dbf06a68e325 + depends: + - libgdal-pg + - libgdal-postgisraster + - libpdal-core 2.8.0 hd2cc1dd_1 + - libpq >=16.4,<17.0a0 + - libxml2 >=2.12.7,<3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 252854 - timestamp: 1606823635137 + size: 173904 + timestamp: 1726669428779 - kind: conda - name: libopus - version: 1.3.1 - build: h7f98852_1 + name: libpdal-pgpointcloud + version: 2.8.0 + build: hda54c46_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 - sha256: 0e1c2740ebd1c93226dc5387461bbcf8142c518f2092f3ea7551f77755decc8f - md5: 15345e56d527b330e1cacbdf58676e8f + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-pgpointcloud-2.8.0-hda54c46_1.conda + sha256: 3ab8b9b84849ed61b1c633fab008cf01912c1790399756ccb8b0bd9d2f256ecf + md5: 652f6dbd7e3f387680c644993400f65c depends: - - libgcc-ng >=9.3.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-pg + - libgdal-postgisraster + - libpdal-core 2.8.0 h8f62525_1 + - libpq >=16.4,<17.0a0 + - libstdcxx >=13 + - libxml2 >=2.12.7,<3.0a0 + constrains: + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 260658 - timestamp: 1606823578035 + size: 94407 + timestamp: 1726668200453 - kind: conda - name: libopus - version: 1.3.1 - build: hc929b4f_1 + name: libpdal-pgpointcloud + version: 2.8.0 + build: hf47318e_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libopus-1.3.1-hc929b4f_1.tar.bz2 - sha256: c126fc225bece591a8f010e95ca7d010ea2d02df9251830bec24a19bf823fc31 - md5: 380b9ea5f6a7a277e6c1ac27d034369b + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-pgpointcloud-2.8.0-hf47318e_1.conda + sha256: 0258fa6bdcfe3050c2f5d6f918ec867cdf111d9d5c70077f8374869d5aac8db6 + md5: abf459732a5a85ff2ad546bba943b4f3 + depends: + - __osx >=11.0 + - libcxx >=17 + - libgdal-pg + - libgdal-postgisraster + - libpdal-core 2.8.0 he5fba2a_1 + - libpq >=16.4,<17.0a0 + - libxml2 >=2.12.7,<3.0a0 + constrains: + - pdal 2.8.0.* license: BSD-3-Clause license_family: BSD purls: [] - size: 279983 - timestamp: 1606823633642 + size: 67372 + timestamp: 1726668800977 - kind: conda - name: libparquet - version: 16.1.0 - build: h178134c_13_cpu - build_number: 13 + name: libpdal-tiledb + version: 2.8.0 + build: h61a99be_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libparquet-16.1.0-h178134c_13_cpu.conda - sha256: 6798854ba9ae8ce8bc0e9154bceb42b93d2cbea5d3f3bf8ab43510383234fca6 - md5: 39dce954d7f2f619dff51bbc70d05b61 + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-tiledb-2.8.0-h61a99be_1.conda + sha256: a0026406cec0cd856b529414ce7e71d3ad0e8ff7fabccdd716d16d9d5c522236 + md5: ca16b8fb557fb719384c43b1239ecbf7 depends: - - libarrow 16.1.0 h6c1a0db_13_cpu - - libthrift >=0.19.0,<0.19.1.0a0 - - openssl >=3.3.1,<4.0a0 + - libgdal-tiledb + - libpdal-core 2.8.0 hd2cc1dd_1 + - tiledb >=2.25.0,<2.26.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - license: Apache-2.0 - purls: [] - size: 795154 - timestamp: 1720437610575 -- kind: conda - name: libparquet - version: 16.1.0 - build: h904a336_13_cpu - build_number: 13 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libparquet-16.1.0-h904a336_13_cpu.conda - sha256: 8edaa0172b0346db32070712ad450a233178d472e1ca2566b7356b96462acfbd - md5: 49abc2e9af0a856219635fb865e4d1d3 - depends: - - __osx >=10.13 - - libarrow 16.1.0 h067ad5e_13_cpu - - libcxx >=16 - - libthrift >=0.19.0,<0.19.1.0a0 - - openssl >=3.3.1,<4.0a0 - license: Apache-2.0 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 942112 - timestamp: 1720437170103 + size: 267312 + timestamp: 1726669533550 - kind: conda - name: libparquet - version: 16.1.0 - build: h9e5060d_13_cpu - build_number: 13 + name: libpdal-tiledb + version: 2.8.0 + build: h72bbe06_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libparquet-16.1.0-h9e5060d_13_cpu.conda - sha256: c74685948398d63df19295669b751cfb182608ac0c832494267de48437199e4d - md5: b7a3b2128388bda1338c6ff525e84726 + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-tiledb-2.8.0-h72bbe06_1.conda + sha256: 6ab11b8291c89b0243f98bb5674b413ac40ed8923a12cdb49171c672544107c5 + md5: 441d3a084ea62fc1f83f1352327f5f93 depends: - __glibc >=2.17,<3.0.a0 - - libarrow 16.1.0 h56e7afd_13_cpu - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libthrift >=0.19.0,<0.19.1.0a0 - - openssl >=3.3.1,<4.0a0 - license: Apache-2.0 + - libgcc >=13 + - libgdal-tiledb + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + - tiledb >=2.25.0,<2.26.0a0 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 1182720 - timestamp: 1720437255301 + size: 260308 + timestamp: 1726668248600 - kind: conda - name: libparquet - version: 16.1.0 - build: hcf52c46_13_cpu - build_number: 13 + name: libpdal-tiledb + version: 2.8.0 + build: hcc0b866_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-16.1.0-hcf52c46_13_cpu.conda - sha256: 1c895b0c6ce4792677adbe2f6c4cd6944199235137ffb7e56f353ae884de648e - md5: 03693923d50fd8640eeb19d507ba2048 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-tiledb-2.8.0-hcc0b866_1.conda + sha256: b5b6f4b7585cbd071849e56b0f4ed0183099330fc602cb7483687433fa1c8fbc + md5: 30cb97c90ec23f184973fdee278dd430 depends: - __osx >=11.0 - - libarrow 16.1.0 h71e69af_13_cpu - - libcxx >=16 - - libthrift >=0.19.0,<0.19.1.0a0 - - openssl >=3.3.1,<4.0a0 - license: Apache-2.0 + - libcxx >=17 + - libgdal-tiledb + - libpdal-core 2.8.0 he5fba2a_1 + - tiledb >=2.25.0,<2.26.0a0 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 881542 - timestamp: 1720438421939 + size: 204708 + timestamp: 1726668877381 - kind: conda - name: libpng - version: 1.6.43 - build: h091b4b1_0 + name: libpdal-trajectory + version: 2.8.0 + build: h8a7a061_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.43-h091b4b1_0.conda - sha256: 66c4713b07408398f2221229a1c1d5df57d65dc0902258113f2d9ecac4772495 - md5: 77e684ca58d82cae9deebafb95b1a2b8 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpdal-trajectory-2.8.0-h8a7a061_1.conda + sha256: 11100f684aaf2dd8ee6de6f1d166e2f30d94b5ae83cc253dd3fb4184594d1b7b + md5: 1d6a1e45abc500790414a807e3b684aa depends: - - libzlib >=1.2.13,<2.0.0a0 - license: zlib-acknowledgement + - __osx >=11.0 + - ceres-solver >=2.2.0,<2.3.0a0 + - eigen >=3.4.0,<3.4.1.0a0 + - gflags >=2.2.2,<2.3.0a0 + - glog >=0.7.1,<0.8.0a0 + - libcxx >=17 + - libgdal-core >=3.9.2,<3.10.0a0 + - libpdal-core 2.8.0 he5fba2a_1 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 264177 - timestamp: 1708780447187 + size: 101561 + timestamp: 1726668930151 - kind: conda - name: libpng - version: 1.6.43 - build: h19919ed_0 + name: libpdal-trajectory + version: 2.8.0 + build: h8b0cdd8_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.43-h19919ed_0.conda - sha256: 6ad31bf262a114de5bbe0c6ba73b29ed25239d0f46f9d59700310d2ea0b3c142 - md5: 77e398acc32617a0384553aea29e866b + url: https://conda.anaconda.org/conda-forge/win-64/libpdal-trajectory-2.8.0-h8b0cdd8_1.conda + sha256: 69acc253d76a039c2f41d5dc87d6abd973aceb03badcb83ddc28ab0e9bb256e8 + md5: a68dfbc1e8c058deb0d92a1bba385c13 depends: - - libzlib >=1.2.13,<2.0.0a0 + - ceres-solver >=2.2.0,<2.3.0a0 + - eigen >=3.4.0,<3.4.1.0a0 + - gflags >=2.2.2,<2.3.0a0 + - glog >=0.7.1,<0.8.0a0 + - libgdal-core >=3.9.2,<3.10.0a0 + - libpdal-core 2.8.0 hd2cc1dd_1 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - license: zlib-acknowledgement + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 347514 - timestamp: 1708780763195 + size: 172179 + timestamp: 1726669642970 - kind: conda - name: libpng - version: 1.6.43 - build: h2797004_0 + name: libpdal-trajectory + version: 2.8.0 + build: h8c7babf_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997 - md5: 009981dd9cfcaa4dbfa25ffaed86bcae + url: https://conda.anaconda.org/conda-forge/linux-64/libpdal-trajectory-2.8.0-h8c7babf_1.conda + sha256: defa0f9bdecf7083f4c3f8ef028a3e8bf1b90e0777d104e2a9ff86921d7bd99a + md5: 3dd11c73fa907d0b0746f0cf4d43f440 depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - license: zlib-acknowledgement + - __glibc >=2.17,<3.0.a0 + - ceres-solver >=2.2.0,<2.3.0a0 + - eigen >=3.4.0,<3.4.1.0a0 + - gflags >=2.2.2,<2.3.0a0 + - glog >=0.7.1,<0.8.0a0 + - libgcc >=13 + - libgdal-core >=3.9.2,<3.10.0a0 + - libpdal-core 2.8.0 h8f62525_1 + - libstdcxx >=13 + constrains: + - pdal 2.8.0.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 288221 - timestamp: 1708780443939 + size: 127584 + timestamp: 1726668289456 - kind: conda name: libpng - version: 1.6.43 - build: h92b6c6a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.43-h92b6c6a_0.conda - sha256: 13e646d24b5179e6b0a5ece4451a587d759f55d9a360b7015f8f96eff4524b8f - md5: 65dcddb15965c9de2c0365cb14910532 + version: 1.6.44 + build: h3ca93ac_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.44-h3ca93ac_0.conda + sha256: 0d3d6ff9225f6918ac225e3839c0d91e5af1da08a4ebf59cac1bfd86018db945 + md5: 639ac6b55a40aa5de7b8c1b4d78f9e81 depends: - - 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 license: zlib-acknowledgement purls: [] - size: 268524 - timestamp: 1708780496420 + size: 348933 + timestamp: 1726235196095 - kind: conda - name: libpq - version: '16.3' - build: h4501773_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libpq-16.3-h4501773_0.conda - sha256: 039da003586fdcdb40b8c8ffa25d5ded33316ba3a32ec79afde098a68b8a3acc - md5: 74f18d32d7cc71584c8b05fd1ee555a0 - depends: - - __osx >=10.13 - - krb5 >=1.21.2,<1.22.0a0 - - openssl >=3.3.0,<4.0a0 - license: PostgreSQL + name: libpng + version: 1.6.44 + build: hadc24fc_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.44-hadc24fc_0.conda + sha256: e5b14f7a01c2db4362d8591f42f82f336ed48d5e4079e4d1f65d0c2a3637ea78 + md5: f4cc49d7aa68316213e4b12be35308d1 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: zlib-acknowledgement purls: [] - size: 2398885 - timestamp: 1715267344306 + size: 290661 + timestamp: 1726234747153 - kind: conda - name: libpq - version: '16.3' - build: h7afe498_0 + name: libpng + version: 1.6.44 + build: hc14010f_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.3-h7afe498_0.conda - sha256: ef7c3bca8ee224e7bb282d85fa573180a8ef4eab943c313cb5b799ce506651bf - md5: b0f5315a3f630ade192cb9b569ce54ba + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.44-hc14010f_0.conda + sha256: 38f8759a3eb8060deabd4db41f0f023514d853e46ddcbd0ba21768fc4e563bb1 + md5: fb36e93f0ea6a6f5d2b99984f34b049e depends: - __osx >=11.0 - - krb5 >=1.21.2,<1.22.0a0 - - openssl >=3.3.0,<4.0a0 - license: PostgreSQL + - libzlib >=1.3.1,<2.0a0 + license: zlib-acknowledgement purls: [] - size: 2365596 - timestamp: 1715266849220 + size: 263385 + timestamp: 1726234714421 - kind: conda name: libpq - version: '16.3' - build: ha72fbe1_0 + version: '16.4' + build: h2d7952a_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.3-ha72fbe1_0.conda - sha256: 117ba1e11f07b1ca0671641bd6d1f2e7fc6e27db1c317a0cdb4799ffa69f47db - md5: bac737ae28b79cfbafd515258d97d29e + url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.4-h2d7952a_3.conda + sha256: 51dddb6e5879960a1b9b3c5de0eb970373903977c0fa68a42f86bb7197c695cf + md5: 50e2dddb3417a419cbc2388d0b1c06f7 depends: - - krb5 >=1.21.2,<1.22.0a0 - - libgcc-ng >=12 - - openssl >=3.3.0,<4.0a0 + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 license: PostgreSQL purls: [] - size: 2500439 - timestamp: 1715266400833 + size: 2530022 + timestamp: 1729085009049 - kind: conda name: libpq - version: '16.3' - build: hab9416b_0 + version: '16.4' + build: hab9416b_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libpq-16.3-hab9416b_0.conda - sha256: 5cb998386c86fcbf5c3b929c0ec252e80b56d3f2ef4bc857496f5d06d3b28af1 - md5: 84d2332f3110845bbafbfd7d5311354f + url: https://conda.anaconda.org/conda-forge/win-64/libpq-16.4-hab9416b_3.conda + sha256: 3b9bc19b8a5a2285d28bfeccf574804879c7d9bc8c880b7381d9369ffdb591b9 + md5: ac4afe39379e5cc2bb7465a1cf6cb01c depends: - - krb5 >=1.21.2,<1.22.0a0 - - openssl >=3.3.0,<4.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - openssl >=3.3.2,<4.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: PostgreSQL purls: [] - size: 3456937 - timestamp: 1715267132646 + size: 3458467 + timestamp: 1729085964363 - kind: conda - name: libprotobuf - version: 4.25.3 - build: h08a7969_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.25.3-h08a7969_0.conda - sha256: 70e0eef046033af2e8d21251a785563ad738ed5281c74e21c31c457780845dcd - md5: 6945825cebd2aeb16af4c69d97c32c13 + name: libpq + version: '16.4' + build: hfb0b52a_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.4-hfb0b52a_3.conda + sha256: 7c9766926fa1bfad284d27dc252eeddb189126ea5694da8f8045f1fb55c8f8d3 + md5: ce76e2611f75bfe95efb239bd69be770 depends: - - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 2811207 - timestamp: 1709514552541 -- kind: conda - name: libprotobuf - version: 4.25.3 - build: h4e4d658_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-4.25.3-h4e4d658_0.conda - sha256: 3f126769fb5820387d436370ad48600e05d038a28689fdf9988b64e1059947a8 - md5: 57b7ee4f1fd8573781cfdabaec4a7782 - depends: - - __osx >=10.13 - - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libcxx >=16 - - libzlib >=1.2.13,<2.0.0a0 - license: BSD-3-Clause - license_family: BSD + - __osx >=11.0 + - krb5 >=1.21.3,<1.22.0a0 + - openssl >=3.3.2,<4.0a0 + license: PostgreSQL purls: [] - size: 2216001 - timestamp: 1709514908146 + size: 2411968 + timestamp: 1729085615848 - kind: conda - name: libprotobuf - version: 4.25.3 - build: h503648d_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-4.25.3-h503648d_0.conda - sha256: 5d4c5592be3994657ebf47e52f26b734cc50b0ea9db007d920e2e31762aac216 - md5: 4da7de0ba35777742edf67bf7a1075df + name: libpq + version: '17.0' + build: h04577a9_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpq-17.0-h04577a9_4.conda + sha256: 2f7e72e32f495cfb0492b8091d97dbe1c0700428fe167f3a781bb46e88dee4e5 + md5: 392cae2a58fbcb9db8c2147c6d6d1620 depends: - - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - license_family: BSD + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 + - openldap >=2.6.8,<2.7.0a0 + - openssl >=3.3.2,<4.0a0 + license: PostgreSQL purls: [] - size: 5650604 - timestamp: 1709514804631 + size: 2602277 + timestamp: 1729085182543 - kind: conda name: libprotobuf - version: 4.25.3 - build: hbfab5d5_0 + version: 5.27.5 + build: h53f8970_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-4.25.3-hbfab5d5_0.conda - sha256: d754519abc3ddbdedab2a38d0639170f5347c1573eef80c707f3a8dc5dff706a - md5: 5f70b2b945a9741cba7e6dfe735a02a7 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.27.5-h53f8970_2.conda + sha256: 787d86c041c03d33b24e28df5f881f47c74c3fe9053b791f14616dc51f32a687 + md5: e9d021f82c48bb08b0b2c321b2f7778c depends: + - __osx >=11.0 - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libcxx >=16 - - libzlib >=1.2.13,<2.0.0a0 + - libabseil >=20240722.0,<20240723.0a0 + - libcxx >=17 + - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 2154402 - timestamp: 1709514097574 + size: 2375066 + timestamp: 1727423411355 - kind: conda - name: libre2-11 - version: 2023.09.01 - build: h5a48ba9_2 + name: libprotobuf + version: 5.27.5 + build: h5b01275_2 build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda - sha256: 3f3c65fe0e9e328b4c1ebc2b622727cef3e5b81b18228cfa6cf0955bc1ed8eff - md5: 41c69fba59d495e8cf5ffda48a607e35 + url: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.27.5-h5b01275_2.conda + sha256: 79ac9726cd0a1cb1ba335f7fc7ccac5f679a66d71d9553ca88a805b8787d55ce + md5: 66ed3107adbdfc25ba70454ba11e6d1e depends: + - __glibc >=2.17,<3.0.a0 - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - constrains: - - re2 2023.09.01.* + - libabseil >=20240722.0,<20240723.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 232603 - timestamp: 1708946763521 + size: 2940269 + timestamp: 1727424395109 - kind: conda - name: libre2-11 - version: 2023.09.01 - build: h7b2c953_2 + name: libprotobuf + version: 5.27.5 + build: hcaed137_2 build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.09.01-h7b2c953_2.conda - sha256: c8a0a6e7a627dc9c66ffb8858f8f6d499f67fd269b6636b25dc5169760610f05 - md5: 0b7b2ced046d6b5fe6e9d46b1ee0324c + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-5.27.5-hcaed137_2.conda + sha256: f039a07e6a52542e298ad0cf39d95d261f02c62256c82a60e246f291b2535e1b + md5: 0155746155856bc39091b5242c9b52d7 depends: - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libcxx >=16 - constrains: - - re2 2023.09.01.* + - libabseil >=20240722.0,<20240723.0a0 + - libzlib >=1.3.1,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: [] - size: 171443 - timestamp: 1708947163461 + size: 6090012 + timestamp: 1727424307861 - kind: conda name: libre2-11 - version: 2023.09.01 - build: h81f5012_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2023.09.01-h81f5012_2.conda - sha256: 384b72a09bd4bb29c1aa085110b2f940dba431587ffb4e2c1a28f605887a1867 - md5: c5c36ec64e3c86504728c38b79011d08 + version: 2024.07.02 + build: h2348fd5_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h2348fd5_1.conda + sha256: 6facca42cfc85a05b33e484a8b0df7857cc092db34806946d022270098d8d20f + md5: 5a7065309a66097738be6a06fd04b7ef depends: - - __osx >=10.13 + - __osx >=11.0 - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 - - libcxx >=16 + - libabseil >=20240722.0,<20240723.0a0 + - libcxx >=17 constrains: - - re2 2023.09.01.* + - re2 2024.07.02.* license: BSD-3-Clause license_family: BSD purls: [] - size: 184017 - timestamp: 1708947106275 + size: 165956 + timestamp: 1728779107218 - kind: conda name: libre2-11 - version: 2023.09.01 - build: hf8d8778_2 - build_number: 2 + version: 2024.07.02 + build: h4eb7d71_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2023.09.01-hf8d8778_2.conda - sha256: 04331dad30a076ebb24c683197a5feabf4fd9be0fa0e06f416767096f287f900 - md5: cf54cb5077a60797d53a132d37af25fc + url: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2024.07.02-h4eb7d71_1.conda + sha256: 39908d18620d48406ea3492bf111eface5b3a88c1a2d166c6d513b03f450df5d + md5: d8dbfb066c8e3e85439687613d32057d depends: - libabseil * cxx17* - - libabseil >=20240116.1,<20240117.0a0 + - libabseil >=20240722.0,<20240723.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - re2 2023.09.01.* + - re2 2024.07.02.* license: BSD-3-Clause license_family: BSD purls: [] - size: 256561 - timestamp: 1708947458481 + size: 260860 + timestamp: 1728779502416 - kind: conda - name: librttopo - version: 1.1.0 - build: h31fb324_16 - build_number: 16 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-h31fb324_16.conda - sha256: bf022fa3a85bc38c200c5f97d2e19ac5aa4e97908a6a542e8c13b7d3ff869224 - md5: 1a8e3f8e886499916b8942628e6b6880 + name: libre2-11 + version: 2024.07.02 + build: hbbce691_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_1.conda + sha256: f8ad6a4f6d4fd54ebe3e5e712a01e663222fc57f49d16b6b8b10c30990dafb8f + md5: 2124de47357b7a516c0a3efd8f88c143 depends: - - __osx >=11.0 - - geos >=3.12.2,<3.12.3.0a0 - - libcxx >=16 - license: GPL-2.0-or-later + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libgcc >=13 + - libstdcxx >=13 + constrains: + - re2 2024.07.02.* + license: BSD-3-Clause + license_family: BSD purls: [] - size: 191683 - timestamp: 1720347975066 + size: 211096 + timestamp: 1728778964655 - kind: conda name: librttopo version: 1.1.0 - build: h6c42fcb_16 - build_number: 16 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-h6c42fcb_16.conda - sha256: 417d468a42860bee6d487a39603740c3650fb7eae03b694a9bddada9ef5d1017 - md5: 4476d717f460b45f5033206bbb84f3f5 + build: h97f6797_17 + build_number: 17 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h97f6797_17.conda + sha256: 1fb8a71bdbc236b8e74f0475887786735d5fa6f5d76d9a4135021279c7ff54b8 + md5: e16e9b1333385c502bf915195f421934 depends: - - geos >=3.12.2,<3.12.3.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __glibc >=2.17,<3.0.a0 + - geos >=3.13.0,<3.13.1.0a0 + - libgcc >=13 + - libstdcxx >=13 license: GPL-2.0-or-later + license_family: GPL purls: [] - size: 407420 - timestamp: 1720347953921 + size: 231770 + timestamp: 1727338518657 - kind: conda name: librttopo version: 1.1.0 - build: hc670b87_16 - build_number: 16 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-hc670b87_16.conda - sha256: 65bfd9f8915b1fc2523c58bf556dc2b9ed6127b7c6877ed2841c67b717f6f924 - md5: 3d9f3a2e5d7213c34997e4464d2f938c + build: ha2cf0f4_17 + build_number: 17 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha2cf0f4_17.conda + sha256: 9ff3162d035a1d9022f6145755a70d0c0ce6c9152792402bc42294354c871a17 + md5: ba729f000ea379b76ed2190119d21e13 depends: - - __glibc >=2.17,<3.0.a0 - - geos >=3.12.2,<3.12.3.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __osx >=11.0 + - geos >=3.13.0,<3.13.1.0a0 + - libcxx >=17 license: GPL-2.0-or-later + license_family: GPL purls: [] - size: 231637 - timestamp: 1720347750456 + size: 191064 + timestamp: 1727265842691 - kind: conda name: librttopo version: 1.1.0 - build: he2ba7a0_16 - build_number: 16 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-he2ba7a0_16.conda - sha256: 907f602ad39172a98e3062c0d6616535075f5227435753fe2c843eb10891403c - md5: 80cc407788999eb3cd5a3651981e55fd + build: hd4c2148_17 + build_number: 17 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-hd4c2148_17.conda + sha256: 0f4a1c8ed579f96ccb73245b4002d7152a2a8ecd05a01d49901c5d280561f766 + md5: 06ea16b8c60b4ce1970c06191f8639d4 depends: - - __osx >=10.13 - - geos >=3.12.2,<3.12.3.0a0 - - libcxx >=16 + - geos >=3.13.0,<3.13.1.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: GPL-2.0-or-later + license_family: GPL purls: [] - size: 213675 - timestamp: 1720347819147 + size: 404515 + timestamp: 1727265928370 - kind: conda name: libsanitizer - version: 14.1.0 - build: hcba0ae0_0 + version: 14.2.0 + build: h2a3dede_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.1.0-hcba0ae0_0.conda - sha256: 4aa6f326e5a1badf142c97b0cd92d8b5000a8c87b112e1320581e1b6720b5110 - md5: 88343f89ea4280a79ddd9e755992743d + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.2.0-h2a3dede_1.conda + sha256: 2e2c078118ed7fb614b0cee492b540c59ba74e4adb6d6dd9fa66e96af6d166c1 + md5: 160623b9425f5c04941586da43bd1a9c depends: - - libgcc-ng >=14.1.0 - - libstdcxx-ng >=14.1.0 + - libgcc >=14.2.0 + - libstdcxx >=14.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 4440718 - timestamp: 1719538943338 + size: 4496423 + timestamp: 1729027764926 - kind: conda name: libsecret version: 0.18.8 @@ -21303,61 +19358,48 @@ packages: timestamp: 1695747735668 - kind: conda name: libsodium - version: 1.0.18 - build: h27ca646_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.18-h27ca646_1.tar.bz2 - sha256: 1d95fe5e5e6a0700669aab454b2a32f97289c9ed8d1f7667c2ba98327a6f05bc - md5: 90859688dbca4735b74c02af14c4c793 - license: ISC - purls: [] - size: 324912 - timestamp: 1605135878892 -- kind: conda - name: libsodium - version: 1.0.18 - build: h36c2ea0_1 - build_number: 1 + version: 1.0.20 + build: h4ab18f5_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2 - sha256: 53da0c8b79659df7b53eebdb80783503ce72fb4b10ed6e9e05cc0e9e4207a130 - md5: c3788462a6fbddafdb413a9f9053e58d + url: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda + sha256: 0105bd108f19ea8e6a78d2d994a6d4a8db16d19a41212070d2d1d48a63c34161 + md5: a587892d3c13b6621a6091be690dbca2 depends: - - libgcc-ng >=7.5.0 + - libgcc-ng >=12 license: ISC purls: [] - size: 374999 - timestamp: 1605135674116 + size: 205978 + timestamp: 1716828628198 - kind: conda name: libsodium - version: 1.0.18 - build: h8d14728_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h8d14728_1.tar.bz2 - sha256: ecc463f0ab6eaf6bc5bd6ff9c17f65595de6c7a38db812222ab8ffde0d3f4bc2 - md5: 5c1fb45b5e2912c19098750ae8a32604 + version: 1.0.20 + build: h99b78c6_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda + sha256: fade8223e1e1004367d7101dd17261003b60aa576df6d7802191f8972f7470b1 + md5: a7ce36e284c5faaf93c220dfc39e3abd depends: - - vc >=14.1,<15.0a0 - - vs2015_runtime >=14.16.27012 + - __osx >=11.0 license: ISC purls: [] - size: 713431 - timestamp: 1605135918736 + size: 164972 + timestamp: 1716828607917 - kind: conda name: libsodium - version: 1.0.18 - build: hbcb3906_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.18-hbcb3906_1.tar.bz2 - sha256: 2da45f14e3d383b4b9e3a8bacc95cd2832aac2dbf9fbc70d255d384a310c5660 - md5: 24632c09ed931af617fe6d5292919cab + version: 1.0.20 + build: hc70643c_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda + sha256: 7bcb3edccea30f711b6be9601e083ecf4f435b9407d70fc48fbcf9e5d69a0fc6 + md5: 198bb594f202b205c7d18b936fa4524f + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: ISC purls: [] - size: 528765 - timestamp: 1605135849110 + size: 202344 + timestamp: 1716828757533 - kind: conda name: libspatialindex version: 2.0.0 @@ -21408,191 +19450,140 @@ packages: purls: [] size: 390882 timestamp: 1717795885453 -- kind: conda - name: libspatialindex - version: 2.0.0 - build: hf036a51_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libspatialindex-2.0.0-hf036a51_0.conda - sha256: 3ccd90ec2601ae38d72548c273018d8957afc36ae91d6ac95b1a4fc6fddbb9e1 - md5: bc0fc87124943452971c04425ce8c524 - depends: - - __osx >=10.13 - - libcxx >=16 - license: MIT - license_family: MIT - purls: [] - size: 308990 - timestamp: 1717796241227 - kind: conda name: libspatialite version: 5.1.0 - build: h15fa968_8 - build_number: 8 + build: h1b4f908_11 + build_number: 11 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h15fa968_8.conda - sha256: ba7a298eb6e101ad4c3769c84f0d635c34e677a1879064f41e82598f0a0f5696 - md5: 48502f34f5ba86c1ce192cb30f959dc9 + url: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-h1b4f908_11.conda + sha256: 11d8537d472c5fc25176fda7af6b9aa47f37ba98d0467b77cb713be18ed847ea + md5: 43a7f3df7d100e8fc280e6636680a870 depends: - __glibc >=2.17,<3.0.a0 - freexl >=2 - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 - - libgcc-ng >=12 + - geos >=3.13.0,<3.13.1.0a0 + - libgcc >=13 - librttopo >=1.1.0,<1.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libstdcxx-ng >=12 + - libsqlite >=3.46.1,<4.0a0 + - libstdcxx >=13 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.1,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - sqlite - zlib license: MPL-1.1 + license_family: MOZILLA purls: [] - size: 3494258 - timestamp: 1720363665050 + size: 4045908 + timestamp: 1727341751247 - kind: conda name: libspatialite version: 5.1.0 - build: hcb35769_8 - build_number: 8 + build: h939089a_11 + build_number: 11 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-hcb35769_8.conda - sha256: 98ab122b2a48b70b0845d81cda0f96df11bb89240b17583091b9f39022ad9dab - md5: 68253306f07e185a8420488465cc1c32 + url: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-h939089a_11.conda + sha256: 76da01457b92be57ac0635cec2681c5423a46252713b144391c14aa0dffe61ba + md5: 3ff7b70e2c517f3a43f0b3f87475915a depends: - freexl >=2 - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - librttopo >=1.1.0,<1.2.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.1,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - sqlite - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - zlib license: MPL-1.1 + license_family: MOZILLA purls: [] - size: 8799088 - timestamp: 1720363415346 -- kind: conda - name: libspatialite - version: 5.1.0 - build: hdc25a2c_8 - build_number: 8 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-hdc25a2c_8.conda - sha256: 860aa6eae736e7f280fcded14541512a98def5f49e9206042b452428d9913509 - md5: 51fd57e4f726cea701188184c036c341 - depends: - - __osx >=10.13 - - freexl >=2 - - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 - - libcxx >=16 - - libiconv >=1.17,<2.0a0 - - librttopo >=1.1.0,<1.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.1,<9.5.0a0 - - sqlite - - zlib - license: MPL-1.1 - purls: [] - size: 3147316 - timestamp: 1720363598519 + size: 8293459 + timestamp: 1727341947641 - kind: conda name: libspatialite version: 5.1.0 - build: hf7a34df_8 - build_number: 8 + build: hffd3212_11 + build_number: 11 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hf7a34df_8.conda - sha256: 95353aabfb7e632ca093fed17a9949ef736e8199a542dd0e6a55725d9e245188 - md5: a7ded74ba9c89174f15aa61d0c9b4ef8 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-hffd3212_11.conda + sha256: 593f50ff3828a2760e7aa131233d9ca410bf5bca764e6eac563a4c5b4a57b2d9 + md5: b8e9d3018a9bb0ddf92d68f19e543604 depends: - __osx >=11.0 - freexl >=2 - freexl >=2.0.0,<3.0a0 - - geos >=3.12.2,<3.12.3.0a0 - - libcxx >=16 + - geos >=3.13.0,<3.13.1.0a0 + - libcxx >=17 - libiconv >=1.17,<2.0a0 - librttopo >=1.1.0,<1.2.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - proj >=9.4.1,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - sqlite - zlib license: MPL-1.1 + license_family: MOZILLA purls: [] - size: 3001587 - timestamp: 1720363359540 -- kind: conda - name: libsqlite - version: 3.46.0 - build: h1b8f9f3_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - sha256: 63af1a9e3284c7e4952364bafe7267e41e2d9d8bcc0e85a4ea4b0ec02d3693f6 - md5: 5dadfbc1a567fe6e475df4ce3148be09 - depends: - - __osx >=10.13 - - libzlib >=1.2.13,<2.0a0 - license: Unlicense - purls: [] - size: 908643 - timestamp: 1718050720117 + size: 2984267 + timestamp: 1727341782874 - kind: conda name: libsqlite - version: 3.46.0 - build: h2466b09_0 + version: 3.47.0 + build: h2466b09_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda - sha256: 662bd7e0d63c5b8c31cca19b91649e798319b93568a2ba8d1375efb91eeb251b - md5: 951b0a3a463932e17414cd9f047fa03d + url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + sha256: 3342d6fe787f5830f7e8466d9c65c914bfd8d67220fb5673041b338cbba47afe + md5: 5b1f36012cc3d09c4eb9f24ad0e2c379 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Unlicense purls: [] - size: 876677 - timestamp: 1718051113874 + size: 892175 + timestamp: 1730208431651 - kind: conda name: libsqlite - version: 3.46.0 - build: hde9e2c9_0 + version: 3.47.0 + build: hadc24fc_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 - md5: 18aa975d2094c34aef978060ae7da7d8 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + sha256: 8a9aadf996a2399f65b679c6e7f29139d5059f699c63e6d7b50e20db10c00508 + md5: b6f02b52a174e612e89548f4663ce56a depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 license: Unlicense purls: [] - size: 865346 - timestamp: 1718050628718 + size: 875349 + timestamp: 1730208050020 - kind: conda name: libsqlite - version: 3.46.0 - build: hfb93653_0 + version: 3.47.0 + build: hbaaea75_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda - sha256: 73048f9cb8647d3d3bfe6021c0b7d663e12cffbe9b4f31bd081e713b0a9ad8f9 - md5: 12300188028c9bc02da965128b91b517 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + sha256: 5a96caa566c11e5a5ebdcdb86a0759a7fb27d3c5f42e6a0fd0d6023c1e935d9e + md5: 07a14fbe439eef078cc479deca321161 depends: - __osx >=11.0 - - libzlib >=1.2.13,<2.0a0 + - libzlib >=1.3.1,<2.0a0 license: Unlicense purls: [] - size: 830198 - timestamp: 1718050644825 + size: 837683 + timestamp: 1730208293578 - kind: conda name: libssh2 version: 1.11.0 @@ -21646,57 +19637,58 @@ packages: size: 266806 timestamp: 1685838242099 - kind: conda - name: libssh2 - version: 1.11.0 - build: hd019ec5_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - sha256: f3886763b88f4b24265db6036535ef77b7b77ce91b1cbe588c0fbdd861eec515 - md5: ca3a72efba692c59a90d4b9fc0dfe774 + name: libstdcxx + version: 14.2.0 + build: hc0a3c3a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462 + md5: 234a5554c53625688d51062645337328 depends: - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD + - libgcc 14.2.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 259556 - timestamp: 1685837820566 + size: 3893695 + timestamp: 1729027746910 - kind: conda name: libstdcxx-ng - version: 14.1.0 - build: hc0a3c3a_0 + version: 14.2.0 + build: h4852527_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda - sha256: 88c42b388202ffe16adaa337e36cf5022c63cf09b0405cf06fc6aeacccbe6146 - md5: 1cb187a157136398ddbaae90713e2498 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8 + md5: 8371ac6457591af2cf6159439c1fd051 depends: - - libgcc-ng 14.1.0 h77fa898_0 + - libstdcxx 14.2.0 hc0a3c3a_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 3881307 - timestamp: 1719538923443 + size: 54105 + timestamp: 1729027780628 - kind: conda name: libsystemd0 - version: '255' - build: h3516f8a_1 + version: '256.7' + build: h2774228_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda - sha256: af27b0d225435d03f378a119f8eab6b280c53557a3c84cdb3bb8fd3167615aed - md5: 3366af27f0b593544a6cd453c7932ac5 + url: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-256.7-h2774228_1.conda + sha256: fa9cfbacaa2f14072b07ff9c832a8750627755346a1472f116a94aecea28f08e + md5: ad328c530a12a8798776e5f03942090f depends: - __glibc >=2.17,<3.0.a0 - libcap >=2.69,<2.70.0a0 - - libgcc-ng >=12 - - libgcrypt >=1.10.3,<2.0a0 + - libgcc >=13 + - libgcrypt >=1.11.0,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - xz >=5.2.6,<6.0a0 - - zstd >=1.5.5,<1.6.0a0 + - zstd >=1.5.6,<1.6.0a0 license: LGPL-2.1-or-later purls: [] - size: 402592 - timestamp: 1709568499820 + size: 411535 + timestamp: 1729786797378 - kind: conda name: libtasn1 version: 4.19.0 @@ -21710,188 +19702,152 @@ packages: purls: [] size: 116745 timestamp: 1661325945767 -- kind: conda - name: libtasn1 - version: 4.19.0 - build: hb7f2c08_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libtasn1-4.19.0-hb7f2c08_0.tar.bz2 - sha256: 4197c155fb460fae65288c6c098c39f22495a53838356d29b79b31b8e33486dc - md5: 73f67fb011b4477b101a95a082c74f0a - license: GPL-3.0-or-later - license_family: GPL - purls: [] - size: 118785 - timestamp: 1661325967954 - kind: conda name: libthrift - version: 0.19.0 - build: h026a170_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.19.0-h026a170_1.conda - sha256: b2c1b30d36f0412c0c0313db76a0236d736f3a9b887b8ed16182f531e4b7cb80 - md5: 4b8b21eb00d9019e9fa351141da2a6ac + version: 0.21.0 + build: h0e7cc3e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + sha256: ebb395232973c18745b86c9a399a4725b2c39293c9a91b8e59251be013db42f0 + md5: dcb95c0a98ba9ff737f7ae482aef7833 depends: - - libcxx >=15.0.7 + - __glibc >=2.17,<3.0.a0 - libevent >=2.1.12,<2.1.13.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.3,<4.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: Apache-2.0 license_family: APACHE purls: [] - size: 331154 - timestamp: 1695958512679 + size: 425773 + timestamp: 1727205853307 - kind: conda name: libthrift - version: 0.19.0 - build: h064b379_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.19.0-h064b379_1.conda - sha256: 4346c25ef6e2ff3d0fc93074238508531188ecd0dbea6414f6cb93a7775072c4 - md5: b152655bfad7c2374ff03be0596052b6 + version: 0.21.0 + build: h64651cc_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + sha256: 7a6c7d5f58cbbc2ccd6493b4b821639fdb0701b9b04c737a949e8cb6adf1c9ad + md5: 7ce2bd2f650f8c31ad7ba4c7bfea61b7 depends: - - libcxx >=15.0.7 + - __osx >=11.0 + - libcxx >=17 - libevent >=2.1.12,<2.1.13.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.3,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: Apache-2.0 license_family: APACHE purls: [] - size: 325415 - timestamp: 1695958330036 + size: 324342 + timestamp: 1727206096912 - kind: conda name: libthrift - version: 0.19.0 - build: ha2b3283_1 - build_number: 1 + version: 0.21.0 + build: hbe90ef8_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.19.0-ha2b3283_1.conda - sha256: 89bbc59898c827429a52315c9c0dd888ea73ab1157a8c86098aeae7d13454ac4 - md5: d3432b9d4950e91d2fdf3bed91248ee0 + url: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.21.0-hbe90ef8_0.conda + sha256: 81ca4873ba09055c307f8777fb7d967b5c26291f38095785ae52caed75946488 + md5: 7699570e1f97de7001a7107aabf2d677 depends: - libevent >=2.1.12,<2.1.13.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.3,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: APACHE purls: [] - size: 612342 - timestamp: 1695958519927 + size: 633857 + timestamp: 1727206429954 - kind: conda - name: libthrift - version: 0.19.0 - build: hb90f79a_1 + name: libtiff + version: 4.7.0 + build: he137b08_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.19.0-hb90f79a_1.conda - sha256: 719add2cf20d144ef9962c57cd0f77178259bdb3aae1cded2e2b2b7c646092f5 - md5: 8cdb7d41faa0260875ba92414c487e2d - depends: - - libevent >=2.1.12,<2.1.13.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.3,<4.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 409409 - timestamp: 1695958011498 -- kind: conda - name: libtiff - version: 4.6.0 - build: h07db509_3 - build_number: 3 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.6.0-h07db509_3.conda - sha256: 6df3e129682f6dc43826e5028e1807624b2a7634c4becbb50e56be9f77167f25 - md5: 28c9f8c6dd75666dfb296aea06c49cb8 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-he137b08_1.conda + sha256: 9890121db85f6ef463fe12eb04ef1471176e3ef3b5e2d62e8d6dac713df00df4 + md5: 63872517c98aa305da58a757c443698e depends: + - __glibc >=2.17,<3.0.a0 - lerc >=4.0.0,<5.0a0 - - libcxx >=16 - - libdeflate >=1.20,<1.21.0a0 + - libdeflate >=1.22,<1.23.0a0 + - libgcc >=13 - libjpeg-turbo >=3.0.0,<4.0a0 - - libwebp-base >=1.3.2,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libstdcxx >=13 + - libwebp-base >=1.4.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 - - zstd >=1.5.5,<1.6.0a0 + - zstd >=1.5.6,<1.6.0a0 license: HPND purls: [] - size: 238349 - timestamp: 1711218119201 + size: 428156 + timestamp: 1728232228989 - kind: conda name: libtiff - version: 4.6.0 - build: h129831d_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.6.0-h129831d_3.conda - sha256: f9b35c5ec1aea9a2cc20e9275a0bb8f056482faa8c5a62feb243ed780755ea30 - md5: 568593071d2e6cea7b5fc1f75bfa10ca + version: 4.7.0 + build: hfc51747_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-hfc51747_1.conda + sha256: 902cb9f7f54d17dcfd54ce050b1ce2bc944b9bbd1748913342c2ea1e1140f8bb + md5: eac317ed1cc6b9c0af0c27297e364665 depends: - lerc >=4.0.0,<5.0a0 - - libcxx >=16 - - libdeflate >=1.20,<1.21.0a0 + - libdeflate >=1.22,<1.23.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - - libwebp-base >=1.3.2,<2.0a0 - - 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 - xz >=5.2.6,<6.0a0 - - zstd >=1.5.5,<1.6.0a0 + - zstd >=1.5.6,<1.6.0a0 license: HPND purls: [] - size: 257489 - timestamp: 1711218113053 + size: 978865 + timestamp: 1728232594877 - kind: conda name: libtiff - version: 4.6.0 - build: h1dd3fc0_3 - build_number: 3 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda - sha256: fc3b210f9584a92793c07396cb93e72265ff3f1fa7ca629128bf0a50d5cb15e4 - md5: 66f03896ffbe1a110ffda05c7a856504 + version: 4.7.0 + build: hfce79cd_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-hfce79cd_1.conda + sha256: 97ba24c74750b6e731b3fe0d2a751cda6148b4937d2cc3f72d43bf7b3885c39d + md5: b9abf45f7c64caf3303725f1aa0e9a4d depends: + - __osx >=11.0 - lerc >=4.0.0,<5.0a0 - - libdeflate >=1.20,<1.21.0a0 - - libgcc-ng >=12 + - libcxx >=17 + - libdeflate >=1.22,<1.23.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - - libstdcxx-ng >=12 - - libwebp-base >=1.3.2,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libwebp-base >=1.4.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 - - zstd >=1.5.5,<1.6.0a0 + - zstd >=1.5.6,<1.6.0a0 license: HPND purls: [] - size: 282688 - timestamp: 1711217970425 + size: 366323 + timestamp: 1728232400072 - kind: conda - name: libtiff - version: 4.6.0 - build: hddb2be6_3 - build_number: 3 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-hddb2be6_3.conda - sha256: 2e04844865cfe0286d70482c129f159542b325f4e45774aaff5fbe5027b30b0a - md5: 6d1828c9039929e2f185c5fa9d133018 + name: libudev1 + version: '256.7' + build: hb9d3cd8_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libudev1-256.7-hb9d3cd8_1.conda + sha256: 715df84f56331f127a099023e9537d415bf591d76e2042ee0ab0f1df7f24c723 + md5: 3d407425b9282a83e6a9e5827e7e5d4e depends: - - lerc >=4.0.0,<5.0a0 - - libdeflate >=1.20,<1.21.0a0 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libzlib >=1.2.13,<2.0.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 - license: HPND + - __glibc >=2.17,<3.0.a0 + - libcap >=2.69,<2.70.0a0 + - libgcc >=13 + license: LGPL-2.1-or-later purls: [] - size: 787198 - timestamp: 1711218639912 + size: 141879 + timestamp: 1729786804321 - kind: conda name: libutf8proc version: 2.8.0 @@ -21937,19 +19893,6 @@ packages: purls: [] size: 104389 timestamp: 1667316359211 -- kind: conda - name: libutf8proc - version: 2.8.0 - build: hb7f2c08_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.8.0-hb7f2c08_0.tar.bz2 - sha256: 55a7f96b2802e94def207fdfe92bc52c24d705d139bb6cdb3d936cbe85e1c505 - md5: db98dc3e58cbc11583180609c429c17d - license: MIT - license_family: MIT - purls: [] - size: 98942 - timestamp: 1667316472080 - kind: conda name: libuuid version: 2.38.1 @@ -21965,22 +19908,6 @@ packages: purls: [] size: 33601 timestamp: 1680112270483 -- kind: conda - name: libvorbis - version: 1.3.7 - build: h046ec9c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libvorbis-1.3.7-h046ec9c_0.tar.bz2 - sha256: fbcce1005efcd616e452dea07fe34893d8dd13c65628e74920eeb68ac549faf7 - md5: fbbda1fede0aadaa252f6919148c4ce1 - depends: - - libcxx >=11.0.0 - - libogg >=1.3.4,<1.4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 254208 - timestamp: 1610609857389 - kind: conda name: libvorbis version: 1.3.7 @@ -22031,103 +19958,6 @@ packages: purls: [] size: 254839 timestamp: 1610609991029 -- kind: conda - name: libwebp - version: 1.4.0 - build: h2466b09_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libwebp-1.4.0-h2466b09_0.conda - sha256: ebabb57084e85cd09d529dbb4fe0f4db6cd0d369ad8095342c37b98855fd87fd - md5: 11334a8fb02041b453e2f89a4ae16f8d - depends: - - libwebp-base 1.4.0.* - - libwebp-base >=1.4.0,<2.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 71106 - timestamp: 1714600150795 -- kind: conda - name: libwebp - version: 1.4.0 - build: h2c329e2_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.4.0-h2c329e2_0.conda - sha256: bd45805b169e3e0ff166d360c3c4842d77107d28c8f9feba020a8e8b9c80f948 - md5: 80030debaa84cfc31755d53742df3ca6 - depends: - - 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.* - - libwebp-base >=1.4.0,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 91941 - timestamp: 1714599671055 -- kind: conda - name: libwebp - version: 1.4.0 - build: h54798ee_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-1.4.0-h54798ee_0.conda - sha256: e75e7a58793236fc8e92733c8bad168ce7bea40ca54c8c643e357511ba4a7b98 - md5: 078abbcc54996b186b9144cf795bd30f - depends: - - __osx >=11.0 - - giflib >=5.2.2,<5.3.0a0 - - 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.* - - libwebp-base >=1.4.0,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 87703 - timestamp: 1714599993749 -- kind: conda - name: libwebp - version: 1.4.0 - build: hc207709_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libwebp-1.4.0-hc207709_0.conda - sha256: 5c7103d5462deedf0f80a081bc895c25b05404719c11b33a846dc5f5328d791c - md5: c5aa72a275c001665128245084c9ce14 - depends: - - __osx >=10.9 - - giflib >=5.2.2,<5.3.0a0 - - 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.* - - libwebp-base >=1.4.0,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 87124 - timestamp: 1714599963620 -- kind: conda - name: libwebp-base - version: 1.4.0 - build: h10d778d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.4.0-h10d778d_0.conda - sha256: 7bafd8f4c637778cd0aa390bf3a894feef0e1fcf6ea6000c7ffc25c4c5a65538 - md5: b2c0047ea73819d992484faacbbe1c24 - constrains: - - libwebp 1.4.0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 355099 - timestamp: 1713200298965 - kind: conda name: libwebp-base version: 1.4.0 @@ -22180,76 +20010,80 @@ packages: size: 438953 timestamp: 1713199854503 - kind: conda - name: libxcb - version: '1.16' - build: h0dc2134_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.16-h0dc2134_0.conda - sha256: c64277f586b716d5c34947e7f2783ef0d24f239a136bc6a024e854bede0389a9 - md5: 07e80289d4ba724f37b4b6f001f88fbe + name: libwinpthread + version: 12.0.0.r4.gg4f2fc60ca + build: h57928b3_8 + build_number: 8 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_8.conda + sha256: 6d5e158813ab8d553fbb0fedd0abe7bf92970b0be3a9ddf12da0f6cbad78f506 + md5: 03cccbba200ee0523bde1f3dad60b1f3 depends: - - pthread-stubs - - xorg-libxau >=1.0.11,<2.0a0 - - xorg-libxdmcp - license: MIT - license_family: MIT + - ucrt + constrains: + - pthreads-win32 <0.0a0 + - msys2-conda-epoch <0.0a0 + license: MIT AND BSD-3-Clause-Clear purls: [] - size: 322676 - timestamp: 1693089168477 + size: 35433 + timestamp: 1724681489463 - kind: conda name: libxcb - version: '1.16' - build: hcd874cb_0 + version: 1.17.0 + build: h0e4246c_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.16-hcd874cb_0.conda - sha256: 3b1f3b04baa370cfb1c350cfa829e6236519df5f03e3f57ea2cb2eb044eb8616 - md5: 7c1217d3b075f195ab17370f2d550f5d + url: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda + sha256: 08dec73df0e161c96765468847298a420933a36bc4f09b50e062df8793290737 + md5: a69bbf778a462da324489976c84cfc8c depends: - - m2w64-gcc-libs - - m2w64-gcc-libs-core + - libgcc >=13 + - libwinpthread >=12.0.0.r4.gg4f2fc60ca - pthread-stubs + - ucrt >=10.0.20348.0 - xorg-libxau >=1.0.11,<2.0a0 - xorg-libxdmcp license: MIT license_family: MIT purls: [] - size: 989932 - timestamp: 1693089470750 + size: 1208687 + timestamp: 1727279378819 - kind: conda name: libxcb - version: '1.16' - build: hd590300_0 + version: 1.17.0 + build: h8a09558_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.16-hd590300_0.conda - sha256: 7180375f37fd264bb50672a63da94536d4abd81ccec059e932728ae056324b3a - md5: 151cba22b85a989c2d6ef9633ffee1e4 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda + sha256: 666c0c431b23c6cec6e492840b176dde533d48b7e6fb8883f5071223433776aa + md5: 92ed62436b625154323d40d5f2f11dd7 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - pthread-stubs - xorg-libxau >=1.0.11,<2.0a0 - xorg-libxdmcp license: MIT license_family: MIT purls: [] - size: 394932 - timestamp: 1693088990429 + size: 395888 + timestamp: 1727278577118 - kind: conda name: libxcb - version: '1.16' - build: hf2054a2_0 + version: 1.17.0 + build: hdb1d25a_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.16-hf2054a2_0.conda - sha256: ebf4b797f18de4280548520c97ca1528bcb5a8bc721e3bb133a4e3c930a5320f - md5: 55b5ed79062edde70459943d2d430d99 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + sha256: bd3816218924b1e43b275863e21a3e13a5db4a6da74cca8e60bc3c213eb62f71 + md5: af523aae2eca6dfa1c8eec693f5b9a79 depends: + - __osx >=11.0 - pthread-stubs - xorg-libxau >=1.0.11,<2.0a0 - xorg-libxdmcp license: MIT license_family: MIT purls: [] - size: 359805 - timestamp: 1693089356642 + size: 323658 + timestamp: 1727278733917 - kind: conda name: libxcrypt version: 4.4.36 @@ -22277,7 +20111,7 @@ packages: depends: - libgcc-ng >=12 - libstdcxx-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.16,<2.0.0a0 - libxml2 >=2.12.7,<3.0a0 - xkeyboard-config - xorg-libxau >=1.0.11,<2.0a0 @@ -22288,99 +20122,65 @@ packages: timestamp: 1718819935698 - kind: conda name: libxml2 - version: 2.12.7 - build: h283a6d9_1 - build_number: 1 + version: 2.13.4 + build: h442d1da_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h283a6d9_1.conda - sha256: aef096aa784e61f860fab08974c6260836bf05d742fb69f304f0e9b7d557c99a - md5: 7ab2653cc21c44a1370ef3b409261b3d + url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda + sha256: 352eb281dcac491b7ed9e01082947d734a2610f3700f1ab18524590a2862f069 + md5: 46c233e5c137a2de2d1d95ca35ad8d6a depends: - 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 license: MIT license_family: MIT purls: [] - size: 1709896 - timestamp: 1717547244225 -- kind: conda - name: libxml2 - version: 2.12.7 - build: h3e169fe_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-h3e169fe_1.conda - sha256: 75554b5ef4c61a97c1d2ddcaff2d87c5ee120ff6925c2b714e18b20727cafb98 - md5: ddb63049aa7bd9f08f2cdc5a1c144d1a - depends: - - __osx >=10.13 - - icu >=73.2,<74.0a0 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<2.0a0 - - xz >=5.2.6,<6.0a0 - license: MIT - license_family: MIT - purls: [] - size: 619297 - timestamp: 1717546472911 + size: 1518137 + timestamp: 1730355951612 - kind: conda name: libxml2 - version: 2.12.7 - build: ha661575_1 - build_number: 1 + version: 2.13.4 + build: h8424949_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-ha661575_1.conda - sha256: 0ea12032b53d3767564a058ccd5208c0a1724ed2f8074dd22257ff3859ea6a4e - md5: 8ea71a74847498c793b0a8e9054a177a + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda + sha256: 51048cd9d4d7ab3ab440bac01d1db8193ae1bd3e9502cdf6792a69c792fec2e5 + md5: 3f0764c38bc02720231d49d6035531f2 depends: - __osx >=11.0 - - icu >=73.2,<74.0a0 + - icu >=75.1,<76.0a0 - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<2.0a0 + - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT purls: [] - size: 588487 - timestamp: 1717546487246 + size: 572400 + timestamp: 1730356085177 - kind: conda name: libxml2 - version: 2.12.7 - build: hc051c1a_1 - build_number: 1 + version: 2.13.4 + build: hb346dea_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda - sha256: 576ea9134176636283ff052897bf7a91ffd8ac35b2c505dfde2890ec52849698 - md5: 340278ded8b0dc3a73f3660bbb0adbc6 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda + sha256: a111cb7f2deb6e20ebb475e8426ce5291451476f55f0dec6c220aa51e5a5784f + md5: 69b90b70c434b916abf5a1d5ee5d55fb depends: - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<2.0a0 + - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT purls: [] - size: 704984 - timestamp: 1717546454837 -- kind: conda - name: libxslt - version: 1.1.39 - build: h03b04e6_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.39-h03b04e6_0.conda - sha256: decfc5614a10231a17543b7366616fb2d88c14be6dd9dd5ecde63aa9a5acfb9e - md5: a6e0cec6b3517ffc6b5d36a920fc9312 - depends: - - libxml2 >=2.12.1,<3.0.0a0 - license: MIT - license_family: MIT - purls: [] - size: 231368 - timestamp: 1701628933115 + size: 690019 + timestamp: 1730355770718 - kind: conda name: libxslt version: 1.1.39 @@ -22432,209 +20232,144 @@ packages: timestamp: 1701628814990 - kind: conda name: libzip - version: 1.10.1 - build: h1d365fa_3 - build_number: 3 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libzip-1.10.1-h1d365fa_3.conda - sha256: 221698b52dd7a3dcfc67ff9460e9c8649fc6c86506a2a2ab6f57b97e7489bb9f - md5: 5c629cd12d89e2856c17b1dc5fcf44a4 - depends: - - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.2,<4.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 146434 - timestamp: 1694417117772 -- kind: conda - name: libzip - version: 1.10.1 - build: h2629f0a_3 - build_number: 3 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.10.1-h2629f0a_3.conda - sha256: 84e93f189072dcfcbe77744f19c7e4171523fbecfaba7352e5a23bbe014574c7 - md5: ac79812548e7e8cf61f7b0abdef01d3b + version: 1.11.2 + build: h1336266_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda + sha256: 507599a77c1ce823c2d3acaefaae4ead0686f183f3980467a4c4b8ba209eff40 + md5: 7177414f275db66735a17d316b0a81d6 depends: + - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.2,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 107198 - timestamp: 1694416433629 + size: 125507 + timestamp: 1730442214849 - kind: conda name: libzip - version: 1.10.1 - build: ha0bc3c6_3 - build_number: 3 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.10.1-ha0bc3c6_3.conda - sha256: fb42f34c2275523a06bc8464454fa57f2417203524cabb7aacca4e5de6cfeb69 - md5: e37c0da207079e488709043634d6a711 + version: 1.11.2 + build: h3135430_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda + sha256: 8ed49d8aa0ff908e16c82f92154174027c8906429e8b63d71f0b27ecc987b43e + md5: 09066edc7810e4bd1b41ad01a6cc4706 depends: - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.2,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: [] - size: 128244 - timestamp: 1694416824668 + size: 146856 + timestamp: 1730442305774 - kind: conda name: libzip - version: 1.10.1 - build: hc158999_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.10.1-hc158999_3.conda - sha256: 0689e4a6e67e80027e43eefb8a365273405a01f5ab2ece97319155b8be5d64f6 - md5: 6112b3173f3aa2f12a8f40d07a77cc35 + version: 1.11.2 + build: h6991a6a_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda + sha256: 991e7348b0f650d495fb6d8aa9f8c727bdf52dabf5853c0cc671439b160dce48 + md5: a7b27c075c9b7f459f1c022090697cba depends: + - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.2,<4.0a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 127599 - timestamp: 1694416738467 + size: 109043 + timestamp: 1730442108429 - kind: conda name: libzlib version: 1.3.1 - build: h2466b09_1 - build_number: 1 + build: h2466b09_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - sha256: b13846a54a15243e15f96fec06b526d8155adc6a1ac2b6ed47a88f6a71a94b68 - md5: d4483ca8afc57ddf1f6dded53b36c17f + url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402 + md5: 41fbfac52c601159df6c01f875de31b9 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - zlib 1.3.1 *_1 - license: Zlib - license_family: Other - purls: [] - size: 56186 - timestamp: 1716874730539 -- kind: conda - name: libzlib - version: 1.3.1 - build: h4ab18f5_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - sha256: adf6096f98b537a11ae3729eaa642b0811478f0ea0402ca67b5108fe2cb0010d - md5: 57d7dc60e9325e3de37ff8dffd18e814 - depends: - - libgcc-ng >=12 - constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other purls: [] - size: 61574 - timestamp: 1716874187109 + size: 55476 + timestamp: 1727963768015 - kind: conda name: libzlib version: 1.3.1 - build: h87427d6_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - sha256: 80a62db652b1da0ccc100812a1d86e94f75028968991bfb17f9536f3aa72d91d - md5: b7575b5aa92108dcc9aaab0f05f2dbce + build: h8359307_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b + md5: 369964e85dc26bfe78f41399b366c435 depends: - - __osx >=10.13 + - __osx >=11.0 constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other purls: [] - size: 57372 - timestamp: 1716874211519 + size: 46438 + timestamp: 1727963202283 - kind: conda name: libzlib version: 1.3.1 - build: hfb2fe0b_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - sha256: c34365dd37b0eab27b9693af32a1f7f284955517c2cc91f1b88a7ef4738ff03e - md5: 636077128927cf79fd933276dc3aed47 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other purls: [] - size: 46921 - timestamp: 1716874262512 -- kind: conda - name: llvm-meta - version: 5.0.0 - build: '0' - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 - sha256: 090bbeacc3297ff579b53f55ad184f05c30e316fe9d5d7df63df1d2ad4578b79 - md5: 213b5b5ad34008147a824460e50a691c - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 2667 -- kind: conda - name: llvm-openmp - version: 18.1.8 - build: h15ab845_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda - sha256: 0fd74128806bd839c7a9aa343faf265b94aece84f75f67f14b6246936138e61e - md5: 2c3c6c8aaf8728f87326964a82fdc7d8 - depends: - - __osx >=10.13 - constrains: - - openmp 18.1.8|18.1.8.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 300682 - timestamp: 1718887195436 + size: 60963 + timestamp: 1727963148474 - kind: conda name: llvm-openmp - version: 18.1.8 - build: hde57baf_0 + version: 19.1.3 + build: hb52a8e5_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda - sha256: 42bc913b3c91934a1ce7ff635e87ee48e2e252632f0cbf607c5a3e4409d9f9dd - md5: 82393fdbe38448d878a8848b6fcbcefb + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.3-hb52a8e5_0.conda + sha256: 49a8940e727aa82ee034fa9a60b3fcababec41b3192d955772aab635a5374b82 + md5: dd695d23e78d1ca4fecce969b1e1db61 depends: - __osx >=11.0 constrains: - - openmp 18.1.8|18.1.8.* + - openmp 19.1.3|19.1.3.* license: Apache-2.0 WITH LLVM-exception license_family: APACHE purls: [] - size: 276438 - timestamp: 1718911793488 + size: 280488 + timestamp: 1730364082380 - kind: conda name: llvmlite version: 0.43.0 - build: py310h0288bfe_0 + build: py310h0288bfe_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py310h0288bfe_0.conda - sha256: e1bec0ef2aa9ceb6e38c45b1cfe4e32d4632c117af153cd353dee4901ab76765 - md5: 722927d5664ec4a7f7089a6e7fa165f7 + url: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py310h0288bfe_1.conda + sha256: 3eed3f0b475d698ff947b8d97b4d8e73fd047ee80b416f5c6c052d74afd25971 + md5: f8adf34c61cc1e8f532f7d7f5c04c34f depends: - libzlib >=1.3.1,<2.0a0 - python >=3.10,<3.11.0a0 @@ -22646,62 +20381,44 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 17048694 - timestamp: 1718324887972 + - pkg:pypi/llvmlite?source=hash-mapping + size: 17050042 + timestamp: 1725305419951 - kind: conda name: llvmlite version: 0.43.0 - build: py310h4c7c693_0 + build: py310h1a6248f_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py310h4c7c693_0.conda - sha256: 2acd87b1a332bd5ca5a729639688425980dae3586d5da0803c3a4f19c09e994c - md5: f1d507e72dfd110f0953f92683de5822 - depends: - - libgcc-ng >=12 - - libllvm14 >=14.0.6,<14.1.0a0 - - libstdcxx-ng >=12 - - libzlib >=1.3.1,<2.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 3374085 - timestamp: 1718324339305 -- kind: conda - name: llvmlite - version: 0.43.0 - build: py310h515a046_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py310h515a046_0.conda - sha256: b60514bac0bf2242ce1869424ba22396b3e880868e578ef09ec6433a8ec87632 - md5: 780efd589e867c695f828b92f2254f8c + url: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py310h1a6248f_1.conda + sha256: 071ce1a0fed522a19990b1cb49cba01d5b03f0e851a1ea0c364622267e32bca1 + md5: 8153f0ba820cca5bae3101d1bc178d95 depends: - - __osx >=10.13 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - libllvm14 >=14.0.6,<14.1.0a0 + - libstdcxx >=13 - libzlib >=1.3.1,<2.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 307177 - timestamp: 1718324672663 + - pkg:pypi/llvmlite?source=hash-mapping + size: 3379851 + timestamp: 1725305141536 - kind: conda name: llvmlite version: 0.43.0 - build: py310h6077e7d_0 + build: py310h9fcfb1b_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py310h6077e7d_0.conda - sha256: bb073d6981d89cf8d471e98a8d1e1b6654932387a953d490f5068638803c06fd - md5: 0058e88708e621aae0457a6448ade68d + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py310h9fcfb1b_1.conda + sha256: e14de4383b9b7ddbe80c0033d74583d57f90817f0916ed10d4daa7cc0b07500f + md5: 68a060bfb18c7de4537dfb79cb2a90a7 depends: - __osx >=11.0 - - libcxx >=16 + - libcxx >=17 - libllvm14 >=14.0.6,<14.1.0a0 - libzlib >=1.3.1,<2.0a0 - python >=3.10,<3.11.0a0 @@ -22710,103 +20427,87 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 307693 - timestamp: 1718324828902 + - pkg:pypi/llvmlite?source=hash-mapping + size: 305736 + timestamp: 1725305540839 - kind: conda name: llvmlite version: 0.43.0 - build: py311h02e79e2_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py311h02e79e2_0.conda - sha256: a6bb6294a5e5c0a8250acaf3b817e7b009e9c656c767f762b1d85bd436d23f13 - md5: 70b19f96b4f02d092495ebc40f871172 + build: py311h7deaa30_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py311h7deaa30_1.conda + sha256: 7df8480fc6c32b6f5e0b6f928332759559e9c2d6c43f94e6b51ea5d2129442a9 + md5: c59d60615d5c5a9e9539a106478d332c depends: - - __osx >=11.0 - - libcxx >=16 - - libllvm14 >=14.0.6,<14.1.0a0 - libzlib >=1.3.1,<2.0a0 - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - vs2015_runtime license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 381993 - timestamp: 1718324755906 + - pkg:pypi/llvmlite?source=hash-mapping + size: 17126019 + timestamp: 1725305442517 - kind: conda name: llvmlite version: 0.43.0 - build: py311h6cc91e7_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py311h6cc91e7_0.conda - sha256: ff810afc712c74cea7a54e6577a5483f26d128efc1da24f94b8789251e012a3d - md5: 4ed50735a4863cfa81e558f0415da343 + build: py311h9c9ff8c_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py311h9c9ff8c_1.conda + sha256: fb8b3eeea19f1160343d2c84f3b3e888f8c45db563375660905e1e73a793fc74 + md5: 9ab40f5700784bf16ff7cf8012a646e8 depends: - - __osx >=10.13 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - libllvm14 >=14.0.6,<14.1.0a0 + - libstdcxx >=13 - libzlib >=1.3.1,<2.0a0 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 382723 - timestamp: 1718324593783 -- kind: conda - name: llvmlite - version: 0.43.0 - build: py311h7deaa30_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py311h7deaa30_0.conda - sha256: a574886526737e1c3c3188115862fac5b5600a6394c3d6adee60443be98023ee - md5: 3e7e4560830194638b6f0ee64c71b06b - depends: - - libzlib >=1.3.1,<2.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - - vs2015_runtime - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 17130729 - timestamp: 1718324901462 + - pkg:pypi/llvmlite?source=hash-mapping + size: 3471295 + timestamp: 1725305248888 - kind: conda name: llvmlite version: 0.43.0 - build: py311hbde99c3_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py311hbde99c3_0.conda - sha256: f19013fd10871fb6e6e9e75ea7067b50683f6335b8f1d1893a80d731d5ce3825 - md5: 4c60dfcba06b363be954401addee8800 + build: py311hc367efa_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py311hc367efa_1.conda + sha256: c352b894bb07ed59d1cdaed1a64e52b054f4ff02119600a97ccf39cce06dbe5f + md5: d14048893b6cc8aec00b4e0e6eb78de2 depends: - - libgcc-ng >=12 + - __osx >=11.0 + - libcxx >=17 - libllvm14 >=14.0.6,<14.1.0a0 - - libstdcxx-ng >=12 - libzlib >=1.3.1,<2.0a0 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 3465538 - timestamp: 1718324420735 + - pkg:pypi/llvmlite?source=hash-mapping + size: 378145 + timestamp: 1725305457011 - kind: conda name: llvmlite version: 0.43.0 - build: py312h1f7db74_0 + build: py312h1f7db74_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_0.conda - sha256: a1489f318bf7d0167c79c3646a59b81636917712f4c6f43814cf15571dfdfa87 - md5: 5570862384bf307f15c36ed69dd9fa97 + url: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.43.0-py312h1f7db74_1.conda + sha256: 77e37e8b6223d185e1a3a1dfda5c5d9eb940e4935d06de3bab74c881b69ac873 + md5: 570a33dbbfdb2f497cac407f41a8e1b7 depends: - libzlib >=1.3.1,<2.0a0 - python >=3.12,<3.13.0a0 @@ -22818,73 +20519,55 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 17121144 - timestamp: 1718324901094 -- kind: conda - name: llvmlite - version: 0.43.0 - build: py312h30cb90f_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312h30cb90f_0.conda - sha256: 33695ee9042e0de27d8310dad64c18d1cf7aeaf91c286738d2ab2388f4ab291a - md5: 7a5d0e3a58a4bfb6f93cadc0d2529b4f - depends: - - __osx >=11.0 - - libcxx >=16 - - libllvm14 >=14.0.6,<14.1.0a0 - - libzlib >=1.3.1,<2.0a0 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 370811 - timestamp: 1718324680069 + - pkg:pypi/llvmlite?source=hash-mapping + size: 17112697 + timestamp: 1725305550641 - kind: conda name: llvmlite version: 0.43.0 - build: py312h9c5d478_0 + build: py312h374181b_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda - sha256: 02a2a1896e80ec8c17c186b120fc021d10b24682a810200f62a9aaacdc988463 - md5: b7a63a49d7a0664376b27cd4f052a888 + url: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h374181b_1.conda + sha256: b260285b29834f9b003e2928d778c19b8ed0ca1aff5aa8aa7ec8f21f9b23c2e4 + md5: ed6ead7e9ab9469629c6cfb363b5c6e2 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - libllvm14 >=14.0.6,<14.1.0a0 - - libstdcxx-ng >=12 + - libstdcxx >=13 - libzlib >=1.3.1,<2.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 3437153 - timestamp: 1718324460601 + - pkg:pypi/llvmlite?source=hash-mapping + size: 3442782 + timestamp: 1725305160474 - kind: conda name: llvmlite version: 0.43.0 - build: py312hdeb90da_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.43.0-py312hdeb90da_0.conda - sha256: b5f11398b4c64afd4188ec3e99a5e43fbc54f867c208cdde83eb2a306f1576b6 - md5: fbf9baa6234121382858875dd707d700 + build: py312ha9ca408_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.43.0-py312ha9ca408_1.conda + sha256: bd443500b61d770237837f2bdb043f27d789459c0d7036cf2673221c0e2c3238 + md5: f081ee72987624a949a3562020b1135d depends: - - __osx >=10.13 - - libcxx >=16 + - __osx >=11.0 + - libcxx >=17 - libllvm14 >=14.0.6,<14.1.0a0 - libzlib >=1.3.1,<2.0a0 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/llvmlite?source=conda-forge-mapping - size: 372855 - timestamp: 1718324612808 + - pkg:pypi/llvmlite?source=hash-mapping + size: 370106 + timestamp: 1725305440993 - kind: conda name: locket version: 1.0.0 @@ -22899,196 +20582,170 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/locket?source=conda-forge-mapping + - pkg:pypi/locket?source=hash-mapping size: 8250 timestamp: 1650660473123 - kind: conda name: lxml - version: 5.2.2 - build: py312h0e5ab22_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/lxml-5.2.2-py312h0e5ab22_0.conda - sha256: 6dda17b6be96e13adb7810e7aeaa676429b93ce472e636f73ba56f2b61918d24 - md5: d049fc23bf40c0f7d97bc4a35d91b97c + version: 5.3.0 + build: py312h53bce91_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/lxml-5.3.0-py312h53bce91_2.conda + sha256: ef9ab6471b85a99535bd4175af8d0b70a1ae03266c16ecc4485d090e0857bc97 + md5: e342cf9d05533f20800e74e8e4e76220 depends: - - __osx >=11.0 - - libxml2 >=2.12.6,<3.0a0 - - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause and MIT-CMU - purls: - - pkg:pypi/lxml?source=conda-forge-mapping - size: 1149120 - timestamp: 1715599148831 -- kind: conda - name: lxml - version: 5.2.2 - build: py312h1aa9a54_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lxml-5.2.2-py312h1aa9a54_0.conda - sha256: 9c8cc1e45243e6cd5756312a4596e2b6776a765b49d63abe7cf09ddd86145056 - md5: 17318078a298a3f6e4d84ce3bb2ef612 - depends: - - __osx >=10.13 - - libxml2 >=2.12.6,<3.0a0 + - libxml2 >=2.12.7,<3.0a0 - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libzlib >=1.3.1,<2.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause and MIT-CMU purls: - - pkg:pypi/lxml?source=conda-forge-mapping - size: 1195010 - timestamp: 1715599257126 + - pkg:pypi/lxml?source=hash-mapping + size: 1052316 + timestamp: 1730194775725 - kind: conda name: lxml - version: 5.2.2 - build: py312h56c7e3b_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/lxml-5.2.2-py312h56c7e3b_0.conda - sha256: b1f6dd7fe2c34c1e9fa5427deba46499d0015136dd68e2e333c91038a4e68da3 - md5: 3a7f3db85a43bbc513b2df176b5fbb05 + version: 5.3.0 + build: py312ha59c1f6_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/lxml-5.3.0-py312ha59c1f6_2.conda + sha256: 247c111bc599558760a0fa569d2e3fce66011e6f0fcee0fcb15d505b0a132835 + md5: 62812df7d88357ccb37fdabe67bf785d depends: - - libxml2 >=2.12.6,<3.0a0 + - __osx >=11.0 + - libxml2 >=2.12.7,<3.0a0 - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libzlib >=1.3.1,<2.0a0 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-3-Clause and MIT-CMU purls: - - pkg:pypi/lxml?source=conda-forge-mapping - size: 1049272 - timestamp: 1715599079499 + - pkg:pypi/lxml?source=hash-mapping + size: 1147046 + timestamp: 1730194526400 - kind: conda name: lxml - version: 5.2.2 - build: py312hb90d8a5_0 + version: 5.3.0 + build: py312he28fd5a_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lxml-5.2.2-py312hb90d8a5_0.conda - sha256: fab93c7618006b5595add86b0cb12501642dcb3a295de54eef17e0dd1aaf22ae - md5: da3e0a20f8eb75072ad036198c37be61 + url: https://conda.anaconda.org/conda-forge/linux-64/lxml-5.3.0-py312he28fd5a_2.conda + sha256: 14f320373eb04fde9ca783f99ddce2f259adfd5d458d0f28b0f05a4020a81fcf + md5: 3acf38086326f49afed094df4ba7c9d9 depends: - - libgcc-ng >=12 - - libxml2 >=2.12.6,<3.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libxml2 >=2.12.7,<3.0a0 - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libzlib >=1.3.1,<2.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause and MIT-CMU purls: - - pkg:pypi/lxml?source=conda-forge-mapping - size: 1399383 - timestamp: 1715598656220 -- kind: conda - name: lz4 - version: 4.3.3 - build: py310h350c4a5_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py310h350c4a5_0.conda - sha256: 119189a08204d97b1866e97d127d85574980547bc3b4aedc59ac6bb0b521a5c7 - md5: 943866d33b651ae9a3287e84383f6ddc - depends: - - libgcc-ng >=12 - - lz4-c >=1.9.3,<1.10.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 37353 - timestamp: 1704831243355 + - pkg:pypi/lxml?source=hash-mapping + size: 1403185 + timestamp: 1730194471723 - kind: conda name: lz4 version: 4.3.3 - build: py310haecba8d_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py310haecba8d_0.conda - sha256: 7acb15a2fc8db187c93fba3a90ec026261e03b6a9f58eaff54d2f63700ecbfb8 - md5: 388a85465bdbaed3bca49f9002634da5 + build: py310h7fbadaa_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py310h7fbadaa_1.conda + sha256: f0ce4a06e2b737bade0a519c60c44b52084b4df50ec4301ba52024f74cbf08eb + md5: b569bee613ff8193da536c7901bf1340 depends: - lz4-c >=1.9.3,<1.10.0a0 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 108122 - timestamp: 1704831595715 + - pkg:pypi/lz4?source=hash-mapping + size: 74798 + timestamp: 1725089831225 - kind: conda name: lz4 version: 4.3.3 - build: py310hbbb2075_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py310hbbb2075_0.conda - sha256: b7fb571426191d3f8b822c94d0ba1bb918b0f795425efa85b127b168bee61e31 - md5: 3b5e186e356f42498dd4a9e42e8e265e + build: py310hb259640_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py310hb259640_1.conda + sha256: 432b919e052fd0e0687ae7395f147629ba708457e17e491db1d7a286a83d6f41 + md5: 7a591c0d64176ea154d53eac3ad7f66d depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - lz4-c >=1.9.3,<1.10.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 74637 - timestamp: 1704832007515 + - pkg:pypi/lz4?source=hash-mapping + size: 37077 + timestamp: 1725089581969 - kind: conda name: lz4 version: 4.3.3 - build: py310hf99a7a4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py310hf99a7a4_0.conda - sha256: c7e6dddfd87de5c7e28103f288f97cbc9117a6e277232a0c77ec1433ddcf983e - md5: 8979af77cc002e908f982d8d435d535f + build: py310hc798581_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py310hc798581_1.conda + sha256: 6b1faa741c004dec628b5c13dfaf0c02f600f3f5b992e33f0541b4e2ab681e7f + md5: c09f5bd96704b72109c1287e5cac754c depends: + - __osx >=11.0 - lz4-c >=1.9.3,<1.10.0a0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 34354 - timestamp: 1704831577874 + - pkg:pypi/lz4?source=hash-mapping + size: 105681 + timestamp: 1725089664030 - kind: conda name: lz4 version: 4.3.3 - build: py311h38e4bf4_0 + build: py311h2cbdf9a_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py311h38e4bf4_0.conda - sha256: 61d20694cf17fd621fc07859ccdd810be9de702fd0fa5c8f60f0ef4602b8bcde - md5: 3910c815fc788621f88b2bdc0fa9f0a6 + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py311h2cbdf9a_1.conda + sha256: 83f560beb20f61bb8c6e43a0656f1e744934d41a48b8a19408e6596cf8ce99a8 + md5: 867a4aa23ae6c0e9c84cf9aa4f2df0fe depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - lz4-c >=1.9.3,<1.10.0a0 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 39927 - timestamp: 1704831250044 + - pkg:pypi/lz4?source=hash-mapping + size: 39383 + timestamp: 1725089531914 - kind: conda name: lz4 version: 4.3.3 - build: py311haddf500_0 + build: py311h8b5e962_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py311haddf500_0.conda - sha256: 1f826e3a559eed39113d4d3b8131b937abf9d3139e63786ff0c8c295f0a5a652 - md5: 5e0fceb00bc784481e1ac2aa44b1e844 + url: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py311h8b5e962_1.conda + sha256: 24bb321c5da9660f56759000001a6f227780348a21098164f55049b58ac78a11 + md5: 8672eca07a3b500a9aa0483c43742f82 depends: - lz4-c >=1.9.3,<1.10.0a0 - python >=3.11,<3.12.0a0 @@ -23099,18 +20756,20 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 77111 - timestamp: 1704831874474 + - pkg:pypi/lz4?source=hash-mapping + size: 76663 + timestamp: 1725090098178 - kind: conda name: lz4 version: 4.3.3 - build: py311hd44b8e9_0 + build: py311hebe0b09_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py311hd44b8e9_0.conda - sha256: 94e21299626e9910d9a42de2d28e8ffc018af2dc0ecd247905d06b2a418f313a - md5: 55e5496cc171c496f2f1930de465b863 + url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py311hebe0b09_1.conda + sha256: d68fb0bf5d74c83432155406de87b50b8c10712d331bbbab616c52d945751981 + md5: 74df239a2926df48e2543bb6754baf61 depends: + - __osx >=11.0 - lz4-c >=1.9.3,<1.10.0a0 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython @@ -23118,54 +20777,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 110848 - timestamp: 1704831784856 -- kind: conda - name: lz4 - version: 4.3.3 - build: py311hdfabcfc_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py311hdfabcfc_0.conda - sha256: 213229b2b04df7bcf77966aef5bef0b628b8801feebd2d11e19e88113f01b896 - md5: 23c26f7a049deecd3aa1d2ac4fe3b732 - depends: - - lz4-c >=1.9.3,<1.10.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 36864 - timestamp: 1704831579795 -- kind: conda - name: lz4 - version: 4.3.3 - build: py312h03f37cb_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312h03f37cb_0.conda - sha256: 6180f0b0c56fa49064291f76b3e4b1b84f3de58aab1264a94cb200f5f46b0178 - md5: 8465027beab0db69006f744be7fb3fb6 - depends: - - libgcc-ng >=12 - - lz4-c >=1.9.3,<1.10.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 39409 - timestamp: 1704831318655 + - pkg:pypi/lz4?source=hash-mapping + size: 108602 + timestamp: 1725089854895 - kind: conda name: lz4 version: 4.3.3 - build: py312h594ca44_0 + build: py312h0608a1d_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h594ca44_0.conda - sha256: c1b699016e3334bf2c475a60c84b31770dd3e4b2cc5eb4b1a0ecf2689cb7d57e - md5: cc004e8b6d7a876f0d541d864d14064c + url: https://conda.anaconda.org/conda-forge/win-64/lz4-4.3.3-py312h0608a1d_1.conda + sha256: 4ebd0ffbe8ce40924459cb3bf1837b5e22bcf3bd0cb807a51795b460878a400a + md5: 90e9d18bcbfe59ac7d6064a58432f365 depends: - lz4-c >=1.9.3,<1.10.0a0 - python >=3.12,<3.13.0a0 @@ -23176,46 +20799,51 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 77168 - timestamp: 1704831874480 + - pkg:pypi/lz4?source=hash-mapping + size: 76980 + timestamp: 1725090008004 - kind: conda name: lz4 version: 4.3.3 - build: py312h904eaf1_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.3.3-py312h904eaf1_0.conda - sha256: d6761866789708afc396897fe505c52056917d00bb5745f91aa22b4dd8af8d07 - md5: 3d5b987b4090e9dc8ad65c0d536d34ce + build: py312h11d1bbd_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312h11d1bbd_1.conda + sha256: 592e903be664d4daca335bc8b95f7e092aef0276830a2a7b5962ca7bbca60ee6 + md5: 4a9eb3dc0ba76484cae3084b99d008e5 depends: + - __osx >=11.0 - lz4-c >=1.9.3,<1.10.0a0 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 36016 - timestamp: 1704831559047 + - pkg:pypi/lz4?source=hash-mapping + size: 108178 + timestamp: 1725089672204 - kind: conda name: lz4 version: 4.3.3 - build: py312haed5471_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.3.3-py312haed5471_0.conda - sha256: d0c017fc36d862f6a3891077bee9c69c88e7b9b036657f2fc1f70e9fc8fe628b - md5: a8012768c1211957c79ff1f64a02a56d + build: py312hb3f7f12_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.3-py312hb3f7f12_1.conda + sha256: ea8151b4f55fa1f9b8d2220c7193c91f545aa15d44415cddbac9ea1f8782c117 + md5: b99d90ef4e77acdab74828f79705a919 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - lz4-c >=1.9.3,<1.10.0a0 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/lz4?source=conda-forge-mapping - size: 110065 - timestamp: 1704831611416 + - pkg:pypi/lz4?source=hash-mapping + size: 39432 + timestamp: 1725089587134 - kind: conda name: lz4-c version: 1.9.4 @@ -23264,35 +20892,6 @@ packages: purls: [] size: 134235 timestamp: 1674728465431 -- kind: conda - name: lz4-c - version: 1.9.4 - build: hf0c8a7f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - sha256: 39aa0c01696e4e202bf5e337413de09dfeec061d89acd5f28e9968b4e93c3f48 - md5: aa04f7143228308662696ac24023f991 - depends: - - libcxx >=14.0.6 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 156415 - timestamp: 1674727335352 -- kind: conda - name: lzo - version: '2.10' - build: h10d778d_1001 - build_number: 1001 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - sha256: 4006c57f805ca6aec72ee0eb7166b2fd648dd1bf3721b9de4b909cd374196643 - md5: bfecd73e4a2dc18ffd5288acf8a212ab - license: GPL-2.0-or-later - license_family: GPL2 - purls: [] - size: 146405 - timestamp: 1713516112292 - kind: conda name: lzo version: '2.10' @@ -23341,97 +20940,15 @@ packages: purls: [] size: 171416 timestamp: 1713515738503 -- kind: conda - name: m2w64-gcc-libgfortran - version: 5.3.0 - build: '6' - build_number: 6 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - sha256: 9de95a7996d5366ae0808eef2acbc63f9b11b874aa42375f55379e6715845dc6 - md5: 066552ac6b907ec6d72c0ddab29050dc - depends: - - m2w64-gcc-libs-core - - msys2-conda-epoch ==20160418 - license: GPL, LGPL, FDL, custom - purls: [] - size: 350687 - timestamp: 1608163451316 -- kind: conda - name: m2w64-gcc-libs - version: 5.3.0 - build: '7' - build_number: 7 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - sha256: 3bd1ab02b7c89a5b153a17be03b36d833f1517ff2a6a77ead7c4a808b88196aa - md5: fe759119b8b3bfa720b8762c6fdc35de - depends: - - m2w64-gcc-libgfortran - - m2w64-gcc-libs-core - - m2w64-gmp - - m2w64-libwinpthread-git - - msys2-conda-epoch ==20160418 - license: GPL3+, partial:GCCRLE, partial:LGPL2+ - purls: [] - size: 532390 - timestamp: 1608163512830 -- kind: conda - name: m2w64-gcc-libs-core - version: 5.3.0 - build: '7' - build_number: 7 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - sha256: 58afdfe859ed2e9a9b1cc06bc408720cb2c3a6a132e59d4805b090d7574f4ee0 - md5: 4289d80fb4d272f1f3b56cfe87ac90bd - depends: - - m2w64-gmp - - m2w64-libwinpthread-git - - msys2-conda-epoch ==20160418 - license: GPL3+, partial:GCCRLE, partial:LGPL2+ - purls: [] - size: 219240 - timestamp: 1608163481341 -- kind: conda - name: m2w64-gmp - version: 6.1.0 - build: '2' - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - sha256: 7e3cd95f554660de45f8323fca359e904e8d203efaf07a4d311e46d611481ed1 - md5: 53a1c73e1e3d185516d7e3af177596d9 - depends: - - msys2-conda-epoch ==20160418 - license: LGPL3 - purls: [] - size: 743501 - timestamp: 1608163782057 -- kind: conda - name: m2w64-libwinpthread-git - version: 5.0.0.4634.697f757 - build: '2' - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - sha256: f63a09b2cae7defae0480f1740015d6235f1861afa6fe2e2d3e10bd0d1314ee0 - md5: 774130a326dee16f1ceb05cc687ee4f0 - depends: - - msys2-conda-epoch ==20160418 - license: MIT, BSD - purls: [] - size: 31928 - timestamp: 1608166099896 - kind: conda name: mapclassify - version: 2.6.1 + version: 2.8.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda - sha256: 204ab8b242229d422b33cfec07ea61cefa8bd22375a16658afbabaafce031d64 - md5: 6aceae1ad4f16cf7b73ee04189947f98 + url: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.8.1-pyhd8ed1ab_0.conda + sha256: ce49505ac5c1d2d0bab6543b057c7cf698b0135ef92cd0eb151a41ea09d24c8c + md5: e75920f936efb86f64517d144d610107 depends: - networkx >=2.7 - numpy >=1.23 @@ -23442,9 +20959,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/mapclassify?source=conda-forge-mapping - size: 38684 - timestamp: 1696563711967 + - pkg:pypi/mapclassify?source=hash-mapping + size: 58204 + timestamp: 1727220839687 - kind: conda name: markdown-it-py version: 3.0.0 @@ -23460,37 +20977,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/markdown-it-py?source=conda-forge-mapping + - pkg:pypi/markdown-it-py?source=hash-mapping size: 64356 timestamp: 1686175179621 - kind: conda name: markupsafe - version: 2.1.5 - build: py310h2372a71_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py310h2372a71_0.conda - sha256: 3c18347adf1d091ee9248612308a6bef79038f80b626ef67f58cd0e8d25c65b8 - md5: f6703fa0214a00bf49d1bef6dc7672d0 - depends: - - libgcc-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - constrains: - - jinja2 >=3.0.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 24493 - timestamp: 1706900070478 -- kind: conda - name: markupsafe - version: 2.1.5 - build: py310h8d17308_0 + version: 3.0.2 + build: py310h38315fa_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py310h8d17308_0.conda - sha256: 2fe1bc52085b4b4f63e073803f8cce3da95b6eaaa182abee11c0a34b484f99dc - md5: eceba0306d8619bd34a650e673d3e6c3 + url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py310h38315fa_0.conda + sha256: 5b36e67eb43cafb8ea219aeda792a9623b1f5fb1778457f814442ed434e78c25 + md5: d67a799792d5d5d7b1dcf6fd4e35c6c7 depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -23502,37 +20999,19 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 26862 - timestamp: 1706900665420 -- kind: conda - name: markupsafe - version: 2.1.5 - build: py310hb372a2b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py310hb372a2b_0.conda - sha256: b4a3bdb4053bb990296cda261de6d1b095a2e006bf91c8b601019462dc43d7d8 - md5: fc49c4222ce625c835a5e3ce1fbfc503 - depends: - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - constrains: - - jinja2 >=3.0.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 23106 - timestamp: 1706900206202 + - pkg:pypi/markupsafe?source=hash-mapping + size: 25910 + timestamp: 1729351690024 - kind: conda name: markupsafe - version: 2.1.5 - build: py310hd125d64_0 + version: 3.0.2 + build: py310h5799be4_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py310hd125d64_0.conda - sha256: 75a43d7901fadee332b2175c71ba8df0e57ac0d0b2a7c52a10ad0d681cf1dc5a - md5: 29a6f644679ed1e2b94fc20c7e3dcc2d + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py310h5799be4_0.conda + sha256: a66713d5df1481ad71c7064b5e4b1edd9011e972f912cab730b215d517b11d85 + md5: 8bdc8aea9bd86d8630bcc0fa0ceff66b depends: + - __osx >=11.0 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 @@ -23541,39 +21020,41 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 23919 - timestamp: 1706900392293 + - pkg:pypi/markupsafe?source=hash-mapping + size: 22752 + timestamp: 1729351484481 - kind: conda name: markupsafe - version: 2.1.5 - build: py311h05b510d_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py311h05b510d_0.conda - sha256: 3f2127bd8788dc4b7c3d6d65ae4b7d2f8c7d02a246fc17b819390edeca53fd93 - md5: a27177455a9d29f4ac9d687a489e5d52 + version: 3.0.2 + build: py310h89163eb_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py310h89163eb_0.conda + sha256: cd30ab169cf8685a405d5ff65d6b6887603b5d3c9acfc844b5ff5ff09de21213 + md5: 5415555830a54d9b4a1307e3e9d942c7 depends: - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 constrains: - jinja2 >=3.0.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 26578 - timestamp: 1706900556332 + - pkg:pypi/markupsafe?source=hash-mapping + size: 22993 + timestamp: 1729351433689 - kind: conda name: markupsafe - version: 2.1.5 - build: py311h459d7ec_0 + version: 3.0.2 + build: py311h2dc5d0c_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py311h459d7ec_0.conda - sha256: 14912e557a6576e03f65991be89e9d289c6e301921b6ecfb4e7186ba974f453d - md5: a322b4185121935c871d201ae00ac143 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py311h2dc5d0c_0.conda + sha256: 364a0d55abc4c60bc575c81a4acc9e98ea27565147d4d4dc672bad4b2d069710 + md5: 15e4dadd59e93baad7275249f10b9472 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 constrains: @@ -23581,17 +21062,17 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 27502 - timestamp: 1706900084436 + - pkg:pypi/markupsafe?source=hash-mapping + size: 25591 + timestamp: 1729351519326 - kind: conda name: markupsafe - version: 2.1.5 - build: py311ha68e1ae_0 + version: 3.0.2 + build: py311h5082efb_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py311ha68e1ae_0.conda - sha256: c629f79fe78b5df7f08daa6b7f125f7a67f789bf734949c6d68aa063d7296208 - md5: 07da1326e2837e055ef6f44ef3334b0a + url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py311h5082efb_0.conda + sha256: 8a2022af5237e0fdf7e646856f1122735b71e4cdeaf42684b533ec4bad5a885f + md5: 84e78e335b0f9292060f1ac6d8ce0e3e depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -23603,37 +21084,41 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 30011 - timestamp: 1706900632904 + - pkg:pypi/markupsafe?source=hash-mapping + size: 28244 + timestamp: 1729351760960 - kind: conda name: markupsafe - version: 2.1.5 - build: py311he705e18_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py311he705e18_0.conda - sha256: 83a2b764a4946a04e693a4dd8fe5a35bf093a378da9ce18bf0689cd5dcb3c3fe - md5: 75abe7e2e3a0874a49d7c175115f443f + version: 3.0.2 + build: py311h56c23cb_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py311h56c23cb_0.conda + sha256: 74bbdf6dbfe561026fed5c7d5c1a123e6dff0fedc5bc7ed0c6e9037c95ca96d7 + md5: be48a4cc178a91af3b1ccd58c14efde2 depends: + - __osx >=11.0 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 constrains: - jinja2 >=3.0.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 26155 - timestamp: 1706900211496 + - pkg:pypi/markupsafe?source=hash-mapping + size: 25180 + timestamp: 1729351536390 - kind: conda name: markupsafe - version: 2.1.5 - build: py312h41838bb_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-2.1.5-py312h41838bb_0.conda - sha256: 8dc8f31f78d00713300da000b6ebaa1943a17c112f267de310d5c3d82950079c - md5: c4a9c25c09cef3901789ca818d9beb10 + version: 3.0.2 + build: py312h178313f_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_0.conda + sha256: 15f14ab429c846aacd47fada0dc4f341d64491e097782830f0906d00cb7b48b6 + md5: a755704ea0e2503f8c227d84829a8e81 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 constrains: @@ -23641,38 +21126,41 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 25742 - timestamp: 1706900456837 + - pkg:pypi/markupsafe?source=hash-mapping + size: 24878 + timestamp: 1729351558563 - kind: conda name: markupsafe - version: 2.1.5 - build: py312h98912ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py312h98912ed_0.conda - sha256: 273d8efd6c089c534ccbede566394c0ac1e265bfe5d89fe76e80332f3d75a636 - md5: 6ff0b9582da2d4a74a1f9ae1f9ce2af6 + version: 3.0.2 + build: py312h31fea79_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py312h31fea79_0.conda + sha256: eb0f3768890291f2d5fb666ab31b32b37a821e4a30968c6b3cd332472957abe7 + md5: e2ff001440760f2cbac24765d8a3d84a depends: - - libgcc-ng >=12 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - jinja2 >=3.0.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 26685 - timestamp: 1706900070330 + - pkg:pypi/markupsafe?source=hash-mapping + size: 27358 + timestamp: 1729351504449 - kind: conda name: markupsafe - version: 2.1.5 - build: py312he37b823_0 + version: 3.0.2 + build: py312ha0ccf2a_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py312he37b823_0.conda - sha256: 61480b725490f68856dd14e646f51ffc34f77f2c985bd33e3b77c04b2856d97d - md5: ba3a8f8cf8bbdb81394275b1e1d271da + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py312ha0ccf2a_0.conda + sha256: 360e958055f35e5087942b9c499eaafae984a951b84cf354ef7481a2806f340d + md5: c6ff9f291d011c9d4f0b840f49435c64 depends: + - __osx >=11.0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 @@ -23681,450 +21169,333 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 26382 - timestamp: 1706900495057 -- kind: conda - name: markupsafe - version: 2.1.5 - build: py312he70551f_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/markupsafe-2.1.5-py312he70551f_0.conda - sha256: f8690a3c87e2e96cebd434a829bb95cac43afe6c439530b336dc3452fe4ce4af - md5: 4950a739b19edaac1ed29ca9474e49ac - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - constrains: - - jinja2 >=3.0.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/markupsafe?source=conda-forge-mapping - size: 29060 - timestamp: 1706900374745 -- kind: conda - name: matplotlib - version: 3.8.4 - build: py310h2ec42d9_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py310h2ec42d9_2.conda - sha256: 5d0ea1a23f81981b5be40865d4f37387ff4dfb73ff8448bb7f65c73ca37f4f14 - md5: daf546d63157ba063002d95da8848875 - depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - tornado >=5 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8452 - timestamp: 1715976564837 + - pkg:pypi/markupsafe?source=hash-mapping + size: 24495 + timestamp: 1729351534830 - kind: conda name: matplotlib - version: 3.8.4 - build: py310h5588dad_2 - build_number: 2 + version: 3.9.2 + build: py310h5588dad_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py310h5588dad_2.conda - sha256: a7545419b1a4ec409be9049f3c1d55b95908011a38f999b4b1a91f6fb452dea4 - md5: 8e9e4aca8559c643dc17bdc7473a12db + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py310h5588dad_1.conda + sha256: f1e2123c23e6171517de6a7251e0d2c661f4511bedd8b5c291f314ba244a4d42 + md5: 136b1ff30905fb933bd70c8db3ae4750 depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - pyqt >=5.10 + - matplotlib-base >=3.9.2,<3.9.3.0a0 + - pyside6 >=6.7.2 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8777 - timestamp: 1715977014335 + purls: [] + size: 9128 + timestamp: 1726166028932 - kind: conda name: matplotlib - version: 3.8.4 - build: py310hb6292c7_2 - build_number: 2 + version: 3.9.2 + build: py310hb6292c7_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py310hb6292c7_2.conda - sha256: 55ed3accf02f43b67c414a57e9606b14fce2fb910f78686c07dcce10b4213e45 - md5: db30441d94ae737e3f665ec8c3c0677d + url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py310hb6292c7_1.conda + sha256: 3b66fa0139523ac3d94709f792311a276a7864e2632f20852a549a730af95991 + md5: fbc8fbed5377cbb2f676601f99dd43f7 depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 + - matplotlib-base >=3.9.2,<3.9.3.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8530 - timestamp: 1715976731919 + purls: [] + size: 8916 + timestamp: 1726165146389 - kind: conda name: matplotlib - version: 3.8.4 - build: py310hff52083_2 - build_number: 2 + version: 3.9.2 + build: py310hff52083_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py310hff52083_2.conda - sha256: 389f8ae8347a3648e6d24dc7a0eac0ea4c162a032c0bacba3b61192ce66aa722 - md5: c126ef82b0a423acb3f8240c25f7844a + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py310hff52083_1.conda + sha256: a23b9c2760779e5e93837ded59ac1ff7a57a8586a40e409e4e182374c7da44d2 + md5: fc840306b015dc102b93ed08dd3587ae depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - pyqt >=5.10 + - matplotlib-base >=3.9.2,<3.9.3.0a0 + - pyside6 >=6.7.2 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8371 - timestamp: 1715976468368 + purls: [] + size: 8796 + timestamp: 1726165015502 - kind: conda name: matplotlib - version: 3.8.4 - build: py311h1ea47a8_2 - build_number: 2 + version: 3.9.2 + build: py311h1ea47a8_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py311h1ea47a8_2.conda - sha256: 6bd16d34367a7571009a3dc0f6067e8c57ba2d772cd9a5da443c842878f72bfb - md5: 97b9e2a44c863a5ad7b20cbbb908db13 + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py311h1ea47a8_1.conda + sha256: f3fdbff50d5be0d581c517a767ce798bb8c95a238219c5445fbe6b9b40260ab2 + md5: 1a99a0c564f411913e6575c2bbbcf096 depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - pyqt >=5.10 + - matplotlib-base >=3.9.2,<3.9.3.0a0 + - pyside6 >=6.7.2 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8781 - timestamp: 1715977022364 + purls: [] + size: 9210 + timestamp: 1726165882790 - kind: conda name: matplotlib - version: 3.8.4 - build: py311h38be061_2 - build_number: 2 + version: 3.9.2 + build: py311h38be061_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py311h38be061_2.conda - sha256: f1bc7cb045fe64634bbd8bcca97cd0e2fcf99cca527069b54a8e68dea2d17dd1 - md5: 7667100b9559c1b7a40c728cd72dabdf - depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - pyqt >=5.10 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - tornado >=5 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8392 - timestamp: 1715976479383 -- kind: conda - name: matplotlib - version: 3.8.4 - build: py311h6eed73b_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py311h6eed73b_2.conda - sha256: 289c70753c8f4a4d1592b8759b59228929391d4450a844a8375fb7e2241da608 - md5: ca778ed2dd6076bd994bcd7db65820e4 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py311h38be061_1.conda + sha256: dec8643bfdddf85d2b4da063df46929344c65da0b36b9f801875667872a95bfb + md5: 5d36938ae602feb12f064db4b6fda7cf depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 + - matplotlib-base >=3.9.2,<3.9.3.0a0 + - pyside6 >=6.7.2 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8498 - timestamp: 1715976619504 + purls: [] + size: 8795 + timestamp: 1726165022112 - kind: conda name: matplotlib - version: 3.8.4 - build: py311ha1ab1f8_2 - build_number: 2 + version: 3.9.2 + build: py311ha1ab1f8_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py311ha1ab1f8_2.conda - sha256: b4e069c685e1154e64cc848152bfb69f24d33cabbe66673087664e7b60bff93f - md5: e26f0e6737d62fb305d49eb4953de6d1 + url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py311ha1ab1f8_1.conda + sha256: 8331e37a5e2a564f3cefbf2425daf7ef9fe6b15609f5deb888c6708b27c58065 + md5: 1fed74641bf248bbc08a7788ba9a48f6 depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 + - matplotlib-base >=3.9.2,<3.9.3.0a0 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8523 - timestamp: 1715976611356 + purls: [] + size: 8908 + timestamp: 1726165112568 - kind: conda name: matplotlib - version: 3.8.4 - build: py312h1f38498_2 - build_number: 2 + version: 3.9.2 + build: py312h1f38498_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.8.4-py312h1f38498_2.conda - sha256: 5dca57eb2aac0fc1847e9957f3f647dc1fc94c2f8c6fc320f8e78cb9712a293a - md5: 4a1e2726be0a5378e1fc207716dff763 + url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.9.2-py312h1f38498_1.conda + sha256: 6fb7dd99a9706290aa653afda9ce7d70c4218325cfb1670683c2ea74a220d8e5 + md5: 9b1d61b4967cbfcd4f97a5f6a2fc01bd depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 + - matplotlib-base >=3.9.2,<3.9.3.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8519 - timestamp: 1715976654609 + purls: [] + size: 8924 + timestamp: 1726165048680 - kind: conda name: matplotlib - version: 3.8.4 - build: py312h2e8e312_2 - build_number: 2 + version: 3.9.2 + build: py312h2e8e312_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.4-py312h2e8e312_2.conda - sha256: f9b0bc0f6ee4178c3fa438ab5996ed25e8ec5ba8e12983b4e521e2c4a5f2986f - md5: 68c7578d376386643ade755b40ed98e3 - depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - pyqt >=5.10 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tornado >=5 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8836 - timestamp: 1715977035771 -- kind: conda - name: matplotlib - version: 3.8.4 - build: py312h7900ff3_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.4-py312h7900ff3_2.conda - sha256: 1aee6e72bcd0ef31212388c2f5b3fcd70227963216c2d4c2220104322be4d577 - md5: ac26198045dff11c94202bb3e1bdc132 + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.9.2-py312h2e8e312_1.conda + sha256: b83f0ab8024cb392f56c61427d8ca05a09ea2be2e7bd47870984e99322cb5ec5 + md5: a27a47ecb8ad494b3edd0746b9dcb362 depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - pyqt >=5.10 + - matplotlib-base >=3.9.2,<3.9.3.0a0 + - pyside6 >=6.7.2 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8390 - timestamp: 1715976480596 + purls: [] + size: 9231 + timestamp: 1726165963481 - kind: conda name: matplotlib - version: 3.8.4 - build: py312hb401068_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.4-py312hb401068_2.conda - sha256: f4298083f645527cae48811862bfc91f975f3732a4889e0c18018fa5397fb318 - md5: 456c057a3e2dcac3d02f4b9d25e277f5 - depends: - - matplotlib-base >=3.8.4,<3.8.5.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tornado >=5 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 8507 - timestamp: 1715976644914 -- kind: conda - name: matplotlib-base - version: 3.8.4 - build: py310h7ea1ff3_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py310h7ea1ff3_2.conda - sha256: d5d4b1630d1821a67925521eebb28f76e07a9b43f254db8e8c9945e48f1c7a9f - md5: 911fdee5b3bf83ca46640eb718233535 - depends: - - __osx >=10.13 - - certifi >=2020.06.20 - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - freetype >=2.12.1,<3.0a0 - - kiwisolver >=1.3.1 - - libcxx >=16 - - numpy >=1.19,<3 - - numpy >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python >=3.10,<3.11.0a0 - - python-dateutil >=2.7 - - python_abi 3.10.* *_cp310 + version: 3.9.2 + build: py312h7900ff3_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.9.2-py312h7900ff3_1.conda + sha256: 36eba5fde11962133b469c4121d83e26fba48654ee8f5753e5ffaf36d8631c47 + md5: 07d5646ea9f22f4b1c46c2947d1b2f58 + depends: + - matplotlib-base >=3.9.2,<3.9.3.0a0 + - pyside6 >=6.7.2 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - tornado >=5 license: PSF-2.0 license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 6980632 - timestamp: 1715976516176 + purls: [] + size: 8821 + timestamp: 1726164949072 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py310hadb10a8_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py310hadb10a8_2.conda - sha256: bc3ecb8e9f68fd1b4214e223f08e94d8f88e6fdc237dc0e86efcb9f090737e96 - md5: 8f5e26aa64ab245691efb7f87c584060 + version: 3.9.2 + build: py310h2a20ac7_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py310h2a20ac7_1.conda + sha256: 56b7887e3c4088a5b612fb7638449cee579ee2952357c345fe06d84a70513031 + md5: 3b84a6cbc756868e6ffb64914097591e depends: + - __osx >=11.0 - certifi >=2020.06.20 - contourpy >=1.0.1 - cycler >=0.10 - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 + - libcxx >=17 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python-dateutil >=2.7 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - qhull >=2020.2,<2020.3.0a0 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 6704354 - timestamp: 1715976946311 + - pkg:pypi/matplotlib?source=hash-mapping + size: 6866757 + timestamp: 1726165116518 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py310hedb7998_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py310hedb7998_2.conda - sha256: 863a259f44940e17a3711e62899e536ca81796689cf8a046a956f3d1abe0bc2e - md5: 60b2cad9f6e0b0560e93861543b53964 + version: 3.9.2 + build: py310h37e0a56_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py310h37e0a56_1.conda + sha256: 865d087fcd4ef683d11582cd9474cad306ca3adc64288acbe4e46b8929d3176c + md5: 7f3aae6f7c9dae68b36c1649210a754f depends: - - __osx >=11.0 - certifi >=2020.06.20 - contourpy >=1.0.1 - cycler >=0.10 - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 - - libcxx >=16 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python-dateutil >=2.7 - python_abi 3.10.* *_cp310 + - qhull >=2020.2,<2020.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 6886263 - timestamp: 1715976659236 + - pkg:pypi/matplotlib?source=hash-mapping + size: 6739898 + timestamp: 1726165988243 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py310hef631a5_2 - build_number: 2 + version: 3.9.2 + build: py310h68603db_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py310hef631a5_2.conda - sha256: 5733c68ff72a04a42d8363965155d4b27a1ed3364a507b8cac582c0b4881d222 - md5: b3fa3fc2a0fa8b53b913c94297b12e27 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py310h68603db_1.conda + sha256: 1991929e03689d984fb4c18649a8fb418366a6695dbc5054a3004f4a831e4357 + md5: 989ef368e7b81b6c28e608e651a2a7d8 depends: + - __glibc >=2.17,<3.0.a0 - certifi >=2020.06.20 - contourpy >=1.0.1 - cycler >=0.10 - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.10,<3.11.0a0 - python-dateutil >=2.7 - python_abi 3.10.* *_cp310 + - qhull >=2020.2,<2020.3.0a0 - tk >=8.6.13,<8.7.0a0 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 6859991 - timestamp: 1715976427804 + - pkg:pypi/matplotlib?source=hash-mapping + size: 7008876 + timestamp: 1726164994128 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py311h000fb6e_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py311h000fb6e_2.conda - sha256: 84b454a56d464439d04b24f39aa70c3c6ca54967a6633096e2af4d21bc78dafb - md5: 6d97618476a1c227b47c78ed34777466 + version: 3.9.2 + build: py311h2b939e6_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py311h2b939e6_1.conda + sha256: c9ed6981f9e549d296f40d5534dee1c77b71727bc363a0eb47f57e29c9d46932 + md5: db431da3476c884ef08d9f42a32913b6 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 - certifi >=2020.06.20 - contourpy >=1.0.1 - cycler >=0.10 - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 - - libcxx >=16 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - python-dateutil >=2.7 - python_abi 3.11.* *_cp311 + - qhull >=2020.2,<2020.3.0a0 + - tk >=8.6.13,<8.7.0a0 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7873166 - timestamp: 1715976559228 + - pkg:pypi/matplotlib?source=hash-mapping + size: 8026168 + timestamp: 1726164999361 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py311h9b31f6e_2 - build_number: 2 + version: 3.9.2 + build: py311h8f1b1e4_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py311h9b31f6e_2.conda - sha256: 857ed04795a1e3ea1939d8990fe0f6122b086445f72f92afe50de74ae19977d0 - md5: dbf84485273ba5fea107ef140a173e30 + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py311h8f1b1e4_1.conda + sha256: 8a7bf433aefd83a74b9d3029c64044f69aaa8892850ae8bc6d25d69719a8725b + md5: 959124749217c7ac1ac4e7dc8d4bb491 depends: - certifi >=2020.06.20 - contourpy >=1.0.1 @@ -24133,96 +21504,66 @@ packages: - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.11,<3.12.0a0 - python-dateutil >=2.7 - python_abi 3.11.* *_cp311 + - qhull >=2020.2,<2020.3.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7671314 - timestamp: 1715976956766 -- kind: conda - name: matplotlib-base - version: 3.8.4 - build: py311ha4ca890_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py311ha4ca890_2.conda - sha256: 19a65ac35a9f48b3f0277b723b832052728d276e70c0ad1057f5b5bbe1f1ba28 - md5: 0848e2084cbb57014f232f48568561af - depends: - - certifi >=2020.06.20 - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - freetype >=2.12.1,<3.0a0 - - kiwisolver >=1.3.1 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - numpy >=1.19,<3 - - numpy >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python >=3.11,<3.12.0a0 - - python-dateutil >=2.7 - - python_abi 3.11.* *_cp311 - - tk >=8.6.13,<8.7.0a0 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7812607 - timestamp: 1715976443225 + - pkg:pypi/matplotlib?source=hash-mapping + size: 7916452 + timestamp: 1726165835683 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py311hff79762_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py311hff79762_2.conda - sha256: 55ef2a9bb6a6638df534eb9ca8a0c838b750975bc89ba9a10db43cead44e33d3 - md5: 0557edaf2d4dba4a161e7d5f574040df + version: 3.9.2 + build: py311hbe3227e_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py311hbe3227e_1.conda + sha256: 80f5015a5377c8dfd8870242293d9ac39150e3077bdd1ee1652b2aca5be95415 + md5: 6b9125eb14afb3baac0b630c3a33d21b depends: - - __osx >=10.13 + - __osx >=11.0 - certifi >=2020.06.20 - contourpy >=1.0.1 - cycler >=0.10 - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 - - libcxx >=16 + - libcxx >=17 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python-dateutil >=2.7 - python_abi 3.11.* *_cp311 + - qhull >=2020.2,<2020.3.0a0 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7917411 - timestamp: 1715976564196 + - pkg:pypi/matplotlib?source=hash-mapping + size: 7909507 + timestamp: 1726165084871 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py312h20ab3a6_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.4-py312h20ab3a6_2.conda - sha256: a927afa9e4b5cf7889b5a82ef2286b089873f402a0d0e10e6adb4cbf820a4db9 - md5: fbfe798f83f0d66410903ad8f40d5283 + version: 3.9.2 + build: py312h90004f6_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.9.2-py312h90004f6_1.conda + sha256: ee7d8321d254082f6531b4a8437272cbacac7e76e51dd2b25378be4ba379fbc1 + md5: cb6fe391da87c2fe0a0566ea3d9b0a0c depends: - certifi >=2020.06.20 - contourpy >=1.0.1 @@ -24230,32 +21571,33 @@ packages: - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.12,<3.13.0a0 - python-dateutil >=2.7 - python_abi 3.12.* *_cp312 - - tk >=8.6.13,<8.7.0a0 + - qhull >=2020.2,<2020.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7762905 - timestamp: 1715976444870 + - pkg:pypi/matplotlib?source=hash-mapping + size: 7803682 + timestamp: 1726165916612 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py312h4479663_2 - build_number: 2 + version: 3.9.2 + build: py312h9bd0bc6_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.4-py312h4479663_2.conda - sha256: 8cfd26be70088f5326aaab101bd6ff37bb21ba3b13cc81c987628484cb7128cf - md5: e4c7e00cc31a921bb2541c10c3c58a8c + url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.9.2-py312h9bd0bc6_1.conda + sha256: b3289cea8de29ba5b9fb437d3e4e32d2cbf88998890378a4e729c5be08e1ba41 + md5: b6a861da93e2f4fcecdb01ff7b8fc160 depends: - __osx >=11.0 - certifi >=2020.06.20 @@ -24264,9 +21606,9 @@ packages: - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 - - libcxx >=16 + - libcxx >=17 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 @@ -24274,77 +21616,48 @@ packages: - python >=3.12,<3.13.0a0 *_cpython - python-dateutil >=2.7 - python_abi 3.12.* *_cp312 + - qhull >=2020.2,<2020.3.0a0 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7595371 - timestamp: 1715976603558 -- kind: conda - name: matplotlib-base - version: 3.8.4 - build: py312hb6d62fa_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.4-py312hb6d62fa_2.conda - sha256: 98a4ab9355a473a291c826d7536c0e864adc06d9e846507d100a74a1d690ddce - md5: 6c5cf505d118f4b58961191fd5e0d030 - depends: - - __osx >=10.13 - - certifi >=2020.06.20 - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - freetype >=2.12.1,<3.0a0 - - kiwisolver >=1.3.1 - - libcxx >=16 - - numpy >=1.19,<3 - - numpy >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python >=3.12,<3.13.0a0 - - python-dateutil >=2.7 - - python_abi 3.12.* *_cp312 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7775938 - timestamp: 1715976578635 + - pkg:pypi/matplotlib?source=hash-mapping + size: 7790076 + timestamp: 1726165022207 - kind: conda name: matplotlib-base - version: 3.8.4 - build: py312hfee7060_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.4-py312hfee7060_2.conda - sha256: 023644d13bf1fab7c58f4df0d461cd237874802b0e7370ad049463d39d2fb2f4 - md5: 6b623fa66ac3cd1601da60160c46514b + version: 3.9.2 + build: py312hd3ec401_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.9.2-py312hd3ec401_1.conda + sha256: 3efd50d9b7b0f1b30611585810d4ae7566d7c860c101f47ec9372f6d4a80d040 + md5: 2f4f3854f23be30de29e9e4d39758349 depends: + - __glibc >=2.17,<3.0.a0 - certifi >=2020.06.20 - contourpy >=1.0.1 - cycler >=0.10 - fonttools >=4.22.0 - freetype >=2.12.1,<3.0a0 - kiwisolver >=1.3.1 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 - - numpy >=1.21 + - numpy >=1.23 - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - python >=3.12,<3.13.0a0 - python-dateutil >=2.7 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - qhull >=2020.2,<2020.3.0a0 + - tk >=8.6.13,<8.7.0a0 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=conda-forge-mapping - size: 7807157 - timestamp: 1715976971476 + - pkg:pypi/matplotlib?source=hash-mapping + size: 7892651 + timestamp: 1726164930325 - kind: conda name: matplotlib-inline version: 0.1.7 @@ -24360,7 +21673,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/matplotlib-inline?source=conda-forge-mapping + - pkg:pypi/matplotlib-inline?source=hash-mapping size: 14599 timestamp: 1713250613726 - kind: conda @@ -24377,53 +21690,64 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/mdurl?source=conda-forge-mapping + - pkg:pypi/mdurl?source=hash-mapping size: 14680 timestamp: 1704317789138 - kind: conda name: metis version: 5.1.0 - build: h13dd4ca_1007 + build: h15f6cfe_1007 build_number: 1007 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/metis-5.1.0-h13dd4ca_1007.conda - sha256: fae516bee76df367128cf81dae13e7d11ce039ff61665ca59a1c57dee0731973 - md5: afefade086a45ae6703dffe83516010a + url: https://conda.anaconda.org/conda-forge/osx-arm64/metis-5.1.0-h15f6cfe_1007.conda + sha256: f54ad3e5d47a0235ba2830848fee590faad550639336fe1e2413ab16fee7ac39 + md5: 7687ec5796288536947bf616179726d8 + depends: + - __osx >=11.0 license: Apache-2.0 license_family: APACHE purls: [] - size: 3832170 - timestamp: 1693403045166 + size: 3898314 + timestamp: 1728064659078 - kind: conda name: metis version: 5.1.0 - build: h59595ed_1007 + build: hd0bcaf9_1007 build_number: 1007 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.0-h59595ed_1007.conda - sha256: 446bf794497284e2ffa28ab9191d70c38d372c51e3fd073f0d8b35efb51e7e02 - md5: 40ccb8318df2500f83bd868dd8fcd201 + url: https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.0-hd0bcaf9_1007.conda + sha256: e8a00971e6d00bd49f375c5d8d005b37a9abba0b1768533aed0f90a422bf5cc7 + md5: 28eb714416de4eb83e2cbc47e99a1b45 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 license: Apache-2.0 license_family: APACHE purls: [] - size: 3890263 - timestamp: 1693402645559 + size: 3923560 + timestamp: 1728064567817 - kind: conda - name: metis - version: 5.1.0 - build: he965462_1007 - build_number: 1007 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/metis-5.1.0-he965462_1007.conda - sha256: a79b36e0c623dfab95cc2c0fce1870e90de5f2328fefa9a1b17351eb0f3ac02e - md5: 0c64ad59bbcae7772c16a55cbd353e25 + name: minio + version: 7.2.10 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/minio-7.2.10-pyhd8ed1ab_0.conda + sha256: e2d1d43bc765c8588bc0b975f2df016fe286568d9c7aecb6d0877c2c39817db1 + md5: cdf949b4c79d37f2847a53a14596ddf7 + depends: + - argon2-cffi + - certifi + - pycryptodome + - python >=3.7 + - urllib3 license: Apache-2.0 - license_family: APACHE - purls: [] - size: 3881273 - timestamp: 1693402943049 + license_family: Apache + purls: + - pkg:pypi/minio?source=hash-mapping + size: 68695 + timestamp: 1729843922135 - kind: conda name: minizip version: 4.0.6 @@ -24489,28 +21813,6 @@ packages: purls: [] size: 91409 timestamp: 1718483022284 -- kind: conda - name: minizip - version: 4.0.7 - build: h62b0c8d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.7-h62b0c8d_0.conda - sha256: e02a6e1a43b0ff44bb9460d46d3f7687a1876d435fb3c2c6cf9e19bab60901f6 - md5: 9cb19284d7d835918241acf8180099db - depends: - - __osx >=10.13 - - bzip2 >=1.0.8,<2.0a0 - - libcxx >=16 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 - - xz >=5.2.6,<6.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: Zlib - license_family: Other - purls: [] - size: 78595 - timestamp: 1718483214061 - kind: conda name: mistune version: 3.0.2 @@ -24525,43 +21827,26 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/mistune?source=conda-forge-mapping + - pkg:pypi/mistune?source=hash-mapping size: 66022 timestamp: 1698947249750 - kind: conda name: mkl - version: 2024.1.0 - build: h66d3029_692 - build_number: 692 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.1.0-h66d3029_692.conda - sha256: abfdb5eb3a17af59a827ea49fcb4d2bf18e70b62498bf3720351962e636cb5b7 - md5: b43ec7ed045323edeff31e348eea8652 - depends: - - intel-openmp 2024.* - - tbb 2021.* - license: LicenseRef-ProprietaryIntel - license_family: Proprietary - purls: [] - size: 109491063 - timestamp: 1712153746272 -- kind: conda - name: mkl - version: 2024.2.0 - build: h66d3029_662 - build_number: 662 + version: 2024.2.2 + build: h66d3029_14 + build_number: 14 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.0-h66d3029_662.conda - sha256: e2316294a7e1dd639ee553e2c8ac3b68a60edecbc2de05a03f5809f1f77782d3 - md5: 145645fb21880447befb3ab4c6f79245 + url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_14.conda + sha256: 098ba4a3cb82f627bc79dc0ab1111b44859c9ef4aaa8d75ce043bce107770cb3 + md5: f011e7cc21918dc9d1efe0209e27fa16 depends: - intel-openmp 2024.* - tbb 2021.* license: LicenseRef-IntelSimplifiedSoftwareOct2022 license_family: Proprietary purls: [] - size: 103365962 - timestamp: 1720049741989 + size: 103019089 + timestamp: 1727378392081 - kind: conda name: mock version: 5.1.0 @@ -24576,137 +21861,151 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/mock?source=conda-forge-mapping + - pkg:pypi/mock?source=hash-mapping size: 33581 timestamp: 1689092227859 - kind: conda name: more-itertools - version: 10.3.0 + version: 10.5.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.3.0-pyhd8ed1ab_0.conda - sha256: 9c485cc52dfd646ea584e9055c1bbaac8f27687d806c1ef00f299ec2e642ce04 - md5: a57fb23d0260a962a67c7d990ec1c812 + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + sha256: 2315b7dba237e16b0e1b601725a8e03e062421e0be28d8a25dc35dd9bd93a342 + md5: 3364591bebd600979606791e1dff7cb6 depends: - python >=3.8 license: MIT license_family: MIT purls: - - pkg:pypi/more-itertools?source=conda-forge-mapping - size: 56261 - timestamp: 1718048569497 + - pkg:pypi/more-itertools?source=hash-mapping + size: 57345 + timestamp: 1725630183289 - kind: conda name: mpfr version: 4.2.1 - build: h41d338b_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.1-h41d338b_1.conda - sha256: a0b183cdf8bd1f2462d965f7a065cbfc32669d95bb6c8f970f7c7f63d2938436 - md5: 616d9bb6983991de582589b9a06e4cea + build: h90cbb55_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda + sha256: f25d2474dd557ca66c6231c8f5ace5af312efde1ba8290a6ea5e1732a4e669c0 + md5: 2eeb50cab6652538eee8fc0bc3340c81 depends: + - __glibc >=2.17,<3.0.a0 - gmp >=6.3.0,<7.0a0 + - libgcc >=13 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 346880 - timestamp: 1712339687453 + size: 634751 + timestamp: 1725746740014 - kind: conda name: mpfr version: 4.2.1 - build: h4f6b447_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-h4f6b447_1.conda - sha256: 002209e7d1f21cdd04de17050ab2050de4347e5bf04210ce6a636cbabf43e1d0 - md5: b90df08f0deb2f58631447c1462c92a7 + build: hb693164_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.1-hb693164_3.conda + sha256: 4463e4e2aba7668e37a1b8532859191b4477a6f3602a5d6b4d64ad4c4baaeac5 + md5: 4e4ea852d54cc2b869842de5044662fb depends: + - __osx >=11.0 - gmp >=6.3.0,<7.0a0 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 373442 - timestamp: 1712339833358 + size: 345517 + timestamp: 1725746730583 - kind: conda - name: mpfr - version: 4.2.1 - build: h9458935_1 - build_number: 1 + name: mpg123 + version: 1.32.9 + build: hc50e24c_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h9458935_1.conda - sha256: 38c501f6b8dff124e57711c01da23e204703a3c14276f4cf6abd28850b2b9893 - md5: 8083b20f566639c22f78bcd6ca35b276 + url: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.9-hc50e24c_0.conda + sha256: 39c4700fb3fbe403a77d8cc27352fa72ba744db487559d5d44bf8411bb4ea200 + md5: c7f302fd11eeb0987a6a5e1f3aed6a21 depends: - - gmp >=6.3.0,<7.0a0 - - libgcc-ng >=12 - license: LGPL-3.0-only + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + license: LGPL-2.1-only license_family: LGPL purls: [] - size: 643060 - timestamp: 1712339500544 + size: 491140 + timestamp: 1730581373280 - kind: conda - name: mpg123 - version: 1.32.6 - build: h59595ed_0 + name: mpi + version: '1.0' + build: openmpi subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.6-h59595ed_0.conda - sha256: 8895a5ce5122a3b8f59afcba4b032f198e8a690a0efc95ef61f2135357ef0d72 - md5: 9160cdeb523a1b20cf8d2a0bf821f45d - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: LGPL-2.1-only - license_family: LGPL + url: https://conda.anaconda.org/conda-forge/linux-64/mpi-1.0-openmpi.tar.bz2 + sha256: 54cf44ee2c122bce206f834a825af06e3b14fc4fd58c968ae9329715cc281d1e + md5: 1dcc49e16749ff79ba2194fa5d4ca5e7 + arch: x86_64 + platform: linux + license: BSD 3-clause + purls: [] + size: 4204 +- kind: conda + name: mpi + version: '1.0' + build: openmpi + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/mpi-1.0-openmpi.tar.bz2 + sha256: 7051ff40ca1208c06db24f8bf5cf72ee7ad03891e7fd365c3f7a4190938ae83a + md5: cb269c879b1ac5e5ab62a3c17528c40f + license: BSD 3-clause purls: [] - size: 491811 - timestamp: 1712327176955 + size: 4294 + timestamp: 1605464601195 - kind: conda name: msgpack-python - version: 1.0.8 - build: py310h25c7140_0 + version: 1.1.0 + build: py310h3788b33_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py310h25c7140_0.conda - sha256: d7de996a5188f89b149fcfad848968c279c05f291801a28b10ae758e7355cc44 - md5: ad681a3290620ca6196bcd46ed3101cd + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py310h3788b33_0.conda + sha256: 73ca5f0c7d0727a57dcc3c402823ce3aa159ca075210be83078fcc485971e259 + md5: 6b586fb03d84e5bfbb1a8a3d9e2c9b60 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 96849 - timestamp: 1715670779124 + - pkg:pypi/msgpack?source=hash-mapping + size: 98083 + timestamp: 1725975111763 - kind: conda name: msgpack-python - version: 1.0.8 - build: py310h5334dd0_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py310h5334dd0_0.conda - sha256: dd095010d1b0392e3090ef99258fdff94c12e7cf81db5624ea1dc8803862eec9 - md5: 1ffe12f2799b78708e07ef810c304933 + version: 1.1.0 + build: py310h7306fd8_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py310h7306fd8_0.conda + sha256: 4736de9b2a239b202749881c8fa690dc5c882198cc2a2a8460567f0b9994e98e + md5: 85b4e3f64bf1fdc6f7d210a7c34037f9 depends: - - __osx >=10.13 - - libcxx >=16 + - __osx >=11.0 + - libcxx >=17 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 85969 - timestamp: 1715670941626 + - pkg:pypi/msgpack?source=hash-mapping + size: 84604 + timestamp: 1725975212736 - kind: conda name: msgpack-python - version: 1.0.8 + version: 1.1.0 build: py310hc19bc0b_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py310hc19bc0b_0.conda - sha256: f880861554e8dc98dec30ae039bcd8d491ce1b411a01e5b1e50270840eb57a8d - md5: f1188194dd35d19b490d8d13f6380f19 + url: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py310hc19bc0b_0.conda + sha256: db5c3d5e2d28ba0e4e1633f6d52079f0e397bdb60a6f58a2fa942e88071182d2 + md5: 2cfcbd596afd76879de4824c2c24f4a2 depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -24716,173 +22015,117 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 83204 - timestamp: 1715671168114 + - pkg:pypi/msgpack?source=hash-mapping + size: 82057 + timestamp: 1725975615063 - kind: conda name: msgpack-python - version: 1.0.8 - build: py310he1a186f_0 + version: 1.1.0 + build: py311h2c37856_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py310he1a186f_0.conda - sha256: c92d58b80407ee9cc5059f311a06cf9ae0e23f557494126b973b706f9f690a5a - md5: 447a2f56f927d93c23989d1355d48a79 + url: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py311h2c37856_0.conda + sha256: aafa8572c72283801148845772fd9d494765bdcf1b8ae6f435e1caff4f1c97f3 + md5: 6c826762702474fb0def6cedd2db5316 depends: - __osx >=11.0 - - libcxx >=16 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 86032 - timestamp: 1715670916277 -- kind: conda - name: msgpack-python - version: 1.0.8 - build: py311h3257749_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py311h3257749_0.conda - sha256: 5917104a6e00f51a28fd217709818d1b765eef3de898601e23b2fb364d824186 - md5: 25ab436993969840e7c521197c044300 - depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 89483 - timestamp: 1715671288024 -- kind: conda - name: msgpack-python - version: 1.0.8 - build: py311h46c8309_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py311h46c8309_0.conda - sha256: 3d575b0c8e6dcbbdc7c27f3f93b68c72adf2cfac3c88b792b12b35fd4b9ba4ac - md5: e451ed01f83544c6029f8fe29d0e9fe3 - depends: - - __osx >=10.13 - - libcxx >=16 + - libcxx >=17 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 92344 - timestamp: 1715670916175 + - pkg:pypi/msgpack?source=hash-mapping + size: 91131 + timestamp: 1725975234150 - kind: conda name: msgpack-python - version: 1.0.8 - build: py311h52f7536_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py311h52f7536_0.conda - sha256: 8b0b4def742cebde399fd3244248e6db5b6843e7db64a94a10d6b649a3f20144 - md5: f33f59b8130753174992f409a41e112e - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 + version: 1.1.0 + build: py311h3257749_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py311h3257749_0.conda + sha256: 4e6a7979b434308ce5588970cb613952e3340bb2f9e63aaad7e5069ef1f08d1d + md5: 36562593204b081d0da8a8bfabfb278b + depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 103577 - timestamp: 1715670788972 + - pkg:pypi/msgpack?source=hash-mapping + size: 89472 + timestamp: 1725975909671 - kind: conda name: msgpack-python - version: 1.0.8 - build: py311h6bde47b_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py311h6bde47b_0.conda - sha256: d7f42bb89e656b70c4be5e85dd409aab2bf11aa4638589cfd030306c9d682e6d - md5: 649b2c1744a0ef73cc7a78cc6a453a9a + version: 1.1.0 + build: py311hd18a35c_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py311hd18a35c_0.conda + sha256: 9033fa7084cbfd10e1b7ed3b74cee17169a0731ec98244d05c372fc4a935d5c9 + md5: 682f76920687f7d9283039eb542fdacf depends: - - __osx >=11.0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 92556 - timestamp: 1715670922825 + - pkg:pypi/msgpack?source=hash-mapping + size: 104809 + timestamp: 1725975116412 - kind: conda name: msgpack-python - version: 1.0.8 - build: py312h157fec4_0 + version: 1.1.0 + build: py312h6142ec9_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.0.8-py312h157fec4_0.conda - sha256: 88abda8e86379e085540cbe54897792b62e61b7f0b77882a7361dba01a4687f4 - md5: b815836e3b798dff1d7a28095761658b + url: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.0-py312h6142ec9_0.conda + sha256: 2b8c22f8a4e0031c2d6fa81d32814c8afdaf7e7fe2e681bf2369a35ff3eab1fd + md5: 0dfc3750cc6bbc463d72c0b727e60d8a depends: - __osx >=11.0 - - libcxx >=16 + - libcxx >=17 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 91912 - timestamp: 1715670824147 + - pkg:pypi/msgpack?source=hash-mapping + size: 90793 + timestamp: 1725975279147 - kind: conda name: msgpack-python - version: 1.0.8 - build: py312h2492b07_0 + version: 1.1.0 + build: py312h68727a3_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.8-py312h2492b07_0.conda - sha256: 3761f57834ae20e49b4665b341057cf8ac2641d6f87e76d3d5cc615bc0dae8cc - md5: 0df463266eaaa1b8a35f8fd26368c1a1 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 103653 - timestamp: 1715670786268 -- kind: conda - name: msgpack-python - version: 1.0.8 - build: py312hc3c9ca0_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.0.8-py312hc3c9ca0_0.conda - sha256: d48287594d4c4a9323deb2f505c52f53f757981d4d16b22231f8831bd22349bf - md5: 87927f3f0037c19ac74ac3f820c26bd1 + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.0-py312h68727a3_0.conda + sha256: 4bc53333774dea1330643b7e23aa34fd6880275737fc2e07491795872d3af8dd + md5: 5c9b020a3f86799cdc6115e55df06146 depends: - - __osx >=10.13 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 91736 - timestamp: 1715670793021 + - pkg:pypi/msgpack?source=hash-mapping + size: 105271 + timestamp: 1725975182669 - kind: conda name: msgpack-python - version: 1.0.8 + version: 1.1.0 build: py312hd5eb7cc_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.0.8-py312hd5eb7cc_0.conda - sha256: 080fad891281a38ff05d417ed4aa59b093d7c5fbb232cd3498dc100baacd8e44 - md5: 83bdd6554fb4bf25195c0dacabeeebf3 + url: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.0-py312hd5eb7cc_0.conda + sha256: 3fd45d9c0830e931e34990cb90e88ba53cc7f89fce69fc7d1a8289639d363e85 + md5: ff4f1e63a6438a06d1ab259936e5c2ac depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -24892,21 +22135,9 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/msgpack?source=conda-forge-mapping - size: 88758 - timestamp: 1715671314905 -- kind: conda - name: msys2-conda-epoch - version: '20160418' - build: '1' - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 - sha256: 99358d58d778abee4dca82ad29fb58058571f19b0f86138363c260049d4ac7f1 - md5: b0309b72560df66f71a9d5e34a5efdfa - purls: [] - size: 3227 - timestamp: 1608166968312 + - pkg:pypi/msgpack?source=hash-mapping + size: 88169 + timestamp: 1725975418157 - kind: conda name: multimethod version: 1.9.1 @@ -24921,7 +22152,7 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/multimethod?source=conda-forge-mapping + - pkg:pypi/multimethod?source=hash-mapping size: 14782 timestamp: 1677278842704 - kind: conda @@ -24938,40 +22169,17 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/munkres?source=conda-forge-mapping + - pkg:pypi/munkres?source=hash-mapping size: 12452 timestamp: 1600387789153 - kind: conda name: mypy - version: 1.10.1 - build: py312h4389bb4_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/mypy-1.10.1-py312h4389bb4_0.conda - sha256: 00e7a8f7ac90709b9195eb5655a55f53b8a0297a563201d75b9406936ed69b0b - md5: 94e70ace716472016f5a717d4ab7531f - depends: - - mypy_extensions >=1.0.0 - - psutil >=4.0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - typing_extensions >=4.1.0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - license_family: MIT - purls: - - pkg:pypi/mypy?source=conda-forge-mapping - size: 8414692 - timestamp: 1719301939732 -- kind: conda - name: mypy - version: 1.10.1 - build: py312h7e5086c_0 + version: 1.13.0 + build: py312h0bf5046_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.10.1-py312h7e5086c_0.conda - sha256: d07f260bde42e963558bedbb5d8607c18a16f71a0dff45fb7cecc85bfcd97c6f - md5: 0aea347a79c70d8134ebd2efc897dda0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.13.0-py312h0bf5046_0.conda + sha256: 29ee058cff0242c843452aceb9a04a1ffb79e979bf60134318ade1d6e3d508be + md5: a214c5fa30882205c822cc40fdde84f5 depends: - __osx >=11.0 - mypy_extensions >=1.0.0 @@ -24983,40 +22191,43 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/mypy?source=conda-forge-mapping - size: 9622339 - timestamp: 1719301964191 + - pkg:pypi/mypy?source=hash-mapping + size: 9891567 + timestamp: 1729644203196 - kind: conda name: mypy - version: 1.10.1 - build: py312h9a8786e_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.10.1-py312h9a8786e_0.conda - sha256: d65af401f7368680f164990f110d084ee5139cd01a62189c76a88ab87ea50285 - md5: 35504aad41d76808fa379bee8cd6882e + version: 1.13.0 + build: py312h4389bb4_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/mypy-1.13.0-py312h4389bb4_0.conda + sha256: b22c8da3d64137de86e2db64e853f6e7349eb79c1ab356fe0b8fbc21473ec0e4 + md5: 13294c27c75c2f5aa133ee394041f187 depends: - - libgcc-ng >=12 - mypy_extensions >=1.0.0 - psutil >=4.0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - typing_extensions >=4.1.0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/mypy?source=conda-forge-mapping - size: 16471696 - timestamp: 1719302037228 + - pkg:pypi/mypy?source=hash-mapping + size: 10210508 + timestamp: 1729644157985 - kind: conda name: mypy - version: 1.10.1 - build: py312hbd25219_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.10.1-py312hbd25219_0.conda - sha256: 353e75ea35e3c44294787f318e710379f7f0618962a918af90e91597a2710dea - md5: 38d751fa3fd6e793f11903f816ee1cfe - depends: - - __osx >=10.13 + version: 1.13.0 + build: py312h66e93f0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.13.0-py312h66e93f0_0.conda + sha256: fbd1a5ac0e0e0fb16ab65395fb9b6d86aa9fb1e32689df13ee45829294a7ec57 + md5: 824a5a98260d4ee4d12fcad92d153c47 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - mypy_extensions >=1.0.0 - psutil >=4.0 - python >=3.12,<3.13.0a0 @@ -25025,9 +22236,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/mypy?source=conda-forge-mapping - size: 10370551 - timestamp: 1719302314714 + - pkg:pypi/mypy?source=hash-mapping + size: 18799862 + timestamp: 1729644961295 - kind: conda name: mypy_extensions version: 1.0.0 @@ -25042,122 +22253,89 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/mypy-extensions?source=conda-forge-mapping + - pkg:pypi/mypy-extensions?source=hash-mapping size: 10492 timestamp: 1675543414256 - kind: conda name: mysql-common - version: 8.3.0 - build: hd1853d3_4 - build_number: 4 + version: 9.0.1 + build: h0887d5e_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-common-8.3.0-hd1853d3_4.conda - sha256: 4ed97297f0278c01ea21eb20335141d5bfb29f5820fabd03f8bc1cb74d3fe9a7 - md5: f93a6079f12ef00195d7d0b96ff98191 + url: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-common-9.0.1-h0887d5e_2.conda + sha256: 7769d67c3b9463e45ec8e57ea3e0adfdd2f17c0c2b32226e1e88ed669baf14fe + md5: 7643ebb29dae0a548c356c5c4d44b79e depends: - - libcxx >=16 - - openssl >=3.2.1,<4.0a0 + - __osx >=11.0 + - libcxx >=17 + - openssl >=3.3.2,<4.0a0 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 800889 - timestamp: 1709915847564 + size: 630582 + timestamp: 1729802112289 - kind: conda name: mysql-common - version: 8.3.0 - build: hf1915f5_4 - build_number: 4 + version: 9.0.1 + build: h266115a_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda - sha256: 4cf6d29e091398735348550cb74cfd5006e04892d54b6b1ba916935f1af1a151 - md5: 784a4df6676c581ca624fbe460703a6d - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - openssl >=3.2.1,<4.0a0 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 784844 - timestamp: 1709910607121 -- kind: conda - name: mysql-common - version: 8.3.0 - build: hfd7a639_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/mysql-common-8.3.0-hfd7a639_4.conda - sha256: 1829b8a277bf7f078c9e3c78a4404b31d77b9e9c006b890435e68438c22c2caf - md5: 65af0764c5a5617539d07c9d243250e3 - depends: - - libcxx >=16 - - openssl >=3.2.1,<4.0a0 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 776212 - timestamp: 1709914020238 -- kind: conda - name: mysql-libs - version: 8.3.0 - build: ha9146f8_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/mysql-libs-8.3.0-ha9146f8_4.conda - sha256: eaabfabb3c39f569a062f1235ff97eb208716ed847ab98b0d2040b2d8acea73b - md5: 507610a153e96fad858e1735779b3781 + url: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-9.0.1-h266115a_2.conda + sha256: bf0c230c35ca70e2c98530eb064a99f0c4d4596793a0be3ca8a3cbd92094ef82 + md5: 85c0dc0bcd110c998b01856975486ee7 depends: - - libcxx >=16 - - libzlib >=1.2.13,<2.0.0a0 - - mysql-common 8.3.0 hfd7a639_4 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - openssl >=3.3.2,<4.0a0 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 1527176 - timestamp: 1709914179461 + size: 649443 + timestamp: 1729804130603 - kind: conda name: mysql-libs - version: 8.3.0 - build: hca2cd23_4 - build_number: 4 + version: 9.0.1 + build: he0572af_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda - sha256: c39cdd1a5829aeffc611f789bdfd4dbd4ce1aa829c73d728defec180b5265d91 - md5: 1b50eebe2a738a3146c154d2eceaa8b6 + url: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-9.0.1-he0572af_2.conda + sha256: e376189cd11304f4089971b372dac8a1cbbab6eacda8ca978ead2c220d16b8a4 + md5: 57a9e7ee3c0840d3c8c9012473978629 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - mysql-common 8.3.0 hf1915f5_4 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - mysql-common 9.0.1 h266115a_2 + - openssl >=3.3.2,<4.0a0 + - zstd >=1.5.6,<1.6.0a0 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 1537884 - timestamp: 1709910705541 + size: 1372671 + timestamp: 1729804203990 - kind: conda name: mysql-libs - version: 8.3.0 - build: hf036fc4_4 - build_number: 4 + version: 9.0.1 + build: he9bc4e1_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-libs-8.3.0-hf036fc4_4.conda - sha256: a48101c076f9a038bd3cfa822df2b20fdc0ccce88f9000c7bee8f6d53a1cc64e - md5: 9cb8011d749d99db2cba868053bcd8cb + url: https://conda.anaconda.org/conda-forge/osx-arm64/mysql-libs-9.0.1-he9bc4e1_2.conda + sha256: ca89f4accacfc2297b5036aa847c2387c53aa937c8f9050ceec275c1be32eec1 + md5: f36d1cf1ffeb604bac5870c04cb4ee8f depends: - - libcxx >=16 - - libzlib >=1.2.13,<2.0.0a0 - - mysql-common 8.3.0 hd1853d3_4 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 + - __osx >=11.0 + - libcxx >=17 + - libzlib >=1.3.1,<2.0a0 + - mysql-common 9.0.1 h0887d5e_2 + - openssl >=3.3.2,<4.0a0 + - zstd >=1.5.6,<1.6.0a0 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 1541174 - timestamp: 1709915999617 + size: 1346928 + timestamp: 1729802330351 - kind: conda name: nbclient version: 0.10.0 @@ -25176,7 +22354,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/nbclient?source=conda-forge-mapping + - pkg:pypi/nbclient?source=hash-mapping size: 27851 timestamp: 1710317767117 - kind: conda @@ -25213,7 +22391,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/nbconvert?source=conda-forge-mapping + - pkg:pypi/nbconvert?source=hash-mapping size: 189599 timestamp: 1718135529468 - kind: conda @@ -25234,47 +22412,40 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/nbformat?source=conda-forge-mapping + - pkg:pypi/nbformat?source=hash-mapping size: 101232 timestamp: 1712239122969 - kind: conda name: ncurses version: '6.5' - build: h5846eda_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h5846eda_0.conda - sha256: 6ecc73db0e49143092c0934355ac41583a5d5a48c6914c5f6ca48e562d3a4b79 - md5: 02a888433d165c99bf09784a7b14d900 + build: h7bae524_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + sha256: 27d0b9ff78ad46e1f3a6c96c479ab44beda5f96def88e2fe626e0a49429d8afc + md5: cb2b0ea909b97b3d70cd3921d1445e1a + depends: + - __osx >=11.0 license: X11 AND BSD-3-Clause purls: [] - size: 823601 - timestamp: 1715195267791 + size: 802321 + timestamp: 1724658775723 - kind: conda name: ncurses version: '6.5' - build: h59595ed_0 + build: he02047a_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda - sha256: 4fc3b384f4072b68853a0013ea83bdfd3d66b0126e2238e1d6e1560747aa7586 - md5: fcea371545eda051b6deafb24889fc69 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a + md5: 70caf8bb6cf39a0b6b7efc885f51c0fe depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 license: X11 AND BSD-3-Clause purls: [] - size: 887465 - timestamp: 1715194722503 -- kind: conda - name: ncurses - version: '6.5' - build: hb89a1cb_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-hb89a1cb_0.conda - sha256: 87d7cf716d9d930dab682cb57b3b8d3a61940b47d6703f3529a155c938a6990a - md5: b13ad5724ac9ae98b6b4fd87e4500ba4 - license: X11 AND BSD-3-Clause - purls: [] - size: 795131 - timestamp: 1715194898402 + size: 889086 + timestamp: 1724658547447 - kind: conda name: nest-asyncio version: 1.6.0 @@ -25289,72 +22460,73 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/nest-asyncio?source=conda-forge-mapping + - pkg:pypi/nest-asyncio?source=hash-mapping size: 11638 timestamp: 1705850780510 - kind: conda name: netcdf4 version: 1.7.1 - build: nompi_py310h0a2a089_101 - build_number: 101 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py310h0a2a089_101.conda - sha256: 17b72d0352f280315bd28f3e9e000fcba2b7e202c4fa8a59b5f9f66b5636bcc7 - md5: c887820d671c021714762ef4f684bd79 + build: nompi_py312h21d6d8e_102 + build_number: 102 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h21d6d8e_102.conda + sha256: f67d72abb50d377b5da073d2947791bb4d32bda90d6335ed4bf34a2926383723 + md5: 9049ba34261ce7106220711d313fcf61 depends: + - __glibc >=2.17,<3.0.a0 - certifi - cftime - hdf5 >=1.14.3,<1.14.4.0a0 + - libgcc >=13 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - setuptools - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 994695 - timestamp: 1718724766006 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1137026 + timestamp: 1725450146547 - kind: conda name: netcdf4 version: 1.7.1 - build: nompi_py310ha109cee_101 - build_number: 101 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py310ha109cee_101.conda - sha256: 60a130616b88fa6a5895e588c97fcdb3860224d4d38804f0b02548786c4d2c92 - md5: beac9c2b3808c53106a68e181ec30194 + build: nompi_py312h39e0dc6_102 + build_number: 102 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_102.conda + sha256: 70b8b3fff75d41ba10fc06f568130b54969fc28fd6674e3be86c5eabab381a3f + md5: 00e958aeef8da8698a6bd2fb896faa23 depends: - - __osx >=10.13 - certifi - cftime - hdf5 >=1.14.3,<1.14.4.0a0 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - setuptools + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1038244 - timestamp: 1718724486191 + - pkg:pypi/netcdf4?source=hash-mapping + size: 989154 + timestamp: 1725450680905 - kind: conda name: netcdf4 version: 1.7.1 - build: nompi_py310hae0c4a6_101 - build_number: 101 + build: nompi_py312hd88a8d4_102 + build_number: 102 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py310hae0c4a6_101.conda - sha256: 4fa1f7cec52a4c9738c4124d30e62ad6c599a9ff58f07538b02d9526d5a69b28 - md5: efa44adedd0b411f55e5bd0998690e68 + url: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hd88a8d4_102.conda + sha256: 3b139bfdc7b1f3ae91b60e7b72f82ecdf78ae98c9320eee48232b511ef93c9e9 + md5: 39de18786559be27a43939d324e5bfe6 depends: - __osx >=11.0 - certifi @@ -25363,307 +22535,228 @@ packages: - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 - setuptools license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1033174 - timestamp: 1718725110472 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1022559 + timestamp: 1725450729240 - kind: conda name: netcdf4 - version: 1.7.1 - build: nompi_py310hf3005e6_101 - build_number: 101 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py310hf3005e6_101.conda - sha256: 7387031188545ceb57a345153f25fec41974321ebc049ae0e83979f9a2483cf9 - md5: 409736627835306542425033e2a41dd2 + version: 1.7.2 + build: nompi_py310h39c5739_100 + build_number: 100 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.2-nompi_py310h39c5739_100.conda + sha256: 914fb83af85e80265803d44b5edf7fd91a84e75c8964bc4bfc01136ccbff6807 + md5: 62cbc4f1c6994d2edad64d28b64928a5 depends: - certifi - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgcc-ng >=12 + - hdf5 >=1.14.4,<1.14.5.0a0 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - setuptools + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1134622 - timestamp: 1718724335910 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1003885 + timestamp: 1729662850255 - kind: conda name: netcdf4 - version: 1.7.1 - build: nompi_py311h25b3b55_101 - build_number: 101 + version: 1.7.2 + build: nompi_py310h5146f0f_100 + build_number: 100 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py311h25b3b55_101.conda - sha256: 225cdb356a51baeb0937e801292c6c16000777be1013f226d799e515edf4c2c1 - md5: 936afeddfa3704eb834d0887b0838826 + url: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.2-nompi_py310h5146f0f_100.conda + sha256: efa73686d0069cee738b104633565e67fd372e7cbe3af575dd55273ecd7d10bf + md5: 82a474392c02d35a969aaad569cbbca8 depends: + - __glibc >=2.17,<3.0.a0 - certifi - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgcc-ng >=12 + - hdf5 >=1.14.4,<1.14.5.0a0 + - libgcc >=13 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - setuptools + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1140531 - timestamp: 1718724259724 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1147625 + timestamp: 1729662496375 - kind: conda name: netcdf4 - version: 1.7.1 - build: nompi_py311h42682c7_101 - build_number: 101 + version: 1.7.2 + build: nompi_py310haf4bbc2_100 + build_number: 100 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py311h42682c7_101.conda - sha256: 29a2eb92a5e88d698bc947b92bf27bc6f244e89e97a71de0ad7493a6078c7c12 - md5: 87559315bbe21d9a322012772b854eb4 + url: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.2-nompi_py310haf4bbc2_100.conda + sha256: 984085a2aef0a554702370d5b093df2ec35c2090765482ae5a1b8d3a3edfacbc + md5: dc37d2d54719fa16aa57a7680265b64b depends: - __osx >=11.0 - certifi - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 + - hdf5 >=1.14.4,<1.14.5.0a0 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - setuptools + - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython + - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1038191 - timestamp: 1718724874931 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1041090 + timestamp: 1729662995250 - kind: conda name: netcdf4 - version: 1.7.1 - build: nompi_py311ha7361b2_101 - build_number: 101 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py311ha7361b2_101.conda - sha256: eed3d2ae67abbad83cde3a7748042d0e24d7a98780ab6215a131b14204874bd6 - md5: d798c51d8df3a8a54936fef2ed77f8cf + version: 1.7.2 + build: nompi_py311h7c29e4f_100 + build_number: 100 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.2-nompi_py311h7c29e4f_100.conda + sha256: bc94802624f241fdb7999d414a7bd5e4a6d3a0e6ae5454bdf428819c07261754 + md5: 11395670c4eeda7a60c13c313a83727f depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - certifi - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 + - hdf5 >=1.14.4,<1.14.5.0a0 + - libgcc >=13 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - - setuptools license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1046878 - timestamp: 1718724394281 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1154059 + timestamp: 1729667693885 - kind: conda name: netcdf4 - version: 1.7.1 - build: nompi_py311hbdc12eb_101 - build_number: 101 + version: 1.7.2 + build: nompi_py311hc43f1c8_100 + build_number: 100 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py311hbdc12eb_101.conda - sha256: ea9a820b60a21b07edc2ed6e7f1b89377d293ed25b13eaf915b9262449465437 - md5: 5befdc14ec7dcbd30640682812e899d6 + url: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.2-nompi_py311hc43f1c8_100.conda + sha256: 83089e3b03bdfc048a1e2a0b860e6882031a72eac8c7aecd13b0e9402745f07c + md5: 5871f94c855c953ca3abc768f1420f3c depends: - certifi - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 + - hdf5 >=1.14.4,<1.14.5.0a0 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - - setuptools - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - license_family: MIT - purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1003846 - timestamp: 1718724836540 -- kind: conda - name: netcdf4 - version: 1.7.1 - build: nompi_py312h1ef7fb6_101 - build_number: 101 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.1-nompi_py312h1ef7fb6_101.conda - sha256: 4a9db499859641461c3b77bf8f4d152bc4106a0c85273fc64a4eaf8661f9bd50 - md5: c67cc8e3a34c5cb8920c79918112e96f - depends: - - certifi - - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 - - libgcc-ng >=12 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libzlib >=1.3.1,<2.0a0 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - setuptools - license: MIT - license_family: MIT - purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1138125 - timestamp: 1718724319970 -- kind: conda - name: netcdf4 - version: 1.7.1 - build: nompi_py312h39e0dc6_101 - build_number: 101 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.1-nompi_py312h39e0dc6_101.conda - sha256: 2ad7fd8eb9541cd6ca846818513405c645e9a54a7488ca37c8d1683470f765c6 - md5: 3a6940f4cd4f4f8f21c3d3fbc0f80f22 - depends: - - certifi - - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libzlib >=1.3.1,<2.0a0 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - setuptools - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 991066 - timestamp: 1718725845789 -- kind: conda - name: netcdf4 - version: 1.7.1 - build: nompi_py312h87064e8_101 - build_number: 101 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.1-nompi_py312h87064e8_101.conda - sha256: c90bb904a648b4e6181cf4b9528917926b8d8131cf4a7badb30788a3e9f69638 - md5: 4c1096c3018f132afc0919867cfd1fec - depends: - - __osx >=10.13 - - certifi - - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 - - libnetcdf >=4.9.2,<4.9.3.0a0 - - libzlib >=1.3.1,<2.0a0 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - setuptools - license: MIT - license_family: MIT - purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1035647 - timestamp: 1718724321439 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1013027 + timestamp: 1729662815776 - kind: conda name: netcdf4 - version: 1.7.1 - build: nompi_py312hec02768_101 - build_number: 101 + version: 1.7.2 + build: nompi_py311hd13e3db_100 + build_number: 100 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.1-nompi_py312hec02768_101.conda - sha256: 5bc799edff740d891550d2f69108c5d5aaf26f0bf46e2d7ca0259a877ce01104 - md5: 9199ca08a0a8ccb6778ec72d3db1d51a + url: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.2-nompi_py311hd13e3db_100.conda + sha256: deaffc773f838f2677791aedf3bfd4dc72e3f4bc1b5e46c831734aa11ef32101 + md5: e4c8b38c12de3bb2be288862acd8e5ca depends: - __osx >=11.0 - certifi - cftime - - hdf5 >=1.14.3,<1.14.4.0a0 + - hdf5 >=1.14.4,<1.14.5.0a0 - libnetcdf >=4.9.2,<4.9.3.0a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - - setuptools + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - - pkg:pypi/netcdf4?source=conda-forge-mapping - size: 1025230 - timestamp: 1718725229338 + - pkg:pypi/netcdf4?source=hash-mapping + size: 1048689 + timestamp: 1729663101204 - kind: conda name: networkx - version: '3.3' + version: 3.4.2 build: pyhd8ed1ab_1 build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.3-pyhd8ed1ab_1.conda - sha256: cbd8a6de87ad842e7665df38dcec719873fe74698bc761de5431047b8fada41a - md5: d335fd5704b46f4efb89a6774e81aef0 + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.4.2-pyhd8ed1ab_1.conda + sha256: ad3ac7c22d4f68a5a50ae584ae259af91fbf96f688bf2955750bbdb61bb88fc1 + md5: 1d4c088869f206413c59acdd309908b7 depends: - python >=3.10 constrains: - - pandas >=1.4 - - numpy >=1.22 - - matplotlib >=3.5 - - scipy >=1.9,!=1.11.0,!=1.11.1 + - scipy >=1.10,!=1.11.0,!=1.11.1 + - matplotlib >=3.7 + - pandas >=2.0 + - numpy >=1.24 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/networkx?source=conda-forge-mapping - size: 1185670 - timestamp: 1712540499262 + - pkg:pypi/networkx?source=hash-mapping + size: 1198024 + timestamp: 1730311574645 - kind: conda name: nh3 version: 0.2.18 - build: py312h552d48e_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/nh3-0.2.18-py312h552d48e_0.conda - sha256: e804d293f7523640c2f707a2b8dae4758df7540809f7e5e48e5ad5d34e1f3993 - md5: ca005b40c343f41587f8a11f001e77b9 + build: py312h12e396e_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.18-py312h12e396e_1.conda + sha256: b0a67992a9a09b3cd2ab7a31728d77301783b22cf6ad4153cf2e737ac839dcb7 + md5: 7c34beca547867671e26e61106fad3bd depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - - __osx >=11.0 + - __glibc >=2.17 license: MIT + license_family: MIT purls: - - pkg:pypi/nh3?source=conda-forge-mapping - size: 576439 - timestamp: 1720443155143 + - pkg:pypi/nh3?source=hash-mapping + size: 658988 + timestamp: 1725341823258 - kind: conda name: nh3 version: 0.2.18 - build: py312h68c23d6_0 + build: py312h68c23d6_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/nh3-0.2.18-py312h68c23d6_0.conda - sha256: 503a0fc4027a0880fd3040c2e8f2fba6f1f51eb5dd657d0f58578b675d500574 - md5: d56853ce3a4de76f93417444e1b37c6b + url: https://conda.anaconda.org/conda-forge/win-64/nh3-0.2.18-py312h68c23d6_1.conda + sha256: 14b6baf3c940064a857806c1547f08bee8fb984a05e1aff91aa45c1d97030c75 + md5: 334722695a8b3359bba2320d610861bd depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -25671,49 +22764,33 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.40.33810 license: MIT + license_family: MIT purls: - - pkg:pypi/nh3?source=conda-forge-mapping - size: 496081 - timestamp: 1720443647022 -- kind: conda - name: nh3 - version: 0.2.18 - build: py312ha47ea1c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/nh3-0.2.18-py312ha47ea1c_0.conda - sha256: 4d0e879e61e7c6dba43dfce3ba8c46cc332a0e2c1b040742240f590f8cee2056 - md5: dc1cee3916c3006ad54abbae89fd13bf - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - constrains: - - __osx >=10.13 - license: MIT - purls: - - pkg:pypi/nh3?source=conda-forge-mapping - size: 545936 - timestamp: 1720443052189 + - pkg:pypi/nh3?source=hash-mapping + size: 496587 + timestamp: 1725342544012 - kind: conda name: nh3 version: 0.2.18 - build: py312hf008fa9_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.18-py312hf008fa9_0.conda - sha256: 5d936390c85bad134490dd433aa4ca57a357114832a07db762560a3b1a6e3b1a - md5: a56eb6dfb3d50dd86ea0052c5395c765 + build: py312he431725_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/nh3-0.2.18-py312he431725_1.conda + sha256: 5540ae8002732e7917ad94479016300c0a86108703d4c95c1d3a4f30c5ad133b + md5: 9e19a3bb58e98289277bf1308c07e036 depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 + - __osx >=11.0 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - - __glibc >=2.17 + - __osx >=11.0 license: MIT + license_family: MIT purls: - - pkg:pypi/nh3?source=conda-forge-mapping - size: 658131 - timestamp: 1720442905781 + - pkg:pypi/nh3?source=hash-mapping + size: 575359 + timestamp: 1725341903030 - kind: conda name: nitro version: 2.7.dev8 @@ -25762,21 +22839,6 @@ packages: purls: [] size: 731004 timestamp: 1684335554090 -- kind: conda - name: nitro - version: 2.7.dev8 - build: he965462_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/nitro-2.7.dev8-he965462_0.conda - sha256: 8246fb2a03e76fb024ffcc1fb7ae4f3ee320bad72c2a942e265c5fc10b1cfe7d - md5: 69184dd0ac425d3b7636b348efc802a0 - depends: - - libcxx >=15.0.7 - license: LGPL-3.0-or-later - license_family: LGPL - purls: [] - size: 538273 - timestamp: 1684336335817 - kind: conda name: nodeenv version: 1.9.1 @@ -25792,7 +22854,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/nodeenv?source=conda-forge-mapping + - pkg:pypi/nodeenv?source=hash-mapping size: 34489 timestamp: 1717585382642 - kind: conda @@ -25811,7 +22873,7 @@ packages: license: BSD license_family: BSD purls: - - pkg:pypi/nose2?source=conda-forge-mapping + - pkg:pypi/nose2?source=hash-mapping size: 92820 timestamp: 1580623268425 - kind: conda @@ -25829,113 +22891,81 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/notebook-shim?source=conda-forge-mapping + - pkg:pypi/notebook-shim?source=hash-mapping size: 16880 timestamp: 1707957948029 - kind: conda name: nspr - version: '4.35' - build: h27087fc_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda - sha256: 8fadeebb2b7369a4f3b2c039a980d419f65c7b18267ba0c62588f9f894396d0c - md5: da0ec11a6454ae19bff5b02ed881a2b1 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: MPL-2.0 - license_family: MOZILLA - purls: [] - size: 226848 - timestamp: 1669784948267 -- kind: conda - name: nspr - version: '4.35' - build: hb7217d7_0 + version: '4.36' + build: h5833ebf_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.35-hb7217d7_0.conda - sha256: 35959d36ea9e8a2c422db9f113ee0ac91a9b0c19c51b05f75d0793c3827cfa3a - md5: f81b5ec944dbbcff3dd08375eb036efa + url: https://conda.anaconda.org/conda-forge/osx-arm64/nspr-4.36-h5833ebf_0.conda + sha256: 71f790d3dafe309e46c2214a6354d8d1818d646d637b2f5f9f84c5aa5c315a42 + md5: 026a08bd5b6a2a2f240c00c32446156d depends: - - libcxx >=14.0.6 + - __osx >=11.0 + - libcxx >=17 license: MPL-2.0 license_family: MOZILLA purls: [] - size: 220745 - timestamp: 1669785182058 + size: 202873 + timestamp: 1729545964601 - kind: conda name: nspr - version: '4.35' - build: hea0b92c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/nspr-4.35-hea0b92c_0.conda - sha256: da6e19bd0ff31e219760e647cfe1cc499a8cdfaff305f06c56d495ca062b86de - md5: a9e56c98d13d8b7ce72bf4357317c29b - depends: - - libcxx >=14.0.6 - license: MPL-2.0 - license_family: MOZILLA - purls: [] - size: 230071 - timestamp: 1669785313586 -- kind: conda - name: nss - version: '3.102' - build: h593d115_0 + version: '4.36' + build: h5888daf_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.102-h593d115_0.conda - sha256: 5e5dbae2f5bc55646a9d70601432ea71b867ce06bccd174e479ac36abf5d0807 - md5: 40e5e48c55a45621c4399ca9236406b7 + url: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.36-h5888daf_0.conda + sha256: a87471d9265a7c02a98c20debac8b13afd80963968ed7b1c1c2ac7b80955ce31 + md5: de9cd5bca9e4918527b9b72b6e2e1409 depends: - __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 + - libgcc >=13 + - libstdcxx >=13 license: MPL-2.0 license_family: MOZILLA purls: [] - size: 1974313 - timestamp: 1720064644368 + size: 230204 + timestamp: 1729545773406 - kind: conda name: nss - version: '3.102' - build: hc42bcbf_0 + version: '3.106' + build: h6f44f80_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.102-hc42bcbf_0.conda - sha256: 15f521cae90a27ff42b5de3f40cf76f574e0e703c51aa4c882a3590eef284edf - md5: 8e6786925188583c0c18920545bb0d72 + url: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.106-h6f44f80_0.conda + sha256: de7cc89e24b7e72c9f842534af205b566d7bceb95307aad0434a40e2ec13e73e + md5: 243f6ae13f81edd8e82f0baddab0aaf2 depends: - __osx >=11.0 - - libcxx >=16 - - libsqlite >=3.46.0,<4.0a0 + - libcxx >=17 + - libsqlite >=3.47.0,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - nspr >=4.35,<5.0a0 + - nspr >=4.36,<5.0a0 license: MPL-2.0 license_family: MOZILLA purls: [] - size: 1772423 - timestamp: 1720064875294 + size: 1814292 + timestamp: 1729811695707 - kind: conda name: nss - version: '3.102' - build: he7eb89d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/nss-3.102-he7eb89d_0.conda - sha256: 205386081d59f541784594628d542996b0bcfac1fe32d42010221706bcaf88a4 - md5: 95e32708bfbae8cd9936c0ad006439a1 - depends: - - __osx >=10.13 - - libcxx >=16 - - libsqlite >=3.46.0,<4.0a0 + version: '3.106' + build: hdf54f9c_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.106-hdf54f9c_0.conda + sha256: e5dd3e57498decdef87ff641fa6b7bd5484fce3f2783811ee5ec278bc9e71281 + md5: efe735c7dc47dddbb14b3433d11c6feb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libsqlite >=3.47.0,<4.0a0 + - libstdcxx >=13 - libzlib >=1.3.1,<2.0a0 - - nspr >=4.35,<5.0a0 + - nspr >=4.36,<5.0a0 license: MPL-2.0 license_family: MOZILLA purls: [] - size: 1853247 - timestamp: 1720064737210 + size: 2001391 + timestamp: 1729811441549 - kind: conda name: numba version: 0.60.0 @@ -25965,7 +22995,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 4357036 timestamp: 1718888347041 - kind: conda @@ -25995,7 +23025,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 4376821 timestamp: 1718888164099 - kind: conda @@ -26025,40 +23055,9 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 4370592 timestamp: 1718888808848 -- kind: conda - name: numba - version: 0.60.0 - build: py310h89a1501_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py310h89a1501_0.conda - sha256: 60df7d78a76c65b92d6e44b797c48cb80438de1d1b3f8d2fb57a83ecc5ddaff6 - md5: 102daac97636129f6243132c8415e4d3 - depends: - - __osx >=10.13 - - libcxx >=16 - - llvm-openmp >=16.0.6 - - llvm-openmp >=18.1.8 - - llvmlite >=0.43.0,<0.44.0a0 - - numpy >=1.19,<3 - - numpy >=1.22.3,<2.1 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - constrains: - - libopenblas !=0.3.6 - - tbb >=2021.6.0 - - cudatoolkit >=11.2 - - cuda-version >=11.2 - - scipy >=1.0 - - cuda-python >=11.6 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/numba?source=conda-forge-mapping - size: 4367873 - timestamp: 1718888635269 - kind: conda name: numba version: 0.60.0 @@ -26086,40 +23085,9 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 5807308 timestamp: 1718888792863 -- kind: conda - name: numba - version: 0.60.0 - build: py311h0e5bd6a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py311h0e5bd6a_0.conda - sha256: 47fbc7925d5ee5ba9d841e542752288fc7059f44c0b95c34e11c609f4754e517 - md5: 8bd1ff28924ea52b539528d85f70a1ac - depends: - - __osx >=10.13 - - libcxx >=16 - - llvm-openmp >=16.0.6 - - llvm-openmp >=18.1.8 - - llvmlite >=0.43.0,<0.44.0a0 - - numpy >=1.19,<3 - - numpy >=1.22.3,<2.1 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - constrains: - - libopenblas !=0.3.6 - - cuda-python >=11.6 - - scipy >=1.0 - - tbb >=2021.6.0 - - cudatoolkit >=11.2 - - cuda-version >=11.2 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/numba?source=conda-forge-mapping - size: 5773011 - timestamp: 1718888442395 - kind: conda name: numba version: 0.60.0 @@ -26147,7 +23115,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 5801568 timestamp: 1718888179690 - kind: conda @@ -26179,7 +23147,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 5778831 timestamp: 1718888718616 - kind: conda @@ -26211,7 +23179,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 5653160 timestamp: 1718888513922 - kind: conda @@ -26241,40 +23209,9 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 5695278 timestamp: 1718888170104 -- kind: conda - name: numba - version: 0.60.0 - build: py312hc3b515d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - sha256: 46c21bdad81e0c48edbaeae9b68a4418b566e323f5417922f1a949ac34f17eb4 - md5: 4138842cc16a0a1994d1a80214c25d7e - depends: - - __osx >=10.13 - - libcxx >=16 - - llvm-openmp >=16.0.6 - - llvm-openmp >=18.1.8 - - llvmlite >=0.43.0,<0.44.0a0 - - numpy >=1.19,<3 - - numpy >=1.22.3,<2.1 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - constrains: - - libopenblas !=0.3.6 - - cudatoolkit >=11.2 - - cuda-python >=11.6 - - tbb >=2021.6.0 - - scipy >=1.0 - - cuda-version >=11.2 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/numba?source=conda-forge-mapping - size: 5681460 - timestamp: 1718888693068 - kind: conda name: numba version: 0.60.0 @@ -26302,36 +23239,36 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/numba?source=conda-forge-mapping + - pkg:pypi/numba?source=hash-mapping size: 5677692 timestamp: 1718888811663 - kind: conda name: numba_celltree - version: 0.1.6 + version: 0.2.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - sha256: 0ecb9c31a9d6cc23c9099c391ca14645f9b0118f5a22818c88b5091e3d0d27b2 - md5: fa93424676054b2d1fcc7864c4e68698 + url: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.2.2-pyhd8ed1ab_0.conda + sha256: c71b84ddb772ec3d242b5d6705677100b44fb824a670ff5ad49c0614527ce4c2 + md5: 40b8e3c1e26ce871c71b9be2045e07ce depends: - numba >=0.50 - numpy - - python >=3.7 + - python >=3.9 license: MIT license_family: MIT purls: - - pkg:pypi/numba-celltree?source=conda-forge-mapping - size: 32808 - timestamp: 1672825982456 + - pkg:pypi/numba-celltree?source=hash-mapping + size: 34627 + timestamp: 1729059997869 - kind: conda name: numpy - version: 2.0.0 + version: 2.0.2 build: py310h1ec8c79_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py310h1ec8c79_0.conda - sha256: 89c1b388c037204555cfec9fe6977028645c19a6ad9fcca2b644eeb2b7e6eece - md5: 3549c08a788df3b4bcb3e12e5bdc9c4a + url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py310h1ec8c79_0.conda + sha256: 7e9c36c57a5bc807b4ffa08738aa5344857651945ad9d39a80ba97dc79024120 + md5: 12983b3013411effb69675f5b52cc939 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -26346,46 +23283,22 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 6322865 - timestamp: 1718615949009 -- kind: conda - name: numpy - version: 2.0.0 - build: py310h515e003_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py310h515e003_0.conda - sha256: a6a0b48d9a2466d763290f525323561907d8702826833157738606fc8b96f5aa - md5: baab5ef1064a13d3567d90133b799a03 - depends: - - 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.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 7777664 - timestamp: 1718615587959 + - pkg:pypi/numpy?source=hash-mapping + size: 6380394 + timestamp: 1724749492450 - kind: conda name: numpy - version: 2.0.0 - build: py310h52bbd9b_0 + version: 2.0.2 + build: py310hcaf17df_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py310h52bbd9b_0.conda - sha256: 57901e323c451a947c6f97086a436a440f04ec70cbe30c0b62712f135f45831b - md5: c185aced815798d1cc0f74fc355cdfaa + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py310hcaf17df_0.conda + sha256: 38a11c781dcd7fffd77af72f4f2bb7d30540f6e9bd036042b166f4f4d7325042 + md5: 1503564f116ffcd5a153a0fdd27ffc14 depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libcxx >=17 - liblapack >=3.9.0,<4.0a0 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython @@ -26395,23 +23308,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 5768181 - timestamp: 1718616123469 + - pkg:pypi/numpy?source=hash-mapping + size: 5796087 + timestamp: 1724749545902 - kind: conda name: numpy - version: 2.0.0 - build: py310he367959_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py310he367959_0.conda - sha256: 1fddb0f5111e081857600db24abce8aae2cd7706cffc10d1b7719c370f349976 - md5: 945d173f9de02dbfe841303195e4d9f2 + version: 2.0.2 + build: py310hd6e36ab_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py310hd6e36ab_0.conda + sha256: 378ffd294f49ddb11dad7373f08a14fbf97b1378c88603d384e276214841e999 + md5: 7332352f0fbf11b20a2dfb16b6ff952f depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libgcc-ng >=13 - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 constrains: @@ -26419,41 +23333,17 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 6882915 - timestamp: 1718615707085 -- kind: conda - name: numpy - version: 2.0.0 - build: py311h1461c94_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py311h1461c94_0.conda - sha256: f5c8070a623a216f999aec9b60b181f0624b7b074cc08189bdb4da6376c01a5d - md5: 4998996a22ef05d2f486216075a3037f - depends: - - 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.* *_cp311 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 8955242 - timestamp: 1718615418098 + - pkg:pypi/numpy?source=hash-mapping + size: 7808998 + timestamp: 1724749161643 - kind: conda name: numpy - version: 2.0.0 + version: 2.0.2 build: py311h35ffc71_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py311h35ffc71_0.conda - sha256: 5906dfbddd7ce315ceaebf56140e00ec12f981e9ccebdfe52a31826a9adf12f2 - md5: 21ec404be139a6b20fde4f73c6ec484c + url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py311h35ffc71_0.conda + sha256: c373acdeea9897da86ecf757417d7591d28043ffa2da57e4b723b15daa936caa + md5: 573b96ee4daa4fe59211982afc575afc depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -26468,22 +23358,22 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 7584309 - timestamp: 1718616050139 + - pkg:pypi/numpy?source=hash-mapping + size: 7507136 + timestamp: 1724749843736 - kind: conda name: numpy - version: 2.0.0 - build: py311h4268184_0 + version: 2.0.2 + build: py311h6de8079_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py311h4268184_0.conda - sha256: 078b4b7acab19b7314f7dae436805bcf1c231faedde9c393153234a2bcabf9e4 - md5: 5c316e8847d997ad1b271be52ee06189 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py311h6de8079_0.conda + sha256: ed06d3eb948a581da08675dbbfedc6019bf10d74c03865ecbc2acd4ba625974c + md5: 2bd1d7e02190016932c5e02ed1aece33 depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libcxx >=17 - liblapack >=3.9.0,<4.0a0 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython @@ -26493,23 +23383,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 6878925 - timestamp: 1718615710207 + - pkg:pypi/numpy?source=hash-mapping + size: 6995279 + timestamp: 1724749148131 - kind: conda name: numpy - version: 2.0.0 - build: py311hc11d9cb_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py311hc11d9cb_0.conda - sha256: 0e82d37aa474ce84302775f02d31fe0c762844ec472f5ed8f0db8190d5fd1db9 - md5: f3e2a534964152fca3ba80bea594f673 + version: 2.0.2 + build: py311h71ddf71_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py311h71ddf71_0.conda + sha256: f4e20d4045ad117499eaf44aaad2a17dd810b332c9407b9c4e7c155d56157a6f + md5: cb1476d753a69a42978fe7b303721df7 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libgcc-ng >=13 - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 constrains: @@ -26517,41 +23408,17 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 8016515 - timestamp: 1718615633162 -- kind: conda - name: numpy - version: 2.0.0 - build: py312h22e1c76_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda - sha256: e5fc4a1053c8f02db78d4a50733d6c84d04e3c781749ae7478876ecdcd8c87ca - md5: 7956c7d65f87aecaba720af6088e72c3 - depends: - - 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.* *_cp312 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 8352992 - timestamp: 1718615528478 + - pkg:pypi/numpy?source=hash-mapping + size: 8961918 + timestamp: 1724749067277 - kind: conda name: numpy - version: 2.0.0 + version: 2.0.2 build: py312h49bc9c5_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda - sha256: a2a4f9c90076d70a9e40aebe7ea323e67803af1cf4e6fff759af330726b2644d - md5: 8f8c23e8087dbb05828be5abbeac347d + url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.2-py312h49bc9c5_0.conda + sha256: 14f0707f73ea97579b8400e55bc394b9ddf7fdbcc87eb8ad9068b6ebbe62b97c + md5: 6be606bcfd79a5958b19a437b16028aa depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -26566,23 +23433,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 6988383 - timestamp: 1718615911404 + - pkg:pypi/numpy?source=hash-mapping + size: 6889345 + timestamp: 1724749766610 - kind: conda name: numpy - version: 2.0.0 - build: py312h8813227_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda - sha256: c83b985945095b04c4ba4828eea4ddb0b9b5546518b39d4b91c32afbf7838cde - md5: 814dba0ed2de85d89e09a5b811024a86 + version: 2.0.2 + build: py312h58c1407_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.2-py312h58c1407_0.conda + sha256: 8c54907fdc60b5f51bb505f2414e9a75d07e0c56d77651010428de91e8343843 + md5: c705a6295a3946400a0c0893dbec87bb depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libgcc-ng >=13 - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 constrains: @@ -26590,22 +23458,22 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 7479080 - timestamp: 1718615564653 + - pkg:pypi/numpy?source=hash-mapping + size: 8383737 + timestamp: 1724749066469 - kind: conda name: numpy - version: 2.0.0 - build: py312hb544834_0 + version: 2.0.2 + build: py312h801f5e3_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda - sha256: 7015b30c00e8eb6a8abd639a7683f3c57b2abd090e74cda6179ab5f5d6974575 - md5: 2ee98af1e5c917e3e1410758ab889e7a + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.2-py312h801f5e3_0.conda + sha256: 03d8b87f776c02f13bb07307aee024cf9f650dc4b1ade71213e48a5139955d69 + md5: 88a5aeebbe22894f3819966da7130998 depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libcxx >=17 - liblapack >=3.9.0,<4.0a0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython @@ -26615,9 +23483,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=conda-forge-mapping - size: 6359802 - timestamp: 1718615501795 + - pkg:pypi/numpy?source=hash-mapping + size: 6328764 + timestamp: 1724749137209 - kind: conda name: ocl-icd version: 2.3.2 @@ -26634,25 +23502,6 @@ packages: purls: [] size: 135681 timestamp: 1710946531879 -- kind: conda - name: openblas - version: 0.3.27 - build: pthreads_h3721920_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/openblas-0.3.27-pthreads_h3721920_0.conda - sha256: 628b0fa41acf0e943271cf1ee6b70823e85f35b9e59fc28fda9e269e6516e133 - md5: 388a107a99baeb66c74683807e51786b - depends: - - libflang >=5.0.0,<6.0.0.a0 - - libopenblas 0.3.27 pthreads_hc140b1d_0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 167892 - timestamp: 1712369231103 - kind: conda name: openjpeg version: 2.5.2 @@ -26663,7 +23512,7 @@ packages: md5: 7e7099ad94ac3b599808950cec30ad4e depends: - libpng >=1.6.43,<1.7.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.2.13,<2.0.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -26685,31 +23534,13 @@ packages: - libgcc-ng >=12 - libpng >=1.6.43,<1.7.0a0 - libstdcxx-ng >=12 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.2.13,<2.0.0a0 license: BSD-2-Clause license_family: BSD purls: [] size: 341592 timestamp: 1709159244431 -- kind: conda - name: openjpeg - version: 2.5.2 - build: h7310d3a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - sha256: dc9c405119b9b54f8ca5984da27ba498bd848ab4f0f580da6f293009ca5adc13 - md5: 05a14cc9d725dd74995927968d6547e3 - depends: - - libcxx >=16 - - libpng >=1.6.43,<1.7.0a0 - - libtiff >=4.6.0,<4.7.0a0 - - libzlib >=1.2.13,<2.0.0a0 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 331273 - timestamp: 1709159538792 - kind: conda name: openjpeg version: 2.5.2 @@ -26721,7 +23552,7 @@ packages: depends: - libcxx >=16 - libpng >=1.6.43,<1.7.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.2.13,<2.0.0a0 license: BSD-2-Clause license_family: BSD @@ -26729,193 +23560,202 @@ packages: size: 316603 timestamp: 1709159627299 - kind: conda - name: openmp - version: 5.0.0 - build: vc14_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/openmp-5.0.0-vc14_1.tar.bz2 - sha256: 05c19170938b589f59049679d4e0679c98160fecc6fd1bf721b0f4980bd235dd - md5: 8284c925330fa53668ade00db3c9e787 + name: openldap + version: 2.6.8 + build: hedd0468_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.8-hedd0468_0.conda + sha256: 902652f7a106caa6ea9db2c44118078e23a499bf091ce8ea01d8498c156e8219 + md5: dcd0ed5147d8876b0848a552b416ce76 depends: - - llvm-meta 5.0.0|5.0.0.* - - vc 14.* - arch: x86_64 - platform: win - license: NCSA - purls: [] - size: 590466 -- kind: conda - name: openssl - version: 3.3.1 - build: h2466b09_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - sha256: e45ee071d45fcfaa59beb31def800cdb9d81b17bbb74c4a7e400102cb22ca35e - md5: aa36aca82d1ffd26bee88ac7dc9e1ee3 + - cyrus-sasl >=2.1.27,<3.0a0 + - krb5 >=1.21.2,<1.22.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - openssl >=3.3.0,<4.0a0 + license: OLDAP-2.8 + license_family: BSD + purls: [] + size: 780492 + timestamp: 1716377814828 +- kind: conda + name: openmpi + version: 5.0.5 + build: h5750160_103 + build_number: 103 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/openmpi-5.0.5-h5750160_103.conda + sha256: 750ac527cf174f3212431d5a830183900643c346efc97d2e20c1140aeef26ac7 + md5: 5cd4e0f081b8a2c3a930096af88e1e6d depends: - - ca-certificates - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - constrains: - - pyopenssl >=22.1 - license: Apache-2.0 - license_family: Apache + - __osx >=11.0 + - libcxx >=17 + - libevent >=2.1.12,<2.1.13.0a0 + - libgfortran 5.* + - libgfortran5 >=13.2.0 + - libhwloc >=2.11.2,<2.11.3.0a0 + - libzlib >=1.3.1,<2.0a0 + - mpi 1.0 openmpi + license: BSD-3-Clause + license_family: BSD purls: [] - size: 8355633 - timestamp: 1719366975403 + size: 12854484 + timestamp: 1727786163633 - kind: conda - name: openssl - version: 3.3.1 - build: h4ab18f5_1 - build_number: 1 + name: openmpi + version: 5.0.5 + build: h6ae21d5_103 + build_number: 103 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - sha256: ff3faf8d4c1c9aa4bd3263b596a68fcc6ac910297f354b2ce28718a3509db6d9 - md5: b1e9d076f14e8d776213fd5047b4c3d9 + url: https://conda.anaconda.org/conda-forge/linux-64/openmpi-5.0.5-h6ae21d5_103.conda + sha256: 6ebed9bb4c61196272e172afa214d0c236c19f8090f045756c0040fa0c588201 + md5: a6a9bbe12482d886aa24c184e76943eb depends: - - ca-certificates + - __glibc >=2.17,<3.0.a0 + - libevent >=2.1.12,<2.1.13.0a0 + - libgcc - libgcc-ng >=12 + - libgfortran + - libgfortran-ng + - libgfortran5 >=11.4.0 + - libhwloc >=2.11.2,<2.11.3.0a0 + - libnl >=3.10.0,<4.0a0 + - libstdcxx + - libstdcxx-ng >=12 + - libzlib >=1.3.1,<2.0a0 + - mpi 1.0 openmpi constrains: - - pyopenssl >=22.1 - license: Apache-2.0 - license_family: Apache + - ucx >=1.17.0,<1.18.0a0 + - ucc >=1.3.0,<1.4.0a0 + - __cuda >= 11.0 + - cuda-version >= 11.0 + license: BSD-3-Clause + license_family: BSD purls: [] - size: 2896610 - timestamp: 1719363957188 + size: 13940124 + timestamp: 1727786100186 - kind: conda name: openssl - version: 3.3.1 - build: h87427d6_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - sha256: 60eed5d771207bcef05e0547c8f93a61d0ad1dcf75e19f8f8d9ded8094d78477 - md5: d838ffe9ec3c6d971f110e04487466ff + version: 3.3.2 + build: h2466b09_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda + sha256: a45c42f3577294e22ac39ddb6ef5a64fd5322e8a6725afefbf4f2b4109340bf9 + md5: 1dc86753693df5e3326bb8a85b74c589 depends: - - __osx >=10.13 - ca-certificates - constrains: - - pyopenssl >=22.1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 2551950 - timestamp: 1719364820943 + size: 8396053 + timestamp: 1725412961673 - kind: conda name: openssl - version: 3.3.1 - build: hfb2fe0b_1 - build_number: 1 + version: 3.3.2 + build: h8359307_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - sha256: 3ab411856c3bef88595473f0dd86e82de4f913f88319548acf262d5b1175b050 - md5: c665dec48e08311096823956642a501c + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda + sha256: 940fa01c4dc6152158fe8943e05e55a1544cab639df0994e3b35937839e4f4d1 + md5: 1773ebccdc13ec603356e8ff1db9e958 depends: - __osx >=11.0 - ca-certificates - constrains: - - pyopenssl >=22.1 license: Apache-2.0 license_family: Apache purls: [] - size: 2897767 - timestamp: 1719363723462 + size: 2882450 + timestamp: 1725410638874 - kind: conda - name: orc - version: 2.0.1 - build: h17fec99_1 - build_number: 1 + name: openssl + version: 3.3.2 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda - sha256: d340c67b23fb0e1ef7e13574dd4a428f360bfce93b2a588b3b63625926b038d6 - md5: 3bf65f0d8e7322a1cfe8b670fa35ec81 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda + sha256: cee91036686419f6dd6086902acf7142b4916e1c4ba042e9ca23e151da012b6d + md5: 4d638782050ab6faa27275bed57e9b4e depends: - - libgcc-ng >=12 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - lz4-c >=1.9.3,<1.10.0a0 - - snappy >=1.2.0,<1.3.0a0 - - tzdata - - zstd >=1.5.6,<1.6.0a0 + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 1029691 - timestamp: 1716789702707 + size: 2891789 + timestamp: 1725410790053 - kind: conda name: orc - version: 2.0.1 - build: h47ade37_1 + version: 2.0.2 + build: h1c5a4bf_1 build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda - sha256: 567a9677258cdd03484e3045255bf10a9d8f1031c5030ef83f1fdc1a1ad6f401 - md5: cd1013678ccef9b552335004f20a2d26 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.2-h1c5a4bf_1.conda + sha256: 08274ce3433d35c03da8ccc00f8908ed37af9e24d16c5c7befbc3eaf135add04 + md5: 524025f3ad525a28d11044d8991c5e98 depends: - - __osx >=11.0 - - libcxx >=16 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - snappy >=1.2.0,<1.3.0a0 + - snappy >=1.2.1,<1.3.0a0 - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.6.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 417136 - timestamp: 1716789821766 + size: 895548 + timestamp: 1727242629823 - kind: conda name: orc - version: 2.0.1 - build: h7e885a9_1 + version: 2.0.2 + build: h4a9587e_1 build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda - sha256: 8aca1dcb6e9b3e71ffbec26c2b84f45fa682d9075b78cd30acc48044b64149ec - md5: 97012c0aeee0bf55c05b5ec42cac0864 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.2-h4a9587e_1.conda + sha256: ee0100b8b449be287d24fffce69444232a47142ca95bbc3d0cdc38ede9d690fb + md5: 47749df556fda8cc1848804bf6011645 depends: - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - __osx >=11.0 + - libcxx >=17 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - snappy >=1.2.0,<1.3.0a0 + - snappy >=1.2.1,<1.3.0a0 - tzdata - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.6.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 925642 - timestamp: 1716789911582 + size: 445128 + timestamp: 1727242589123 - kind: conda name: orc - version: 2.0.1 - build: hf43e91b_1 + version: 2.0.2 + build: h690cf93_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda - sha256: 718010a056ef084a12bfd6b4d7908c8817a0093ecc395c270857134e002d5857 - md5: 15d11d156ad646e69176df6af6ef0826 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.2-h690cf93_1.conda + sha256: ce023f259ffd93b4678cc582fc4b15a8a991a7b8edd9def8b6838bf7e7962bec + md5: 0044701dd48af57d3d5467a704ef9ebd depends: - - __osx >=10.13 - - libcxx >=16 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libprotobuf >=5.27.5,<5.27.6.0a0 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - snappy >=1.2.0,<1.3.0a0 + - snappy >=1.2.1,<1.3.0a0 - tzdata - zstd >=1.5.6,<1.6.0a0 license: Apache-2.0 license_family: Apache purls: [] - size: 438785 - timestamp: 1716789731333 + size: 1184634 + timestamp: 1727242386732 - kind: conda name: overrides version: 7.7.0 @@ -26931,32 +23771,30 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/overrides?source=conda-forge-mapping + - pkg:pypi/overrides?source=hash-mapping size: 30232 timestamp: 1706394723472 - kind: conda name: owslib - version: 0.31.0 + version: 0.32.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/owslib-0.31.0-pyhd8ed1ab_0.conda - sha256: a1fac6d14b717a3dfe7f27ce21703e8d827728a9e1a270658b1126fdbf52c78c - md5: dd80d44d397324f74c4c9ec898718f12 + url: https://conda.anaconda.org/conda-forge/noarch/owslib-0.32.0-pyhd8ed1ab_0.conda + sha256: da7ff56bab24d800500f052d3fc83100c77b070278a1d7112b8f676b97281649 + md5: dd038ed575e165b6862fb78ada3e52e0 depends: - - dataclasses - lxml - - python >=3.8 - - python-dateutil >=1.5 - - pytz + - python >=3.10 + - python-dateutil - pyyaml - - requests >=1.0 + - requests license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/owslib?source=conda-forge-mapping - size: 144690 - timestamp: 1715612243746 + - pkg:pypi/owslib?source=hash-mapping + size: 149022 + timestamp: 1729838920391 - kind: conda name: packaging version: '24.1' @@ -26971,312 +23809,252 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/packaging?source=conda-forge-mapping + - pkg:pypi/packaging?source=hash-mapping size: 50290 timestamp: 1718189540074 - kind: conda name: pandas - version: 2.2.2 - build: py310h2216879_1 + version: 2.2.3 + build: py310h5eaa309_1 build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py310h2216879_1.conda - sha256: 7d3ab98a49e1e126db7d73a953a9f54aa80182e16bc1e45cf3be3ff39cc798ff - md5: 0a86a0c81dfd7170f6b40209088bb82b + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py310h5eaa309_1.conda + sha256: d772223fd1ca882717ec6db55a13a6be9439c64ca3532231855ce7834599b8a5 + md5: e67778e1cac3bca3b3300f6164f7ffb9 depends: - - __osx >=11.0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.10.* *_cp310 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 12111626 - timestamp: 1715898331035 + - pkg:pypi/pandas?source=hash-mapping + size: 13014228 + timestamp: 1726878893275 - kind: conda name: pandas - version: 2.2.2 + version: 2.2.3 build: py310hb4db72f_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py310hb4db72f_1.conda - sha256: 3377ce9a559547f1434f430f7d17f9ff0d44c8cdd70d413b647e867ee520189f - md5: b1fa9819662ccab5d381a9efac90f58b + url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py310hb4db72f_1.conda + sha256: 1fa40b4a351f1eb7a878d1f25f6bec71664699cd4a39c8ed5e2221f53ecca0c4 + md5: 565b3f19282642a23e5ff9bbfb01569c depends: - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.10,<3.11.0a0 - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.10.* *_cp310 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 11848304 - timestamp: 1715898637938 -- kind: conda - name: pandas - version: 2.2.2 - build: py310hbf2a7f0_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py310hbf2a7f0_1.conda - sha256: a43be33ab43684ebb838bf73fb95a1627273619c90fd795d4d745f08586c4d21 - md5: 15f6e4d6b8904a0751420bfe00605d31 - depends: - - __osx >=10.13 - - libcxx >=16 - - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python-dateutil >=2.8.1 - - python-tzdata >=2022a - - python_abi 3.10.* *_cp310 - - pytz >=2020.1 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 12203637 - timestamp: 1715898555542 + - pkg:pypi/pandas?source=hash-mapping + size: 11810567 + timestamp: 1726879420659 - kind: conda name: pandas - version: 2.2.2 - build: py310hf9f9076_1 + version: 2.2.3 + build: py310hfd37619_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py310hf9f9076_1.conda - sha256: 7f7ed5de8066c1b275942ac183472acc9501c91cc4c25ab3197020a87f5a3495 - md5: 18100768350158f1795ab9ad7d06d5ca + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py310hfd37619_1.conda + sha256: f4e4c0016c56089d22850e16c44c7e912d6368fd43374a92d8de6a1da9a85b47 + md5: 7bc53f11058c93444968c99f1600f73c depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __osx >=11.0 + - libcxx >=17 - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.10.* *_cp310 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 13024685 - timestamp: 1715898109537 + - pkg:pypi/pandas?source=hash-mapping + size: 12024352 + timestamp: 1726878958127 - kind: conda name: pandas - version: 2.2.2 - build: py311h14de704_1 + version: 2.2.3 + build: py311h7db5c69_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py311h14de704_1.conda - sha256: d600c0cc42fca1ad36d969758b2495062ad83124ecfcf5673c98b11093af7055 - md5: 84e2dd379d4edec4dd6382861486104d + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py311h7db5c69_1.conda + sha256: dce121d3838996b77b810ca9097cc17068552075c761408a9b2eb788cf8fd1b0 + md5: 643f8cb35133eb1be4919fb953f0a25f depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.11,<3.12.0a0 - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.11.* *_cp311 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 15682728 - timestamp: 1715898175468 + - pkg:pypi/pandas?source=hash-mapping + size: 15695466 + timestamp: 1726879158862 - kind: conda name: pandas - version: 2.2.2 - build: py311h4b4568b_1 + version: 2.2.3 + build: py311h9cb3ce9_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py311h4b4568b_1.conda - sha256: b08f214593af94dd9bb50d7bf432d1defde66312bd1a2476f27a5fdd9f45ef66 - md5: b1790dadc62d0af23378d5a79b263893 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py311h9cb3ce9_1.conda + sha256: 0a08027b25e4f6034d7733c7366f44283246d61cb82d1721f8789d50ebfef287 + md5: 9ffa9dee175c76e68ea5de5aa1168d83 depends: - __osx >=11.0 - - libcxx >=16 + - libcxx >=17 - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.11.* *_cp311 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 14742444 - timestamp: 1715898315491 + - pkg:pypi/pandas?source=hash-mapping + size: 14807397 + timestamp: 1726879116250 - kind: conda name: pandas - version: 2.2.2 + version: 2.2.3 build: py311hcf9f919_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py311hcf9f919_1.conda - sha256: 351b4f7211fc755ea1af8b218d2515418df3af08170197011934faf06bb5d98e - md5: ec3ed8d602148625469dc13c481f23b5 + url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py311hcf9f919_1.conda + sha256: f5477bf3a2b7919481009ce87212d7bbd16c61a5bb05c692a7c336fb45646534 + md5: 5965b8926efba14e6fde98cc8713c083 depends: - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.11,<3.12.0a0 - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.11.* *_cp311 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 14600290 - timestamp: 1715898888392 -- kind: conda - name: pandas - version: 2.2.2 - build: py311hfdcbad3_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py311hfdcbad3_1.conda - sha256: 070c97918f2ea3384120a87ca3681803242b48875d9269ed73542bacfa14fd03 - md5: 8dbecc860148500512e768571c59fbe0 - depends: - - __osx >=10.13 - - libcxx >=16 - - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python-dateutil >=2.8.1 - - python-tzdata >=2022a - - python_abi 3.11.* *_cp311 - - pytz >=2020.1 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 14887900 - timestamp: 1715898095186 -- kind: conda - name: pandas - version: 2.2.2 - build: py312h1171441_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.2-py312h1171441_1.conda - sha256: 99ef3986a0c6a5fe31a94b298f3ef60eb7ec7aa683a9aee6682f97d003aeb423 - md5: 240737937f1f046b0e03ecc11ac4ec98 - depends: - - __osx >=10.13 - - libcxx >=16 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python-dateutil >=2.8.1 - - python-tzdata >=2022a - - python_abi 3.12.* *_cp312 - - pytz >=2020.1 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 14673730 - timestamp: 1715898164799 + - pkg:pypi/pandas?source=hash-mapping + size: 14587131 + timestamp: 1726879538736 - kind: conda name: pandas - version: 2.2.2 - build: py312h1d6d2e6_1 + version: 2.2.3 + build: py312h72972c8_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py312h1d6d2e6_1.conda - sha256: 80fd53b68aa89b929d03874b99621ec8cc6a12629bd8bfbdca87a95f8852af96 - md5: ae00b61f3000d2284d1f2584d4dfafa8 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py312h72972c8_1.conda + sha256: dfd30e665b1ced1b783ca303799e250d8acc40943bcefb3a9b2bb13c3b17911c + md5: bf6f01c03e0688523d4b5cff8fe8c977 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.12,<3.13.0a0 - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.12.* *_cp312 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 15458981 - timestamp: 1715898284697 + - pkg:pypi/pandas?source=hash-mapping + size: 14218658 + timestamp: 1726879426348 - kind: conda name: pandas - version: 2.2.2 - build: py312h72972c8_1 + version: 2.2.3 + build: py312hcd31e36_1 build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.2-py312h72972c8_1.conda - sha256: f27b950c52cac5784b184a258c599cea81fcbfbd688897da799de4b6bf91af6e - md5: 92a5cf9f4778c6c9e02582d99885b34d + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py312hcd31e36_1.conda + sha256: ff0cb54b5d058c7987b4a0984066e893642d1865a7bb695294b6172e2fcdc457 + md5: c68bfa69e6086c381c74e16fd72613a8 depends: + - __osx >=11.0 + - libcxx >=17 - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.12.* *_cp312 - - pytz >=2020.1 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - pytz >=2020.1,<2024.2 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 14181121 - timestamp: 1715899159343 + - pkg:pypi/pandas?source=hash-mapping + size: 14470437 + timestamp: 1726878887799 - kind: conda name: pandas - version: 2.2.2 - build: py312h8ae5369_1 + version: 2.2.3 + build: py312hf9745cd_1 build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.2-py312h8ae5369_1.conda - sha256: 664bf370d1e254f29fab3b9834ae5f692a59f7e35c64c61d9a9b9989831fd721 - md5: b38af0cd7ae3616c90a2511272385941 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py312hf9745cd_1.conda + sha256: ad275a83bfebfa8a8fee9b0569aaf6f513ada6a246b2f5d5b85903d8ca61887e + md5: 8bce4f6caaf8c5448c7ac86d87e26b4b depends: - - __osx >=11.0 - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 + - numpy >=1.22.4 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python-dateutil >=2.8.1 - python-tzdata >=2022a - python_abi 3.12.* *_cp312 - - pytz >=2020.1 + - pytz >=2020.1,<2024.2 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=conda-forge-mapping - size: 14476760 - timestamp: 1715898136109 + - pkg:pypi/pandas?source=hash-mapping + size: 15436913 + timestamp: 1726879054912 - kind: conda name: pandas-stubs - version: 2.2.2.240603 + version: 2.2.3.241009 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.2.240603-pyhd8ed1ab_0.conda - sha256: f22e5bb371fac515c4a53d49fe4d7fcddc71136e5ed3094fde0f37dfc249d244 - md5: 2ffa854e866926e8e6a76274b9aca854 + url: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-2.2.3.241009-pyhd8ed1ab_0.conda + sha256: c89528fab4e9db70b6b9e59ec18dbca1d97c3635f03a5d8c63d461098777f049 + md5: a533ed91fb5f1cb8e2b2b1907e1a576c depends: - numpy >=1.26.0 - python >=3.9 @@ -27284,103 +24062,89 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas-stubs?source=conda-forge-mapping - size: 97949 - timestamp: 1717510726829 + - pkg:pypi/pandas-stubs?source=hash-mapping + size: 98654 + timestamp: 1728505724880 - kind: conda name: pandera - version: 0.20.1 + version: 0.20.4 build: hd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.1-hd8ed1ab_0.conda - sha256: 558d9ff63dabc1ed2f6cf8691bd6c4ebb1e97c8d8d85e67b3e163c4a5ddde97c - md5: 5a5da43a87fdec54414a0b34a6b54a54 + url: https://conda.anaconda.org/conda-forge/noarch/pandera-0.20.4-hd8ed1ab_0.conda + sha256: 62f85c709021bb721101e4baddf1bb293077d70a5ef0f17bb3cc3c1325c868ae + md5: 1f5a3edcac6b4ebded70e2bd9871a6a8 depends: - - pandera-base >=0.20.1,<0.20.2.0a0 + - pandera-base >=0.20.4,<0.20.5.0a0 license: MIT license_family: MIT - purls: - - pkg:pypi/pandera?source=conda-forge-mapping - size: 6939 - timestamp: 1719564680820 + purls: [] + size: 6785 + timestamp: 1725408304237 - kind: conda name: pandera-base - version: 0.20.1 + version: 0.20.4 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.1-pyhd8ed1ab_0.conda - sha256: 95852bfde1f3097d2722e95f42233e01d8e5808dac2f86f8d241db3975965c96 - md5: 2a58ce48958bb4720d0a0b342e04ee02 + url: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.20.4-pyhd8ed1ab_0.conda + sha256: 7b23ec2a4cea4fc2adc10828829fcb044c196719d0dd9ca63f4577b1855eb6c8 + md5: c2a59e20377cedcfa4a4dfa98fa7f36e depends: - multimethod <=1.10.0 - numpy >=1.19.0 - packaging >=20.0 - pandas >=1.2.0 - - pydantic + - pydantic >=1.5.0 - python >=3.8 - - typeguard >=3.0.2 + - typeguard - typing_inspect >=0.6.0 - wrapt license: MIT license_family: MIT purls: - - pkg:pypi/pandera?source=conda-forge-mapping - size: 146923 - timestamp: 1719564676651 + - pkg:pypi/pandera?source=hash-mapping + size: 150012 + timestamp: 1725408301583 - kind: conda name: pandoc - version: 3.1.11.1 + version: '3.2' build: h57928b3_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pandoc-3.1.11.1-h57928b3_0.conda - sha256: 84cbba7f556b173c84cb3aba6a43ff088dd4808d529a598e5fd124dca710bc1b - md5: 81747ed06ea58a00b41ea15bf6e1fe30 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 24254504 - timestamp: 1707474734217 -- kind: conda - name: pandoc - version: 3.1.11.1 - build: h694c41f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pandoc-3.1.11.1-h694c41f_0.conda - sha256: 3adbae2ba5d78c45c9ec9d802b820c2e659129b7ba044cc76487ce33dbc800f2 - md5: 6cff44b16d1231fe9682c64d12ab66a5 + url: https://conda.anaconda.org/conda-forge/win-64/pandoc-3.2-h57928b3_0.conda + sha256: 20781b4a5ed66b459968f5929a8994473198f0505797382a8eee794f5d9d7c32 + md5: 44c65fee440f2492edb8cb25f5770065 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 13738785 - timestamp: 1707474535801 + size: 24991574 + timestamp: 1715499984220 - kind: conda name: pandoc - version: 3.1.11.1 + version: '3.2' build: ha770c72_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.1.11.1-ha770c72_0.conda - sha256: 30b1318dbf7a89d4b2f66a9b10c8799376a32506043a510e1d27ba286c564633 - md5: 0e2f14aff42adf4675bcd5335d644a5f + url: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.2-ha770c72_0.conda + sha256: 418348076c1a39170efb0bdc8a584ddd11e9ed0ff58ccd905488d3f165ca98ba + md5: 8c924f0b7f3e064b1c954a08e7c32fba license: GPL-2.0-or-later license_family: GPL purls: [] - size: 20502973 - timestamp: 1707474170203 + size: 21088628 + timestamp: 1715499623651 - kind: conda name: pandoc - version: 3.1.11.1 + version: '3.2' build: hce30654_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pandoc-3.1.11.1-hce30654_0.conda - sha256: 80044e15ee1ffeb52ab8b36270b5cb99b56027aabd4e2e7aa1814087ceb6317a - md5: bb4cbaefaa40290fc4bb09b224bc2ebb + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandoc-3.2-hce30654_0.conda + sha256: f7836654ef1bb926d291c87512ff8f94bbaf1d61068bae0da13c171faf9cfd9e + md5: 8306d6d73bba59723aa360799277b014 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 22163163 - timestamp: 1707474489386 + size: 22795212 + timestamp: 1715499669080 - kind: conda name: pandocfilters version: 1.5.0 @@ -27395,7 +24159,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandocfilters?source=conda-forge-mapping + - pkg:pypi/pandocfilters?source=hash-mapping size: 11627 timestamp: 1631603397334 - kind: conda @@ -27412,7 +24176,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/parso?source=conda-forge-mapping + - pkg:pypi/parso?source=hash-mapping size: 75191 timestamp: 1712320447201 - kind: conda @@ -27431,7 +24195,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/partd?source=conda-forge-mapping + - pkg:pypi/partd?source=hash-mapping size: 20884 timestamp: 1715026639309 - kind: conda @@ -27448,34 +24212,18 @@ packages: license: MPL-2.0 license_family: MOZILLA purls: - - pkg:pypi/pathspec?source=conda-forge-mapping + - pkg:pypi/pathspec?source=hash-mapping size: 41173 timestamp: 1702250135032 - kind: conda name: pcre2 version: '10.44' - build: h0f59acf_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-h0f59acf_0.conda - sha256: 90646ad0d8f9d0fd896170c4f3d754e88c4ba0eaf856c24d00842016f644baab - md5: 3914f7ac1761dce57102c72ca7c35d01 - depends: - - bzip2 >=1.0.8,<2.0a0 - - libgcc-ng >=12 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 955778 - timestamp: 1718466128333 -- kind: conda - name: pcre2 - version: '10.44' - build: h297a79d_0 + build: h297a79d_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_0.conda - sha256: 23ddc5022a1025027ac1957dc1947c70d93a78414fbb183026457a537e8b3770 - md5: 62f8d7e2ef03b0aae64185b0f38316eb + url: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda + sha256: 83153c7d8fd99cab33c92ce820aa7bfed0f1c94fc57010cf227b6e3c50cb7796 + md5: 147c83e5e44780c7492998acbacddf52 depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 @@ -27483,16 +24231,17 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 615298 - timestamp: 1718466168866 + size: 618973 + timestamp: 1723488853807 - kind: conda name: pcre2 version: '10.44' - build: h3d7b363_0 + build: h3d7b363_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_0.conda - sha256: 44351611091ed72c4682ad23e53d7874334757298ff0ebb2acd769359ae82ab3 - md5: 007d07ab5027e0bf49f6fa660a9f89a0 + url: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda + sha256: f4a12cbf8a7c5bfa2592b9dc92b492c438781898e5b02f397979b0be6e1b5851 + md5: a3a3baddcfb8c80db84bec3cb7746fb8 depends: - bzip2 >=1.0.8,<2.0a0 - libzlib >=1.3.1,<2.0a0 @@ -27502,175 +24251,44 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 816867 - timestamp: 1718466930248 -- kind: conda - name: pcre2 - version: '10.44' - build: h7634a1b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_0.conda - sha256: b397f92ef7d561f817c5336295d6696c72d2576328baceb9dc51bfc772bcb48e - md5: b8f63aec37f31ffddac6dfdc0b31a73e - depends: - - __osx >=10.13 - - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 858178 - timestamp: 1718466163292 -- kind: conda - name: pdal - version: 2.7.2 - build: h1ff0aea_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pdal-2.7.2-h1ff0aea_1.conda - sha256: 4d4cbe89a867f79b628e362c0df7787c11d95cd73987c8ad9ead5bf06b55ccc7 - md5: c8cd0235fcd0b06724493f545d947433 - depends: - - __osx >=11.0 - - ceres-solver >=2.2.0,<2.3.0a0 - - draco - - eigen >=3.4.0,<3.4.1.0a0 - - geotiff >=1.7.3,<1.8.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libgdal >=3.9.1,<3.10.0a0 - - libkml >=1.3.0,<1.4.0a0 - - libpq >=16.3,<17.0a0 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - nitro - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 - - zlib - - zstd >=1.5.6,<1.6.0a0 - license: BSD-3-Clause - purls: [] - size: 2885250 - timestamp: 1720441686458 -- kind: conda - name: pdal - version: 2.7.2 - build: ha1f2149_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pdal-2.7.2-ha1f2149_1.conda - sha256: bbd3255b1bf166308b4943462d59359ea9a2946b8baf7becbd61e0ee59289df7 - md5: 0a303d2e7ffe79114d5a2ea6f114491d - depends: - - blas - - ceres-solver >=2.2.0,<2.3.0a0 - - draco - - eigen >=3.4.0,<3.4.1.0a0 - - geotiff >=1.7.3,<1.8.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgdal >=3.9.1,<3.10.0a0 - - libkml >=1.3.0,<1.4.0a0 - - libpq >=16.3,<17.0a0 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - mkl - - nitro - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - - zlib - - zstd >=1.5.6,<1.6.0a0 - license: BSD-3-Clause - purls: [] - size: 2942687 - timestamp: 1720443052858 + size: 820831 + timestamp: 1723489427046 - kind: conda - name: pdal - version: 2.7.2 - build: hdf3bac7_1 - build_number: 1 + name: pcre2 + version: '10.44' + build: hba22ea6_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pdal-2.7.2-hdf3bac7_1.conda - sha256: a519428a05e90f62dc1e903ede40ccd9a9c91e25592707571f45b041771c8032 - md5: d15f86f3c3691ab2e5399d0028602758 + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda + sha256: 1087716b399dab91cc9511d6499036ccdc53eb29a288bebcb19cf465c51d7c0d + md5: df359c09c41cd186fffb93a2d87aa6f5 depends: - __glibc >=2.17,<3.0.a0 - - ceres-solver >=2.2.0,<2.3.0a0 - - draco - - eigen >=3.4.0,<3.4.1.0a0 - - geotiff >=1.7.3,<1.8.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcurl >=8.8.0,<9.0a0 + - bzip2 >=1.0.8,<2.0a0 - libgcc-ng >=12 - - libgdal >=3.9.1,<3.10.0a0 - - libkml >=1.3.0,<1.4.0a0 - - libpq >=16.3,<17.0a0 - - libstdcxx-ng >=12 - - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - nitro - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 - - zlib - - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause + license_family: BSD purls: [] - size: 4398951 - timestamp: 1720441040024 + size: 952308 + timestamp: 1723488734144 - kind: conda name: pdal - version: 2.7.2 - build: hffc7825_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pdal-2.7.2-hffc7825_1.conda - sha256: 5e0fb8a5a2e2d61ef6cc293ca950e9ff26f8d53af290fff5889dfec356a1331e - md5: 4259523a24ac645b077b8f91676c8908 + version: 2.8.0 + build: hd8ed1ab_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/pdal-2.8.0-hd8ed1ab_0.conda + sha256: acba3949a17d5306982809499630565ff5c235d4d6ad4348b5b144af23c92c4e + md5: 3500da0157cf1c0892ff9d49ac913b43 depends: - - __osx >=11.0 - - ceres-solver >=2.2.0,<2.3.0a0 - - draco - - eigen >=3.4.0,<3.4.1.0a0 - - geotiff >=1.7.3,<1.8.0a0 - - hdf5 >=1.14.3,<1.14.4.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libgdal >=3.9.1,<3.10.0a0 - - libkml >=1.3.0,<1.4.0a0 - - libpq >=16.3,<17.0a0 - - libxml2 >=2.12.7,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - nitro - - proj >=9.4.1,<9.5.0a0 - - tiledb >=2.24.2,<2.25.0a0 - - zlib - - zstd >=1.5.6,<1.6.0a0 + - libpdal 2.8.0.* + - python-pdal license: BSD-3-Clause + license_family: BSD purls: [] - size: 3134268 - timestamp: 1720441760150 -- kind: conda - name: pep517 - version: 0.13.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pep517-0.13.0-pyhd8ed1ab_0.tar.bz2 - sha256: 6a6f2fa6bc9106b2edcccc142242dc3ab1f2f77a6debbd5b480f08482f052636 - md5: d94aa03d99d8adc9898f783eba0d84d2 - depends: - - python >=3.8 - - tomli - license: MIT - license_family: MIT - purls: - - pkg:pypi/pep517?source=conda-forge-mapping - size: 19044 - timestamp: 1667916747996 + size: 6463 + timestamp: 1726191026424 - kind: conda name: pexpect version: 4.9.0 @@ -27685,7 +24303,7 @@ packages: - python >=3.7 license: ISC purls: - - pkg:pypi/pexpect?source=conda-forge-mapping + - pkg:pypi/pexpect?source=hash-mapping size: 53600 timestamp: 1706113273252 - kind: conda @@ -27703,77 +24321,24 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pickleshare?source=conda-forge-mapping + - pkg:pypi/pickleshare?source=hash-mapping size: 9332 timestamp: 1602536313357 - kind: conda name: pillow - version: 10.4.0 - build: py310h01af8b1_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py310h01af8b1_0.conda - sha256: bbfeaf20ddc9b65be9c03acd9b9258e07c514bfa2b9b776ead3a3b45589f550c - md5: 385d1ffbd7e65c45e1c16e50178fc2e0 - depends: - - __osx >=11.0 - - 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.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 - - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 - - tk >=8.6.13,<8.7.0a0 - license: HPND - purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42558448 - timestamp: 1719903855994 -- kind: conda - name: pillow - version: 10.4.0 - build: py310h2fdc51f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py310h2fdc51f_0.conda - sha256: a93d2a898fee9524dc0ec978ba7b6cd7daa4f5d7a977fc614356954e4f0ee7f4 - md5: afede4695a8073d915d5c09e1e92cdc8 - depends: - - __osx >=10.13 - - 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.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 - - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - tk >=8.6.13,<8.7.0a0 - license: HPND - purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42487091 - timestamp: 1719903877605 -- kind: conda - name: pillow - version: 10.4.0 - build: py310h3e38d90_0 + version: 11.0.0 + build: py310h4dc435f_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py310h3e38d90_0.conda - sha256: 61ca46cbe2655a2cccb26cd28bbcf8553e9260936e673229b012bd168927ce48 - md5: fc84db805fe3d9abc75610fca86300c7 + url: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py310h4dc435f_0.conda + sha256: 157c6ee0999f84719d721082f83f229e995b44f02eba2200f4a9c36513d63de8 + md5: 80e0100d9f198fd2e4ed8c2e561b8fee depends: - 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 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.10,<3.11.0a0 @@ -27784,105 +24349,107 @@ packages: - vc14_runtime >=14.29.30139 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42017999 - timestamp: 1719904009428 + - pkg:pypi/pillow?source=hash-mapping + size: 41919084 + timestamp: 1729066268963 - kind: conda name: pillow - version: 10.4.0 - build: py310hebfe307_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py310hebfe307_0.conda - sha256: 1e238ea00d43f05b43b8ce77f4dba3683c8618cc1276bc7d4a65f91fbc4bfce2 - md5: 89d70dfe2d59edcefc3881be6bff33a6 + version: 11.0.0 + build: py310h530beaf_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py310h530beaf_0.conda + sha256: c96e782e51594b0f49999ad2daa55a3fae8ce42d9ce2530f9fec775beff791e4 + md5: 7e4b45cc390bed071d8ac49b2a54d113 depends: + - __osx >=11.0 - 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.7.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - tk >=8.6.13,<8.7.0a0 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42612453 - timestamp: 1719903689897 + - pkg:pypi/pillow?source=hash-mapping + size: 41911525 + timestamp: 1729066088495 - kind: conda name: pillow - version: 10.4.0 - build: py311h2755ac0_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py311h2755ac0_0.conda - sha256: 933016d8409d4b9e336a2eadb78fcb568ad1133650202c708b7530e4c7da4e6a - md5: d42d761fa1af8a6480fcdfd6ed74e432 - depends: - - __osx >=10.13 + version: 11.0.0 + build: py310hfeaa1f3_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py310hfeaa1f3_0.conda + sha256: 74bd9d252f227710844103542a6d7042cf6df490ee93fb6095c46c7254ef4703 + md5: 1947280342c7259b82a707e38ebc212e + depends: + - __glibc >=2.17,<3.0.a0 - freetype >=2.12.1,<3.0a0 - lcms2 >=2.16,<3.0a0 + - libgcc >=13 - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 - tk >=8.6.13,<8.7.0a0 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42271065 - timestamp: 1719903842670 + - pkg:pypi/pillow?source=hash-mapping + size: 42649358 + timestamp: 1729065834823 - kind: conda name: pillow - version: 10.4.0 - build: py311h5592be9_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py311h5592be9_0.conda - sha256: 6c29b557ee62bdd0e387b2fd62bee51e0c2486e5d9c32015ecca8bb9a901b2ce - md5: f6c7ffe64dfb84c7081ea09747ec0450 + version: 11.0.0 + build: py311h3894ae9_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py311h3894ae9_0.conda + sha256: 6d5307fed000e6b72b98d54dd1fea7b155f9a6453476a937522b89dde7b3d673 + md5: a9a4adae1c4178f50ac3d1fd5d64bb85 depends: + - __osx >=11.0 - 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 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 - tk >=8.6.13,<8.7.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42332084 - timestamp: 1719904289800 + - pkg:pypi/pillow?source=hash-mapping + size: 41856994 + timestamp: 1729066060042 - kind: conda name: pillow - version: 10.4.0 - build: py311h82a398c_0 + version: 11.0.0 + build: py311h49e9ac3_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py311h82a398c_0.conda - sha256: baad77ac48dab88863c072bb47697161bc213c926cb184f4053b8aa5b467f39b - md5: b9e0ac1f5564b6572a6d702c04207be8 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py311h49e9ac3_0.conda + sha256: f0f792596ae99cba01f829d064058b1e99ca84080fc89f72d925bfe473cfc1b6 + md5: 2bd3d0f839ec0d1eaca817c9d1feb7c2 depends: + - __glibc >=2.17,<3.0.a0 - freetype >=2.12.1,<3.0a0 - lcms2 >=2.16,<3.0a0 - - libgcc-ng >=12 + - libgcc >=13 - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.11,<3.12.0a0 @@ -27890,52 +24457,54 @@ packages: - tk >=8.6.13,<8.7.0a0 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42107472 - timestamp: 1719903721717 + - pkg:pypi/pillow?source=hash-mapping + size: 42421065 + timestamp: 1729065780130 - kind: conda name: pillow - version: 10.4.0 - build: py311hd7951ec_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py311hd7951ec_0.conda - sha256: 45cfa14f79c75bc6c3cc32e72728777f985ac79787eac6f560774375321deeed - md5: 4e46815e20c996cc2ecf3b79d21411b3 + version: 11.0.0 + build: py311h4fbf6a9_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py311h4fbf6a9_0.conda + sha256: 0d38ec638a5b266adb894f6fe4c874b46b98180a984007bf40cb030a22e8cc1e + md5: 44897ebc5704d3de316af26740325513 depends: - - __osx >=11.0 - 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 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 - tk >=8.6.13,<8.7.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 41840053 - timestamp: 1719903975499 + - pkg:pypi/pillow?source=hash-mapping + size: 42185657 + timestamp: 1729066269713 - kind: conda name: pillow - version: 10.4.0 - build: py312h287a98d_0 + version: 11.0.0 + build: py312h7b63e92_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.4.0-py312h287a98d_0.conda - sha256: f3bca9472702f32bf85196efbf013e9dabe130776e76c7f81062f18682f33a05 - md5: 59ea71eed98aee0bebbbdd3b118167c7 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py312h7b63e92_0.conda + sha256: 13a464bea02c0df0199c20ef6bad24a6bc336aaf55bf8d6a133d0fe664463224 + md5: 385f46a4df6f97892503a841121a9acf depends: + - __glibc >=2.17,<3.0.a0 - freetype >=2.12.1,<3.0a0 - lcms2 >=2.16,<3.0a0 - - libgcc-ng >=12 + - libgcc >=13 - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.12,<3.13.0a0 @@ -27943,24 +24512,24 @@ packages: - tk >=8.6.13,<8.7.0a0 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42068301 - timestamp: 1719903698022 + - pkg:pypi/pillow?source=hash-mapping + size: 41948418 + timestamp: 1729065846594 - kind: conda name: pillow - version: 10.4.0 - build: py312h381445a_0 + version: 11.0.0 + build: py312ha41cd45_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.4.0-py312h381445a_0.conda - sha256: 2c76c1ded20c5199d134ccecab596412510a016218f342914fd85384a850e7ed - md5: cc1e714c3cc43c59d9d0efa228c16364 + url: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py312ha41cd45_0.conda + sha256: 8802bcab3b587cec7dfa8e6a82e9851d16dffff64052282d993adf2d1cade0ef + md5: 812f37d90c99f24705d2db3091c9c29c depends: - 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 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.12,<3.13.0a0 @@ -27971,25 +24540,25 @@ packages: - vc14_runtime >=14.29.30139 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42560613 - timestamp: 1719904152461 + - pkg:pypi/pillow?source=hash-mapping + size: 41230881 + timestamp: 1729066337278 - kind: conda name: pillow - version: 10.4.0 - build: py312h39b1d8d_0 + version: 11.0.0 + build: py312haf37ca6_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-10.4.0-py312h39b1d8d_0.conda - sha256: 7c4244fa62cf630375531723631764a276eb06eeb5cc345a8e55a091aec1e52d - md5: 461c9897622e08c614087f9c9b9a22ce + url: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py312haf37ca6_0.conda + sha256: 727b4c3faecdb6f6809cf20c5f32d2df4af34e0d5b9146b7588383bcba7990e8 + md5: dc9b51fbd2b6f7fea9b5123458864dbb depends: - __osx >=11.0 - 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 + - libtiff >=4.7.0,<4.8.0a0 - libwebp-base >=1.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openjpeg >=2.5.2,<3.0a0 - python >=3.12,<3.13.0a0 @@ -27998,54 +24567,28 @@ packages: - tk >=8.6.13,<8.7.0a0 license: HPND purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42347638 - timestamp: 1719903919946 -- kind: conda - name: pillow - version: 10.4.0 - build: py312hbd70edc_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.4.0-py312hbd70edc_0.conda - sha256: 38b6e8c63c8ebfd9c8552312cecd385ec7bfad6e5733f5c6b6df0db801ea5f43 - md5: 8d55e92fa6380ac8c245f253b096fefd - depends: - - __osx >=10.13 - - 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.4.0,<2.0a0 - - libxcb >=1.16,<1.17.0a0 - - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tk >=8.6.13,<8.7.0a0 - license: HPND - purls: - - pkg:pypi/pillow?source=conda-forge-mapping - size: 42081826 - timestamp: 1719903909255 + - pkg:pypi/pillow?source=hash-mapping + size: 41737424 + timestamp: 1729065920347 - kind: conda name: pip - version: '24.0' - build: pyhd8ed1ab_0 + version: 24.3.1 + build: pyh8b19718_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda - sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a - md5: f586ac1e56c8638b64f9c8122a7b8a67 + url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + sha256: 499313e72e20225f84c2e9690bbaf5b952c8d7e0bf34b728278538f766b81628 + md5: 5dd546fe99b44fda83963d15f84263b7 depends: - - python >=3.7 + - python >=3.8,<3.13.0a0 - setuptools - wheel license: MIT license_family: MIT purls: - - pkg:pypi/pip?source=conda-forge-mapping - size: 1398245 - timestamp: 1706960660581 + - pkg:pypi/pip?source=hash-mapping + size: 1243168 + timestamp: 1730203795600 - kind: conda name: pixman version: 0.43.2 @@ -28079,21 +24622,6 @@ packages: purls: [] size: 461854 timestamp: 1709239971654 -- kind: conda - name: pixman - version: 0.43.4 - build: h73e2aa4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.43.4-h73e2aa4_0.conda - sha256: 3ab44e12e566c67a6e9fd831f557ab195456aa996b8dd9af19787ca80caa5cd1 - md5: cb134c1e03fd32f4e6bea3f6de2614fd - depends: - - libcxx >=16 - license: MIT - license_family: MIT - purls: [] - size: 323904 - timestamp: 1709239931160 - kind: conda name: pixman version: 0.43.4 @@ -28123,7 +24651,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pkginfo?source=conda-forge-mapping + - pkg:pypi/pkginfo?source=hash-mapping size: 28142 timestamp: 1709561205511 - kind: conda @@ -28140,35 +24668,35 @@ packages: - python >=3.6 license: MIT AND PSF-2.0 purls: - - pkg:pypi/pkgutil-resolve-name?source=conda-forge-mapping + - pkg:pypi/pkgutil-resolve-name?source=hash-mapping size: 10778 timestamp: 1694617398467 - kind: conda name: platformdirs - version: 4.2.2 + version: 4.3.6 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - sha256: adc59384cf0b2fc6dc7362840151e8cb076349197a38f7230278252698a88442 - md5: 6f6cf28bf8e021933869bae3f84b8fc9 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + sha256: c81bdeadc4adcda216b2c7b373f0335f5c78cc480d1d55d10f21823590d7e46f + md5: fd8f2b18b65bbf62e8f653100690c8d2 depends: - python >=3.8 license: MIT license_family: MIT purls: - - pkg:pypi/platformdirs?source=conda-forge-mapping - size: 20572 - timestamp: 1715777739019 + - pkg:pypi/platformdirs?source=hash-mapping + size: 20625 + timestamp: 1726613611845 - kind: conda name: plotly - version: 5.22.0 + version: 5.24.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.22.0-pyhd8ed1ab_0.conda - sha256: 16cada008ce6bf231bcb00a9aca6bddd03d4d0f1f7f2cd83882aa0023845c33a - md5: 5b409a5f738e7d76c2b426eddb7e9956 + url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.24.1-pyhd8ed1ab_0.conda + sha256: 39cef6d3056211840709054b90badfa4efd6f61ea37935a89ab0b549a54cc83f + md5: 81bb643d6c3ab4cbeaf724e9d68d0a6a depends: - packaging - python >=3.6 @@ -28178,9 +24706,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/plotly?source=conda-forge-mapping - size: 5322725 - timestamp: 1714830130338 + - pkg:pypi/plotly?source=hash-mapping + size: 6985343 + timestamp: 1726179760565 - kind: conda name: pluggy version: 1.5.0 @@ -28195,27 +24723,28 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pluggy?source=conda-forge-mapping + - pkg:pypi/pluggy?source=hash-mapping size: 23815 timestamp: 1713667175451 - kind: conda name: plum-dispatch - version: 2.5.1.post1 + version: 2.5.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.1.post1-pyhd8ed1ab_0.conda - sha256: f0ad27840b7787c8b068f514b02abda908693ae0cdd5da0768eb724674efdbcc - md5: c27e382ee7b41717ac7555c2076347bf + url: https://conda.anaconda.org/conda-forge/noarch/plum-dispatch-2.5.2-pyhd8ed1ab_0.conda + sha256: 164be5a53d1ed46f3465f805588dec1b23e5e9a2f2f68f2a8b5297917b1ef68e + md5: f8d38e43e2b367976d7135e602b5c9b6 depends: - beartype >=0.12 - python >=3.8 - rich >=10.0 license: MIT + license_family: MIT purls: - - pkg:pypi/plum-dispatch?source=conda-forge-mapping - size: 40042 - timestamp: 1720399899452 + - pkg:pypi/plum-dispatch?source=hash-mapping + size: 39993 + timestamp: 1721234810330 - kind: conda name: ply version: '3.11' @@ -28231,7 +24760,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ply?source=conda-forge-mapping + - pkg:pypi/ply?source=hash-mapping size: 49196 timestamp: 1712243121626 - kind: conda @@ -28251,138 +24780,108 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pooch?source=conda-forge-mapping + - pkg:pypi/pooch?source=hash-mapping size: 54375 timestamp: 1717777969967 - kind: conda name: poppler - version: 24.07.0 - build: h686f694_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/poppler-24.07.0-h686f694_0.conda - sha256: c22de4784acad150c56c0064ba383abd80b097eeb0c192461efec8e572599a2c - md5: 4e21d8257375ae401877013416ebc12b + version: 24.08.0 + build: h37b219d_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.08.0-h37b219d_1.conda + sha256: a6b5abfcb9b44049f80e85d91fd1de2cfb2c18c9831c8f9efef9923bcac6051d + md5: 7926153cd183b32ba82966ab548611ab depends: - - cairo >=1.18.0,<2.0a0 - - freetype >=2.12.1,<3.0a0 - - lcms2 >=2.16,<3.0a0 - - libcurl >=8.8.0,<9.0a0 - - libglib >=2.80.3,<3.0a0 - - libiconv >=1.17,<2.0a0 - - libintl >=0.22.5,<1.0a0 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libtiff >=4.6.0,<4.7.0a0 - - libzlib >=1.3.1,<2.0a0 - - openjpeg >=2.5.2,<3.0a0 - - poppler-data - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-2.0-only - license_family: GPL - purls: [] - size: 2374174 - timestamp: 1720374177748 -- kind: conda - name: poppler - version: 24.07.0 - build: h744cbf2_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/poppler-24.07.0-h744cbf2_0.conda - sha256: 012c492087fdcc10a97fab28f3e105ca995bc796f72f0744b1cd050ca35828e5 - md5: 1603ef5fcf8bffffc3451ca182b6df0a - depends: - - __osx >=10.13 + - __osx >=11.0 - cairo >=1.18.0,<2.0a0 - fontconfig >=2.14.2,<3.0a0 - fonts-conda-ecosystem - freetype >=2.12.1,<3.0a0 - lcms2 >=2.16,<3.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 + - libcurl >=8.9.1,<9.0a0 + - libcxx >=17 - libglib >=2.80.3,<3.0a0 - libiconv >=1.17,<2.0a0 - libintl >=0.22.5,<1.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libpng >=1.6.43,<1.7.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.3.1,<2.0a0 - nspr >=4.35,<5.0a0 - - nss >=3.102,<4.0a0 + - nss >=3.103,<4.0a0 - openjpeg >=2.5.2,<3.0a0 - poppler-data license: GPL-2.0-only license_family: GPL purls: [] - size: 1586876 - timestamp: 1720373241748 + size: 1514138 + timestamp: 1724660307740 - kind: conda name: poppler - version: 24.07.0 - build: h9787579_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.07.0-h9787579_0.conda - sha256: 52aaad25569bc5e3ba867ae01be90d01e0701683d16820888cb6a6c45402f6d6 - md5: be71ad375a07cf6e2266c1f388c093a9 + version: 24.08.0 + build: h47131b8_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.08.0-h47131b8_1.conda + sha256: b32fe787525236908e21885fef8d77e8ebdbbe6694b2fb89ed799444ebda3178 + md5: 0854b9ff0cc10a1f6f67b0f352b8e75a depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 - cairo >=1.18.0,<2.0a0 - fontconfig >=2.14.2,<3.0a0 - fonts-conda-ecosystem - freetype >=2.12.1,<3.0a0 - lcms2 >=2.16,<3.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 + - libcurl >=8.9.1,<9.0a0 + - libgcc-ng >=13 - libglib >=2.80.3,<3.0a0 - libiconv >=1.17,<2.0a0 - - libintl >=0.22.5,<1.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libpng >=1.6.43,<1.7.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libstdcxx-ng >=13 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.3.1,<2.0a0 - nspr >=4.35,<5.0a0 - - nss >=3.102,<4.0a0 + - nss >=3.103,<4.0a0 - openjpeg >=2.5.2,<3.0a0 - poppler-data license: GPL-2.0-only license_family: GPL purls: [] - size: 1504924 - timestamp: 1720373679696 + size: 1907007 + timestamp: 1724659640508 - kind: conda name: poppler - version: 24.07.0 - build: hb0d391f_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.07.0-hb0d391f_0.conda - sha256: 20ddd62419f3ddf779dfaae7d12001b0e63e365f781b1137f6db0b428193a3cb - md5: 561842bc59112340fa1f5f1ed06ae4a2 + version: 24.08.0 + build: h9415970_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/poppler-24.08.0-h9415970_1.conda + sha256: e0066265fefd6954b68f4ab74d133ad49c5ed8c5d4c668e0450ba3e7b9a9501c + md5: 4c7b7a4301314afed48c6544c34399e4 depends: - - __glibc >=2.17,<3.0.a0 - cairo >=1.18.0,<2.0a0 - - fontconfig >=2.14.2,<3.0a0 - - fonts-conda-ecosystem - freetype >=2.12.1,<3.0a0 - lcms2 >=2.16,<3.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgcc-ng >=12 + - libcurl >=8.9.1,<9.0a0 - libglib >=2.80.3,<3.0a0 - libiconv >=1.17,<2.0a0 + - libintl >=0.22.5,<1.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - libpng >=1.6.43,<1.7.0a0 - - libstdcxx-ng >=12 - - libtiff >=4.6.0,<4.7.0a0 + - libtiff >=4.6.0,<4.8.0a0 - libzlib >=1.3.1,<2.0a0 - - nspr >=4.35,<5.0a0 - - nss >=3.102,<4.0a0 - openjpeg >=2.5.2,<3.0a0 - poppler-data + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: GPL-2.0-only license_family: GPL purls: [] - size: 1906317 - timestamp: 1720373278987 + size: 2355995 + timestamp: 1724660655649 - kind: conda name: poppler-data version: 0.4.12 @@ -28399,100 +24898,82 @@ packages: timestamp: 1675353652214 - kind: conda name: postgresql - version: '16.3' - build: h1d90168_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/postgresql-16.3-h1d90168_0.conda - sha256: 69a0887d23f51bc7e35097bf03f88d2ff14e88cc578c3f8296a178c8378950ec - md5: a7ccb9b98d8e3ef61c0ca6d470e8e66d - depends: - - __osx >=10.13 - - krb5 >=1.21.2,<1.22.0a0 - - libpq 16.3 h4501773_0 - - libxml2 >=2.12.6,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.3.0,<4.0a0 + version: '16.4' + build: h8a08265_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.4-h8a08265_3.conda + sha256: 9accef7ad694bf65068f111ea6cebe8e197077cead932d3edab56340179544b8 + md5: 36018a2af5cd039a7814f52c8d0fd86d + depends: + - __osx >=11.0 + - krb5 >=1.21.3,<1.22.0a0 + - libpq 16.4 hfb0b52a_3 + - libxml2 >=2.12.7,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tzcode - tzdata license: PostgreSQL purls: [] - size: 4612922 - timestamp: 1715267536439 -- kind: conda - name: postgresql - version: '16.3' - build: h7f155c9_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.3-h7f155c9_0.conda - sha256: 7cd34a8803a3687f6fbed5908dd9b2ecb0ff923a1ac7c4d602d0f06a5804edbd - md5: a253c97c94a2c2886e1cb79e34a5b641 - depends: - - krb5 >=1.21.2,<1.22.0a0 - - libpq 16.3 hab9416b_0 - - libxml2 >=2.12.6,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.3.0,<4.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: PostgreSQL - purls: [] - size: 18697452 - timestamp: 1715267263356 + size: 4336286 + timestamp: 1729085771350 - kind: conda name: postgresql - version: '16.3' - build: h8e811e2_0 + version: '16.4' + build: hb2eb5c0_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.3-h8e811e2_0.conda - sha256: 4cd39edd84011657978e35abdc880cf3e49785e8a86f1c99a34029a3e4998abe - md5: e4d52462da124ed3792472f95a36fc2a + url: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.4-hb2eb5c0_3.conda + sha256: aad93b8cb17380baadd7530962afdb647976502efffa76ff1da5d685855980d9 + md5: 3ba28956641b0c59640bf2b124d2d731 depends: - - krb5 >=1.21.2,<1.22.0a0 - - libgcc-ng >=12 - - libpq 16.3 ha72fbe1_0 - - libxml2 >=2.12.6,<3.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 + - libpq 16.4 h2d7952a_3 + - libxml2 >=2.12.7,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tzcode - tzdata license: PostgreSQL purls: [] - size: 5332852 - timestamp: 1715266435060 + size: 5335603 + timestamp: 1729085030112 - kind: conda name: postgresql - version: '16.3' - build: hdfa2ec6_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.3-hdfa2ec6_0.conda - sha256: 50bb32b3c8f827a07b29cec09df578fa4f4f7b41770ca6686cccdb5e3bf91431 - md5: caaf4b5ea6b6abebcbf6ac18522b5875 + version: '16.4' + build: hd835ec0_3 + build_number: 3 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/postgresql-16.4-hd835ec0_3.conda + sha256: e3810ba31c012eef687401b2728a51b8266d18f4649d9b4af2e69e9c1658fce4 + md5: 6524773163bfc97b6a63bdbe0a95eb18 depends: - - __osx >=11.0 - - krb5 >=1.21.2,<1.22.0a0 - - libpq 16.3 h7afe498_0 - - libxml2 >=2.12.6,<3.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.3.0,<4.0a0 - - readline >=8.2,<9.0a0 - - tzcode - - tzdata + - krb5 >=1.21.3,<1.22.0a0 + - libpq 16.4 hab9416b_3 + - libxml2 >=2.12.7,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: PostgreSQL purls: [] - size: 4330650 - timestamp: 1715267000628 + size: 18678849 + timestamp: 1729086039103 - kind: conda name: pre-commit - version: 3.7.1 + version: 4.0.1 build: pyha770c72_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.1-pyha770c72_0.conda - sha256: 689c169ce6ed5d516d8524cc1e6ef2687dff19747c1ed1ee9b347a71f47ff12d - md5: 724bc4489c1174fc8e3233b0624fa51f + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + sha256: 2490b18ec802d8f085f2de8298a3d275451f7db17769353080dfb121fe386675 + md5: 5971cc64048943605f352f7f8612de6c depends: - cfgv >=2.0.0 - identify >=1.0.0 @@ -28503,180 +24984,141 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pre-commit?source=conda-forge-mapping - size: 179748 - timestamp: 1715432871404 + - pkg:pypi/pre-commit?source=hash-mapping + size: 194633 + timestamp: 1728420305558 - kind: conda name: proj - version: 9.4.1 - build: hb784bbd_0 + version: 9.5.0 + build: h12925eb_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/proj-9.4.1-hb784bbd_0.conda - sha256: ec9d16725925c62a7974faa396ca61878cb4cc7398c6c0e76d3ae28cffafc7db - md5: c38c5246d064ef16eba065d93c46f1c6 + url: https://conda.anaconda.org/conda-forge/linux-64/proj-9.5.0-h12925eb_0.conda + sha256: 936de8754054d97223e87cc87b72641d2c7582d536ee9eee4b0443fa66e2733f + md5: 8c29983ebe50cc7e0998c34bc7614222 depends: - - libcurl >=8.8.0,<9.0a0 - - libgcc-ng >=12 - - libsqlite >=3.46.0,<4.0a0 - - libstdcxx-ng >=12 - - libtiff >=4.6.0,<4.7.0a0 + - __glibc >=2.17,<3.0.a0 + - libcurl >=8.10.0,<9.0a0 + - libgcc >=13 + - libsqlite >=3.46.1,<4.0a0 + - libstdcxx >=13 + - libtiff >=4.6.0,<4.8.0a0 - sqlite constrains: - proj4 ==999999999999 license: MIT license_family: MIT purls: [] - size: 3048862 - timestamp: 1718272927953 + size: 3093445 + timestamp: 1726489083290 - kind: conda name: proj - version: 9.4.1 - build: hd9569ee_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/proj-9.4.1-hd9569ee_0.conda - sha256: 6ebc0dc14e3057c859c09702149ddc0d301cbfb0e1c7553b617b194e0b0cabfb - md5: 123d005359753b6f1f7cae5dab367826 + version: 9.5.0 + build: h61a8e3e_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.5.0-h61a8e3e_0.conda + sha256: df44f24dc325fff7480f20fb404dad03015b9e646aa25e0eb24d1edd3930164e + md5: 7b9888f46634eb49eece8fa6e16406d6 depends: - - libcurl >=8.8.0,<9.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 - - sqlite - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - constrains: - - proj4 ==999999999999 - license: MIT - license_family: MIT - purls: [] - size: 2700952 - timestamp: 1718273646988 -- kind: conda - name: proj - version: 9.4.1 - build: hf92c781_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/proj-9.4.1-hf92c781_0.conda - sha256: c047c55cb2e239d35d7f28fc50225d5798be37af1e84d9036966447c82b373f5 - md5: b128ccdae180135720ab963c68bc2f1a - depends: - - __osx >=10.13 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - __osx >=11.0 + - libcurl >=8.10.0,<9.0a0 + - libcxx >=17 + - libsqlite >=3.46.1,<4.0a0 + - libtiff >=4.6.0,<4.8.0a0 - sqlite constrains: - proj4 ==999999999999 license: MIT license_family: MIT purls: [] - size: 2800404 - timestamp: 1718273429868 + size: 2732379 + timestamp: 1726489115567 - kind: conda name: proj - version: 9.4.1 - build: hfb94cee_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.4.1-hfb94cee_0.conda - sha256: b50cf5ce599ec37b64b5508df1ccd9ad291656d432aa4b6aea887217e9b55690 - md5: 090b6e9b16cf8d539c689c04e237a252 + version: 9.5.0 + build: hd9569ee_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/proj-9.5.0-hd9569ee_0.conda + sha256: ebd1fee2834cf5971a08dfb665606f775302aa22e98d5d893d35323805311419 + md5: 4cfbffd1cd2bbff30e975a71b1769597 depends: - - __osx >=11.0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libsqlite >=3.46.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 + - libcurl >=8.10.0,<9.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libtiff >=4.6.0,<4.8.0a0 - sqlite + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - proj4 ==999999999999 license: MIT license_family: MIT purls: [] - size: 2712012 - timestamp: 1718273063314 + size: 2709612 + timestamp: 1726489723807 - kind: conda name: prometheus_client - version: 0.20.0 + version: 0.21.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda - sha256: 757cd91d01c2e0b64fadf6bc9a11f558cf7638d897dfbaf7415ddf324d5405c9 - md5: 9a19b94034dd3abb2b348c8b93388035 + url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.0-pyhd8ed1ab_0.conda + sha256: 01f0c3dd00081637ed920a922b17bcc8ed49608404ee466ced806856e671f6b9 + md5: 07e9550ddff45150bfc7da146268e165 depends: - python >=3.8 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/prometheus-client?source=conda-forge-mapping - size: 48913 - timestamp: 1707932844383 + - pkg:pypi/prometheus-client?source=hash-mapping + size: 49024 + timestamp: 1726902073034 - kind: conda name: prompt-toolkit - version: 3.0.47 + version: 3.0.48 build: pyha770c72_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.47-pyha770c72_0.conda - sha256: d93ac5853e398aaa10f0dd7addd64b411f94ace1f9104d619cd250e19a5ac5b4 - md5: 1247c861065d227781231950e14fe817 + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_0.conda + sha256: 44e4e6108d425a666856a52d1523e5d70890256a8920bb0dcd3d55cc750f3207 + md5: 4c05134c48b6a74f33bbb9938e4a115e depends: - python >=3.7 - wcwidth constrains: - - prompt_toolkit 3.0.47 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/prompt-toolkit?source=conda-forge-mapping - size: 270710 - timestamp: 1718048095491 -- kind: conda - name: psutil - version: 6.0.0 - build: py310h936d840_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py310h936d840_0.conda - sha256: c976819733772f63a1c8e704cb96bf4287c0eb477b10ba467be3adbe5974bf3a - md5: 2f5a3bd97ce3176794b59c160ed51fba - depends: - - __osx >=10.13 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - prompt_toolkit 3.0.48 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 378205 - timestamp: 1719274714245 + - pkg:pypi/prompt-toolkit?source=hash-mapping + size: 270271 + timestamp: 1727341744544 - kind: conda name: psutil - version: 6.0.0 - build: py310ha6dd24b_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py310ha6dd24b_0.conda - sha256: 7477bd84734668992cda9076147c5d07ce92f59c70441757a5b289401bd8ed85 - md5: 0e0df689b8c6ea6676b786bd78a575d1 + version: 6.1.0 + build: py310ha75aee5_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py310ha75aee5_0.conda + sha256: d51ffcb07e820b281723d4c0838764faef4061ec1ec306d4f091796bf9411987 + md5: a42a2ed94df11c5cfa5348a317e1f197 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 379588 - timestamp: 1719274858964 + - pkg:pypi/psutil?source=hash-mapping + size: 368823 + timestamp: 1729847140562 - kind: conda name: psutil - version: 6.0.0 + version: 6.1.0 build: py310ha8f682b_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py310ha8f682b_0.conda - sha256: 9801a18aa6fadd3a6286fd89e83fe6affbcb3ca275bb2a00ab0da299d32e92ad - md5: 32f5673b7aa2309dda74ccd01822caca + url: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py310ha8f682b_0.conda + sha256: ef77ead9f21fed3de1e71b7af9c19198683454526ddc6ff62045fdbe0042723f + md5: 4e5ed46bab4ca903c94ef4775ec0da68 depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -28686,71 +25128,55 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 388249 - timestamp: 1719275165312 + - pkg:pypi/psutil?source=hash-mapping + size: 385936 + timestamp: 1729847558125 - kind: conda name: psutil - version: 6.0.0 - build: py310hc51659f_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py310hc51659f_0.conda - sha256: d23e0a2bf49a752fcc8267484c5eff3e5b267703853c11cc7b4f762412d0f7ef - md5: b04405826f96f4eb2f502e642d121bb5 + version: 6.1.0 + build: py310hf9df320_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py310hf9df320_0.conda + sha256: 6c6254f879a4f587565a7cb53475f4072ea65de1fcd453da994ab3a8f222c9a4 + md5: 6f375d878663d0aa31f85c88b4298c38 depends: - - libgcc-ng >=12 + - __osx >=11.0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 371633 - timestamp: 1719274668659 + - pkg:pypi/psutil?source=hash-mapping + size: 376431 + timestamp: 1729847288915 - kind: conda name: psutil - version: 6.0.0 - build: py311h331c9d8_0 + version: 6.1.0 + build: py311h9ecbd09_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py311h331c9d8_0.conda - sha256: 33fea160c284e588f4ff534567e84c8d3679556787708b9bab89a99e5008ac76 - md5: f1cbef9236edde98a811ba5a98975f2e - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 508965 - timestamp: 1719274724588 -- kind: conda - name: psutil - version: 6.0.0 - build: py311h72ae277_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py311h72ae277_0.conda - sha256: fa9ddabbf1a7f0e360dcdd9dfb6fd93742e211211c821693843e946655163dbf - md5: a31301b30c5844e74944b88ff3e6a98c + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py311h9ecbd09_0.conda + sha256: 2ac3f1ed6e6a2a0c67a3922f4b5faf382855ad02cc0c85c5d56291c7a94296d0 + md5: 0ffc1f53106a38f059b151c465891ed3 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 517243 - timestamp: 1719274745686 + - pkg:pypi/psutil?source=hash-mapping + size: 505408 + timestamp: 1729847169876 - kind: conda name: psutil - version: 6.0.0 - build: py311hd3f4193_0 + version: 6.1.0 + build: py311hae2e1ce_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py311hd3f4193_0.conda - sha256: 984318469265162206090199a756db2f327dada39b050c9878534663b3eb6268 - md5: 3cfef0112ab97269edb8fd98afc78288 + url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py311hae2e1ce_0.conda + sha256: 6237f04371995fa8e8f16481dcd4e01d2733a82750180a362a9f4953ffbb3cde + md5: e226eba0c52ecd6786e73c8ad7f41e79 depends: - __osx >=11.0 - python >=3.11,<3.12.0a0 @@ -28759,17 +25185,17 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 517029 - timestamp: 1719274800839 + - pkg:pypi/psutil?source=hash-mapping + size: 514316 + timestamp: 1729847396776 - kind: conda name: psutil - version: 6.0.0 + version: 6.1.0 build: py311he736701_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py311he736701_0.conda - sha256: 9a9900e87f48a04ea597a987105dd978f4d62312f334f2a0f58f3a749b42e226 - md5: 325e47d267a6db408c1d61bde22c2d9c + url: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py311he736701_0.conda + sha256: 303c988247c4b1638f1cc90cd40465f5c74ca0ecfd83114033af637654dc2b6b + md5: 307267e6a028bca3382d98e06a372ebf depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -28779,37 +25205,17 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 527926 - timestamp: 1719275196844 -- kind: conda - name: psutil - version: 6.0.0 - build: py312h4389bb4_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/psutil-6.0.0-py312h4389bb4_0.conda - sha256: c9ed9457fa4c4900b7f2fc5e28493bdd3885acb823ed48c01dae59f043a65ad8 - md5: 86fd428b42be7495c93d0ff837adfc9e - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 509298 - timestamp: 1719275243368 + - pkg:pypi/psutil?source=hash-mapping + size: 521434 + timestamp: 1729847606018 - kind: conda name: psutil - version: 6.0.0 - build: py312h7e5086c_0 + version: 6.1.0 + build: py312h0bf5046_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.0.0-py312h7e5086c_0.conda - sha256: d677457b2ce2e6ef6c2845c653e5bc39be9a59a900d95a5a7771b490f754cb5f - md5: e45a140733a4805d80e282c1ede40d0b + url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-6.1.0-py312h0bf5046_0.conda + sha256: 143a40f9c72d803744ebd6a60801c5cd17af152b293f8d59e90111ce62b53569 + md5: 61566f5c6e1d29d1d12882eb93e28532 depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -28818,890 +25224,626 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 501703 - timestamp: 1719274787455 + - pkg:pypi/psutil?source=hash-mapping + size: 493431 + timestamp: 1729847279283 - kind: conda name: psutil - version: 6.0.0 - build: py312h9a8786e_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.0.0-py312h9a8786e_0.conda - sha256: d629363515df957507411fd24db2a0635ac893e5d60b2ee2f656b53be9c70b1d - md5: 1aeffa86c55972ca4e88ac843eccedf2 + version: 6.1.0 + build: py312h4389bb4_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/psutil-6.1.0-py312h4389bb4_0.conda + sha256: 49640ecea25367e46c89d7ee8556a1d96a0c2b82240b303415b39a29aaec7163 + md5: ef327db3af50ec234214c3e7566510eb depends: - - libgcc-ng >=12 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 493452 - timestamp: 1719274737481 + - pkg:pypi/psutil?source=hash-mapping + size: 503151 + timestamp: 1729847947592 - kind: conda name: psutil - version: 6.0.0 - build: py312hbd25219_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/psutil-6.0.0-py312hbd25219_0.conda - sha256: 06e949079497cf8e1c9e253b77be709ec0c11816656814e1ad857ac5cbbea65b - md5: db086d71e9be086313110a670b6d549f + version: 6.1.0 + build: py312h66e93f0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py312h66e93f0_0.conda + sha256: 0f309b435174e037d5cfe5ed26c1c5ad8152c68cfe61af17709ec31ec3d9f096 + md5: 0524eb91d3d78d76d671c6e3cd7cee82 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=conda-forge-mapping - size: 499307 - timestamp: 1719274858092 -- kind: conda - name: psycopg2 - version: 2.9.9 - build: py312h08590aa_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psycopg2-2.9.9-py312h08590aa_0.conda - sha256: f2c21db09e411331a9d741b46ecbc6f4ee3571f173c6014ceac0cbbc17eb5e5b - md5: 04c845846381625e95c88d013edfda21 - depends: - - libgcc-ng >=12 - - libpq >=16.1,<17.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: LGPL-3.0-or-later - license_family: LGPL - purls: - - pkg:pypi/psycopg2?source=conda-forge-mapping - size: 188527 - timestamp: 1701737750002 + - pkg:pypi/psutil?source=hash-mapping + size: 488462 + timestamp: 1729847159916 - kind: conda name: psycopg2 version: 2.9.9 - build: py312h84485f8_0 + build: py312h0de0141_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/psycopg2-2.9.9-py312h84485f8_0.conda - sha256: 10eaaf2567552e70535fcaad0c6bc21eb5117d1606cb5384f9546b5c934de964 - md5: 33ddbd58e1fb3b825080454e464f99d5 + url: https://conda.anaconda.org/conda-forge/osx-arm64/psycopg2-2.9.9-py312h0de0141_1.conda + sha256: 9f7037e8625ed24c7cc041ca055d9ba15f7f7791b9d22cc5e30f963d14be7bf9 + md5: 15f1e1772f44c5fc8589b3c43bbc8042 depends: - - libpq >=16.1,<17.0a0 - - openssl >=3.2.0,<4.0a0 + - __osx >=11.0 + - libpq >=16.4,<17.0a0 + - openssl >=3.3.2,<4.0a0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: LGPL-3.0-or-later license_family: LGPL purls: - - pkg:pypi/psycopg2?source=conda-forge-mapping - size: 164537 - timestamp: 1701737910469 + - pkg:pypi/psycopg2?source=hash-mapping + size: 164423 + timestamp: 1727870164468 - kind: conda name: psycopg2 version: 2.9.9 - build: py312hca9e88b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/psycopg2-2.9.9-py312hca9e88b_0.conda - sha256: fa8f76f1ea8fa9e488dc743fb9474f6cd804692aa82f708d1f82112fcd12bb4a - md5: 15afd0d9970b58b13536772fd9e856a7 - depends: - - libpq >=16.1,<17.0a0 - - openssl >=3.2.0,<4.0a0 + build: py312h44033e7_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/psycopg2-2.9.9-py312h44033e7_1.conda + sha256: 23b4e21d235218748f01943cdd115ef3fb2445269018b02ab9c34d5959156766 + md5: 208ce2859bb64fba8910f15e4477f86f + depends: + - libpq >=16.4,<17.0a0 + - openssl >=3.3.2,<4.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: LGPL-3.0-or-later license_family: LGPL purls: - - pkg:pypi/psycopg2?source=conda-forge-mapping - size: 164542 - timestamp: 1701738146431 + - pkg:pypi/psycopg2?source=hash-mapping + size: 171480 + timestamp: 1727870440350 - kind: conda name: psycopg2 version: 2.9.9 - build: py312hf50bb3c_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/psycopg2-2.9.9-py312hf50bb3c_0.conda - sha256: 4d4e231d32accb8be46b64cd0d3efa20d50599cdf3557031ce357f475e8c01b0 - md5: 0af80526a48a63e6fa3cfb628b6a28df + build: py312h9862866_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/psycopg2-2.9.9-py312h9862866_1.conda + sha256: 29c8d2017d3d1eaf86123e3fc6be27773cbd0090f7363a0b005c14c7e18ec867 + md5: ca0004420e15bef34eb1c59a9e2a223f depends: - - libpq >=16.1,<17.0a0 - - openssl >=3.2.0,<4.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libpq >=16.4,<17.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: LGPL-3.0-or-later license_family: LGPL purls: - - pkg:pypi/psycopg2?source=conda-forge-mapping - size: 170828 - timestamp: 1701738274625 + - pkg:pypi/psycopg2?source=hash-mapping + size: 190105 + timestamp: 1727870025087 - kind: conda name: pthread-stubs version: '0.4' - build: h27ca646_1001 - build_number: 1001 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-h27ca646_1001.tar.bz2 - sha256: 9da9e6f5d51dff6ad2e4ee0874791437ba952e0a6249942273f0fedfd07ea826 - md5: d3f26c6494d4105d4ecb85203d687102 + build: h0e40799_1002 + build_number: 1002 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda + sha256: 7e446bafb4d692792310ed022fe284e848c6a868c861655a92435af7368bae7b + md5: 3c8f2573569bb816483e5cf57efbbe29 + depends: + - libgcc >=13 + - libwinpthread >=12.0.0.r4.gg4f2fc60ca + - ucrt >=10.0.20348.0 license: MIT license_family: MIT purls: [] - size: 5696 - timestamp: 1606147608402 + size: 9389 + timestamp: 1726802555076 - kind: conda name: pthread-stubs version: '0.4' - build: h36c2ea0_1001 - build_number: 1001 + build: hb9d3cd8_1002 + build_number: 1002 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 - sha256: 67c84822f87b641d89df09758da498b2d4558d47b920fd1d3fe6d3a871e000ff - md5: 22dad4df6e8630e8dff2428f6f6a7036 + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda + sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973 + md5: b3c17d95b5a10c6e64a21fa17573e70e depends: - - libgcc-ng >=7.5.0 - license: MIT - license_family: MIT - purls: [] - size: 5625 - timestamp: 1606147468727 -- kind: conda - name: pthread-stubs - version: '0.4' - build: hc929b4f_1001 - build_number: 1001 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-hc929b4f_1001.tar.bz2 - sha256: 6e3900bb241bcdec513d4e7180fe9a19186c1a38f0b4080ed619d26014222c53 - md5: addd19059de62181cd11ae8f4ef26084 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 5653 - timestamp: 1606147699844 + size: 8252 + timestamp: 1726802366959 - kind: conda name: pthread-stubs version: '0.4' - build: hcd874cb_1001 - build_number: 1001 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2 - sha256: bb5a6ddf1a609a63addd6d7b488b0f58d05092ea84e9203283409bff539e202a - md5: a1f820480193ea83582b13249a7e7bd9 + build: hd74edd7_1002 + build_number: 1002 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda + sha256: 8ed65e17fbb0ca944bfb8093b60086e3f9dd678c3448b5de212017394c247ee3 + md5: 415816daf82e0b23a736a069a75e9da7 depends: - - m2w64-gcc-libs + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 6417 - timestamp: 1606147814351 -- kind: conda - name: pthreads-win32 - version: 2.9.1 - build: hfa6e2cd_3 - build_number: 3 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 - sha256: 576a228630a72f25d255a5e345e5f10878e153221a96560f2498040cd6f54005 - md5: e2da8758d7d51ff6aa78a14dfb9dbed4 - depends: - - vc 14.* - license: LGPL 2 - purls: [] - size: 144301 - timestamp: 1537755684331 -- kind: conda - name: ptyprocess - version: 0.7.0 - build: pyhd3deb0d_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 - sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a - md5: 359eeb6536da0e687af562ed265ec263 - depends: - - python - license: ISC - purls: - - pkg:pypi/ptyprocess?source=conda-forge-mapping - size: 16546 - timestamp: 1609419417991 -- kind: conda - name: pulseaudio-client - version: '17.0' - build: hb77b528_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda - sha256: b27c0c8671bd95c205a61aeeac807c095b60bc76eb5021863f919036d7a964fc - md5: 07f45f1be1c25345faddb8db0de8039b - depends: - - dbus >=1.13.6,<2.0a0 - - libgcc-ng >=12 - - libglib >=2.78.3,<3.0a0 - - libsndfile >=1.2.2,<1.3.0a0 - - libsystemd0 >=255 - constrains: - - pulseaudio 17.0 *_0 - license: LGPL-2.1-or-later - license_family: LGPL - purls: [] - size: 757633 - timestamp: 1705690081905 -- kind: conda - name: pure_eval - version: 0.2.2 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 - sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 - md5: 6784285c7e55cb7212efabc79e4c2883 - depends: - - python >=3.5 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pure-eval?source=conda-forge-mapping - size: 14551 - timestamp: 1642876055775 -- kind: conda - name: pyarrow - version: 16.1.0 - build: py310h05ea346_4 - build_number: 4 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py310h05ea346_4.conda - sha256: e46bd19e6f1a6de5f92525b96c749c87435cec162815eb602f190586edf5b712 - md5: ef69f0a883b3f93e4e22746be0648d2d - depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28730 - timestamp: 1719452030358 -- kind: conda - name: pyarrow - version: 16.1.0 - build: py310h24597f5_4 - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py310h24597f5_4.conda - sha256: 4d6682f14cd10758592875c37e35c7e5e244bf26f62d716a4b9edc7ed6d45774 - md5: b8c448a3f70f295c05e15913a6a94588 - depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28438 - timestamp: 1719451267298 -- kind: conda - name: pyarrow - version: 16.1.0 - build: py310h58fd45c_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py310h58fd45c_4.conda - sha256: 676d711a1c433271b1ceb5a6464275efb97f07f2bbd107bddcd4e7467756019b - md5: 57cd79c8705d58bf383e84bc280c947a - depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28423 - timestamp: 1719450866015 -- kind: conda - name: pyarrow - version: 16.1.0 - build: py310hb7f781d_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py310hb7f781d_4.conda - sha256: 236ac9d1b2ebfbec9f4862058377d50829580e5d74bf05f0986e42c1869ef73b - md5: 10604d0c3b113642a951e6945a1c0c2a - depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28156 - timestamp: 1719450862607 -- kind: conda - name: pyarrow - version: 16.1.0 - build: py311h06a5be4_4 - build_number: 4 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py311h06a5be4_4.conda - sha256: 4056152beb601a18f48fdf95897fbdd15d67719936f08dcdf7ec2a049d0c298c - md5: 2563e5b5e7f13e3c8b30c249bc8f6729 - depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28790 - timestamp: 1719452033245 + size: 8381 + timestamp: 1726802424786 +- kind: pypi + name: ptvsd + version: 4.3.2 + url: https://files.pythonhosted.org/packages/44/5b/fa477e4fd8e62c722febdc52462d7b037a77aa963c3e400a8e90e8f0d2c0/ptvsd-4.3.2-py2.py3-none-any.whl + sha256: 459137736068bb02515040b2ed2738169cb30d69a38e0fd5dffcba255f41e68d + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' - kind: conda - name: pyarrow - version: 16.1.0 - build: py311h35c05fe_4 - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py311h35c05fe_4.conda - sha256: 470e6fc6dc10f5694876156564c7d1e130af47723f50fe715cfe9de05980d70a - md5: 75d41ec86da137a75aec215ef4417ccb + name: ptyprocess + version: 0.7.0 + build: pyhd3deb0d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + md5: 359eeb6536da0e687af562ed265ec263 depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: Apache-2.0 - license_family: APACHE + - python + license: ISC purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28483 - timestamp: 1719450916556 + - pkg:pypi/ptyprocess?source=hash-mapping + size: 16546 + timestamp: 1609419417991 - kind: conda - name: pyarrow - version: 16.1.0 - build: py311hbd00459_4 - build_number: 4 + name: pulseaudio-client + version: '17.0' + build: hb77b528_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py311hbd00459_4.conda - sha256: ffc890c57deb9a86523f8702c6440701a5d95b304f390400f510819743b92920 - md5: 79ebadb39164c2861d6a6819c772434a + url: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda + sha256: b27c0c8671bd95c205a61aeeac807c095b60bc76eb5021863f919036d7a964fc + md5: 07f45f1be1c25345faddb8db0de8039b depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28218 - timestamp: 1719450778701 + - dbus >=1.13.6,<2.0a0 + - libgcc-ng >=12 + - libglib >=2.78.3,<3.0a0 + - libsndfile >=1.2.2,<1.3.0a0 + - libsystemd0 >=255 + constrains: + - pulseaudio 17.0 *_0 + license: LGPL-2.1-or-later + license_family: LGPL + purls: [] + size: 757633 + timestamp: 1705690081905 - kind: conda - name: pyarrow - version: 16.1.0 - build: py311he764780_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py311he764780_4.conda - sha256: 3a74ff7b664d7f1b1a29cce288397042cc8d5b52de1c0e7204fe07cd8a43c102 - md5: 5f4356c4a9b2a2f5939acbc343c3c4a7 + name: pure_eval + version: 0.2.3 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_0.conda + sha256: dcfcb3cee1ae0a89729601582cc3edea20ba13c9493967a03a693c67567af0c8 + md5: 0f051f09d992e0d08941706ad519ee0e depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: Apache-2.0 - license_family: APACHE + - python >=3.5 + license: MIT + license_family: MIT purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28400 - timestamp: 1719450668450 + - pkg:pypi/pure-eval?source=hash-mapping + size: 16551 + timestamp: 1721585805256 - kind: conda name: pyarrow - version: 16.1.0 - build: py312h0be7463_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-16.1.0-py312h0be7463_4.conda - sha256: 9db5dff27788d821a222415b29c3b52b8e6e017a2e05c5db456fc5d1f9d6d182 - md5: a0631c319d5c95c029b4f13cec628fdb + version: 15.0.2 + build: py312h5169447_39_cpu + build_number: 39 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-15.0.2-py312h5169447_39_cpu.conda + sha256: bdde6527651850124c92b170840c4ad3a9188cd5f862b15b13ef0d652c9f5b52 + md5: 95f5279b0b21cbd5d0a91746e5d2656f depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* + - __glibc >=2.17,<3.0.a0 + - libarrow 15.0.2 h1972583_39_cpu + - libarrow-acero 15.0.2 h5d0bfc1_39_cpu + - libarrow-dataset 15.0.2 h5d0bfc1_39_cpu + - libarrow-flight 15.0.2 h15553ab_39_cpu + - libarrow-flight-sql 15.0.2 ha33d14e_39_cpu + - libarrow-gandiva 15.0.2 h18fa613_39_cpu + - libarrow-substrait 15.0.2 ha33d14e_39_cpu + - libgcc >=13 + - libparquet 15.0.2 hd082c85_39_cpu + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - tzdata + constrains: + - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28440 - timestamp: 1719450806124 + - pkg:pypi/pyarrow?source=hash-mapping + size: 4551732 + timestamp: 1729870282331 - kind: conda name: pyarrow - version: 16.1.0 - build: py312h7e22eef_4 - build_number: 4 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_4.conda - sha256: 2dc72ba03c29faf9a4d68c0a95dc043faae76234ee9a6595ae33f228e9402ded - md5: d87c3dd0bd55b1c3e39315c457bf93bd + version: 15.0.2 + build: py312h5d771bf_39_cpu + build_number: 39 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-15.0.2-py312h5d771bf_39_cpu.conda + sha256: fd8768c339c05650c046f9f63ccfc2c4bc139581a27bcefd6adf9dc8492077d4 + md5: 5e0d25348ce743b26726eb29f2fcd0c0 depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* + - __osx >=11.0 + - libarrow 15.0.2 hfcb7bf0_39_cpu + - libarrow-acero 15.0.2 h5833ebf_39_cpu + - libarrow-dataset 15.0.2 h5833ebf_39_cpu + - libarrow-flight 15.0.2 h1a98edb_39_cpu + - libarrow-flight-sql 15.0.2 h54b16e1_39_cpu + - libarrow-gandiva 15.0.2 h6d50e30_39_cpu + - libarrow-substrait 15.0.2 hec64ae3_39_cpu + - libcxx >=17 + - libparquet 15.0.2 h8aa6169_39_cpu + - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - tzdata + constrains: + - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28745 - timestamp: 1719452326782 + - pkg:pypi/pyarrow?source=hash-mapping + size: 3939607 + timestamp: 1729872717907 - kind: conda name: pyarrow version: 16.1.0 - build: py312h9cebb41_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-16.1.0-py312h9cebb41_4.conda - sha256: c0c3b47124b5b8cbc63144355702aa782310d92772f6f20c23b272cf0226b37f - md5: 2097b6ae7186e10c9aab1228636b804f + build: py312h7e22eef_6 + build_number: 6 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-16.1.0-py312h7e22eef_6.conda + sha256: 25d38e45f652340f001ca6e859f242b964bc17d6a6fd19f7c65b513506f2d71b + md5: b76ea71c8c480cddcbdf43daa7d30799 depends: - libarrow-acero 16.1.0.* - libarrow-dataset 16.1.0.* - libarrow-substrait 16.1.0.* - libparquet 16.1.0.* - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* + - pyarrow-core 16.1.0 *_6_* - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28187 - timestamp: 1719450991822 + purls: [] + size: 28581 + timestamp: 1730170700322 - kind: conda name: pyarrow - version: 16.1.0 - build: py312ha814d7c_4 - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-16.1.0-py312ha814d7c_4.conda - sha256: e685502bc28dddc8d5bba7563169373dd28a1eb4d486eeece65a5fbf1598c13d - md5: 225a4acf65b86686978e64a7fbcfc48c - depends: - - libarrow-acero 16.1.0.* - - libarrow-dataset 16.1.0.* - - libarrow-substrait 16.1.0.* - - libparquet 16.1.0.* - - numpy >=1.19,<3 - - pyarrow-core 16.1.0 *_4_* - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 28421 - timestamp: 1719450599571 -- kind: conda - name: pyarrow-core - version: 16.1.0 - build: py310h0aab069_4_cpu - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py310h0aab069_4_cpu.conda - sha256: 9349c79a1baf53cb8606a67d9553344c030d66089687ae9ceb741d09d293d5b7 - md5: 78c257f0105f88f1c8a7e04dfc9a7202 + version: 18.0.0 + build: py310h05ea346_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-18.0.0-py310h05ea346_0.conda + sha256: ba9afd2be1da455553fd461d4c34ac836551889bf2e5df9eb738192acf93416d + md5: a1626da44d2d4135e12e6ef95a605830 depends: - - __osx >=10.13 - - libarrow 16.1.0.* *cpu - - libcxx >=16 - - libzlib >=1.3.1,<2.0a0 + - libarrow-acero 18.0.0.* + - libarrow-dataset 18.0.0.* + - libarrow-substrait 18.0.0.* + - libparquet 18.0.0.* - numpy >=1.19,<3 + - pyarrow-core 18.0.0 *_0_* - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - constrains: - - orc >=2.0.1 - - aws-crt-cpp >=0.26.12 - - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3879208 - timestamp: 1719450812830 + purls: [] + size: 25776 + timestamp: 1730165297025 - kind: conda - name: pyarrow-core - version: 16.1.0 - build: py310h2e300fa_4_cpu - build_number: 4 + name: pyarrow + version: 18.0.0 + build: py310h24597f5_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py310h2e300fa_4_cpu.conda - sha256: 41553c3b1ea285dabbb3df20cff7d286aba13414f1c8dfe2ba60e9cd82a88cd8 - md5: b4829fd36c8630411657840a12bcf215 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-18.0.0-py310h24597f5_0.conda + sha256: a1edc7439eb77a41f089778c61b513fbb6e534e1e6c37a2566fee216b09dcc96 + md5: 618f9022292ed0415481b3ab4c9700a0 depends: - - __osx >=11.0 - - libarrow 16.1.0.* *cpu - - libcxx >=16 - - libzlib >=1.3.1,<2.0a0 + - libarrow-acero 18.0.0.* + - libarrow-dataset 18.0.0.* + - libarrow-substrait 18.0.0.* + - libparquet 18.0.0.* - numpy >=1.19,<3 + - pyarrow-core 18.0.0 *_0_* - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - constrains: - - aws-crt-cpp >=0.26.12 - - orc >=2.0.1 - - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3805883 - timestamp: 1719451185702 + purls: [] + size: 25399 + timestamp: 1730165271118 - kind: conda - name: pyarrow-core - version: 16.1.0 - build: py310h46b3431_4_cpu - build_number: 4 + name: pyarrow + version: 18.0.0 + build: py310hb7f781d_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py310h46b3431_4_cpu.conda - sha256: f037ad03359521c24ff1338c58cbaad4b56a5885460c900931a372c6a5abab8c - md5: 5843861fd2369ed14551635017e73d93 + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-18.0.0-py310hb7f781d_0.conda + sha256: 6eddf408f60414ba4191f729c6da0e83ef8c55256afd5b6ecd8f8b759b11a68d + md5: e53af4e66e8c214d0f0c6a071666f29d depends: - - libarrow 16.1.0.* *cpu - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.3.1,<2.0a0 + - libarrow-acero 18.0.0.* + - libarrow-dataset 18.0.0.* + - libarrow-substrait 18.0.0.* + - libparquet 18.0.0.* - numpy >=1.19,<3 + - pyarrow-core 18.0.0 *_0_* - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - constrains: - - orc >=2.0.1 - - apache-arrow-proc =*=cpu - - aws-crt-cpp >=0.26.12 license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 4405342 - timestamp: 1719450545528 + purls: [] + size: 25253 + timestamp: 1730165364640 - kind: conda - name: pyarrow-core - version: 16.1.0 - build: py310h649278f_4_cpu - build_number: 4 + name: pyarrow + version: 18.0.0 + build: py311h06a5be4_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py310h649278f_4_cpu.conda - sha256: 86a2e030b0af8a6594af527fd090f62c348cb80b207412196f9ac86e5d508b2d - md5: b36f8e5123c799dba321584ffb00c8e0 + url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-18.0.0-py311h06a5be4_0.conda + sha256: 07feff39e3e6d8af7327aff36fb4e6cdf9651b12a4fd466f1925f06da87eeab1 + md5: f564b972e38971e79354de4b7c00ff2f depends: - - libarrow 16.1.0.* *cpu - - libzlib >=1.3.1,<2.0a0 + - libarrow-acero 18.0.0.* + - libarrow-dataset 18.0.0.* + - libarrow-substrait 18.0.0.* + - libparquet 18.0.0.* - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - constrains: - - orc >=2.0.1 - - aws-crt-cpp >=0.26.12 - - apache-arrow-proc =*=cpu + - pyarrow-core 18.0.0 *_0_* + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3369781 - timestamp: 1719451238859 + purls: [] + size: 25782 + timestamp: 1730166331194 - kind: conda - name: pyarrow-core - version: 16.1.0 - build: py311h4d2d057_4_cpu - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py311h4d2d057_4_cpu.conda - sha256: 74fdab5c1bbec1be1714b380f86e1ae8db9157ca7909ab0b7d6839d8763149b7 - md5: fde59faa82da742385924f115d66b8cf + name: pyarrow + version: 18.0.0 + build: py311h35c05fe_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-18.0.0-py311h35c05fe_0.conda + sha256: 0862fabd21f3ef61b59ce82bc2785aaf76bd9f446dab822d2c2edb521000fb87 + md5: e52c6bd7a5bba08474976be9d55492b9 depends: - - __osx >=10.13 - - libarrow 16.1.0.* *cpu - - libcxx >=16 - - libzlib >=1.3.1,<2.0a0 + - libarrow-acero 18.0.0.* + - libarrow-dataset 18.0.0.* + - libarrow-substrait 18.0.0.* + - libparquet 18.0.0.* - numpy >=1.19,<3 + - pyarrow-core 18.0.0 *_0_* - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - constrains: - - orc >=2.0.1 - - aws-crt-cpp >=0.26.12 - - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3962733 - timestamp: 1719450626229 + purls: [] + size: 25431 + timestamp: 1730165237010 - kind: conda - name: pyarrow-core - version: 16.1.0 - build: py311h8c3dac4_4_cpu - build_number: 4 + name: pyarrow + version: 18.0.0 + build: py311hbd00459_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py311h8c3dac4_4_cpu.conda - sha256: 18a02eea4073607e6e193e791970acd3d12fe4feadaf45590a380fa6f3102998 - md5: 61e946fb87536002a3d17cf5a7e70655 + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-18.0.0-py311hbd00459_0.conda + sha256: afd7c47ee369ec3c8239551f1f97d8f8a68763d6d2f1ad78ae94addef5f87dcf + md5: 41e7efb7d67488fc6edfc7c121c78e00 depends: - - libarrow 16.1.0.* *cpu - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.3.1,<2.0a0 + - libarrow-acero 18.0.0.* + - libarrow-dataset 18.0.0.* + - libarrow-substrait 18.0.0.* + - libparquet 18.0.0.* - numpy >=1.19,<3 + - pyarrow-core 18.0.0 *_0_* - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - constrains: - - orc >=2.0.1 - - aws-crt-cpp >=0.26.12 - - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 4472932 - timestamp: 1719450556539 + purls: [] + size: 25305 + timestamp: 1730165396426 - kind: conda name: pyarrow-core version: 16.1.0 - build: py311hf5072a7_4_cpu - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py311hf5072a7_4_cpu.conda - sha256: 69070d76ac497a8853b4b9ae2ca9adf12f0c82dc199072276540f06c4f3e653d - md5: 20c55afa6ee597464fb47e7c45a60e03 + build: py312h6a9c419_6_cpu + build_number: 6 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h6a9c419_6_cpu.conda + sha256: 2e5fbe1c0c438949190b2a3b6b9dfdbb845c34f0898b6db24bfd4b85e0019af9 + md5: b9a78387b4c7005e4b043af825d8c64b depends: - - __osx >=11.0 - libarrow 16.1.0.* *cpu - - libcxx >=16 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - - orc >=2.0.1 - - aws-crt-cpp >=0.26.12 - apache-arrow-proc =*=cpu + - orc >=2.0.1 + - libgoogle-cloud >=2.26 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3875344 - timestamp: 1719450851916 + - pkg:pypi/pyarrow?source=hash-mapping + size: 3343551 + timestamp: 1730169785601 - kind: conda name: pyarrow-core - version: 16.1.0 - build: py311hf9a78b3_4_cpu - build_number: 4 + version: 18.0.0 + build: py310h399dd74_0_cpu subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py311hf9a78b3_4_cpu.conda - sha256: a479b9bec9114339c7572d4f2aa33f5fa94409bce63301b36b0c478b7d6afc89 - md5: e55e213574bc88ee83efb3edf1e41f38 + url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-18.0.0-py310h399dd74_0_cpu.conda + sha256: 0b38449edb38df5fbdfbf5dfa199eefab1e78e776718b01b008baa889dfc9b86 + md5: 231cfaf750074bc1aa95da81fd0b5515 depends: - - libarrow 16.1.0.* *cpu + - libarrow 18.0.0.* *cpu - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - orc >=2.0.1 - apache-arrow-proc =*=cpu - - aws-crt-cpp >=0.26.12 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3404211 - timestamp: 1719451135030 + - pkg:pypi/pyarrow?source=hash-mapping + size: 3428873 + timestamp: 1730165278839 - kind: conda name: pyarrow-core - version: 16.1.0 - build: py312h12b3929_4_cpu - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-16.1.0-py312h12b3929_4_cpu.conda - sha256: ea2d7a98499baaf4b1c054d0e507f09b9386c44cc370e6542bff79273bb03e23 - md5: 6a7a90bdf6dc59ec3203a75a63483ec4 + version: 18.0.0 + build: py310hac404ae_0_cpu + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-18.0.0-py310hac404ae_0_cpu.conda + sha256: 9510af9cc476f902abb67f152f5c03a38b1ab1be95837f007720a532263cf389 + md5: 30d0464c5f479c12e6cf3e109c363800 depends: - - __osx >=10.13 - - libarrow 16.1.0.* *cpu - - libcxx >=16 + - __glibc >=2.17,<3.0.a0 + - libarrow 18.0.0.* *cpu + - libgcc >=13 + - libstdcxx >=13 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 constrains: - apache-arrow-proc =*=cpu - - aws-crt-cpp >=0.26.12 - - orc >=2.0.1 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3906008 - timestamp: 1719450753811 + - pkg:pypi/pyarrow?source=hash-mapping + size: 4519877 + timestamp: 1730165206960 - kind: conda name: pyarrow-core - version: 16.1.0 - build: py312h21f1c3e_4_cpu - build_number: 4 + version: 18.0.0 + build: py310hc17921c_0_cpu subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-16.1.0-py312h21f1c3e_4_cpu.conda - sha256: f9ba679dfd74a4b5669e641b6fb2c7265887860e5e9a0db166bab711952b6a76 - md5: 20321f5c138eea00266b2b43083cc892 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-18.0.0-py310hc17921c_0_cpu.conda + sha256: dbaeb8465bd8fc34452362a027a818448f1c3133bba774249689bb2a3a1560a9 + md5: ad18fd1f1839dcace190201cf6e3baf2 depends: - __osx >=11.0 - - libarrow 16.1.0.* *cpu - - libcxx >=16 + - libarrow 18.0.0.* *cpu + - libcxx >=18 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython + - python_abi 3.10.* *_cp310 + constrains: + - apache-arrow-proc =*=cpu + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/pyarrow?source=hash-mapping + size: 3892014 + timestamp: 1730165242806 +- kind: conda + name: pyarrow-core + version: 18.0.0 + build: py311h4854187_0_cpu + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-18.0.0-py311h4854187_0_cpu.conda + sha256: d69e3885b0b304576df74383626d15135523a69598181346ea822d528d93b67a + md5: 441f792a3152b7ffc3460947859c035a + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow 18.0.0.* *cpu + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - numpy >=1.19,<3 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 constrains: - - aws-crt-cpp >=0.26.12 - - orc >=2.0.1 - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3821727 - timestamp: 1719450557059 + - pkg:pypi/pyarrow?source=hash-mapping + size: 4567670 + timestamp: 1730165151612 - kind: conda name: pyarrow-core - version: 16.1.0 - build: py312h3529c54_4_cpu - build_number: 4 + version: 18.0.0 + build: py311hdea38fa_0_cpu subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-16.1.0-py312h3529c54_4_cpu.conda - sha256: 3cab19da0250623bf6f60a413d49b3affd252eb35b9f9ce46c40622cfce41ca0 - md5: e7e6a3bbc92a3caad9c37d7de484ec19 + url: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-18.0.0-py311hdea38fa_0_cpu.conda + sha256: 170799a2514e38f2071b16f18be40efa1373fc13a722f3af2aadfd23c4a2170b + md5: 5113f80bbc05154c490200bba7eff837 depends: - - libarrow 16.1.0.* *cpu + - libarrow 18.0.0.* *cpu - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - aws-crt-cpp >=0.26.12 - - orc >=2.0.1 - apache-arrow-proc =*=cpu license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 3371901 - timestamp: 1719461180534 + - pkg:pypi/pyarrow?source=hash-mapping + size: 3501188 + timestamp: 1730165668708 - kind: conda name: pyarrow-core - version: 16.1.0 - build: py312h70856f0_4_cpu - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-16.1.0-py312h70856f0_4_cpu.conda - sha256: 66e5fe79d047f5a8eb57d256e380f2b20075ddd4d3878a08a8e6983895a7282f - md5: 6971b04df592bd625eebd5bfb1d9fc93 + version: 18.0.0 + build: py311he04fa90_0_cpu + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-18.0.0-py311he04fa90_0_cpu.conda + sha256: 082a024b74b5bc552dd909228ef5d1a5ebee4c734eb61887dbd74905be6eb961 + md5: beb17b30f5d0bf4bb2a3c0388a93e87b depends: - - libarrow 16.1.0.* *cpu - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __osx >=11.0 + - libarrow 18.0.0.* *cpu + - libcxx >=18 - libzlib >=1.3.1,<2.0a0 - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 constrains: - - aws-crt-cpp >=0.26.12 - apache-arrow-proc =*=cpu - - orc >=2.0.1 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=conda-forge-mapping - size: 4453913 - timestamp: 1719450753954 -- kind: conda - name: pyarrow-hotfix - version: '0.6' - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda - sha256: 9b767969d059c106aac6596438a7e7ebd3aa1e2ff6553d4b7e05126dfebf4bd6 - md5: ccc06e6ef2064ae129fab3286299abda - depends: - - pyarrow >=0.14 - - python >=3.5 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/pyarrow-hotfix?source=conda-forge-mapping - size: 13567 - timestamp: 1700596511761 + - pkg:pypi/pyarrow?source=hash-mapping + size: 3946612 + timestamp: 1730165210826 - kind: conda name: pycparser version: '2.22' @@ -29716,61 +25858,220 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pycparser?source=conda-forge-mapping + - pkg:pypi/pycparser?source=hash-mapping size: 105098 timestamp: 1711811634025 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py310h76eb7d6_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py310h76eb7d6_0.conda + sha256: c6eafff2e9a1787118c697400cbe805bc00756ea033d85bfd878434a575c20c9 + md5: f87f3e68bd9e3c525362cbe569074744 + depends: + - __osx >=11.0 + - gmp >=6.3.0,<7.0a0 + - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython + - python_abi 3.10.* *_cp310 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1490115 + timestamp: 1729876522153 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py310ha8f682b_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py310ha8f682b_0.conda + sha256: 77a222a928c0a4f5f70aa8d5506bfd3d0d15d820026967d48fafc32d4e149e8e + md5: 8f8237b9b27d235c7be8258c041a5c55 + depends: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1540553 + timestamp: 1729876776726 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py310hb390ff4_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py310hb390ff4_0.conda + sha256: 5cfa0f777df041ea7550bb567225972d9356cc2115266911816970a36b9a8781 + md5: cb04bb51881876b5d60b8a7c211a59c5 + depends: + - __glibc >=2.17,<3.0.a0 + - gmp >=6.3.0,<7.0a0 + - libgcc >=13 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1504935 + timestamp: 1729876385246 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py311h35130b2_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py311h35130b2_0.conda + sha256: 36764b41d648fde26a752d4ce0ad87a9567ac38b821e5a81466917e5d1aff9dd + md5: a7746f79ccba8e47f74a6a48a93f3d18 + depends: + - __glibc >=2.17,<3.0.a0 + - gmp >=6.3.0,<7.0a0 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1667139 + timestamp: 1729876385222 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py311ha9d8091_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py311ha9d8091_0.conda + sha256: fa5343ecc294d5f2645f6fe28677769cc71c038b3dab4fbc32e56da37144abc8 + md5: e8f75dc6043d2bbc055659cdcd1f54fa + depends: + - __osx >=11.0 + - gmp >=6.3.0,<7.0a0 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1651198 + timestamp: 1729876534314 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py311he736701_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py311he736701_0.conda + sha256: 293107bff2a5150a132b0f5faa33dfb386bfdaedcd3e7f6342b26087bce4261c + md5: eeffbd09593600a66b682034031e7671 + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1708197 + timestamp: 1729877067993 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py312h4389bb4_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pycryptodome-3.21.0-py312h4389bb4_0.conda + sha256: 2308688ec96a464b68860e410747dafef79b6809ce3cbe06f9085c5371dcaeaf + md5: 3440c4e1f4a1ea7fa534a036ef540d82 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1687506 + timestamp: 1729876855331 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py312h4cf456b_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pycryptodome-3.21.0-py312h4cf456b_0.conda + sha256: f415fb59d61061c9add4758111c3069136d1cffea1176eb2c7898947579eabbe + md5: eebeb6063d7c9392d862d68f7040c7bd + depends: + - __osx >=11.0 + - gmp >=6.3.0,<7.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1629078 + timestamp: 1729876586115 +- kind: conda + name: pycryptodome + version: 3.21.0 + build: py312h6368725_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pycryptodome-3.21.0-py312h6368725_0.conda + sha256: e178bd0a4ec8fd48a062a82e0961a805c746c7d0925ee4e8a7d8368261b0cf6c + md5: 6fbba77365b12896b0df4c583bf9131e + depends: + - __glibc >=2.17,<3.0.a0 + - gmp >=6.3.0,<7.0a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pycryptodome?source=hash-mapping + size: 1645627 + timestamp: 1729876387419 - kind: conda name: pydantic - version: 2.8.2 + version: 2.9.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.8.2-pyhd8ed1ab_0.conda - sha256: 5a877153f7eaaab9724db5b64366a35e346007c9c104c1d6a6042f83b2f4f0df - md5: 539a038a24a959662df1fcaa2cfc5c3e + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.9.2-pyhd8ed1ab_0.conda + sha256: 1b7b0dc9f6af4da156bf22b0263be70829364a08145c696d3670facff2f6441a + md5: 1eb533bb8eb2199e3fef3e4aa147319f depends: - - annotated-types >=0.4.0 - - pydantic-core 2.20.1 + - annotated-types >=0.6.0 + - pydantic-core 2.23.4 - python >=3.7 - typing-extensions >=4.6.1 license: MIT license_family: MIT purls: - - pkg:pypi/pydantic?source=conda-forge-mapping - size: 292538 - timestamp: 1720293163725 -- kind: conda - name: pydantic-core - version: 2.20.1 - build: py310h12a1ced_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py310h12a1ced_0.conda - sha256: 8f8cb8a786b1d462b8bcef00317affeb256a08e2c013031dc3fafd714ed9679e - md5: ae3d82b9b5d0d7ec1bba5b238c66611b - depends: - - __osx >=10.13 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - typing-extensions >=4.6.0,!=4.7.0 - constrains: - - __osx >=10.13 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1521994 - timestamp: 1720041808699 + - pkg:pypi/pydantic?source=hash-mapping + size: 300649 + timestamp: 1726601202431 - kind: conda name: pydantic-core - version: 2.20.1 - build: py310h42e942d_0 + version: 2.23.4 + build: py310h505e2c1_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py310h42e942d_0.conda - sha256: 0645b2283b9fcc50d6f51891bc8c06f0db0ecb16beb177a4e42c98ae888e38d5 - md5: 51dcc27558e8cbe3aa6d3641cd78aa6d + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py310h505e2c1_0.conda + sha256: ce24d3860d430be37bd9981307917f187d40e354aa31ccf3192dfa1b76e2f909 + md5: f53ab8b7b08a48331d8ea5d0ecf9df51 depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 + - libgcc >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - typing-extensions >=4.6.0,!=4.7.0 @@ -29779,17 +26080,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1602867 - timestamp: 1720041574812 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1605291 + timestamp: 1726525361592 - kind: conda name: pydantic-core - version: 2.20.1 - build: py310h947b723_0 + version: 2.23.4 + build: py310h7a930dc_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py310h947b723_0.conda - sha256: 0d011c96bc9c9a885e81f8b38630863cc2598ab1e1f6356047942a8256241c49 - md5: 86df5c20a0fa84c0f3a0121bb8195114 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py310h7a930dc_0.conda + sha256: 0cc58f67546aa1bf637ba5b7981601b959fa9db3d957a09f80bd00b8dd9254c5 + md5: 01ddf6afdd013a91977bf11df1f9dd2d depends: - __osx >=11.0 - python >=3.10,<3.11.0a0 @@ -29801,17 +26102,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1420895 - timestamp: 1720041774188 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1424647 + timestamp: 1726525558040 - kind: conda name: pydantic-core - version: 2.20.1 + version: 2.23.4 build: py310hc226416_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py310hc226416_0.conda - sha256: 5c54ea231ae75370dee9af043b86ac8dada7c5eb7bea842bb2773d7eda4dbec6 - md5: 99d16046cf146f48bf0b1d764f85397f + url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py310hc226416_0.conda + sha256: ed18885ea09dc808bad76626b039f67c864bf0111ca44b92f26503afd75d9321 + md5: cbd9baf9242d8ded72668716fbb93139 depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -29822,38 +26123,39 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1565460 - timestamp: 1720042595130 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1561800 + timestamp: 1726526068639 - kind: conda name: pydantic-core - version: 2.20.1 - build: py311h295b1db_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py311h295b1db_0.conda - sha256: e4ca6993af1b9aed78490be17b4fd91c1abcd64be6092d37b3658cfcf134db08 - md5: 4211d605e9f326012e8f4995f803fedb - depends: - - __osx >=10.13 + version: 2.23.4 + build: py311h481aa64_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py311h481aa64_0.conda + sha256: cfb1342c6363a01b1315ac8298a44e56f686d7e82cfdbb04d1ab156939f98ef1 + md5: 9d638548f9a18cab78220984c0fda22b + depends: + - __osx >=11.0 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 - typing-extensions >=4.6.0,!=4.7.0 constrains: - - __osx >=10.13 + - __osx >=11.0 license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1525464 - timestamp: 1720041588485 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1429587 + timestamp: 1726525496750 - kind: conda name: pydantic-core - version: 2.20.1 + version: 2.23.4 build: py311h533ab2d_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py311h533ab2d_0.conda - sha256: ae6d9646d05fa73745a811990afdf5b788cda66da077ed5cf6b153c4ce15d142 - md5: 17ac2bdd81c22a669cbfa50771ab9f95 + url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py311h533ab2d_0.conda + sha256: 69302d3a1234d6c16781a0ab3e5f5cc6cfd01369bf8743f161cc8b973df977de + md5: 7e86339f91e0c427a8406d856e9aba74 depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -29864,61 +26166,61 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1568837 - timestamp: 1720042568082 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1563380 + timestamp: 1726526437164 - kind: conda name: pydantic-core - version: 2.20.1 - build: py311h98c6a39_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py311h98c6a39_0.conda - sha256: e9fe075fdd1765e5bdcf71391194b54b8464d81d2255cb07c9071f0490b3885b - md5: e44994388527ab3f5c23a7ed3f784cc2 + version: 2.23.4 + build: py311h9e33e62_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py311h9e33e62_0.conda + sha256: 3cdbe29c2b4aec34aabcf03cf2b34a6284563c03bdb43b63d204e6d9f6f0dbfc + md5: 5e24fd648b7926bec16e535efda533c2 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 - typing-extensions >=4.6.0,!=4.7.0 constrains: - - __osx >=11.0 + - __glibc >=2.17 license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1424405 - timestamp: 1720041776111 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1616197 + timestamp: 1726525278048 - kind: conda name: pydantic-core - version: 2.20.1 - build: py311hb3a8bbb_0 + version: 2.23.4 + build: py312h12e396e_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py311hb3a8bbb_0.conda - sha256: 203918a51383ab42161763317e44f505e2526aac4451613acae4d83633cf2676 - md5: 6cb8806e9e920bd9c32205128d848a00 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.23.4-py312h12e396e_0.conda + sha256: 365fde689865087b2a9da636f36678bd59617b324ce7a538b4806e90602b20f1 + md5: 0845ab52d4ea209049129a6a91bc74ba depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - typing-extensions >=4.6.0,!=4.7.0 constrains: - __glibc >=2.17 license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1606640 - timestamp: 1720041525595 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1611784 + timestamp: 1726525286507 - kind: conda name: pydantic-core - version: 2.20.1 + version: 2.23.4 build: py312h2615798_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.20.1-py312h2615798_0.conda - sha256: 2dfe7ebca8de86e35e4231000936bcf14b56e6d9a3c09f4abc91ab090050c5ca - md5: bf5efeeab4b8c0259119a4281b5d3531 + url: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.23.4-py312h2615798_0.conda + sha256: cda5f2ea2fb8b1aa91b744aadec269ec3060832106242873639df205258aac62 + md5: 94169f56c3ad3d070248c73f71371944 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -29929,17 +26231,17 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1570939 - timestamp: 1720042355599 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1566768 + timestamp: 1726526372511 - kind: conda name: pydantic-core - version: 2.20.1 - build: py312h552d48e_0 + version: 2.23.4 + build: py312he431725_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.20.1-py312h552d48e_0.conda - sha256: 5a6381ce4a5ecaeffe92f6c05fc4a70290140364e56c715a9de9c939c2bf46de - md5: b0b8cd2d2e6aa1620dfea907706f94b4 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.23.4-py312he431725_0.conda + sha256: d6edd3d0f9e701c8299519d412ad3dc900c7d893a134f2582203cf43585decca + md5: 3148052477686acc581b20a34b478eeb depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -29951,52 +26253,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1426579 - timestamp: 1720041992028 -- kind: conda - name: pydantic-core - version: 2.20.1 - build: py312ha47ea1c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.20.1-py312ha47ea1c_0.conda - sha256: d82efcb45a6958af050851f76544fd35a6968fc50f613a2b24dd3467fab7a8d7 - md5: 8e095b6acd6405ea0da845d191302faf - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - typing-extensions >=4.6.0,!=4.7.0 - constrains: - - __osx >=10.13 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1529185 - timestamp: 1720041729851 -- kind: conda - name: pydantic-core - version: 2.20.1 - build: py312hf008fa9_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.20.1-py312hf008fa9_0.conda - sha256: adf117d3289c8dd97ffdb3076bc488217fedd02f3d96d35cc971f4de33460602 - md5: 8cc8f335b7e355558854236d86b2bea4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - typing-extensions >=4.6.0,!=4.7.0 - constrains: - - __glibc >=2.17 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pydantic-core?source=conda-forge-mapping - size: 1612296 - timestamp: 1720041586700 + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1431747 + timestamp: 1726525575527 - kind: conda name: pygments version: 2.18.0 @@ -30011,174 +26270,63 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/pygments?source=conda-forge-mapping + - pkg:pypi/pygments?source=hash-mapping size: 879295 timestamp: 1714846885370 - kind: conda name: pyobjc-core version: 10.3.1 - build: py312hbb55c70_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-10.3.1-py312hbb55c70_0.conda - sha256: 407fca7feca5dceb058a48b7272f342e4e8708eba4ac890a076d5499da3d7fe4 - md5: ce11aaac866b943dbb644b70a820385e - depends: - - __osx >=11.0 - - libffi >=3.4,<4.0a0 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - - setuptools - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyobjc-core?source=conda-forge-mapping - size: 491160 - timestamp: 1718171865193 -- kind: conda - name: pyobjc-core - version: 10.3.1 - build: py312he77c50b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-10.3.1-py312he77c50b_0.conda - sha256: d3f056d2fb9fb2838b79672b17f2b1305218c1e95fbf05f0b02ac1eca513082d - md5: fb6108445d2e14c5aa1f79fa97aab8ed - depends: - - __osx >=10.13 - - libffi >=3.4,<4.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - setuptools - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyobjc-core?source=conda-forge-mapping - size: 496184 - timestamp: 1718171987828 -- kind: conda - name: pyobjc-framework-cocoa - version: 10.3.1 - build: py312hbb55c70_0 + build: py312hd24fc31_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-10.3.1-py312hbb55c70_0.conda - sha256: 9bd12bc17b6307dc3ca5bc3aac5f82a01bc9953bd448616b6f62577ba4e04148 - md5: ba19305f7b6e524edb92cefdd47fbbb1 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-10.3.1-py312hd24fc31_1.conda + sha256: e3311a9b7e843e3fb2b814bf0a0a901db8d2c21d72bacf246a95867c2628ca25 + md5: 1533727287f098e669d75f9c54dc1601 depends: - __osx >=11.0 - libffi >=3.4,<4.0a0 - - pyobjc-core 10.3.1.* - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - setuptools license: MIT license_family: MIT purls: - - pkg:pypi/pyobjc-framework-cocoa?source=conda-forge-mapping - size: 379357 - timestamp: 1718645762924 -- kind: conda - name: pyobjc-framework-cocoa - version: 10.3.1 - build: py312he77c50b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-10.3.1-py312he77c50b_0.conda - sha256: aa99ea58ad2f8ade894c11f5be2e9e28860efe527f0994532c84bef20eef249a - md5: 58a1af350ed69dd0d9e43c652c9b35b6 - depends: - - __osx >=10.13 - - libffi >=3.4,<4.0a0 - - pyobjc-core 10.3.1.* - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyobjc-framework-cocoa?source=conda-forge-mapping - size: 375734 - timestamp: 1718645660119 -- kind: conda - name: pyogrio - version: 0.8.0 - build: py311he661659_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.8.0-py311he661659_2.conda - sha256: dc23f072661188c01bdf993ef29b4913cb70854febc8a02e12e0d304ab05078e - md5: eadd540cba719d30c75658c0432701b3 - depends: - - __osx >=11.0 - - gdal - - libcxx >=16 - - libgdal >=3.9.0,<3.10.0a0 - - numpy - - packaging - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 668628 - timestamp: 1716285222123 -- kind: conda - name: pyogrio - version: 0.9.0 - build: py310h2d86289_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.9.0-py310h2d86289_0.conda - sha256: a6a54840f3cf306493916cce608612bfc08fa3e6fc7a39e5ec0d2a5997acf383 - md5: 32a3b79924cf7ac6c9437a64b1376dbe - depends: - - __osx >=11.0 - - gdal - - libcxx >=16 - - libgdal >=3.9.0,<3.10.0a0 - - numpy - - packaging - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 635971 - timestamp: 1718696294459 + - pkg:pypi/pyobjc-core?source=hash-mapping + size: 490928 + timestamp: 1725739760349 - kind: conda - name: pyogrio - version: 0.9.0 - build: py310h3d73142_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py310h3d73142_0.conda - sha256: 58aabeb318a16e302c184e3568e80d0b184f70658eff54115818f3c6cb5f2ddc - md5: 8e9064f2c4b8a8408b76db01918816e5 + name: pyobjc-framework-cocoa + version: 10.3.1 + build: py312hd24fc31_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-10.3.1-py312hd24fc31_1.conda + sha256: 799aa68d1d9abe00f3574d7763e91f86007a938ab8f5dff63ae3e1f22d0d634d + md5: b1c63f8abafc9530a9259e0d6a70e984 depends: - - gdal - - libgcc-ng >=12 - - libgdal >=3.9.0,<3.10.0a0 - - libstdcxx-ng >=12 - - numpy - - packaging - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - __osx >=11.0 + - libffi >=3.4,<4.0a0 + - pyobjc-core 10.3.1.* + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 707723 - timestamp: 1718696031359 + - pkg:pypi/pyobjc-framework-cocoa?source=hash-mapping + size: 381079 + timestamp: 1725875188776 - kind: conda name: pyogrio - version: 0.9.0 - build: py310h98d268c_0 + version: 0.10.0 + build: py310h4eba6db_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py310h98d268c_0.conda - sha256: 6e36318574ed3693e7fb905e9c666b64bf3ab947320392acb7b4b94ce916acb6 - md5: 233a5a3c0374b02cd6d3a96bda5d10a6 + url: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py310h4eba6db_0.conda + sha256: c0c6450308c32ad29637e2f1f3c2eeb450c624ff4a6b6faf471bc4b322f6c1aa + md5: b15b270846f8a3d7c41ee3a5038fdad1 depends: - - gdal - - libgdal >=3.9.0,<3.10.0a0 + - libgdal-core >=3.9.2,<3.10.0a0 - numpy - packaging - python >=3.10,<3.11.0a0 @@ -30189,22 +26337,22 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 866188 - timestamp: 1718696675315 + - pkg:pypi/pyogrio?source=hash-mapping + size: 783176 + timestamp: 1727772254349 - kind: conda name: pyogrio - version: 0.9.0 - build: py310hc4416aa_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py310hc4416aa_0.conda - sha256: f66f5ae2ed2cebedaf889681bbcd49d6d9dbd450062e6b705b45ba64b7d27758 - md5: 46361170c4aab7afa7f3bd2b465576ae + version: 0.10.0 + build: py310h63d473e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py310h63d473e_0.conda + sha256: af25b691fbd65ef6f36c9b641938129916e0c108c3589bfc4b8dd69e61abb4fa + md5: dd84f1a11871c11871b237883fc55e8a depends: - - __osx >=10.13 - - gdal - - libcxx >=16 - - libgdal >=3.9.0,<3.10.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-core >=3.9.2,<3.10.0a0 + - libstdcxx >=13 - numpy - packaging - python >=3.10,<3.11.0a0 @@ -30212,46 +26360,45 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 636123 - timestamp: 1718696094667 + - pkg:pypi/pyogrio?source=hash-mapping + size: 611141 + timestamp: 1727771737399 - kind: conda name: pyogrio - version: 0.9.0 - build: py311h2494c99_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py311h2494c99_0.conda - sha256: 4d404d0d0a6fd384a2c94ad3eeee8d30d47b44ff1a3baf9fa254c75ec647864c - md5: 5749157f37ded7ae4639f35dbb4de3a7 + version: 0.10.0 + build: py310he5b2d59_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py310he5b2d59_0.conda + sha256: ad878cd9a64a0e59769a8ce4eb1cd073b2491d0e0484faa3f3496661e9ca9164 + md5: 53410d9eb45cf66f6016e5579c296fc7 depends: - - gdal - - libgdal >=3.9.0,<3.10.0a0 + - __osx >=11.0 + - libcxx >=17 + - libgdal-core >=3.9.2,<3.10.0a0 - numpy - packaging - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython + - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 902559 - timestamp: 1718696645786 + - pkg:pypi/pyogrio?source=hash-mapping + size: 536900 + timestamp: 1727771929316 - kind: conda name: pyogrio - version: 0.9.0 - build: py311h4afbaa0_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py311h4afbaa0_0.conda - sha256: 5aa1fa1e9db21f4d1312429a00c41f60d0fcc6b895c7012f0ede5ddf810835fc - md5: 1202fca68f1c38642e3f7c1059c276cb + version: 0.10.0 + build: py311h5fbebbf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py311h5fbebbf_0.conda + sha256: 7e15af8cd9014c59122b3c2c2eacec325c2ee144cbbdef58406fd8f65c263502 + md5: 9d7fdfd10f69e238be48da8bf7219633 depends: - - __osx >=10.13 - - gdal - - libcxx >=16 - - libgdal >=3.9.0,<3.10.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-core >=3.9.2,<3.10.0a0 + - libstdcxx >=13 - numpy - packaging - python >=3.11,<3.12.0a0 @@ -30259,92 +26406,91 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 671171 - timestamp: 1718696245065 + - pkg:pypi/pyogrio?source=hash-mapping + size: 649624 + timestamp: 1727771764398 - kind: conda name: pyogrio - version: 0.9.0 - build: py311hfc743a8_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py311hfc743a8_0.conda - sha256: bf2c1b7831d9f95ecdd47f8c54113147e8fa82163e251e93f523c1e4302948c6 - md5: 8a02cc6044fd91d6171949978cd15a30 + version: 0.10.0 + build: py311h8c1360f_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py311h8c1360f_0.conda + sha256: ec4c62095cd3dbf3705e1804d2917bd71c98125926915a6f2c7cb2639b88d78d + md5: 0467fa9e0830cfb4f810bd224b8c54fd depends: - - gdal - - libgcc-ng >=12 - - libgdal >=3.9.0,<3.10.0a0 - - libstdcxx-ng >=12 + - libgdal-core >=3.9.2,<3.10.0a0 - numpy - packaging - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 743966 - timestamp: 1718695983053 + - pkg:pypi/pyogrio?source=hash-mapping + size: 821236 + timestamp: 1727772037340 - kind: conda name: pyogrio - version: 0.9.0 - build: py312h15038b3_0 + version: 0.10.0 + build: py311hc9b973e_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.9.0-py312h15038b3_0.conda - sha256: 61d12bb940cde2a28c265b2102abeb70e0a51ae45bb159712e425b4bd226ecdb - md5: a940c064a3443f423dae2b50f86ef847 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py311hc9b973e_0.conda + sha256: 94df77ad995df9150a4985423e2aa806a88c738a2e7d56323d1bbf28db153e00 + md5: 6c9c3e1ccb66984ef758f2b9ebfe45e6 depends: - __osx >=11.0 - - gdal - - libcxx >=16 - - libgdal >=3.9.0,<3.10.0a0 + - libcxx >=17 + - libgdal-core >=3.9.2,<3.10.0a0 - numpy - packaging - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 660766 - timestamp: 1718696356166 + - pkg:pypi/pyogrio?source=hash-mapping + size: 576383 + timestamp: 1727771853318 - kind: conda name: pyogrio - version: 0.9.0 - build: py312h43b3a95_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.9.0-py312h43b3a95_0.conda - sha256: 9dc89062437d698a1060644c96c9800bacb12370ddf416f75d2fda87afde5dea - md5: 1a22b21b82d6d134a06440dbaf46d1d7 + version: 0.10.0 + build: py312h8705084_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.10.0-py312h8705084_0.conda + sha256: 3044e7d1fcdf30159ef7ff3e5f1f648004e3f46bc522aac0190141025d55ee04 + md5: 90249b9c726133a702cddb06c1d9dab9 depends: - - __osx >=10.13 - - gdal - - libcxx >=16 - - libgdal >=3.9.0,<3.10.0a0 + - libgdal-core >=3.9.2,<3.10.0a0 - numpy - packaging - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 664241 - timestamp: 1718696098770 + - pkg:pypi/pyogrio?source=hash-mapping + size: 806834 + timestamp: 1727772248889 - kind: conda name: pyogrio - version: 0.9.0 - build: py312h8ad7a51_0 + version: 0.10.0 + build: py312he8b4914_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.9.0-py312h8ad7a51_0.conda - sha256: 4f2cc106c738be0076c11b487546bd448aa8fca7f19d2b0f54afd8fa2ee0b7d1 - md5: f4d2803818632b2175fa58de7f653901 + url: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.10.0-py312he8b4914_0.conda + sha256: cb0647597ae54d0007e698149f6ca519d80c389daee0f4fef149fe9902a0b31b + md5: 309f7524c82d168cc055e7b136713693 depends: - - gdal - - libgcc-ng >=12 - - libgdal >=3.9.0,<3.10.0a0 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libgdal-core >=3.9.2,<3.10.0a0 + - libstdcxx >=13 - numpy - packaging - python >=3.12,<3.13.0a0 @@ -30352,84 +26498,61 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 734215 - timestamp: 1718696048397 + - pkg:pypi/pyogrio?source=hash-mapping + size: 639343 + timestamp: 1727771812389 - kind: conda name: pyogrio - version: 0.9.0 - build: py312hd215820_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.9.0-py312hd215820_0.conda - sha256: 069f0782954c9000928f155c97965b51535eddee3feba87c2d86462056c50847 - md5: 389c4ae48840c02e25aadcfd6def0673 + version: 0.10.0 + build: py312hf9e36c7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.10.0-py312hf9e36c7_0.conda + sha256: 632019ab944cc1d9989fea02386c92132c3b9e7b0786ffc4516e3140ca3898ca + md5: 3955ea435842be121db2da0762accb76 depends: - - gdal - - libgdal >=3.9.0,<3.10.0a0 + - __osx >=11.0 + - libcxx >=17 + - libgdal-core >=3.9.2,<3.10.0a0 - numpy - packaging - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/pyogrio?source=conda-forge-mapping - size: 887820 - timestamp: 1718696645436 + - pkg:pypi/pyogrio?source=hash-mapping + size: 562964 + timestamp: 1727771822945 - kind: conda name: pyparsing - version: 3.1.2 - build: pyhd8ed1ab_0 + version: 3.2.0 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda - sha256: 06c77cb03e5dde2d939b216c99dd2db52ea93a4c7c599f3882f136005c359c7b - md5: b9a4dacf97241704529131a0dfc0494f - depends: - - python >=3.6 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyparsing?source=conda-forge-mapping - size: 89455 - timestamp: 1709721146886 -- kind: conda - name: pyproj - version: 3.6.1 - build: py310h39d21c2_7 - build_number: 7 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py310h39d21c2_7.conda - sha256: 06a0884507f184c7c22cfc9d0920fd5d4f7dded6b9569d10950158460233cd26 - md5: f34356d98aac6369f51603289af378d2 + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.0-pyhd8ed1ab_1.conda + sha256: b846e3965cd106438cf0b9dc0de8d519670ac065f822a7d66862e9423e0229cb + md5: 035c17fbf099f50ff60bf2eb303b0a83 depends: - - __osx >=11.0 - - certifi - - proj >=9.4.0,<9.5.0a0 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 + - python >=3.9 license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 465394 - timestamp: 1717792936753 + - pkg:pypi/pyparsing?source=hash-mapping + size: 92444 + timestamp: 1728880549923 - kind: conda name: pyproj - version: 3.6.1 - build: py310h67d88da_7 - build_number: 7 + version: 3.7.0 + build: py310h19d4cff_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py310h67d88da_7.conda - sha256: 3300cc970e359204e07d1ec9b510b2ab1941ffa23a0b4ccd55272e797949b224 - md5: 5a9be2723dd0b2b7d7e5ad112d3c11aa + url: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py310h19d4cff_0.conda + sha256: 3b9b1a447efa082f47633c6af6887979ebe68f880ec226f60952e199e47804f6 + md5: aec37353830fb374109d3d7e6347cbcd depends: - certifi - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - ucrt >=10.0.20348.0 @@ -30438,85 +26561,83 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 721166 - timestamp: 1717793505634 + - pkg:pypi/pyproj?source=hash-mapping + size: 733814 + timestamp: 1727795859575 - kind: conda name: pyproj - version: 3.6.1 - build: py310hba78213_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py310hba78213_7.conda - sha256: e76be1f09fd8841bfdfe9f81938118182f639a9cd1cc4a0473ce395fdfdf894c - md5: 600abe390c1ff8a087fea1952390c1e7 + version: 3.7.0 + build: py310h2e9f774_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py310h2e9f774_0.conda + sha256: 16a69974015cdcacef2a82d3efcf30dcd556d2dbdf3deab7641495b78625c1af + md5: 42a3ea3c283d930ae6d156b97ffe4740 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - certifi - - proj >=9.4.0,<9.5.0a0 + - libgcc >=13 + - proj >=9.5.0,<9.6.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 463229 - timestamp: 1717792730210 + - pkg:pypi/pyproj?source=hash-mapping + size: 536119 + timestamp: 1727795517990 - kind: conda name: pyproj - version: 3.6.1 - build: py310hf666db6_7 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py310hf666db6_7.conda - sha256: 4b2fa29d7cff4d0c39e613a9b773ca3ddec42d0768e52802b2f5931b7301aa7d - md5: 577d33875077f2ae50b13dd56e4d90f8 + version: 3.7.0 + build: py310h861c57f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py310h861c57f_0.conda + sha256: bd81295fcc04c569fcfbf9d8cef744687ee9a5940716b06f363c7a331d73025e + md5: fcc2303072c38beb8dbdc6fc9211950e depends: + - __osx >=11.0 - certifi - - libgcc-ng >=12 - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 528857 - timestamp: 1717792689701 + - pkg:pypi/pyproj?source=hash-mapping + size: 474993 + timestamp: 1727795735537 - kind: conda name: pyproj - version: 3.6.1 - build: py311h5e0e26b_7 - build_number: 7 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py311h5e0e26b_7.conda - sha256: 8deb5b31c570240df56b32126b525a1aa68256a4538ca79b152c6892074061ac - md5: 8c2b8330b7d788920b3a9802829d4200 + version: 3.7.0 + build: py311h0f98d5a_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py311h0f98d5a_0.conda + sha256: 194440401fba9fb3903aa921abcf3da468172700b5b5c9b21f98fb7be469a54f + md5: 22531205a97c116251713008d65dfefd depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 - certifi - - proj >=9.4.0,<9.5.0a0 + - libgcc >=13 + - proj >=9.5.0,<9.6.0a0 - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 493907 - timestamp: 1717792936954 + - pkg:pypi/pyproj?source=hash-mapping + size: 562000 + timestamp: 1727795513365 - kind: conda name: pyproj - version: 3.6.1 - build: py311h93f6e28_7 - build_number: 7 + version: 3.7.0 + build: py311h90dcb63_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py311h93f6e28_7.conda - sha256: 018b84fdecf2ee3d9613f4ae70d5f54a784431a685601066e7e6224b7d49e738 - md5: 6cd57e74500464383dc5cf0947a4c159 + url: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py311h90dcb63_0.conda + sha256: 36644db864de2ae57573d61bff0c46f3e5cb1efc86bd43756fdec9365ee8b5b3 + md5: 423256766e9b9ba6c01c39b0ea992f1e depends: - certifi - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - ucrt >=10.0.20348.0 @@ -30525,106 +26646,62 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 747836 - timestamp: 1717793027916 -- kind: conda - name: pyproj - version: 3.6.1 - build: py311hc21b84f_7 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py311hc21b84f_7.conda - sha256: 8f4083b1d24f25ece69a674c56d40b4385ce7b340c9dca043e46e986cd61aadb - md5: 0d55a70a8c2160a7f3cbe9fcfd87f82a - depends: - - certifi - - libgcc-ng >=12 - - proj >=9.4.0,<9.5.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 554158 - timestamp: 1717792714450 + - pkg:pypi/pyproj?source=hash-mapping + size: 760981 + timestamp: 1727796239898 - kind: conda name: pyproj - version: 3.6.1 - build: py311hc55c11a_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py311hc55c11a_7.conda - sha256: b68c237df4bc353e949e0c36e932f63f6b00e914e7e8588acb7f9217557cc5a2 - md5: bdd31b8ef0e43a46f0e18ccb1b529bb8 + version: 3.7.0 + build: py311hb4b81e0_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py311hb4b81e0_0.conda + sha256: c2c06cca4ce9fd72f1bf8d69703a8c5c2252efd497619d09f47d95d18d3cccf9 + md5: e3c2e5ded5b6e4b3c2600d033929645c depends: - - __osx >=10.13 + - __osx >=11.0 - certifi - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 489116 - timestamp: 1717792930782 -- kind: conda - name: pyproj - version: 3.6.1 - build: py312h5d05ceb_7 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.1-py312h5d05ceb_7.conda - sha256: 76a8d7c8ff3f0f9ea265622517c194a05084dca584e8eb1b38fe9ef74bde1b39 - md5: b53ddc25da04839cc62b0b158a7ecb38 - depends: - - certifi - - libgcc-ng >=12 - - proj >=9.4.0,<9.5.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 546159 - timestamp: 1717792743003 + - pkg:pypi/pyproj?source=hash-mapping + size: 501267 + timestamp: 1727795522741 - kind: conda name: pyproj - version: 3.6.1 - build: py312h64656f7_7 - build_number: 7 + version: 3.7.0 + build: py312h1ab748d_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.6.1-py312h64656f7_7.conda - sha256: 00598ea92c31ab46e5b1c70daa9625279d68e1c166944fc12cc91b3596ecc743 - md5: c8b38bd60f269e40f308ba82a2585977 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.0-py312h1ab748d_0.conda + sha256: a6e5eda9365adcb3900338ddc809ecb9df2520871de14113675e50fddfebabbe + md5: 62be0440197cfa89eb76846895198bab depends: - __osx >=11.0 - certifi - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 487118 - timestamp: 1717792784689 + - pkg:pypi/pyproj?source=hash-mapping + size: 494511 + timestamp: 1727795574712 - kind: conda name: pyproj - version: 3.6.1 - build: py312h6f27134_7 - build_number: 7 + version: 3.7.0 + build: py312ha24589b_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.6.1-py312h6f27134_7.conda - sha256: 0d3b70d5a69390ff04a43a873eb34ba2c76cc1fe60efbbdddd71f1e7cfdf9306 - md5: 55b89ad7727e92bd948e9d77b5adf6cc + url: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.0-py312ha24589b_0.conda + sha256: 8530fe6b44cebaf5ce57c13c7144760058b8f0b83b940b178b52fd8aa9fb82db + md5: 1f0cacc6f721d87faa12ef1ce66d112d depends: - certifi - - proj >=9.4.0,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 @@ -30633,124 +26710,30 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 733067 - timestamp: 1717793181003 + - pkg:pypi/pyproj?source=hash-mapping + size: 748941 + timestamp: 1727795870023 - kind: conda name: pyproj - version: 3.6.1 - build: py312ha320102_7 - build_number: 7 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.6.1-py312ha320102_7.conda - sha256: 4c70d5ec5bed9a4eec1160f64de93d70a44bd3c7c0a2533756148dec5ce12197 - md5: 42173e3a4efa0af22a562c59a12781f1 + version: 3.7.0 + build: py312he630544_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.0-py312he630544_0.conda + sha256: 713d38f8f4fce141eec5c282e333b145a1359c1c6cc34f506d03b164497e6a74 + md5: 427799f15b36751761941f4cbd7d780f depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - certifi - - proj >=9.4.0,<9.5.0a0 + - libgcc >=13 + - proj >=9.5.0,<9.6.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/pyproj?source=conda-forge-mapping - size: 482966 - timestamp: 1717792747463 -- kind: conda - name: pyqt - version: 5.15.9 - build: py310h04931ad_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py310h04931ad_5.conda - sha256: 92fe1c9eda6be7879ba798066016c1065047cc13d730105f5109835cbfeae8f1 - md5: f4fe7a6e3d7c78c9de048ea9dda21690 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - pyqt5-sip 12.12.2 py310hc6cd4ac_5 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - qt-main >=5.15.8,<5.16.0a0 - - sip >=6.7.11,<6.8.0a0 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping - size: 5282574 - timestamp: 1695420653225 -- kind: conda - name: pyqt - version: 5.15.9 - build: py310h1fd54f2_5 - build_number: 5 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py310h1fd54f2_5.conda - sha256: 3aa9660d4b0c2db725bbad77840ac17180c5093617c34aa9467276dbac2d19e4 - md5: 5df867d89a0482ea3591fe61f1558781 - depends: - - pyqt5-sip 12.12.2 py310h00ffb61_5 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - qt-main >=5.15.8,<5.16.0a0 - - sip >=6.7.11,<6.8.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping - size: 3881331 - timestamp: 1695421370903 -- kind: conda - name: pyqt - version: 5.15.9 - build: py311h125bc19_5 - build_number: 5 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py311h125bc19_5.conda - sha256: 4608b9caafc4fa16d887f5af08e1bafe95f4cb07596ca8f5af184bf5de8f2c4c - md5: 29d36acae7ccbcb1f0ec4a39841b3197 - depends: - - pyqt5-sip 12.12.2 py311h12c1d0e_5 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - qt-main >=5.15.8,<5.16.0a0 - - sip >=6.7.11,<6.8.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping - size: 3906427 - timestamp: 1695422270104 -- kind: conda - name: pyqt - version: 5.15.9 - build: py311hf0fb5b6_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py311hf0fb5b6_5.conda - sha256: 74fcdb8772c7eaf654b32922f77d9a8a1350b3446111c69a32ba4d15be74905a - md5: ec7e45bc76d9d0b69a74a2075932b8e8 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - pyqt5-sip 12.12.2 py311hb755f60_5 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - qt-main >=5.15.8,<5.16.0a0 - - sip >=6.7.11,<6.8.0a0 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping - size: 5315719 - timestamp: 1695420475603 + - pkg:pypi/pyproj?source=hash-mapping + size: 555468 + timestamp: 1727795528667 - kind: conda name: pyqt version: 5.15.9 @@ -30770,7 +26753,7 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping + - pkg:pypi/pyqt5?source=compressed-mapping size: 3937925 timestamp: 1695422000443 - kind: conda @@ -30779,47 +26762,23 @@ packages: build: py312h949fe66_5 build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py312h949fe66_5.conda - sha256: 22ccc59c03872fc680be597a1783d2c77e6b2d16953e2ec67df91f073820bebe - md5: f6548a564e2d01b2a42020259503945b - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - pyqt5-sip 12.12.2 py312h30efb56_5 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - qt-main >=5.15.8,<5.16.0a0 - - sip >=6.7.11,<6.8.0a0 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping - size: 5263946 - timestamp: 1695421350577 -- kind: conda - name: pyqt - version: 5.15.9 - build: py312hd74d816_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyqt-5.15.9-py312hd74d816_5.conda - sha256: 5418cc97b19ab30428da5daa0b81be1846176d76cf7fe45de5c3d88c8571f5bb - md5: d62c7597491cbfd388936263fc592670 + url: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py312h949fe66_5.conda + sha256: 22ccc59c03872fc680be597a1783d2c77e6b2d16953e2ec67df91f073820bebe + md5: f6548a564e2d01b2a42020259503945b depends: - - libcxx >=15.0.7 - - pyqt5-sip 12.12.2 py312he36337a_5 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - pyqt5-sip 12.12.2 py312h30efb56_5 - python >=3.12.0rc3,<3.13.0a0 - python_abi 3.12.* *_cp312 - qt-main >=5.15.8,<5.16.0a0 - sip >=6.7.11,<6.8.0a0 - constrains: - - __osx >=10.13 license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping - size: 4082832 - timestamp: 1695422147264 + - pkg:pypi/pyqt5?source=hash-mapping + size: 5263946 + timestamp: 1695421350577 - kind: conda name: pyqt version: 5.15.9 @@ -30841,7 +26800,7 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping + - pkg:pypi/pyqt5?source=hash-mapping size: 3894083 timestamp: 1695421066159 - kind: conda @@ -30859,103 +26818,9 @@ packages: license: GPL-3.0-or-later license_family: GPL purls: - - pkg:pypi/pyqt5-stubs?source=conda-forge-mapping + - pkg:pypi/pyqt5-stubs?source=hash-mapping size: 302912 timestamp: 1656002911218 -- kind: conda - name: pyqt5-sip - version: 12.12.2 - build: py310h00ffb61_5 - build_number: 5 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py310h00ffb61_5.conda - sha256: 59cc61adf7563005c8d5d305539f3fbddf6fed0298d747cc0a93fba667191411 - md5: bf433b3dde7783aed71126051d1a5878 - depends: - - packaging - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - sip - - toml - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping - size: 79787 - timestamp: 1695418575552 -- kind: conda - name: pyqt5-sip - version: 12.12.2 - build: py310hc6cd4ac_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py310hc6cd4ac_5.conda - sha256: a6aec078683ed3cf1650b7c47e3f0fe185015d54ea37fe76b9f31f05e1fd087d - md5: ef5333594a958b25912002886b82b253 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - packaging - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - sip - - toml - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping - size: 84579 - timestamp: 1695418069976 -- kind: conda - name: pyqt5-sip - version: 12.12.2 - build: py311h12c1d0e_5 - build_number: 5 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py311h12c1d0e_5.conda - sha256: 7130493794e4c65f4e78258619a6ef9d022ba9f9b0f61e70d2973d9bc5f10e11 - md5: 1b53a20f311bd99a1e55b31b7219106f - depends: - - packaging - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - sip - - toml - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping - size: 79724 - timestamp: 1695418442619 -- kind: conda - name: pyqt5-sip - version: 12.12.2 - build: py311hb755f60_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py311hb755f60_5.conda - sha256: cf6936273d92e5213b085bfd9ce1a37defb46b317b6ee991f2712bf4a25b8456 - md5: e4d262cc3600e70b505a6761d29f6207 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - packaging - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - sip - - toml - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping - size: 85162 - timestamp: 1695418076285 - kind: conda name: pyqt5-sip version: 12.12.2 @@ -30976,7 +26841,7 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping + - pkg:pypi/pyqt5-sip?source=hash-mapping size: 85809 timestamp: 1695418132533 - kind: conda @@ -31000,7 +26865,7 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping + - pkg:pypi/pyqt5-sip?source=hash-mapping size: 79366 timestamp: 1695418564486 - kind: conda @@ -31023,31 +26888,9 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping + - pkg:pypi/pyqt5-sip?source=hash-mapping size: 75839 timestamp: 1695418391490 -- kind: conda - name: pyqt5-sip - version: 12.12.2 - build: py312he36337a_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyqt5-sip-12.12.2-py312he36337a_5.conda - sha256: 0f6ff7121368393e9b33b180380484f6414eaec28a9780aeb2d9a26ad0d47631 - md5: 933ecaa04344fbbe126f9cb731adeb84 - depends: - - libcxx >=15.0.7 - - packaging - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - sip - - toml - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5-sip?source=conda-forge-mapping - size: 75901 - timestamp: 1695418352795 - kind: conda name: pyqtwebkit version: 5.15.9 @@ -31067,34 +26910,9 @@ packages: - qtwebkit license: LicenseRef-Commercial or GPL-3.0-only license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping + purls: [] size: 128105 timestamp: 1695649919135 -- kind: conda - name: pyqtwebkit - version: 5.15.9 - build: py312h5ae8335_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyqtwebkit-5.15.9-py312h5ae8335_2.conda - sha256: 65c4fb20ae0b7958508d4a3681969e099c0f8b54e79085286c567c108b9ad2b5 - md5: 9e30fdebfca36f00f39abe537d990cec - depends: - - __osx >=10.13 - - libcxx >=15.0.7 - - pyqt >=5.15.9,<5.16.0a0 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - qt-main >=5.15.8,<5.16.0a0 - - qtwebkit - - sip >=6.7.11,<6.8.0a0 - license: LicenseRef-Commercial or GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping - size: 125955 - timestamp: 1695649893086 - kind: conda name: pyqtwebkit version: 5.15.9 @@ -31116,8 +26934,7 @@ packages: - sip >=6.7.11,<6.8.0a0 license: LicenseRef-Commercial or GPL-3.0-only license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping + purls: [] size: 155959 timestamp: 1695649151624 - kind: conda @@ -31141,10 +26958,175 @@ packages: - vc14_runtime >=14.29.30139 license: LicenseRef-Commercial or GPL-3.0-only license_family: GPL - purls: - - pkg:pypi/pyqt5?source=conda-forge-mapping + purls: [] size: 124366 timestamp: 1695651311454 +- kind: conda + name: pyside6 + version: 6.7.3 + build: py312h91f0f75_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.7.3-py312h91f0f75_1.conda + sha256: e9d26444e4a554a71e885017898b101d388855277b6604f3235e50b63cc66fe0 + md5: 64a74d686fd29fa04c4c313a688e2421 + depends: + - __glibc >=2.17,<3.0.a0 + - libclang13 >=19.1.0 + - libegl >=1.7.0,<2.0a0 + - libgcc >=13 + - libgl >=1.7.0,<2.0a0 + - libopengl >=1.7.0,<2.0a0 + - libstdcxx >=13 + - libxml2 >=2.12.7,<3.0a0 + - libxslt >=1.1.39,<2.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - qt6-main 6.7.3.* + - qt6-main >=6.7.3,<6.8.0a0 + license: LGPL-3.0-only + license_family: LGPL + purls: + - pkg:pypi/pyside6?source=hash-mapping + - pkg:pypi/shiboken6?source=hash-mapping + size: 10458409 + timestamp: 1727987584620 +- kind: conda + name: pyside6 + version: 6.8.0.2 + build: py310h60c6385_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py310h60c6385_0.conda + sha256: 72dca836294c6e5274d1d440daea4a7935846adc94f7633ce40c3fb4f5344287 + md5: f7b99bb2d417f4c808ca02b832c79ef7 + depends: + - libclang13 >=19.1.2 + - libxml2 >=2.12.7,<3.0a0 + - libxslt >=1.1.39,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - qt6-main 6.8.0.* + - qt6-main >=6.8.0,<6.9.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-3.0-only + license_family: LGPL + purls: + - pkg:pypi/pyside6?source=hash-mapping + - pkg:pypi/shiboken6?source=hash-mapping + size: 9703173 + timestamp: 1730213162922 +- kind: conda + name: pyside6 + version: 6.8.0.2 + build: py310hfd10a26_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.8.0.2-py310hfd10a26_0.conda + sha256: ba79889ef17c2020e3b6b9005c955b3126a1423817faa7b957f566e51f022d6e + md5: b3928fcc670b67a0e90992eaaa2e4a7f + depends: + - __glibc >=2.17,<3.0.a0 + - libclang13 >=19.1.2 + - libegl >=1.7.0,<2.0a0 + - libgcc >=13 + - libgl >=1.7.0,<2.0a0 + - libopengl >=1.7.0,<2.0a0 + - libstdcxx >=13 + - libxml2 >=2.12.7,<3.0a0 + - libxslt >=1.1.39,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - qt6-main 6.8.0.* + - qt6-main >=6.8.0,<6.9.0a0 + license: LGPL-3.0-only + license_family: LGPL + purls: + - pkg:pypi/pyside6?source=hash-mapping + - pkg:pypi/shiboken6?source=hash-mapping + size: 10796587 + timestamp: 1730212779488 +- kind: conda + name: pyside6 + version: 6.8.0.2 + build: py311h4238720_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py311h4238720_0.conda + sha256: 94a50845a3b86a2d9d502aa2c49e6a36b5c3d87ec427a5f53f5c64c9ab26fc23 + md5: 92dc1944a809ba689308a8cbbff5a01e + depends: + - libclang13 >=19.1.2 + - libxml2 >=2.12.7,<3.0a0 + - libxslt >=1.1.39,<2.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - qt6-main 6.8.0.* + - qt6-main >=6.8.0,<6.9.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-3.0-only + license_family: LGPL + purls: + - pkg:pypi/pyside6?source=hash-mapping + - pkg:pypi/shiboken6?source=hash-mapping + size: 9695551 + timestamp: 1730213513960 +- kind: conda + name: pyside6 + version: 6.8.0.2 + build: py311h9053184_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.8.0.2-py311h9053184_0.conda + sha256: b83df2ce1bb467b89a25a9bf09005d796a84f4f24873e3b0aba33d2abf465cdb + md5: a09628d42965b2102f929650b6c90f0d + depends: + - __glibc >=2.17,<3.0.a0 + - libclang13 >=19.1.2 + - libegl >=1.7.0,<2.0a0 + - libgcc >=13 + - libgl >=1.7.0,<2.0a0 + - libopengl >=1.7.0,<2.0a0 + - libstdcxx >=13 + - libxml2 >=2.12.7,<3.0a0 + - libxslt >=1.1.39,<2.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - qt6-main 6.8.0.* + - qt6-main >=6.8.0,<6.9.0a0 + license: LGPL-3.0-only + license_family: LGPL + purls: + - pkg:pypi/pyside6?source=hash-mapping + - pkg:pypi/shiboken6?source=hash-mapping + size: 10848140 + timestamp: 1730213073843 +- kind: conda + name: pyside6 + version: 6.8.0.2 + build: py312h2ee7485_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.8.0.2-py312h2ee7485_0.conda + sha256: 59c354899515d465d7754e2460f53e7a7cb51de92a33a4ff278efebe8a9b9a1e + md5: 5485a2da08fa0d692dbd293c80fe86c0 + depends: + - libclang13 >=19.1.2 + - libxml2 >=2.12.7,<3.0a0 + - libxslt >=1.1.39,<2.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - qt6-main 6.8.0.* + - qt6-main >=6.8.0,<6.9.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-3.0-only + license_family: LGPL + purls: + - pkg:pypi/pyside6?source=hash-mapping + - pkg:pypi/shiboken6?source=hash-mapping + size: 9708496 + timestamp: 1730213144700 - kind: conda name: pysocks version: 1.7.1 @@ -31162,7 +27144,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pysocks?source=conda-forge-mapping + - pkg:pypi/pysocks?source=hash-mapping size: 19348 timestamp: 1661605138291 - kind: conda @@ -31181,24 +27163,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pysocks?source=conda-forge-mapping + - pkg:pypi/pysocks?source=hash-mapping size: 18981 timestamp: 1661604969727 - kind: conda name: pytest - version: 8.2.2 + version: 8.3.3 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.2.2-pyhd8ed1ab_0.conda - sha256: 00b7a49b31cf705b59edbd96219d8a67d2b9f51a913aa059fadd921b016965cb - md5: 0f3f49c22c7ef3a1195fa61dad3c43be + url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + sha256: e99376d0068455712109d233f5790458ff861aeceb458bfda74e353338e4d815 + md5: c03d61f31f38fdb9facf70c29958bf7a depends: - colorama - exceptiongroup >=1.0.0rc8 - iniconfig - packaging - - pluggy <2.0,>=1.5 + - pluggy <2,>=1.5 - python >=3.8 - tomli >=1 constrains: @@ -31206,29 +27188,29 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pytest?source=conda-forge-mapping - size: 257061 - timestamp: 1717533913269 + - pkg:pypi/pytest?source=hash-mapping + size: 258293 + timestamp: 1725977334143 - kind: conda name: pytest-cov - version: 5.0.0 + version: 6.0.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-5.0.0-pyhd8ed1ab_0.conda - sha256: 218306243faf3c36347131c2b36bb189daa948ac2e92c7ab52bb26cc8c157b3c - md5: c54c0107057d67ddf077751339ec2c63 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_0.conda + sha256: 915323edaee9f6f3ebd8c2e5450b4865700edf2c85eb2bba61980e66c6f03c5d + md5: cb8a11b6d209e3d85e5094bdbd9ebd9c depends: - - coverage >=5.2.1 + - coverage >=7.5 - pytest >=4.6 - - python >=3.8 + - python >=3.9 - toml license: MIT license_family: MIT purls: - - pkg:pypi/pytest-cov?source=conda-forge-mapping - size: 25507 - timestamp: 1711411153367 + - pkg:pypi/pytest-cov?source=hash-mapping + size: 26218 + timestamp: 1730284385470 - kind: conda name: pytest-xdist version: 3.6.1 @@ -31247,104 +27229,31 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pytest-xdist?source=conda-forge-mapping + - pkg:pypi/pytest-xdist?source=hash-mapping size: 38320 timestamp: 1718138508765 - kind: conda name: python - version: 3.10.14 - build: h00d2728_0_cpython - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.14-h00d2728_0_cpython.conda - sha256: 00c1de2d46ede26609ef4e84a44b83be7876ba6a0215b7c83bff41a0656bf694 - md5: 0a1cddc4382c5c171e791c70740546dd - depends: - - bzip2 >=1.0.8,<2.0a0 - - libffi >=3.4,<4.0a0 - - libsqlite >=3.45.2,<4.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - ncurses >=6.4.20240210,<7.0a0 - - openssl >=3.2.1,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.10.* *_cp310 - license: Python-2.0 - purls: [] - size: 11890228 - timestamp: 1710940046031 -- kind: conda - name: python - version: 3.10.14 - build: h2469fbe_0_cpython - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.14-h2469fbe_0_cpython.conda - sha256: 454d609fe25daedce9e886efcbfcadad103ed0362e7cb6d2bcddec90b1ecd3ee - md5: 4ae999c8227c6d8c7623d32d51d25ea9 - depends: - - bzip2 >=1.0.8,<2.0a0 - - libffi >=3.4,<4.0a0 - - libsqlite >=3.45.2,<4.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - ncurses >=6.4.20240210,<7.0a0 - - openssl >=3.2.1,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.10.* *_cp310 - license: Python-2.0 - purls: [] - size: 12336005 - timestamp: 1710939659384 -- kind: conda - name: python - version: 3.10.14 - build: h4de0772_0_cpython - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python-3.10.14-h4de0772_0_cpython.conda - sha256: 332f97d9927b65857d6d2d4d50d66dce9b37da81edb67833ae6b88ad52acbd0c - md5: 4a00e84f29d1eb418d84970598c444e1 - depends: - - 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 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - vc >=14.1,<15 - - vc14_runtime >=14.16.27033 - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.10.* *_cp310 - license: Python-2.0 - purls: [] - size: 15864027 - timestamp: 1710938888352 -- kind: conda - name: python - version: 3.10.14 - build: hd12c33a_0_cpython + version: 3.10.15 + build: h4a871b0_2_cpython + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.14-hd12c33a_0_cpython.conda - sha256: 76a5d12e73542678b70a94570f7b0f7763f9a938f77f0e75d9ea615ef22aa84c - md5: 2b4ba962994e8bd4be9ff5b64b75aff2 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.15-h4a871b0_2_cpython.conda + sha256: c1e5e93b887d8cd1aa31d24b9620cb7eb6645c08c97b15ffc844fd6c29051420 + md5: 98059097f62e97be9aed7ec904055825 depends: + - __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 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.45.2,<4.0a0 + - libsqlite >=3.46.1,<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.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -31353,79 +27262,80 @@ packages: - python_abi 3.10.* *_cp310 license: Python-2.0 purls: [] - size: 25517742 - timestamp: 1710939725109 + size: 25321141 + timestamp: 1729042931665 - kind: conda name: python - version: 3.11.9 - build: h631f459_0_cpython - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.9-h631f459_0_cpython.conda - sha256: 23698d4eb24970f74911d120204318d48384fabbb25e1e57773ad74fcd38fb12 - md5: d7ed1e7c4e2dcdfd4599bd42c0613e6c + version: 3.10.15 + build: hdce6c4c_2_cpython + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.10.15-hdce6c4c_2_cpython.conda + sha256: 50dbbcc5efacaa05906cdc6b42bbdda17cee7910386bef8d737edffe7f5a7f2f + md5: b6a5e688170f1301a858f6001c32822d depends: + - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.45.3,<4.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.1,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - - tzdata - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - tzdata - xz >=5.2.6,<6.0a0 constrains: - - python_abi 3.11.* *_cp311 + - python_abi 3.10.* *_cp310 license: Python-2.0 purls: [] - size: 18232422 - timestamp: 1713551717924 + size: 12411616 + timestamp: 1729042103758 - kind: conda name: python - version: 3.11.9 - build: h657bba9_0_cpython - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.9-h657bba9_0_cpython.conda - sha256: 3b50a5abb3b812875beaa9ab792dbd1bf44f335c64e9f9fedcf92d953995651c - md5: 612763bc5ede9552e4233ec518b9c9fb + version: 3.10.15 + build: hfaddaf0_2_cpython + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.10.15-hfaddaf0_2_cpython.conda + sha256: ee5af019e5d7140ad2d40b5f772fcd68ded056853a478a2b54f417855977e99b + md5: 52a45ce756c062994b25738288c8ab62 depends: - - __osx >=10.9 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.45.3,<4.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - ncurses >=6.4.20240210,<7.0a0 - - openssl >=3.2.1,<4.0a0 - - readline >=8.2,<9.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - xz >=5.2.6,<6.0a0 constrains: - - python_abi 3.11.* *_cp311 + - python_abi 3.10.* *_cp310 license: Python-2.0 purls: [] - size: 15503226 - timestamp: 1713553747073 + size: 15933377 + timestamp: 1729041771524 - kind: conda name: python - version: 3.11.9 - build: h932a869_0_cpython + version: 3.11.10 + build: hc51fdd5_3_cpython + build_number: 3 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.9-h932a869_0_cpython.conda - sha256: a436ceabde1f056a0ac3e347dadc780ee2a135a421ddb6e9a469370769829e3c - md5: 293e0713ae804b5527a673e7605c04fc + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.10-hc51fdd5_3_cpython.conda + sha256: 95a2c487176867ded825e23eab1e581398f75c5323da0cb7577c3cff3d2f955b + md5: 2a47a0061d7d3030e45b66d23f01d101 depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.45.3,<4.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - ncurses >=6.4.20240210,<7.0a0 - - openssl >=3.2.1,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -31434,29 +27344,31 @@ packages: - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 14644189 - timestamp: 1713552154779 + size: 14598065 + timestamp: 1729042279642 - kind: conda name: python - version: 3.11.9 - build: hb806964_0_cpython + version: 3.11.10 + build: hc5c86c4_3_cpython + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.9-hb806964_0_cpython.conda - sha256: 177f33a1fb8d3476b38f73c37b42f01c0b014fa0e039a701fd9f83d83aae6d40 - md5: ac68acfa8b558ed406c75e98d3428d7b + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.10-hc5c86c4_3_cpython.conda + sha256: b7fa3bd48e3a3d30f65608e07759cefd27885c6388b3f612af85ce40282e6936 + md5: 9e1ad55c87368e662177661a998feed5 depends: + - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 + - libgcc >=13 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.45.3,<4.0a0 + - libsqlite >=3.46.1,<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.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -31465,56 +27377,53 @@ packages: - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 30884494 - timestamp: 1713553104915 + size: 30543977 + timestamp: 1729043512711 - kind: conda name: python - version: 3.12.4 - build: h194c7f8_0_cpython - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda - sha256: 97a78631e6c928bf7ad78d52f7f070fcf3bd37619fa48dc4394c21cf3058cdee - md5: d73490214f536cccb5819e9873048c92 + version: 3.11.10 + build: hce54a09_3_cpython + build_number: 3 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.10-hce54a09_3_cpython.conda + sha256: 3931c546219d069918389e4dbe12057af4cc68a1060577a04014c6b5fc618aa0 + md5: 5d54d429c0eb2273d1cc69763de6edaf depends: - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libuuid >=2.38.1,<3.0a0 - - libxcrypt >=4.4.36 + - libsqlite >=3.46.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.3.1,<4.0a0 - - readline >=8.2,<9.0a0 + - openssl >=3.3.2,<4.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - xz >=5.2.6,<6.0a0 constrains: - - python_abi 3.12.* *_cp312 + - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 32073625 - timestamp: 1718621771849 + size: 18206702 + timestamp: 1729041779073 - kind: conda name: python - version: 3.12.4 - build: h30c5eda_0_cpython + version: 3.12.7 + build: h739c21a_0_cpython subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.4-h30c5eda_0_cpython.conda - sha256: 107824b584eb5e43f71df8cb2741019f5c377c734f8309899aa2a6ed53b79a47 - md5: e3e44e0e72aed46dcb810fa3e96784be + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda + sha256: 45d7ca2074aa92594bd2f91a9003b338cc1df8a46b9492b7fc8167110783c3ef + md5: e0d82e57ebb456077565e6d82cd4a323 depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -31523,25 +27432,30 @@ packages: - python_abi 3.12.* *_cp312 license: Python-2.0 purls: [] - size: 12183332 - timestamp: 1718619490228 + size: 12975439 + timestamp: 1728057819519 - kind: conda name: python - version: 3.12.4 - build: h37a9e06_0_cpython - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.4-h37a9e06_0_cpython.conda - sha256: 677958ee90eff229755d4e0ed40af6d835c9131e863b1539b34bbf07d7a775f3 - md5: 94e2b77992f580ac6b7a4fc9b53018b3 - depends: - - __osx >=10.13 + version: 3.12.7 + build: hc5c86c4_0_cpython + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + sha256: 674be31ff152d9f0e0fe16959a45e3803a730fc4f54d87df6a9ac4e6a698c41d + md5: 0515111a9cdf69f83278f7c197db9807 + depends: + - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libgcc >=13 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.46.1,<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.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -31550,23 +27464,23 @@ packages: - python_abi 3.12.* *_cp312 license: Python-2.0 purls: [] - size: 13848015 - timestamp: 1718619909707 + size: 31574780 + timestamp: 1728059777603 - kind: conda name: python - version: 3.12.4 - build: h889d299_0_cpython + version: 3.12.7 + build: hce54a09_0_cpython subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python-3.12.4-h889d299_0_cpython.conda - sha256: 1db32594bfd8db2a49af66c14aaf479520f98df7a86e9d6e6a9ae484d369f4da - md5: 4527737432f0fade2fc1e5852c672133 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda + sha256: 2308cfa9ec563360d29ced7fd13a6b60b9a7b3cf8961a95c78c69f486211d018 + md5: 21f1f7c6ccf6b747c5086d2422c230e1 depends: - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - ucrt >=10.0.20348.0 @@ -31577,8 +27491,8 @@ packages: - python_abi 3.12.* *_cp312 license: Python-2.0 purls: [] - size: 16173770 - timestamp: 1718619012084 + size: 15987537 + timestamp: 1728057382072 - kind: conda name: python-dateutil version: 2.9.0 @@ -31594,7 +27508,7 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/python-dateutil?source=conda-forge-mapping + - pkg:pypi/python-dateutil?source=hash-mapping size: 222742 timestamp: 1709299922152 - kind: conda @@ -31611,7 +27525,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/fastjsonschema?source=conda-forge-mapping + - pkg:pypi/fastjsonschema?source=hash-mapping size: 226165 timestamp: 1718477110630 - kind: conda @@ -31628,218 +27542,242 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/python-json-logger?source=conda-forge-mapping + - pkg:pypi/python-json-logger?source=hash-mapping size: 13383 timestamp: 1677079727691 +- kind: conda + name: python-pdal + version: 3.4.5 + build: py312h356d258_12 + build_number: 12 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-pdal-3.4.5-py312h356d258_12.conda + sha256: 2dafb38e6e8dbf66b97365232f95e5fac6e868cacf952577ef01bc92839fadc6 + md5: e09d5892316fff7b582e4f2728e37153 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libpdal-core >=2.8.0,<2.9.0a0 + - libstdcxx >=13 + - numpy >=1.19,<3 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pdal?source=hash-mapping + - pkg:pypi/pdal-plugins?source=hash-mapping + size: 329166 + timestamp: 1728304695124 +- kind: conda + name: python-pdal + version: 3.4.5 + build: py312h4a804a2_12 + build_number: 12 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python-pdal-3.4.5-py312h4a804a2_12.conda + sha256: 48c4b0d108804159516049fa6c19a5dee1e838f9816dc10cead4804ce2ec083b + md5: f4729fd40974a8ffc59c41d69d995626 + depends: + - libpdal-core >=2.8.0,<2.9.0a0 + - numpy >=1.19,<3 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pdal?source=hash-mapping + - pkg:pypi/pdal-plugins?source=hash-mapping + size: 383975 + timestamp: 1728305048642 +- kind: conda + name: python-pdal + version: 3.4.5 + build: py312hf5f6721_12 + build_number: 12 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-pdal-3.4.5-py312hf5f6721_12.conda + sha256: 491b4203a479c793b20641052be0e91fed89dea396adec5667c398e02ccb207e + md5: 2d8c34386c00aabc441a996604545a0d + depends: + - __osx >=11.0 + - libcxx >=17 + - libpdal-core >=2.8.0,<2.9.0a0 + - numpy >=1.19,<3 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pdal?source=hash-mapping + - pkg:pypi/pdal-plugins?source=hash-mapping + size: 261289 + timestamp: 1728304993482 - kind: conda name: python-tzdata - version: '2024.1' + version: '2024.2' build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda - sha256: 9da9a849d53705dee450b83507df1ca8ffea5f83bd21a215202221f1c492f8ad - md5: 98206ea9954216ee7540f0c773f2104d + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_0.conda + sha256: fe3f62ce2bc714bdaa222ab3f0344a2815ad9e853c6df38d15c9f25de8a3a6d4 + md5: 986287f89929b2d629bd6ef6497dc307 depends: - python >=3.6 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/tzdata?source=conda-forge-mapping - size: 144024 - timestamp: 1707747742930 + - pkg:pypi/tzdata?source=hash-mapping + size: 142527 + timestamp: 1727140688093 - kind: conda name: python_abi version: '3.10' - build: 4_cp310 - build_number: 4 + build: 5_cp310 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda - sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec - md5: 26322ec5d7712c3ded99dd656142b8ce + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-5_cp310.conda + sha256: 074d2f0b31f0333b7e553042b17ea54714b74263f8adda9a68a4bd8c7e219971 + md5: 2921c34715e74b3587b4cff4d36844f9 constrains: - python 3.10.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6398 - timestamp: 1695147363189 + size: 6227 + timestamp: 1723823165457 - kind: conda name: python_abi version: '3.10' - build: 4_cp310 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.10-4_cp310.conda - sha256: abc26b3b5a62f9c8112a2303d24b0c590d5f7fc9470521f5a520472d59c2223e - md5: b15c816c5a86abcc4d1458dd63aa4c65 - constrains: - - python 3.10.* *_cpython - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 6484 - timestamp: 1695147705581 -- kind: conda - name: python_abi - version: '3.10' - build: 4_cp310 - build_number: 4 + build: 5_cp310 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.10-4_cp310.conda - sha256: f69bac2f28082a275ef67313968b2c366d8236c3a6869b9cdf5cdb97a5821812 - md5: 1a3d9c6bb5f0b1b22d9e9296c127e8c7 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.10-5_cp310.conda + sha256: 15a1e37da3e52c9250eac103858aad494ce23501d72fb78f5a2126046c9a9e2d + md5: e33836c9096802b29d28981765becbee constrains: - python 3.10.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6490 - timestamp: 1695147522999 + size: 6324 + timestamp: 1723823147856 - kind: conda name: python_abi version: '3.10' - build: 4_cp310 - build_number: 4 + build: 5_cp310 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-4_cp310.conda - sha256: 19066c462fd0e32c64503c688f77cb603beb4019b812caf855d03f2a5447960b - md5: b41195997c14fb7473d26637ea4c3946 + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-5_cp310.conda + sha256: 0671bea4d5c5b8618ee7e2b1117d5a90901348ac459db57b654007f1644fa087 + md5: 3c510f4c4383f5fbdb12fdd971b30d49 constrains: - python 3.10.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6773 - timestamp: 1695147715814 + size: 6715 + timestamp: 1723823141288 - kind: conda name: python_abi version: '3.11' - build: 4_cp311 - build_number: 4 + build: 5_cp311 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda - sha256: 0be3ac1bf852d64f553220c7e6457e9c047dfb7412da9d22fbaa67e60858b3cf - md5: d786502c97404c94d7d58d258a445a65 - constrains: - - python 3.11.* *_cpython - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 6385 - timestamp: 1695147338551 -- kind: conda - name: python_abi - version: '3.11' - build: 4_cp311 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-4_cp311.conda - sha256: f56dfe2a57b3b27bad3f9527f943548e8b2526e949d9d6fc0a383020d9359afe - md5: fef7a52f0eca6bae9e8e2e255bc86394 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-5_cp311.conda + sha256: 2660b8059b3ee854bc5d3c6b1fce946e5bd2fe8fbca7827de2c5885ead6209de + md5: 139a8d40c8a2f430df31048949e450de constrains: - python 3.11.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6478 - timestamp: 1695147518012 + size: 6211 + timestamp: 1723823324668 - kind: conda name: python_abi version: '3.11' - build: 4_cp311 - build_number: 4 + build: 5_cp311 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda - sha256: 4837089c477b9b84fa38a17f453e6634e68237267211b27a8a2f5ccd847f4e55 - md5: 8d3751bc73d3bbb66f216fa2331d5649 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda + sha256: adc05729b7e0aca7b436e60a86f10822a92185dfcb48d66d6444e3629d3a1f6a + md5: 3b855e3734344134cb56c410f729c340 constrains: - python 3.11.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6492 - timestamp: 1695147509940 + size: 6308 + timestamp: 1723823096865 - kind: conda name: python_abi version: '3.11' - build: 4_cp311 - build_number: 4 + build: 5_cp311 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-4_cp311.conda - sha256: 67c2aade3e2160642eec0742384e766b20c766055e3d99335681e3e05d88ed7b - md5: 70513332c71b56eace4ee6441e66c012 + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-5_cp311.conda + sha256: 9b210e5807dd9c9ed71ff192a95f1872da597ddd10e7cefec93a922fe22e598a + md5: 895b873644c11ccc0ab7dba2d8513ae6 constrains: - python 3.11.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6755 - timestamp: 1695147711935 + size: 6707 + timestamp: 1723823225752 - kind: conda name: python_abi version: '3.12' - build: 4_cp312 - build_number: 4 + build: 5_cp312 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda - sha256: 182a329de10a4165f6e8a3804caf751f918f6ea6176dd4e5abcdae1ed3095bf6 - md5: dccc2d142812964fcc6abdc97b672dff - constrains: - - python 3.12.* *_cpython - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 6385 - timestamp: 1695147396604 -- kind: conda - name: python_abi - version: '3.12' - build: 4_cp312 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-4_cp312.conda - sha256: 82c154d95c1637604671a02a89e72f1382e89a4269265a03506496bd928f6f14 - md5: 87201ac4314b911b74197e588cca3639 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 + md5: 0424ae29b104430108f5218a66db7260 constrains: - python 3.12.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6496 - timestamp: 1695147498447 + size: 6238 + timestamp: 1723823388266 - kind: conda name: python_abi version: '3.12' - build: 4_cp312 - build_number: 4 + build: 5_cp312 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-4_cp312.conda - sha256: db25428e4f24f8693ffa39f3ff6dfbb8fd53bc298764b775b57edab1c697560f - md5: bbb3a02c78b2d8219d7213f76d644a2a + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda + sha256: 49d624e4b809c799d2bf257b22c23cf3fc4460f5570d9a58e7ad86350aeaa1f4 + md5: b76f9b1c862128e56ac7aa8cd2333de9 constrains: - python 3.12.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6508 - timestamp: 1695147497048 + size: 6278 + timestamp: 1723823099686 - kind: conda name: python_abi version: '3.12' - build: 4_cp312 - build_number: 4 + build: 5_cp312 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-4_cp312.conda - sha256: 488f8519d04b48f59bd6fde21ebe2d7a527718ff28aac86a8b53aa63658bdef6 - md5: 17f4ccf6be9ded08bd0a376f489ac1a6 + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda + sha256: 9486662af81a219e96d343449eff242f38d7c5128ced5ce5acf85857265058d6 + md5: e8681f534453af7afab4cd2bc1423eec constrains: - python 3.12.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 6785 - timestamp: 1695147430513 + size: 6730 + timestamp: 1723823139725 - kind: conda name: pytz version: '2024.1' @@ -31854,18 +27792,18 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pytz?source=conda-forge-mapping + - pkg:pypi/pytz?source=hash-mapping size: 188538 timestamp: 1706886944988 - kind: conda name: pywin32 - version: '306' - build: py310h00ffb61_2 - build_number: 2 + version: '307' + build: py310h9e98ed7_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py310h00ffb61_2.conda - sha256: 24fd15c118974da18c38870380195e633d2452a7fb7dbc0ecb96b44416989b33 - md5: a65056c5f52aa83455577958872e4776 + url: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py310h9e98ed7_3.conda + sha256: 712a131fadba8236830fc33d04154865a611e489f595b96370ade21cc2c1a5a2 + md5: 1fd1de4af8c39bb0efa5c9d5b092aa42 depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -31875,18 +27813,18 @@ packages: license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/pywin32?source=conda-forge-mapping - size: 5689476 - timestamp: 1695974437046 + - pkg:pypi/pywin32?source=hash-mapping + size: 5601095 + timestamp: 1728636656373 - kind: conda name: pywin32 - version: '306' - build: py311h12c1d0e_2 - build_number: 2 + version: '307' + build: py311hda3d55a_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py311h12c1d0e_2.conda - sha256: 79d942817bdaf384602113e5fcb9158dc45cae4044bed308918a5db97f141fdb - md5: 25df0fc55722ea1a94494f41302e2d1c + url: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda + sha256: 78a4ede098bbc122a3dff4e0e27255e30b236101818e8f499779c89670c58cd6 + md5: 1bc10dbe3b8d03071070c962a2bdf65f depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -31896,20 +27834,20 @@ packages: license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/pywin32?source=conda-forge-mapping - size: 6124285 - timestamp: 1695974706892 + - pkg:pypi/pywin32?source=hash-mapping + size: 6023110 + timestamp: 1728636767562 - kind: conda name: pywin32 - version: '306' - build: py312h53d5487_2 - build_number: 2 + version: '307' + build: py312h275cf98_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py312h53d5487_2.conda - sha256: d0ff1cd887b626a125f8323760736d8fab496bf2a400e825cce55361e7631264 - md5: f44c8f35c3f99eca30d6f5b68ddb0f42 + url: https://conda.anaconda.org/conda-forge/win-64/pywin32-307-py312h275cf98_3.conda + sha256: 68f8781b83942b91dbc0df883f9edfd1a54a1e645ae2a97c48203ff6c2919de3 + md5: 1747fbbdece8ab4358b584698b19c44d depends: - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -31917,35 +27855,35 @@ packages: license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/pywin32?source=conda-forge-mapping - size: 6127499 - timestamp: 1695974557413 + - pkg:pypi/pywin32?source=hash-mapping + size: 6032183 + timestamp: 1728636767192 - kind: conda name: pywin32-ctypes - version: 0.2.2 + version: 0.2.3 build: py312h2e8e312_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.2-py312h2e8e312_1.conda - sha256: 238fffa911c4b78fd2153cfd1d0d376326379c98821da4b0cd12a3c6fbf3e9a6 - md5: 93a37178188cd6521e5410763a18aaf4 + url: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py312h2e8e312_1.conda + sha256: 3e3b97740b4ec2f54debf7bfdbaa9a81a7aabd4549051b926de91d05304c4948 + md5: c5f1cb65c56ec74687801960f8a31eb5 depends: - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pywin32-ctypes?source=conda-forge-mapping - size: 55871 - timestamp: 1695395307212 + - pkg:pypi/pywin32-ctypes?source=hash-mapping + size: 57449 + timestamp: 1727282288065 - kind: conda name: pywinpty - version: 2.0.13 - build: py312h53d5487_0 + version: 2.0.14 + build: py312h275cf98_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.13-py312h53d5487_0.conda - sha256: 56d95d00a0fe6170e6e0e1da6b0e1201291b8054a6342c0792bc4dd791a39088 - md5: 84bc43e330340c01ce93231c096d4ab1 + url: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.14-py312h275cf98_0.conda + sha256: 20bc64c412b659b387ed12d73ca9138e4487abcfb3f1547b6d4cdb68753035e9 + md5: 0e0aac13d306f0b016f4c85cbfbf87be depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -31956,39 +27894,20 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pywinpty?source=conda-forge-mapping - size: 212261 - timestamp: 1708995486138 -- kind: conda - name: pyyaml - version: 6.0.1 - build: py310h2372a71_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda - sha256: aa78ccddb0a75fa722f0f0eb3537c73ee1219c9dd46cea99d6b9eebfdd780f3d - md5: bb010e368de4940771368bc3dc4c63e7 - depends: - - libgcc-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 170627 - timestamp: 1695373587159 + - pkg:pypi/pywinpty?source=hash-mapping + size: 210034 + timestamp: 1729202671199 - kind: conda name: pyyaml - version: 6.0.1 - build: py310h2aa6e3c_1 + version: 6.0.2 + build: py310h493c2e1_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py310h2aa6e3c_1.conda - sha256: 7b8668cd86d2421c62ec241f840d84a600b854afc91383a509bbb60ba907aeec - md5: 0e7ccdd121ce7b486f1de7917178387c + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py310h493c2e1_1.conda + sha256: 04b7adb2f79264b2556c79924a523f8c5b297dfaa40f01c8b112f06e388001da + md5: 4b086c01e4c1ae219d1e139893841ae7 depends: + - __osx >=11.0 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 @@ -31996,37 +27915,39 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 158641 - timestamp: 1695373859696 + - pkg:pypi/pyyaml?source=hash-mapping + size: 162312 + timestamp: 1725456439220 - kind: conda name: pyyaml - version: 6.0.1 - build: py310h6729b98_1 + version: 6.0.2 + build: py310ha75aee5_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py310h6729b98_1.conda - sha256: 00567f2cb2d1c8fede8fe7727f7bbd1c38cbca886814d612e162d5c936d8db1b - md5: d964cec3e7972e44bc4a328134b9eaf1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py310ha75aee5_1.conda + sha256: bf6002aef0fd9753fa6de54e82307b2d7e67a1d701dba018869471426078d5d1 + md5: 0d4c5c76ae5f5aac6f0be419963a19dd depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 160097 - timestamp: 1695373947773 + - pkg:pypi/pyyaml?source=hash-mapping + size: 182609 + timestamp: 1725456280173 - kind: conda name: pyyaml - version: 6.0.1 - build: py310h8d17308_1 + version: 6.0.2 + build: py310ha8f682b_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py310h8d17308_1.conda - sha256: ea51291e477b44c5bb9d91cc095db0dfe07b9576831e9682100d68c820c43ae3 - md5: ce279186f68d0f12812dc9955ea909a4 + url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py310ha8f682b_1.conda + sha256: b30056440fdff1d52e96303f539ba3b4a33c19070993a75cc15c5414cb2a8b1d + md5: 308f62d05cbcbc633eeab4843def3b51 depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -32037,57 +27958,60 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 146195 - timestamp: 1695374085323 + - pkg:pypi/pyyaml?source=hash-mapping + size: 156987 + timestamp: 1725456772886 - kind: conda name: pyyaml - version: 6.0.1 - build: py311h2725bcf_1 + version: 6.0.2 + build: py311h460d6c5_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py311h2725bcf_1.conda - sha256: 8ce2ba443414170a2570514d0ce6d03625a847e91af9763d48dc58c338e6f7f3 - md5: 9283f991b5e5856a99f8aabba9927df5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py311h460d6c5_1.conda + sha256: 9ae182eef4e96a7c2f46cc9add19496276612663e17429500432631dce31a831 + md5: d32590e7bd388f18b036c6fc402a0cb1 depends: + - __osx >=11.0 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 188606 - timestamp: 1695373840022 + - pkg:pypi/pyyaml?source=hash-mapping + size: 192321 + timestamp: 1725456528007 - kind: conda name: pyyaml - version: 6.0.1 - build: py311h459d7ec_1 + version: 6.0.2 + build: py311h9ecbd09_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py311h459d7ec_1.conda - sha256: 28729ef1ffa7f6f9dfd54345a47c7faac5d34296d66a2b9891fb147f4efe1348 - md5: 52719a74ad130de8fb5d047dc91f247a + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda + sha256: e721e5ff389a7b2135917c04b27391be3d3382e261bb60a369b1620655365c3d + md5: abeb54d40f439b86f75ea57045ab8496 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 200626 - timestamp: 1695373818537 + - pkg:pypi/pyyaml?source=hash-mapping + size: 212644 + timestamp: 1725456264282 - kind: conda name: pyyaml - version: 6.0.1 - build: py311ha68e1ae_1 + version: 6.0.2 + build: py311he736701_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py311ha68e1ae_1.conda - sha256: 4fb0770fc70381a8ab3ced33413ad9dc5e82d4c535b593edd580113ce8760298 - md5: 2b4128962cd665153e946f2a88667a3b + url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda + sha256: 86608f1b4f6b1819a74b6b1344c34304745fd7e84bfc9900269f57cf28178d31 + md5: d0c5f3c595039890be0c9af47d23b9ba depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -32098,227 +28022,153 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 175469 - timestamp: 1695374086205 -- kind: conda - name: pyyaml - version: 6.0.1 - build: py311heffc1b2_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py311heffc1b2_1.conda - sha256: b155f5c27f0e2951256774628c4b91fdeee3267018eef29897a74e3d1316c8b0 - md5: d310bfbb8230b9175c0cbc10189ad804 - depends: - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 187795 - timestamp: 1695373829282 + - pkg:pypi/pyyaml?source=hash-mapping + size: 187901 + timestamp: 1725456808581 - kind: conda name: pyyaml - version: 6.0.1 - build: py312h02f2b3b_1 + version: 6.0.2 + build: py312h024a12e_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py312h02f2b3b_1.conda - sha256: b6b4027b89c17b9bbd8089aec3e44bc29f802a7d5668d5a75b5358d7ed9705ca - md5: a0c843e52a1c4422d8657dd76e9eb994 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda + sha256: b06f1c15fb39695bbf707ae8fb554b9a77519af577b5556784534c7db10b52e3 + md5: 1ee23620cf46cb15900f70a1300bae55 depends: - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 182705 - timestamp: 1695373895409 + - pkg:pypi/pyyaml?source=hash-mapping + size: 187143 + timestamp: 1725456547263 - kind: conda name: pyyaml - version: 6.0.1 - build: py312h104f124_1 + version: 6.0.2 + build: py312h4389bb4_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.1-py312h104f124_1.conda - sha256: 04aa180782cb675b960c0bf4aad439b4a7a08553c6af74d0b8e5df9a0c7cc4f4 - md5: 260ed90aaf06061edabd7209638cf03b + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda + sha256: fa3ede1fa2ed6ea0a51095aeea398f6f0f54af036c4bc525726107cfb49229d5 + md5: afb7809721516919c276b45f847c085f depends: - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 185636 - timestamp: 1695373742454 + - pkg:pypi/pyyaml?source=hash-mapping + size: 181227 + timestamp: 1725456516473 - kind: conda name: pyyaml - version: 6.0.1 - build: py312h98912ed_1 + version: 6.0.2 + build: py312h66e93f0_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py312h98912ed_1.conda - sha256: 7f347a10a7121b08d79d21cd4f438c07c23479ea0c74dfb89d6dc416f791bb7f - md5: e3fd78d8d490af1d84763b9fe3f2e552 - depends: - - libgcc-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 196583 - timestamp: 1695373632212 -- kind: conda - name: pyyaml - version: 6.0.1 - build: py312he70551f_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.1-py312he70551f_1.conda - sha256: a72fa8152791b4738432f270e70b3a9a4d583ef059a78aa1c62f4b4ab7b15494 - md5: f91e0baa89ba21166916624ba7bfb422 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda + sha256: a60705971e958724168f2ebbb8ed4853067f1d3f7059843df3903e3092bbcffa + md5: 549e5930e768548a89c23f595dac5a95 depends: - - python >=3.12.0rc3,<3.13.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT purls: - - pkg:pypi/pyyaml?source=conda-forge-mapping - size: 167932 - timestamp: 1695374097139 -- kind: conda - name: pyzmq - version: 26.0.3 - build: py310h16e08c9_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py310h16e08c9_0.conda - sha256: ab68d301d71f6520e42b3cc808a69b101c3b2697832f205b346de185761d847f - md5: 0788836c393aef2b46851f83416fd0d7 - depends: - - __osx >=11.0 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 - - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - - python_abi 3.10.* *_cp310 - - zeromq >=4.3.5,<4.4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 366478 - timestamp: 1715024599862 + - pkg:pypi/pyyaml?source=hash-mapping + size: 206553 + timestamp: 1725456256213 - kind: conda name: pyzmq - version: 26.0.3 - build: py310h656833d_0 + version: 26.2.0 + build: py310h656833d_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py310h656833d_0.conda - sha256: 2e582fd6637243d751bd1cbc76ccb4b82aeecaa5c10dc6d493de67cbfde5b64c - md5: 8add222e6a146d96ac213db83d854f7d + url: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py310h656833d_3.conda + sha256: 56d8c857a689d1133e08c1842edb7fea252b5918de685cf45a775cd8dc38f92b + md5: 0006cd398c60696f009db3d60d27366a depends: - - libsodium >=1.0.18,<1.0.19.0a0 + - libsodium >=1.0.20,<1.0.21.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - - zeromq >=4.3.5,<4.3.6.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 368528 - timestamp: 1715025077475 -- kind: conda - name: pyzmq - version: 26.0.3 - build: py310h6883aea_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py310h6883aea_0.conda - sha256: 64a1b5362c070ccae0687651dee40987540e43d4a968a41b3de85f7fd8ef340d - md5: af2e86793164f8bd11e892142d0faa4c - depends: - - libgcc-ng >=12 - - libsodium >=1.0.18,<1.0.19.0a0 - - libstdcxx-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - zeromq >=4.3.5,<4.4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zeromq >=4.3.5,<4.3.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 388466 - timestamp: 1715024604414 + - pkg:pypi/pyzmq?source=hash-mapping + size: 317436 + timestamp: 1728643213825 - kind: conda name: pyzmq - version: 26.0.3 - build: py310he0bbd50_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py310he0bbd50_0.conda - sha256: ddd28309169d61af6109c9d61392b4b035c1a2633a0bf1c58f1638c1a3870382 - md5: b4481c0107ab67a37e8b7b218689d865 + version: 26.2.0 + build: py310h71f11fc_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py310h71f11fc_3.conda + sha256: d5bbafe00fbed64134f5c3cc38a2f16a9dc0f24c747f81f8341c53758d8b5d96 + md5: 0c3fe057cc758c8fa1beba31ff4e5c35 depends: - - __osx >=10.9 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 366807 - timestamp: 1715024677564 + - pkg:pypi/pyzmq?source=hash-mapping + size: 338103 + timestamp: 1728642374037 - kind: conda name: pyzmq - version: 26.0.3 - build: py311h08a0b41_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py311h08a0b41_0.conda - sha256: 1b488c4600682702e10c296d77f4497b1ef3fdf37847861e4e1269f2718b8842 - md5: 8bef21c0a0160e7369fc2f494acf85d0 + version: 26.2.0 + build: py310h82ef58e_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py310h82ef58e_3.conda + sha256: 9580d6e80f15c10c64e69d8ecf49a7d60bd103f14b3bb6118b5d78c683236155 + md5: d5d14867d72fa849339ec24b5c33817d depends: - - libgcc-ng >=12 - - libsodium >=1.0.18,<1.0.19.0a0 - - libstdcxx-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - __osx >=11.0 + - libcxx >=17 + - libsodium >=1.0.20,<1.0.21.0a0 + - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython + - python_abi 3.10.* *_cp310 - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 475189 - timestamp: 1715024515323 + - pkg:pypi/pyzmq?source=hash-mapping + size: 314132 + timestamp: 1728642745677 - kind: conda name: pyzmq - version: 26.0.3 - build: py311h484c95c_0 + version: 26.2.0 + build: py311h484c95c_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py311h484c95c_0.conda - sha256: 9c5c301d6bbb041d8728dfde015be7bc3ca5159b8193013581c5aa2de7bb9e89 - md5: f32e37cabb3bc68396d2bc7939ac333c + url: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py311h484c95c_3.conda + sha256: 4d3fc4cfac284efb83a903601586cc6ee18fb556d4bf84d3bd66af76517c463e + md5: 4836b00658e11b466b823216f6df2424 depends: - - libsodium >=1.0.18,<1.0.19.0a0 + - libsodium >=1.0.20,<1.0.21.0a0 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - ucrt >=10.0.20348.0 @@ -32328,42 +28178,22 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 453691 - timestamp: 1715025354726 -- kind: conda - name: pyzmq - version: 26.0.3 - build: py311h89e2aaa_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py311h89e2aaa_0.conda - sha256: 54e3e8a723ee2fff0e9317417684d5237453f935c0c971fb9808b9acb4fe15fa - md5: 91ec96c7ebdeb80c1d0d32777bfe76fa - depends: - - __osx >=10.9 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - zeromq >=4.3.5,<4.4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 453164 - timestamp: 1715024606404 + - pkg:pypi/pyzmq?source=hash-mapping + size: 371084 + timestamp: 1728642713666 - kind: conda name: pyzmq - version: 26.0.3 - build: py311h9bed540_0 + version: 26.2.0 + build: py311h730b646_3 + build_number: 3 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py311h9bed540_0.conda - sha256: 03b787e5d09ebd7c8e5a359d21ed264c4f0c473e7421be48d339fabddd43ffea - md5: 140d0704f24e0bad258d4e7ef567d797 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py311h730b646_3.conda + sha256: 7e75589d9c3723ecf314435f15a7b486cebafa89ebf00bb616354e37587dc7ae + md5: b6f3e527de0c0384cd78cfa779bd6ddf depends: - __osx >=11.0 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 + - libcxx >=17 + - libsodium >=1.0.20,<1.0.21.0a0 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 @@ -32371,61 +28201,66 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 451293 - timestamp: 1715024663451 + - pkg:pypi/pyzmq?source=hash-mapping + size: 365841 + timestamp: 1728642472021 - kind: conda name: pyzmq - version: 26.0.3 - build: py312h8fd38d8_0 + version: 26.2.0 + build: py311h7deb3e3_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.0.3-py312h8fd38d8_0.conda - sha256: a3bf1e1af97a256a3a498cc7f2fedb478df18cf629cc9e9aa73a5b4cfc204d45 - md5: 27efa6d21e98bcab4585a6b913df7625 + url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py311h7deb3e3_3.conda + sha256: 3fdef7b3c43474b7225868776a373289a8fd92787ffdf8bed11cf7f39b4ac741 + md5: e0897de1d8979a3bb20ef031ae1f7d28 depends: - - libgcc-ng >=12 - - libsodium >=1.0.18,<1.0.19.0a0 - - libstdcxx-ng >=12 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 461684 - timestamp: 1715024520808 + - pkg:pypi/pyzmq?source=hash-mapping + size: 389074 + timestamp: 1728642373938 - kind: conda name: pyzmq - version: 26.0.3 - build: py312ha04878a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-26.0.3-py312ha04878a_0.conda - sha256: 65a17e5cbece9fa2d6df687502bcbe504f0fd906aa02a85b23de5ff55d423926 - md5: a2a851071ceea5b90391003faf94b203 + version: 26.2.0 + build: py312hbf22597_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_3.conda + sha256: bc303f9b11e04a515f79cd5ad3bfa0e84b9dfec76552626d6263b38789fe6678 + md5: 746ce19f0829ec3e19c93007b1a224d3 depends: - - __osx >=10.9 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 446747 - timestamp: 1715024631161 + - pkg:pypi/pyzmq?source=hash-mapping + size: 378126 + timestamp: 1728642454632 - kind: conda name: pyzmq - version: 26.0.3 - build: py312hd7027bb_0 + version: 26.2.0 + build: py312hd7027bb_3 + build_number: 3 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.0.3-py312hd7027bb_0.conda - sha256: 9c13d1300fa5ee9a4c7c8cb14fb70b4ace9f4247318774f306f6123aa4e6e46a - md5: 0fc1ec9be7d6274d3e01f6c7908f69e5 + url: https://conda.anaconda.org/conda-forge/win-64/pyzmq-26.2.0-py312hd7027bb_3.conda + sha256: 46a645f9482c9ca55716644dae85f6d3cf771b696379d1dd86841ca6007ee409 + md5: 1ff97de0753654c02e5195a710bbf05c depends: - - libsodium >=1.0.18,<1.0.19.0a0 + - libsodium >=1.0.20,<1.0.21.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 @@ -32435,21 +28270,22 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 445178 - timestamp: 1715025185530 + - pkg:pypi/pyzmq?source=hash-mapping + size: 360217 + timestamp: 1728642895644 - kind: conda name: pyzmq - version: 26.0.3 - build: py312hfa13136_0 + version: 26.2.0 + build: py312hf8a1cbd_3 + build_number: 3 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.0.3-py312hfa13136_0.conda - sha256: 1118ada24f3eb1c90baa1e5e258c70498b7e1a2b5f12212c7789aa3f7504cd82 - md5: 7c695aab5ee68adbe8a046b73100e13c + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hf8a1cbd_3.conda + sha256: 2e0ca1bb9ab3af5d1f9b38548d65be7097ba0246e7e63c908c9b1323df3f45b5 + md5: 7bdaa4c2a84b744ef26c8b2ba65c3d0e depends: - __osx >=11.0 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 + - libcxx >=17 + - libsodium >=1.0.20,<1.0.21.0a0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 @@ -32457,26 +28293,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pyzmq?source=conda-forge-mapping - size: 445216 - timestamp: 1715024704947 -- kind: conda - name: qca - version: 2.3.9 - build: h424957d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qca-2.3.9-h424957d_0.conda - sha256: bcdc0c97dddb16e54db16854d4b8f297a9341741b6629a0139cc30122c9af2cc - md5: c3ecb8966a6ebb89acbe1bee225424d1 - depends: - - __osx >=10.13 - - libcxx >=16 - - openssl >=3.3.1,<4.0a0 - - qt-main >=5.15.8,<5.16.0a0 - license: LGPL-2.1-only - purls: [] - size: 812376 - timestamp: 1719269374005 + - pkg:pypi/pyzmq?source=hash-mapping + size: 361674 + timestamp: 1728642457661 - kind: conda name: qca version: 2.3.9 @@ -32531,43 +28350,50 @@ packages: timestamp: 1719269780128 - kind: conda name: qgis - version: 3.38.0 - build: py312h9323a83_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/qgis-3.38.0-py312h9323a83_1.conda - sha256: 957bd0a2b0a6bf534bcca0ea743ca03137445867e076728e82b7d3296ca0f637 - md5: 7312d1382c1f7642b2b6fa98ddd3a292 + version: 3.40.0 + build: py312h02b007f_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/qgis-3.40.0-py312h02b007f_0.conda + sha256: 5d4974418a1ee7c66c2638a621bcef377269dce4a12ee3be02a0fb2e3e634724 + md5: bac3f5c6a669623b85697f683a249a0f depends: - - __glibc >=2.17,<3.0.a0 - exiv2 >=0.28.3,<0.29.0a0 - future - gdal - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - gsl >=2.7,<2.8.0a0 - httplib2 - - icu >=73.2,<74.0a0 + - icu >=75.1,<76.0a0 - jinja2 + - khronos-opencl-icd-loader >=2024.5.8 - laz-perf - - libexpat >=2.6.2,<3.0a0 - - libgcc-ng >=12 - - libgdal >=3.9.1,<3.10.0a0 - - libpq >=16.3,<17.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 + - libexpat >=2.6.3,<3.0a0 + - libgdal >=3.9.2,<3.10.0a0 + - libgdal-core >=3.9.2,<3.10.0a0 + - libpdal-arrow >=2.8.0,<2.9.0a0 + - libpdal-core >=2.8.0,<2.9.0a0 + - libpdal-draco >=2.8.0,<2.9.0a0 + - libpdal-e57 >=2.8.0,<2.9.0a0 + - libpdal-hdf >=2.8.0,<2.9.0a0 + - libpdal-icebridge >=2.8.0,<2.9.0a0 + - libpdal-nitf >=2.8.0,<2.9.0a0 + - libpdal-pgpointcloud >=2.8.0,<2.9.0a0 + - libpdal-tiledb >=2.8.0,<2.9.0a0 + - libpdal-trajectory >=2.8.0,<2.9.0a0 + - libpq >=16.4,<17.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 - libspatialindex >=2.0.0,<2.0.1.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libstdcxx-ng >=12 - - libzip >=1.10.1,<2.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libzip >=1.11.2,<2.0a0 - markupsafe - mock - nose2 - - ocl-icd >=2.3.2,<3.0a0 - owslib - - pdal >=2.7.2,<2.8.0a0 + - pdal - plotly - postgresql - - proj >=9.4.1,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - psycopg2 - pygments - pyproj @@ -32590,51 +28416,65 @@ packages: - sip >=6.7.12,<6.8.0a0 - six - sqlite + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - yaml license: GPL-2.0-only - purls: - - pkg:pypi/future?source=conda-forge-mapping - size: 94772695 - timestamp: 1720489186981 + license_family: GPL + purls: [] + size: 75072611 + timestamp: 1730471755229 - kind: conda name: qgis - version: 3.38.0 - build: py312haee25ca_1 - build_number: 1 + version: 3.40.0 + build: py312h3e019bb_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/qgis-3.38.0-py312haee25ca_1.conda - sha256: 41a392f0278cbea6cf51f202fd1a8f7146f0e3c7368b9ebedda456fc9a5cf6f0 - md5: 08ebe8b9f6cd322428ef366ac14e4cbd + url: https://conda.anaconda.org/conda-forge/osx-arm64/qgis-3.40.0-py312h3e019bb_0.conda + sha256: 34be41ed68066c268272a4e5cddd719a85e9bfeb9f3582f0bd9c1574995cfa15 + md5: ca99c3713cd16cdb78ce6e1581be0323 depends: - __osx >=11.0 - exiv2 >=0.28.3,<0.29.0a0 - future - gdal - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - gsl >=2.7,<2.8.0a0 - httplib2 - - icu >=73.2,<74.0a0 + - icu >=75.1,<76.0a0 - jinja2 - - khronos-opencl-icd-loader >=2023.4.17 + - khronos-opencl-icd-loader >=2024.5.8 - laz-perf - - libcxx >=16 - - libexpat >=2.6.2,<3.0a0 - - libgdal >=3.9.1,<3.10.0a0 - - libpq >=16.3,<17.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 + - libcxx >=17 + - libexpat >=2.6.3,<3.0a0 + - libgdal >=3.9.2,<3.10.0a0 + - libgdal-core >=3.9.2,<3.10.0a0 + - libpdal-arrow >=2.8.0,<2.9.0a0 + - libpdal-core >=2.8.0,<2.9.0a0 + - libpdal-cpd >=2.8.0,<2.9.0a0 + - libpdal-draco >=2.8.0,<2.9.0a0 + - libpdal-e57 >=2.8.0,<2.9.0a0 + - libpdal-hdf >=2.8.0,<2.9.0a0 + - libpdal-icebridge >=2.8.0,<2.9.0a0 + - libpdal-nitf >=2.8.0,<2.9.0a0 + - libpdal-pgpointcloud >=2.8.0,<2.9.0a0 + - libpdal-tiledb >=2.8.0,<2.9.0a0 + - libpdal-trajectory >=2.8.0,<2.9.0a0 + - libpq >=16.4,<17.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 - libspatialindex >=2.0.0,<2.0.1.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.47.0,<4.0a0 - libtasn1 >=4.19.0,<5.0a0 - - libzip >=1.10.1,<2.0a0 + - libzip >=1.11.2,<2.0a0 - markupsafe - mock - nose2 - owslib - - pdal >=2.7.2,<2.8.0a0 + - pdal - plotly - postgresql - - proj >=9.4.1,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - psycopg2 - pygments - pyproj @@ -32660,114 +28500,60 @@ packages: - sqlite - yaml license: GPL-2.0-only - purls: - - pkg:pypi/future?source=conda-forge-mapping - size: 74897720 - timestamp: 1720491235124 -- kind: conda - name: qgis - version: 3.38.0 - build: py312hd8787b6_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qgis-3.38.0-py312hd8787b6_1.conda - sha256: 00e16db2cae0534203fe822f066a68973aae0bab3b52f8c97847f2fece517ec2 - md5: 41c83fe55fd448e563c2dd3c249ca3e5 - depends: - - __osx >=10.13 - - __osx >=10.15 - - exiv2 >=0.28.3,<0.29.0a0 - - future - - gdal - - geos >=3.12.2,<3.12.3.0a0 - - gsl >=2.7,<2.8.0a0 - - httplib2 - - icu >=73.2,<74.0a0 - - jinja2 - - khronos-opencl-icd-loader >=2023.4.17 - - laz-perf - - libcxx >=16 - - libexpat >=2.6.2,<3.0a0 - - libgdal >=3.9.1,<3.10.0a0 - - libpq >=16.3,<17.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 - - libspatialindex >=2.0.0,<2.0.1.0a0 - - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libtasn1 >=4.19.0,<5.0a0 - - libzip >=1.10.1,<2.0a0 - - markupsafe - - mock - - nose2 - - owslib - - pdal >=2.7.2,<2.8.0a0 - - plotly - - postgresql - - proj >=9.4.1,<9.5.0a0 - - psycopg2 - - pygments - - pyproj - - pyqt >=5.15.9,<5.16.0a0 - - pyqt5-sip - - pyqtwebkit - - python >=3.12,<3.13.0a0 - - python-dateutil - - python_abi 3.12.* *_cp312 - - pytz - - pyyaml - - qca - - qjson - - qscintilla2 - - qt-main >=5.15.8,<5.16.0a0 - - qtkeychain >=0.14.3,<0.15.0a0 - - qtwebkit - - qwt >=6.3.0,<6.4.0a0 - - requests - - sip >=6.7.12,<6.8.0a0 - - six - - sqlite - - yaml - license: GPL-2.0-only - purls: - - pkg:pypi/future?source=conda-forge-mapping - size: 77067247 - timestamp: 1720489957552 + license_family: GPL + purls: [] + size: 76619010 + timestamp: 1730472305765 - kind: conda name: qgis - version: 3.38.0 - build: py312hf3a2cf0_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/qgis-3.38.0-py312hf3a2cf0_1.conda - sha256: 178df2b3da1fcd1ea6edbe043317948aa6742a1fd73cdd27c3b1452439d4ab9e - md5: f25422098faeda36834bb7d3a9033253 + version: 3.40.0 + build: py312h8d9565f_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/qgis-3.40.0-py312h8d9565f_0.conda + sha256: 16e8cc804e6e902cf6e8c1051e106fa485a742b40b3071f4704fc0be1bedf51a + md5: 0a1da95e407585cf721968dcb9eec646 depends: + - __glibc >=2.17,<3.0.a0 - exiv2 >=0.28.3,<0.29.0a0 - future - gdal - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - gsl >=2.7,<2.8.0a0 - httplib2 - - icu >=73.2,<74.0a0 + - icu >=75.1,<76.0a0 - jinja2 - - khronos-opencl-icd-loader >=2023.4.17 - laz-perf - - libexpat >=2.6.2,<3.0a0 - - libgdal >=3.9.1,<3.10.0a0 - - libpq >=16.3,<17.0a0 - - libprotobuf >=4.25.3,<4.25.4.0a0 + - libexpat >=2.6.3,<3.0a0 + - libgcc >=13 + - libgdal >=3.9.2,<3.10.0a0 + - libgdal-core >=3.9.2,<3.10.0a0 + - libpdal-arrow >=2.8.0,<2.9.0a0 + - libpdal-core >=2.8.0,<2.9.0a0 + - libpdal-cpd >=2.8.0,<2.9.0a0 + - libpdal-draco >=2.8.0,<2.9.0a0 + - libpdal-e57 >=2.8.0,<2.9.0a0 + - libpdal-hdf >=2.8.0,<2.9.0a0 + - libpdal-icebridge >=2.8.0,<2.9.0a0 + - libpdal-nitf >=2.8.0,<2.9.0a0 + - libpdal-pgpointcloud >=2.8.0,<2.9.0a0 + - libpdal-tiledb >=2.8.0,<2.9.0a0 + - libpdal-trajectory >=2.8.0,<2.9.0a0 + - libpq >=16.4,<17.0a0 + - libprotobuf >=5.27.5,<5.27.6.0a0 - libspatialindex >=2.0.0,<2.0.1.0a0 - libspatialite >=5.1.0,<5.2.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libzip >=1.10.1,<2.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libstdcxx >=13 + - libzip >=1.11.2,<2.0a0 - markupsafe - mock - nose2 + - ocl-icd >=2.3.2,<3.0a0 - owslib - - pdal >=2.7.2,<2.8.0a0 + - pdal - plotly - postgresql - - proj >=9.4.1,<9.5.0a0 + - proj >=9.5.0,<9.6.0a0 - psycopg2 - pygments - pyproj @@ -32790,15 +28576,12 @@ packages: - sip >=6.7.12,<6.8.0a0 - six - sqlite - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - yaml license: GPL-2.0-only - purls: - - pkg:pypi/future?source=conda-forge-mapping - size: 73725600 - timestamp: 1720491723913 + license_family: GPL + purls: [] + size: 98414629 + timestamp: 1730469648008 - kind: conda name: qgis-plugin-manager version: 1.6.1 @@ -32813,75 +28596,59 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/qgis-plugin-manager?source=conda-forge-mapping + - pkg:pypi/qgis-plugin-manager?source=hash-mapping size: 44219 timestamp: 1694708722178 - kind: conda name: qhull version: '2020.2' - build: h3c5361c_3 - build_number: 3 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qhull-2020.2-h3c5361c_3.conda - sha256: acb0cfd78ce4b9aa8dc507cbba31dd9ddda1e65108fcc8827187349d55ce6a4a - md5: f6d98ba4de9607410c5be1ed40d1dcd3 - depends: - - __osx >=10.13 - - libcxx >=16 - license: LicenseRef-Qhull - purls: [] - size: 528171 - timestamp: 1720449559503 -- kind: conda - name: qhull - version: '2020.2' - build: h420ef59_3 - build_number: 3 + build: h420ef59_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_3.conda - sha256: ba13382a69781b4ca93c3754ec96715b24bc96f38b5bfb60b8fa460cc5d5da16 - md5: 667769cf22f22155d0c23609dd067618 + url: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda + sha256: 873ac689484262a51fd79bc6103c1a1bedbf524924d7f0088fb80703042805e4 + md5: 6483b1f59526e05d7d894e466b5b6924 depends: - __osx >=11.0 - libcxx >=16 license: LicenseRef-Qhull purls: [] - size: 516395 - timestamp: 1720449590012 + size: 516376 + timestamp: 1720814307311 - kind: conda name: qhull version: '2020.2' - build: h434a139_3 - build_number: 3 + build: h434a139_5 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_3.conda - sha256: 6e34ee9640a04a8c05b97cb18b04065cd88ee38438fdcec274a95f2c49f4cd90 - md5: 9f0934861973a17e96b1e609dbb0d1cd + url: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + sha256: 776363493bad83308ba30bcb88c2552632581b143e8ee25b1982c8c743e73abc + md5: 353823361b1d27eb3960efb076dfcaf6 depends: - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 - libstdcxx-ng >=12 license: LicenseRef-Qhull purls: [] - size: 553111 - timestamp: 1720449567120 + size: 552937 + timestamp: 1720813982144 - kind: conda name: qhull version: '2020.2' - build: hc790b64_3 - build_number: 3 + build: hc790b64_5 + build_number: 5 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_3.conda - sha256: daed80ff096164a4b361f165b432335ae3e185d1eb534e5372780a05e69e23c9 - md5: c3001451b9297dcf695ebf4d42e10970 + url: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda + sha256: 887d53486a37bd870da62b8fa2ebe3993f912ad04bd755e7ed7c47ced97cbaa8 + md5: 854fbdff64b572b5c0b470f334d34c11 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: LicenseRef-Qhull purls: [] - size: 1391623 - timestamp: 1720449963852 + size: 1377020 + timestamp: 1720814433486 - kind: conda name: qjson version: 0.9.0 @@ -32933,43 +28700,6 @@ packages: purls: [] size: 58592 timestamp: 1686558168701 -- kind: conda - name: qjson - version: 0.9.0 - build: hed3eaa1_1009 - build_number: 1009 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qjson-0.9.0-hed3eaa1_1009.conda - sha256: 1cb7620a3a30e81457ddfd055590135457bdcded015606948aa523bb6105556a - md5: 1438c58babc823a8c2540575dc5d83cb - depends: - - libcxx >=15.0.7 - - qt-main >=5.15.8,<5.16.0a0 - license: LGPL-2.1-only - purls: [] - size: 59486 - timestamp: 1686558142396 -- kind: conda - name: qscintilla2 - version: 2.14.1 - build: py312h12cbc42_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qscintilla2-2.14.1-py312h12cbc42_0.conda - sha256: 1a7ffbfeee82fedc08098ab15e7354e5102827d12f7de1d9e34b83340bd09e92 - md5: 61a4d894fee693aed16ac6b04d808e5d - depends: - - libcxx >=15.0.7 - - pyqt >=5.15.9,<5.16.0a0 - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - qt-main >=5.15.8,<5.16.0a0 - - sip >=6.7.11,<6.8.0a0 - license: GPL-3.0-or-later - license_family: GPL - purls: - - pkg:pypi/qscintilla?source=conda-forge-mapping - size: 1326816 - timestamp: 1695486826527 - kind: conda name: qscintilla2 version: 2.14.1 @@ -32988,8 +28718,7 @@ packages: - sip >=6.7.11,<6.8.0a0 license: GPL-3.0-or-later license_family: GPL - purls: - - pkg:pypi/qscintilla?source=conda-forge-mapping + purls: [] size: 1258259 timestamp: 1695486794043 - kind: conda @@ -33012,7 +28741,7 @@ packages: license: GPL-3.0-or-later license_family: GPL purls: - - pkg:pypi/qscintilla?source=conda-forge-mapping + - pkg:pypi/qscintilla?source=hash-mapping size: 1710828 timestamp: 1695486254081 - kind: conda @@ -33035,50 +28764,48 @@ packages: license: GPL-3.0-or-later license_family: GPL purls: - - pkg:pypi/qscintilla?source=conda-forge-mapping + - pkg:pypi/qscintilla?source=hash-mapping size: 1276533 timestamp: 1695486800155 - kind: conda name: qt-main - version: 5.15.8 - build: h06adc49_22 - build_number: 22 + version: 5.15.15 + build: h264fbc2_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h06adc49_22.conda - sha256: 050c3bc95ff3ce2fce043988e45b841c62b72470c2f0841442154b378cc0d37e - md5: 919650dc31edac6a17a99157aec4f87c + url: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.15-h264fbc2_0.conda + sha256: 77c78ce62e5c53ed529f035535283b96ee617ffd64ae1ea6a2dfdea186e39608 + md5: e6e473c620bc0c3772dbed14f9eb4ab2 depends: - - gst-plugins-base >=1.24.5,<1.25.0a0 - - gstreamer >=1.24.5,<1.25.0a0 - - icu >=73.2,<74.0a0 - - krb5 >=1.21.2,<1.22.0a0 - - libclang13 >=15.0.7 - - libglib >=2.80.2,<3.0a0 + - gst-plugins-base >=1.24.7,<1.25.0a0 + - gstreamer >=1.24.7,<1.25.0a0 + - icu >=75.1,<76.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libclang13 >=19.1.2 + - libglib >=2.82.2,<3.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.43,<1.7.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libsqlite >=3.47.0,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.6.0a0 constrains: - - qt 5.15.8 + - qt 5.15.15 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 59570135 - timestamp: 1719037973436 + size: 60059195 + timestamp: 1729904868434 - kind: conda name: qt-main - version: 5.15.8 - build: ha2b5568_22 - build_number: 22 + version: 5.15.15 + build: h374914d_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-ha2b5568_22.conda - sha256: e621b4445b08c353cd754e8b1e529ed6d27b53d23629064e504727225e291017 - md5: 15de976572f24032540236006d6d0e9f + url: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.15-h374914d_0.conda + sha256: 333be9817b492b7303d3a01073d3cff71719e72ba11507141ddfdd89732dc7a8 + md5: 26e8b00e73c114c9b787d36edcbf4424 depends: - __glibc >=2.17,<3.0.a0 - alsa-lib >=1.2.12,<1.3.0a0 @@ -33086,32 +28813,35 @@ packages: - fontconfig >=2.14.2,<3.0a0 - fonts-conda-ecosystem - freetype >=2.12.1,<3.0a0 - - gst-plugins-base >=1.24.5,<1.25.0a0 - - gstreamer >=1.24.5,<1.25.0a0 - - harfbuzz >=8.5.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 + - gst-plugins-base >=1.24.7,<1.25.0a0 + - gstreamer >=1.24.7,<1.25.0a0 + - harfbuzz >=9.0.0,<10.0a0 + - icu >=75.1,<76.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libclang-cpp19.1 >=19.1.2,<19.2.0a0 + - libclang13 >=19.1.2 - libcups >=2.3.3,<2.4.0a0 + - libdrm >=2.4.123,<2.5.0a0 + - libegl >=1.7.0,<2.0a0 - libevent >=2.1.12,<2.1.13.0a0 - - libexpat >=2.6.2,<3.0a0 - - libgcc-ng >=12 - - libglib >=2.80.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 + - libgcc >=13 + - libgl >=1.7.0,<2.0a0 + - libglib >=2.82.2,<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.3,<17.0a0 - - libsqlite >=3.46.0,<4.0a0 - - libstdcxx-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libllvm19 >=19.1.2,<19.2.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libpq >=16.4,<17.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libstdcxx >=13 + - libxcb >=1.17.0,<2.0a0 - libxkbcommon >=1.7.0,<2.0a0 - libxml2 >=2.12.7,<3.0a0 - libzlib >=1.3.1,<2.0a0 - - mysql-libs >=8.3.0,<8.4.0a0 - - nspr >=4.35,<5.0a0 - - nss >=3.101,<4.0a0 - - openssl >=3.3.1,<4.0a0 + - mysql-libs >=9.0.1,<9.1.0a0 + - nspr >=4.36,<5.0a0 + - nss >=3.106,<4.0a0 + - openssl >=3.3.2,<4.0a0 - pulseaudio-client >=17.0,<17.1.0a0 - xcb-util >=0.4.1,<0.5.0a0 - xcb-util-image >=0.4.0,<0.5.0a0 @@ -33120,89 +28850,218 @@ packages: - xcb-util-wm >=0.4.2,<0.5.0a0 - xorg-libice >=1.1.1,<2.0a0 - xorg-libsm >=1.2.4,<2.0a0 - - xorg-libx11 >=1.8.9,<2.0a0 - - xorg-libxext >=1.3.4,<2.0a0 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxdamage >=1.1.6,<2.0a0 + - xorg-libxext >=1.3.6,<2.0a0 + - xorg-libxxf86vm >=1.1.5,<2.0a0 - xorg-xf86vidmodeproto - zstd >=1.5.6,<1.6.0a0 constrains: - - qt 5.15.8 + - qt 5.15.15 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 61406677 - timestamp: 1719032641557 + size: 52549288 + timestamp: 1729904847636 - kind: conda name: qt-main - version: 5.15.8 - build: hcd44e0d_22 - build_number: 22 + version: 5.15.15 + build: h7d33341_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/qt-main-5.15.8-hcd44e0d_22.conda - sha256: 6664f8a72f1be2f3e126368f587923d1b147fd8ab2ea11d56304b8655169e294 - md5: e4ef1b6d7bc762357de64edc5f803f31 + url: https://conda.anaconda.org/conda-forge/osx-arm64/qt-main-5.15.15-h7d33341_0.conda + sha256: 995563c7c2ae112179cb1cec67837af1624234a1e39e1ca86f6b5de44cbc6af8 + md5: 065abdbfa76bdb7b89cee314a594055e depends: - __osx >=11.0 - - gst-plugins-base >=1.24.5,<1.25.0a0 - - gstreamer >=1.24.5,<1.25.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 - - libcxx >=14 - - libglib >=2.80.2,<3.0a0 + - gst-plugins-base >=1.24.7,<1.25.0a0 + - gstreamer >=1.24.7,<1.25.0a0 + - icu >=75.1,<76.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libclang-cpp17 >=17.0.6,<17.1.0a0 + - libclang13 >=17.0.6 + - libcxx >=17 + - libglib >=2.82.2,<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.3,<17.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libllvm17 >=17.0.6,<17.1.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libpq >=16.4,<17.0a0 + - libsqlite >=3.47.0,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - mysql-libs >=8.3.0,<8.4.0a0 - - nspr >=4.35,<5.0a0 - - nss >=3.101,<4.0a0 + - mysql-libs >=9.0.1,<9.1.0a0 + - nspr >=4.36,<5.0a0 + - nss >=3.106,<4.0a0 + - zstd >=1.5.6,<1.6.0a0 + constrains: + - qt 5.15.15 + license: LGPL-3.0-only + license_family: LGPL + purls: [] + size: 50010318 + timestamp: 1729905112196 +- kind: conda + name: qt6-main + version: 6.7.3 + build: h20baabe_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.7.3-h20baabe_0.conda + sha256: ea392f29b89505f878f4654f297674cd18a068abba764fd9b84802804ba97d23 + md5: 1b22804cf94e520ff2bafc0a908dd6a4 + depends: + - __glibc >=2.17,<3.0.a0 + - alsa-lib >=1.2.12,<1.3.0a0 + - dbus >=1.13.6,<2.0a0 + - double-conversion >=3.3.0,<3.4.0a0 + - fontconfig >=2.14.2,<3.0a0 + - fonts-conda-ecosystem + - freetype >=2.12.1,<3.0a0 + - harfbuzz >=9.0.0,<10.0a0 + - icu >=75.1,<76.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libclang-cpp19.1 >=19.1.0,<19.2.0a0 + - libclang13 >=19.1.0 + - libcups >=2.3.3,<2.4.0a0 + - libdrm >=2.4.123,<2.5.0a0 + - libegl >=1.7.0,<2.0a0 + - libgcc >=13 + - libgl >=1.7.0,<2.0a0 + - libglib >=2.82.1,<3.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libllvm19 >=19.1.0,<19.2.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libpq >=16.4,<17.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libstdcxx >=13 + - libtiff >=4.7.0,<4.8.0a0 + - libwebp-base >=1.4.0,<2.0a0 + - libxcb >=1.17.0,<2.0a0 + - libxkbcommon >=1.7.0,<2.0a0 + - libxml2 >=2.12.7,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - mysql-libs >=9.0.1,<9.1.0a0 + - openssl >=3.3.2,<4.0a0 + - pcre2 >=10.44,<10.45.0a0 + - wayland >=1.23.1,<2.0a0 + - xcb-util >=0.4.1,<0.5.0a0 + - xcb-util-cursor >=0.1.5,<0.2.0a0 + - xcb-util-image >=0.4.0,<0.5.0a0 + - xcb-util-keysyms >=0.4.1,<0.5.0a0 + - xcb-util-renderutil >=0.3.10,<0.4.0a0 + - xcb-util-wm >=0.4.2,<0.5.0a0 + - xorg-libice >=1.1.1,<2.0a0 + - xorg-libsm >=1.2.4,<2.0a0 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxext >=1.3.4,<2.0a0 + - xorg-libxtst >=1.2.5,<2.0a0 + - xorg-libxxf86vm >=1.1.5,<2.0a0 + - zstd >=1.5.6,<1.6.0a0 + constrains: + - qt 6.7.3 + license: LGPL-3.0-only + license_family: LGPL + purls: [] + size: 47296097 + timestamp: 1727454717035 +- kind: conda + name: qt6-main + version: 6.8.0 + build: h6e8976b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.8.0-h6e8976b_0.conda + sha256: f21949a55d07f72f910b0256401ae7b666d04810d110236aee86063da7babc51 + md5: 6d1c5d2d904d24c17cbb538a95855a4e + depends: + - __glibc >=2.17,<3.0.a0 + - alsa-lib >=1.2.12,<1.3.0a0 + - dbus >=1.13.6,<2.0a0 + - double-conversion >=3.3.0,<3.4.0a0 + - fontconfig >=2.14.2,<3.0a0 + - fonts-conda-ecosystem + - freetype >=2.12.1,<3.0a0 + - harfbuzz >=9.0.0,<10.0a0 + - icu >=75.1,<76.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libclang-cpp19.1 >=19.1.0,<19.2.0a0 + - libclang13 >=19.1.0 + - libcups >=2.3.3,<2.4.0a0 + - libdrm >=2.4.123,<2.5.0a0 + - libegl >=1.7.0,<2.0a0 + - libgcc >=13 + - libgl >=1.7.0,<2.0a0 + - libglib >=2.82.1,<3.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libllvm19 >=19.1.0,<19.2.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libpq >=17.0,<18.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libstdcxx >=13 + - libtiff >=4.7.0,<4.8.0a0 + - libwebp-base >=1.4.0,<2.0a0 + - libxcb >=1.17.0,<2.0a0 + - libxkbcommon >=1.7.0,<2.0a0 + - libxml2 >=2.12.7,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - mysql-libs >=9.0.1,<9.1.0a0 + - openssl >=3.3.2,<4.0a0 + - pcre2 >=10.44,<10.45.0a0 + - wayland >=1.23.1,<2.0a0 + - xcb-util >=0.4.1,<0.5.0a0 + - xcb-util-cursor >=0.1.5,<0.2.0a0 + - xcb-util-image >=0.4.0,<0.5.0a0 + - xcb-util-keysyms >=0.4.1,<0.5.0a0 + - xcb-util-renderutil >=0.3.10,<0.4.0a0 + - xcb-util-wm >=0.4.2,<0.5.0a0 + - xorg-libice >=1.1.1,<2.0a0 + - xorg-libsm >=1.2.4,<2.0a0 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxcomposite >=0.4.6,<1.0a0 + - xorg-libxcursor >=1.2.2,<2.0a0 + - xorg-libxdamage >=1.1.6,<2.0a0 + - xorg-libxext >=1.3.6,<2.0a0 + - xorg-libxrandr >=1.5.4,<2.0a0 + - xorg-libxtst >=1.2.5,<2.0a0 + - xorg-libxxf86vm >=1.1.5,<2.0a0 - zstd >=1.5.6,<1.6.0a0 constrains: - - qt 5.15.8 + - qt 6.8.0 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 50806771 - timestamp: 1719032744643 + size: 51315820 + timestamp: 1728406028 - kind: conda - name: qt-main - version: 5.15.8 - build: he8879f6_22 - build_number: 22 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qt-main-5.15.8-he8879f6_22.conda - sha256: d851e2eda7cf3a05e11149a93ab502bbce3bc437b3549efaed97f023a3e3ef67 - md5: b753c7244852333dc87f4d1a9775e357 - depends: - - __osx >=10.13 - - gst-plugins-base >=1.24.5,<1.25.0a0 - - gstreamer >=1.24.5,<1.25.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 - - libcxx >=14 - - libglib >=2.80.2,<3.0a0 + name: qt6-main + version: 6.8.0 + build: hfb098fa_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.8.0-hfb098fa_0.conda + sha256: 71603164b962f50f663d7281f6c7c290be451e8cce399d4d91d86cfb156fd1d8 + md5: 053046ca73b71bbcc81c6dc114264d24 + depends: + - double-conversion >=3.3.0,<3.4.0a0 + - harfbuzz >=9.0.0,<10.0a0 + - icu >=75.1,<76.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libclang13 >=19.1.0 + - libglib >=2.82.1,<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.3,<17.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libtiff >=4.7.0,<4.8.0a0 + - libwebp-base >=1.4.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - mysql-libs >=8.3.0,<8.4.0a0 - - nspr >=4.35,<5.0a0 - - nss >=3.101,<4.0a0 + - openssl >=3.3.2,<4.0a0 + - pcre2 >=10.44,<10.45.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.6.0a0 constrains: - - qt 5.15.8 + - qt 6.8.0 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 45967861 - timestamp: 1719032930883 + size: 93521358 + timestamp: 1728406725577 - kind: conda name: qtkeychain version: 0.14.3 @@ -33220,23 +29079,6 @@ packages: purls: [] size: 36221 timestamp: 1714814924404 -- kind: conda - name: qtkeychain - version: 0.14.3 - build: h8ef3ffb_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qtkeychain-0.14.3-h8ef3ffb_0.conda - sha256: 3b0730fd51733e5e6f4e2329560da97d6f433bf40fcd6c18bcde29df62552a8d - md5: 02a6a6db8a10cd50001f5406e9f2dcc9 - depends: - - __osx >=10.15 - - libcxx >=16 - - qt-main >=5.15.8,<5.16.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 35487 - timestamp: 1714814934829 - kind: conda name: qtkeychain version: 0.14.3 @@ -33278,211 +29120,152 @@ packages: - kind: conda name: qtwebkit version: '5.212' - build: h3b777d0_16 - build_number: 16 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qtwebkit-5.212-h3b777d0_16.conda - sha256: f8b851acb06f380d32647d335eae76657dc88226b48334ec221624076e78075a - md5: 5c2a35e4d27dcf121b53c120bfe49d9e - depends: - - __osx >=10.12 - - glib - - icu >=73.2,<74.0a0 - - libcxx >=15 + build: h0fbc989_17 + build_number: 17 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/qtwebkit-5.212-h0fbc989_17.conda + sha256: 48ff6125fad9b184a77ff3680097b9ac79834142d425f0e58c237cfb5a9400cd + md5: 621eb243a9cc4453b0b8d3e507609724 + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 + - libglib >=2.80.3,<3.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libsqlite >=3.44.2,<4.0a0 - - libwebp - - libwebp-base >=1.3.2,<2.0a0 - - libxml2 >=2.12.3,<3.0.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libstdcxx >=13 + - libwebp-base >=1.4.0,<2.0a0 + - libxml2 >=2.12.7,<3.0a0 - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libzlib >=1.3.1,<2.0a0 - qt-main >=5.15.8,<5.16.0a0 - - sqlite - - zlib license: LGPL-2.1-only purls: [] - size: 11686596 - timestamp: 1705302520240 + size: 15533409 + timestamp: 1727073255545 - kind: conda name: qtwebkit version: '5.212' - build: h4d8ddc9_16 - build_number: 16 + build: hbc9c816_17 + build_number: 17 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/qtwebkit-5.212-h4d8ddc9_16.conda - sha256: 07d3edaadb2fd77c0a7adb04b2fe22bfd5ac0c78315cd42aef626bf85e3e81b1 - md5: a63bf802959ef9b0c0f6ebf2295a7d15 + url: https://conda.anaconda.org/conda-forge/win-64/qtwebkit-5.212-hbc9c816_17.conda + sha256: d48638dc612fae858e2df0a3c79a5f6ea31e75e931c46300312dc4021a6ea5fa + md5: bed784949cc7dd60520b311f6694e756 depends: - - glib - - icu >=73.2,<74.0a0 + - icu >=75.1,<76.0a0 - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libsqlite >=3.44.2,<4.0a0 - - libwebp - - libwebp-base >=1.3.2,<2.0a0 - - libxml2 >=2.12.3,<3.0.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libwebp-base >=1.4.0,<2.0a0 + - libxml2 >=2.12.7,<3.0a0 - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libzlib >=1.3.1,<2.0a0 - qt-main >=5.15.8,<5.16.0a0 - - sqlite - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - - zlib - license: LGPL-2.1-only - purls: [] - size: 11010817 - timestamp: 1705299624569 -- kind: conda - name: qtwebkit - version: '5.212' - build: h60108c6_16 - build_number: 16 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/qtwebkit-5.212-h60108c6_16.conda - sha256: 776fbd436e1bb1d96ad83a87b1cc9c7a1fd5aaa56ddf34ffb4536412b54b2aa1 - md5: 1e2785758dc448d977c48a0bd684a02f - depends: - - __glibc >=2.17,<3.0.a0 - - glib - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 - - libglib >=2.78.3,<3.0a0 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libsqlite >=3.44.2,<4.0a0 - - libstdcxx-ng >=12 - - libwebp - - libwebp-base >=1.3.2,<2.0a0 - - libxml2 >=2.12.3,<3.0.0a0 - - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - qt-main >=5.15.8,<5.16.0a0 - - sqlite - - zlib license: LGPL-2.1-only purls: [] - size: 15557461 - timestamp: 1705298788487 + size: 10914722 + timestamp: 1727074105376 - kind: conda name: qtwebkit version: '5.212' - build: ha51050e_16 - build_number: 16 + build: he56935a_17 + build_number: 17 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/qtwebkit-5.212-ha51050e_16.conda - sha256: e2c98f1454742b44961d0fdb6d712903d7c10bd9c8a578c16ed1a3fb670ad288 - md5: c29bf3e3fbd9c858d7eedad0cec1de1a + url: https://conda.anaconda.org/conda-forge/osx-arm64/qtwebkit-5.212-he56935a_17.conda + sha256: 1bf2e74c7a0cb9948dc3de5d9c1a57e6a38f86cfdc2ce9afc7120e2a00f940fc + md5: e54413dfef3d6d42184511de6c2b6522 depends: - - glib - - icu >=73.2,<74.0a0 - - libcxx >=15 + - __osx >=11.0 + - icu >=75.1,<76.0a0 + - libcxx >=17 - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libsqlite >=3.44.2,<4.0a0 - - libwebp - - libwebp-base >=1.3.2,<2.0a0 - - libxml2 >=2.12.3,<3.0.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libwebp-base >=1.4.0,<2.0a0 + - libxml2 >=2.12.7,<3.0a0 - libxslt >=1.1.39,<2.0a0 - - libzlib >=1.2.13,<2.0.0a0 + - libzlib >=1.3.1,<2.0a0 - qt-main >=5.15.8,<5.16.0a0 - - sqlite - - zlib license: LGPL-2.1-only purls: [] - size: 10116631 - timestamp: 1705302904070 + size: 10077563 + timestamp: 1727073197207 - kind: conda name: quarto - version: 1.4.550 - build: h57928b3_1 - build_number: 1 + version: 1.5.57 + build: h57928b3_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/quarto-1.4.550-h57928b3_1.conda - sha256: 6415fc839ad74202b20ed7781de3aa076f0bc202f7dd977e6ea782dfb00def71 - md5: d92f625feb8436864b4bfd2bc7f420da - depends: - - dart-sass - - deno >=1.37.2,<1.37.3.0a0 - - deno-dom >=0.1.35,<0.1.36.0a0 - - esbuild - - pandoc >=3.1.11.1,<3.1.12.0a0 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 15688899 - timestamp: 1708104504691 -- kind: conda - name: quarto - version: 1.4.550 - build: h694c41f_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/quarto-1.4.550-h694c41f_1.conda - sha256: 914a1b22f3b9616309ee6a066c50707cab37de0e9eb23cd0db3488d05c3991c1 - md5: 451204adcf15c8411d12ba240e7e979a + url: https://conda.anaconda.org/conda-forge/win-64/quarto-1.5.57-h57928b3_0.conda + sha256: 92a40f8745068fb2d6af4b3bf990a5084913df38862f87fefcbce8e62fd2a314 + md5: 353bf33225a5596289bb616a4c00cc62 depends: - dart-sass - - deno >=1.37.2,<1.37.3.0a0 + - deno >=1.41.0,<1.41.1.0a0 - deno-dom >=0.1.35,<0.1.36.0a0 - esbuild - - pandoc >=3.1.11.1,<3.1.12.0a0 + - pandoc 3.2 + - typst 0.11.0 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 15721907 - timestamp: 1708104547618 + size: 15860524 + timestamp: 1725910705704 - kind: conda name: quarto - version: 1.4.550 - build: ha770c72_1 - build_number: 1 + version: 1.5.57 + build: ha770c72_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/quarto-1.4.550-ha770c72_1.conda - sha256: 2fd62d66eb6a08b95ba8933aaff7a0e3241c7ced93b5114a3b1e8d28ee24b330 - md5: b7b89be76bcdab239f7956e5fc2727ab + url: https://conda.anaconda.org/conda-forge/linux-64/quarto-1.5.57-ha770c72_0.conda + sha256: b8bccc243d6ed27d2511662601c2f3e8fa1f371fd71d40ea3ffcb15dc3192676 + md5: dd6838c663e9b5a1b18048a164ccb90b depends: - dart-sass - - deno >=1.37.2,<1.37.3.0a0 + - deno >=1.41.0,<1.41.1.0a0 - deno-dom >=0.1.35,<0.1.36.0a0 - esbuild - - pandoc >=3.1.11.1,<3.1.12.0a0 + - pandoc 3.2 + - typst 0.11.0 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 15312136 - timestamp: 1708104283642 + size: 16059182 + timestamp: 1725910489963 - kind: conda name: quarto - version: 1.4.550 - build: hce30654_1 - build_number: 1 + version: 1.5.57 + build: hce30654_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/quarto-1.4.550-hce30654_1.conda - sha256: 593932b9e2150f55b0a52986a44415cc9662a1ed2fec14804c0b8406a9dc3560 - md5: c4f8e6eebc75e160a9cbf1eb95cd7a1e + url: https://conda.anaconda.org/conda-forge/osx-arm64/quarto-1.5.57-hce30654_0.conda + sha256: a43b7c945350de57b08dcb8f5429801b88ccdc417b1adccc3a4d61f673ecdc08 + md5: 4f55d8c7598629589dfa0341e9ed776b depends: - dart-sass - - deno >=1.37.2,<1.37.3.0a0 + - deno >=1.41.0,<1.41.1.0a0 - deno-dom >=0.1.35,<0.1.36.0a0 - esbuild - - pandoc >=3.1.11.1,<3.1.12.0a0 + - pandoc 3.2 + - typst 0.11.0 license: GPL-2.0-or-later license_family: GPL purls: [] - size: 15945176 - timestamp: 1708104523700 + size: 15864370 + timestamp: 1725910540458 - kind: conda name: quartodoc - version: 0.7.5 + version: 0.8.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.7.5-pyhd8ed1ab_0.conda - sha256: b274b1715455b4cc629fff973fa74cf7c712072d25c24fc1c01396778d3be567 - md5: e792d8c21d24dbb2b880c07430328536 + url: https://conda.anaconda.org/conda-forge/noarch/quartodoc-0.8.1-pyhd8ed1ab_0.conda + sha256: 95cb8a50720c2d5f87f36f971f6b1158343db45707f0f17e85e67d613a073992 + md5: 0341c90d53a9748db85c53194b448213 depends: + - black - click - griffe >=0.33 - importlib-metadata >=5.1.0 @@ -33499,9 +29282,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/quartodoc?source=conda-forge-mapping - size: 65878 - timestamp: 1718900565226 + - pkg:pypi/quartodoc?source=hash-mapping + size: 68703 + timestamp: 1729005402983 - kind: conda name: qwt version: 6.3.0 @@ -33518,22 +29301,6 @@ packages: purls: [] size: 3313698 timestamp: 1715263875508 -- kind: conda - name: qwt - version: 6.3.0 - build: h69e1d46_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/qwt-6.3.0-h69e1d46_0.conda - sha256: 30ed35ce7b64cd080fb0f6b5e4810998d7b46415ab1892261c7cb7b5c1c83e1d - md5: c14911f58f838744a023082cd842ec1a - depends: - - __osx >=10.13 - - libcxx >=16 - - qt-main >=5.15.8,<5.16.0a0 - license: Qwt, Version 1.0 - purls: [] - size: 3337079 - timestamp: 1715264433982 - kind: conda name: qwt version: 6.3.0 @@ -33569,69 +29336,92 @@ packages: size: 3526548 timestamp: 1715264518907 - kind: conda - name: re2 - version: 2023.09.01 - build: h4cba328_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.09.01-h4cba328_2.conda - sha256: 0e0d44414381c39a7e6f3da442cb41c637df0dcb383a07425f19c19ccffa0118 - md5: 0342882197116478a42fa4ea35af79c1 + name: rcedit + version: 1.1.1 + build: h63175ca_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/rcedit-1.1.1-h63175ca_1.conda + sha256: 1c68adb60bc644f05e05b306b7634200025684e95067583c81f95e6aa0df2d9f + md5: e70d5ba6fb13dcb7b74be3d037338a15 depends: - - libre2-11 2023.09.01 h7b2c953_2 - license: BSD-3-Clause + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: [] + size: 48497 + timestamp: 1670962446971 +- kind: conda + name: rdma-core + version: '54.0' + build: h5888daf_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-54.0-h5888daf_1.conda + sha256: 074153c6aeb32b2c1654565b96811f1bb8111ff6b638b8102e9155b9064d8c11 + md5: 65f0a8824006604f71ea234ed434f6ff + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libnl >=3.10.0,<4.0a0 + - libstdcxx >=13 + - libsystemd0 >=256.7 + - libudev1 >=256.7 + license: Linux-OpenIB license_family: BSD purls: [] - size: 26770 - timestamp: 1708947220914 + size: 1222907 + timestamp: 1730320518600 - kind: conda name: re2 - version: 2023.09.01 - build: h7f4b329_2 - build_number: 2 + version: 2024.07.02 + build: h77b4e00_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda - sha256: f0f520f57e6b58313e8c41abc7dfa48742a05f1681f05654558127b667c769a8 - md5: 8f70e36268dea8eb666ef14c29bd3cda + url: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h77b4e00_1.conda + sha256: c1721cb80f7201652fc9801f49c214c88aee835d957f2376e301bd40a8415742 + md5: 01093ff37c1b5e6bf9f17c0116747d11 depends: - - libre2-11 2023.09.01 h5a48ba9_2 + - libre2-11 2024.07.02 hbbce691_1 license: BSD-3-Clause license_family: BSD purls: [] - size: 26617 - timestamp: 1708946796423 + size: 26665 + timestamp: 1728778975855 - kind: conda name: re2 - version: 2023.09.01 - build: hb168e87_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/re2-2023.09.01-hb168e87_2.conda - sha256: 5739ed2cfa62ed7f828eb4b9e6e69ff1df56cb9a9aacdc296451a3cb647034eb - md5: 266f8ca8528fc7e0fa31066c309ad864 + version: 2024.07.02 + build: hcd0e937_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-hcd0e937_1.conda + sha256: eebddde6cb10b146507810b701ef6df122d5309cd5151a39d0828aa44dc53725 + md5: 19e29f2ccc9168eb0a39dc40c04c0e21 depends: - - libre2-11 2023.09.01 h81f5012_2 + - libre2-11 2024.07.02 h2348fd5_1 license: BSD-3-Clause license_family: BSD purls: [] - size: 26814 - timestamp: 1708947195067 + size: 26860 + timestamp: 1728779123653 - kind: conda name: re2 - version: 2023.09.01 - build: hd3b24a8_2 - build_number: 2 + version: 2024.07.02 + build: hd3b24a8_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/re2-2023.09.01-hd3b24a8_2.conda - sha256: 929744a982215ea19f6f9a9d00c782969cd690bfddeeb650a39df1536af577fe - md5: ffeb985810bc7d103662e1465c758847 + url: https://conda.anaconda.org/conda-forge/win-64/re2-2024.07.02-hd3b24a8_1.conda + sha256: 5ac1c50d731c323bb52c78113792a71c5f8f060e5767c0a202120a948e0fc85b + md5: b4abdc84c969587219e7e759116a3e8b depends: - - libre2-11 2023.09.01 hf8d8778_2 + - libre2-11 2024.07.02 h4eb7d71_1 license: BSD-3-Clause license_family: BSD purls: [] - size: 207315 - timestamp: 1708947529390 + size: 214858 + timestamp: 1728779526745 - kind: conda name: readline version: '8.2' @@ -33665,43 +29455,27 @@ packages: purls: [] size: 250351 timestamp: 1679532511311 -- kind: conda - name: readline - version: '8.2' - build: h9e318b2_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568 - md5: f17f77f2acf4d344734bda76829ce14e - depends: - - ncurses >=6.3,<7.0a0 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 255870 - timestamp: 1679532707590 - kind: conda name: readme_renderer - version: '42.0' + version: '44.0' build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-42.0-pyhd8ed1ab_0.conda - sha256: 61e03765ebdb168fc8747e8183db4067b55888c89d59e0f4f53b5b4046846cda - md5: fdc16f5dc3a911d8f43f64f814a45961 + url: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_0.conda + sha256: 0e6fdf0b30448ca92a0767e982182154d531391856296feda983053c41cdac6f + md5: 63260acf67cb6169bdf519405b96ee63 depends: - cmarkgfm >=0.8.0 - - docutils >=0.13.1 + - docutils >=0.21.2 - nh3 >=0.2.14 - pygments >=2.5.1 - - python >=3.8 + - python >=3.9 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/readme-renderer?source=conda-forge-mapping - size: 17373 - timestamp: 1694242843889 + - pkg:pypi/readme-renderer?source=hash-mapping + size: 17186 + timestamp: 1720528649611 - kind: conda name: referencing version: 0.35.1 @@ -33718,7 +29492,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/referencing?source=conda-forge-mapping + - pkg:pypi/referencing?source=hash-mapping size: 42210 timestamp: 1714619625532 - kind: conda @@ -33741,7 +29515,7 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/requests?source=conda-forge-mapping + - pkg:pypi/requests?source=hash-mapping size: 58810 timestamp: 1717057174842 - kind: conda @@ -33759,7 +29533,7 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/requests-toolbelt?source=conda-forge-mapping + - pkg:pypi/requests-toolbelt?source=hash-mapping size: 43939 timestamp: 1682953467574 - kind: conda @@ -33777,7 +29551,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/rfc3339-validator?source=conda-forge-mapping + - pkg:pypi/rfc3339-validator?source=hash-mapping size: 8064 timestamp: 1638811838081 - kind: conda @@ -33794,7 +29568,7 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/rfc3986?source=conda-forge-mapping + - pkg:pypi/rfc3986?source=hash-mapping size: 34075 timestamp: 1641825125307 - kind: conda @@ -33811,14 +29585,14 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/rfc3986-validator?source=conda-forge-mapping + - pkg:pypi/rfc3986-validator?source=hash-mapping size: 7818 timestamp: 1598024297745 - kind: pypi name: ribasim - version: 2024.9.0 + version: 2024.11.0 path: python/ribasim - sha256: be31457a51083ee5f04c05753c0308f556542c46f94a60a82f9387c5156e82ff + sha256: ba8a6a24955e974dd0d7ae81ad59546134417f48eabce10cb280ac5f8c3290db requires_dist: - geopandas - matplotlib @@ -33837,6 +29611,7 @@ packages: - pytest-cov ; extra == 'all' - pytest-xdist ; extra == 'all' - ribasim-testmodels ; extra == 'all' + - teamcity-messages ; extra == 'all' - xugrid ; extra == 'all' - jinja2 ; extra == 'delwaq' - networkx ; extra == 'delwaq' @@ -33846,13 +29621,14 @@ packages: - pytest-cov ; extra == 'tests' - pytest-xdist ; extra == 'tests' - ribasim-testmodels ; extra == 'tests' + - teamcity-messages ; extra == 'tests' requires_python: '>=3.10' editable: true - kind: pypi name: ribasim-api - version: 2024.9.0 + version: 2024.11.0 path: python/ribasim_api - sha256: 3d2210b7455ccaa058d8508690e100fa6039118c9fac925c058cfa8474185c45 + sha256: dc882869854e0940ab3a12506f5b9508b04045793f6badb644579c43fa2b6cb9 requires_dist: - xmipy - pytest ; extra == 'tests' @@ -33864,7 +29640,7 @@ packages: name: ribasim-testmodels version: 0.5.0 path: python/ribasim_testmodels - sha256: 8b7c7c59cfa8b428e4387aabffa7f83af86138327e1e4579a0523537410e3a9c + sha256: 2b0165819d6cc5d79b0b65761e8c38b1cc9f34649dea3ed4406013080ea8b112 requires_dist: - geopandas - numpy @@ -33875,32 +29651,53 @@ packages: editable: true - kind: conda name: rich - version: 13.7.1 + version: 13.9.4 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda - sha256: 2b26d58aa59e46f933c3126367348651b0dab6e0bf88014e857415bb184a4667 - md5: ba445bf767ae6f0d959ff2b40c20912b + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + sha256: c009488fc07fd5557434c9c1ad32ab1dd50241d6a766e4b2b4125cd6498585a8 + md5: bcf8cc8924b5d20ead3d122130b8320b depends: - markdown-it-py >=2.2.0 - pygments >=2.13.0,<3.0.0 - - python >=3.7.0 + - python >=3.8 - typing_extensions >=4.0.0,<5.0.0 license: MIT license_family: MIT purls: - - pkg:pypi/rich?source=conda-forge-mapping - size: 184347 - timestamp: 1709150578093 + - pkg:pypi/rich?source=hash-mapping + size: 185481 + timestamp: 1730592349978 - kind: conda name: rpds-py - version: 0.19.0 + version: 0.20.1 + build: py312h12e396e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.20.1-py312h12e396e_0.conda + sha256: 83357a44706569dd3224e142cf30d60749d2e7dc131b7cc3a2a05341ce27e2ff + md5: e72ffbd19c66b5396034fffe8a52bca6 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rpds-py?source=hash-mapping + size: 337004 + timestamp: 1730472929182 +- kind: conda + name: rpds-py + version: 0.20.1 build: py312h2615798_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.19.0-py312h2615798_0.conda - sha256: ac83da8d226fa0b44705e53f113213c83c416b8e54ca0a4f2caa673a1a2db6ac - md5: b2b9089125b69baddc8b29517ff75efa + url: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.20.1-py312h2615798_0.conda + sha256: 2c6648bb19990072ca970a26275ec49599182c79d3c23384d0a3ac4ad09e1cda + md5: 98d30b1eeae081f85f214c32265168c7 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -33908,18 +29705,19 @@ packages: - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT + license_family: MIT purls: - - pkg:pypi/rpds-py?source=conda-forge-mapping - size: 206392 - timestamp: 1720477385623 + - pkg:pypi/rpds-py?source=hash-mapping + size: 210506 + timestamp: 1730473254450 - kind: conda name: rpds-py - version: 0.19.0 - build: py312h552d48e_0 + version: 0.20.1 + build: py312hcd83bfe_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.19.0-py312h552d48e_0.conda - sha256: 16bcdedd216724a2e11edede285ea4451d07373d021bc72000cccc2ad38cb187 - md5: 17a379a348d6946ffb8c62f31b0f7608 + url: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.20.1-py312hcd83bfe_0.conda + sha256: 7fdc34a6fcb362f78dacc2cf4d347762b81027d6bfbabd1c7678404a6b62ca55 + md5: 4cb748cb05fe339f709055c25430621f depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -33928,79 +29726,41 @@ packages: constrains: - __osx >=11.0 license: MIT + license_family: MIT purls: - - pkg:pypi/rpds-py?source=conda-forge-mapping - size: 290080 - timestamp: 1720476886445 -- kind: conda - name: rpds-py - version: 0.19.0 - build: py312ha47ea1c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.19.0-py312ha47ea1c_0.conda - sha256: f952828a1980e2a3d445a9836ac2ac481114d230acf2c2276092d426ad7a3dc0 - md5: d92edd61e8e16a218a821e1cf6d983f9 - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - constrains: - - __osx >=10.13 - license: MIT - purls: - - pkg:pypi/rpds-py?source=conda-forge-mapping - size: 295597 - timestamp: 1720476792452 + - pkg:pypi/rpds-py?source=hash-mapping + size: 295554 + timestamp: 1730473370659 - kind: conda - name: rpds-py - version: 0.19.0 - build: py312hf008fa9_0 + name: ruff + version: 0.7.2 + build: py312h2156523_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.19.0-py312hf008fa9_0.conda - sha256: 75af7e5a0906ed4856f917020e4b7641dc61d414bcf97b6a4801c0acb1945dcd - md5: 66ebbe714bafd06ba298a0c6bc2f04ad + url: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.7.2-py312h2156523_0.conda + sha256: e2e95d27622ae66dec329245546e826e9afd636401fe5da18ff28f409d94b284 + md5: e632785a3e9cc13a44c34545adc2828e depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 + - libgcc >=13 + - libstdcxx >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 constrains: - __glibc >=2.17 license: MIT - purls: - - pkg:pypi/rpds-py?source=conda-forge-mapping - size: 333646 - timestamp: 1720476841723 -- kind: conda - name: ruff - version: 0.5.1 - build: py312h3402d49_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.5.1-py312h3402d49_0.conda - sha256: 99c71a50471e49496962016a538dd706c6e2afd012da4ad2ce71c55645aa9b05 - md5: 757c8cba048f68fff0a060680e6172b9 - depends: - - __osx >=11.0 - - libcxx >=16 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - constrains: - - __osx >=11.0 - license: MIT license_family: MIT purls: - - pkg:pypi/ruff?source=conda-forge-mapping - size: 5840369 - timestamp: 1720324218307 + - pkg:pypi/ruff?source=hash-mapping + size: 7759382 + timestamp: 1730495299181 - kind: conda name: ruff - version: 0.5.1 - build: py312h7a6832a_0 + version: 0.7.2 + build: py312h4e4d446_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ruff-0.5.1-py312h7a6832a_0.conda - sha256: a2dd143d205e83216054ca73e52a547257ca4f4dc12826e5f2f3900fcc403cad - md5: 97065e3a64b327e81eced98947245430 + url: https://conda.anaconda.org/conda-forge/win-64/ruff-0.7.2-py312h4e4d446_0.conda + sha256: a9038797977d7c60afa14d1c5fba9d40513e86d369b860f56ff374ba237b8d80 + md5: f4e594b5c9a047e16c93b4af35583e84 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -34010,243 +29770,166 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/ruff?source=conda-forge-mapping - size: 6252252 - timestamp: 1720325064688 -- kind: conda - name: ruff - version: 0.5.1 - build: py312h8b25c6c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.5.1-py312h8b25c6c_0.conda - sha256: ac47c959a5f749208a750baed8f7b5269aec1f796c7b4d030460e1e15e77389f - md5: c61cf609b329e874217e4714c5247e53 - depends: - - __osx >=10.13 - - libcxx >=16 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - constrains: - - __osx >=10.13 - license: MIT - license_family: MIT - purls: - - pkg:pypi/ruff?source=conda-forge-mapping - size: 6118897 - timestamp: 1720324142258 + - pkg:pypi/ruff?source=hash-mapping + size: 6780075 + timestamp: 1730496011348 - kind: conda name: ruff - version: 0.5.1 - build: py312hbe4c86d_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.5.1-py312hbe4c86d_0.conda - sha256: 7a59f54036edb07059ad46e40d81f6e1661e70203c17691aab6bdcb6b917499f - md5: abadff2578d145ca3ded1c52e8bfde5f + version: 0.7.2 + build: py312h5d18b81_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.7.2-py312h5d18b81_0.conda + sha256: a0efde2c9619d7f2118ac75b6d6dc2690780d0bab51d9c1ef59b1c04785e1890 + md5: 0daf37981715f208b356a9c7c11cd46b depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __osx >=11.0 + - libcxx >=18 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - - __glibc >=2.17 + - __osx >=11.0 license: MIT license_family: MIT purls: - - pkg:pypi/ruff?source=conda-forge-mapping - size: 7170377 - timestamp: 1720323851877 + - pkg:pypi/ruff?source=hash-mapping + size: 6851407 + timestamp: 1730495660174 - kind: conda name: rust - version: 1.79.0 - build: h0a17960_0 + version: 1.81.0 + build: h1a8d7c4_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/rust-1.79.0-h0a17960_0.conda - sha256: 2b3db786c6d762175984f61fa0f2f25dc9ff55e2549f9a3f63c5a25e13b1f0ff - md5: 5bfcf3677d6839927adbfa81fc3ae231 + url: https://conda.anaconda.org/conda-forge/linux-64/rust-1.81.0-h1a8d7c4_0.conda + sha256: 0620c44414d140f63e215b8555770acb94e473787f84cb1ab051bb6ebd3a808f + md5: 0e4d3f6598c7b770b1ac73ca8689c300 depends: - __glibc >=2.17,<3.0.a0 - gcc_impl_linux-64 - - libgcc-ng >=12 + - libgcc >=13 - libzlib >=1.3.1,<2.0a0 - - rust-std-x86_64-unknown-linux-gnu 1.79.0 h2c6d0dc_0 + - rust-std-x86_64-unknown-linux-gnu 1.81.0 h2c6d0dc_0 - sysroot_linux-64 >=2.17 license: MIT license_family: MIT purls: [] - size: 195701375 - timestamp: 1718633036741 + size: 200303283 + timestamp: 1726504386467 - kind: conda name: rust - version: 1.79.0 + version: 1.81.0 build: h4ff7c5d_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.79.0-h4ff7c5d_0.conda - sha256: 1314beea8c1a60563917fb835386c49d3cbf29883d293b788552af8a93ad9d92 - md5: e4b1f3194160f168f777fb454bf2229f + url: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.81.0-h4ff7c5d_0.conda + sha256: aa6dffbf4b6441512f9dcce572913b2cfff2a2f71b0ffe9b29c04efa4e1e15d7 + md5: 9421a9205351eb673c57af9e491dc2bf depends: - - rust-std-aarch64-apple-darwin 1.79.0 hf6ec828_0 + - rust-std-aarch64-apple-darwin 1.81.0 hf6ec828_0 license: MIT license_family: MIT purls: [] - size: 195482914 - timestamp: 1718634784281 + size: 199771549 + timestamp: 1726506487060 - kind: conda name: rust - version: 1.79.0 - build: h6c54e5d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/rust-1.79.0-h6c54e5d_0.conda - sha256: 771d6fbf8f8b37bf2d6d3b9935438dae667b13efd398531cdb57a4439e87724b - md5: 7d56ef73ad8c339d5c1cb9497d3622e4 - depends: - - rust-std-x86_64-apple-darwin 1.79.0 h38e4360_0 - license: MIT - license_family: MIT - purls: [] - size: 201478211 - timestamp: 1718634900729 -- kind: conda - name: rust - version: 1.79.0 + version: 1.81.0 build: hf8d6059_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/rust-1.79.0-hf8d6059_0.conda - sha256: 1d6b3c759c68c1c98fbdaade3ad3d5573489200b4b9f49eb39f59a6840328b1d - md5: 72523ee59b40d958dfbc495b657f1c4e + url: https://conda.anaconda.org/conda-forge/win-64/rust-1.81.0-hf8d6059_0.conda + sha256: 47b0f34453bc347739cb1b5eaaefe6a86aff2f4d91a333ecb56075714a188f3f + md5: 08ba4c469f11512a07583ace97766ee2 depends: - - rust-std-x86_64-pc-windows-msvc 1.79.0 h17fc481_0 + - rust-std-x86_64-pc-windows-msvc 1.81.0 h17fc481_0 license: MIT license_family: MIT purls: [] - size: 192119399 - timestamp: 1718635784967 + size: 193252613 + timestamp: 1726506914739 - kind: conda name: rust-std-aarch64-apple-darwin - version: 1.79.0 + version: 1.81.0 build: hf6ec828_0 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.79.0-hf6ec828_0.conda - sha256: 93ad9be177141bd745bb778ab0c3d0e271e4bd00a79ae306a163c7f1855f09f1 - md5: 93138a7b094a734d74cd980e427f3cd5 - depends: - - __unix - constrains: - - rust >=1.79.0,<1.79.1.0a0 - license: MIT - license_family: MIT - purls: [] - size: 30724150 - timestamp: 1718632528157 -- kind: conda - name: rust-std-x86_64-apple-darwin - version: 1.79.0 - build: h38e4360_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.79.0-h38e4360_0.conda - sha256: a7bf440e3ea37ebacffd9b0722ff65274775429b5f000b6e9579dde0dac4ac27 - md5: 83dd8baf48ac465659dbd66b81c58d1d + url: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.81.0-hf6ec828_0.conda + sha256: a8a31df1ef430f8dda4689f49e09e43dce333b02cfca39d61281652b950a69da + md5: 5f228231eb202cbd06b98e57697c470f depends: - __unix constrains: - - rust >=1.79.0,<1.79.1.0a0 + - rust >=1.81.0,<1.81.1.0a0 license: MIT license_family: MIT purls: [] - size: 31525860 - timestamp: 1718632481489 + size: 31264180 + timestamp: 1726503800830 - kind: conda name: rust-std-x86_64-pc-windows-msvc - version: 1.79.0 + version: 1.81.0 build: h17fc481_0 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.79.0-h17fc481_0.conda - sha256: a5f42e6fbc170ec53773dbb370f121b6509601dfe281bc7abb4c6e734a381ade - md5: 38006dc221b243b41f06411fde4a94dc + url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.81.0-h17fc481_0.conda + sha256: 2a7d0ac2035c09d31078602e194082e44a641ecfa5ca4edf47c16f25590b4fda + md5: 809e64792fbf0bd55fdf9e4577e46bae depends: - __win constrains: - - rust >=1.79.0,<1.79.1.0a0 + - rust >=1.81.0,<1.81.1.0a0 license: MIT license_family: MIT purls: [] - size: 25375490 - timestamp: 1718635454912 + size: 25578327 + timestamp: 1726506658685 - kind: conda name: rust-std-x86_64-unknown-linux-gnu - version: 1.79.0 + version: 1.81.0 build: h2c6d0dc_0 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.79.0-h2c6d0dc_0.conda - sha256: dd81ced04c44c0100369183e6c58e1fdfc5a5976a7036c881de2c75116397f0c - md5: 2294a1e5fbeef3122347689e75949d96 + url: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.81.0-h2c6d0dc_0.conda + sha256: 6539b9c5f787c9e579d4f0af763527fe890a0935357f99d5410e71fbbb165ee3 + md5: e6d687c017e8af51a673081a2964ed1c depends: - __unix constrains: - - rust >=1.79.0,<1.79.1.0a0 + - rust >=1.81.0,<1.81.1.0a0 license: MIT license_family: MIT purls: [] - size: 34298472 - timestamp: 1718632884161 + size: 34828353 + timestamp: 1726504171219 - kind: conda name: s2n - version: 1.4.17 - build: he19d79f_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.17-he19d79f_0.conda - sha256: 6d1aa582964771a6cf47d120e2c5cdc700fe3744101cd5660af1eb81d47d689a - md5: e25ac9bf10f8e6aa67727b1cdbe762ef - depends: - - libgcc-ng >=12 - - openssl >=3.3.1,<4.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 349926 - timestamp: 1719619139334 -- kind: conda - name: scikit-learn - version: 1.5.1 - build: py310h146d792_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py310h146d792_0.conda - sha256: 0ab645a36e8f407f3d6f3e478c9b68d1bc66a032c9a6243867bd8aa75c377967 - md5: e780dce0374928b56e9012fb07ad2603 - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex >=4.5 - - joblib >=1.2.0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - scipy - - threadpoolctl >=3.1.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 9233185 - timestamp: 1719998552337 + version: 1.5.5 + build: h3931f03_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.5-h3931f03_0.conda + sha256: a6fa0afa836f8f26dea0abc180ca2549bb517932d9a88a121e707135d4bcb715 + md5: 334dba9982ab9f5d62033c61698a8683 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 353081 + timestamp: 1728534228471 - kind: conda name: scikit-learn - version: 1.5.1 - build: py310h64e73be_0 + version: 1.5.2 + build: py310h0b94ddc_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py310h64e73be_0.conda - sha256: 9b4a39f83e7b51b9c3e296b74810a4d7df96548547ad7611ed4b0a5084a1191a - md5: b61296bb05a31779d718185d984e14d8 + url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py310h0b94ddc_1.conda + sha256: ae5d1cf85a76412fd2f0c2dfabecf9db957025d10b3dc2be8b9f95cdb54eae96 + md5: 50ee5d123b77195763c096d712b77a0e depends: - __osx >=11.0 - joblib >=1.2.0 - - libcxx >=16 - - llvm-openmp >=16.0.6 + - libcxx >=17 + - llvm-openmp >=17.0.6 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython @@ -34256,22 +29939,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 8354322 - timestamp: 1719999031933 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 8467233 + timestamp: 1726083300521 - kind: conda name: scikit-learn - version: 1.5.1 - build: py310h9d65eca_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py310h9d65eca_0.conda - sha256: 9b1a23a0ccb86294907cea06a26130e6f2ab3f2ef12322daa75cdc84288039fe - md5: f77470398ca612e426330f1cf0461cb0 + version: 1.5.2 + build: py310h27f47ee_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py310h27f47ee_1.conda + sha256: 777580d5ba89c5382fa63807a7981ae2261784258e84f5a9e747f5bd3d3428f3 + md5: 374383a1c0d197bdc1eee7c4973b732d depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 - joblib >=1.2.0 - - libcxx >=16 - - llvm-openmp >=16.0.6 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -34280,17 +29965,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 8303418 - timestamp: 1719998782700 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 9234551 + timestamp: 1726083285129 - kind: conda name: scikit-learn - version: 1.5.1 - build: py310hf2a6c47_0 + version: 1.5.2 + build: py310hf2a6c47_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py310hf2a6c47_0.conda - sha256: 1ab42f83d76b46fe1dd97ab8b4c6e7d7f3d462d533e5652e13d6c28d3aeacc76 - md5: afd958cf6218f72af4b1166ca942182d + url: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py310hf2a6c47_1.conda + sha256: 2beccd9ca490ece4cc9a3915b2c2d499885b5b21ecbf2236511268befccbdd7e + md5: bef8985d120ce63d9d68c3799fb9d10c depends: - joblib >=1.2.0 - numpy >=1.19,<3 @@ -34304,22 +29990,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 8137631 - timestamp: 1719999101331 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 8255129 + timestamp: 1726083798915 - kind: conda name: scikit-learn - version: 1.5.1 - build: py311h3c3ac6d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py311h3c3ac6d_0.conda - sha256: 9484c7f5c686252e7dd5e180537f35bf7518bae2ba0f5970f849313a427b4a4f - md5: 209cc9f21aced058dfe783848c7a13d9 + version: 1.5.2 + build: py311h57cc02b_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py311h57cc02b_1.conda + sha256: b6489f65911847d1f9807e254e9af0815548454b911df4d0b5019f9ab16fe530 + md5: d1b6d7a73364d9fe20d2863bd2c43e3a depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 - joblib >=1.2.0 - - libcxx >=16 - - llvm-openmp >=16.0.6 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -34328,22 +30016,23 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 9691054 - timestamp: 1719998770348 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 10596895 + timestamp: 1726083362968 - kind: conda name: scikit-learn - version: 1.5.1 - build: py311hbfb48bc_0 + version: 1.5.2 + build: py311h9e23f0f_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py311hbfb48bc_0.conda - sha256: 750975969130d3cf01d211a1efc8455aaab747040bc1bea48f3da767e5b1fd0a - md5: c0859c6e5ce3b8f341fca34a52433925 + url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py311h9e23f0f_1.conda + sha256: cc9f8c3f12ef7cce384285c11e76e981349771542edf14ba069b8b2f22744b5e + md5: ad77674e1f893b3ffe27ffa532e2724f depends: - __osx >=11.0 - joblib >=1.2.0 - - libcxx >=16 - - llvm-openmp >=16.0.6 + - libcxx >=17 + - llvm-openmp >=17.0.6 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython @@ -34353,42 +30042,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 9746058 - timestamp: 1719998814101 -- kind: conda - name: scikit-learn - version: 1.5.1 - build: py311hd632256_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py311hd632256_0.conda - sha256: 855a322daff2d64c9a75b1fea560d2f6f4dd02685220519c9a3ce25bbdd92f7d - md5: f3928b428ad924ecb8f0e9b71124ed7f - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex >=4.5 - - joblib >=1.2.0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - scipy - - threadpoolctl >=3.1.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 10548981 - timestamp: 1719998745552 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 9729967 + timestamp: 1726083178729 - kind: conda name: scikit-learn - version: 1.5.1 - build: py311hdcb8d17_0 + version: 1.5.2 + build: py311hdcb8d17_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py311hdcb8d17_0.conda - sha256: 8bc7ca0c72326f49c1dba67ab2863839a16b095eb8a5726779c0b44288e46e55 - md5: b31a7361a5b0560c48f7451e666cb11d + url: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py311hdcb8d17_1.conda + sha256: 3f23a54f327af0227115b1ac3a8d6b32926e87bfe0097e3c906bd205bb9340b7 + md5: c3e550b20baa56f911022f6304c8f547 depends: - joblib >=1.2.0 - numpy >=1.19,<3 @@ -34402,22 +30067,23 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 9490152 - timestamp: 1719999020340 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 9491082 + timestamp: 1726083711620 - kind: conda name: scikit-learn - version: 1.5.1 - build: py312h1b546db_0 + version: 1.5.2 + build: py312h387f99c_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.1-py312h1b546db_0.conda - sha256: 84dbdad6be17824cc188cd9f80d13707bb6e75afb64444476269b06643526225 - md5: e9448f28dfa360ab849f89319fc145f4 + url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.5.2-py312h387f99c_1.conda + sha256: 9a5b51f8699d233a87d67c200aceb5a4b1bd9a899596c2eb958fddc6c2ddb60b + md5: 7a6a47b8182f8c5bdabdc772f1357e01 depends: - __osx >=11.0 - joblib >=1.2.0 - - libcxx >=16 - - llvm-openmp >=16.0.6 + - libcxx >=17 + - llvm-openmp >=17.0.6 - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython @@ -34427,23 +30093,24 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 9546176 - timestamp: 1719998598002 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 9581309 + timestamp: 1726083218204 - kind: conda name: scikit-learn - version: 1.5.1 - build: py312h775a589_0 + version: 1.5.2 + build: py312h7a48858_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.1-py312h775a589_0.conda - sha256: cf9735937209d01febf1f912559e28dc3bb753906460e5b85dc24f0d57a78d96 - md5: bd8c79ccb9498336cbb174cf0151024a + url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.5.2-py312h7a48858_1.conda + sha256: 3118b687c7cfb4484cc5c65591b611d834e3ea2424cb75e1e0b0980d0de72afc + md5: 6b5f4c68483bd0c22bca9094dafc606b depends: - __glibc >=2.17,<3.0.a0 - _openmp_mutex >=4.5 - joblib >=1.2.0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - libgcc >=13 + - libstdcxx >=13 - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -34452,17 +30119,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 10384469 - timestamp: 1719998679827 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 10393222 + timestamp: 1726083382159 - kind: conda name: scikit-learn - version: 1.5.1 - build: py312h816cc57_0 + version: 1.5.2 + build: py312h816cc57_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.1-py312h816cc57_0.conda - sha256: 00ab427eaebdc17816655ec7d116de9511a8ad04020fc47e0b4bc5dcfc46bbbb - md5: fa83d73ec4a87352b6bbfcdfde5aeab2 + url: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.5.2-py312h816cc57_1.conda + sha256: 7c64942d20339e965c22e27ceca72e0f0ff7d32962d9621903c3812714835f4f + md5: e2b5c3288bd3f8e89a46b98f8d9e8768 depends: - joblib >=1.2.0 - numpy >=1.19,<3 @@ -34476,372 +30144,285 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 9225862 - timestamp: 1719999149012 -- kind: conda - name: scikit-learn - version: 1.5.1 - build: py312hc214ba5_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.5.1-py312hc214ba5_0.conda - sha256: 62a33e1266c9e2e99e5bb68127160e04a592b62e553faa4f6ad2df264b9654f0 - md5: 32625e0f29884a4704070c07a25edf94 - depends: - - __osx >=10.13 - - joblib >=1.2.0 - - libcxx >=16 - - llvm-openmp >=16.0.6 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - scipy - - threadpoolctl >=3.1.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/scikit-learn?source=conda-forge-mapping - size: 9488534 - timestamp: 1719998895551 -- kind: conda - name: scipy - version: 1.14.0 - build: py310h35d8cac_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py310h35d8cac_1.conda - sha256: 4fca457878e737d8a9c46959fdb7e3f1423f8cbc19372b25511203a0e17058ea - md5: c261d35d90ab2d683b13d140edd907af - depends: - - __osx >=10.13 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - libgfortran5 >=13.2.0 - - liblapack >=3.9.0,<4.0a0 - - numpy <2.3 - - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: BSD-3-Clause - purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 15435223 - timestamp: 1720323931781 + - pkg:pypi/scikit-learn?source=hash-mapping + size: 9215977 + timestamp: 1726083836746 - kind: conda name: scipy - version: 1.14.0 - build: py310h46043a1_1 + version: 1.14.1 + build: py310hbd0dde3_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py310h46043a1_1.conda - sha256: cf76f87e88c4352aeb46c8141536e24a348c85f7ac4fed882ee7c3fccf618d9e - md5: fef8eb0ea5459bcedd3f5ad41dabdaff + url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py310hbd0dde3_1.conda + sha256: 6ba7d1ab0cc549931bb5979c5230d3fa64791a23a23dd8142813da9759ba2b1a + md5: 40856f1a065530263c38af13fe7d8f25 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 14979994 - timestamp: 1720324942725 + - pkg:pypi/scipy?source=hash-mapping + size: 15353009 + timestamp: 1729482895418 - kind: conda name: scipy - version: 1.14.0 - build: py310h7057308_1 + version: 1.14.1 + build: py310hc05a576_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py310h7057308_1.conda - sha256: 614ff42797558f82147ca9f8823fed82e28a0bb23d5f9d81c2ca780d10a4501c - md5: 0be59c51391ba6f224183cecce113763 + url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py310hc05a576_1.conda + sha256: 14014398bd36591fc173bbf71e4673119eac69468cca26b43fa897e5bf2099b1 + md5: ed7fe288f8210a19a86dc8c00abe5f65 depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libcxx >=17 - libgfortran 5.* - - libgfortran5 >=12.3.0 - libgfortran5 >=13.2.0 - liblapack >=3.9.0,<4.0a0 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.10,<3.11.0a0 - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 14342308 - timestamp: 1720324268717 + - pkg:pypi/scipy?source=hash-mapping + size: 14146255 + timestamp: 1729481983023 - kind: conda name: scipy - version: 1.14.0 - build: py310h93e2701_1 + version: 1.14.1 + build: py310hfcf56fc_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py310h93e2701_1.conda - sha256: 6752b190d2bc4805a17ffa92eb62743404736e4197b079f0db7d7e1d508d138e - md5: c6b2a8134aa49940afe552f69bdef957 + url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py310hfcf56fc_1.conda + sha256: df95244cd5faf7ede8560081db49892cb8ae99e202044d9eb00e4792d9d29af0 + md5: d9b1b75a227dbc42f3fe0e8bc852b805 depends: + - __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.3.0 + - libgcc >=13 + - libgfortran + - libgfortran5 >=13.3.0 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 + - libstdcxx >=13 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 16749437 - timestamp: 1720324339175 + - pkg:pypi/scipy?source=hash-mapping + size: 16856618 + timestamp: 1729481945376 - kind: conda name: scipy - version: 1.14.0 - build: py311h40a1ab3_1 + version: 1.14.1 + build: py311he9a78e4_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py311h40a1ab3_1.conda - sha256: b68a52c33bedbbdafa783d31b3f504386a517308675ed21e76479d75f304efa7 - md5: b47b90ee6bfd9bcd9cbff7be3610a732 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py311he9a78e4_1.conda + sha256: 59482b974c36c375fdfd0bc3e5a3003ea2d2ae72b64b8f3deaeef5a851dbc91d + md5: 49ba89bf4d8a995efb99517d1c7aeb1e depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - libgfortran5 >=13.2.0 + - libgcc >=13 + - libgfortran + - libgfortran5 >=13.3.0 - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=13 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 16227492 - timestamp: 1720323954067 + - pkg:pypi/scipy?source=hash-mapping + size: 17592106 + timestamp: 1729481734425 - kind: conda name: scipy - version: 1.14.0 - build: py311h517d4fd_1 + version: 1.14.1 + build: py311hf16d85f_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py311h517d4fd_1.conda - sha256: 55bb5502a4795b5b271bd3879846665ad9ac7ffeeea418ba6334accd8d5c71f4 - md5: 481fd009b2d863f526f60ca19cb7880b + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py311hf16d85f_1.conda + sha256: bd3c3ec5ba203143818fa3ca300060a459d78da566049b49ed2ef20e04ea5b96 + md5: b7c132408b0ee7408dcfa998ef6f7939 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 - - libgfortran-ng - - libgfortran5 >=12.3.0 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 17709552 - timestamp: 1720323995099 + - pkg:pypi/scipy?source=hash-mapping + size: 15858505 + timestamp: 1729482598163 - kind: conda name: scipy - version: 1.14.0 - build: py311hceeca8c_1 + version: 1.14.1 + build: py311hf1db568_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py311hceeca8c_1.conda - sha256: 1fe291622b76be350589fd806ed51e0915e5d7be678332c7bacef36347bf1480 - md5: d5884accd1a71796a6f9a59b60f814b3 + url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py311hf1db568_1.conda + sha256: 082a72e5f197aefb59e9f40176df835407e5f71ec832541ba14d4326d3686552 + md5: 1163490da89fd85d00d29b4d4be7cf0c depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libcxx >=17 - libgfortran 5.* - - libgfortran5 >=12.3.0 - libgfortran5 >=13.2.0 - liblapack >=3.9.0,<4.0a0 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 15225466 - timestamp: 1720324237608 -- kind: conda - name: scipy - version: 1.14.0 - build: py311hd4686c6_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py311hd4686c6_1.conda - sha256: 60f67658fe153e37da2bda1847eb8b5142d4ff721308f5bf80e4548fa2425b0f - md5: 46e7cf04c2a67603ff58a2d9b8ca128a - depends: - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - liblapack >=3.9.0,<4.0a0 - - numpy <2.3 - - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 16062838 - timestamp: 1720324583 + - pkg:pypi/scipy?source=hash-mapping + size: 15242433 + timestamp: 1729481958579 - kind: conda name: scipy - version: 1.14.0 - build: py312h14ffa8f_1 + version: 1.14.1 + build: py312h20deb59_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.0-py312h14ffa8f_1.conda - sha256: f07e8b093a3ee2990b373a3764a66a07af52be37a54c56040d9a30bcc68a3050 - md5: 6c8c8842ce810d963e032c6595153ef5 + url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.14.1-py312h20deb59_1.conda + sha256: 1a4d655609bad7dbdbe9f44ba37fd100d01fb8e4e7060dfaed3c4a044ab40052 + md5: c60ad657cccb6c2b97513f87ae27f47a depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libcxx >=17 - libgfortran 5.* - - libgfortran5 >=12.3.0 - libgfortran5 >=13.2.0 - liblapack >=3.9.0,<4.0a0 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 15163475 - timestamp: 1720324200776 + - pkg:pypi/scipy?source=hash-mapping + size: 15132713 + timestamp: 1729481799441 - kind: conda name: scipy - version: 1.14.0 - build: py312h1f4e10d_1 + version: 1.14.1 + build: py312h337df96_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.0-py312h1f4e10d_1.conda - sha256: e2c55a57bdac972d5f0ecae09a8a8041ee6519627231851e8edb27fd8e1a5e11 - md5: 4667a8b9e594a70eb0ef680615a4b411 + url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.14.1-py312h337df96_1.conda + sha256: d0a8b9e849ae53af5c8373d1429464e071fda3ee35accb77775757b330e0d340 + md5: 7d85322084d7262008c49c85d3079c50 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 15758479 - timestamp: 1720325181489 -- kind: conda - name: scipy - version: 1.14.0 - build: py312hb9702fa_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.14.0-py312hb9702fa_1.conda - sha256: 259651aa3966f9735aab2b3ee9c25d4fa93914484e9b757c0b6fda87bac78a0f - md5: 9899db3cf8965c3aecab3daf5227d3eb - depends: - - __osx >=10.13 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - libgfortran5 >=13.2.0 - - liblapack >=3.9.0,<4.0a0 - - numpy <2.3 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 16203819 - timestamp: 1720323983766 + - pkg:pypi/scipy?source=hash-mapping + size: 16143541 + timestamp: 1729482531384 - kind: conda name: scipy - version: 1.14.0 - build: py312hc2bc53b_1 + version: 1.14.1 + build: py312h62794b6_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.0-py312hc2bc53b_1.conda - sha256: 6bd24bc823863bb568ffe0ebdfb506d4413d94d15b478b12a0b223d9373f531e - md5: eae80145f63aa04a02dda456d4883b46 + url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py312h62794b6_1.conda + sha256: d069a64edade554261672d8febf4756aeb56a6cb44bd91844eaa944e5d9f4eb9 + md5: b43233a9e2f62fb94affe5607ea79473 depends: + - __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.3.0 + - libgcc >=13 + - libgfortran + - libgfortran5 >=13.3.0 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 + - libstdcxx >=13 - numpy <2.3 - numpy >=1.19,<3 + - numpy >=1.23.5 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/scipy?source=conda-forge-mapping - size: 17653680 - timestamp: 1720324049729 + - pkg:pypi/scipy?source=hash-mapping + size: 17622722 + timestamp: 1729481826601 - kind: conda name: secretstorage version: 3.3.3 - build: py312h7900ff3_2 - build_number: 2 + build: py312h7900ff3_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_2.conda - sha256: 0479e3f8c8e90049a6d92d4c7e67916c6d6cdafd11a1a31c54c785cce44aeb20 - md5: 39067833cbb620066d492f8bd6f11dbf + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda + sha256: c6d5d0bc7fb6cbfa3b8be8f2399a3c1308b3392a4e20bd1a0f29a828fda5ab20 + md5: 4840da9db2808db946a0d979603c6de4 depends: - cryptography - dbus - jeepney >=0.6 - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/secretstorage?source=conda-forge-mapping - size: 31766 - timestamp: 1695551875966 + - pkg:pypi/secretstorage?source=hash-mapping + size: 31601 + timestamp: 1725915741329 - kind: conda name: send2trash version: 1.8.3 @@ -34857,7 +30438,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/send2trash?source=conda-forge-mapping + - pkg:pypi/send2trash?source=hash-mapping size: 22868 timestamp: 1712585140895 - kind: conda @@ -34876,7 +30457,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/send2trash?source=conda-forge-mapping + - pkg:pypi/send2trash?source=hash-mapping size: 23165 timestamp: 1712585504123 - kind: conda @@ -34895,79 +30476,81 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/send2trash?source=conda-forge-mapping + - pkg:pypi/send2trash?source=hash-mapping size: 23319 timestamp: 1712585816346 - kind: conda name: setuptools - version: 70.1.1 + version: 75.3.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-70.1.1-pyhd8ed1ab_0.conda - sha256: 34ecbc63df6052a320838335a0e594b60050c92de79254045e52095bc27dde03 - md5: 985e9e86e1b0fc75a74a9bfab9309ef7 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + sha256: a36d020b9f32fc3f1a6488a1c4a9c13988c6468faf6895bf30ca69521a61230e + md5: 2ce9825396daf72baabaade36cee16da depends: - python >=3.8 license: MIT license_family: MIT purls: - - pkg:pypi/setuptools?source=conda-forge-mapping - size: 496940 - timestamp: 1719325175003 + - pkg:pypi/setuptools?source=hash-mapping + size: 779561 + timestamp: 1730382173961 - kind: conda name: shapely - version: 2.0.4 - build: py310h019a838_2 + version: 2.0.6 + build: py310h6b3522b_2 build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py310h019a838_2.conda - sha256: 840a510c9efb3f1b5107666b0dab9554920ceecebe330575e24994154abfb588 - md5: 562a95785a35adacf472e22b8f00dd81 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py310h6b3522b_2.conda + sha256: 34812447c29faca0b5e0682bec0eaeca5f70f89ced370d9175a8e8504bf118fb + md5: f4fd6f92dc2cb99a198e216a54dfc7cc depends: - - __glibc >=2.17,<3.0.a0 - - geos >=3.12.2,<3.12.3.0a0 - - libgcc-ng >=12 + - __osx >=11.0 + - geos >=3.13.0,<3.13.1.0a0 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 483446 - timestamp: 1720348971994 + - pkg:pypi/shapely?source=hash-mapping + size: 449516 + timestamp: 1727273686755 - kind: conda name: shapely - version: 2.0.4 - build: py310h30dc213_2 + version: 2.0.6 + build: py310had3dfd6_2 build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py310h30dc213_2.conda - sha256: 2a754ed9e6a32e497eb58b80acd69c0f5ff5a407544d7ffd7e706c1387f9a747 - md5: 2866bef6687ebddddf5a3c3fb3bce1ea + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py310had3dfd6_2.conda + sha256: f39309969c028b3b53831b4b7982d68d7de1bfdc2bf25d3330b8e4aea1494350 + md5: a4166b41e54d22e794859641b7cae2d0 depends: - - __osx >=11.0 - - geos >=3.12.2,<3.12.3.0a0 + - __glibc >=2.17,<3.0.a0 + - geos >=3.13.0,<3.13.1.0a0 + - libgcc >=13 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 448581 - timestamp: 1720349131635 + - pkg:pypi/shapely?source=hash-mapping + size: 486930 + timestamp: 1727273539386 - kind: conda name: shapely - version: 2.0.4 - build: py310ha804f92_2 + version: 2.0.6 + build: py310hde62f2e_2 build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py310ha804f92_2.conda - sha256: 1887caaade6387555ca5c49507424c20ee1a29725f04008382c5c1cd1be77c66 - md5: f22f13667b98b48781977f300bb90539 + url: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py310hde62f2e_2.conda + sha256: d147abfc8d8acfa460e5f8094a7271277255d6fb73075b38c808938f59408838 + md5: 3793f088ec82fd4194f2712643150132 depends: - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - numpy >=1.19,<3 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -34975,103 +30558,66 @@ packages: - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 451461 - timestamp: 1720349402834 -- kind: conda - name: shapely - version: 2.0.4 - build: py310hced8f6d_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py310hced8f6d_2.conda - sha256: db3e04a80601bd730373ca9caa1dfe2b2334178f2b2b10d8b72ceb094ee8f7cf - md5: 1caee276cf4a48216c08eee563d6cd67 - depends: - - __osx >=10.13 - - geos >=3.12.2,<3.12.3.0a0 - - numpy >=1.19,<3 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: BSD-3-Clause - purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 452874 - timestamp: 1720349023787 -- kind: conda - name: shapely - version: 2.0.4 - build: py311h0f19114_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py311h0f19114_2.conda - sha256: 131cf047664b514a77d9707e35f7edf2e389206b0148987bb46be74e88fc80fd - md5: 5c0f8293c7270d4e5383090c4ddc6138 - depends: - - __osx >=11.0 - - geos >=3.12.2,<3.12.3.0a0 - - numpy >=1.19,<3 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: BSD-3-Clause - purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 542881 - timestamp: 1720349111334 + - pkg:pypi/shapely?source=hash-mapping + size: 453430 + timestamp: 1727274008606 - kind: conda name: shapely - version: 2.0.4 - build: py311h5925939_2 + version: 2.0.6 + build: py311h2fdb869_2 build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py311h5925939_2.conda - sha256: 723e0dac379d526856747988ed97330557f01310c68aac803ee3b6ae3780b7bb - md5: eaebac048378462f21e0f8737cf05496 + url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py311h2fdb869_2.conda + sha256: c09f263d503aa59d9bb31425c175bd202917669d1047f830942407b23de231ab + md5: 4c78235905053663d1c9e23df3f11b65 depends: - __glibc >=2.17,<3.0.a0 - - geos >=3.12.2,<3.12.3.0a0 - - libgcc-ng >=12 + - geos >=3.13.0,<3.13.1.0a0 + - libgcc >=13 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 576047 - timestamp: 1720349045734 + - pkg:pypi/shapely?source=hash-mapping + size: 581316 + timestamp: 1727273591182 - kind: conda name: shapely - version: 2.0.4 - build: py311h85698fe_2 + version: 2.0.6 + build: py311hac502b4_2 build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py311h85698fe_2.conda - sha256: 308f82f9a09529b1b24b8bf288d46cae9b71704a29eaa2398df3bd8d0d7d57a2 - md5: b3cf847ce45f5ddea8b4410c20d3f01e + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py311hac502b4_2.conda + sha256: ce20ddfb0c8c96eebf3123d5c56e6d32c56b01650eb4b0da86603dad7b0bbf32 + md5: b3088a6bbd05fb8481257a97cbc65b48 depends: - - __osx >=10.13 - - geos >=3.12.2,<3.12.3.0a0 + - __osx >=11.0 + - geos >=3.13.0,<3.13.1.0a0 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 546059 - timestamp: 1720349099959 + - pkg:pypi/shapely?source=hash-mapping + size: 543087 + timestamp: 1727273733033 - kind: conda name: shapely - version: 2.0.4 - build: py311hf837ac7_2 + version: 2.0.6 + build: py311hd54bd37_2 build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py311hf837ac7_2.conda - sha256: 53e9ccc308a78407277895b10bf76e67349291680f3f3aefb8751f2560dc7b59 - md5: 5f81cb18fceae50393e5638ee3e8c3cb + url: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py311hd54bd37_2.conda + sha256: 7861137aee7b42c15fdbfed908e25285b2672a5c060b40891624d036bdbc1ec2 + md5: b38f0e907cf3431ea635f1a5d871a85e depends: - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - numpy >=1.19,<3 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -35079,184 +30625,95 @@ packages: - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 546585 - timestamp: 1720349402830 -- kind: conda - name: shapely - version: 2.0.4 - build: py312h3a88d77_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.4-py312h3a88d77_2.conda - sha256: 0927e223051b8d3aed565b996f2def72c6f63e4d97d6de7cfb59491a6e3d3fe3 - md5: 42a521ff48e08018a016736b2b68153b - depends: - - geos >=3.12.2,<3.12.3.0a0 - - numpy >=1.19,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 534774 - timestamp: 1720349402737 + - pkg:pypi/shapely?source=hash-mapping + size: 548238 + timestamp: 1727274233608 - kind: conda name: shapely - version: 2.0.4 - build: py312h594820c_2 + version: 2.0.6 + build: py312h0c580ee_2 build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.0.4-py312h594820c_2.conda - sha256: f012554e11f332d4b2f69211a93906ff5086c89b5494396a0b819ff4fee9240e - md5: e13fa66eb9191a1594a9119ebf8a729f + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/shapely-2.0.6-py312h0c580ee_2.conda + sha256: ab01255f62a50bffd1060b4eccb744812cfdb17d2e881af3d00fc94b0bb1bbe5 + md5: 47e5eab5c53da52540d057b8d73ac49a depends: - - __osx >=10.13 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 536177 - timestamp: 1720349055624 + - pkg:pypi/shapely?source=hash-mapping + size: 534759 + timestamp: 1727274378841 - kind: conda name: shapely - version: 2.0.4 - build: py312h8413631_2 + version: 2.0.6 + build: py312h391bc85_2 build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.4-py312h8413631_2.conda - sha256: 9f790057c29af8f4f15ca75eaee62c8cc3ac1563f2ce3842704160aa9b609f44 - md5: d5e52d9b72a86920926ca5fd8fec7394 + url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.6-py312h391bc85_2.conda + sha256: f8668874427468e53e08f33903c8040415807fd9efb09c92b4592778654d6027 + md5: eb476b4975ea28ac12ff469063a71f5d depends: - __glibc >=2.17,<3.0.a0 - - geos >=3.12.2,<3.12.3.0a0 - - libgcc-ng >=12 + - geos >=3.13.0,<3.13.1.0a0 + - libgcc >=13 - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 568930 - timestamp: 1720348982628 + - pkg:pypi/shapely?source=hash-mapping + size: 571386 + timestamp: 1727273539771 - kind: conda name: shapely - version: 2.0.4 - build: py312hbab3d11_2 + version: 2.0.6 + build: py312h3a6007a_2 build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.4-py312hbab3d11_2.conda - sha256: d7335c65a24ae524d8b99c3d42c692ec4578cfe5344ab4ec885f2d1ce3379769 - md5: a22715c4d2be23fc62b336c1cc27d04d + url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.6-py312h3a6007a_2.conda + sha256: d59f5dec101acd385408997d198053e4aca79193620598d37a750f6f3a9bbd9e + md5: 3461871a3cde1bf6ab3564b2dce32655 depends: - __osx >=11.0 - - geos >=3.12.2,<3.12.3.0a0 + - geos >=3.13.0,<3.13.1.0a0 - numpy >=1.19,<3 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause + license_family: BSD purls: - - pkg:pypi/shapely?source=conda-forge-mapping - size: 529880 - timestamp: 1720349089422 -- kind: conda - name: sip - version: 6.7.12 - build: py310h00ffb61_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py310h00ffb61_0.conda - sha256: 159f95e125ff48fa84cfbff8ef7ccfe14b6960df108b6c1d3472d0248bb07781 - md5: 882ddccbb0d5c47da05eb35ec4813c16 - depends: - - packaging - - ply - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - tomli - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/sip?source=conda-forge-mapping - size: 504474 - timestamp: 1697300911843 -- kind: conda - name: sip - version: 6.7.12 - build: py310hc6cd4ac_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py310hc6cd4ac_0.conda - sha256: 4c350a7ed9f5fd98196a50bc74ce1dc3bb05b0c90d17ea120439755fe2075796 - md5: 68d5bfccaba2d89a7812098dd3966d9b - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - packaging - - ply - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - tomli - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/sip?source=conda-forge-mapping - size: 494293 - timestamp: 1697300616950 -- kind: conda - name: sip - version: 6.7.12 - build: py311h12c1d0e_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py311h12c1d0e_0.conda - sha256: 1129ac093d0c04ca07603fab9dfd2ee1e9a760eb94b31450e2cef1ffffa6a31a - md5: c29f20b2860d1824535135d76d022394 - depends: - - packaging - - ply - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - tomli - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/sip?source=conda-forge-mapping - size: 595071 - timestamp: 1697300986959 + - pkg:pypi/shapely?source=hash-mapping + size: 532284 + timestamp: 1727273795356 - kind: conda - name: sip - version: 6.7.12 - build: py311hb755f60_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py311hb755f60_0.conda - sha256: 71a0ee22522b232bf50d4d03d012e53cd5d1251d09dffc1c72d7c33a1086fe6f - md5: 02336abab4cb5dd794010ef53c54bd09 + name: shellingham + version: 1.5.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + sha256: 3c49a0a101c41b7cf6ac05a1872d7a1f91f1b6d02eecb4a36b605a19517862bb + md5: d08db09a552699ee9e7eec56b4eb3899 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - packaging - - ply - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - tomli - license: GPL-3.0-only - license_family: GPL + - python >=3.7 + license: MIT + license_family: MIT purls: - - pkg:pypi/sip?source=conda-forge-mapping - size: 585197 - timestamp: 1697300605264 + - pkg:pypi/shellingham?source=hash-mapping + size: 14568 + timestamp: 1698144516278 - kind: conda name: sip version: 6.7.12 @@ -35276,31 +30733,9 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/sip?source=conda-forge-mapping + - pkg:pypi/sip?source=hash-mapping size: 576283 timestamp: 1697300599736 -- kind: conda - name: sip - version: 6.7.12 - build: py312h444b7ae_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/sip-6.7.12-py312h444b7ae_0.conda - sha256: 5f3ec11519584451972c5c1f4997fee07851cea5150965439f61a986a90e22c6 - md5: 9c576e4025eb39cadac5b418d6203d38 - depends: - - __osx >=10.9 - - libcxx >=16.0.6 - - packaging - - ply - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - tomli - license: GPL-3.0-only - license_family: GPL - purls: - - pkg:pypi/sip?source=conda-forge-mapping - size: 570070 - timestamp: 1697300788761 - kind: conda name: sip version: 6.7.12 @@ -35321,7 +30756,7 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/sip?source=conda-forge-mapping + - pkg:pypi/sip?source=hash-mapping size: 589657 timestamp: 1697301028797 - kind: conda @@ -35344,7 +30779,7 @@ packages: license: GPL-3.0-only license_family: GPL purls: - - pkg:pypi/sip?source=conda-forge-mapping + - pkg:pypi/sip?source=hash-mapping size: 565794 timestamp: 1697300818082 - kind: conda @@ -35361,7 +30796,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/six?source=conda-forge-mapping + - pkg:pypi/six?source=hash-mapping size: 14259 timestamp: 1620240338595 - kind: conda @@ -35413,22 +30848,6 @@ packages: purls: [] size: 35708 timestamp: 1720003794374 -- kind: conda - name: snappy - version: 1.2.1 - build: he1e6707_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.1-he1e6707_0.conda - sha256: a979319cd4916f0e7450aa92bb3cf4c2518afa80be50de99f31d075e693a6dd9 - md5: ddceef5df973c8ff7d6b32353c0cb358 - depends: - - __osx >=10.13 - - libcxx >=16 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 37036 - timestamp: 1720003862906 - kind: conda name: sniffio version: 1.3.1 @@ -35443,7 +30862,7 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/sniffio?source=conda-forge-mapping + - pkg:pypi/sniffio?source=hash-mapping size: 15064 timestamp: 1708953086199 - kind: conda @@ -35460,7 +30879,7 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/sortedcontainers?source=conda-forge-mapping + - pkg:pypi/sortedcontainers?source=hash-mapping size: 26314 timestamp: 1621217159824 - kind: conda @@ -35478,76 +30897,65 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/soupsieve?source=conda-forge-mapping + - pkg:pypi/soupsieve?source=hash-mapping size: 36754 timestamp: 1693929424267 - kind: conda name: spdlog - version: 1.13.0 - build: h1a4aec9_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/spdlog-1.13.0-h1a4aec9_0.conda - sha256: 2f1a981d8d1e06511081ef10068c083965bf1ea0fe7546f8a5f1e37a2982110a - md5: 2288eabc17f9fec9b64dac2cfe07b8ac - depends: - - fmt >=10.2.1,<11.0a0 - - libcxx >=16 - license: MIT - license_family: MIT - purls: [] - size: 162075 - timestamp: 1713902597770 -- kind: conda - name: spdlog - version: 1.13.0 - build: h5fcca99_0 + version: 1.14.1 + build: h6d8af72_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.13.0-h5fcca99_0.conda - sha256: 161ad4bb6de140ca00024dd5004b4ab99189767df7f83362d6c252c03213e29a - md5: 1907a70a6494b95f3961417e7a9564d2 + url: https://conda.anaconda.org/conda-forge/osx-arm64/spdlog-1.14.1-h6d8af72_1.conda + sha256: f981d4f3555125cb913be49397892f43c6b747705c0d72cba3676f7d98709f92 + md5: 4af518b01539da8e4af17aee5fb92639 depends: - - fmt >=10.2.1,<11.0a0 + - __osx >=11.0 + - fmt >=11.0.1,<12.0a0 - libcxx >=16 license: MIT license_family: MIT purls: [] - size: 156731 - timestamp: 1713902551224 + size: 164011 + timestamp: 1722238482313 - kind: conda name: spdlog - version: 1.13.0 - build: h64d2f7d_0 + version: 1.14.1 + build: h9f2357e_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.13.0-h64d2f7d_0.conda - sha256: 7c5c8d6e2df300f7887e5488a21b11d854ffbc51a1b149af4164d6cbd225fd7a - md5: e21d3d1aef3973f78ee161bb053c5922 + url: https://conda.anaconda.org/conda-forge/win-64/spdlog-1.14.1-h9f2357e_1.conda + sha256: 3ed3e9aaeb6255914472109a6d25d5119eb196c8d6cc2ec732cffe79ccc789bf + md5: b9bff07144f2be7ee32f0b83a79ef21d depends: - - fmt >=10.2.1,<11.0a0 + - fmt >=11.0.1,<12.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 161230 - timestamp: 1713902489730 + size: 169120 + timestamp: 1722238639391 - kind: conda name: spdlog - version: 1.13.0 - build: hd2e6256_0 + version: 1.14.1 + build: hed91bc2_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.13.0-hd2e6256_0.conda - sha256: 2027b971e83a9c9d292c12880269fe08e782fe9b15b93b5a3ddc8697116e6750 - md5: 18f9348f064632785d54dbd1db9344bb + url: https://conda.anaconda.org/conda-forge/linux-64/spdlog-1.14.1-hed91bc2_1.conda + sha256: 0c604fe3f78ddb2b612841722bd9b5db24d0484e30ced89fac78c0a3f524dfd6 + md5: 909188c8979846bac8e586908cf1ca6a depends: - - fmt >=10.2.1,<11.0a0 + - __glibc >=2.17,<3.0.a0 + - fmt >=11.0.1,<12.0a0 - libgcc-ng >=12 - libstdcxx-ng >=12 license: MIT license_family: MIT purls: [] - size: 188328 - timestamp: 1713902039030 + size: 195665 + timestamp: 1722238295031 - kind: conda name: sphobjinv version: 2.3.1.1 @@ -35565,80 +30973,66 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/sphobjinv?source=conda-forge-mapping + - pkg:pypi/sphobjinv?source=hash-mapping size: 69178 timestamp: 1716387030819 - kind: conda name: sqlite - version: 3.46.0 - build: h2466b09_0 + version: 3.47.0 + build: h2466b09_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.46.0-h2466b09_0.conda - sha256: 204edea00bb813d1e3da31dcd8caf1cb355ded08be3065ca53dea066bf75b827 - md5: f60e557d64002fe9955b929226adf81d + url: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.47.0-h2466b09_1.conda + sha256: bc2a5ab86dbe2352790d1742265b3b6ae9a7aa5cf80345a37f26ec3e04cf9b4a + md5: 93084a590e8b7d2b62b7d5b1763d5bde depends: - - libsqlite 3.46.0 h2466b09_0 + - libsqlite 3.47.0 h2466b09_1 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Unlicense purls: [] - size: 885699 - timestamp: 1718051144579 + size: 914686 + timestamp: 1730208443157 - kind: conda name: sqlite - version: 3.46.0 - build: h28673e1_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.46.0-h28673e1_0.conda - sha256: 7d868d34348615450c43cb4737b44987a0e45fdf4759502b323494dc8c931409 - md5: b76e50276ebb3131cb84aac8123ca75d - depends: - - __osx >=10.13 - - libsqlite 3.46.0 h1b8f9f3_0 - - libzlib >=1.2.13,<2.0a0 + version: 3.47.0 + build: h9eae976_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.47.0-h9eae976_1.conda + sha256: 8ea1a085fa95d806301aeec0df6985c3ad0852a9a46aa62dd737d228c7862f9f + md5: 53abf1ef70b9ae213b22caa5350f97a9 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libsqlite 3.47.0 hadc24fc_1 + - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - readline >=8.2,<9.0a0 license: Unlicense purls: [] - size: 912413 - timestamp: 1718050767696 + size: 883666 + timestamp: 1730208056779 - kind: conda name: sqlite - version: 3.46.0 - build: h5838104_0 + version: 3.47.0 + build: hcd14bea_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.46.0-h5838104_0.conda - sha256: e13b719f70b3a20f40b59f814d32483ae8cd95fef83224127b10091828026f7d - md5: 05c5dc8cd793dcfc5849d0569da9b175 + url: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.47.0-hcd14bea_1.conda + sha256: f9975914a78d600182ec68c963a98c6c0a07eda9b9eee7d6e8bdac9310858ad2 + md5: ca42c22ab1d212895e58fee9ba32875f depends: - __osx >=11.0 - - libsqlite 3.46.0 hfb93653_0 - - libzlib >=1.2.13,<2.0a0 - - ncurses >=6.5,<7.0a0 - - readline >=8.2,<9.0a0 - license: Unlicense - purls: [] - size: 822635 - timestamp: 1718050678797 -- kind: conda - name: sqlite - version: 3.46.0 - build: h6d4b2fc_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.46.0-h6d4b2fc_0.conda - sha256: e849d576e52bf3e6fc5786f89b7d76978f2e2438587826c95570324cb572e52b - md5: 77ea8dff5cf8550cc8f5629a6af56323 - depends: - - libgcc-ng >=12 - - libsqlite 3.46.0 hde9e2c9_0 - - libzlib >=1.2.13,<2.0a0 + - libsqlite 3.47.0 hbaaea75_1 + - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - readline >=8.2,<9.0a0 license: Unlicense purls: [] - size: 860352 - timestamp: 1718050658212 + size: 840459 + timestamp: 1730208324005 - kind: conda name: stack_data version: 0.6.2 @@ -35656,106 +31050,76 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/stack-data?source=conda-forge-mapping + - pkg:pypi/stack-data?source=hash-mapping size: 26205 timestamp: 1669632203115 - kind: conda name: suitesparse - version: 7.7.0 - build: hd2b2131_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/suitesparse-7.7.0-hd2b2131_1.conda - sha256: edf6432f18e07ddc44b381995c3a2ab8d259b4b9d537b599c5e2809c38155908 - md5: d27d9c799e2a0869b92c8b91f86fd36b - depends: - - __osx >=10.13 - - gmp >=6.3.0,<7.0a0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - libgfortran5 >=13.2.0 - - liblapack >=3.9.0,<4.0a0 - - metis >=5.1.0,<5.1.1.0a0 - - mpfr >=4.2.1,<5.0a0 - - tbb >=2021.12.0 - license: LGPL-2.1-or-later AND BSD-3-Clause AND GPL-2.0-or-later AND Apache-2.0 - purls: [] - size: 1911856 - timestamp: 1715355113338 -- kind: conda - name: suitesparse - version: 7.7.0 - build: hf4753ba_1 - build_number: 1 + version: 7.8.3 + build: hb42a789_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/suitesparse-7.7.0-hf4753ba_1.conda - sha256: c0ab4b60d2b8411e085d665d10bbb27701b5767d34880226acd9c45d3480c178 - md5: 5937a97231967e642b1f865fc2181fee + url: https://conda.anaconda.org/conda-forge/linux-64/suitesparse-7.8.3-hb42a789_0.conda + sha256: c89f67e032e39dea769c1ebf7383641b776aee2ab42878fbf5745fa300576cb1 + md5: 216922e19843f5662a2b260f905640cb depends: + - __glibc >=2.17,<3.0.a0 - gmp >=6.3.0,<7.0a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 - - libgfortran-ng - - libgfortran5 >=12.3.0 + - libgcc >=13 + - libgfortran + - libgfortran5 >=13.3.0 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 + - libstdcxx >=13 - metis >=5.1.0,<5.1.1.0a0 - mpfr >=4.2.1,<5.0a0 - - tbb >=2021.12.0 + - tbb >=2021.13.0 license: LGPL-2.1-or-later AND BSD-3-Clause AND GPL-2.0-or-later AND Apache-2.0 purls: [] - size: 1805278 - timestamp: 1715354328972 + size: 1838665 + timestamp: 1730383035378 - kind: conda name: suitesparse - version: 7.7.0 - build: hf6fcff2_1 - build_number: 1 + version: 7.8.3 + build: hcefb574_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/suitesparse-7.7.0-hf6fcff2_1.conda - sha256: 334a749508896deab3a3e92e61afd76ddac775e1f11ed9c08728a75f7173e67c - md5: 47112a1d681f75116124518210338225 + url: https://conda.anaconda.org/conda-forge/osx-arm64/suitesparse-7.8.3-hcefb574_0.conda + sha256: d4459ec19fd92676e3fe2a53636c6f26ea56593d2a2266d72f0ad0505f8c7718 + md5: 4cbbd1ae8e2e74f2480de640c12941a2 depends: - __osx >=11.0 - gmp >=6.3.0,<7.0a0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libcxx >=17 - libgfortran 5.* - - libgfortran5 >=12.3.0 - libgfortran5 >=13.2.0 - liblapack >=3.9.0,<4.0a0 - metis >=5.1.0,<5.1.1.0a0 - mpfr >=4.2.1,<5.0a0 - - tbb >=2021.12.0 + - tbb >=2021.13.0 license: LGPL-2.1-or-later AND BSD-3-Clause AND GPL-2.0-or-later AND Apache-2.0 purls: [] - size: 1346092 - timestamp: 1715354989398 + size: 1355028 + timestamp: 1730383410695 - kind: conda name: sysroot_linux-64 - version: '2.28' - build: he073ed8_2 - build_number: 2 + version: '2.17' + build: h4a8ded7_18 + build_number: 18 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-he073ed8_2.conda - sha256: 4d22ee85398cef1da379ef913a6232bafc0c412b1b4ce8ed9c5fd9d8c6d9d3a8 - md5: 32efe63453c3561a03e915a7829c2bb1 + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_18.conda + sha256: 23c7ab371c1b74d01a187e05aa7240e3f5654599e364a9adff7f0b02e26f471f + md5: 0ea96f90a10838f58412aa84fdd9df09 depends: - - _sysroot_linux-64_curr_repodata_hack 3.* - - kernel-headers_linux-64 4.18.0 he073ed8_2 - track_features: - - sysroot_linux-64_2.28 sysroot_linux-64_2.28_feature_2 + - kernel-headers_linux-64 3.10.0 he073ed8_18 + - tzdata license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 license_family: GPL purls: [] - size: 26421592 - timestamp: 1711086612058 + size: 15500960 + timestamp: 1729794510631 - kind: conda name: tabulate version: 0.9.0 @@ -35771,83 +31135,61 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/tabulate?source=conda-forge-mapping + - pkg:pypi/tabulate?source=hash-mapping size: 35912 timestamp: 1665138565317 - kind: conda name: tbb - version: 2021.12.0 - build: h3c5361c_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/tbb-2021.12.0-h3c5361c_2.conda - sha256: 73948d253126d6845906ace12a8e8a5f83e3f29f571db92171c4c0b9389248f1 - md5: 9baedc6436ec835bca3aabf06e971687 + version: 2021.7.0 + build: h91493d7_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.7.0-h91493d7_0.tar.bz2 + sha256: c3d607499a6e097f4b8b27048ee7166319fd3dfe98aea9e69a69a3d087b986e3 + md5: f57be598137919e4f7e7d159960d66a1 depends: - - __osx >=10.13 - - libcxx >=16 - - libhwloc >=2.11.0,<2.11.1.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 license: Apache-2.0 license_family: APACHE purls: [] - size: 172329 - timestamp: 1720077246862 + size: 178574 + timestamp: 1668617991077 - kind: conda name: tbb - version: 2021.12.0 - build: h420ef59_2 - build_number: 2 + version: 2022.0.0 + build: h0cbf7ec_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2021.12.0-h420ef59_2.conda - sha256: ba8068861d7f264c18660169f52412a281a879162e2a5ddca9341e1330791ffb - md5: d1bdd77599a20c4118b423d5b055f7ce + url: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.0.0-h0cbf7ec_0.conda + sha256: f436517a16494c93e2d779b9cdb91e8f4a9b48cef67fe20a4e75e494c8631dff + md5: 44ba5ad9819821b9b176ba2bb937a79c depends: - __osx >=11.0 - - libcxx >=16 - - libhwloc >=2.11.0,<2.11.1.0a0 + - libcxx >=17 + - libhwloc >=2.11.2,<2.11.3.0a0 license: Apache-2.0 license_family: APACHE purls: [] - size: 128214 - timestamp: 1720077320914 + size: 117825 + timestamp: 1730477755617 - kind: conda name: tbb - version: 2021.12.0 - build: h434a139_2 - build_number: 2 + version: 2022.0.0 + build: hceb3a55_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.12.0-h434a139_2.conda - sha256: 2a988df299ef2ac408668ad5ec00b69da100d6b5411512e36249444304a227b8 - md5: 9e78ded802220ee1f67c908cb2ef188f + url: https://conda.anaconda.org/conda-forge/linux-64/tbb-2022.0.0-hceb3a55_0.conda + sha256: 2f7931cad1682d8b6bdc90dbb51edf01f6f5c33fc00392c396d63e24437df1e8 + md5: 79f0161f3ca73804315ca980f65d9c60 depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - libhwloc >=2.11.0,<2.11.1.0a0 - - libstdcxx-ng >=12 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 192814 - timestamp: 1720077064657 -- kind: conda - name: tbb - version: 2021.12.0 - build: hc790b64_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.12.0-hc790b64_2.conda - sha256: e41d0d07bbabc0144292fd28e871f54828eaa10da27e50c8b8cf5dad9a2f3a92 - md5: 3d6620dda0ba48d457fb722adfad5963 - depends: - - libhwloc >=2.11.0,<2.11.1.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - libgcc >=13 + - libhwloc >=2.11.2,<2.11.3.0a0 + - libstdcxx >=13 license: Apache-2.0 license_family: APACHE purls: [] - size: 161756 - timestamp: 1720077659730 + size: 178584 + timestamp: 1730477634943 - kind: conda name: tblib version: 3.0.0 @@ -35862,25 +31204,43 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/tblib?source=conda-forge-mapping + - pkg:pypi/tblib?source=hash-mapping size: 17386 timestamp: 1702066480361 +- kind: conda + name: teamcity-messages + version: '1.32' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/teamcity-messages-1.32-pyhd8ed1ab_0.conda + sha256: 004805489f764dbeff2fa4e13aa68fb8218f488060a1acdfa5355053dff5b271 + md5: afd853cdbc44a82a4530af861332a594 + depends: + - python >=3.6 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/teamcity-messages?source=hash-mapping + size: 32473 + timestamp: 1672919644484 - kind: conda name: tenacity - version: 8.5.0 + version: 9.0.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tenacity-8.5.0-pyhd8ed1ab_0.conda - sha256: 6da0893b9c64ee862518a9a654f5c133edd0236db19cb2877117275f22b8f955 - md5: 354cbc1244395cabbaec2617906d3a27 + url: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.0.0-pyhd8ed1ab_0.conda + sha256: 0d33171e1d303b57867f0cfcffb8a35031700acb3c52b1862064d8f4e1085538 + md5: 42af51ad3b654ece73572628ad2882ae depends: - python >=3.8 license: Apache-2.0 + license_family: APACHE purls: - - pkg:pypi/tenacity?source=conda-forge-mapping - size: 24731 - timestamp: 1720351866900 + - pkg:pypi/tenacity?source=hash-mapping + size: 24683 + timestamp: 1722278974784 - kind: conda name: terminado version: 0.18.1 @@ -35898,7 +31258,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/terminado?source=conda-forge-mapping + - pkg:pypi/terminado?source=hash-mapping size: 22452 timestamp: 1710262728753 - kind: conda @@ -35918,7 +31278,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/terminado?source=conda-forge-mapping + - pkg:pypi/terminado?source=hash-mapping size: 22717 timestamp: 1710265922593 - kind: conda @@ -35938,7 +31298,7 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/terminado?source=conda-forge-mapping + - pkg:pypi/terminado?source=hash-mapping size: 22883 timestamp: 1710262943966 - kind: conda @@ -35955,38 +31315,38 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/threadpoolctl?source=conda-forge-mapping + - pkg:pypi/threadpoolctl?source=hash-mapping size: 23548 timestamp: 1714400228771 - kind: conda name: tiledb - version: 2.24.2 - build: h2a0bfd3_1 - build_number: 1 + version: 2.25.0 + build: h2e08f1e_20 + build_number: 20 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.24.2-h2a0bfd3_1.conda - sha256: a0c5663c7146dc1534f4a8445dadd7dbb1a47d606cab299179df45f375ddf629 - md5: 1d5e30c9b7050926508b1ff563f2f6ff + url: https://conda.anaconda.org/conda-forge/win-64/tiledb-2.25.0-h2e08f1e_20.conda + sha256: 0969144ef1bc2402ce322ddc909da254054c3d3a2f0541d4aef48feaea3dfb8a + md5: 38fbdbd2c5fee936856ba455b6ad1dbf depends: - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-identity-cpp >=1.8.0,<1.8.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-identity-cpp >=1.10.0,<1.10.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 - bzip2 >=1.0.8,<2.0a0 - - fmt >=10.2.1,<11.0a0 + - fmt >=11.0.2,<12.0a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 + - libabseil >=20240722.0,<20240723.0a0 - libcrc32c >=1.1.2,<1.2.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 - libwebp-base >=1.4.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - openssl >=3.3.1,<4.0a0 - - spdlog >=1.13.0,<1.14.0a0 + - openssl >=3.3.2,<4.0a0 + - spdlog >=1.14.1,<1.15.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.40.33810 @@ -35994,151 +31354,99 @@ packages: license: MIT license_family: MIT purls: [] - size: 3125029 - timestamp: 1720445540129 -- kind: conda - name: tiledb - version: 2.24.2 - build: h493d6f2_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/tiledb-2.24.2-h493d6f2_1.conda - sha256: 081fb092a0a086a6b89558e2555da29857f144c358f5e130c06a149ce3c604fb - md5: 7937e9373961828fee68e8b8d6f0ed44 - depends: - - __osx >=10.13 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-identity-cpp >=1.8.0,<1.8.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 - - bzip2 >=1.0.8,<2.0a0 - - fmt >=10.2.1,<11.0a0 - - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 - - libwebp-base >=1.4.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - lz4-c >=1.9.3,<1.10.0a0 - - openssl >=3.3.1,<4.0a0 - - spdlog >=1.13.0,<1.14.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: MIT - license_family: MIT - purls: [] - size: 3943540 - timestamp: 1720445848273 + size: 3109816 + timestamp: 1729855179806 - kind: conda name: tiledb - version: 2.24.2 - build: h577ba9b_1 - build_number: 1 + version: 2.25.0 + build: h66ea1f1_20 + build_number: 20 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.24.2-h577ba9b_1.conda - sha256: 8139548cb498ade8f4718747f77ef2799bde5c79478714ea3791b6ad7051e4bc - md5: 5a5d39635c16bd401fc630889a8b13ed + url: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.25.0-h66ea1f1_20.conda + sha256: 303b78255215d19ab38e5bc63ce1117a8b420676613c293c549e23abe63738bc + md5: 3428ef4358eee5d2d9b31dcaffa50e0b depends: - __osx >=11.0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-identity-cpp >=1.8.0,<1.8.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-identity-cpp >=1.10.0,<1.10.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 - bzip2 >=1.0.8,<2.0a0 - - fmt >=10.2.1,<11.0a0 + - fmt >=11.0.2,<12.0a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libcurl >=8.8.0,<9.0a0 - - libcxx >=16 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 + - libabseil >=20240722.0,<20240723.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 - libwebp-base >=1.4.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - openssl >=3.3.1,<4.0a0 - - spdlog >=1.13.0,<1.14.0a0 + - openssl >=3.3.2,<4.0a0 + - spdlog >=1.14.1,<1.15.0a0 - zstd >=1.5.6,<1.6.0a0 license: MIT license_family: MIT purls: [] - size: 3543488 - timestamp: 1720445672116 + size: 3599028 + timestamp: 1729854830462 - kind: conda name: tiledb - version: 2.24.2 - build: h9260d03_1 - build_number: 1 + version: 2.25.0 + build: hd64914e_20 + build_number: 20 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.24.2-h9260d03_1.conda - sha256: 80d34c15146759cf36a086a2135ba151fcbc188b707b07d375674c3ebd01941a - md5: 4b55dfbdc38db6488f3496f7175f8f10 + url: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.25.0-hd64914e_20.conda + sha256: 90331325fdc452c9dc9d2b7b9f30a70f9dbc44e6aa7a1a6daced32457788c5f4 + md5: dd51d2b863ea560ba88380fda5f0b3ec depends: - __glibc >=2.17,<3.0.a0 - - aws-crt-cpp >=0.27.2,<0.27.3.0a0 - - aws-sdk-cpp >=1.11.329,<1.11.330.0a0 - - azure-core-cpp >=1.12.0,<1.12.1.0a0 - - azure-identity-cpp >=1.8.0,<1.8.1.0a0 - - azure-storage-blobs-cpp >=12.11.0,<12.11.1.0a0 - - azure-storage-common-cpp >=12.6.0,<12.6.1.0a0 + - aws-crt-cpp >=0.29.0,<0.29.1.0a0 + - aws-sdk-cpp >=1.11.407,<1.11.408.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-identity-cpp >=1.10.0,<1.10.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 - bzip2 >=1.0.8,<2.0a0 - - fmt >=10.2.1,<11.0a0 + - fmt >=11.0.2,<12.0a0 - libabseil * cxx17* - - libabseil >=20240116.2,<20240117.0a0 - - libcurl >=8.8.0,<9.0a0 - - libgcc-ng >=12 - - libgoogle-cloud >=2.26.0,<2.27.0a0 - - libgoogle-cloud-storage >=2.26.0,<2.27.0a0 - - libstdcxx-ng >=12 + - libabseil >=20240722.0,<20240723.0a0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libgoogle-cloud >=2.30.0,<2.31.0a0 + - libgoogle-cloud-storage >=2.30.0,<2.31.0a0 + - libstdcxx >=13 - libwebp-base >=1.4.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - lz4-c >=1.9.3,<1.10.0a0 - - openssl >=3.3.1,<4.0a0 - - spdlog >=1.13.0,<1.14.0a0 + - openssl >=3.3.2,<4.0a0 + - spdlog >=1.14.1,<1.15.0a0 - zstd >=1.5.6,<1.6.0a0 license: MIT license_family: MIT purls: [] - size: 4351964 - timestamp: 1720445145779 + size: 4532179 + timestamp: 1729855190171 - kind: conda name: tinycss2 - version: 1.3.0 + version: 1.4.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.3.0-pyhd8ed1ab_0.conda - sha256: bc55e5899e66805589c02061e315bfc23ae6cc2f2811f5cc13fb189a5ed9d90f - md5: 8662629d9a05f9cff364e31ca106c1ac + url: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.0-pyhd8ed1ab_0.conda + sha256: cad582d6f978276522f84bd209a5ddac824742fe2d452af6acf900f8650a73a2 + md5: f1acf5fdefa8300de697982bcb1761c9 depends: - python >=3.5 - webencodings >=0.4 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/tinycss2?source=conda-forge-mapping - size: 25405 - timestamp: 1713975078735 -- kind: conda - name: tk - version: 8.6.13 - build: h1abcd95_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - sha256: 30412b2e9de4ff82d8c2a7e5d06a15f4f4fef1809a72138b6ccb53a33b26faf5 - md5: bf830ba5afc507c6232d4ef0fb1a882d - depends: - - libzlib >=1.2.13,<2.0.0a0 - license: TCL - license_family: BSD - purls: [] - size: 3270220 - timestamp: 1699202389792 + - pkg:pypi/tinycss2?source=hash-mapping + size: 28285 + timestamp: 1729802975370 - kind: conda name: tk version: 8.6.13 @@ -36204,105 +31512,126 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/toml?source=conda-forge-mapping + - pkg:pypi/toml?source=hash-mapping size: 18433 timestamp: 1604308660817 - kind: conda name: tomli - version: 2.0.1 + version: 2.0.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f - md5: 5844808ffab9ebdb694585b50ba02a96 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda + sha256: 5e742ba856168b606ac3c814d247657b1c33b8042371f1a08000bdc5075bc0cc + md5: e977934e00b355ff55ed154904044727 depends: - python >=3.7 license: MIT license_family: MIT purls: - - pkg:pypi/tomli?source=conda-forge-mapping - size: 15940 - timestamp: 1644342331069 + - pkg:pypi/tomli?source=hash-mapping + size: 18203 + timestamp: 1727974767524 - kind: conda name: tomli-w - version: 1.0.0 + version: 1.1.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.0.0-pyhd8ed1ab_0.tar.bz2 - sha256: efb5f78a224c4bb14aab04690c9912256ea12c3a8b8413e60167573ce1282b02 - md5: 73506d1ab4202481841c68c169b7ef6c + url: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + sha256: 25b88bb2c4e79be642d8e5b5738781404055cd596403a20511e6fa30f0c71585 + md5: 2c5eb5b3a0fd2c4787d8162f57da2a20 depends: - - python >=3.7 + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli-w?source=hash-mapping + size: 12323 + timestamp: 1728405537678 +- kind: conda + name: tomlkit + version: 0.13.2 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + sha256: 2ccfe8dafdc1f1af944bca6bdf28fa97b5fa6125d84b8895a4e918a020853c12 + md5: 0062a5f3347733f67b0f33ca48cc21dd + depends: + - python >=3.8 license: MIT license_family: MIT purls: - - pkg:pypi/tomli-w?source=conda-forge-mapping - size: 10052 - timestamp: 1638551820635 + - pkg:pypi/tomlkit?source=hash-mapping + size: 37279 + timestamp: 1723631592742 - kind: conda name: toolz - version: 0.12.1 + version: 1.0.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda - sha256: 22b0a9790317526e08609d5dfdd828210ae89e6d444a9e954855fc29012e90c6 - md5: 2fcb582444635e2c402e8569bb94e039 + url: https://conda.anaconda.org/conda-forge/noarch/toolz-1.0.0-pyhd8ed1ab_0.conda + sha256: 6371cf3cf8292f2abdcc2bf783d6e70203d72f8ff0c1625f55a486711e276c75 + md5: 34feccdd4177f2d3d53c73fc44fd9a37 depends: - - python >=3.7 + - python >=3.8 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/toolz?source=conda-forge-mapping - size: 52358 - timestamp: 1706112720607 + - pkg:pypi/toolz?source=hash-mapping + size: 52623 + timestamp: 1728059623353 - kind: conda name: tornado version: 6.4.1 - build: py310h936d840_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py310h936d840_0.conda - sha256: 359da31bfb4bce1befbb2c60f0c59e93b2b10f89101a488a418d88b8cf963d84 - md5: ccb739e6a032172c69acc0efe05e4ac6 + build: py310h493c2e1_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py310h493c2e1_1.conda + sha256: 266bce81b5753133ebbad3e90cdb6158dfca623db456d066e83da75a6ae530b1 + md5: 1be7b2c3a828f393e5c5b258e7a9de66 depends: - - __osx >=10.13 + - __osx >=11.0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 651964 - timestamp: 1717722798715 + - pkg:pypi/tornado?source=hash-mapping + size: 653350 + timestamp: 1724956638966 - kind: conda name: tornado version: 6.4.1 - build: py310ha6dd24b_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py310ha6dd24b_0.conda - sha256: 3f8b58e663d615e80c41fe278a5866a4ed7da07a6bddd510996cf9dfb0b2c5cb - md5: f04ca9be818f2673dce1a7e572872979 + build: py310ha75aee5_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py310ha75aee5_1.conda + sha256: db63e4d301ae8241343a9e04321a0a8d23e214460715faea029dd199e6f5dcc5 + md5: 260c9ae4b2d9af7d5cce7b721cba6132 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 651957 - timestamp: 1717722900580 + - pkg:pypi/tornado?source=hash-mapping + size: 650505 + timestamp: 1724960822818 - kind: conda name: tornado version: 6.4.1 - build: py310ha8f682b_0 + build: py310ha8f682b_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py310ha8f682b_0.conda - sha256: 3835993b73c51cc2182e6db7e02ff8e789a15a6c99d58b3b5201fd9b2d7819df - md5: 3a4766af5964f09e907838d42447c098 + url: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py310ha8f682b_1.conda + sha256: fada61447a6dd6a8abd3f2f127888d1cffab9be24265511b9477fe88fc81ba66 + md5: 975e757765691110c1785f97bbe73c32 depends: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 @@ -36312,71 +31641,18 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 653198 - timestamp: 1717723134108 -- kind: conda - name: tornado - version: 6.4.1 - build: py310hc51659f_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py310hc51659f_0.conda - sha256: a7475a82b31221c327ab9892b63a8da97d48572af6c11d894746600af31ffbc5 - md5: c5a6aac4a1e0989986d9f06b3c2be2a0 - depends: - - libgcc-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 652717 - timestamp: 1717722929287 -- kind: conda - name: tornado - version: 6.4.1 - build: py311h331c9d8_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py311h331c9d8_0.conda - sha256: 753f5496ba6a69fc52bd58e55296d789b964d1ba1539420bfc10bcd0e1d016fb - md5: e29e451c96bf8e81a5760b7565c6ed2c - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 856038 - timestamp: 1717722984124 -- kind: conda - name: tornado - version: 6.4.1 - build: py311h72ae277_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py311h72ae277_0.conda - sha256: 0182804d203f702736883fd5b8a6df0ae7ef427ac0609d172b4c8e3bca8a30bd - md5: eefa3eeb81da03b9f46a2bb2a01dfef4 - depends: - - __osx >=10.13 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 859395 - timestamp: 1717722909139 + - pkg:pypi/tornado?source=hash-mapping + size: 653867 + timestamp: 1724956678451 - kind: conda name: tornado version: 6.4.1 - build: py311hd3f4193_0 + build: py311h460d6c5_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py311hd3f4193_0.conda - sha256: 4924c617390d88a6f85879b2892a42b3feeea4d1e5fb2f23b2175eeb2b41c7f2 - md5: 180f7d621916cb04e655d4eda068f4bc + url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py311h460d6c5_1.conda + sha256: bba4940ef7522c3b4ae6eacd296e5e110de3659f7e4c3654d4fc2bb213c2091c + md5: 8ba6d177509dc4fac7af09749556eed0 depends: - __osx >=11.0 - python >=3.11,<3.12.0a0 @@ -36385,57 +31661,59 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 857353 - timestamp: 1717722957594 + - pkg:pypi/tornado?source=hash-mapping + size: 859139 + timestamp: 1724956356600 - kind: conda name: tornado version: 6.4.1 - build: py311he736701_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py311he736701_0.conda - sha256: 6efb2b0eaf5063c76288d1bf1a55488e9035d86bd63380de5ed4990499ca6859 - md5: d6b9b155b10baf4ee79602a0e6b8265f + build: py311h9ecbd09_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py311h9ecbd09_1.conda + sha256: 21390d0c5708581959ebd89702433c1d06a56ddd834797a194b217f98e38df53 + md5: 616fed0b6f5c925250be779b05d1d7f7 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 860084 - timestamp: 1717723311673 + - pkg:pypi/tornado?source=hash-mapping + size: 856725 + timestamp: 1724956239832 - kind: conda name: tornado version: 6.4.1 - build: py312h4389bb4_0 + build: py311he736701_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_0.conda - sha256: 1db4650b15e902828ecc67754eb287971879401ce35437f3a8c3c3da2158af2c - md5: 00a82356b77563593acad8b86de9c5c7 + url: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py311he736701_1.conda + sha256: 8e448bc682a6540a0aadc1f821c0d60f03d70272350caa2af519316fd1753f68 + md5: f361535f90629358e3ea8f2161b239f3 depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 844267 - timestamp: 1717723122629 + - pkg:pypi/tornado?source=hash-mapping + size: 860730 + timestamp: 1724956581349 - kind: conda name: tornado version: 6.4.1 - build: py312h7e5086c_0 + build: py312h024a12e_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h7e5086c_0.conda - sha256: 7c2010a0feed6aa87154ef77cfa9088b70586a587c5079c2d2ed931cb8eed75c - md5: d16255fe62cc07ece877c4d3eac29bb4 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h024a12e_1.conda + sha256: 5eefede1d8a2f55892bc582dbcb574b1806f19bc1e3939ce56b79721b9406db7 + md5: 967bc97bb9e258993289546479af971f depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -36444,45 +31722,50 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 841859 - timestamp: 1717722940211 + - pkg:pypi/tornado?source=hash-mapping + size: 841722 + timestamp: 1724956439106 - kind: conda name: tornado version: 6.4.1 - build: py312h9a8786e_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h9a8786e_0.conda - sha256: fcf92fde5bac323921d97f8f2e66ee134ea01094f14d4e99c56f98187241c638 - md5: fd9c83fde763b494f07acee1404c280e + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.1-py312h4389bb4_1.conda + sha256: 79a4155e4700aa188d6de36ed65b2923527864ad775bb156ed0a4067619e8ee0 + md5: e278437965b2420d567ba11b579668bc depends: - - libgcc-ng >=12 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 839315 - timestamp: 1717723013620 + - pkg:pypi/tornado?source=hash-mapping + size: 841567 + timestamp: 1724956763418 - kind: conda name: tornado version: 6.4.1 - build: py312hbd25219_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.1-py312hbd25219_0.conda - sha256: efba7cd7d5c311f57fd1a658c0f8ae65f9c5f3c9c41111a689dcad45407944c8 - md5: 5a40db69b327c71511248f8186965bd3 + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h66e93f0_1.conda + sha256: c0c9cc7834e8f43702956afaa5af7b0639c4835c285108a43e6b91687ce53ab8 + md5: af648b62462794649066366af4ecd5b0 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/tornado?source=conda-forge-mapping - size: 842608 - timestamp: 1717722844100 + - pkg:pypi/tornado?source=hash-mapping + size: 837665 + timestamp: 1724956252424 - kind: conda name: traitlets version: 5.14.3 @@ -36497,26 +31780,26 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/traitlets?source=conda-forge-mapping + - pkg:pypi/traitlets?source=hash-mapping size: 110187 timestamp: 1713535244513 - kind: conda name: trove-classifiers - version: 2024.7.2 + version: 2024.10.21.16 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.7.2-pyhd8ed1ab_0.conda - sha256: ab5575f5908fcb578ecde73701e1ceb8dde708f93111b3f692c163f11bc119fc - md5: 2b9f52c7ecb8d017e50f91852aead307 + url: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + sha256: 591e4ffdc95660b9e596c15b65cad35a70b36235f02dbd089ccc198dd5af0e71 + md5: 501f6d3288160a31d99a2f1321e77393 depends: - python >=3.7 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/trove-classifiers?source=conda-forge-mapping - size: 18302 - timestamp: 1719995164492 + - pkg:pypi/trove-classifiers?source=hash-mapping + size: 18429 + timestamp: 1729552033760 - kind: conda name: twine version: 5.1.1 @@ -36540,62 +31823,63 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/twine?source=conda-forge-mapping + - pkg:pypi/twine?source=hash-mapping size: 33938 timestamp: 1719431080574 - kind: conda name: typeguard - version: 4.3.0 + version: 4.4.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.3.0-pyhd8ed1ab_0.conda - sha256: 60d546ac09b473afecd666e9239a831562bf6109b28415941fe5587089fbefb8 - md5: b2c8d7c6d8da590539b97a307089fbab + url: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.4.0-pyhd8ed1ab_0.conda + sha256: 7959eb41a58bfc5ef4423b957c3193c9f9f6b104e4b5220096c40e3332c50134 + md5: ad780b2b8ec16e7f4262be31d9df288d depends: - - importlib_metadata >=3.6 + - importlib-metadata >=3.6 - python >=3.8 - - typing_extensions >=4.7.0 + - typing-extensions >=4.10.0 + - typing_extensions >=4.10.0 constrains: - pytest >=7 license: MIT license_family: MIT purls: - - pkg:pypi/typeguard?source=conda-forge-mapping - size: 34798 - timestamp: 1717143197644 + - pkg:pypi/typeguard?source=hash-mapping + size: 34855 + timestamp: 1730186756039 - kind: conda name: types-python-dateutil - version: 2.9.0.20240316 - build: pyhd8ed1ab_0 + version: 2.9.0.20241003 + build: pyhff2d567_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240316-pyhd8ed1ab_0.conda - sha256: 6630bbc43dfb72339fadafc521db56c9d17af72bfce459af195eecb01163de20 - md5: 7831efa91d57475373ee52fb92e8d137 + url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20241003-pyhff2d567_0.conda + sha256: 8489af986daebfbcd13d3748ba55431259206e37f184ab42a57e107fecd85e02 + md5: 3d326f8a2aa2d14d51d8c513426b5def depends: - python >=3.6 license: Apache-2.0 AND MIT purls: - - pkg:pypi/types-python-dateutil?source=conda-forge-mapping - size: 21769 - timestamp: 1710590028155 + - pkg:pypi/types-python-dateutil?source=hash-mapping + size: 21765 + timestamp: 1727940339297 - kind: conda name: types-pytz - version: 2024.1.0.20240417 + version: 2024.2.0.20241003 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.1.0.20240417-pyhd8ed1ab_0.conda - sha256: cc3913a5504b867c748981ba302e82dbc2bda71837f4894d29db8f6cb490e25d - md5: 7b71ace1b99195041329427c435b8125 + url: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2024.2.0.20241003-pyhd8ed1ab_0.conda + sha256: 6e045899904f488888dbed49f44e3ede438e88db9523ec61289fb4fdef4a53b8 + md5: 42775c62ac0671b0d700c754256d5c19 depends: - python >=3.6 license: Apache-2.0 AND MIT purls: - - pkg:pypi/types-pytz?source=conda-forge-mapping - size: 18725 - timestamp: 1713337633292 + - pkg:pypi/types-pytz?source=hash-mapping + size: 18634 + timestamp: 1727940306315 - kind: conda name: typing-extensions version: 4.12.2 @@ -36626,7 +31910,7 @@ packages: license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/typing-extensions?source=conda-forge-mapping + - pkg:pypi/typing-extensions?source=hash-mapping size: 39888 timestamp: 1717802653893 - kind: conda @@ -36645,7 +31929,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/typing-inspect?source=conda-forge-mapping + - pkg:pypi/typing-inspect?source=hash-mapping size: 14906 timestamp: 1685820229594 - kind: conda @@ -36662,236 +31946,388 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/typing-utils?source=conda-forge-mapping + - pkg:pypi/typing-utils?source=hash-mapping size: 13829 timestamp: 1622899345711 - kind: conda - name: tzcode - version: 2024a - build: h10d778d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/tzcode-2024a-h10d778d_0.conda - sha256: e3ee34b2711500f3b1d38309d47cfd7e4d05c0144f0b2b2bdfbc271a28cfdd76 - md5: 8d50ba6668dbd193cd42ccd9099fa2ae - license: BSD-3-Clause - license_family: BSD + name: typst + version: 0.11.0 + build: h975169c_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/typst-0.11.0-h975169c_0.conda + sha256: 5407408f416421ff1e503a0ddb9e6a1fac76a2a580f2f21113a6c3bdbaa8ebc6 + md5: 0b3c49a8651b4036179ca4088b84d1ea + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 11567396 + timestamp: 1710534017394 +- kind: conda + name: typst + version: 0.11.0 + build: ha5936a3_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/typst-0.11.0-ha5936a3_0.conda + sha256: c092295b591e681de6da2b90ca74a1452f8ea25b5825eaabccab3ac4d698ebed + md5: 955b5a7e393fc686b1d96db926955f34 + constrains: + - __osx >=11.0 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 11136841 + timestamp: 1710533646921 +- kind: conda + name: typst + version: 0.11.0 + build: he8a937b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/typst-0.11.0-he8a937b_0.conda + sha256: e0be4b66c486a15341d7309744ca94c51dbf0c3914c05cbf2bd796aac0c510c5 + md5: f6ac8c8ab4a4c9ed0ec710e3f5fa3954 + depends: + - libgcc-ng >=12 + - openssl >=3.2.1,<4.0a0 + license: Apache-2.0 + license_family: Apache purls: [] - size: 63341 - timestamp: 1706869081062 + size: 11632673 + timestamp: 1710532616618 - kind: conda name: tzcode - version: 2024a - build: h3f72095_0 + version: 2024b + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024a-h3f72095_0.conda - sha256: d3ea2927cabd6c9f27ee0cb498f893ac0133687d6a9e65e0bce4861c732a18df - md5: 32146e34aaec3745a08b6f49af3f41b0 + url: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024b-hb9d3cd8_0.conda + sha256: 20c72e7ba106338d51fdc29a717a54fcd52340063232e944dcd1d38fb6348a28 + md5: db124840386e1f842f93372897d1b857 depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 + - libgcc >=13 license: BSD-3-Clause license_family: BSD purls: [] - size: 69821 - timestamp: 1706868851630 + size: 69349 + timestamp: 1725600364789 - kind: conda name: tzcode - version: 2024a - build: h93a5062_0 + version: 2024b + build: hd74edd7_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024a-h93a5062_0.conda - sha256: 70bce0410d77b6ba3c32079aa87a98877ea970d8e96f2e4503e9b81198ece1f4 - md5: 33ebc94eb6420500a4aeb0fc45112bba + url: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024b-hd74edd7_0.conda + sha256: cd765bc7b8637b90a66771af99ea9eef1d532630643c7e4e05afbffb0e9de00c + md5: 2b216eef43a512307c43cf9ddcbb8a87 + depends: + - __osx >=11.0 license: BSD-3-Clause license_family: BSD purls: [] - size: 63845 - timestamp: 1706869030258 + size: 62805 + timestamp: 1725600435622 - kind: conda name: tzdata - version: 2024a - build: h0c530f3_0 + version: 2024b + build: hc8b5060_0 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 - md5: 161081fc7cec0bfda0d86d7cb595f8d8 + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf + md5: 8ac3367aafb1cc0a068483c580af8015 license: LicenseRef-Public-Domain purls: [] - size: 119815 - timestamp: 1706886945727 + size: 122354 + timestamp: 1728047496079 - kind: conda name: ucrt version: 10.0.22621.0 - build: h57928b3_0 + build: h57928b3_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - sha256: f29cdaf8712008f6b419b8b1a403923b00ab2504bfe0fb2ba8eb60e72d4f14c6 - md5: 72608f6cd3e5898229c3ea16deb1ac43 + url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450 + md5: 6797b005cd0f439c4c5c9ac565783700 constrains: - vs2015_runtime >=14.29.30037 - license: LicenseRef-Proprietary - license_family: PROPRIETARY + license: LicenseRef-MicrosoftWindowsSDK10 purls: [] - size: 1283972 - timestamp: 1666630199266 + size: 559710 + timestamp: 1728377334097 - kind: conda - name: ukkonen - version: 1.0.1 - build: py312h0d7def4_4 - build_number: 4 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312h0d7def4_4.conda - sha256: f5f7550991ca647f69b67b9188c7104a3456122611dd6a6e753cff555e45dfd9 - md5: 57cfbb8ce3a1800bd343bf6afba6f878 + name: ucx + version: 1.17.0 + build: h05e919c_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.17.0-h05e919c_3.conda + sha256: c3669a5e0b6d432cb7de51286d68758914a84106304b78a07854e4fe148e3f6b + md5: 0dec6501d94f3e00c8a65fbc77f42126 depends: - - cffi - - python >=3.12.0rc3,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: MIT - license_family: MIT - purls: - - pkg:pypi/ukkonen?source=conda-forge-mapping - size: 17235 - timestamp: 1695549871621 + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - rdma-core >=53.0 + constrains: + - cuda-version >=12,<13 + - cuda-cudart + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 7162450 + timestamp: 1724308423275 - kind: conda name: ukkonen version: 1.0.1 - build: py312h389731b_4 - build_number: 4 + build: py312h6142ec9_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h389731b_4.conda - sha256: 7336cf66feba973207f4903c20b05c3c82e351246df4b6113f72d92b9ee55b81 - md5: 6407429e0969b58b8717dbb4c6c15513 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h6142ec9_5.conda + sha256: 1e4452b4a12d8a69c237f14b876fbf0cdc456914170b49ba805779c749c31eca + md5: 2b485a809d1572cbe7f0ad9ee107e4b0 depends: + - __osx >=11.0 - cffi - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython + - libcxx >=17 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/ukkonen?source=conda-forge-mapping - size: 13948 - timestamp: 1695549890285 + - pkg:pypi/ukkonen?source=hash-mapping + size: 13605 + timestamp: 1725784243533 - kind: conda name: ukkonen version: 1.0.1 - build: py312h49ebfd2_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312h49ebfd2_4.conda - sha256: efca19a5e73e4aacfc5e90a5389272b2508e41dc4adab9eb5353c5200ba37041 - md5: 4e6b5a8025cd8fd97b3cfe103ffce6b1 + build: py312h68727a3_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h68727a3_5.conda + sha256: 9fb020083a7f4fee41f6ece0f4840f59739b3e249f157c8a407bb374ffb733b5 + md5: f9664ee31aed96c85b7319ab0a693341 depends: + - __glibc >=2.17,<3.0.a0 - cffi - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - - pkg:pypi/ukkonen?source=conda-forge-mapping - size: 13246 - timestamp: 1695549689363 + - pkg:pypi/ukkonen?source=hash-mapping + size: 13904 + timestamp: 1725784191021 - kind: conda name: ukkonen version: 1.0.1 - build: py312h8572e83_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h8572e83_4.conda - sha256: f9a4384d466f4d8b5b497d951329dd4407ebe02f8f93456434e9ab789d6e23ce - md5: 52c9e25ee0a32485a102eeecdb7eef52 + build: py312hd5eb7cc_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312hd5eb7cc_5.conda + sha256: f1944f3d9645a6fa2770966ff010791136e7ce0eaa0c751822b812ac04fee7d6 + md5: d8c5ef1991a5121de95ea8e44c34e13a depends: - cffi - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: - - pkg:pypi/ukkonen?source=conda-forge-mapping - size: 14050 - timestamp: 1695549556745 + - pkg:pypi/ukkonen?source=hash-mapping + size: 17213 + timestamp: 1725784449622 - kind: conda name: unicodedata2 version: 15.1.0 - build: py310h2372a71_0 + build: py310ha75aee5_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py310h2372a71_0.conda - sha256: 5ab2f2d4542ba0cc27d222c08ae61706babe7173b0c6dfa748aa37ff2fa9d824 - md5: 72637c58d36d9475fda24700c9796f19 + url: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py310ha75aee5_1.conda + sha256: 4fa13f63d1e3e524a793733e7802110eba62f9734667da5990a172b4dc631d08 + md5: ee18e67b0bd283f6a75369936451d6ac depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/unicodedata2?source=conda-forge-mapping - size: 374055 - timestamp: 1695848183607 + - pkg:pypi/unicodedata2?source=hash-mapping + size: 368080 + timestamp: 1729704635436 - kind: conda name: unicodedata2 version: 15.1.0 - build: py310h2aa6e3c_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py310h2aa6e3c_0.conda - sha256: fd33715a75bc7d4ad863ac47341e9fdf8b78e47aa55c90f89a844c660aacc352 - md5: 9dbba0c13148e8efbb80eb60186b2d8c + build: py310ha8f682b_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py310ha8f682b_1.conda + sha256: 4d5e8d7e59cd916c19ef57d7623de99eb3d0e5122a4023793e7cea209717a04e + md5: c79b8d93f7cf51200011a9eede124b6e depends: - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/unicodedata2?source=conda-forge-mapping - size: 377237 - timestamp: 1695848435303 + - pkg:pypi/unicodedata2?source=hash-mapping + size: 365063 + timestamp: 1729705263886 - kind: conda name: unicodedata2 version: 15.1.0 - build: py310h6729b98_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-15.1.0-py310h6729b98_0.conda - sha256: 72fcdbd9e7b5e853ee7d25f88a54b83b69b6d6ac541f6faae393cc6475aa88be - md5: 5c82d8c1c3ba3b16df93ac6e7cac60bd + build: py310hf9df320_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py310hf9df320_1.conda + sha256: 0c6c3a8e977a179e44f5b8196e90f8c3cc54aa2ae28261d9138077208e9b7c30 + md5: 10a9fb93e96e536f2b1983d1d29e6d5a depends: + - __osx >=11.0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/unicodedata2?source=conda-forge-mapping - size: 366573 - timestamp: 1695848504604 + - pkg:pypi/unicodedata2?source=hash-mapping + size: 372689 + timestamp: 1729704862476 +- kind: conda + name: unicodedata2 + version: 15.1.0 + build: py311h9ecbd09_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py311h9ecbd09_1.conda + sha256: 5f277c801ca392512de9aa497fd8be3e168950600c438778dfc4234943c474fc + md5: 00895577e2b4c24dca76675ab1862551 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/unicodedata2?source=hash-mapping + size: 368413 + timestamp: 1729704640193 +- kind: conda + name: unicodedata2 + version: 15.1.0 + build: py311hae2e1ce_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py311hae2e1ce_1.conda + sha256: e4b1dcf79f4d4656e538ba24c845350b147d0d9f066771f8b3f396bea828b965 + md5: ade7687026adce6296650b21e7463758 + depends: + - __osx >=11.0 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/unicodedata2?source=hash-mapping + size: 372655 + timestamp: 1729704815727 - kind: conda name: unicodedata2 version: 15.1.0 - build: py310h8d17308_0 + build: py311he736701_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py310h8d17308_0.conda - sha256: 7beadca7de88d62b65124a98e0c442cef787dac2ac41768deb7200fd33d07603 - md5: f9f25aeb0eed2dd8c770f137c45da3c2 + url: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py311he736701_1.conda + sha256: 07d55566e05bbadc32e989bbe50853e579fea0f8809503719d7d1438302d27be + md5: 6230613721d6d805d0276025ee4d7b2b depends: - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/unicodedata2?source=hash-mapping + size: 365349 + timestamp: 1729705070270 +- kind: conda + name: unicodedata2 + version: 15.1.0 + build: py312h0bf5046_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py312h0bf5046_1.conda + sha256: 236961004c088f190d8b27863b2898f1d43c2d5dc769f135abdacc644b033fab + md5: eda2082df9c9c6259af246424b7f3db1 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/unicodedata2?source=hash-mapping + size: 372492 + timestamp: 1729704995151 +- kind: conda + name: unicodedata2 + version: 15.1.0 + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py312h4389bb4_1.conda + sha256: 92abc9d85c1cec3349db089a9942266a981cf347ac6a9ddbeaa3d3162958d81b + md5: 9cf863b723d64077f74396cfe4d7c00c + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/unicodedata2?source=conda-forge-mapping - size: 370116 - timestamp: 1695848575933 + - pkg:pypi/unicodedata2?source=hash-mapping + size: 365482 + timestamp: 1729705063982 +- kind: conda + name: unicodedata2 + version: 15.1.0 + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py312h66e93f0_1.conda + sha256: 1fcba6d363d901d9a06381e1aee2d5634f82389965dd7a339f19b3ae81ce6da0 + md5: 588486a61153f94c7c13816f7069e440 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/unicodedata2?source=hash-mapping + size: 368550 + timestamp: 1729704685856 - kind: conda name: uri-template version: 1.3.0 @@ -36906,7 +32342,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/uri-template?source=conda-forge-mapping + - pkg:pypi/uri-template?source=hash-mapping size: 23999 timestamp: 1688655976471 - kind: conda @@ -36934,30 +32370,14 @@ packages: sha256: ed0eed8ed0343d29cdbfaeb1bfd141f090af696547d69f91c18f46350299f00d md5: 28b4cf9065681f43cc567410edf8243d depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 49181 - timestamp: 1715010467661 -- kind: conda - name: uriparser - version: 0.9.8 - build: h6aefe2f_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - sha256: fec8e52955fc314580a93dee665349bf430ce6df19019cea3fae7ec60f732bdd - md5: 649890a63cc818b24fbbf0572db221a5 - depends: - - __osx >=10.9 - - libcxx >=16 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD purls: [] - size: 43396 - timestamp: 1715010079800 + size: 49181 + timestamp: 1715010467661 - kind: conda name: uriparser version: 0.9.8 @@ -36976,14 +32396,13 @@ packages: timestamp: 1715010035325 - kind: conda name: urllib3 - version: 2.2.2 - build: pyhd8ed1ab_1 - build_number: 1 + version: 2.2.3 + build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - sha256: 00c47c602c03137e7396f904eccede8cc64cc6bad63ce1fc355125df8882a748 - md5: e804c43f58255e977093a2298e442bb8 + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + sha256: b6bb34ce41cd93956ad6eeee275ed52390fb3788d6c75e753172ea7ac60b66e5 + md5: 6b55867f385dd762ed99ea687af32a69 depends: - brotli-python >=1.0.9 - h2 >=4,<5 @@ -36993,54 +32412,123 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/urllib3?source=conda-forge-mapping - size: 95048 - timestamp: 1719391384778 + - pkg:pypi/urllib3?source=hash-mapping + size: 98076 + timestamp: 1726496531769 +- kind: conda + name: userpath + version: 1.7.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + sha256: c8cbddd625340e1b00b53bafabc764526ee85f7ddb91018424bab0eea057796d + md5: 5bf074c9253a3bf914becfc50757406f + depends: + - click + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/userpath?source=hash-mapping + size: 17423 + timestamp: 1632758637093 +- kind: conda + name: uv + version: 0.4.29 + build: h0f3a69f_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/uv-0.4.29-h0f3a69f_0.conda + sha256: bb5df024d49976d2436e0cb6db7b4bcb7d18eb782402dca0816381d08cad7e2d + md5: 3c9d4ca2e04ec5f72aa94b88a0440ed6 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + constrains: + - __glibc >=2.17 + license: Apache-2.0 OR MIT + purls: [] + size: 9638406 + timestamp: 1730359945592 +- kind: conda + name: uv + version: 0.4.29 + build: h668ec48_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.4.29-h668ec48_0.conda + sha256: fb1f38e36442e7e79bb04b6f14eabff02277da2eba0323d117368d5960b547b0 + md5: b5c243a1a6417bec67fc373f40b6e71a + depends: + - __osx >=11.0 + - libcxx >=18 + constrains: + - __osx >=11.0 + license: Apache-2.0 OR MIT + purls: [] + size: 8572870 + timestamp: 1730360733547 +- kind: conda + name: uv + version: 0.4.29 + build: ha08ef0e_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/uv-0.4.29-ha08ef0e_0.conda + sha256: 4789588c1fc6abb41e2f094d3803a276375070a3e4f496323bc533d0f17f0a73 + md5: 456a3a07fe56d85ee4b784c5f3c9bb4e + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 OR MIT + purls: [] + size: 10414678 + timestamp: 1730360864159 - kind: conda name: vc version: '14.3' - build: h8a93ad2_20 - build_number: 20 + build: ha32ba9b_22 + build_number: 22 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - sha256: 23ac5feb15a9adf3ab2b8c4dcd63650f8b7ae860c5ceb073e49cf71d203eddef - md5: 8558f367e1d7700554f7cdb823c46faf + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda + sha256: 2a47c5bd8bec045959afada7063feacd074ad66b170c1ea92dd139b389fcf8fd + md5: 311c9ba1dfdd2895a8cb08346ff26259 depends: - - vc14_runtime >=14.40.33810 + - vc14_runtime >=14.38.33135 track_features: - vc14 license: BSD-3-Clause license_family: BSD purls: [] - size: 17391 - timestamp: 1717709040616 + size: 17447 + timestamp: 1728400826998 - kind: conda name: vc14_runtime version: 14.40.33810 - build: ha82c5b3_20 - build_number: 20 + build: hcc2c482_22 + build_number: 22 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-ha82c5b3_20.conda - sha256: af3cfa347e3d7c1277e9b964b0849a9a9f095bff61836cb3c3a89862fbc32e17 - md5: e39cc4c34c53654ec939558993d9dc5b + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + sha256: 4c669c65007f88a7cdd560192f7e6d5679d191ac71610db724e18b2410964d64 + md5: ce23a4b980ee0556a118ed96550ff3f3 depends: - ucrt >=10.0.20348.0 constrains: - - vs2015_runtime 14.40.33810.* *_20 - license: LicenseRef-ProprietaryMicrosoft + - vs2015_runtime 14.40.33810.* *_22 + license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime license_family: Proprietary purls: [] - size: 751934 - timestamp: 1717709031266 + size: 750719 + timestamp: 1728401055788 - kind: conda name: virtualenv - version: 20.26.3 + version: 20.27.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - sha256: f78961b194e33eed5fdccb668774651ec9423a043069fa7a4e3e2f853b08aa0c - md5: 284008712816c64c85bf2b7fa9f3b264 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + sha256: 189b935224732267df10dc116bce0835bd76fcdb20c30f560591c92028d513b0 + md5: dae21509d62aa7bf676279ced3edcb3f depends: - distlib <1,>=0.3.7 - filelock <4,>=3.12.2 @@ -37049,33 +32537,33 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/virtualenv?source=conda-forge-mapping - size: 4363507 - timestamp: 1719150878323 + - pkg:pypi/virtualenv?source=hash-mapping + size: 2965442 + timestamp: 1730204927840 - kind: conda name: vs2015_runtime version: 14.40.33810 - build: h3bf8584_20 - build_number: 20 + build: h3bf8584_22 + build_number: 22 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda - sha256: 0c2803f7a788c51f28235a7228dc2ab3f107b4b16ab0845a3e595c8c51e50a7a - md5: c21f1b4a3a30bbc3ef35a50957578e0e + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda + sha256: 80aa9932203d65a96f817b8be4fafc176fb2b3fe6cf6899ede678b8f0317fbff + md5: 8c6b061d44cafdfc8e8c6eb5f100caf0 depends: - vc14_runtime >=14.40.33810 license: BSD-3-Clause license_family: BSD purls: [] - size: 17395 - timestamp: 1717709043353 + size: 17453 + timestamp: 1728400827536 - kind: conda name: watchdog - version: 4.0.1 + version: 6.0.0 build: py312h2e8e312_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/watchdog-4.0.1-py312h2e8e312_0.conda - sha256: 35c657fd70de86e69dd8fcb04697df660da79410b4098a263acab55d363117ef - md5: 29cbd97528b7f7ce91a59186e391c0db + url: https://conda.anaconda.org/conda-forge/win-64/watchdog-6.0.0-py312h2e8e312_0.conda + sha256: d273308e2e936ab1963d958ecd342c77b0aa5a39d334aa4126c886e8dfd9e802 + md5: 3b401a2d5ecf5da721aa89ffa003cd76 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -37083,17 +32571,17 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/watchdog?source=conda-forge-mapping - size: 162034 - timestamp: 1716562347718 + - pkg:pypi/watchdog?source=hash-mapping + size: 165888 + timestamp: 1730493286260 - kind: conda name: watchdog - version: 4.0.1 + version: 6.0.0 build: py312h7900ff3_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/watchdog-4.0.1-py312h7900ff3_0.conda - sha256: c4786da0c938a65cea07e2bb3fe76dbeed6968c322994c66395176307cf78425 - md5: 7cc94a3b5e9698eecc2c39dbf7a173db + url: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py312h7900ff3_0.conda + sha256: 2436c4736b8135801f6bfcd09c7283f2d700a66a90ebd14b666b996e33ef8c9a + md5: 687b37d1325f228429409465e811c0bc depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -37101,17 +32589,17 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/watchdog?source=conda-forge-mapping - size: 136444 - timestamp: 1716561872155 + - pkg:pypi/watchdog?source=hash-mapping + size: 140940 + timestamp: 1730493008472 - kind: conda name: watchdog - version: 4.0.1 - build: py312h7e5086c_0 + version: 6.0.0 + build: py312hea69d52_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/watchdog-4.0.1-py312h7e5086c_0.conda - sha256: f018376037c19c38e5b55602d09653106cc4fada7db3f02f871cee7be6befcd6 - md5: ce33cf6a4a69aa2beb93c8f7258bfe55 + url: https://conda.anaconda.org/conda-forge/osx-arm64/watchdog-6.0.0-py312hea69d52_0.conda + sha256: f6c2eb941ffc25fc4fc637c71a5465678ed20e57b53698020a50dca86c584f04 + md5: ce2a02fd5a911d4eb963af9a84c00d2c depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -37121,28 +32609,28 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/watchdog?source=conda-forge-mapping - size: 145420 - timestamp: 1716562106758 + - pkg:pypi/watchdog?source=hash-mapping + size: 149164 + timestamp: 1730493202256 - kind: conda - name: watchdog - version: 4.0.1 - build: py312hbd25219_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/watchdog-4.0.1-py312hbd25219_0.conda - sha256: f20d599605b43e670d2f44a6ad76eb916e9d0980c70ac4df2bc527b3f005590a - md5: 7cecf3b27b6a0ba239695d2992a1a177 + name: wayland + version: 1.23.1 + build: h3e06ad9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.23.1-h3e06ad9_0.conda + sha256: 0884b2023a32d2620192cf2e2fc6784b8d1e31cf9f137e49e00802d4daf7d1c1 + md5: 0a732427643ae5e0486a727927791da1 depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - pyyaml >=3.10 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/watchdog?source=conda-forge-mapping - size: 144881 - timestamp: 1716561920161 + - __glibc >=2.17,<3.0.a0 + - libexpat >=2.6.2,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=13 + - libstdcxx-ng >=13 + license: MIT + license_family: MIT + purls: [] + size: 321561 + timestamp: 1724530461598 - kind: conda name: wcwidth version: 0.2.13 @@ -37157,26 +32645,26 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/wcwidth?source=conda-forge-mapping + - pkg:pypi/wcwidth?source=hash-mapping size: 32709 timestamp: 1704731373922 - kind: conda name: webcolors - version: 24.6.0 + version: 24.8.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.6.0-pyhd8ed1ab_0.conda - sha256: 6377de3bc05b80f25c5fe75f180a81fc8a6aa601d4b228161f75f78862d00a0f - md5: 419f2f6cf90fc7a6feee657752cd0f7b + url: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.8.0-pyhd8ed1ab_0.conda + sha256: ec71f97c332a7d328ae038990b8090cbfa772f82845b5d2233defd167b7cc5ac + md5: eb48b812eb4fbb9ff238a6651fdbbcae depends: - python >=3.5 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/webcolors?source=conda-forge-mapping - size: 18291 - timestamp: 1717667379821 + - pkg:pypi/webcolors?source=hash-mapping + size: 18378 + timestamp: 1723294800217 - kind: conda name: webencodings version: 0.5.1 @@ -37192,7 +32680,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/webencodings?source=conda-forge-mapping + - pkg:pypi/webencodings?source=hash-mapping size: 15600 timestamp: 1694681458271 - kind: conda @@ -37209,45 +32697,61 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/websocket-client?source=conda-forge-mapping + - pkg:pypi/websocket-client?source=hash-mapping size: 47066 timestamp: 1713923494501 - kind: conda name: wheel - version: 0.43.0 - build: pyhd8ed1ab_1 - build_number: 1 + version: 0.44.0 + build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_1.conda - sha256: cb318f066afd6fd64619f14c030569faf3f53e6f50abf743b4c865e7d95b96bc - md5: 0b5293a157c2b5cd513dd1b03d8d3aae + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.44.0-pyhd8ed1ab_0.conda + sha256: d828764736babb4322b8102094de38074dedfc71f5ff405c9dfee89191c14ebc + md5: d44e3b085abcaef02983c6305b84b584 depends: - python >=3.8 license: MIT license_family: MIT purls: - - pkg:pypi/wheel?source=conda-forge-mapping - size: 57963 - timestamp: 1711546009410 + - pkg:pypi/wheel?source=hash-mapping + size: 58585 + timestamp: 1722797131787 +- kind: conda + name: widgetsnbextension + version: 4.0.13 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.13-pyhd8ed1ab_0.conda + sha256: d155adc10f8c96f76d4468dbe37b33b4334dadf5cd4a95841aa009ca9bced5fa + md5: 6372cd99502721bd7499f8d16b56268d + depends: + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/widgetsnbextension?source=hash-mapping + size: 898656 + timestamp: 1724331433259 - kind: conda name: win_inet_pton version: 1.1.0 - build: pyhd8ed1ab_6 - build_number: 6 + build: pyh7428d3b_7 + build_number: 7 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 - sha256: a11ae693a0645bf6c7b8a47bac030be9c0967d0b1924537b9ff7458e832c0511 - md5: 30878ecc4bd36e8deeea1e3c151b2e0b + url: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda + sha256: c5297692ab34aade5e21107abaf623d6f93847662e25f655320038d2bfa1a812 + md5: c998c13b2f998af57c3b88c7a47979e0 depends: - __win - python >=3.6 - license: PUBLIC-DOMAIN + license: LicenseRef-Public-Domain purls: - - pkg:pypi/win-inet-pton?source=conda-forge-mapping - size: 8191 - timestamp: 1667051294134 + - pkg:pypi/win-inet-pton?source=hash-mapping + size: 9602 + timestamp: 1727796413384 - kind: conda name: winpty version: 0.4.3 @@ -37266,120 +32770,113 @@ packages: - kind: conda name: wrapt version: 1.16.0 - build: py310h2372a71_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py310h2372a71_0.conda - sha256: 2adc15cd1e66845c1ab498735e2f828003e2d5fe20eed1febddb712f58793c31 - md5: d9dc9c45bdc2b38403e6b388581e92f0 - depends: - - libgcc-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 55415 - timestamp: 1699533000763 -- kind: conda - name: wrapt - version: 1.16.0 - build: py310h8d17308_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py310h8d17308_0.conda - sha256: 2de005b8199cf5cc19a4547b9aa3ebd7b756c7e8c898dfea9d96283dc2b6745d - md5: 80326d84a304f866ddc5c49caf7ab3ae + build: py310h493c2e1_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py310h493c2e1_1.conda + sha256: 55a371d3e1a14fd6d204930fc1660884018cf8afeec1e47723cdc306f9fcd2ee + md5: da862f20147e11a586c6b50a65138414 depends: + - __osx >=11.0 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 54038 - timestamp: 1699533408150 + - pkg:pypi/wrapt?source=hash-mapping + size: 52539 + timestamp: 1724958177999 - kind: conda name: wrapt version: 1.16.0 - build: py310hb372a2b_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py310hb372a2b_0.conda - sha256: 27c9c05285f7405b1084681822686c3ef9e3ae45dff544a83636c1b669efb228 - md5: 7efc437e30061a48eeb60e4ce515ad77 + build: py310ha75aee5_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py310ha75aee5_1.conda + sha256: 56b0a952aae1458ccbb0c62091214cc2bdb1250c580610738669f71c97688080 + md5: e65db89334b361f25f8e6228194ac3b7 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 51650 - timestamp: 1699533356448 + - pkg:pypi/wrapt?source=hash-mapping + size: 55354 + timestamp: 1724958039989 - kind: conda name: wrapt version: 1.16.0 - build: py310hd125d64_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py310hd125d64_0.conda - sha256: 4509076b945781cd445b5418502e8c8e4befee3349364e613e0c60ab3d8c9e99 - md5: d1cdb4037779fcef0c824bc790c5ee57 + build: py310ha8f682b_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py310ha8f682b_1.conda + sha256: e6172cdb848afeba38eb4071d7da9cd81f3b6ae97639c7f7f7ab2fe788c11a8a + md5: 7391220926eb7aaff21c7d9c57383e3e depends: - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 52698 - timestamp: 1699533350125 + - pkg:pypi/wrapt?source=hash-mapping + size: 54079 + timestamp: 1724958550547 - kind: conda name: wrapt version: 1.16.0 - build: py311h05b510d_0 + build: py311h460d6c5_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py311h05b510d_0.conda - sha256: c071b132b8415ccd1452e0b8002aa79ea59a4fd0b0ac0d3b2fd0ab6b19b3390c - md5: 35f87feb986222d2ada633b45df0bbc9 + url: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py311h460d6c5_1.conda + sha256: 5667c48efd5e19e2754660293f00899dfd92b9228e19e7140cc46efcd0af8784 + md5: ff3535f6abd3ec8e0589ead32a8c86fc depends: + - __osx >=11.0 - python >=3.11,<3.12.0a0 - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 60998 - timestamp: 1699533434768 + - pkg:pypi/wrapt?source=hash-mapping + size: 60435 + timestamp: 1724958101626 - kind: conda name: wrapt version: 1.16.0 - build: py311h459d7ec_0 + build: py311h9ecbd09_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py311h459d7ec_0.conda - sha256: 6587e0b7d42368f767172b239a755fcf6363d91348faf9b7ab5743585369fc58 - md5: 6669b5529d206c1f880b642cdd17ae05 + url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py311h9ecbd09_1.conda + sha256: 426ee582e676e15a85846743060710fc4dbe4dd562b21d80d751694ffa263e41 + md5: 810ae646bcc50a017380336d874e4014 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 63465 - timestamp: 1699532930817 + - pkg:pypi/wrapt?source=hash-mapping + size: 63403 + timestamp: 1724958070675 - kind: conda name: wrapt version: 1.16.0 - build: py311ha68e1ae_0 + build: py311he736701_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py311ha68e1ae_0.conda - sha256: e8209b3ebdde15834b59101fd14a7f293d868d2fbad2dcd634357cc3406f1052 - md5: b96598823313b647148417455f2fa659 + url: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py311he736701_1.conda + sha256: b5d845acf27a2c4f236c905ac8366938a03ca292e58567236432c99462db9371 + md5: 8d03f171fdeadfee26e33374274c702f depends: - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 @@ -37389,141 +32886,111 @@ packages: license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 62017 - timestamp: 1699533574835 -- kind: conda - name: wrapt - version: 1.16.0 - build: py311he705e18_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py311he705e18_0.conda - sha256: e5546a52c0c0ed8a78dbac1cfec9a639f37fb3a86ea8ade8ff44aa7459dc6796 - md5: 5ef2eefe4fca7c786bbbdd4f1de464ed - depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 59558 - timestamp: 1699533106157 -- kind: conda - name: wrapt - version: 1.16.0 - build: py312h41838bb_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/wrapt-1.16.0-py312h41838bb_0.conda - sha256: 9ed208c4c844c50f161764df7ed7a226c42822917c892ab7c8f67eec6ca96dff - md5: d87798aa7210da2c5eaf96c0346dca00 - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 59057 - timestamp: 1699533259706 + - pkg:pypi/wrapt?source=hash-mapping + size: 62417 + timestamp: 1724958420987 - kind: conda name: wrapt version: 1.16.0 - build: py312h98912ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h98912ed_0.conda - sha256: dc8431b343961347ad93b33d2d8270e8c15d8825382f4f2540835c94aba2de05 - md5: fa957a1c7bee7e47ad44633caf7be8bc + build: py312h024a12e_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312h024a12e_1.conda + sha256: 54a5d3d9e1b45022b28c5ca3ceaa7ec2db4a40968b2b556804becfdff98f4efe + md5: f97c9abfeb8292f5f8353607ca8a1127 depends: - - libgcc-ng >=12 + - __osx >=11.0 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 62482 - timestamp: 1699532968076 + - pkg:pypi/wrapt?source=hash-mapping + size: 59642 + timestamp: 1724958200454 - kind: conda name: wrapt version: 1.16.0 - build: py312he37b823_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.16.0-py312he37b823_0.conda - sha256: 25824dd9a22f2c1e8f205eb55c906b28b2f4748a68cb8e3d95ffdf73f08cbac9 - md5: 86726ebb1f6da39c68f306ae624ee4ed + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312h4389bb4_1.conda + sha256: b136f99c616ef39243139929588030ba7fb48a3e518265513206cff405c3e5f4 + md5: d6f56554649b5cc8fff12efb657ea797 depends: - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 59676 - timestamp: 1699533197501 + - pkg:pypi/wrapt?source=hash-mapping + size: 60856 + timestamp: 1724958453066 - kind: conda name: wrapt version: 1.16.0 - build: py312he70551f_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/wrapt-1.16.0-py312he70551f_0.conda - sha256: e4b5ac6c897e68a798dfe13a1499dc9b555c48b468aa477d456807f2a7366c30 - md5: cea7b1aa961de6a8ac90584b5968a01d + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.16.0-py312h66e93f0_1.conda + sha256: 3a15a399eb61a999f0f14b4d243acc14e2dff1ead92ef52fcff30c84be89b21c + md5: 2eebcffe80e2a7bb2f0a77e621a7f124 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/wrapt?source=conda-forge-mapping - size: 61358 - timestamp: 1699533495284 + - pkg:pypi/wrapt?source=hash-mapping + size: 62624 + timestamp: 1724958046744 - kind: conda name: xarray - version: 2024.6.0 - build: pyhd8ed1ab_1 - build_number: 1 + version: 2024.10.0 + build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.6.0-pyhd8ed1ab_1.conda - sha256: 782aaa095b246f18c2486826d2a71d886b2b4b99c08378f2bfda5d61877e509b - md5: a6775bba72ade3fd777ccac04902202c + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.10.0-pyhd8ed1ab_0.conda + sha256: a35c8291de55f96ecc9121d1ebd4995977ea2f51d9e529e97749abc108afb0e4 + md5: 53e365732dfa053c4d19fc6b927392c4 depends: - - numpy >=1.23 + - numpy >=1.24 - packaging >=23.1 - - pandas >=2.0 - - python >=3.9 + - pandas >=2.1 + - python >=3.10 constrains: - - sparse >=0.14 - - nc-time-axis >=1.4 + - matplotlib-base >=3.7 - netcdf4 >=1.6.0 + - numba >=0.57 + - hdf5 >=1.12 + - sparse >=0.14 + - cftime >=1.6 + - zarr >=2.16 + - flox >=0.7 - pint >=0.22 - - dask-core >=2023.4 - toolz >=0.12 - - cartopy >=0.21 + - scipy >=1.11 + - seaborn-base >=0.12 + - distributed >=2023.9 + - iris >=3.7 + - cartopy >=0.22 - bottleneck >=1.3 - - iris >=3.4 - - zarr >=2.14 - - matplotlib-base >=3.7 + - dask-core >=2023.9 - h5py >=3.8 - - hdf5 >=1.12 - - cftime >=1.6 - - h5netcdf >=1.1 - - flox >=0.7 - - distributed >=2023.4 - - seaborn >=0.12 - - numba >=0.56 - - scipy >=1.10 + - h5netcdf >=1.2 + - nc-time-axis >=1.4 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/xarray?source=conda-forge-mapping - size: 788402 - timestamp: 1718302275503 + - pkg:pypi/xarray?source=hash-mapping + size: 813754 + timestamp: 1729867978934 - kind: conda name: xcb-util version: 0.4.1 @@ -37535,12 +33002,32 @@ packages: md5: 8637c3e5821654d0edf97e2b0404b443 depends: - libgcc-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.16,<2.0.0a0 license: MIT license_family: MIT purls: [] size: 19965 timestamp: 1718843348208 +- kind: conda + name: xcb-util-cursor + version: 0.1.5 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda + sha256: c7b35db96f6e32a9e5346f97adc968ef2f33948e3d7084295baebc0e33abdd5b + md5: eb44b3b6deb1cab08d72cb61686fe64c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libxcb >=1.13 + - libxcb >=1.16,<2.0.0a0 + - xcb-util-image >=0.4.0,<0.5.0a0 + - xcb-util-renderutil >=0.3.10,<0.4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 20296 + timestamp: 1726125844850 - kind: conda name: xcb-util-image version: 0.4.0 @@ -37552,7 +33039,7 @@ packages: md5: a0901183f08b6c7107aab109733a3c91 depends: - libgcc-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.16,<2.0.0a0 - xcb-util >=0.4.1,<0.5.0a0 license: MIT license_family: MIT @@ -37569,7 +33056,7 @@ packages: md5: ad748ccca349aec3e91743e08b5e2b50 depends: - libgcc-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.16,<2.0.0a0 license: MIT license_family: MIT purls: [] @@ -37585,7 +33072,7 @@ packages: md5: 0e0cbe0564d03a99afd5fd7b362feecd depends: - libgcc-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.16,<2.0.0a0 license: MIT license_family: MIT purls: [] @@ -37601,7 +33088,7 @@ packages: md5: 608e0ef8256b81d04456e8d211eee3e8 depends: - libgcc-ng >=12 - - libxcb >=1.16,<1.17.0a0 + - libxcb >=1.16,<2.0.0a0 license: MIT license_family: MIT purls: [] @@ -37610,89 +33097,76 @@ packages: - kind: conda name: xerces-c version: 3.2.5 - build: h63175ca_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-h63175ca_0.conda - sha256: 21328b0442f2f86ad5bf14481ed60f56a8ebb765a68d158a57ec6f32eb55762b - md5: b1e07902b6bb7833db8cc4ec32f32dc7 + build: h92fc2f4_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-h92fc2f4_2.conda + sha256: 863a7c2a991a4399d362d42c285ebc20748a4ea417647ebd3a171e2220c7457d + md5: 50b7325437ef0901fe25dc5c9e743b88 depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 + - icu >=75.1,<76.0a0 + - libcxx >=17 license: Apache-2.0 license_family: Apache purls: [] - size: 3574165 - timestamp: 1703093650967 + size: 1277884 + timestamp: 1727733870250 - kind: conda name: xerces-c version: 3.2.5 - build: hac6953d_0 + build: h988505b_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-hac6953d_0.conda - sha256: 75d06ca406f03f653d7a3183f2a1ccfdb3a3c6c830493933ec4c3c98e06a32bb - md5: 63b80ca78d29380fe69e69412dcbe4ac + url: https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.5-h988505b_2.conda + sha256: 339ab0ff05170a295e59133cd0fa9a9c4ba32b6941c8a2a73484cc13f81e248a + md5: 9dda9667feba914e0e80b95b82f7402b depends: - - icu >=73.2,<74.0a0 - - libcurl >=8.5.0,<9.0a0 - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 - libnsl >=2.0.1,<2.1.0a0 - - libstdcxx-ng >=12 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 1636164 - timestamp: 1703092965257 -- kind: conda - name: xerces-c - version: 3.2.5 - build: hbbe9ea5_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.2.5-hbbe9ea5_0.conda - sha256: 10487c0b28ee2303570c6d0867000587a8c36836fffd4d634d8778c494d16965 - md5: ade166000a13c81d9a75f65281e302b0 - depends: - - icu >=73.2,<74.0a0 - - libcurl >=8.5.0,<9.0a0 - - libcxx >=15 + - libstdcxx >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 1346161 - timestamp: 1703093374769 + size: 1648243 + timestamp: 1727733890754 - kind: conda name: xerces-c version: 3.2.5 - build: hf393695_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.2.5-hf393695_0.conda - sha256: 8ad901a5fe535ebd16b469cf8e46cf174f7e6e4d9b432cc8cc02666a87e7e2ee - md5: 5e4741a1e687aee5fc9c409a0476bef2 + build: he0c23c2_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.2.5-he0c23c2_2.conda + sha256: 759ae22a0a221dc1c0ba39684b0dcf696aab4132478e17e56a0366ded519e54e + md5: 82b6eac3c198271e98b48d52d79726d8 depends: - - icu >=73.2,<74.0a0 - - libcurl >=8.5.0,<9.0a0 - - libcxx >=15 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache purls: [] - size: 1270959 - timestamp: 1703093076013 + size: 3574017 + timestamp: 1727734520239 - kind: conda name: xkeyboard-config - version: '2.42' - build: h4ab18f5_0 + version: '2.43' + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.42-h4ab18f5_0.conda - sha256: 240caab7d9d85154ef373ecbac3ff9fb424add2029dbb124e949c6cbab2996dd - md5: b193af204da1bfb8c13882d131a14bd2 + url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.43-hb9d3cd8_0.conda + sha256: 0d89b5873515a1f05d311f37ea4e087bbccc0418afa38f2f6189e97280db3179 + md5: f725c7425d6d7c15e31f3b99a88ea02f depends: - - libgcc-ng >=12 - - xorg-libx11 >=1.8.9,<2.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 license: MIT license_family: MIT purls: [] - size: 388998 - timestamp: 1717817668629 + size: 389475 + timestamp: 1727840188958 - kind: conda name: xmipy version: 1.3.1 @@ -37708,303 +33182,397 @@ packages: - python >=3.8 license: CC0-1.0 purls: - - pkg:pypi/xmipy?source=conda-forge-mapping + - pkg:pypi/xmipy?source=hash-mapping size: 18460 timestamp: 1681486998644 - kind: conda - name: xorg-kbproto - version: 1.0.7 - build: h7f98852_1002 - build_number: 1002 + name: xorg-libice + version: 1.1.1 + build: hb9d3cd8_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - sha256: e90b0a6a5d41776f11add74aa030f789faf4efd3875c31964d6f9cfa63a10dd1 - md5: 4b230e8381279d76131116660f5a241a + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hb9d3cd8_1.conda + sha256: ec276da68d1c4a3d34a63195b35ca5b248d4aff0812464dcd843d74649b5cec4 + md5: 19608a9656912805b2b9a2f6bd257b04 depends: - - libgcc-ng >=9.3.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 27338 - timestamp: 1610027759842 + size: 58159 + timestamp: 1727531850109 - kind: conda - name: xorg-libice - version: 1.1.1 - build: hd590300_0 + name: xorg-libsm + version: 1.2.4 + build: he73a12e_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-he73a12e_1.conda + sha256: 70e903370977d44c9120a5641ab563887bd48446e9ef6fc2a3f5f60531c2cd6c + md5: 05a8ea5f446de33006171a7afe6ae857 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libuuid >=2.38.1,<3.0a0 + - xorg-libice >=1.1.1,<2.0a0 + license: MIT + license_family: MIT + purls: [] + size: 27516 + timestamp: 1727634669421 +- kind: conda + name: xorg-libx11 + version: 1.8.10 + build: h4f16b4b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.10-h4f16b4b_0.conda + sha256: c4650634607864630fb03696474a0535f6fce5fda7d81a6462346e071b53dfa7 + md5: 0b666058a179b744a622d0a4a0c56353 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libxcb >=1.17.0,<2.0a0 + - xorg-xorgproto + license: MIT + license_family: MIT + purls: [] + size: 838308 + timestamp: 1727356837875 +- kind: conda + name: xorg-libxau + version: 1.0.11 + build: h0e40799_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-h0e40799_1.conda + sha256: f44bc6f568a9697b7e1eadc2d00ef5de0fe62efcf5e27e5ecc46f81046082faf + md5: ca66d6f8fe86dd53664e8de5087ef6b1 + depends: + - libgcc >=13 + - libwinpthread >=12.0.0.r4.gg4f2fc60ca + - ucrt >=10.0.20348.0 + license: MIT + license_family: MIT + purls: [] + size: 107925 + timestamp: 1727035280560 +- kind: conda + name: xorg-libxau + version: 1.0.11 + build: hb9d3cd8_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - sha256: 5aa9b3682285bb2bf1a8adc064cb63aff76ef9178769740d855abb42b0d24236 - md5: b462a33c0be1421532f28bfe8f4a7514 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hb9d3cd8_1.conda + sha256: 532a046fee0b3a402db867b6ec55c84ba4cdedb91d817147c8feeae9766be3d6 + md5: 77cbc488235ebbaab2b6e912d3934bae depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 58469 - timestamp: 1685307573114 + size: 14679 + timestamp: 1727034741045 - kind: conda - name: xorg-libsm - version: 1.2.4 - build: h7391055_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - sha256: 089ad5f0453c604e18985480218a84b27009e9e6de9a0fa5f4a20b8778ede1f1 - md5: 93ee23f12bc2e684548181256edd2cf6 + name: xorg-libxau + version: 1.0.11 + build: hd74edd7_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hd74edd7_1.conda + sha256: 7113618021cf6c80831a429b2ebb9d639f3c43cf7fe2257d235dc6ae0ab43289 + md5: 7e0125f8fb619620a0011dc9297e2493 depends: - - libgcc-ng >=12 - - libuuid >=2.38.1,<3.0a0 - - xorg-libice >=1.1.1,<2.0a0 + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 27433 - timestamp: 1685453649160 + size: 13515 + timestamp: 1727034783560 - kind: conda - name: xorg-libx11 - version: 1.8.9 - build: hb711507_1 - build_number: 1 + name: xorg-libxcomposite + version: 0.4.6 + build: hb9d3cd8_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-hb711507_1.conda - sha256: 66eabe62b66c1597c4a755dcd3f4ce2c78adaf7b32e25dfee45504d67d7735c1 - md5: 4a6d410296d7e39f00bacdee7df046e9 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcomposite-0.4.6-hb9d3cd8_2.conda + sha256: 753f73e990c33366a91fd42cc17a3d19bb9444b9ca5ff983605fa9e953baf57f + md5: d3c295b50f092ab525ffe3c2aa4b7413 depends: - - libgcc-ng >=12 - - libxcb >=1.16,<1.17.0a0 - - xorg-kbproto - - xorg-xextproto >=7.3.0,<8.0a0 - - xorg-xproto + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxfixes >=6.0.1,<7.0a0 license: MIT license_family: MIT purls: [] - size: 832198 - timestamp: 1718846846409 + size: 13603 + timestamp: 1727884600744 - kind: conda - name: xorg-libxau - version: 1.0.11 - build: h0dc2134_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.11-h0dc2134_0.conda - sha256: 8a2e398c4f06f10c64e69f56bcf3ddfa30b432201446a0893505e735b346619a - md5: 9566b4c29274125b0266d0177b5eb97b + name: xorg-libxcursor + version: 1.2.2 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcursor-1.2.2-hb9d3cd8_0.conda + sha256: 7262935568963836efd05e0c68d5c787246578465b7a66c8bd7f0ba361d6a105 + md5: bb2638cd7fbdd980b1cff9a99a6c1fa8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxfixes >=6.0.1,<7.0a0 + - xorg-libxrender >=0.9.11,<0.10.0a0 license: MIT license_family: MIT purls: [] - size: 13071 - timestamp: 1684638167647 + size: 31804 + timestamp: 1727796817007 - kind: conda - name: xorg-libxau - version: 1.0.11 - build: hb547adb_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.11-hb547adb_0.conda - sha256: 02c313a1cada46912e5b9bdb355cfb4534bfe22143b4ea4ecc419690e793023b - md5: ca73dc4f01ea91e44e3ed76602c5ea61 + name: xorg-libxdamage + version: 1.1.6 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.6-hb9d3cd8_0.conda + sha256: 43b9772fd6582bf401846642c4635c47a9b0e36ca08116b3ec3df36ab96e0ec0 + md5: b5fcc7172d22516e1f965490e65e33a4 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxext >=1.3.6,<2.0a0 + - xorg-libxfixes >=6.0.1,<7.0a0 license: MIT license_family: MIT purls: [] - size: 13667 - timestamp: 1684638272445 + size: 13217 + timestamp: 1727891438799 - kind: conda - name: xorg-libxau - version: 1.0.11 - build: hcd874cb_0 + name: xorg-libxdmcp + version: 1.1.5 + build: h0e40799_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda - sha256: 8c5b976e3b36001bdefdb41fb70415f9c07eff631f1f0155f3225a7649320e77 - md5: c46ba8712093cb0114404ae8a7582e1a + url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-h0e40799_0.conda + sha256: 9075f98dcaa8e9957e4a3d9d30db05c7578a536950a31c200854c5c34e1edb2c + md5: 8393c0f7e7870b4eb45553326f81f0ff depends: - - m2w64-gcc-libs - - m2w64-gcc-libs-core + - libgcc >=13 + - libwinpthread >=12.0.0.r4.gg4f2fc60ca + - ucrt >=10.0.20348.0 license: MIT license_family: MIT purls: [] - size: 51297 - timestamp: 1684638355740 + size: 69920 + timestamp: 1727795651979 - kind: conda - name: xorg-libxau - version: 1.0.11 - build: hd590300_0 + name: xorg-libxdmcp + version: 1.1.5 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - sha256: 309751371d525ce50af7c87811b435c176915239fc9e132b99a25d5e1703f2d4 - md5: 2c80dc38fface310c9bd81b17037fee5 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + sha256: 6b250f3e59db07c2514057944a3ea2044d6a8cdde8a47b6497c254520fade1ee + md5: 8035c64cb77ed555e3f150b7b3972480 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 14468 - timestamp: 1684637984591 + size: 19901 + timestamp: 1727794976192 - kind: conda name: xorg-libxdmcp - version: 1.1.3 - build: h27ca646_0 + version: 1.1.5 + build: hd74edd7_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.3-h27ca646_0.tar.bz2 - sha256: d9a2fb4762779994718832f05a7d62ab2dcf6103a312235267628b5187ce88f7 - md5: 6738b13f7fadc18725965abdd4129c36 + url: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + sha256: 9939a166d780700d81023546759102b33fdc2c5f11ef09f5f66c77210fd334c8 + md5: 77c447f48cab5d3a15ac224edb86a968 + depends: + - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 18164 - timestamp: 1610071737668 + size: 18487 + timestamp: 1727795205022 - kind: conda - name: xorg-libxdmcp - version: 1.1.3 - build: h35c211d_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2 - sha256: 485421c16f03a01b8ed09984e0b2ababdbb3527e1abf354ff7646f8329be905f - md5: 86ac76d6bf1cbb9621943eb3bd9ae36e + name: xorg-libxext + version: 1.3.6 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda + sha256: da5dc921c017c05f38a38bd75245017463104457b63a1ce633ed41f214159c14 + md5: febbab7d15033c913d53c7a2c102309d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 license: MIT license_family: MIT purls: [] - size: 17225 - timestamp: 1610071995461 + size: 50060 + timestamp: 1727752228921 - kind: conda - name: xorg-libxdmcp - version: 1.1.3 - build: h7f98852_0 + name: xorg-libxfixes + version: 6.0.1 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - sha256: 4df7c5ee11b8686d3453e7f3f4aa20ceef441262b49860733066c52cfd0e4a77 - md5: be93aabceefa2fac576e971aef407908 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda + sha256: 2fef37e660985794617716eb915865ce157004a4d567ed35ec16514960ae9271 + md5: 4bdb303603e9821baf5fe5fdff1dc8f8 depends: - - libgcc-ng >=9.3.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 license: MIT license_family: MIT purls: [] - size: 19126 - timestamp: 1610071769228 + size: 19575 + timestamp: 1727794961233 - kind: conda - name: xorg-libxdmcp - version: 1.1.3 - build: hcd874cb_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2 - sha256: f51205d33c07d744ec177243e5d9b874002910c731954f2c8da82459be462b93 - md5: 46878ebb6b9cbd8afcf8088d7ef00ece + name: xorg-libxi + version: 1.8.2 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda + sha256: 1a724b47d98d7880f26da40e45f01728e7638e6ec69f35a3e11f92acd05f9e7a + md5: 17dcc85db3c7886650b8908b183d6876 depends: - - m2w64-gcc-libs + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxext >=1.3.6,<2.0a0 + - xorg-libxfixes >=6.0.1,<7.0a0 license: MIT license_family: MIT purls: [] - size: 67908 - timestamp: 1610072296570 + size: 47179 + timestamp: 1727799254088 - kind: conda - name: xorg-libxext - version: 1.3.4 - build: h0b41bf4_2 - build_number: 2 + name: xorg-libxrandr + version: 1.5.4 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249 - md5: 82b6df12252e6f32402b96dacc656fec + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.4-hb9d3cd8_0.conda + sha256: ac0f037e0791a620a69980914a77cb6bb40308e26db11698029d6708f5aa8e0d + md5: 2de7f99d6581a4a7adbff607b5c278ca depends: - - libgcc-ng >=12 - - xorg-libx11 >=1.7.2,<2.0a0 - - xorg-xextproto + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxext >=1.3.6,<2.0a0 + - xorg-libxrender >=0.9.11,<0.10.0a0 license: MIT license_family: MIT purls: [] - size: 50143 - timestamp: 1677036907815 + size: 29599 + timestamp: 1727794874300 - kind: conda name: xorg-libxrender version: 0.9.11 - build: hd590300_0 + build: hb9d3cd8_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7 - md5: ed67c36f215b310412b2af935bf3e530 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hb9d3cd8_1.conda + sha256: f1217e902c0b1d8bc5d3ce65e483ebf38b049c823c9117b7198cfb16bd2b9143 + md5: a7a49a8b85122b49214798321e2e96b4 depends: - - libgcc-ng >=12 - - xorg-libx11 >=1.8.6,<2.0a0 - - xorg-renderproto + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-xorgproto license: MIT license_family: MIT purls: [] - size: 37770 - timestamp: 1688300707994 + size: 37780 + timestamp: 1727529943015 - kind: conda - name: xorg-renderproto - version: 0.11.1 - build: h7f98852_1002 - build_number: 1002 + name: xorg-libxtst + version: 1.2.5 + build: hb9d3cd8_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - sha256: 38942930f233d1898594dd9edf4b0c0786f3dbc12065a0c308634c37fd936034 - md5: 06feff3d2634e3097ce2fe681474b534 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda + sha256: 752fdaac5d58ed863bbf685bb6f98092fe1a488ea8ebb7ed7b606ccfce08637a + md5: 7bbe9a0cc0df0ac5f5a8ad6d6a11af2f depends: - - libgcc-ng >=9.3.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxext >=1.3.6,<2.0a0 + - xorg-libxi >=1.7.10,<2.0a0 license: MIT license_family: MIT purls: [] - size: 9621 - timestamp: 1614866326326 + size: 32808 + timestamp: 1727964811275 - kind: conda - name: xorg-xextproto - version: 7.3.0 - build: h0b41bf4_1003 - build_number: 1003 + name: xorg-libxxf86vm + version: 1.1.5 + build: hb9d3cd8_4 + build_number: 4 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - sha256: b8dda3b560e8a7830fe23be1c58cc41f407b2e20ae2f3b6901eb5842ba62b743 - md5: bce9f945da8ad2ae9b1d7165a64d0f87 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.5-hb9d3cd8_4.conda + sha256: 0b8f062a5b4a2c3833267285b7d41b3542f54d2c935c86ca98504c3e5296354c + md5: 7da9007c0582712c4bad4131f89c8372 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - xorg-libx11 >=1.8.10,<2.0a0 + - xorg-libxext >=1.3.6,<2.0a0 license: MIT license_family: MIT purls: [] - size: 30270 - timestamp: 1677036833037 + size: 18072 + timestamp: 1728920051869 - kind: conda name: xorg-xf86vidmodeproto version: 2.3.1 - build: h7f98852_1002 - build_number: 1002 + build: hb9d3cd8_1004 + build_number: 1004 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2 - sha256: 43398aeacad5b8753b7a1c12cb6bca36124e0c842330372635879c350c430791 - md5: 3ceea9668625c18f19530de98b15d5b0 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-hb9d3cd8_1004.conda + sha256: f649e15e53d82fe5cece0b1fcc82deea3cd71a01ea4b3ebdc2cef1cdfeaf19b3 + md5: 24831329718daa6cbe35fcd071b778d4 depends: - - libgcc-ng >=9.3.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 23875 - timestamp: 1620067286978 + size: 26209 + timestamp: 1728918994652 - kind: conda - name: xorg-xproto - version: 7.0.31 - build: h7f98852_1007 - build_number: 1007 + name: xorg-xorgproto + version: '2024.1' + build: hb9d3cd8_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - sha256: f197bb742a17c78234c24605ad1fe2d88b1d25f332b75d73e5ba8cf8fbc2a10d - md5: b4a4381d54784606820704f7b5f05a15 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda + sha256: 1316680be6edddee0156b86ec1102fc8286f51c1a5440366ed1db596a2dc3731 + md5: 7c21106b851ec72c037b162c216d8f05 depends: - - libgcc-ng >=9.3.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 74922 - timestamp: 1607291557628 + size: 565425 + timestamp: 1726846388217 - kind: conda name: xugrid - version: 0.10.0 + version: 0.12.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.10.0-pyhd8ed1ab_0.conda - sha256: cf9b0c63b573405d5ac34a35819d98c10884abb0d49b19af0fc7414f8f44fa00 - md5: 7ef2f388e3b2adcecfed74591bff2451 + url: https://conda.anaconda.org/conda-forge/noarch/xugrid-0.12.1-pyhd8ed1ab_0.conda + sha256: 0ebb18754772cd8d17a2628715eab89ffc9848b98347216750a1cc141f966b0f + md5: fc0bdab291560b19d2be5f88e223e891 depends: - dask - geopandas - numba >=0.50 - - numba_celltree + - numba_celltree >=0.1.8 - numpy - pandas - pooch @@ -38015,26 +33583,26 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/xugrid?source=conda-forge-mapping - size: 94214 - timestamp: 1714580639671 + - pkg:pypi/xugrid?source=hash-mapping + size: 100533 + timestamp: 1725906846106 - kind: conda name: xyzservices - version: 2024.6.0 + version: 2024.9.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.6.0-pyhd8ed1ab_0.conda - sha256: da2e54cb68776e62a708cb6d5f026229d8405ff4cfd8a2446f7d386f07ebc5c1 - md5: de631703d59e40af41c56c4b4e2928ab + url: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2024.9.0-pyhd8ed1ab_0.conda + sha256: 2dd2825b5a246461a95a0affaf7e1d459f7cc0ae68ad2dd8aab360c2e5859488 + md5: 156c91e778c1d4d57b709f8c5333fd06 depends: - python >=3.8 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/xyzservices?source=conda-forge-mapping - size: 46663 - timestamp: 1717752234053 + - pkg:pypi/xyzservices?source=hash-mapping + size: 46887 + timestamp: 1725366457240 - kind: conda name: xz version: 5.2.6 @@ -38061,18 +33629,6 @@ packages: purls: [] size: 235693 timestamp: 1660346961024 -- kind: conda - name: xz - version: 5.2.6 - build: h775f41a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - sha256: eb09823f34cc2dd663c0ec4ab13f246f45dcd52e5b8c47b9864361de5204a1c8 - md5: a72f9d4ea13d55d745ff1ed594747f10 - license: LGPL-2.1 and GPL-2.0 - purls: [] - size: 238119 - timestamp: 1660346964847 - kind: conda name: xz version: 5.2.6 @@ -38088,20 +33644,6 @@ packages: purls: [] size: 217804 timestamp: 1660346976440 -- kind: conda - name: yaml - version: 0.2.5 - build: h0d85af4_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - sha256: 5301417e2c8dea45b401ffee8df3957d2447d4ce80c83c5ff151fc6bfe1c4148 - md5: d7e08fcf8259d742156188e8762b4d20 - license: MIT - license_family: MIT - purls: [] - size: 84237 - timestamp: 1641347062780 - kind: conda name: yaml version: 0.2.5 @@ -38152,80 +33694,62 @@ packages: - kind: conda name: zeromq version: 4.3.5 - build: h75354e8_4 - build_number: 4 + build: h3b0a872_6 + build_number: 6 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h75354e8_4.conda - sha256: bc9aaee39e7be107d7daff237435dfd8f791aca460a98583a36a263615205262 - md5: 03cc8d9838ad9dd0060ab532e81ccb21 + url: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_6.conda + sha256: e67288b1c98a31ee58a5c07bdd873dbe08e75f752e1ad605d5e8c0697339903e + md5: 113506c8d2d558e733f5c38f6bf08c50 depends: - - krb5 >=1.21.2,<1.22.0a0 - - libgcc-ng >=12 - - libsodium >=1.0.18,<1.0.19.0a0 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 license: MPL-2.0 license_family: MOZILLA purls: [] - size: 353229 - timestamp: 1715607188837 + size: 335528 + timestamp: 1728364029042 - kind: conda name: zeromq version: 4.3.5 - build: hcc0f68c_4 - build_number: 4 + build: h9f5b81c_6 + build_number: 6 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hcc0f68c_4.conda - sha256: c22520d6d66a80f17c5f2b3719ad4a6ee809b210b8ac87d6f05ab98b94b3abda - md5: 39fb79e7a7a880a03f82c1f2eb7f7c73 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h9f5b81c_6.conda + sha256: 5c5061c976141eccbbb2aec21483ddd10fd1df4fd9bcf638e3fd57b2bd85721f + md5: 84121ef1717cdfbecedeae70142706cc depends: - __osx >=11.0 - - krb5 >=1.21.2,<1.22.0a0 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 - license: MPL-2.0 - license_family: MOZILLA - purls: [] - size: 298555 - timestamp: 1715607628741 -- kind: conda - name: zeromq - version: 4.3.5 - build: hde137ed_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-hde137ed_4.conda - sha256: 871625ce993e6c61649b14659a3d1d6011fbb242b7d6a25cadbc6300b2356f32 - md5: e56609055da6c658aa329d42a6c6b9f2 - depends: - - __osx >=10.13 - - krb5 >=1.21.2,<1.22.0a0 - - libcxx >=16 - - libsodium >=1.0.18,<1.0.19.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libcxx >=17 + - libsodium >=1.0.20,<1.0.21.0a0 license: MPL-2.0 license_family: MOZILLA purls: [] - size: 304498 - timestamp: 1715607961981 + size: 280870 + timestamp: 1728363954972 - kind: conda name: zeromq version: 4.3.5 - build: he1f189c_4 - build_number: 4 + build: ha9f60a1_6 + build_number: 6 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-he1f189c_4.conda - sha256: 0f375034a88659f764ce837f324698a883da227fcb517561ffaf6a89474211b4 - md5: b755eb545c2728b9a53729f02e627834 + url: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-ha9f60a1_6.conda + sha256: c37130692742cc43eedf4e23270c7d1634235acff50760025e9583f8b46b64e6 + md5: 33a78bbc44d6550c361abb058a0556e2 depends: - - krb5 >=1.21.2,<1.22.0a0 - - libsodium >=1.0.18,<1.0.19.0a0 + - krb5 >=1.21.3,<1.22.0a0 + - libsodium >=1.0.20,<1.0.21.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MPL-2.0 license_family: MOZILLA purls: [] - size: 2707065 - timestamp: 1715607874610 + size: 2701749 + timestamp: 1728364260886 - kind: conda name: zict version: 3.0.0 @@ -38240,172 +33764,135 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zict?source=conda-forge-mapping + - pkg:pypi/zict?source=hash-mapping size: 36325 timestamp: 1681770298596 - kind: conda name: zipp - version: 3.19.2 + version: 3.20.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda - sha256: e3e9c8501f581bfdc4700b83ea283395e237ec6b9b5cbfbedb556e1da6f4fdc9 - md5: 49808e59df5535116f6878b2a820d6f4 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + sha256: 1e84fcfa41e0afdd87ff41e6fbb719c96a0e098c1f79be342293ab0bd8dea322 + md5: 4daaed111c05672ae669f7036ee5bba3 depends: - python >=3.8 license: MIT license_family: MIT purls: - - pkg:pypi/zipp?source=conda-forge-mapping - size: 20917 - timestamp: 1718013395428 + - pkg:pypi/zipp?source=hash-mapping + size: 21409 + timestamp: 1726248679175 - kind: conda name: zlib version: 1.3.1 - build: h2466b09_1 - build_number: 1 + build: h2466b09_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_1.conda - sha256: 76409556e6c7cb91991cd94d7fc853c9272c2872bd7e3573ff35eb33d6fca5be - md5: f8e0a35bf6df768ad87ed7bbbc36ab04 + url: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda + sha256: 8c688797ba23b9ab50cef404eca4d004a948941b6ee533ead0ff3bf52012528c + md5: be60c4e8efa55fddc17b4131aa47acbd depends: - - libzlib 1.3.1 h2466b09_1 + - libzlib 1.3.1 h2466b09_2 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Zlib license_family: Other purls: [] - size: 108081 - timestamp: 1716874767420 + size: 107439 + timestamp: 1727963788936 - kind: conda name: zlib version: 1.3.1 - build: h4ab18f5_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - sha256: cee16ab07a11303de721915f0a269e8c7a54a5c834aa52f74b1cc3a59000ade8 - md5: 9653f1bf3766164d0e65fa723cabbc54 + build: h8359307_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + sha256: 58f8860756680a4831c1bf4f294e2354d187f2e999791d53b1941834c4b37430 + md5: e3170d898ca6cb48f1bb567afb92f775 depends: - - libgcc-ng >=12 - - libzlib 1.3.1 h4ab18f5_1 + - __osx >=11.0 + - libzlib 1.3.1 h8359307_2 license: Zlib license_family: Other purls: [] - size: 93004 - timestamp: 1716874213487 + size: 77606 + timestamp: 1727963209370 - kind: conda name: zlib version: 1.3.1 - build: h87427d6_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - sha256: 41bd5fef28b2755d637e3a8ea5c84010628392fbcf80c7e3d7370aaced7ee4fe - md5: 3ac9ef8975965f9698dbedd2a4cc5894 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + sha256: 5d7c0e5f0005f74112a34a7425179f4eb6e73c92f5d109e6af4ddeca407c92ab + md5: c9f075ab2f33b3bbee9e62d4ad0a6cd8 depends: - - __osx >=10.13 - - libzlib 1.3.1 h87427d6_1 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib 1.3.1 hb9d3cd8_2 license: Zlib license_family: Other purls: [] - size: 88782 - timestamp: 1716874245467 + size: 92286 + timestamp: 1727963153079 - kind: conda - name: zlib - version: 1.3.1 - build: hfb2fe0b_1 + name: zstandard + version: 0.23.0 + build: py310h2665a74_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - sha256: 87360c2dc662916aac37cf01e53324b4f4f78db6f399220818076752b093ede5 - md5: f27e021db7862b6ddbc1d3578f10d883 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py310h2665a74_1.conda + sha256: a90d06cbfa50fc9b3c37bd092d559452475f22425bacf28f04ecac2e8b1c389c + md5: 81b300570a423c9c9521b79f8f2ed1ba depends: - __osx >=11.0 - - libzlib 1.3.1 hfb2fe0b_1 - license: Zlib - license_family: Other - purls: [] - size: 78260 - timestamp: 1716874280334 -- kind: conda - name: zstandard - version: 0.22.0 - build: py310h0e17136_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py310h0e17136_1.conda - sha256: d4be954f094a38fe7365c0a4c31f32c7f1535680e16b44d26829e5ea8ba2eb84 - md5: 52fa05818947f55df6369a92a174d96a - depends: - - __osx >=10.13 - cffi >=1.11 - python >=3.10,<3.11.0a0 + - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 399892 - timestamp: 1718866598905 + - pkg:pypi/zstandard?source=hash-mapping + size: 320810 + timestamp: 1725305704555 - kind: conda name: zstandard - version: 0.22.0 - build: py310hab88d88_1 + version: 0.23.0 + build: py310ha39cb0e_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py310hab88d88_1.conda - sha256: fcabdf9189c66e1696ee0b05b6e96b33572690e2309a4e01a43a02a5baebfce7 - md5: f997c26e250f125a1a297589a95ae79d - depends: - - cffi >=1.11 - - libgcc-ng >=12 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - zstd >=1.5.6,<1.5.7.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 404785 - timestamp: 1718866452135 -- kind: conda - name: zstandard - version: 0.22.0 - build: py310hd9c37c8_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py310hd9c37c8_1.conda - sha256: 5a892c9498ab8a7dbd11b03df18c379722073e8ca4469078ba667fb1f011a4f4 - md5: 425c0d526fb24cef82ef0d4ed83c5115 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py310ha39cb0e_1.conda + sha256: fcd784735205d6c5f19dcb339f92d2eede9bc42a01ec2c384381ee1b6089d4f6 + md5: f49de34fb99934bf49ab330b5caffd64 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 - cffi >=1.11 + - libgcc >=13 - python >=3.10,<3.11.0a0 - - python >=3.10,<3.11.0a0 *_cpython - python_abi 3.10.* *_cp310 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 320594 - timestamp: 1718866717998 + - pkg:pypi/zstandard?source=hash-mapping + size: 408309 + timestamp: 1725305719512 - kind: conda name: zstandard - version: 0.22.0 + version: 0.23.0 build: py310he5e10e1_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py310he5e10e1_1.conda - sha256: d4d2428136ddaa986b88994130395e54c19c088e71e7af0b870a087d14c47c68 - md5: ef691bc926c0f26d435508b6c1e60acc + url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py310he5e10e1_1.conda + sha256: 4e8aff4d0d42024e9f70783e51666186a681384d59fdd03fafda4b28f1fd540e + md5: 2a879227ccc1a10a2caddf12607ffaeb depends: - cffi >=1.11 - python >=3.10,<3.11.0a0 @@ -38418,63 +33905,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 314477 - timestamp: 1718866979842 -- kind: conda - name: zstandard - version: 0.22.0 - build: py311h4a6b76e_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py311h4a6b76e_1.conda - sha256: b7b86382936a604d58af2706933c743c124bd9078054e13e6b76d57807596613 - md5: 34b2bd2270fd11f9926e0498c0c87a05 - depends: - - __osx >=11.0 - - cffi >=1.11 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - zstd >=1.5.6,<1.5.7.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 332160 - timestamp: 1718866671859 -- kind: conda - name: zstandard - version: 0.22.0 - build: py311h51fa951_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py311h51fa951_1.conda - sha256: cc6e7268e2a22b32bb14ff00786e69d113fff043916705c4671c26613d29973f - md5: d6c3e7fc0b4eb316556974d0381d9cc7 - depends: - - __osx >=10.13 - - cffi >=1.11 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - zstd >=1.5.6,<1.5.7.0a0 - - zstd >=1.5.6,<1.6.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 410060 - timestamp: 1718866810415 + - pkg:pypi/zstandard?source=hash-mapping + size: 311278 + timestamp: 1725306039901 - kind: conda name: zstandard - version: 0.22.0 + version: 0.23.0 build: py311h53056dc_1 build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py311h53056dc_1.conda - sha256: 5926beed451fbd6bb426179b2e45ca0305392241dd8808c1664a2bbe4191a4fa - md5: f9b1a5dbb2fb0f25c0ab72249f123273 + url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py311h53056dc_1.conda + sha256: a93584e6167c3598854a47f3bf8276fa646a3bb4d12fcfc23a54e37d5879f35c + md5: 7d4c123cbb5e6293dd4dd2f8d30f0de4 depends: - cffi >=1.11 - python >=3.11,<3.12.0a0 @@ -38487,122 +33929,125 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 323641 - timestamp: 1718866773068 + - pkg:pypi/zstandard?source=hash-mapping + size: 321357 + timestamp: 1725305930669 - kind: conda name: zstandard - version: 0.22.0 - build: py311hb6f056b_1 + version: 0.23.0 + build: py311ha60cc69_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py311hb6f056b_1.conda - sha256: 9980740f9b5f9028288c71b750d6a6691d0676ae50db97866d9ee34ab51e8b16 - md5: 72e84ef20a510ab5fca1f3d80a16e9e2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py311ha60cc69_1.conda + sha256: d2f2f1a408e2353fc61d2bf064313270be2260ee212fe827dcf3cfd3754f1354 + md5: 29d320d6450b2948740a9be3761b2e9d depends: + - __osx >=11.0 - cffi >=1.11 - - libgcc-ng >=12 - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 415158 - timestamp: 1718866512189 + - pkg:pypi/zstandard?source=hash-mapping + size: 332271 + timestamp: 1725305847224 - kind: conda name: zstandard - version: 0.22.0 - build: py312h331e495_1 + version: 0.23.0 + build: py311hbc35293_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.22.0-py312h331e495_1.conda - sha256: ad6c48685ef9ac57a452cfdd107da7cd2dad01972502b192ba5e7eff9ebf5aab - md5: b355647d5ee25f78565028ace80844d1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py311hbc35293_1.conda + sha256: a5cf0eef1ffce0d710eb3dffcb07d9d5922d4f7a141abc96f6476b98600f718f + md5: aec590674ba365e50ae83aa2d6e1efae depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 - cffi >=1.11 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 410203 - timestamp: 1718866548522 + - pkg:pypi/zstandard?source=hash-mapping + size: 417923 + timestamp: 1725305669690 - kind: conda name: zstandard - version: 0.22.0 - build: py312h5b18bf6_1 + version: 0.23.0 + build: py312h15fbf35_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py312h5b18bf6_1.conda - sha256: 3bd22e769ea6bf2c9f59cc9905b9b43058208bde1ecca9d9f656ecd834c137d0 - md5: 27fe79bbc4dd3767be554fb171df362c + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + sha256: d00ca25c1e28fd31199b26a94f8c96574475704a825d244d7a6351ad3745eeeb + md5: a4cde595509a7ad9c13b1a3809bcfe51 depends: + - __osx >=11.0 - cffi >=1.11 - - libgcc-ng >=12 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 415366 - timestamp: 1718866454481 + - pkg:pypi/zstandard?source=hash-mapping + size: 330788 + timestamp: 1725305806565 - kind: conda name: zstandard - version: 0.22.0 - build: py312h721a963_1 + version: 0.23.0 + build: py312h7606c53_1 build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.22.0-py312h721a963_1.conda - sha256: 3aea4c16de85cfe932ba523dc1bdec3d267e06ee5a8528e478e6258b2f419ea5 - md5: 13b5cc78a710f6f13ff3c5bee14355d2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda + sha256: 3e0c718aa18dcac7f080844dbe0aea41a9cea75083019ce02e8a784926239826 + md5: a92cc3435b2fd6f51463f5a4db5c50b1 depends: - - __osx >=11.0 - cffi >=1.11 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 332966 - timestamp: 1718866670388 + - pkg:pypi/zstandard?source=hash-mapping + size: 320624 + timestamp: 1725305934189 - kind: conda name: zstandard - version: 0.22.0 - build: py312h7606c53_1 + version: 0.23.0 + build: py312hef9b889_1 build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.22.0-py312h7606c53_1.conda - sha256: 8e7a8188c0bea8b60d2010f2640e8d3ef0b8e63e4c3c0e1cedb73b9048eaeeab - md5: 786be87a7cee3e81dea86dd2783ce06c + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + sha256: b97015e146437283f2213ff0e95abdc8e2480150634d81fbae6b96ee09f5e50b + md5: 8b7069e9792ee4e5b4919a7a306d2e67 depends: + - __glibc >=2.17,<3.0.a0 - cffi >=1.11 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=conda-forge-mapping - size: 324422 - timestamp: 1718867030240 + - pkg:pypi/zstandard?source=hash-mapping + size: 419552 + timestamp: 1725305670210 - kind: conda name: zstd version: 1.5.6 @@ -38621,22 +34066,6 @@ packages: purls: [] size: 349143 timestamp: 1714723445995 -- kind: conda - name: zstd - version: 1.5.6 - build: h915ae27_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda - sha256: efa04a98cb149643fa54c4dad5a0179e36a5fbc88427ea0eec88ceed87fd0f96 - md5: 4cb2cd56f039b129bb0e491c1164167e - depends: - - __osx >=10.9 - - libzlib >=1.2.13,<2.0.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 498900 - timestamp: 1714723303098 - kind: conda name: zstd version: 1.5.6 diff --git a/pixi.toml b/pixi.toml index f6a43ddc3..9581a5fc7 100644 --- a/pixi.toml +++ b/pixi.toml @@ -1,27 +1,28 @@ [project] name = "Ribasim" -version = "2024.9.0" +version = "2024.11.0" description = "Water resources modeling" authors = ["Deltares and contributors "] channels = ["conda-forge"] -platforms = ["win-64", "linux-64", "osx-arm64", "osx-64"] +platforms = ["win-64", "linux-64", "osx-arm64"] readme = "README.md" license = "MIT" license-file = "LICENSE" -homepage = "https://deltares.github.io/Ribasim/" -documentation = "https://deltares.github.io/Ribasim/" +homepage = "https://ribasim.org/" +documentation = "https://ribasim.org/" repository = "https://github.com/Deltares/Ribasim" [tasks] # Tests -test-ribasim-python = "pytest --numprocesses=4 python/ribasim/tests" -test-ribasim-python-cov = "pytest --numprocesses=4 --cov=ribasim --cov-report=xml python/ribasim/tests" +test-ribasim-python = "pytest --numprocesses=4 -m 'not regression' python/ribasim/tests" +test-ribasim-python-cov = "pytest --numprocesses=4 --cov=ribasim --cov-report=xml -m 'not regression' python/ribasim/tests" test-ribasim-api = "pytest --basetemp=python/ribasim_api/tests/temp --junitxml=report.xml python/ribasim_api/tests" [feature.dev.tasks] # Installation -install-julia = "juliaup add 1.10.4 && juliaup override unset && juliaup override set 1.10.4" +install-julia = "juliaup add 1.11.1 && juliaup override unset && juliaup override set 1.11.1" install-pre-commit = "pre-commit install" +# Note that this has a Windows specific override install-ci = { depends_on = ["install-julia", "update-registry-julia"] } install = { depends_on = [ "install-ci", @@ -29,24 +30,14 @@ install = { depends_on = [ "install-pre-commit", ] } # Julia -## Due to an issue with curl and openssl the SSL_CERT_FILE and SSL_CERT_DIR -## have to be cleared https://github.com/JuliaLang/Downloads.jl/issues/244 -update-registry-julia = { cmd = "julia --eval='using Pkg; Registry.update()'", env = { SSL_CERT_FILE = "", SSL_CERT_DIR="" } } -update-manifest-julia = { cmd ="julia --project --eval='using Pkg; Pkg.update()'", env = { SSL_CERT_FILE = "", SSL_CERT_DIR="" } } -instantiate-julia = { cmd ="julia --project --eval='using Pkg; Pkg.instantiate()'", env = { SSL_CERT_FILE = "", SSL_CERT_DIR="" } } +# Clear SSL_CERT_DIR to avoid Julia warnings, see https://github.com/JuliaLang/Downloads.jl/issues/244 +update-registry-julia = { cmd = "julia --eval='using Pkg; Registry.update()'", env = { SSL_CERT_DIR = "" } } +instantiate-julia = { cmd = "julia --project --eval='using Pkg; Pkg.instantiate()'", env = { SSL_CERT_DIR = "" } } initialize-julia = { depends_on = [ "update-registry-julia", "instantiate-julia", ] } # Docs -build-julia-docs = { cmd = "julia --project docs/make.jl", depends_on = [ - "initialize-julia", -], inputs = [ - "core", - "docs/make.jl", -], outputs = [ - "docs/build", -] } quartodoc-build = { cmd = "quartodoc build && rm objects.json", cwd = "docs", inputs = [ "docs/_quarto.yml", "python/ribasim", @@ -62,7 +53,7 @@ quarto-render = { cmd = "julia --project --eval 'using Pkg; Pkg.build(\"IJulia\" "quartodoc-build", "generate-testmodels", ] } -docs = { depends_on = ["build-julia-docs", "quarto-preview"] } +docs = { depends_on = ["quarto-preview"] } # Lint mypy-ribasim-python = "mypy python/ribasim/ribasim" mypy-ribasim-testmodels = "mypy python/ribasim_testmodels/ribasim_testmodels" @@ -79,35 +70,46 @@ lint = { depends_on = [ build = { "cmd" = "julia --project build.jl", cwd = "build", depends_on = [ "generate-testmodels", "initialize-julia", -] } +], env = { SSL_CERT_DIR = "" } } remove-artifacts = "julia --eval 'rm(joinpath(Base.DEPOT_PATH[1], \"artifacts\"), force=true, recursive=true)'" # Tests test-ribasim-cli = "pytest --numprocesses=4 --basetemp=build/tests/temp --junitxml=report.xml build/tests" test-ribasim-core = { cmd = "julia --project=core --eval 'using Pkg; Pkg.test()'", depends_on = [ "generate-testmodels", ] } +test-ribasim-migration = { cmd = "pytest --numprocesses=4 -m regression python/ribasim/tests" } test-ribasim-core-cov = { cmd = "julia --project=core --eval 'using Pkg; Pkg.test(coverage=true, julia_args=[\"--check-bounds=yes\"])'", depends_on = [ "generate-testmodels", ] } +test-ribasim-regression = { cmd = "julia --project=core --eval 'using Pkg; Pkg.test(julia_args=[\"--check-bounds=yes\"], test_args=[\"regression\"])'", depends_on = [ + "generate-testmodels", + "test-ribasim-migration", +] } generate-testmodels = { cmd = "python utils/generate-testmodels.py", inputs = [ "python/ribasim", "python/ribasim_testmodels", + "utils/generate-testmodels.py", ], outputs = [ "generated_testmodels", ] } tests = { depends_on = ["lint", "test-ribasim-python", "test-ribasim-core"] } delwaq = { cmd = "pytest python/ribasim/tests/test_delwaq.py" } +gen-delwaq = { cmd = "python python/ribasim/ribasim/delwaq/generate.py" } +model-integration-test = { cmd = "julia --project=core --eval 'using Pkg; Pkg.test(test_args=[\"integration\"])'" } # Codegen -codegen = { cmd = "julia --project utils/gen_python.jl && ruff format python/ribasim/ribasim/schemas.py", depends_on = [ +codegen = { cmd = "julia --project utils/gen_python.jl && ruff format python/ribasim/ribasim/schemas.py python/ribasim/ribasim/validation.py", depends_on = [ "initialize-julia", ], inputs = [ "core", + "utils", ], outputs = [ "python/ribasim/ribasim/schemas.py", -], env = { SSL_CERT_FILE = "", SSL_CERT_DIR="" } } + "python/ribasim/ribasim/validation.py", +] } # Publish -build-ribasim-python-wheel = { cmd = "rm --recursive --force dist && python -m build && twine check dist/*", cwd = "python/ribasim" } -build-ribasim-api-wheel = { cmd = "rm --recursive --force dist && python -m build && twine check dist/*", cwd = "python/ribasim_api" } +add-ribasim-icon = { cmd = "rcedit build/ribasim/ribasim.exe --set-icon docs/assets/ribasim.ico" } +build-ribasim-python-wheel = { cmd = "rm --recursive --force dist && hatch build && twine check dist/*", cwd = "python/ribasim" } +build-ribasim-api-wheel = { cmd = "rm --recursive --force dist && hatch build && twine check dist/*", cwd = "python/ribasim_api" } build-wheels = { depends_on = [ "build-ribasim-python-wheel", "build-ribasim-api-wheel", @@ -123,18 +125,21 @@ qgis = "qgis --profiles-path .pixi/qgis_env" install-ribasim-qgis = "python ribasim_qgis/scripts/install_ribasim_qgis.py" install-imod-qgis = "python ribasim_qgis/scripts/install_qgis_plugin.py iMOD && python ribasim_qgis/scripts/enable_plugin.py imodqgis" install-plugin-reloader-qgis = "python ribasim_qgis/scripts/install_qgis_plugin.py \"Plugin Reloader\" && python ribasim_qgis/scripts/enable_plugin.py plugin_reloader" +install-debugvs-qgis = "python ribasim_qgis/scripts/install_qgis_plugin.py debugvs==0.7 && python ribasim_qgis/scripts/enable_plugin.py debug_vs" +test-ribasim-qgis-docker = { cmd = "sh ./start.sh; sh ./test.sh; sh ./stop.sh", cwd = ".docker" } install-qgis-plugins = { depends_on = [ "install-plugin-reloader-qgis", "install-ribasim-qgis", "install-imod-qgis", + "install-debugvs-qgis", ] } test-ribasim-qgis-ui = { cmd = "python ribasim_qgis/scripts/run_qgis_ui_tests.py", depends_on = [ "install-ribasim-qgis", ] } -test-ribasim-qgis = { cmd = "pytest --numprocesses=auto ribasim_qgis/tests", depends_on = [ +test-ribasim-qgis = { cmd = "pytest --numprocesses=auto ribasim_qgis/tests/core", depends_on = [ "install-ribasim-qgis", ] } -test-ribasim-qgis-cov = { cmd = "pytest --numprocesses=auto --cov=ribasim_qgis --cov-report=xml --cov-config=ribasim_qgis/.coveragerc ribasim_qgis/tests", depends_on = [ +test-ribasim-qgis-cov = { cmd = "pytest --numprocesses=auto --cov=ribasim_qgis --cov-report=xml --cov-config=ribasim_qgis/.coveragerc ribasim_qgis/tests/core", depends_on = [ "install-ribasim-qgis", ] } mypy-ribasim-qgis = "mypy ribasim_qgis" @@ -149,12 +154,26 @@ ribasim-core-testmodels = { cmd = "julia --project --threads=4 utils/testmodelru # Release github-release = "python utils/github-release.py" +[feature.dev.target.win.tasks] +# Workaround rare issue on Windows where the permissions of the artifacts directory are incorrect +# Upstream issue: https://github.com/JuliaLang/julia/issues/52272 +reset-artifact-permissions = "icacls $homedrive/$homepath/.julia/artifacts /q /c /t /reset" +install-ci = { depends_on = [ + "reset-artifact-permissions", + "install-julia", + "update-registry-julia", +] } + [dependencies] geopandas = "*" hatchling = "*" +ipykernel = ">=6.29" +ipywidgets = ">=8.1.3,<8.2" jinja2 = "*" matplotlib = "*" +minio = "*" netCDF4 = "*" +networkx = ">=3.3" numpy = "*" pandas = "*" pandas-stubs = "*" @@ -170,11 +189,10 @@ python = ">=3.10" shapely = ">=2.0" tomli = "*" tomli-w = "*" +xarray = "*" xmipy = "*" xugrid = "*" -xarray = "*" -networkx = ">=3.3" -ipykernel = ">=6.29" +teamcity-messages = ">=1.32,<2" [pypi-dependencies] ribasim = { path = "python/ribasim", editable = true } @@ -182,8 +200,8 @@ ribasim_api = { path = "python/ribasim_api", editable = true } ribasim_testmodels = { path = "python/ribasim_testmodels", editable = true } [feature.dev.dependencies] -build = "*" gh = "*" +hatch = "*" juliaup = "*" jupyterlab = "*" libgdal-arrow-parquet = "*" @@ -198,6 +216,9 @@ ruff = "*" rust = "*" twine = "*" +[feature.dev.pypi-dependencies] +ptvsd = "*" + [feature.py312.dependencies] python = "3.12.*" @@ -207,6 +228,9 @@ python = "3.11.*" [feature.py310.dependencies] python = "3.10.*" +[target.win-64.dependencies] +rcedit = "*" + [environments] default = { features = ["py312"], solve-group = "py312" } dev = { features = ["py312", "dev"], solve-group = "py312" } diff --git a/python/ribasim/README.md b/python/ribasim/README.md index feac02bb8..3d6da08a3 100644 --- a/python/ribasim/README.md +++ b/python/ribasim/README.md @@ -13,8 +13,8 @@ setup is fully reproducible. The package is [registered in PyPI](https://pypi.org/project/ribasim/) and can therefore be installed with `pip install ribasim`. -For documentation please see the [examples](https://deltares.github.io/Ribasim/python/examples.html) and [API reference](https://deltares.github.io/Ribasim/python/reference/). +For documentation please see the https://ribasim.org/ and [API reference](https://ribasim.org/reference/python/) # Contributing -For the developer docs please have a look at https://deltares.github.io/Ribasim/python/developer.html +For the developer docs please have a look at https://ribasim.org/dev/. diff --git a/python/ribasim/pyproject.toml b/python/ribasim/pyproject.toml index 045aeae38..7dc36afe0 100644 --- a/python/ribasim/pyproject.toml +++ b/python/ribasim/pyproject.toml @@ -31,13 +31,19 @@ dependencies = [ dynamic = ["version"] [project.optional-dependencies] -tests = ["pytest", "pytest-xdist", "pytest-cov", "ribasim_testmodels"] +tests = [ + "pytest", + "pytest-xdist", + "pytest-cov", + "ribasim_testmodels", + "teamcity-messages", +] netcdf = ["xugrid"] delwaq = ["jinja2", "networkx", "ribasim[netcdf]"] all = ["ribasim[tests]", "ribasim[netcdf]", "ribasim[delwaq]"] [project.urls] -Documentation = "https://deltares.github.io/Ribasim" +Documentation = "https://ribasim.org/" Source = "https://github.com/Deltares/Ribasim" [tool.hatch.version] @@ -45,3 +51,8 @@ path = "ribasim/__init__.py" [tool.hatch.build.targets.sdist] artifacts = ["delwaq/reference/*", "delwaq/template/*"] + +[tool.pytest.ini_options] +markers = [ + "regression: Older models that are not on the current database schema.", +] diff --git a/python/ribasim/ribasim/__init__.py b/python/ribasim/ribasim/__init__.py index 29155ebbc..26b54545a 100644 --- a/python/ribasim/ribasim/__init__.py +++ b/python/ribasim/ribasim/__init__.py @@ -1,5 +1,5 @@ -__version__ = "2024.9.0" - +__version__ = "2024.11.0" +__schema_version__ = 2 from ribasim.config import Allocation, Logging, Node, Solver from ribasim.geometry.edge import EdgeTable diff --git a/python/ribasim/ribasim/config.py b/python/ribasim/ribasim/config.py index e45970cbf..78a59e85e 100644 --- a/python/ribasim/ribasim/config.py +++ b/python/ribasim/ribasim/config.py @@ -1,7 +1,7 @@ import numbers from collections.abc import Sequence from enum import Enum -from typing import Any +from typing import Any, Optional import numpy as np import pandas as pd @@ -24,6 +24,8 @@ BasinStaticSchema, BasinSubgridSchema, BasinTimeSchema, + ContinuousControlFunctionSchema, + ContinuousControlVariableSchema, DiscreteControlConditionSchema, DiscreteControlLogicSchema, DiscreteControlVariableSchema, @@ -48,10 +50,22 @@ UserDemandStaticSchema, UserDemandTimeSchema, ) -from ribasim.utils import _pascal_to_snake +from ribasim.utils import _concat, _pascal_to_snake class Allocation(ChildModel): + """ + Defines the allocation optimization algorithm options. + + Attributes + ---------- + timestep : float + The simulated time in seconds between successive allocation calls (Optional, defaults to 86400) + use_allocation : bool + Whether the allocation algorithm should be active. If not, `UserDemand` nodes attempt to + abstract their full demand (Optional, defaults to False) + """ + timestep: float = 86400.0 use_allocation: bool = False @@ -64,6 +78,38 @@ class Results(ChildModel): class Solver(ChildModel): + """ + Defines the numerical solver options. + For more details see . + + Attributes + ---------- + algorithm : str + The used numerical time integration algorithm (Optional, defaults to QNDF) + saveat : float + Time interval in seconds between saves of output data. + 0 saves every timestep, inf only saves at start- and endtime. (Optional, defaults to 86400) + dt : float + Timestep of the solver. (Optional, defaults to None which implies adaptive timestepping) + dtmin : float + The minimum allowed timestep of the solver (Optional, defaults to 0.0) + dtmax : float + The maximum allowed timestep size (Optional, defaults to 0.0 which implies the total length of the simulation) + force_dtmin : bool + If a smaller dt than dtmin is needed to meet the set error tolerances, the simulation stops, unless force_dtmin = true + (Optional, defaults to False) + abstol : float + The absolute tolerance for adaptive timestepping (Optional, defaults to 1e-7) + reltol : float + The relative tolerance for adaptive timestepping (Optional, defaults to 1e-7) + maxiters : int + The total number of linear iterations over the whole simulation. (Defaults to 1e9, only needs to be increased for extremely long simulations) + sparse : bool + Whether a sparse Jacobian matrix is used, which gives a significant speedup for models with >~10 basins. + autodiff : bool + Whether automatic differentiation instead of fine difference is used to compute the Jacobian. (Optional, defaults to true) + """ + algorithm: str = "QNDF" saveat: float = 86400.0 dt: float | None = None @@ -74,7 +120,8 @@ class Solver(ChildModel): reltol: float = 1e-05 maxiters: int = 1000000000 sparse: bool = True - autodiff: bool = True + autodiff: bool = False + evaporate_mass: bool = True class Verbosity(str, Enum): @@ -85,26 +132,69 @@ class Verbosity(str, Enum): class Logging(ChildModel): + """ + Defines the logging behavior of the core. + + Attributes + ---------- + verbosity : Verbosity + The verbosity of the logging: debug/info/warn/error (Optional, defaults to info) + """ + verbosity: Verbosity = Verbosity.info - timing: bool = False + + +class Experimental(ChildModel): + """ + Defines experimental features. + + Attributes + ---------- + concentration : bool + Whether to enable tracer support (default is False) + """ + + concentration: bool = False class Node(pydantic.BaseModel): - node_id: NonNegativeInt + """ + Defines a node for the model. + + Attributes + ---------- + node_id : Optional[NonNegativeInt] + Integer ID of the node. Must be unique for the model. + geometry : shapely.geometry.Point + The coordinates of the node. + name : str + An optional name of the node. + subnetwork_id : int + Optionally adds this node to a subnetwork, which is input for the allocation algorithm. + """ + + node_id: Optional[NonNegativeInt] = None geometry: Point name: str = "" subnetwork_id: int | None = None model_config = ConfigDict(arbitrary_types_allowed=True, extra="allow") - def __init__(self, node_id: int, geometry: Point, **kwargs) -> None: + def __init__( + self, + node_id: Optional[NonNegativeInt] = None, + geometry: Point = Point(), + **kwargs, + ) -> None: + if geometry.is_empty: + raise (ValueError("Node geometry must be a valid Point")) super().__init__(node_id=node_id, geometry=geometry, **kwargs) - def into_geodataframe(self, node_type: str) -> GeoDataFrame: + def into_geodataframe(self, node_type: str, node_id: int) -> GeoDataFrame: extra = self.model_extra if self.model_extra is not None else {} - return GeoDataFrame( + gdf = GeoDataFrame( data={ - "node_id": pd.Series([self.node_id], dtype=np.int32), + "node_id": pd.Series([node_id], dtype=np.int32), "node_type": pd.Series([node_type], dtype=str), "name": pd.Series([self.name], dtype=str), "subnetwork_id": pd.Series([self.subnetwork_id], dtype=pd.Int32Dtype()), @@ -112,6 +202,8 @@ def into_geodataframe(self, node_type: str) -> GeoDataFrame: }, geometry=[self.geometry], ) + gdf.set_index("node_id", inplace=True) + return gdf class MultiNodeModel(NodeModel): @@ -123,14 +215,36 @@ def filter(self) -> "MultiNodeModel": self.node.filter(self.__class__.__name__) return self - def add(self, node: Node, tables: Sequence[TableModel[Any]] | None = None) -> None: + def add( + self, node: Node, tables: Sequence[TableModel[Any]] | None = None + ) -> NodeData: + """Add a node and the associated data to the model. + + Parameters + ---------- + node : Ribasim.Node + tables : Sequence[TableModel[Any]] | None + + Raises + ------ + ValueError + When the given node ID already exists for this node type + """ if tables is None: tables = [] node_id = node.node_id - if self.node.df is not None and node_id in self.node.df["node_id"].to_numpy(): + + if self._parent is None: raise ValueError( - f"Node IDs have to be unique, but {node_id=} already exists." + f"You can only add to a {self._node_type} MultiNodeModel when attached to a Model." + ) + + if node_id is None: + node_id = self._parent._used_node_ids.new_id() + elif node_id in self._parent._used_node_ids: + raise ValueError( + f"Node IDs have to be unique, but {node_id} already exists." ) for table in tables: @@ -141,16 +255,23 @@ def add(self, node: Node, tables: Sequence[TableModel[Any]] | None = None) -> No ) assert table.df is not None table_to_append = table.df.assign(node_id=node_id) - setattr(self, member_name, pd.concat([existing_table, table_to_append])) + if isinstance(table_to_append, GeoDataFrame): + table_to_append.set_crs(self._parent.crs, inplace=True) + new_table = _concat([existing_table, table_to_append], ignore_index=True) + setattr(self, member_name, new_table) node_table = node.into_geodataframe( - node_type=self.__class__.__name__, - ) - self.node.df = ( - node_table - if self.node.df is None - else pd.concat([self.node.df, node_table]) + node_type=self.__class__.__name__, node_id=node_id ) + node_table.set_crs(self._parent.crs, inplace=True) + if self.node.df is None: + self.node.df = node_table + else: + df = _concat([self.node.df, node_table]) + self.node.df = df + + self._parent._used_node_ids.add(node_id) + return self[node_id] def __getitem__(self, index: int) -> NodeData: # Unlike TableModel, support only indexing single rows. @@ -161,7 +282,7 @@ def __getitem__(self, index: int) -> NodeData: f"{node_model_name} index must be an integer, not {indextype}" ) - row = self.node[index].iloc[0] + row = self.node.df.loc[index] return NodeData( node_id=int(index), node_type=row["node_type"], geometry=row["geometry"] ) @@ -314,7 +435,6 @@ class DiscreteControl(MultiNodeModel): json_schema_extra={ "sort_keys": [ "node_id", - "listen_node_type", "listen_node_id", "variable", ] @@ -348,3 +468,14 @@ class LinearResistance(MultiNodeModel): default_factory=TableModel[LinearResistanceStaticSchema], json_schema_extra={"sort_keys": ["node_id", "control_state"]}, ) + + +class ContinuousControl(MultiNodeModel): + variable: TableModel[ContinuousControlVariableSchema] = Field( + default_factory=TableModel[ContinuousControlVariableSchema], + json_schema_extra={"sort_keys": ["node_id"]}, + ) + function: TableModel[ContinuousControlFunctionSchema] = Field( + default_factory=TableModel[ContinuousControlFunctionSchema], + json_schema_extra={"sort_keys": ["node_id", "input"]}, + ) diff --git a/python/ribasim/ribasim/db_utils.py b/python/ribasim/ribasim/db_utils.py new file mode 100644 index 000000000..e85e1e31e --- /dev/null +++ b/python/ribasim/ribasim/db_utils.py @@ -0,0 +1,65 @@ +from contextlib import closing +from pathlib import Path +from sqlite3 import Connection, connect + + +def esc_id(identifier: str) -> str: + """Escape SQLite identifiers.""" + identifier = identifier.replace('"', '""') + return f'"{identifier}"' + + +def exists(connection: Connection, name: str) -> bool: + """Check if a table exists in a SQLite database.""" + with closing(connection.cursor()) as cursor: + cursor.execute( + "SELECT name FROM sqlite_master WHERE type='table' AND name=?", (name,) + ) + result = cursor.fetchone() + return result is not None + + +def _set_gpkg_attribute_table(connection: Connection, table: str) -> None: + # Set geopackage attribute table + with closing(connection.cursor()) as cursor: + sql = "INSERT OR REPLACE INTO gpkg_contents (table_name, data_type, identifier) VALUES (?, ?, ?)" + cursor.execute(sql, (table, "attributes", table)) + connection.commit() + + +CREATE_TABLE_SQL = """ +CREATE TABLE IF NOT EXISTS ribasim_metadata ( + key TEXT PRIMARY KEY, + value TEXT +); +""" + + +def _get_db_schema_version(db_path: Path) -> int: + """ + Get the schema version of the database. + + For older models, the version is assumed to be zero, + which is smaller than the initial schema version of the database. + """ + with closing(connect(db_path)) as connection: + if not exists(connection, "ribasim_metadata"): + return 0 + with closing(connection.cursor()) as cursor: + cursor.execute( + "SELECT value FROM ribasim_metadata WHERE key='schema_version'" + ) + return int(cursor.fetchone()[0]) + + +def _set_db_schema_version(db_path: Path, version: int = 1) -> None: + with closing(connect(db_path)) as connection: + if not exists(connection, "metadata"): + with closing(connection.cursor()) as cursor: + cursor.execute(CREATE_TABLE_SQL) + cursor.execute( + "INSERT OR REPLACE INTO ribasim_metadata (key, value) VALUES ('schema_version', ?)", + (version,), + ) + _set_gpkg_attribute_table(connection, "ribasim_metadata") + connection.commit() diff --git a/python/ribasim/ribasim/delwaq/__init__.py b/python/ribasim/ribasim/delwaq/__init__.py index 9a7ac18f0..9aaec6658 100644 --- a/python/ribasim/ribasim/delwaq/__init__.py +++ b/python/ribasim/ribasim/delwaq/__init__.py @@ -1,6 +1,14 @@ -from .generate import generate +from .generate import add_tracer, generate from .parse import parse -from .plot import plot +from .plot import plot_fraction, plot_spatial from .util import run_delwaq -__all__ = ["generate", "parse", "run_delwaq", "plot"] +__all__ = [ + "generate", + "parse", + "run_delwaq", + "plot", + "add_tracer", + "plot_fraction", + "plot_spatial", +] diff --git a/python/ribasim/ribasim/delwaq/generate.py b/python/ribasim/ribasim/delwaq/generate.py index fdfbd0c6e..44c6f4355 100644 --- a/python/ribasim/ribasim/delwaq/generate.py +++ b/python/ribasim/ribasim/delwaq/generate.py @@ -1,11 +1,14 @@ """Setup a Delwaq model from a Ribasim model and results.""" +import argparse import csv +import logging import shutil from datetime import timedelta from pathlib import Path -from ribasim.utils import MissingOptionalModule +from ribasim import nodes +from ribasim.utils import MissingOptionalModule, _concat, _pascal_to_snake try: import networkx as nx @@ -21,8 +24,7 @@ jinja2 = MissingOptionalModule("jinja2", "delwaq") # type: ignore import ribasim - -from .util import ( +from ribasim.delwaq.util import ( strfdelta, ugrid, write_flows, @@ -30,7 +32,9 @@ write_volumes, ) +logger = logging.getLogger(__name__) delwaq_dir = Path(__file__).parent +output_path = delwaq_dir / "model" env = jinja2.Environment( autoescape=True, loader=jinja2.FileSystemLoader(delwaq_dir / "template") @@ -41,37 +45,71 @@ USE_EVAP = True -def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: - """Generate a Delwaq model from a Ribasim model and results.""" - - # Read in model and results - model = ribasim.Model.read(toml_path) - basins = pd.read_feather(toml_path.parent / "results" / "basin.arrow") - flows = pd.read_feather(toml_path.parent / "results" / "flow.arrow") +def _boundary_name(id, type): + # Delwaq has a limit of 12 characters for the boundary name + return type[:9] + "_" + str(id) + + +def _quote(value): + return f"'{value}'" + + +def _make_boundary(data, boundary_type): + """ + Create a Delwaq boundary definition with the given data and boundary type. + Pivot our data from long to wide format, and convert the time to a string. + + Specifically, we go from a table: + `node_id, substance, time, concentration` + to + ``` + ITEM 'Drainage_6' + CONCENTRATIONS 'Cl' 'Tracer' + ABSOLUTE TIME + LINEAR DATA 'Cl' 'Tracer' + '2020/01/01-00:00:00' 0.0 1.0 + '2020/01/02-00:00:00' 1.0 -999 + ``` + """ + bid = _boundary_name(data.node_id.iloc[0], boundary_type) + piv = ( + data.pivot_table( + index="time", columns="substance", values="concentration", fill_value=-999 + ) + .reset_index() + .reset_index(drop=True) + ) + # Convert Arrow time to Numpy to avoid needing tzdata somehow + piv.time = piv.time.astype("datetime64[ns]").dt.strftime("%Y/%m/%d-%H:%M:%S") + boundary = { + "name": bid, + "substances": list(map(_quote, piv.columns[1:])), + "df": piv.to_string(formatters={"time": _quote}, header=False, index=False), + } + substances = data.substance.unique() + return boundary, substances - output_folder = delwaq_dir / "model" - output_folder.mkdir(exist_ok=True) - # Setup flow network +def _setup_graph(nodes, edge, evaporate_mass=True): G = nx.DiGraph() - nodes = model.node_table() + assert nodes.df is not None for row in nodes.df.itertuples(): if row.node_type not in ribasim.geometry.edge.SPATIALCONTROLNODETYPES: G.add_node( - f"{row.node_type} #{row.node_id}", + row.Index, type=row.node_type, - id=row.node_id, + id=row.Index, x=row.geometry.x, y=row.geometry.y, pos=(row.geometry.x, row.geometry.y), ) - assert model.edge.df is not None - for row in model.edge.df.itertuples(): + assert edge.df is not None + for row in edge.df.itertuples(): if row.edge_type == "flow": G.add_edge( - f"{row.from_node_type} #{row.from_node_id}", - f"{row.to_node_type} #{row.to_node_id}", + row.from_node_id, + row.to_node_id, id=[row.Index], duplicate=None, ) @@ -95,7 +133,7 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: for outneighbor_id in out.keys(): if outneighbor_id in remove_nodes: - print("Not making edge to removed node.") + logger.debug("Not making edge to removed node.") continue edge = (inneighbor_id, outneighbor_id) edge_id = G.get_edge_data(node_id, outneighbor_id)["id"][0] @@ -105,6 +143,11 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: else: G.add_edge(*edge, id=[edge_id]) + iso = nx.number_of_isolates(G) + if iso > 0: + logger.debug(f"Found {iso} isolated nodes in the network.") + remove_nodes.extend(list(nx.isolates(G))) + for node_id in remove_nodes: G.remove_node(node_id) @@ -120,13 +163,27 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: G.nodes[loop[0]]["type"] != "UserDemand" and G.nodes[loop[1]]["type"] != "UserDemand" ): - print("Found cycle that is not a UserDemand.") + logger.debug("Found cycle that is not a UserDemand.") else: edge_ids = G.edges[loop]["id"] G.edges[reversed(loop)]["id"].extend(edge_ids) merge_edges.extend(edge_ids) G.remove_edge(*loop) + # Remove boundary to boundary edges + remove_double_edges = [] + for x in G.edges(data=True): + a, b, d = x + if G.nodes[a]["type"] == "Terminal" and G.nodes[b]["type"] == "UserDemand": + logger.debug("Removing edge between Terminal and UserDemand") + remove_double_edges.append(a) + elif G.nodes[a]["type"] == "UserDemand" and G.nodes[b]["type"] == "Terminal": + remove_double_edges.append(b) + logger.debug("Removing edge between UserDemand and Terminal") + + for node_id in remove_double_edges: + G.remove_node(node_id) + # Relabel the nodes as consecutive integers for Delwaq # Note that the node["id"] is the original node_id basin_id = 0 @@ -147,7 +204,7 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: boundary_id -= 1 node_mapping[node_id] = boundary_id else: - raise Exception("Found unexpected node $node_id in delwaq graph.") + raise ValueError(f"Found unexpected node {node_id} in delwaq graph.") nx.relabel_nodes(G, node_mapping, copy=False) @@ -184,7 +241,7 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: boundary=(node["id"], "precipitation"), ) - if USE_EVAP: + if evaporate_mass: boundary_id -= 1 G.add_node( boundary_id, @@ -206,6 +263,63 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: for edge_id in d["id"]: edge_mapping[edge_id] = i + assert len(basin_mapping) == basin_id + + return G, merge_edges, node_mapping, edge_mapping, basin_mapping + + +def _setup_boundaries(model): + boundaries = [] + substances = set() + + if model.level_boundary.concentration.df is not None: + for _, rows in model.level_boundary.concentration.df.groupby(["node_id"]): + boundary, substance = _make_boundary(rows, "LevelBoundary") + boundaries.append(boundary) + substances.update(substance) + + if model.flow_boundary.concentration.df is not None: + for _, rows in model.flow_boundary.concentration.df.groupby("node_id"): + boundary, substance = _make_boundary(rows, "FlowBoundary") + boundaries.append(boundary) + substances.update(substance) + + if model.basin.concentration.df is not None: + for _, rows in model.basin.concentration.df.groupby(["node_id"]): + for boundary_type in ("Drainage", "Precipitation"): + nrows = rows.rename(columns={boundary_type.lower(): "concentration"}) + boundary, substance = _make_boundary(nrows, boundary_type) + boundaries.append(boundary) + substances.update(substance) + + return boundaries, substances + + +def generate( + toml_path: Path, + output_path: Path = output_path, +) -> tuple[nx.DiGraph, set[str]]: + """Generate a Delwaq model from a Ribasim model and results.""" + + # Read in model and results + model = ribasim.Model.read(toml_path) + results_folder = toml_path.parent / model.results_dir + evaporate_mass = model.solver.evaporate_mass + + basins = pd.read_feather( + toml_path.parent / results_folder / "basin.arrow", dtype_backend="pyarrow" + ) + flows = pd.read_feather( + toml_path.parent / results_folder / "flow.arrow", dtype_backend="pyarrow" + ) + + output_path.mkdir(exist_ok=True) + + # Setup flow network + G, merge_edges, node_mapping, edge_mapping, basin_mapping = _setup_graph( + model.node_table(), model.edge, evaporate_mass=evaporate_mass + ) + # Plot # plt.figure(figsize=(18, 18)) # nx.draw( @@ -224,15 +338,22 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: # Write topology to delwaq pointer file pointer = pd.DataFrame(G.edges(), columns=["from_node_id", "to_node_id"]) - pointer.to_csv(output_folder / "network.csv", index=False) # not needed - write_pointer(output_folder / "ribasim.poi", pointer) + write_pointer(output_path / "ribasim.poi", pointer) + pointer["riba_edge_id"] = [e[2] for e in G.edges.data("id")] + pointer["riba_from_node_id"] = pointer["from_node_id"].map( + {v: k for k, v in node_mapping.items()} + ) + pointer["riba_to_node_id"] = pointer["to_node_id"].map( + {v: k for k, v in node_mapping.items()} + ) + pointer.to_csv(output_path / "network.csv", index=False) # not needed - total_segments = basin_id + total_segments = len(basin_mapping) total_exchanges = len(pointer) # Write attributes template template = env.get_template("delwaq.atr.j2") - with open(output_folder / "ribasim.atr", mode="w") as f: + with open(output_path / "ribasim.atr", mode="w") as f: f.write( template.render( nsegments=total_segments, @@ -241,7 +362,7 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: # Generate mesh and write to NetCDF uds = ugrid(G) - uds.ugrid.to_netcdf(output_folder / "ribasim.nc") + uds.ugrid.to_netcdf(output_path / "ribasim.nc") # Generate area and flows # File format is int32, float32 based @@ -254,13 +375,14 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: flows.loc[m, "flow_rate"] = flows.loc[m, "flow_rate"] * -1 # Map edge_id to the new edge_id and merge any duplicate flows + flows["riba_edge_id"] = flows["edge_id"] flows["edge_id"] = flows["edge_id"].map(edge_mapping) flows.dropna(subset=["edge_id"], inplace=True) flows["edge_id"] = flows["edge_id"].astype("int32") nflows = flows.copy() nflows = flows.groupby(["time", "edge_id"]).sum().reset_index() nflows.drop( - columns=["from_node_id", "from_node_type", "to_node_id", "to_node_type"], + columns=["from_node_id", "to_node_id"], inplace=True, ) @@ -274,108 +396,47 @@ def generate(toml_path: Path) -> tuple[nx.DiGraph, set[str]]: columns={boundary_type: "flow_rate"} ) df["edge_id"] = edge_id - nflows = pd.concat([nflows, df], ignore_index=True) + nflows = _concat([nflows, df], ignore_index=True) # Save flows to Delwaq format nflows.sort_values(by=["time", "edge_id"], inplace=True) - nflows.to_csv(output_folder / "flows.csv", index=False) # not needed + nflows.to_csv(output_path / "flows.csv", index=False) # not needed nflows.drop( - columns=["edge_id"], + columns=["edge_id", "riba_edge_id"], inplace=True, ) - write_flows(output_folder / "ribasim.flo", nflows, timestep) + write_flows(output_path / "ribasim.flo", nflows, timestep) write_flows( - output_folder / "ribasim.are", nflows, timestep + output_path / "ribasim.are", nflows, timestep ) # same as flow, so area becomes 1 # Write volumes to Delwaq format basins.drop(columns=["level"], inplace=True) volumes = basins[["time", "node_id", "storage"]] + volumes["riba_node_id"] = volumes["node_id"] volumes.loc[:, "node_id"] = ( volumes["node_id"].map(basin_mapping).astype(pd.Int32Dtype()) ) volumes = volumes.sort_values(by=["time", "node_id"]) - volumes.to_csv(output_folder / "volumes.csv", index=False) # not needed - volumes.drop(columns=["node_id"], inplace=True) - write_volumes(output_folder / "ribasim.vol", volumes, timestep) + volumes.to_csv(output_path / "volumes.csv", index=False) # not needed + volumes.drop(columns=["node_id", "riba_node_id"], inplace=True) + write_volumes(output_path / "ribasim.vol", volumes, timestep) write_volumes( - output_folder / "ribasim.vel", volumes, timestep + output_path / "ribasim.vel", volumes, timestep ) # same as volume, so vel becomes 1 # Length file lengths = nflows.copy() lengths.flow_rate = 1 lengths.iloc[np.repeat(np.arange(len(lengths)), 2)] - write_flows(output_folder / "ribasim.len", lengths, timestep) + write_flows(output_path / "ribasim.len", lengths, timestep) # Find all boundary substances and concentrations - boundaries = [] - substances = set() - - def boundary_name(id, type): - # Delwaq has a limit of 12 characters for the boundary name - return type[:9] + "_" + str(id) - - def quote(value): - return f"'{value}'" - - def make_boundary(data, boundary_type): - """ - Create a Delwaq boundary definition with the given data and boundary type. - Pivot our data from long to wide format, and convert the time to a string. - - Specifically, we go from a table: - `node_id, substance, time, concentration` - to - ``` - ITEM 'Drainage_6' - CONCENTRATIONS 'Cl' 'Tracer' - ABSOLUTE TIME - LINEAR DATA 'Cl' 'Tracer' - '2020/01/01-00:00:00' 0.0 1.0 - '2020/01/02-00:00:00' 1.0 -999 - ``` - """ - bid = boundary_name(data.node_id.iloc[0], boundary_type) - piv = ( - data.pivot_table(index="time", columns="substance", values="concentration") - .reset_index() - .reset_index(drop=True) - ) - piv.time = piv.time.dt.strftime("%Y/%m/%d-%H:%M:%S") - boundary = { - "name": bid, - "substances": list(map(quote, piv.columns[1:])), - "df": piv.to_string( - formatters={"time": quote}, header=False, index=False, na_rep=-999 - ), - } - substances = data.substance.unique() - return boundary, substances - - if model.level_boundary.concentration.df is not None: - for _, rows in model.level_boundary.concentration.df.groupby(["node_id"]): - boundary, substance = make_boundary(rows, "LevelBoundary") - boundaries.append(boundary) - substances.update(substance) - - if model.flow_boundary.concentration.df is not None: - for _, rows in model.flow_boundary.concentration.df.groupby("node_id"): - boundary, substance = make_boundary(rows, "FlowBoundary") - boundaries.append(boundary) - substances.update(substance) - - if model.basin.concentration.df is not None: - for _, rows in model.basin.concentration.df.groupby(["node_id"]): - for boundary_type in ("Drainage", "Precipitation"): - nrows = rows.rename(columns={boundary_type.lower(): "concentration"}) - boundary, substance = make_boundary(nrows, boundary_type) - boundaries.append(boundary) - substances.update(substance) + boundaries, substances = _setup_boundaries(model) # Write boundary data with substances and concentrations template = env.get_template("B5_bounddata.inc.j2") - with open(output_folder / "B5_bounddata.inc", mode="w") as f: + with open(output_path / "B5_bounddata.inc", mode="w") as f: f.write( template.render( states=[], # no states yet @@ -386,10 +447,13 @@ def make_boundary(data, boundary_type): # Setup initial basin concentrations defaults = { "Continuity": 1.0, - "Basin": 0.0, + "Initial": 1.0, "LevelBoundary": 0.0, "FlowBoundary": 0.0, "Terminal": 0.0, + "UserDemand": 0.0, + "Precipitation": 0.0, + "Drainage": 0.0, } substances.update(defaults.keys()) @@ -427,11 +491,15 @@ def make_boundary(data, boundary_type): bnd.sort_values(by="bid", ascending=False, inplace=True) bnd["node_type"] = [G.nodes(data="type")[bid] for bid in bnd["bid"]] bnd["node_id"] = [G.nodes(data="id")[bid] for bid in bnd["bid"]] - bnd["fid"] = list(map(boundary_name, bnd["node_id"], bnd["node_type"])) + bnd["fid"] = list(map(_boundary_name, bnd["node_id"], bnd["node_type"])) bnd["comment"] = "" + bnd.to_csv(output_path / "bndlist.csv", index=False) bnd = bnd[["fid", "comment", "node_type"]] + bnd.drop_duplicates(subset="fid", inplace=True) + assert bnd["fid"].is_unique + bnd.to_csv( - output_folder / "ribasim_bndlist.inc", + output_path / "ribasim_bndlist.inc", index=False, header=False, sep=" ", @@ -441,11 +509,11 @@ def make_boundary(data, boundary_type): # Setup DIMR configuration for running Delwaq via DIMR dimrc = delwaq_dir / "reference/dimr_config.xml" - shutil.copy(dimrc, output_folder / "dimr_config.xml") + shutil.copy(dimrc, output_path / "dimr_config.xml") # Write main Delwaq input file template = env.get_template("delwaq.inp.j2") - with open(output_folder / "delwaq.inp", mode="w") as f: + with open(output_path / "delwaq.inp", mode="w") as f: f.write( template.render( startime=model.starttime, @@ -463,8 +531,50 @@ def make_boundary(data, boundary_type): return G, substances +def add_tracer(model, node_id, tracer_name): + """Add a tracer to the Delwaq model.""" + n = model.node_table().df.loc[node_id] + node_type = n.node_type + if node_type not in [ + "Basin", + "LevelBoundary", + "FlowBoundary", + "UserDemand", + ]: + raise ValueError("Can only trace Basins and boundaries") + snake_node_type = _pascal_to_snake(node_type) + nt = getattr(model, snake_node_type) + + ct = getattr(nodes, snake_node_type) + table = ct.Concentration( + node_id=[node_id], + time=[model.starttime], + substance=[tracer_name], + concentration=[1.0], + ) + if nt.concentration is None: + nt.concentration = table + else: + nt.concentration = pd.concat([nt.concentration.df, table.df], ignore_index=True) + + if __name__ == "__main__": # Generate a Delwaq model from the default Ribasim model - repo_dir = delwaq_dir.parents[1] - toml_path = repo_dir / "generated_testmodels/basic/ribasim.toml" - graph, substances = generate(toml_path) + + parser = argparse.ArgumentParser( + description="Generate Delwaq input from Ribasim results." + ) + parser.add_argument( + "toml_path", type=Path, help="The path to the Ribasim TOML file." + ) + parser.add_argument( + "--output_path", + type=Path, + help="The relative path to store the Delwaq model.", + default="delwaq", + ) + args = parser.parse_args() + + graph, substances = generate( + args.toml_path, args.toml_path.parent / args.output_path + ) diff --git a/python/ribasim/ribasim/delwaq/parse.py b/python/ribasim/ribasim/delwaq/parse.py index 7c0001e8c..0e87a24f4 100644 --- a/python/ribasim/ribasim/delwaq/parse.py +++ b/python/ribasim/ribasim/delwaq/parse.py @@ -2,10 +2,8 @@ from pathlib import Path -import pandas as pd - import ribasim -from ribasim.utils import MissingOptionalModule +from ribasim.utils import MissingOptionalModule, _concat try: import xugrid as xu @@ -17,7 +15,9 @@ output_folder = delwaq_dir / "model" -def parse(toml_path: Path, graph, substances) -> ribasim.Model: +def parse( + toml_path: Path, graph, substances, output_folder=output_folder +) -> ribasim.Model: model = ribasim.Model.read(toml_path) # Output of Delwaq @@ -47,7 +47,7 @@ def parse(toml_path: Path, graph, substances) -> ribasim.Model: dfs.append(df) - df = pd.concat(dfs).reset_index(drop=True) + df = _concat(dfs).reset_index(drop=True) df.sort_values(["time", "node_id"], inplace=True) model.basin.concentration_external = df diff --git a/python/ribasim/ribasim/delwaq/plot.py b/python/ribasim/ribasim/delwaq/plot.py index 52a508221..430dbf079 100644 --- a/python/ribasim/ribasim/delwaq/plot.py +++ b/python/ribasim/ribasim/delwaq/plot.py @@ -1,2 +1,93 @@ -def plot(): - pass +import matplotlib.pyplot as plt +import numpy as np +from mpl_toolkits.axes_grid1 import make_axes_locatable + + +def plot_fraction( + model, + node_id, + tracers=[ + "LevelBoundary", + "FlowBoundary", + "UserDemand", + "Initial", + "Drainage", + "Precipitation", + "Terminal", + ], +): + table = model.basin.concentration_external.df + table = table[table["node_id"] == node_id] + table = table[table["substance"].isin(tracers)] + + groups = table.groupby("substance") + stack = {k: v["concentration"].to_numpy() for (k, v) in groups} + + fig, ax = plt.subplots() + ax.stackplot( + groups.get_group(tracers[0])["time"], + stack.values(), + labels=stack.keys(), + ) + ax.plot( + groups.get_group(tracers[0])["time"], + np.sum(list(stack.values()), axis=0), + c="black", + lw=2, + ) + ax.legend() + ax.set_title(f"Fraction plot for node {node_id}") + ax.set_xlabel("Time") + ax.set_ylabel("Fraction") + + plt.show(fig) + + +def plot_spatial(model, tracer="Basin", versus=None, limit=0.001): + table = model.basin.concentration_external.df + table = table[table["time"] == table["time"].max()] + + if versus is not None: + vtable = table[table["substance"] == versus] + vtable.set_index("node_id", inplace=True) + table = table[table["substance"] == tracer] + table.set_index("node_id", inplace=True) + + nodes = model.node_table().df + nodes = nodes[nodes.index.isin(table.index)] + + if versus is None: + c = table["concentration"][nodes.index] + alpha = c > limit + else: + alpha = ( + table["concentration"][nodes.index] + vtable["concentration"][nodes.index] + ) + c = table["concentration"][nodes.index] / alpha + + fig, ax = plt.subplots() + s = ax.scatter( + nodes.geometry.x, + nodes.geometry.y, + c=c, + clim=(0, 1), + alpha=alpha, + ) + dt = table["time"].iloc[0] + if versus is None: + ax.set_title(f"Scatter plot for {tracer} tracer at {dt}") + else: + ax.set_title(f"Scatter plot for {tracer} vs {versus} tracer at {dt}") + + divider = make_axes_locatable(ax) + cax = divider.append_axes("right", size="5%", pad=0.05) + + fig.colorbar(s, cax=cax, orientation="vertical") + if versus is not None: + cax.set_ylabel(f"{tracer} fraction vs {versus} fraction") + else: + cax.set_ylabel(f"Overall {tracer} fraction") + ax.set_xlabel("x") + ax.set_ylabel("y") + + plt.show(fig) diff --git a/python/ribasim/ribasim/delwaq/template/B5_bounddata.inc.j2 b/python/ribasim/ribasim/delwaq/template/B5_bounddata.inc.j2 index e1a9b115c..f2ba7f5ce 100644 --- a/python/ribasim/ribasim/delwaq/template/B5_bounddata.inc.j2 +++ b/python/ribasim/ribasim/delwaq/template/B5_bounddata.inc.j2 @@ -3,8 +3,8 @@ CONCENTRATIONS 'Continuity' 'LevelBoundary' DATA 1 1 ITEM 'Terminal' -CONCENTRATIONS 'Continuity' -DATA 1 +CONCENTRATIONS 'Terminal' 'Continuity' +DATA 1 1 ITEM 'FlowBoundary' CONCENTRATIONS 'Continuity' 'FlowBoundary' @@ -18,6 +18,10 @@ ITEM 'Precipitation' CONCENTRATIONS 'Continuity' 'Precipitation' DATA 1 1 +ITEM 'UserDemand' +CONCENTRATIONS 'Continuity' 'UserDemand' +DATA 1 1 + {% for boundary in boundaries -%} ITEM '{{ boundary.name }}' CONCENTRATIONS {{ boundary.substances | join(' ') | safe }} diff --git a/python/ribasim/ribasim/delwaq/template/delwaq.inp.j2 b/python/ribasim/ribasim/delwaq/template/delwaq.inp.j2 index f9f9793d7..9ff923fa8 100644 --- a/python/ribasim/ribasim/delwaq/template/delwaq.inp.j2 +++ b/python/ribasim/ribasim/delwaq/template/delwaq.inp.j2 @@ -77,7 +77,7 @@ INCLUDE 'ribasim.atr' ; From UI: attributes file 1.0 1.0 1.0 ; Scale factors for 3 directions ; Default dispersion: -1 0.0 1E-07 ; constant dispersion +0.0 0.0 0.0 ; constant dispersion ; Area file -2 ; areas will be interpolated from a binary file diff --git a/python/ribasim/ribasim/delwaq/util.py b/python/ribasim/ribasim/delwaq/util.py index 3726fb9cb..8db0a0c5c 100644 --- a/python/ribasim/ribasim/delwaq/util.py +++ b/python/ribasim/ribasim/delwaq/util.py @@ -122,7 +122,7 @@ def ugrid(G) -> xugrid.UgridDataset: to_node_id = edge_df.to_node_id.to_numpy() # from node_id to the node_dim index - node_lookup: pd.Series[int] = pd.Series( + node_lookup = pd.Series( index=node_id, data=node_id.argsort().astype(np.int32), name="node_index", @@ -168,8 +168,9 @@ def run_delwaq() -> None: subprocess.run( [binfolder / "run_delwaq.bat", "delwaq.inp"], cwd=(folder / "model").absolute(), + check=True, ) elif system == "Linux": - subprocess.run([binfolder / "run_delwaq.sh", inp_path.absolute()]) + subprocess.run([binfolder / "run_delwaq.sh", inp_path.absolute()], check=True) else: raise OSError(f"No support for running Delwaq automatically on {system}.") diff --git a/python/ribasim/ribasim/geometry/area.py b/python/ribasim/ribasim/geometry/area.py index d6aa448c1..fd9ad3e8e 100644 --- a/python/ribasim/ribasim/geometry/area.py +++ b/python/ribasim/ribasim/geometry/area.py @@ -1,13 +1,19 @@ -from typing import Any - import pandera as pa from pandera.dtypes import Int32 -from pandera.typing import Series +from pandera.typing import Index, Series from pandera.typing.geopandas import GeoSeries +from shapely.geometry import MultiPolygon, Polygon -from ribasim.schemas import _BaseSchema +from .base import _GeoBaseSchema -class BasinAreaSchema(_BaseSchema): +class BasinAreaSchema(_GeoBaseSchema): + fid: Index[Int32] = pa.Field(default=0, check_name=True) node_id: Series[Int32] = pa.Field(nullable=False, default=0) - geometry: GeoSeries[Any] = pa.Field(default=None, nullable=True) + geometry: GeoSeries[MultiPolygon] = pa.Field(default=None, nullable=True) + + @pa.parser("geometry") + def convert_to_multi(cls, series): + return series.apply( + lambda geom: MultiPolygon([geom]) if isinstance(geom, Polygon) else geom + ) diff --git a/python/ribasim/ribasim/geometry/base.py b/python/ribasim/ribasim/geometry/base.py new file mode 100644 index 000000000..4e86335d9 --- /dev/null +++ b/python/ribasim/ribasim/geometry/base.py @@ -0,0 +1,14 @@ +from typing import Any, get_type_hints + +import pandera as pa +from pandera.typing import Series +from pandera.typing.geopandas import GeoSeries + +from ribasim.schemas import _BaseSchema + + +class _GeoBaseSchema(_BaseSchema): + @pa.check("geometry") + def is_correct_geometry_type(cls, geoseries: GeoSeries[Any]) -> Series[bool]: + T = get_type_hints(cls)["geometry"].__args__[0] + return geoseries.map(lambda geom: isinstance(geom, T)) diff --git a/python/ribasim/ribasim/geometry/edge.py b/python/ribasim/ribasim/geometry/edge.py index bba452853..9142c6817 100644 --- a/python/ribasim/ribasim/geometry/edge.py +++ b/python/ribasim/ribasim/geometry/edge.py @@ -1,4 +1,4 @@ -from typing import Any, NamedTuple +from typing import NamedTuple, Optional import matplotlib.pyplot as plt import numpy as np @@ -8,15 +8,31 @@ from matplotlib.axes import Axes from numpy.typing import NDArray from pandera.dtypes import Int32 -from pandera.typing import Series +from pandera.typing import Index, Series from pandera.typing.geopandas import GeoDataFrame, GeoSeries +from pydantic import NonNegativeInt, PrivateAttr, model_validator from shapely.geometry import LineString, MultiLineString, Point from ribasim.input_base import SpatialTableModel +from ribasim.utils import UsedIDs, _concat +from ribasim.validation import ( + can_connect, + control_edge_neighbor_amount, + flow_edge_neighbor_amount, + node_type_connectivity, +) + +from .base import _GeoBaseSchema __all__ = ("EdgeTable",) -SPATIALCONTROLNODETYPES = {"LevelDemand", "FlowDemand", "DiscreteControl", "PidControl"} +SPATIALCONTROLNODETYPES = { + "ContinuousControl", + "DiscreteControl", + "FlowDemand", + "LevelDemand", + "PidControl", +} class NodeData(NamedTuple): @@ -25,25 +41,32 @@ class NodeData(NamedTuple): geometry: Point -class EdgeSchema(pa.DataFrameModel): +class EdgeSchema(_GeoBaseSchema): + edge_id: Index[Int32] = pa.Field(default=0, ge=0, check_name=True) name: Series[str] = pa.Field(default="") - from_node_type: Series[str] = pa.Field(nullable=True) - from_node_id: Series[Int32] = pa.Field(default=0, coerce=True) - to_node_type: Series[str] = pa.Field(nullable=True) - to_node_id: Series[Int32] = pa.Field(default=0, coerce=True) - edge_type: Series[str] = pa.Field(default="flow", coerce=True) - subnetwork_id: Series[pd.Int32Dtype] = pa.Field( - default=pd.NA, nullable=True, coerce=True - ) - geometry: GeoSeries[Any] = pa.Field(default=None, nullable=True) + from_node_id: Series[Int32] = pa.Field(default=0) + to_node_id: Series[Int32] = pa.Field(default=0) + edge_type: Series[str] = pa.Field(default="flow") + subnetwork_id: Series[pd.Int32Dtype] = pa.Field(default=pd.NA, nullable=True) + geometry: GeoSeries[LineString] = pa.Field(default=None, nullable=True) - class Config: - add_missing_columns = True + @classmethod + def _index_name(self) -> str: + return "edge_id" class EdgeTable(SpatialTableModel[EdgeSchema]): """Defines the connections between nodes.""" + _used_edge_ids: UsedIDs = PrivateAttr(default_factory=UsedIDs) + + @model_validator(mode="after") + def _update_used_ids(self) -> "EdgeTable": + if self.df is not None and len(self.df.index) > 0: + self._used_edge_ids.node_ids.update(self.df.index) + self._used_edge_ids.max_node_id = self.df.index.max() + return self + def add( self, from_node: NodeData, @@ -51,8 +74,32 @@ def add( geometry: LineString | MultiLineString | None = None, name: str = "", subnetwork_id: int | None = None, + edge_id: Optional[NonNegativeInt] = None, **kwargs, ): + """Add an edge between nodes. The type of the edge (flow or control) + is automatically inferred from the type of the `from_node`. + + Parameters + ---------- + from_node : NodeData + A node indexed by its node ID, e.g. `model.basin[1]` + to_node: NodeData + A node indexed by its node ID, e.g. `model.linear_resistance[1]` + geometry : LineString | MultiLineString | None + The geometry of a line. If not supplied, it creates a straight line between the nodes. + name : str + An optional name for the edge. + subnetwork_id : int | None + An optional subnetwork id for the edge. This edge indicates a source for + the allocation algorithm, and should thus not be set for every edge in a subnetwork. + **kwargs : Dict + """ + if not can_connect(from_node.node_type, to_node.node_type): + raise ValueError( + f"Node of type {to_node.node_type} cannot be downstream of node of type {from_node.node_type}. Possible downstream node: {node_type_connectivity[from_node.node_type]}." + ) + geometry_to_append = ( [LineString([from_node.geometry, to_node.geometry])] if geometry is None @@ -61,39 +108,84 @@ def add( edge_type = ( "control" if from_node.node_type in SPATIALCONTROLNODETYPES else "flow" ) + self._validate_edge(to_node, from_node, edge_type) assert self.df is not None + if edge_id is None: + edge_id = self._used_edge_ids.new_id() + elif edge_id in self._used_edge_ids: + raise ValueError( + f"Edge IDs have to be unique, but {edge_id} already exists." + ) table_to_append = GeoDataFrame[EdgeSchema]( data={ - "from_node_type": pd.Series([from_node.node_type], dtype=str), - "from_node_id": pd.Series([from_node.node_id], dtype=np.int32), - "to_node_type": pd.Series([to_node.node_type], dtype=str), - "to_node_id": pd.Series([to_node.node_id], dtype=np.int32), - "edge_type": pd.Series([edge_type], dtype=str), - "name": pd.Series([name], dtype=str), - "subnetwork_id": pd.Series([subnetwork_id], dtype=pd.Int32Dtype()), + "from_node_id": [from_node.node_id], + "to_node_id": [to_node.node_id], + "edge_type": [edge_type], + "name": [name], + "subnetwork_id": [subnetwork_id], **kwargs, }, geometry=geometry_to_append, crs=self.df.crs, + index=pd.Index([edge_id], name="edge_id"), ) - self.df = GeoDataFrame[EdgeSchema]( - pd.concat([self.df, table_to_append], ignore_index=True) - ) - self.df.index.name = "fid" + self.df = GeoDataFrame[EdgeSchema](_concat([self.df, table_to_append])) + if self.df.duplicated(subset=["from_node_id", "to_node_id"]).any(): + raise ValueError( + f"Edges have to be unique, but edge with from_node_id {from_node.node_id} to_node_id {to_node.node_id} already exists." + ) + self._used_edge_ids.add(edge_id) - def get_where_edge_type(self, edge_type: str) -> NDArray[np.bool_]: + def _validate_edge(self, to_node: NodeData, from_node: NodeData, edge_type: str): + assert self.df is not None + in_neighbor: int = self.df.loc[ + (self.df["to_node_id"] == to_node.node_id) + & (self.df["edge_type"] == edge_type) + ].shape[0] + + out_neighbor: int = self.df.loc[ + (self.df["from_node_id"] == from_node.node_id) + & (self.df["edge_type"] == edge_type) + ].shape[0] + # validation on neighbor amount + max_in_flow: int = flow_edge_neighbor_amount[to_node.node_type][1] + max_out_flow: int = flow_edge_neighbor_amount[from_node.node_type][3] + max_in_control: int = control_edge_neighbor_amount[to_node.node_type][1] + max_out_control: int = control_edge_neighbor_amount[from_node.node_type][3] + if edge_type == "flow": + if in_neighbor >= max_in_flow: + raise ValueError( + f"Node {to_node.node_id} can have at most {max_in_flow} flow edge inneighbor(s) (got {in_neighbor})" + ) + if out_neighbor >= max_out_flow: + raise ValueError( + f"Node {from_node.node_id} can have at most {max_out_flow} flow edge outneighbor(s) (got {out_neighbor})" + ) + elif edge_type == "control": + if in_neighbor >= max_in_control: + raise ValueError( + f"Node {to_node.node_id} can have at most {max_in_control} control edge inneighbor(s) (got {in_neighbor})" + ) + if out_neighbor >= max_out_control: + raise ValueError( + f"Node {from_node.node_id} can have at most {max_out_control} control edge outneighbor(s) (got {out_neighbor})" + ) + + def _get_where_edge_type(self, edge_type: str) -> NDArray[np.bool_]: assert self.df is not None return (self.df.edge_type == edge_type).to_numpy() - def sort(self): - # Only sort the index (fid / edge_id) since this needs to be sorted in a GeoPackage. - # Under most circumstances, this retains the input order, - # making the edge_id as stable as possible; useful for post-processing. - self.df.sort_index(inplace=True) - def plot(self, **kwargs) -> Axes: + """Plot the edges of the model. + + Parameters + ---------- + **kwargs : Dict + Supported: 'ax', 'color_flow', 'color_control' + """ + assert self.df is not None kwargs = kwargs.copy() # Avoid side-effects ax = kwargs.get("ax", None) @@ -117,8 +209,8 @@ def plot(self, **kwargs) -> Axes: kwargs_control["color"] = color_control kwargs_control["label"] = "Control edge" - where_flow = self.get_where_edge_type("flow") - where_control = self.get_where_edge_type("control") + where_flow = self._get_where_edge_type("flow") + where_control = self._get_where_edge_type("control") if not self.df[where_flow].empty: self.df[where_flow].plot(**kwargs_flow) diff --git a/python/ribasim/ribasim/geometry/node.py b/python/ribasim/ribasim/geometry/node.py index c3a1f3aed..691dc4d19 100644 --- a/python/ribasim/ribasim/geometry/node.py +++ b/python/ribasim/ribasim/geometry/node.py @@ -7,26 +7,29 @@ import pandera as pa from matplotlib.patches import Patch from pandera.dtypes import Int32 -from pandera.typing import Series +from pandera.typing import Index, Series from pandera.typing.geopandas import GeoSeries +from shapely.geometry import Point from ribasim.input_base import SpatialTableModel +from .base import _GeoBaseSchema + __all__ = ("NodeTable",) -class NodeSchema(pa.DataFrameModel): - node_id: Series[Int32] = pa.Field(ge=0) +class NodeSchema(_GeoBaseSchema): + node_id: Index[Int32] = pa.Field(default=0, ge=0, check_name=True) name: Series[str] = pa.Field(default="") node_type: Series[str] = pa.Field(default="") subnetwork_id: Series[pd.Int32Dtype] = pa.Field( default=pd.NA, nullable=True, coerce=True ) - geometry: GeoSeries[Any] = pa.Field(default=None, nullable=True) + geometry: GeoSeries[Point] = pa.Field(default=None, nullable=True) - class Config: - add_missing_columns = True - coerce = True + @classmethod + def _index_name(self) -> str: + return "node_id" class NodeTable(SpatialTableModel[NodeSchema]): @@ -37,12 +40,6 @@ def filter(self, nodetype: str): if self.df is not None: mask = self.df[self.df["node_type"] != nodetype].index self.df.drop(mask, inplace=True) - self.df.reset_index(inplace=True, drop=True) - - def sort(self): - assert self.df is not None - sort_keys = ["node_type", "node_id"] - self.df.sort_values(sort_keys, ignore_index=True, inplace=True) def plot_allocation_networks(self, ax=None, zorder=None) -> Any: if ax is None: @@ -103,37 +100,39 @@ def plot(self, ax=None, zorder=None) -> Any: MARKERS = { "Basin": "o", + "ContinuousControl": "*", + "DiscreteControl": "*", + "FlowBoundary": "h", + "FlowDemand": "h", "LevelBoundary": "o", + "LevelDemand": "o", "LinearResistance": "^", "ManningResistance": "D", - "TabulatedRatingCurve": "D", - "Pump": "h", "Outlet": "h", - "Terminal": "s", - "FlowBoundary": "h", - "DiscreteControl": "*", "PidControl": "x", + "Pump": "h", + "TabulatedRatingCurve": "D", + "Terminal": "s", "UserDemand": "s", - "LevelDemand": "o", - "FlowDemand": "h", "": "o", } COLORS = { "Basin": "b", + "ContinuousControl": "0.5", + "DiscreteControl": "k", + "FlowBoundary": "m", + "FlowDemand": "r", "LevelBoundary": "g", + "LevelDemand": "k", "LinearResistance": "g", "ManningResistance": "r", - "TabulatedRatingCurve": "g", - "Pump": "0.5", # grayscale level "Outlet": "g", - "Terminal": "m", - "FlowBoundary": "m", - "DiscreteControl": "k", "PidControl": "k", + "Pump": "0.5", # grayscale level + "TabulatedRatingCurve": "g", + "Terminal": "m", "UserDemand": "g", - "LevelDemand": "k", - "FlowDemand": "r", "": "k", } if self.df is None: @@ -154,9 +153,7 @@ def plot(self, ax=None, zorder=None) -> Any: assert self.df is not None geometry = self.df["geometry"] - for text, xy in zip( - self.df["node_id"], np.column_stack((geometry.x, geometry.y)) - ): + for text, xy in zip(self.df.index, np.column_stack((geometry.x, geometry.y))): ax.annotate(text=text, xy=xy, xytext=(2.0, 2.0), textcoords="offset points") return ax diff --git a/python/ribasim/ribasim/input_base.py b/python/ribasim/ribasim/input_base.py index d46905bae..c6613c908 100644 --- a/python/ribasim/ribasim/input_base.py +++ b/python/ribasim/ribasim/input_base.py @@ -4,7 +4,7 @@ from contextlib import closing from contextvars import ContextVar from pathlib import Path -from sqlite3 import Connection, connect +from sqlite3 import connect from typing import ( Any, Generic, @@ -15,7 +15,6 @@ import geopandas as gpd import numpy as np import pandas as pd -import pandera as pa from pandera.typing import DataFrame from pandera.typing.geopandas import GeoDataFrame from pydantic import BaseModel as PydanticBaseModel @@ -32,33 +31,44 @@ ) import ribasim +from ribasim.db_utils import ( + _get_db_schema_version, + _set_gpkg_attribute_table, + esc_id, + exists, +) +from ribasim.schemas import _BaseSchema + +from .styles import _add_styles_to_geopackage __all__ = ("TableModel",) delimiter = " / " - -gpd.options.io_engine = "pyogrio" +node_names_snake_case = [ + "basin", + "continuous_control", + "discrete_control", + "flow_boundary", + "flow_demand", + "level_boundary", + "level_demand", + "linear_resistance", + "manning_resistance", + "outlet", + "pid_control", + "pump", + "tabulated_rating_curve", + "user_demand", +] context_file_loading: ContextVar[dict[str, Any]] = ContextVar( "file_loading", default={} ) +context_file_writing: ContextVar[dict[str, Any]] = ContextVar( + "file_writing", default={} +) -TableT = TypeVar("TableT", bound=pa.DataFrameModel) - - -def esc_id(identifier: str) -> str: - """Escape SQLite identifiers.""" - return '"' + identifier.replace('"', '""') + '"' - - -def exists(connection: Connection, name: str) -> bool: - """Check if a table exists in a SQLite database.""" - with closing(connection.cursor()) as cursor: - cursor.execute( - "SELECT name FROM sqlite_master WHERE type='table' AND name=?", (name,) - ) - result = cursor.fetchone() - return result is not None +TableT = TypeVar("TableT", bound=_BaseSchema) TABLES = ["profile", "state", "static", "time", "logic", "condition"] @@ -76,7 +86,7 @@ class BaseModel(PydanticBaseModel): ) @classmethod - def fields(cls) -> list[str]: + def _fields(cls) -> list[str]: """Return the names of the fields contained in the Model.""" return list(cls.model_fields.keys()) @@ -101,7 +111,7 @@ class FileModel(BaseModel, ABC): @model_validator(mode="before") @classmethod - def check_filepath(cls, value: Any) -> Any: + def _check_filepath(cls, value: Any) -> Any: # Enable initialization with a Path. if isinstance(value, dict): # Pydantic Model init requires a dict @@ -157,21 +167,24 @@ class TableModel(FileModel, Generic[TableT]): @field_validator("df") @classmethod - def check_extra_columns(cls, v: DataFrame[TableT]): + def _check_schema(cls, v: DataFrame[TableT]): """Allow only extra columns with `meta_` prefix.""" if isinstance(v, (pd.DataFrame, gpd.GeoDataFrame)): + # On reading from geopackage, migrate the tables when necessary + db_path = context_file_loading.get().get("database") + if db_path is not None: + version = _get_db_schema_version(db_path) + if version < ribasim.__schema_version__: + v = cls.tableschema().migrate(v, version) for colname in v.columns: - if colname == "fid": - # Autogenerated on writing, don't carry them - v = v.drop(columns=["fid"]) # type: ignore - elif colname not in cls.columns() and not colname.startswith("meta_"): + if colname not in cls.columns() and not colname.startswith("meta_"): raise ValueError( f"Unrecognized column '{colname}'. Extra columns need a 'meta_' prefix." ) return v @model_serializer - def set_model(self) -> str | None: + def _set_model(self) -> str | None: return str(self.filepath.name) if self.filepath is not None else None @classmethod @@ -181,22 +194,35 @@ def tablename(cls) -> str: NodeSchema -> Schema TabularRatingCurveStaticSchema -> TabularRatingCurve / Static """ - names: list[str] = re.sub("([A-Z]+)", r" \1", str(cls.tableschema())).split() - if len(names) > 2: - return f"{''.join(names[:-2])}{delimiter}{names[-2].lower()}" - else: + cls_string = str(cls.tableschema()) + names: list[str] = re.sub("([A-Z]+)", r" \1", cls_string).split()[:-1] + names_lowered = [name.lower() for name in names] + if len(names) == 1: return names[0] + else: + for n in range(1, len(names_lowered) + 1): + node_name_snake_case = "_".join(names_lowered[:n]) + if node_name_snake_case in node_names_snake_case: + node_name = "".join(names[:n]) + table_name = "_".join(names_lowered[n:]) + return node_name + delimiter + table_name + raise ValueError(f"Found no known node name in {cls_string}") @model_validator(mode="before") @classmethod - def check_dataframe(cls, value: Any) -> Any: + def _check_dataframe(cls, value: Any) -> Any: + # Enable initialization with a Dict. + if isinstance(value, dict) and len(value) > 0 and "df" not in value: + value = DataFrame(dict(**value)) + # Enable initialization with a DataFrame. if isinstance(value, pd.DataFrame | gpd.GeoDataFrame): + value.index.rename("fid", inplace=True) value = {"df": value} return value - def node_ids(self) -> set[int]: + def _node_ids(self) -> set[int]: node_ids: set[int] = set() if self.df is not None and "node_id" in self.df.columns: node_ids.update(self.df["node_id"]) @@ -206,7 +232,7 @@ def node_ids(self) -> set[int]: @classmethod def _load(cls, filepath: Path | None) -> dict[str, Any]: db = context_file_loading.get().get("database") - if filepath is not None: + if filepath is not None and db is not None: adf = cls._from_arrow(filepath) # TODO Store filepath? return {"df": adf} @@ -218,12 +244,11 @@ def _load(cls, filepath: Path | None) -> dict[str, Any]: def _save(self, directory: DirectoryPath, input_dir: DirectoryPath) -> None: # TODO directory could be used to save an arrow file - db_path = context_file_loading.get().get("database") + db_path = context_file_writing.get().get("database") + self.sort() if self.filepath is not None: - self.sort() self._write_arrow(self.filepath, directory, input_dir) elif db_path is not None: - self.sort() self._write_geopackage(db_path) def _write_geopackage(self, temp_path: Path) -> None: @@ -238,25 +263,17 @@ def _write_geopackage(self, temp_path: Path) -> None: assert self.df is not None table = self.tablename() - # Add `fid` to all tables as primary key - # Enables editing values manually in QGIS - df = self.df.copy() - df["fid"] = range(1, len(df) + 1) - with closing(connect(temp_path)) as connection: - df.to_sql( + self.df.to_sql( table, connection, - index=False, + index=True, if_exists="replace", dtype={"fid": "INTEGER PRIMARY KEY AUTOINCREMENT"}, ) + _set_gpkg_attribute_table(connection, table) # Set geopackage attribute table - with closing(connection.cursor()) as cursor: - sql = "INSERT INTO gpkg_contents (table_name, data_type, identifier) VALUES (?, ?, ?)" - cursor.execute(sql, (table, "attributes", table)) - connection.commit() def _write_arrow(self, filepath: Path, directory: Path, input_dir: Path) -> None: """Write the contents of the input to a an arrow file.""" @@ -271,12 +288,18 @@ def _write_arrow(self, filepath: Path, directory: Path, input_dir: Path) -> None @classmethod def _from_db(cls, path: Path, table: str) -> pd.DataFrame | None: - with connect(path) as connection: + with closing(connect(path)) as connection: if exists(connection, table): query = f"select * from {esc_id(table)}" df = pd.read_sql_query( - query, connection, parse_dates={"time": {"format": "ISO8601"}} + query, + connection, + # we store TIMESTAMP in SQLite like "2025-05-29 14:16:00" + # see https://www.sqlite.org/lang_datefunc.html + parse_dates={"time": {"format": "ISO8601"}}, + dtype_backend="pyarrow", ) + df.set_index("fid", inplace=True) else: df = None @@ -285,7 +308,7 @@ def _from_db(cls, path: Path, table: str) -> pd.DataFrame | None: @classmethod def _from_arrow(cls, path: Path) -> pd.DataFrame: directory = context_file_loading.get().get("directory", Path(".")) - return pd.read_feather(directory / path) + return pd.read_feather(directory / path, dtype_backend="pyarrow") def sort(self): """Sort the table as required. @@ -293,7 +316,9 @@ def sort(self): Sorting is done automatically before writing the table. """ if self.df is not None: - self.df.sort_values(self._sort_keys, ignore_index=True, inplace=True) + df = self.df.sort_values(self._sort_keys, ignore_index=True) + df.index.rename("fid", inplace=True) + self.df = df # trigger validation and thus index coercion to int32 @classmethod def tableschema(cls) -> TableT: @@ -341,11 +366,27 @@ def __getitem__(self, index) -> pd.DataFrame | gpd.GeoDataFrame: class SpatialTableModel(TableModel[TableT], Generic[TableT]): df: GeoDataFrame[TableT] | None = Field(default=None, exclude=True, repr=False) + def sort(self): + # Only sort the index (node_id / edge_id) since this needs to be sorted in a GeoPackage. + # Under most circumstances, this retains the input order, + # making the edge_id as stable as possible; useful for post-processing. + self.df.sort_index(inplace=True) + @classmethod def _from_db(cls, path: Path, table: str): - with connect(path) as connection: + with closing(connect(path)) as connection: if exists(connection, table): - df = gpd.read_file(path, layer=table, fid_as_index=True) + # pyogrio hardcodes fid name on reading + df = gpd.read_file( + path, + layer=table, + engine="pyogrio", + fid_as_index=True, + use_arrow=True, + # tell pyarrow to map to pd.ArrowDtype rather than NumPy + arrow_to_pandas_kwargs={"types_mapper": pd.ArrowDtype}, + ) + df.index.rename(cls.tableschema()._index_name(), inplace=True) else: df = None @@ -360,9 +401,15 @@ def _write_geopackage(self, path: Path) -> None: path : Path """ assert self.df is not None - # the index name must be fid otherwise it will generate a separate fid column - self.df.index.name = "fid" - self.df.to_file(path, layer=self.tablename(), index=True, driver="GPKG") + self.df.to_file( + path, + layer=self.tablename(), + driver="GPKG", + index=True, + fid=self.df.index.name, + engine="pyogrio", + ) + _add_styles_to_geopackage(path, self.tablename()) class ChildModel(BaseModel): @@ -370,7 +417,7 @@ class ChildModel(BaseModel): _parent_field: str | None = None @model_validator(mode="after") - def check_parent(self) -> "ChildModel": + def _check_parent(self) -> "ChildModel": if self._parent is not None: self._parent.model_fields_set.update({self._parent_field}) return self @@ -408,7 +455,7 @@ def _layername(cls, field: str) -> str: return f"{cls.get_input_type()}{delimiter}{field}" def _tables(self) -> Generator[TableModel[Any], Any, None]: - for key in self.fields(): + for key in self._fields(): attr = getattr(self, key) if ( isinstance(attr, TableModel) @@ -417,10 +464,10 @@ def _tables(self) -> Generator[TableModel[Any], Any, None]: ): yield attr - def node_ids(self) -> set[int]: + def _node_ids(self) -> set[int]: node_ids: set[int] = set() for table in self._tables(): - node_ids.update(table.node_ids()) + node_ids.update(table._node_ids()) return node_ids def _save(self, directory: DirectoryPath, input_dir: DirectoryPath): @@ -433,7 +480,7 @@ def _repr_content(self) -> str: Skip "empty" attributes: when the dataframe of a TableModel is None. """ content = [] - for field in self.fields(): + for field in self._fields(): attr = getattr(self, field) if isinstance(attr, TableModel): if attr.df is not None: diff --git a/python/ribasim/ribasim/migrations.py b/python/ribasim/ribasim/migrations.py new file mode 100644 index 000000000..fc51eff52 --- /dev/null +++ b/python/ribasim/ribasim/migrations.py @@ -0,0 +1,89 @@ +import warnings + +from geopandas import GeoDataFrame +from pandas import DataFrame + +# On each breaking change, increment the __schema_version__ by one. +# Do the same for write_schema_version in ribasim_qgis/core/geopackage.py + + +def nodeschema_migration(gdf: GeoDataFrame, schema_version: int) -> GeoDataFrame: + if "node_id" in gdf.columns and schema_version == 0: + warnings.warn("Migrating outdated Node table.", UserWarning) + assert gdf["node_id"].is_unique, "Node IDs have to be unique." + gdf.set_index("node_id", inplace=True) + + return gdf + + +def edgeschema_migration(gdf: GeoDataFrame, schema_version: int) -> GeoDataFrame: + if schema_version == 0: + warnings.warn("Migrating outdated Edge table.", UserWarning) + gdf.drop(columns="from_node_type", inplace=True, errors="ignore") + if schema_version == 0: + warnings.warn("Migrating outdated Edge table.", UserWarning) + gdf.drop(columns="to_node_type", inplace=True, errors="ignore") + if "edge_id" in gdf.columns and schema_version == 0: + warnings.warn("Migrating outdated Edge table.", UserWarning) + assert gdf["edge_id"].is_unique, "Edge IDs have to be unique." + gdf.set_index("edge_id", inplace=True) + + return gdf + + +def basinstaticschema_migration(df: DataFrame, schema_version: int) -> DataFrame: + if schema_version == 0: + warnings.warn("Migrating outdated Basin / static table.", UserWarning) + df.drop(columns="urban_runoff", inplace=True, errors="ignore") + + return df + + +def basintimeschema_migration(df: DataFrame, schema_version: int) -> DataFrame: + if schema_version == 0: + warnings.warn("Migrating outdated Basin / time table.", UserWarning) + df.drop(columns="urban_runoff", inplace=True, errors="ignore") + + return df + + +def continuouscontrolvariableschema_migration( + df: DataFrame, schema_version: int +) -> DataFrame: + if schema_version == 0: + warnings.warn( + "Migrating outdated ContinuousControl / variable table.", UserWarning + ) + df.drop(columns="listen_node_type", inplace=True, errors="ignore") + + return df + + +def discretecontrolvariableschema_migration( + df: DataFrame, schema_version: int +) -> DataFrame: + if schema_version == 0: + warnings.warn( + "Migrating outdated DiscreteControl / variable table.", UserWarning + ) + df.drop(columns="listen_node_type", inplace=True, errors="ignore") + + return df + + +def pidcontrolstaticschema_migration(df: DataFrame, schema_version: int) -> DataFrame: + if schema_version == 0: + warnings.warn("Migrating outdated PidControl / static table.", UserWarning) + df.drop(columns="listen_node_type", inplace=True, errors="ignore") + + return df + + +def outletstaticschema_migration(df: DataFrame, schema_version: int) -> DataFrame: + if schema_version < 2: + warnings.warn("Migrating outdated Outlet / static table.", UserWarning) + # First remove automatically added empty column. + df.drop(columns="min_upstream_level", inplace=True, errors="ignore") + df.rename(columns={"min_crest_level": "min_upstream_level"}, inplace=True) + + return df diff --git a/python/ribasim/ribasim/model.py b/python/ribasim/ribasim/model.py index f951ef5f1..d7274a67c 100644 --- a/python/ribasim/ribasim/model.py +++ b/python/ribasim/ribasim/model.py @@ -1,4 +1,6 @@ import datetime +import logging +import shutil from collections.abc import Generator from os import PathLike from pathlib import Path @@ -13,6 +15,7 @@ from pydantic import ( DirectoryPath, Field, + PrivateAttr, field_serializer, model_validator, ) @@ -21,7 +24,9 @@ from ribasim.config import ( Allocation, Basin, + ContinuousControl, DiscreteControl, + Experimental, FlowBoundary, FlowDemand, LevelBoundary, @@ -39,6 +44,7 @@ Terminal, UserDemand, ) +from ribasim.db_utils import _set_db_schema_version from ribasim.geometry.edge import EdgeSchema, EdgeTable from ribasim.geometry.node import NodeTable from ribasim.input_base import ( @@ -46,13 +52,18 @@ FileModel, SpatialTableModel, context_file_loading, + context_file_writing, ) from ribasim.utils import ( MissingOptionalModule, + UsedIDs, + _concat, _edge_lookup, _node_lookup, + _node_lookup_numpy, _time_in_ns, ) +from ribasim.validation import control_edge_neighbor_amount, flow_edge_neighbor_amount try: import xugrid @@ -76,7 +87,10 @@ class Model(FileModel): allocation: Allocation = Field(default_factory=Allocation) + experimental: Experimental = Field(default_factory=Experimental) + basin: Basin = Field(default_factory=Basin) + continuous_control: ContinuousControl = Field(default_factory=ContinuousControl) discrete_control: DiscreteControl = Field(default_factory=DiscreteControl) flow_boundary: FlowBoundary = Field(default_factory=FlowBoundary) flow_demand: FlowDemand = Field(default_factory=FlowDemand) @@ -94,9 +108,12 @@ class Model(FileModel): user_demand: UserDemand = Field(default_factory=UserDemand) edge: EdgeTable = Field(default_factory=EdgeTable) + use_validation: bool = Field(default=True, exclude=True) + + _used_node_ids: UsedIDs = PrivateAttr(default_factory=UsedIDs) @model_validator(mode="after") - def set_node_parent(self) -> "Model": + def _set_node_parent(self) -> "Model": for ( k, v, @@ -106,14 +123,25 @@ def set_node_parent(self) -> "Model": return self @model_validator(mode="after") - def ensure_edge_table_is_present(self) -> "Model": + def _ensure_edge_table_is_present(self) -> "Model": if self.edge.df is None: - self.edge.df = GeoDataFrame[EdgeSchema]() + self.edge.df = GeoDataFrame[EdgeSchema](index=pd.Index([], name="edge_id")) self.edge.df.set_geometry("geometry", inplace=True, crs=self.crs) return self + @model_validator(mode="after") + def _update_used_ids(self) -> "Model": + # Only update the used node IDs if we read from a database + if "database" in context_file_loading.get(): + df = self.node_table().df + assert df is not None + if len(df.index) > 0: + self._used_node_ids.node_ids.update(df.index) + self._used_node_ids.max_node_id = df.index.max() + return self + @field_serializer("input_dir", "results_dir") - def serialize_path(self, path: Path) -> str: + def _serialize_path(self, path: Path) -> str: return str(path) def model_post_init(self, __context: Any) -> None: @@ -130,7 +158,7 @@ def __repr__(self) -> str: """ content = ["ribasim.Model("] INDENT = " " - for field in self.fields(): + for field in self._fields(): attr = getattr(self, field) if isinstance(attr, EdgeTable): content.append(f"{INDENT}{field}=Edge(...),") @@ -166,20 +194,38 @@ def _write_toml(self, fn: Path) -> Path: return fn def _save(self, directory: DirectoryPath, input_dir: DirectoryPath): - # Set CRS of the tables to the CRS stored in the Model object - self.set_crs(self.crs) - db_path = directory / input_dir / "database.gpkg" + # We write all tables to a temporary GeoPackage with a dot prefix, + # and at the end move this over the target file. + # This does not throw a PermissionError if the file is open in QGIS. + db_path = directory / input_dir / ".database.gpkg" + + # avoid adding tables to existing model db_path.parent.mkdir(parents=True, exist_ok=True) db_path.unlink(missing_ok=True) - context_file_loading.get()["database"] = db_path + context_file_writing.get()["database"] = db_path + self.edge._save(directory, input_dir) node = self.node_table() + + assert node.df is not None node._save(directory, input_dir) + # Run after geopackage schema has been created + _set_db_schema_version(db_path, ribasim.__schema_version__) + for sub in self._nodes(): sub._save(directory, input_dir) + shutil.move(db_path, db_path.with_name("database.gpkg")) + def set_crs(self, crs: str) -> None: + """Set the coordinate reference system of the data in the model. + + Parameters + ---------- + crs : str + Coordinate reference system, like "EPSG:4326" for WGS84 latitude longitude. + """ self._apply_crs_function("set_crs", crs) def to_crs(self, crs: str) -> None: @@ -189,23 +235,27 @@ def to_crs(self, crs: str) -> None: def _apply_crs_function(self, function_name: str, crs: str) -> None: """Apply `function_name`, with `crs` as the first and only argument to all spatial tables.""" - self.edge.df = getattr(self.edge.df, function_name)(crs) + getattr(self.edge.df, function_name)(crs, inplace=True) for sub in self._nodes(): if sub.node.df is not None: - sub.node.df = getattr(sub.node.df, function_name)(crs) + getattr(sub.node.df, function_name)(crs, inplace=True) for table in sub._tables(): if isinstance(table, SpatialTableModel) and table.df is not None: - table.df = getattr(table.df, function_name)(crs) + getattr(table.df, function_name)(crs, inplace=True) self.crs = crs def node_table(self) -> NodeTable: """Compute the full sorted NodeTable from all node types.""" - df_chunks = [node.node.df.set_crs(self.crs) for node in self._nodes()] # type:ignore - df = pd.concat(df_chunks, ignore_index=True) + df_chunks = [node.node.df for node in self._nodes()] + df = ( + _concat(df_chunks) + if df_chunks + else pd.DataFrame(index=pd.Index([], name="node_id")) + ) node_table = NodeTable(df=df) node_table.sort() assert node_table.df is not None - node_table.df.index.name = "fid" + assert node_table.df.index.is_unique, "node_id must be unique" return node_table def _nodes(self) -> Generator[MultiNodeModel, Any, None]: @@ -229,34 +279,161 @@ def _children(self): @classmethod def read(cls, filepath: str | PathLike[str]) -> "Model": - """Read model from TOML file.""" + """Read a model from a TOML file. + + Parameters + ---------- + filepath : str | PathLike[str] + The path to the TOML file. + """ + if not Path(filepath).is_file(): + raise FileNotFoundError(f"File '{filepath}' does not exist.") return cls(filepath=filepath) # type: ignore def write(self, filepath: str | PathLike[str]) -> Path: - """ - Write the contents of the model to disk and save it as a TOML configuration file. + """Write the contents of the model to disk and save it as a TOML configuration file. If ``filepath.parent`` does not exist, it is created before writing. Parameters ---------- - filepath: str | PathLike[str] A file path with .toml extension + filepath : str | PathLike[str] + A file path with .toml extension. """ - # TODO - # self.validate_model() + + if self.use_validation: + self._validate_model() + filepath = Path(filepath) self.filepath = filepath if not filepath.suffix == ".toml": raise ValueError(f"Filepath '{filepath}' is not a .toml file.") - context_file_loading.set({}) + context_file_writing.set({}) directory = filepath.parent directory.mkdir(parents=True, exist_ok=True) self._save(directory, self.input_dir) fn = self._write_toml(filepath) - context_file_loading.set({}) + context_file_writing.set({}) return fn + def _validate_model(self): + df_edge = self.edge.df + df_chunks = [node.node.df for node in self._nodes()] + df_node = _concat(df_chunks) + + df_graph = df_edge + # Join df_edge with df_node to get to_node_type + df_graph = df_graph.join( + df_node[["node_type"]], on="from_node_id", how="left", rsuffix="_from" + ) + df_graph = df_graph.rename(columns={"node_type": "from_node_type"}) + + df_graph = df_graph.join( + df_node[["node_type"]], on="to_node_id", how="left", rsuffix="_to" + ) + df_graph = df_graph.rename(columns={"node_type": "to_node_type"}) + + if not self._has_valid_neighbor_amount( + df_graph, flow_edge_neighbor_amount, "flow", df_node["node_type"] + ): + raise ValueError("Minimum flow inneighbor or outneighbor unsatisfied") + if not self._has_valid_neighbor_amount( + df_graph, control_edge_neighbor_amount, "control", df_node["node_type"] + ): + raise ValueError("Minimum control inneighbor or outneighbor unsatisfied") + + def _has_valid_neighbor_amount( + self, + df_graph: pd.DataFrame, + edge_amount: dict[str, list[int]], + edge_type: str, + nodes, + ) -> bool: + """Check if the neighbor amount of the two nodes connected by the given edge meet the minimum requirements.""" + + is_valid = True + + # filter graph by edge type + df_graph = df_graph.loc[df_graph["edge_type"] == edge_type] + + # count occurrence of "from_node" which reflects the number of outneighbors + from_node_count = ( + df_graph.groupby("from_node_id").size().reset_index(name="from_node_count") # type: ignore + ) + + # append from_node_count column to from_node_id and from_node_type + from_node_info = ( + df_graph[["from_node_id", "from_node_type"]] + .drop_duplicates() + .merge(from_node_count, on="from_node_id", how="left") + ) + from_node_info = from_node_info[ + ["from_node_id", "from_node_count", "from_node_type"] + ] + + # add the node that is not the upstream of any other nodes + from_node_info = self._add_source_sink_node(nodes, from_node_info, "from") + + # loop over all the "from_node" and check if they have enough outneighbor + for _, row in from_node_info.iterrows(): + # from node's outneighbor + if row["from_node_count"] < edge_amount[row["from_node_type"]][2]: + is_valid = False + logging.error( + f"Node {row['from_node_id']} must have at least {edge_amount[row['from_node_type']][2]} outneighbor(s) (got {row['from_node_count']})" + ) + + # count occurrence of "to_node" which reflects the number of inneighbors + to_node_count = ( + df_graph.groupby("to_node_id").size().reset_index(name="to_node_count") # type: ignore + ) + + # append to_node_count column to result + to_node_info = ( + df_graph[["to_node_id", "to_node_type"]] + .drop_duplicates() + .merge(to_node_count, on="to_node_id", how="left") + ) + to_node_info = to_node_info[["to_node_id", "to_node_count", "to_node_type"]] + + # add the node that is not the downstream of any other nodes + to_node_info = self._add_source_sink_node(nodes, to_node_info, "to") + + # loop over all the "to_node" and check if they have enough inneighbor + for _, row in to_node_info.iterrows(): + if row["to_node_count"] < edge_amount[row["to_node_type"]][0]: + is_valid = False + logging.error( + f"Node {row['to_node_id']} must have at least {edge_amount[row['to_node_type']][0]} inneighbor(s) (got {row['to_node_count']})" + ) + + return is_valid + + def _add_source_sink_node( + self, nodes, node_info: pd.DataFrame, direction: str + ) -> pd.DataFrame: + """Loop over node table. + + Add the nodes whose id are missing in the from_node and to_node column in the edge table because they are not the upstream or downstrem of other nodes. + + Specify that their occurrence in from_node table or to_node table is 0. + """ + + # loop over nodes, add the one that is not the downstream (from) or upstream (to) of any other nodes + for index, node in enumerate(nodes): + if nodes.index[index] not in node_info[f"{direction}_node_id"].to_numpy(): + new_row = { + f"{direction}_node_id": nodes.index[index], + f"{direction}_node_count": 0, + f"{direction}_node_type": node, + } + node_info = _concat( + [node_info, pd.DataFrame([new_row])], ignore_index=True + ) + + return node_info + @classmethod def _load(cls, filepath: Path | None) -> dict[str, Any]: context_file_loading.set({}) @@ -267,25 +444,30 @@ def _load(cls, filepath: Path | None) -> dict[str, Any]: directory = filepath.parent / config.get("input_dir", ".") context_file_loading.get()["directory"] = directory - context_file_loading.get()["database"] = directory / "database.gpkg" + db_path = directory / "database.gpkg" + + if not db_path.is_file(): + raise FileNotFoundError(f"Database file '{db_path}' does not exist.") + + context_file_loading.get()["database"] = db_path return config else: return {} @model_validator(mode="after") - def reset_contextvar(self) -> "Model": + def _reset_contextvar(self) -> "Model": # Drop database info context_file_loading.set({}) return self def plot_control_listen(self, ax): + """Plot the implicit listen edges of the model.""" + df_listen_edge = pd.DataFrame( data={ - "control_node_id": pd.Series([], dtype=np.int32), - "control_node_type": pd.Series([], dtype=str), - "listen_node_id": pd.Series([], dtype=np.int32), - "listen_node_type": pd.Series([], dtype=str), + "control_node_id": pd.Series([], dtype="int32[pyarrow]"), + "listen_node_id": pd.Series([], dtype="int32[pyarrow]"), } ) @@ -294,36 +476,38 @@ def plot_control_listen(self, ax): if table is None: continue - to_add = table[ - ["node_id", "listen_node_id", "listen_node_type"] - ].drop_duplicates() - to_add.columns = ["control_node_id", "listen_node_id", "listen_node_type"] - to_add["control_node_type"] = "PidControl" - df_listen_edge = pd.concat([df_listen_edge, to_add]) - - # Listen edges from DiscreteControl - df_variable = self.discrete_control.variable.df - if df_variable is not None: - to_add = df_variable[ - ["node_id", "listen_node_id", "listen_node_type"] - ].drop_duplicates() - to_add.columns = ["control_node_id", "listen_node_id", "listen_node_type"] - to_add["control_node_type"] = "DiscreteControl" - df_listen_edge = pd.concat([df_listen_edge, to_add]) + to_add = table[["node_id", "listen_node_id"]].drop_duplicates() + to_add.columns = ["control_node_id", "listen_node_id"] + df_listen_edge = _concat([df_listen_edge, to_add]) + + # Listen edges from ContinuousControl and DiscreteControl + for table, name in ( + (self.continuous_control.variable.df, "ContinuousControl"), + (self.discrete_control.variable.df, "DiscreteControl"), + ): + if table is None: + continue + + to_add = table[["node_id", "listen_node_id"]].drop_duplicates() + to_add.columns = [ + "control_node_id", + "listen_node_id", + ] + df_listen_edge = _concat([df_listen_edge, to_add]) # Collect geometry data node = self.node_table().df control_nodes_geometry = df_listen_edge.merge( node, - left_on=["control_node_id", "control_node_type"], - right_on=["node_id", "node_type"], + left_on=["control_node_id"], + right_on=["node_id"], how="left", )["geometry"] listen_nodes_geometry = df_listen_edge.merge( node, - left_on=["listen_node_id", "listen_node_type"], - right_on=["node_id", "node_type"], + left_on=["listen_node_id"], + right_on=["node_id"], how="left", )["geometry"] @@ -340,18 +524,28 @@ def plot_control_listen(self, ax): ) return - def plot(self, ax=None, indicate_subnetworks: bool = True) -> Any: - """ - Plot the nodes, edges and allocation networks of the model. + def plot( + self, + ax=None, + indicate_subnetworks: bool = True, + aspect_ratio_bound: float = 0.33, + ) -> Any: + """Plot the nodes, edges and allocation networks of the model. Parameters ---------- - ax : matplotlib.pyplot.Artist, optional + ax : matplotlib.pyplot.Artist Axes on which to draw the plot. + indicate_subnetworks : bool + Whether to indicate subnetworks with a convex hull backdrop. + aspect_ratio_bound : float + The maximal aspect ratio in (0,1). The smaller this number, the further the figure + shape is allowed to be from a square Returns ------- ax : matplotlib.pyplot.Artist + Axis on which the plot is drawn. """ if ax is None: _, ax = plt.subplots() @@ -374,16 +568,35 @@ def plot(self, ax=None, indicate_subnetworks: bool = True) -> Any: ax.legend(handles, labels, loc="lower left", bbox_to_anchor=(1, 0.5)) + # Enforce aspect ratio bound + xlim = ax.get_xlim() + ylim = ax.get_ylim() + xsize = xlim[1] - xlim[0] + ysize = ylim[1] - ylim[0] + + if ysize < aspect_ratio_bound * xsize: + y_mid = (ylim[0] + ylim[1]) / 2 + ysize_new = aspect_ratio_bound * xsize + ax.set_ylim(y_mid - ysize_new / 2, y_mid + ysize_new / 2) + elif xsize < aspect_ratio_bound * ysize: + x_mid = (xlim[0] + xlim[1]) / 2 + xsize_new = aspect_ratio_bound * ysize + ax.set_xlim(x_mid - xsize_new / 2, x_mid + xsize_new / 2) + return ax def to_xugrid(self, add_flow: bool = False, add_allocation: bool = False): - """ - Convert the network to a `xugrid.UgridDataset`. - To add flow results, set `add_flow=True`. - To add allocation results, set `add_allocation=True`. - Both cannot be added to the same dataset. - This method will throw `ImportError`, - if the optional dependency `xugrid` isn't installed. + """Convert the network to a `xugrid.UgridDataset`. + + Either the flow or the allocation data can be added, but not both simultaneously. + This method will throw `ImportError` if the optional dependency `xugrid` isn't installed. + + Parameters + ---------- + add_flow : bool + add flow results (Optional, defaults to False) + add_allocation : bool + add allocation results (Optional, defaults to False) """ if add_flow and add_allocation: @@ -397,17 +610,11 @@ def to_xugrid(self, add_flow: bool = False, add_allocation: bool = False): # We assume only the flow network is of interest. edge_df = edge_df[edge_df.edge_type == "flow"] - node_id = node_df.node_id.to_numpy() + node_id = node_df.index.to_numpy() edge_id = edge_df.index.to_numpy() from_node_id = edge_df.from_node_id.to_numpy() to_node_id = edge_df.to_node_id.to_numpy() - node_lookup = _node_lookup(node_df) - from_node_index = pd.MultiIndex.from_frame( - edge_df[["from_node_type", "from_node_id"]] - ) - to_node_index = pd.MultiIndex.from_frame( - edge_df[["to_node_type", "to_node_id"]] - ) + node_lookup = _node_lookup_numpy(node_id) grid = xugrid.Ugrid1d( node_x=node_df.geometry.x, @@ -415,8 +622,8 @@ def to_xugrid(self, add_flow: bool = False, add_allocation: bool = False): fill_value=-1, edge_node_connectivity=np.column_stack( ( - node_lookup.loc[from_node_index], - node_lookup.loc[to_node_index], + node_lookup.loc[from_node_id], + node_lookup.loc[to_node_id], ) ), name="ribasim", @@ -459,27 +666,25 @@ def _add_flow(self, uds, node_lookup): "perhaps the model needs to be run first." ) - basin_df = pd.read_feather(basin_path) - flow_df = pd.read_feather(flow_path) + basin_df = pd.read_feather(basin_path, dtype_backend="pyarrow") + flow_df = pd.read_feather(flow_path, dtype_backend="pyarrow") _time_in_ns(basin_df) _time_in_ns(flow_df) # add the xugrid dimension indices to the dataframes edge_dim = uds.grid.edge_dimension node_dim = uds.grid.node_dimension + node_lookup = _node_lookup(uds) edge_lookup = _edge_lookup(uds) flow_df[edge_dim] = edge_lookup[flow_df["edge_id"]].to_numpy() - # Use a MultiIndex to ensure the lookup results is the same length as basin_df - basin_df["node_type"] = "Basin" - multi_index = pd.MultiIndex.from_frame(basin_df[["node_type", "node_id"]]) - basin_df[node_dim] = node_lookup.loc[multi_index].to_numpy() + basin_df[node_dim] = node_lookup[basin_df["node_id"]].to_numpy() # add flow results to the UgridDataset flow_da = flow_df.set_index(["time", edge_dim])["flow_rate"].to_xarray() uds[flow_da.name] = flow_da # add basin results to the UgridDataset - basin_df.drop(columns=["node_type", "node_id"], inplace=True) + basin_df.drop(columns=["node_id"], inplace=True) basin_ds = basin_df.set_index(["time", node_dim]).to_xarray() for var_name, da in basin_ds.data_vars.items(): @@ -502,6 +707,7 @@ def _add_allocation(self, uds): alloc_flow_df = pd.read_feather( alloc_flow_path, columns=["time", "edge_id", "flow_rate", "optimization_type", "priority"], + dtype_backend="pyarrow", ) _time_in_ns(alloc_flow_df) diff --git a/python/ribasim/ribasim/nodes/__init__.py b/python/ribasim/ribasim/nodes/__init__.py index 5ad1394ef..f96588937 100644 --- a/python/ribasim/ribasim/nodes/__init__.py +++ b/python/ribasim/ribasim/nodes/__init__.py @@ -1,5 +1,6 @@ from ribasim.nodes import ( basin, + continuous_control, discrete_control, flow_boundary, level_boundary, @@ -15,6 +16,7 @@ __all__ = [ "basin", + "continuous_control", "discrete_control", "flow_boundary", "level_boundary", diff --git a/python/ribasim/ribasim/nodes/basin.py b/python/ribasim/ribasim/nodes/basin.py index f155f848b..1beb21336 100644 --- a/python/ribasim/ribasim/nodes/basin.py +++ b/python/ribasim/ribasim/nodes/basin.py @@ -1,8 +1,5 @@ -from geopandas import GeoDataFrame -from pandas import DataFrame - from ribasim.geometry.area import BasinAreaSchema -from ribasim.input_base import TableModel +from ribasim.input_base import SpatialTableModel, TableModel from ribasim.schemas import ( BasinConcentrationExternalSchema, BasinConcentrationSchema, @@ -15,56 +12,47 @@ ) __all__ = [ - "Static", - "Time", - "State", - "Profile", - "Subgrid", "Area", "Concentration", + "Profile", + "State", + "Static", + "Subgrid", + "Time", ] class Static(TableModel[BasinStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[BasinTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class State(TableModel[BasinStateSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Profile(TableModel[BasinProfileSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Subgrid(TableModel[BasinSubgridSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass -class Area(TableModel[BasinAreaSchema]): - def __init__(self, **kwargs): - super().__init__(df=GeoDataFrame(dict(**kwargs))) +class Area(SpatialTableModel[BasinAreaSchema]): + pass class Concentration(TableModel[BasinConcentrationSchema]): - def __init__(self, **kwargs): - super().__init__(df=GeoDataFrame(dict(**kwargs))) + pass class ConcentrationExternal(TableModel[BasinConcentrationExternalSchema]): - def __init__(self, **kwargs): - super().__init__(df=GeoDataFrame(dict(**kwargs))) + pass class ConcentrationState(TableModel[BasinConcentrationStateSchema]): - def __init__(self, **kwargs): - super().__init__(df=GeoDataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/continuous_control.py b/python/ribasim/ribasim/nodes/continuous_control.py new file mode 100644 index 000000000..a22cb9014 --- /dev/null +++ b/python/ribasim/ribasim/nodes/continuous_control.py @@ -0,0 +1,15 @@ +from ribasim.input_base import TableModel +from ribasim.schemas import ( + ContinuousControlFunctionSchema, + ContinuousControlVariableSchema, +) + +__all__ = ["Variable", "Function"] + + +class Variable(TableModel[ContinuousControlVariableSchema]): + pass + + +class Function(TableModel[ContinuousControlFunctionSchema]): + pass diff --git a/python/ribasim/ribasim/nodes/discrete_control.py b/python/ribasim/ribasim/nodes/discrete_control.py index df7b9f42b..1f61b3bbf 100644 --- a/python/ribasim/ribasim/nodes/discrete_control.py +++ b/python/ribasim/ribasim/nodes/discrete_control.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( DiscreteControlConditionSchema, @@ -11,15 +9,12 @@ class Variable(TableModel[DiscreteControlVariableSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Condition(TableModel[DiscreteControlConditionSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Logic(TableModel[DiscreteControlLogicSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/flow_boundary.py b/python/ribasim/ribasim/nodes/flow_boundary.py index 096652f6f..e32f5aa73 100644 --- a/python/ribasim/ribasim/nodes/flow_boundary.py +++ b/python/ribasim/ribasim/nodes/flow_boundary.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( FlowBoundaryConcentrationSchema, @@ -11,15 +9,12 @@ class Static(TableModel[FlowBoundaryStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[FlowBoundaryTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Concentration(TableModel[FlowBoundaryConcentrationSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/flow_demand.py b/python/ribasim/ribasim/nodes/flow_demand.py index 56ce7019a..425f4410c 100644 --- a/python/ribasim/ribasim/nodes/flow_demand.py +++ b/python/ribasim/ribasim/nodes/flow_demand.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( FlowDemandStaticSchema, @@ -10,10 +8,8 @@ class Static(TableModel[FlowDemandStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[FlowDemandTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/level_boundary.py b/python/ribasim/ribasim/nodes/level_boundary.py index 1fb9d5d81..f6278edba 100644 --- a/python/ribasim/ribasim/nodes/level_boundary.py +++ b/python/ribasim/ribasim/nodes/level_boundary.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( LevelBoundaryConcentrationSchema, @@ -11,15 +9,12 @@ class Static(TableModel[LevelBoundaryStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[LevelBoundaryTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Concentration(TableModel[LevelBoundaryConcentrationSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/level_demand.py b/python/ribasim/ribasim/nodes/level_demand.py index e65bd96d0..5553fe169 100644 --- a/python/ribasim/ribasim/nodes/level_demand.py +++ b/python/ribasim/ribasim/nodes/level_demand.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( LevelDemandStaticSchema, @@ -10,10 +8,8 @@ class Static(TableModel[LevelDemandStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[LevelDemandTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/linear_resistance.py b/python/ribasim/ribasim/nodes/linear_resistance.py index 5adb72af6..013c13e7f 100644 --- a/python/ribasim/ribasim/nodes/linear_resistance.py +++ b/python/ribasim/ribasim/nodes/linear_resistance.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( LinearResistanceStaticSchema, @@ -9,5 +7,4 @@ class Static(TableModel[LinearResistanceStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/manning_resistance.py b/python/ribasim/ribasim/nodes/manning_resistance.py index 46feea8a0..62306125a 100644 --- a/python/ribasim/ribasim/nodes/manning_resistance.py +++ b/python/ribasim/ribasim/nodes/manning_resistance.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( ManningResistanceStaticSchema, @@ -9,5 +7,4 @@ class Static(TableModel[ManningResistanceStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/outlet.py b/python/ribasim/ribasim/nodes/outlet.py index 8c6623cd9..9f38440c9 100644 --- a/python/ribasim/ribasim/nodes/outlet.py +++ b/python/ribasim/ribasim/nodes/outlet.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( OutletStaticSchema, @@ -9,5 +7,4 @@ class Static(TableModel[OutletStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/pid_control.py b/python/ribasim/ribasim/nodes/pid_control.py index e359e849e..a90353b63 100644 --- a/python/ribasim/ribasim/nodes/pid_control.py +++ b/python/ribasim/ribasim/nodes/pid_control.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import PidControlStaticSchema, PidControlTimeSchema @@ -7,10 +5,8 @@ class Static(TableModel[PidControlStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[PidControlTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/pump.py b/python/ribasim/ribasim/nodes/pump.py index c2a9a2250..afd8ab355 100644 --- a/python/ribasim/ribasim/nodes/pump.py +++ b/python/ribasim/ribasim/nodes/pump.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( PumpStaticSchema, @@ -9,5 +7,4 @@ class Static(TableModel[PumpStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/tabulated_rating_curve.py b/python/ribasim/ribasim/nodes/tabulated_rating_curve.py index 6afb46c5f..9397eb61a 100644 --- a/python/ribasim/ribasim/nodes/tabulated_rating_curve.py +++ b/python/ribasim/ribasim/nodes/tabulated_rating_curve.py @@ -1,5 +1,3 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( TabulatedRatingCurveStaticSchema, @@ -10,10 +8,8 @@ class Static(TableModel[TabulatedRatingCurveStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[TabulatedRatingCurveTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass diff --git a/python/ribasim/ribasim/nodes/user_demand.py b/python/ribasim/ribasim/nodes/user_demand.py index d33192dc0..eb346e2dd 100644 --- a/python/ribasim/ribasim/nodes/user_demand.py +++ b/python/ribasim/ribasim/nodes/user_demand.py @@ -1,7 +1,6 @@ -from pandas import DataFrame - from ribasim.input_base import TableModel from ribasim.schemas import ( + UserDemandConcentrationSchema, UserDemandStaticSchema, UserDemandTimeSchema, ) @@ -10,10 +9,12 @@ class Static(TableModel[UserDemandStaticSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass class Time(TableModel[UserDemandTimeSchema]): - def __init__(self, **kwargs): - super().__init__(df=DataFrame(dict(**kwargs))) + pass + + +class Concentration(TableModel[UserDemandConcentrationSchema]): + pass diff --git a/python/ribasim/ribasim/schemas.py b/python/ribasim/ribasim/schemas.py index 1b83c1def..2bcd22222 100644 --- a/python/ribasim/ribasim/schemas.py +++ b/python/ribasim/ribasim/schemas.py @@ -1,8 +1,14 @@ # Automatically generated file. Do not modify. +from typing import Annotated, Any, Callable + +import pandas as pd import pandera as pa -from pandera.dtypes import Int32, Timestamp -from pandera.typing import Series +import pyarrow +from pandera.dtypes import Int32 +from pandera.typing import Index, Series + +from ribasim import migrations class _BaseSchema(pa.DataFrameModel): @@ -10,240 +16,609 @@ class Config: add_missing_columns = True coerce = True + @classmethod + def _index_name(self) -> str: + return "fid" + + @classmethod + def migrate(cls, df: Any, schema_version: int) -> Any: + f: Callable[[Any, Any], Any] = getattr( + migrations, str(cls.__name__).lower() + "_migration", lambda x, _: x + ) + return f(df, schema_version) + class BasinConcentrationExternalSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - substance: Series[str] = pa.Field(nullable=False) - concentration: Series[float] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + substance: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + concentration: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) class BasinConcentrationStateSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - substance: Series[str] = pa.Field(nullable=False) - concentration: Series[float] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + substance: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + concentration: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) class BasinConcentrationSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - substance: Series[str] = pa.Field(nullable=False) - drainage: Series[float] = pa.Field(nullable=True) - precipitation: Series[float] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + substance: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + drainage: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + precipitation: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) class BasinProfileSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - area: Series[float] = pa.Field(nullable=False) - level: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + area: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field(nullable=False) + level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class BasinStateSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - level: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class BasinStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - drainage: Series[float] = pa.Field(nullable=True) - potential_evaporation: Series[float] = pa.Field(nullable=True) - infiltration: Series[float] = pa.Field(nullable=True) - precipitation: Series[float] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + drainage: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + potential_evaporation: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = ( + pa.Field(nullable=True) + ) + infiltration: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + precipitation: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) class BasinSubgridSchema(_BaseSchema): - subgrid_id: Series[Int32] = pa.Field(nullable=False, default=0) - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - basin_level: Series[float] = pa.Field(nullable=False) - subgrid_level: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + subgrid_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False + ) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + basin_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + subgrid_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class BasinTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - drainage: Series[float] = pa.Field(nullable=True) - potential_evaporation: Series[float] = pa.Field(nullable=True) - infiltration: Series[float] = pa.Field(nullable=True) - precipitation: Series[float] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + drainage: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + potential_evaporation: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = ( + pa.Field(nullable=True) + ) + infiltration: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + precipitation: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + + +class ContinuousControlFunctionSchema(_BaseSchema): + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + input: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + output: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + controlled_variable: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + + +class ContinuousControlVariableSchema(_BaseSchema): + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + listen_node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False + ) + variable: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + weight: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + look_ahead: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) class DiscreteControlConditionSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - compound_variable_id: Series[Int32] = pa.Field(nullable=False, default=0) - greater_than: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + compound_variable_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False + ) + greater_than: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class DiscreteControlLogicSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - truth_state: Series[str] = pa.Field(nullable=False) - control_state: Series[str] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + truth_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) class DiscreteControlVariableSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - compound_variable_id: Series[Int32] = pa.Field(nullable=False, default=0) - listen_node_type: Series[str] = pa.Field(nullable=False) - listen_node_id: Series[Int32] = pa.Field(nullable=False, default=0) - variable: Series[str] = pa.Field(nullable=False) - weight: Series[float] = pa.Field(nullable=True) - look_ahead: Series[float] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + compound_variable_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False + ) + listen_node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False + ) + variable: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + weight: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + look_ahead: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) class FlowBoundaryConcentrationSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - substance: Series[str] = pa.Field(nullable=False) - concentration: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + substance: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + concentration: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class FlowBoundaryStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - flow_rate: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class FlowBoundaryTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - flow_rate: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class FlowDemandStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - demand: Series[float] = pa.Field(nullable=False) - priority: Series[Int32] = pa.Field(nullable=False, default=0) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + demand: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + priority: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=True + ) class FlowDemandTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - demand: Series[float] = pa.Field(nullable=False) - priority: Series[Int32] = pa.Field(nullable=False, default=0) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + demand: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + priority: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=True + ) class LevelBoundaryConcentrationSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - substance: Series[str] = pa.Field(nullable=False) - concentration: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + substance: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + concentration: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class LevelBoundaryStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - level: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class LevelBoundaryTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - level: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class LevelDemandStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - min_level: Series[float] = pa.Field(nullable=True) - max_level: Series[float] = pa.Field(nullable=True) - priority: Series[Int32] = pa.Field(nullable=False, default=0) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + min_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + max_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + priority: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=True + ) class LevelDemandTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - min_level: Series[float] = pa.Field(nullable=True) - max_level: Series[float] = pa.Field(nullable=True) - priority: Series[Int32] = pa.Field(nullable=False, default=0) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + min_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + max_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + priority: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=True + ) class LinearResistanceStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - resistance: Series[float] = pa.Field(nullable=False) - max_flow_rate: Series[float] = pa.Field(nullable=True) - control_state: Series[str] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + resistance: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + max_flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=True + ) class ManningResistanceStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - length: Series[float] = pa.Field(nullable=False) - manning_n: Series[float] = pa.Field(nullable=False) - profile_width: Series[float] = pa.Field(nullable=False) - profile_slope: Series[float] = pa.Field(nullable=False) - control_state: Series[str] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + length: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + manning_n: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + profile_width: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + profile_slope: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=True + ) class OutletStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - flow_rate: Series[float] = pa.Field(nullable=False) - min_flow_rate: Series[float] = pa.Field(nullable=True) - max_flow_rate: Series[float] = pa.Field(nullable=True) - min_crest_level: Series[float] = pa.Field(nullable=True) - control_state: Series[str] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + min_flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + max_flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + min_upstream_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + max_downstream_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = ( + pa.Field(nullable=True) + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=True + ) class PidControlStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - listen_node_type: Series[str] = pa.Field(nullable=False) - listen_node_id: Series[Int32] = pa.Field(nullable=False, default=0) - target: Series[float] = pa.Field(nullable=False) - proportional: Series[float] = pa.Field(nullable=False) - integral: Series[float] = pa.Field(nullable=False) - derivative: Series[float] = pa.Field(nullable=False) - control_state: Series[str] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + listen_node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False + ) + target: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + proportional: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + integral: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + derivative: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=True + ) class PidControlTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - listen_node_type: Series[str] = pa.Field(nullable=False) - listen_node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - target: Series[float] = pa.Field(nullable=False) - proportional: Series[float] = pa.Field(nullable=False) - integral: Series[float] = pa.Field(nullable=False) - derivative: Series[float] = pa.Field(nullable=False) - control_state: Series[str] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + listen_node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + target: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + proportional: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + integral: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + derivative: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=True + ) class PumpStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - flow_rate: Series[float] = pa.Field(nullable=False) - min_flow_rate: Series[float] = pa.Field(nullable=True) - max_flow_rate: Series[float] = pa.Field(nullable=True) - control_state: Series[str] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + min_flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + max_flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + min_upstream_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + max_downstream_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = ( + pa.Field(nullable=True) + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=True + ) class TabulatedRatingCurveStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - level: Series[float] = pa.Field(nullable=False) - flow_rate: Series[float] = pa.Field(nullable=False) - control_state: Series[str] = pa.Field(nullable=True) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + max_downstream_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = ( + pa.Field(nullable=True) + ) + control_state: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=True + ) class TabulatedRatingCurveTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - level: Series[float] = pa.Field(nullable=False) - flow_rate: Series[float] = pa.Field(nullable=False) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + flow_rate: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + max_downstream_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = ( + pa.Field(nullable=True) + ) + + +class UserDemandConcentrationSchema(_BaseSchema): + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + substance: Series[Annotated[pd.ArrowDtype, pyarrow.string()]] = pa.Field( + nullable=False + ) + concentration: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) class UserDemandStaticSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - active: Series[pa.BOOL] = pa.Field(nullable=True) - demand: Series[float] = pa.Field(nullable=True) - return_factor: Series[float] = pa.Field(nullable=False) - min_level: Series[float] = pa.Field(nullable=False) - priority: Series[Int32] = pa.Field(nullable=False, default=0) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + active: Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]] = pa.Field(nullable=True) + demand: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=True + ) + return_factor: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + min_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + priority: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=True + ) class UserDemandTimeSchema(_BaseSchema): - node_id: Series[Int32] = pa.Field(nullable=False, default=0) - time: Series[Timestamp] = pa.Field(nullable=False) - demand: Series[float] = pa.Field(nullable=False) - return_factor: Series[float] = pa.Field(nullable=False) - min_level: Series[float] = pa.Field(nullable=False) - priority: Series[Int32] = pa.Field(nullable=False, default=0) + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) + node_id: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=False, default=0 + ) + time: Series[Annotated[pd.ArrowDtype, pyarrow.timestamp("ms")]] = pa.Field( + nullable=False + ) + demand: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + return_factor: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + min_level: Series[Annotated[pd.ArrowDtype, pyarrow.float64()]] = pa.Field( + nullable=False + ) + priority: Series[Annotated[pd.ArrowDtype, pyarrow.int32()]] = pa.Field( + nullable=True + ) diff --git a/python/ribasim/ribasim/styles.py b/python/ribasim/ribasim/styles.py new file mode 100644 index 000000000..492b2eb65 --- /dev/null +++ b/python/ribasim/ribasim/styles.py @@ -0,0 +1,126 @@ +import logging +from contextlib import closing +from datetime import datetime +from pathlib import Path +from sqlite3 import connect + +STYLES_DIR = Path(__file__).parent / "styles" + +CREATE_TABLE_SQL = """ +CREATE TABLE IF NOT EXISTS "main"."layer_styles" ( + "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + "f_table_catalog" TEXT(256), + "f_table_schema" TEXT(256), + "f_table_name" TEXT(256), + "f_geometry_column" TEXT(256), + "styleName" TEXT(30), + "styleQML" TEXT, + "styleSLD" TEXT, + "useAsDefault" BOOLEAN, + "description" TEXT, + "owner" TEXT(30), + "ui" TEXT(30), + "update_time" DATETIME DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')) +); +""" + +INSERT_CONTENTS_SQL = """ +INSERT INTO gpkg_contents ( + "table_name", + "data_type", + "identifier", + "description", + "last_change", + "min_x", + "min_y", + "max_x", + "max_y", + "srs_id" +) +VALUES ( + 'layer_styles', + 'attributes', + 'layer_styles', + '', + '', + NULL, + NULL, + NULL, + NULL, + 0 +); +""" + +INSERT_ROW_SQL = """ +INSERT INTO "main"."layer_styles" ( + "f_table_catalog", + "f_table_schema", + "f_table_name", + "f_geometry_column", + "styleName", + "styleQML", + "styleSLD", + "useAsDefault", + "description", + "owner", + "ui", + "update_time" +) +VALUES ( + '', + '', + :layer, + 'geom', + :style_name, + :style_qml, + '', + '1', + :description, + '', + NULL, + :update_date_time +); +""" + +SQL_STYLES_EXIST = """ +SELECT EXISTS(SELECT 1 FROM sqlite_master WHERE type="table" AND name="layer_styles"); +""" + +SQL_STYLES_STYLE_EXISTS = """ +SELECT EXISTS(SELECT 1 FROM layer_styles WHERE styleName = :style_name); +""" + + +def _no_existing_style(conn, style_name): + style_exists = conn.execute( + SQL_STYLES_STYLE_EXISTS, {"style_name": style_name} + ).fetchone()[0] + return not style_exists + + +def _add_styles_to_geopackage(gpkg_path: Path, layer: str): + with closing(connect(gpkg_path)) as connection: + if not connection.execute(SQL_STYLES_EXIST).fetchone()[0]: + connection.execute(CREATE_TABLE_SQL) + connection.execute(INSERT_CONTENTS_SQL) + + style_name = f"{layer.replace(' / ', '_')}Style" + style_qml = STYLES_DIR / f"{style_name}.qml" + + if style_qml.exists() and _no_existing_style(connection, style_name): + description = f"Ribasim style for layer: {layer}" + update_date_time = f"{datetime.now().isoformat()}Z" + + connection.execute( + INSERT_ROW_SQL, + { + "layer": layer, + "style_qml": style_qml.read_bytes(), + "style_name": style_name, + "description": description, + "update_date_time": update_date_time, + }, + ) + connection.commit() + else: + logging.warning(f"Style not found for layer: {layer}") diff --git a/python/ribasim/ribasim/styles/Basin_areaStyle.qml b/python/ribasim/ribasim/styles/Basin_areaStyle.qml new file mode 100644 index 000000000..64a827f4e --- /dev/null +++ b/python/ribasim/ribasim/styles/Basin_areaStyle.qml @@ -0,0 +1,441 @@ + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + "fid" + + 2 + diff --git a/python/ribasim/ribasim/styles/EdgeStyle.qml b/python/ribasim/ribasim/styles/EdgeStyle.qml new file mode 100644 index 000000000..5b9bee800 --- /dev/null +++ b/python/ribasim/ribasim/styles/EdgeStyle.qml @@ -0,0 +1,998 @@ + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "name" + + 1 + diff --git a/python/ribasim/ribasim/styles/NodeStyle.qml b/python/ribasim/ribasim/styles/NodeStyle.qml new file mode 100644 index 000000000..f030030f0 --- /dev/null +++ b/python/ribasim/ribasim/styles/NodeStyle.qml @@ -0,0 +1,1215 @@ + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + + + + + + + "name" + + 0 + diff --git a/python/ribasim/ribasim/styles/README.md b/python/ribasim/ribasim/styles/README.md new file mode 100644 index 000000000..1204c57f5 --- /dev/null +++ b/python/ribasim/ribasim/styles/README.md @@ -0,0 +1,8 @@ +# Ribasim QGIS Styles + +Ribasim Python always adds layer styles to the GeoPackage, such that the node types can be recognized also without the Ribasim QGIS plugin installed. + +One can update the Ribasim styles in QGIS itself, saving the style to the GeoPackage or disk, and retrieve it from there. +See https://github.com/Deltares/Ribasim/issues/610#issuecomment-1729511312. + +Here we store the Node, Basin / area and Edge styles, saved in the QML format, from the `styleQML` attribute in the `layer_styles` in the GeoPackage. diff --git a/python/ribasim/ribasim/utils.py b/python/ribasim/ribasim/utils.py index 5662dc985..42fd638b1 100644 --- a/python/ribasim/ribasim/utils.py +++ b/python/ribasim/ribasim/utils.py @@ -1,8 +1,11 @@ import re +from warnings import catch_warnings, filterwarnings +import numpy as np import pandas as pd from pandera.dtypes import Int32 from pandera.typing import Series +from pydantic import BaseModel, NonNegativeInt def _pascal_to_snake(pascal_str): @@ -27,14 +30,26 @@ def __getattr__( ) -def _node_lookup(df) -> Series[Int32]: - """Create a lookup table from from (node_type, node_id) to the node dimension index. +def _node_lookup_numpy(node_id) -> Series[Int32]: + """Create a lookup table from from node_id to the node dimension index. + Used when adding data onto the nodes of an xugrid dataset. + """ + return pd.Series( + index=node_id, + data=node_id.argsort().astype(np.int32), + name="node_index", + ) + +def _node_lookup(uds) -> Series[Int32]: + """Create a lookup table from from node_id to the node dimension index. Used when adding data onto the nodes of an xugrid dataset. """ - return df.reset_index(names="node_index").set_index(["node_type", "node_id"])[ - "node_index" - ] + return pd.Series( + index=uds["node_id"], + data=uds[uds.grid.node_dimension], + name="node_index", + ) def _edge_lookup(uds) -> Series[Int32]: @@ -54,3 +69,39 @@ def _time_in_ns(df) -> None: """Convert the time column to datetime64[ns] dtype.""" # datetime64[ms] gives trouble; https://github.com/pydata/xarray/issues/6318 df["time"] = df["time"].astype("datetime64[ns]") + + +def _concat(dfs, **kwargs): + """Concatenate DataFrames with a warning filter.""" + with catch_warnings(): + # The behavior of array concatenation with empty entries is deprecated. + # In a future version, this will no longer exclude empty items when determining + # the result dtype. To retain the old behavior, exclude the empty entries before + # the concat operation. + filterwarnings( + "ignore", + category=FutureWarning, + ) + return pd.concat(dfs, **kwargs) + + +class UsedIDs(BaseModel): + """A helper class to manage globally unique node IDs. + + We keep track of all IDs in the model, + and keep track of the maximum to provide new IDs. + MultiNodeModels and Edge will check this instance on `add`. + """ + + node_ids: set[int] = set() + max_node_id: NonNegativeInt = 0 + + def add(self, node_id: int) -> None: + self.node_ids.add(node_id) + self.max_node_id = max(self.max_node_id, node_id) + + def __contains__(self, value: int) -> bool: + return self.node_ids.__contains__(value) + + def new_id(self) -> int: + return self.max_node_id + 1 diff --git a/python/ribasim/ribasim/validation.py b/python/ribasim/ribasim/validation.py new file mode 100644 index 000000000..2b99519d8 --- /dev/null +++ b/python/ribasim/ribasim/validation.py @@ -0,0 +1,123 @@ +# Automatically generated file. Do not modify. + +# Table for connectivity +# "Basin": ["LinearResistance"] means that the downstream of basin can be LinearResistance only +node_type_connectivity: dict[str, list[str]] = { + "PidControl": [ + "Outlet", + "Pump", + ], + "LevelBoundary": [ + "Outlet", + "TabulatedRatingCurve", + "LinearResistance", + "Pump", + ], + "Pump": [ + "LevelBoundary", + "Basin", + "Terminal", + ], + "UserDemand": [ + "LevelBoundary", + "Basin", + "Terminal", + ], + "TabulatedRatingCurve": [ + "LevelBoundary", + "Basin", + "Terminal", + ], + "FlowDemand": [ + "LinearResistance", + "Outlet", + "TabulatedRatingCurve", + "ManningResistance", + "Pump", + ], + "FlowBoundary": [ + "LevelBoundary", + "Basin", + "Terminal", + ], + "Basin": [ + "LinearResistance", + "UserDemand", + "Outlet", + "TabulatedRatingCurve", + "ManningResistance", + "Pump", + ], + "ManningResistance": [ + "Basin", + ], + "LevelDemand": [ + "Basin", + ], + "DiscreteControl": [ + "LinearResistance", + "PidControl", + "Outlet", + "TabulatedRatingCurve", + "ManningResistance", + "Pump", + ], + "Outlet": [ + "LevelBoundary", + "Basin", + "Terminal", + ], + "ContinuousControl": [ + "Outlet", + "Pump", + ], + "LinearResistance": [ + "LevelBoundary", + "Basin", + ], + "Terminal": [], +} + + +# Function to validate connection +def can_connect(node_type_up: str, node_type_down: str) -> bool: + if node_type_up in node_type_connectivity: + return node_type_down in node_type_connectivity[node_type_up] + return False + + +flow_edge_neighbor_amount: dict[str, list[int]] = { + "PidControl": [0, 0, 0, 0], + "LevelBoundary": [0, 9223372036854775807, 0, 9223372036854775807], + "Pump": [1, 1, 1, 1], + "UserDemand": [1, 1, 1, 1], + "TabulatedRatingCurve": [1, 1, 1, 1], + "FlowDemand": [0, 0, 0, 0], + "FlowBoundary": [0, 0, 1, 9223372036854775807], + "Basin": [0, 9223372036854775807, 0, 9223372036854775807], + "ManningResistance": [1, 1, 1, 1], + "LevelDemand": [0, 0, 0, 0], + "DiscreteControl": [0, 0, 0, 0], + "Outlet": [1, 1, 1, 1], + "ContinuousControl": [0, 0, 0, 0], + "LinearResistance": [1, 1, 1, 1], + "Terminal": [1, 9223372036854775807, 0, 0], +} + +control_edge_neighbor_amount: dict[str, list[int]] = { + "PidControl": [0, 1, 1, 1], + "LevelBoundary": [0, 0, 0, 0], + "Pump": [0, 1, 0, 0], + "UserDemand": [0, 0, 0, 0], + "TabulatedRatingCurve": [0, 1, 0, 0], + "FlowDemand": [0, 0, 1, 1], + "FlowBoundary": [0, 0, 0, 0], + "Basin": [0, 1, 0, 0], + "ManningResistance": [0, 1, 0, 0], + "LevelDemand": [0, 0, 1, 9223372036854775807], + "DiscreteControl": [0, 0, 1, 9223372036854775807], + "Outlet": [0, 1, 0, 0], + "ContinuousControl": [0, 0, 1, 9223372036854775807], + "LinearResistance": [0, 1, 0, 0], + "Terminal": [0, 0, 0, 0], +} diff --git a/python/ribasim/tests/conftest.py b/python/ribasim/tests/conftest.py index d77d287e1..d1584aab7 100644 --- a/python/ribasim/tests/conftest.py +++ b/python/ribasim/tests/conftest.py @@ -24,11 +24,21 @@ def bucket() -> ribasim.Model: return ribasim_testmodels.bucket_model() +@pytest.fixture() +def pid_control_equation() -> ribasim.Model: + return ribasim_testmodels.pid_control_equation_model() + + @pytest.fixture() def tabulated_rating_curve() -> ribasim.Model: return ribasim_testmodels.tabulated_rating_curve_model() +@pytest.fixture() +def outlet() -> ribasim.Model: + return ribasim_testmodels.outlet_model() + + @pytest.fixture() def backwater() -> ribasim.Model: return ribasim_testmodels.backwater_model() diff --git a/python/ribasim/tests/test_delwaq.py b/python/ribasim/tests/test_delwaq.py index bedbcb4e4..a551372bb 100644 --- a/python/ribasim/tests/test_delwaq.py +++ b/python/ribasim/tests/test_delwaq.py @@ -2,18 +2,30 @@ from pathlib import Path import pytest -from ribasim.delwaq import generate, parse, run_delwaq +from ribasim import Model +from ribasim.delwaq import add_tracer, generate, parse, run_delwaq delwaq_dir = Path(__file__).parent @pytest.mark.skipif( - not bool(os.getenv("D3D_HOME")), reason="Requires Delwaq to be installed." + not ( + ("D3D_HOME" in os.environ) + and ( + delwaq_dir.parents[2] / "generated_testmodels/basic/results/flow.arrow" + ).is_file() + ), + reason="Requires Delwaq to be installed and basic model results.", ) def test_offline_delwaq_coupling(): repo_dir = delwaq_dir.parents[2] toml_path = repo_dir / "generated_testmodels/basic/ribasim.toml" + model = Model.read(toml_path) + add_tracer(model, 11, "Foo") + add_tracer(model, 15, "Bar") + model.write(toml_path) + graph, substances = generate(toml_path) run_delwaq() model = parse(toml_path, graph, substances) @@ -23,11 +35,16 @@ def test_offline_delwaq_coupling(): assert df.shape[0] > 0 assert df.node_id.nunique() == 4 assert sorted(df.substance.unique()) == [ - "Basin", + "Bar", "Cl", "Continuity", + "Drainage", "FlowBoundary", + "Foo", + "Initial", "LevelBoundary", + "Precipitation", "Terminal", "Tracer", + "UserDemand", ] diff --git a/python/ribasim/tests/test_edge.py b/python/ribasim/tests/test_edge.py index f0c0690b1..754f65b6f 100644 --- a/python/ribasim/tests/test_edge.py +++ b/python/ribasim/tests/test_edge.py @@ -13,8 +13,10 @@ def edge() -> EdgeTable: d = (1.0, 1.0) geometry = [sg.LineString([a, b, c]), sg.LineString([a, d])] df = gpd.GeoDataFrame( - data={"from_node_id": [1, 1], "to_node_id": [2, 3]}, geometry=geometry + data={"edge_id": [0, 1], "from_node_id": [1, 1], "to_node_id": [2, 3]}, + geometry=geometry, ) + df.set_index("edge_id", inplace=True) edge = EdgeTable(df=df) return edge @@ -25,11 +27,13 @@ def test_validation(edge): with pytest.raises(ValidationError): df = gpd.GeoDataFrame( data={ + "edge_id": [0, 1], "from_node_id": [1, 1], "to_node_id": ["foo", 3], }, # None is coerced to 0 without errors geometry=[None, None], ) + df.set_index("edge_id", inplace=True) EdgeTable(df=df) diff --git a/python/ribasim/tests/test_input_base.py b/python/ribasim/tests/test_input_base.py index e8cbd5d25..8dfc714ed 100644 --- a/python/ribasim/tests/test_input_base.py +++ b/python/ribasim/tests/test_input_base.py @@ -1,3 +1,4 @@ +from ribasim import geometry, nodes from ribasim.input_base import TableModel from ribasim.schemas import BasinSubgridSchema @@ -5,3 +6,14 @@ def test_tablemodel_schema(): schema = TableModel[BasinSubgridSchema].tableschema() assert schema == BasinSubgridSchema + + +def test_tablename(): + cls = nodes.tabulated_rating_curve.Static + assert cls.tablename() == "TabulatedRatingCurve / static" + + cls = nodes.basin.ConcentrationExternal + assert cls.tablename() == "Basin / concentration_external" + + cls = geometry.edge.EdgeTable + assert cls.tablename() == "Edge" diff --git a/python/ribasim/tests/test_io.py b/python/ribasim/tests/test_io.py index 0bd8e13ed..0320dca87 100644 --- a/python/ribasim/tests/test_io.py +++ b/python/ribasim/tests/test_io.py @@ -1,6 +1,8 @@ from datetime import datetime +from pathlib import Path import numpy as np +import pandas as pd import pytest import ribasim import tomli @@ -8,7 +10,8 @@ from pandas.testing import assert_frame_equal from pydantic import ValidationError from ribasim import Model, Node, Solver -from ribasim.nodes import basin, pump, user_demand +from ribasim.nodes import basin, flow_boundary, flow_demand, pump, user_demand +from ribasim.utils import UsedIDs from shapely.geometry import Point @@ -21,8 +24,6 @@ def __assert_equal(a: DataFrame, b: DataFrame) -> None: a = a.reset_index(drop=True) b = b.reset_index(drop=True) - a.drop(columns=["fid"], inplace=True, errors="ignore") - b.drop(columns=["fid"], inplace=True, errors="ignore") assert_frame_equal(a, b) @@ -63,7 +64,7 @@ def test_basic_transient(basic_transient, tmp_path): time = model_loaded.basin.time assert model_orig.basin.time.df.time.iloc[0] == time.df.time.iloc[0] - assert time.df.node_id.dtype == np.int32 + assert time.df.node_id.dtype == "int32[pyarrow]" __assert_equal(model_orig.basin.time.df, time.df) assert time.df.shape == (1468, 6) @@ -93,6 +94,11 @@ def test_extra_columns(): pump.Static(extra=[-2], flow_rate=[1.2]) +def test_index_tables(): + p = pump.Static(flow_rate=[1.2]) + assert p.df.index.name == "fid" + + def test_extra_spatial_columns(): model = Model( starttime="2020-01-01", @@ -120,11 +126,120 @@ def test_extra_spatial_columns(): with pytest.raises(ValidationError): model.basin.add( - Node(2, Point(0, 0), foo=1), + Node(3, Point(0, 0), foo=1), [basin.Profile(area=1000.0, level=[0.0, 1.0]), basin.State(level=[1.0])], ) with pytest.raises(ValidationError): - model.edge.add(model.basin[1], model.user_demand[2], foo=1) + model.user_demand.add( + Node(4, Point(1, -0.5), meta_id=3), + [ + user_demand.Static( + demand=[1e-4], return_factor=0.9, min_level=0.9, priority=1 + ) + ], + ) + model.edge.add(model.basin[1], model.user_demand[4], foo=1) + + +def test_edge_autoincrement(basic): + model = basic + model.edge.df = model.edge.df.iloc[0:0] # clear the table + model.edge._used_edge_ids = UsedIDs() # and reset the counter + + model.edge.add(model.basin[1], model.manning_resistance[2], edge_id=20) + assert model.edge.df.index[-1] == 20 + + model.edge.add(model.manning_resistance[2], model.basin[3]) + assert model.edge.df.index[-1] == 21 + + # Can use any remaining positive integer + model.edge.add(model.basin[3], model.tabulated_rating_curve[8], edge_id=1) + assert model.edge.df.index[-1] == 1 + + with pytest.raises( + ValueError, + match="Edge IDs have to be unique, but 1 already exists.", + ): + model.edge.add( + model.linear_resistance[10], + model.level_boundary[17], + edge_id=1, + ) + + +def test_node_autoincrement(): + model = Model( + starttime="2020-01-01", + endtime="2021-01-01", + crs="EPSG:28992", + solver=Solver(algorithm="Tsit5"), + ) + + model.basin.add(Node(20, Point(0, 0)), [basin.State(level=[1.0])]) + with pytest.raises( + ValueError, match="Node IDs have to be unique, but 20 already exists." + ): + model.user_demand.add( + Node(20, Point(1, 0.5)), + [ + user_demand.Static( + demand=[1e-4], return_factor=0.9, min_level=0.9, priority=1 + ) + ], + ) + + nbasin = model.basin.add(Node(geometry=Point(0, 0)), [basin.State(level=[1.0])]) + assert nbasin.node_id == 21 + + # Can use any remaining positive integer + model.basin.add(Node(1, geometry=Point(0, 0)), [basin.State(level=[1.0])]) + nbasin = model.basin.add(Node(geometry=Point(0, 0)), [basin.State(level=[1.0])]) + assert nbasin.node_id == 22 + + model.basin.add(Node(100, geometry=Point(0, 0)), [basin.State(level=[1.0])]) + + nbasin = model.basin.add(Node(geometry=Point(0, 0)), [basin.State(level=[1.0])]) + assert nbasin.node_id == 101 + + +def test_node_autoincrement_existing_model(basic, tmp_path): + model = basic + + model.write(tmp_path / "ribasim.toml") + nmodel = Model.read(tmp_path / "ribasim.toml") + + assert nmodel._used_node_ids.max_node_id == 17 + assert nmodel._used_node_ids.node_ids == set(range(1, 18)) - {13} + + assert nmodel.edge._used_edge_ids.max_node_id == 16 + assert nmodel.edge._used_edge_ids.node_ids == set(range(1, 17)) + + +def test_node_empty_geometry(): + model = Model( + starttime="2020-01-01", + endtime="2021-01-01", + crs="EPSG:28992", + ) + + with pytest.raises(ValueError, match="Node geometry must be a valid Point"): + model.user_demand.add( + Node(), + [ + user_demand.Static( + demand=[1e-4], return_factor=0.9, min_level=0.9, priority=1 + ) + ], + ) + with pytest.raises(ValueError, match="Node geometry must be a valid Point"): + model.user_demand.add( + Node(2), + [ + user_demand.Static( + demand=[1e-4], return_factor=0.9, min_level=0.9, priority=1 + ) + ], + ) def test_sort(level_range, tmp_path): @@ -144,7 +259,6 @@ def test_sort(level_range, tmp_path): assert table.df.iloc[0]["greater_than"] == 5.0 # The edge table is not sorted - assert edge.df.iloc[1]["from_node_type"] == "Pump" assert edge.df.iloc[1]["from_node_id"] == 3 # re-apply wrong sort, then check if it gets sorted on write @@ -156,7 +270,6 @@ def test_sort(level_range, tmp_path): table_loaded = model_loaded.discrete_control.condition edge_loaded = model_loaded.edge assert table_loaded.df.iloc[0]["greater_than"] == 5.0 - assert edge.df.iloc[1]["from_node_type"] == "Pump" assert edge.df.iloc[1]["from_node_id"] == 3 __assert_equal(table.df, table_loaded.df) __assert_equal(edge.df, edge_loaded.df) @@ -165,7 +278,7 @@ def test_sort(level_range, tmp_path): def test_roundtrip(trivial, tmp_path): model1 = trivial # set custom Edge index - model1.edge.df.index = [15, 12] + model1.edge.df.index = pd.Index([15, 12], name="edge_id") model1dir = tmp_path / "model1" model2dir = tmp_path / "model2" # read a model and then write it to a different path @@ -202,3 +315,75 @@ def test_datetime_timezone(): assert isinstance(model.endtime, datetime) assert model.starttime.tzinfo is None assert model.endtime.tzinfo is None + + +def test_minimal_toml(): + # Check if the TOML used in QGIS tests is still valid. + toml_path = Path(__file__).parents[3] / "ribasim_qgis/tests/data/simple_valid.toml" + (toml_path.parent / "database.gpkg").touch() # database file must exist for `read` + model = ribasim.Model.read(toml_path) + assert model.crs == "EPSG:28992" + + +def test_closed_model(basic, tmp_path): + # Test whether we can write to a just opened model + # implicitly testing that the database is closed after read + toml_path = tmp_path / "basic/ribasim.toml" + basic.write(toml_path) + model = ribasim.Model.read(toml_path) + model.write(toml_path) + + +def test_arrow_dtype(): + # Below millisecond precision is not supported + with pytest.raises(ValidationError): + flow_boundary.Time( + time=["2021-01-01 00:00:00.1234"], + flow_rate=np.ones(1), + ) + + # Extra columns don't get coerced to Arrow types + df = flow_boundary.Time( + time=["2021-01-01 00:00:00.123", "2021-01-01 00:00:00.456"], + flow_rate=[1, 2.2], + meta_obj=["foo", "bar"], + meta_str=pd.Series(["a", pd.NA], dtype="string[pyarrow]"), + ).df + + assert (df["node_id"] == 0).all() + assert df["node_id"].dtype == "int32[pyarrow]" + assert df["time"].dtype == "timestamp[ms][pyarrow]" + assert df["time"].dt.tz is None + assert df["time"].diff().iloc[1] == pd.Timedelta("333ms") + assert df["flow_rate"].dtype == "double[pyarrow]" + assert df["meta_obj"].dtype == object + assert df["meta_str"].dtype == "string[pyarrow]" + assert df["meta_str"].isna().iloc[1] + + # Check a string column that is part of the schema and a boolean column + df = pump.Static( + flow_rate=np.ones(2), + control_state=["foo", pd.NA], + active=[None, False], + ).df + + assert df["control_state"].dtype == "string[pyarrow]" + assert df["active"].dtype == "bool[pyarrow]" + assert df["active"].isna().iloc[0] + + # Optional integer column + df = flow_demand.Static( + demand=[1, 2.2], + priority=[1, pd.NA], + ).df + + assert df["priority"].dtype == "int32[pyarrow]" + assert df["priority"].isna().iloc[1] + + # Missing optional integer column + df = flow_demand.Static( + demand=[1, 2.2], + ).df + + assert df["priority"].dtype == "int32[pyarrow]" + assert df["priority"].isna().all() diff --git a/python/ribasim/tests/test_migrations.py b/python/ribasim/tests/test_migrations.py new file mode 100644 index 000000000..0091140fe --- /dev/null +++ b/python/ribasim/tests/test_migrations.py @@ -0,0 +1,21 @@ +from pathlib import Path + +import pytest +from ribasim import Model +from ribasim.db_utils import _get_db_schema_version + +root_folder = Path(__file__).parent.parent.parent.parent +print(root_folder) + + +@pytest.mark.regression +def test_hws_migration(): + toml_path = root_folder / "models/hws_migration_test/hws.toml" + db_path = root_folder / "models/hws_migration_test/database.gpkg" + + assert ( + toml_path.exists() + ), "Can't find the model, did you retrieve it with get_benchmark.py?" + + assert _get_db_schema_version(db_path) == 0 + Model.read(toml_path) diff --git a/python/ribasim/tests/test_model.py b/python/ribasim/tests/test_model.py index b92d71995..ba703d5fa 100644 --- a/python/ribasim/tests/test_model.py +++ b/python/ribasim/tests/test_model.py @@ -4,6 +4,7 @@ import numpy as np import pandas as pd import pytest +import tomli_w import xugrid from pydantic import ValidationError from pyproj import CRS @@ -12,7 +13,12 @@ from ribasim.geometry.edge import NodeData from ribasim.input_base import esc_id from ribasim.model import Model -from ribasim_testmodels import basic_model, trivial_model +from ribasim_testmodels import ( + basic_model, + outlet_model, + pid_control_equation_model, + trivial_model, +) from shapely import Point @@ -77,10 +83,11 @@ def test_invalid_node_id(): def test_tabulated_rating_curve_model(tabulated_rating_curve, tmp_path): model_orig = tabulated_rating_curve - model_orig.set_crs(model_orig.crs) basin_area = tabulated_rating_curve.basin.area.df assert basin_area is not None - assert basin_area.geometry.geom_type.iloc[0] == "Polygon" + assert basin_area.crs == CRS.from_epsg(28992) + model_orig.set_crs(model_orig.crs) + assert basin_area.geometry.geom_type.iloc[0] == "MultiPolygon" assert basin_area.crs == CRS.from_epsg(28992) model_orig.write(tmp_path / "tabulated_rating_curve/ribasim.toml") model_new = Model.read(tmp_path / "tabulated_rating_curve/ribasim.toml") @@ -98,37 +105,38 @@ def test_write_adds_fid_in_tables(basic, tmp_path): model_orig = basic # for node an explicit index was provided nrow = len(model_orig.basin.node.df) - assert model_orig.basin.node.df.index.name is None + assert model_orig.basin.node.df.index.name == "node_id" - # for edge no index was provided, but it still needs to write it to file + # for edge an explicit index was provided nrow = len(model_orig.edge.df) - assert model_orig.edge.df.index.name == "fid" - assert model_orig.edge.df.index.equals(pd.RangeIndex(nrow)) + assert model_orig.edge.df.index.name == "edge_id" + assert model_orig.edge.df.index.equals(pd.RangeIndex(1, nrow + 1)) model_orig.write(tmp_path / "basic/ribasim.toml") with connect(tmp_path / "basic/database.gpkg") as connection: query = f"select * from {esc_id('Basin / profile')}" - df = pd.read_sql_query(query, connection) + df = pd.read_sql_query(query, connection, dtype_backend="pyarrow") assert "fid" in df.columns - query = "select fid from Node" - df = pd.read_sql_query(query, connection) - assert "fid" in df.columns + query = "select node_id from Node" + df = pd.read_sql_query(query, connection, dtype_backend="pyarrow") + assert "node_id" in df.columns - query = "select fid from Edge" - df = pd.read_sql_query(query, connection) - assert "fid" in df.columns + query = "select edge_id from Edge" + df = pd.read_sql_query(query, connection, dtype_backend="pyarrow") + assert "edge_id" in df.columns def test_node_table(basic): model = basic + assert model.flow_boundary.node.df.crs == CRS.from_epsg(28992) node = model.node_table() df = node.df assert df.geometry.is_unique - assert df.node_id.dtype == np.int32 + assert df.index.dtype == np.int32 assert df.subnetwork_id.dtype == pd.Int32Dtype() assert df.node_type.iloc[0] == "Basin" - assert df.node_type.iloc[-1] == "Terminal" + assert df.node_type.iloc[-1] == "LevelBoundary" assert df.crs == CRS.from_epsg(28992) @@ -172,7 +180,10 @@ def test_indexing(basic): model.basin.time[1] -@pytest.mark.parametrize("model", [basic_model(), trivial_model()]) +@pytest.mark.parametrize( + "model", + [basic_model(), outlet_model(), pid_control_equation_model(), trivial_model()], +) def test_xugrid(model, tmp_path): uds = model.to_xugrid(add_flow=False) assert isinstance(uds, xugrid.UgridDataset) @@ -205,3 +216,27 @@ def test_to_crs(bucket: Model): # Assert that the bucket is still at Deltares' headquarter assert model.basin.node.df["geometry"].iloc[0].x == pytest.approx(4.38, abs=0.1) assert model.basin.node.df["geometry"].iloc[0].y == pytest.approx(51.98, abs=0.1) + + +def test_styles(tabulated_rating_curve: Model, tmp_path): + model = tabulated_rating_curve + + model.write(tmp_path / "basic" / "ribasim.toml") + with connect(tmp_path / "basic" / "database.gpkg") as conn: + assert conn.execute("SELECT COUNT(*) FROM layer_styles").fetchone()[0] == 3 + + +def test_non_existent_files(tmp_path): + with pytest.raises( + FileNotFoundError, match="File 'non_existent_file.toml' does not exist." + ): + Model.read("non_existent_file.toml") + + # Create a TOML file without a database.gpkg + content = {"input_path": str(tmp_path)} + toml_path = tmp_path / "test.toml" + with open(toml_path, "wb") as f: + tomli_w.dump(content, f) + + with pytest.raises(FileNotFoundError, match=r"Database file .* does not exist\."): + Model.read(toml_path) diff --git a/python/ribasim/tests/test_schemas.py b/python/ribasim/tests/test_schemas.py index 10f9d2193..7693d52cc 100644 --- a/python/ribasim/tests/test_schemas.py +++ b/python/ribasim/tests/test_schemas.py @@ -1,6 +1,49 @@ +from unittest.mock import patch + +import pytest +import ribasim +from pydantic import ValidationError +from ribasim import Model +from ribasim.db_utils import _get_db_schema_version, _set_db_schema_version +from ribasim.nodes import basin from ribasim.schemas import BasinProfileSchema +from shapely.geometry import Point def test_config_inheritance(): assert BasinProfileSchema.__config__.add_missing_columns assert BasinProfileSchema.__config__.coerce + + +@patch("ribasim.schemas.migrations.nodeschema_migration") +def test_migration(migration, basic, tmp_path): + toml_path = tmp_path / "basic.toml" + db_path = tmp_path / "database.gpkg" + basic.write(toml_path) + + # Migration is not needed on default model + Model.read(toml_path) + assert not migration.called + + # Fake old schema that needs migration + _set_db_schema_version(db_path, 0) + Model.read(toml_path) + assert migration.called + + +def test_model_schema(basic, tmp_path): + toml_path = tmp_path / "basic.toml" + db_path = tmp_path / "database.gpkg" + basic.write(toml_path) + + assert _get_db_schema_version(db_path) == ribasim.__schema_version__ + _set_db_schema_version(db_path, 0) + assert _get_db_schema_version(db_path) == 0 + + +def test_geometry_validation(): + with pytest.raises( + ValidationError, + match="Column 'geometry' failed element-wise validator number 0: failure cases", + ): + basin.Area(geometry=[Point([1.0, 2.0])]) diff --git a/python/ribasim/tests/test_validation.py b/python/ribasim/tests/test_validation.py new file mode 100644 index 000000000..28f0f6324 --- /dev/null +++ b/python/ribasim/tests/test_validation.py @@ -0,0 +1,188 @@ +import re + +import pytest +from ribasim import Node +from ribasim.config import Solver +from ribasim.model import Model +from ribasim.nodes import ( + basin, + level_boundary, + outlet, + pid_control, + pump, +) +from shapely import MultiPolygon, Point, Polygon + + +def test_duplicate_edge(basic): + model = basic + with pytest.raises( + ValueError, + match=re.escape( + "Edges have to be unique, but edge with from_node_id 16 to_node_id 1 already exists." + ), + ): + model.edge.add( + model.flow_boundary[16], + model.basin[1], + name="duplicate", + ) + + +def test_connectivity(trivial): + model = trivial + with pytest.raises( + ValueError, + match=re.escape( + "Node of type Terminal cannot be downstream of node of type Basin. Possible downstream node: ['LinearResistance', 'UserDemand', 'Outlet', 'TabulatedRatingCurve', 'ManningResistance', 'Pump']" + ), + ): + model.edge.add(model.basin[6], model.terminal[2147483647]) + + +def test_maximum_flow_neighbor(outlet): + model = outlet + with pytest.raises( + ValueError, + match=re.escape("Node 2 can have at most 1 flow edge outneighbor(s) (got 1)"), + ): + model.basin.add( + Node(4, Point(1.0, 1.0)), + [ + basin.Profile(area=[1000.0, 1000.0], level=[0.0, 1.0]), + basin.State(level=[0.0]), + ], + ) + model.edge.add(model.outlet[2], model.basin[4]) + + with pytest.raises( + ValueError, + match=re.escape("Node 2 can have at most 1 flow edge inneighbor(s) (got 1)"), + ): + model.level_boundary.add( + Node(5, Point(0.0, 1.0)), + [level_boundary.Static(level=[3.0])], + ) + model.edge.add(model.level_boundary[5], model.outlet[2]) + + +def test_maximum_control_neighbor(pid_control_equation): + model = pid_control_equation + with pytest.raises( + ValueError, + match=re.escape("Node 2 can have at most 1 control edge inneighbor(s) (got 1)"), + ): + model.pid_control.add( + Node(5, Point(0.5, -1.0)), + [ + pid_control.Static( + listen_node_id=[1], + target=10.0, + proportional=-2.5, + integral=-0.001, + derivative=10.0, + ) + ], + ) + model.edge.add( + model.pid_control[5], + model.pump[2], + ) + with pytest.raises( + ValueError, + match=re.escape( + "Node 4 can have at most 1 control edge outneighbor(s) (got 1)" + ), + ): + model.pump.add(Node(6, Point(-1.0, 0)), [pump.Static(flow_rate=[0.0])]) + model.edge.add( + model.pid_control[4], + model.pump[6], + ) + + +def test_minimum_flow_neighbor(): + model = Model( + starttime="2020-01-01", + endtime="2021-01-01", + crs="EPSG:28992", + solver=Solver(), + ) + + model.basin.add( + Node(3, Point(2.0, 0.0)), + [ + basin.Profile(area=[1000.0, 1000.0], level=[0.0, 1.0]), + basin.State(level=[0.0]), + ], + ) + model.outlet.add( + Node(2, Point(1.0, 0.0)), + [outlet.Static(flow_rate=[1e-3], min_upstream_level=[2.0])], + ) + model.terminal.add(Node(4, Point(3.0, -2.0))) + + with pytest.raises( + ValueError, + match=re.escape("Minimum flow inneighbor or outneighbor unsatisfied"), + ): + model.edge.add(model.basin[3], model.outlet[2]) + model.write("test.toml") + + +def test_minimum_control_neighbor(): + model = Model( + starttime="2020-01-01", + endtime="2021-01-01", + crs="EPSG:28992", + solver=Solver(), + ) + + model.basin.add( + Node(3, Point(2.0, 0.0)), + [ + basin.Profile(area=[1000.0, 1000.0], level=[0.0, 1.0]), + basin.State(level=[0.0]), + ], + ) + model.outlet.add( + Node(2, Point(1.0, 0.0)), + [outlet.Static(flow_rate=[1e-3], min_upstream_level=[2.0])], + ) + model.terminal.add(Node(4, Point(3.0, -2.0))) + + model.edge.add(model.basin[3], model.outlet[2]) + model.edge.add(model.outlet[2], model.terminal[4]) + + with pytest.raises( + ValueError, + match=re.escape("Minimum control inneighbor or outneighbor unsatisfied"), + ): + model.pid_control.add( + Node(5, Point(0.5, 1)), + [ + pid_control.Static( + listen_node_id=[3], + target=10.0, + proportional=-2.5, + integral=-0.001, + derivative=10.0, + ) + ], + ) + model.write("test.toml") + + +def test_geometry_validation(): + point = Point(0.0, 0.0) + poly = point.buffer(1.0) + + assert isinstance(poly, Polygon) + basinarea = basin.Area(geometry=[poly]) + assert isinstance(basinarea.df.geometry[0], MultiPolygon) + + basinarea = basin.Area(geometry=[basinarea.df.geometry[0]]) + assert isinstance(basinarea.df.geometry[0], MultiPolygon) + + with pytest.raises(ValueError): + basin.Area(geometry=[point]) diff --git a/python/ribasim_api/README.md b/python/ribasim_api/README.md index 8dd3c97a7..ccc281a21 100644 --- a/python/ribasim_api/README.md +++ b/python/ribasim_api/README.md @@ -20,4 +20,4 @@ conda install -c conda-forge ribasim-api # Contributing -For the developer docs please have a look at https://deltares.github.io/Ribasim/contribute/python.html +For the developer docs please have a look at https://ribasim.org/dev/. diff --git a/python/ribasim_api/pyproject.toml b/python/ribasim_api/pyproject.toml index 31ac385a6..b88e0aaa1 100644 --- a/python/ribasim_api/pyproject.toml +++ b/python/ribasim_api/pyproject.toml @@ -22,7 +22,7 @@ dynamic = ["version"] tests = ["pytest", "ribasim", "ribasim_testmodels"] [project.urls] -Documentation = "https://deltares.github.io/Ribasim" +Documentation = "https://ribasim.org/" Source = "https://github.com/Deltares/Ribasim" [tool.hatch.version] diff --git a/python/ribasim_api/ribasim_api/__init__.py b/python/ribasim_api/ribasim_api/__init__.py index 4bc7ff37e..bf12dd287 100644 --- a/python/ribasim_api/ribasim_api/__init__.py +++ b/python/ribasim_api/ribasim_api/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2024.9.0" +__version__ = "2024.11.0" from ribasim_api.ribasim_api import RibasimApi diff --git a/python/ribasim_api/tests/conftest.py b/python/ribasim_api/tests/conftest.py index 7c57ed6bc..5ed92a3c5 100644 --- a/python/ribasim_api/tests/conftest.py +++ b/python/ribasim_api/tests/conftest.py @@ -4,7 +4,13 @@ import pytest import ribasim from ribasim_api import RibasimApi -from ribasim_testmodels import basic_model, basic_transient_model +from ribasim_testmodels import ( + basic_model, + basic_transient_model, + leaky_bucket_model, + two_basin_model, + user_demand_model, +) @pytest.fixture(scope="session") @@ -43,3 +49,18 @@ def basic() -> ribasim.Model: @pytest.fixture(scope="session") def basic_transient(basic) -> ribasim.Model: return basic_transient_model(basic) + + +@pytest.fixture(scope="session") +def leaky_bucket() -> ribasim.Model: + return leaky_bucket_model() + + +@pytest.fixture(scope="session") +def user_demand() -> ribasim.Model: + return user_demand_model() + + +@pytest.fixture(scope="session") +def two_basin() -> ribasim.Model: + return two_basin_model() diff --git a/python/ribasim_api/tests/test_bmi.py b/python/ribasim_api/tests/test_bmi.py index be1c9e340..f11383721 100644 --- a/python/ribasim_api/tests/test_bmi.py +++ b/python/ribasim_api/tests/test_bmi.py @@ -94,14 +94,84 @@ def test_get_var_shape(libribasim, basic, tmp_path): assert_array_almost_equal(actual_shape, expected_shape) -def test_get_value_ptr(libribasim, basic, tmp_path): +def test_get_value_ptr_basin(libribasim, basic, tmp_path): basic.write(tmp_path / "ribasim.toml") config_file = str(tmp_path / "ribasim.toml") libribasim.initialize(config_file) + + # Storage actual_volume = libribasim.get_value_ptr("basin.storage") expected_volume = np.array([1.0, 1.0, 1.0, 1.0]) assert_array_almost_equal(actual_volume, expected_volume) + # Level + actual_level = libribasim.get_value_ptr("basin.level") + expected_level = np.array(4 * [0.04471158417652035]) + assert_array_almost_equal(actual_level, expected_level) + + +def test_get_value_ptr_subgrid(libribasim, two_basin, tmp_path): + two_basin.write(tmp_path / "ribasim.toml") + config_file = str(tmp_path / "ribasim.toml") + libribasim.initialize(config_file) + + # Run model until subgrid level is updated + libribasim.update_until(86400.0) + + # Subgrid level + libribasim.update_subgrid_level() + actual_subgrid_level = libribasim.get_value_ptr("basin.subgrid_level") + expected_subgrid_level = np.array([2.17, 0.006142]) + assert_array_almost_equal(actual_subgrid_level, expected_subgrid_level) + + +def test_get_value_ptr_basin_forcing(libribasim, leaky_bucket, tmp_path): + leaky_bucket.write(tmp_path / "ribasim.toml") + config_file = str(tmp_path / "ribasim.toml") + libribasim.initialize(config_file) + + # Infiltration (instantaneous) + actual_infiltration = libribasim.get_value_ptr("basin.infiltration") + expected_infiltration = np.array([0.0]) + assert_array_almost_equal(actual_infiltration, expected_infiltration) + + # Drainage (instantaneous) + actual_drainage = libribasim.get_value_ptr("basin.drainage") + expected_drainage = np.array([0.003]) + assert_array_almost_equal(actual_drainage, expected_drainage) + + # Run model for a while to build up integrated forcing + libribasim.update_until(60.0) + + # Cumulative infiltration + actual_infiltration = libribasim.get_value_ptr("basin.cumulative_infiltration") + expected_infiltration = np.array([0.0]) + assert_array_almost_equal(actual_infiltration, expected_infiltration) + + # Cumulative drainage + actual_drainage = libribasim.get_value_ptr("basin.cumulative_drainage") + expected_drainage = np.array([0.003 * 60.0]) + assert_array_almost_equal(actual_drainage, expected_drainage) + + +def test_get_value_ptr_allocation(libribasim, user_demand, tmp_path): + user_demand.write(tmp_path / "ribasim.toml") + config_file = str(tmp_path / "ribasim.toml") + libribasim.initialize(config_file) + + # Demand + actual_demand = libribasim.get_value_ptr("user_demand.demand") + expected_demand = np.array([1e-4, 0.0, 0.0]) + assert_array_almost_equal(actual_demand, expected_demand) + + # Run model for a while to build up realized + libribasim.update_until(60.0) + + # Realized inflow + actual_inflow = libribasim.get_value_ptr("user_demand.cumulative_inflow") + expected_inflow = np.array([1e-4 * 60.0, 0.0, 0.0]) + assert_array_almost_equal(actual_inflow, expected_inflow) + def test_err_unknown_var(libribasim, basic, tmp_path): """ diff --git a/python/ribasim_testmodels/README.md b/python/ribasim_testmodels/README.md index f6d88c8fd..93df80bb5 100644 --- a/python/ribasim_testmodels/README.md +++ b/python/ribasim_testmodels/README.md @@ -5,4 +5,4 @@ The test models are used for internal testing of Ribasim. # Contributing -For the developer docs please have a look at https://deltares.github.io/Ribasim/contribute/ +For the developer docs please have a look at https://ribasim.org/dev/ diff --git a/python/ribasim_testmodels/pyproject.toml b/python/ribasim_testmodels/pyproject.toml index 857bba0e0..c25df495d 100644 --- a/python/ribasim_testmodels/pyproject.toml +++ b/python/ribasim_testmodels/pyproject.toml @@ -20,7 +20,7 @@ dynamic = ["version"] tests = ["pytest"] [project.urls] -Documentation = "https://deltares.github.io/Ribasim" +Documentation = "https://ribasim.org/" Source = "https://github.com/Deltares/Ribasim" [tool.hatch.version] diff --git a/python/ribasim_testmodels/ribasim_testmodels/__init__.py b/python/ribasim_testmodels/ribasim_testmodels/__init__.py index 781643aa6..bb065778b 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/__init__.py +++ b/python/ribasim_testmodels/ribasim_testmodels/__init__.py @@ -27,9 +27,12 @@ tabulated_rating_curve_model, ) from ribasim_testmodels.bucket import bucket_model, leaky_bucket_model +from ribasim_testmodels.continuous_control import outlet_continuous_control_model from ribasim_testmodels.discrete_control import ( compound_variable_condition_model, + concentration_condition_model, connector_node_flow_condition_model, + continuous_concentration_condition_model, flow_condition_model, level_boundary_condition_model, level_range_model, @@ -47,6 +50,7 @@ from ribasim_testmodels.invalid import ( invalid_discrete_control_model, invalid_edge_types_model, + invalid_priorities_model, invalid_qh_model, invalid_unstable_model, ) @@ -66,6 +70,9 @@ "basic_transient_model", "bucket_model", "compound_variable_condition_model", + "concentration_condition_model", + "continuous_concentration_condition_model", + "connector_node_flow_condition_model", "discrete_control_of_pid_control_model", "fair_distribution_model", "flow_boundary_time_model", @@ -73,6 +80,7 @@ "flow_demand_model", "invalid_discrete_control_model", "invalid_edge_types_model", + "invalid_priorities_model", "invalid_qh_model", "invalid_unstable_model", "leaky_bucket_model", @@ -87,7 +95,7 @@ "manning_resistance_model", "minimal_subnetwork_model", "misc_nodes_model", - "connector_node_flow_condition_model", + "outlet_continuous_control_model", "outlet_model", "pid_control_equation_model", "pid_control_model", diff --git a/python/ribasim_testmodels/ribasim_testmodels/allocation.py b/python/ribasim_testmodels/ribasim_testmodels/allocation.py index c78e4ab54..e51fbbe40 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/allocation.py +++ b/python/ribasim_testmodels/ribasim_testmodels/allocation.py @@ -59,12 +59,31 @@ def user_demand_model() -> Model: ) ], ) - model.terminal.add(Node(4, Point(2, 0))) + model.user_demand.add( + Node(4, Point(1, 0)), + [ + user_demand.Time( + time=[ + "2020-08-01 00:00:00", + "2020-09-01 00:00:00", + "2020-10-01 00:00:00", + "2020-11-01 00:00:00", + ], + min_level=0.0, + demand=[0.0, 1e-4, 2e-4, 0.0], + return_factor=[0.0, 0.1, 0.2, 0.3], + priority=1, + ) + ], + ) + model.terminal.add(Node(5, Point(2, 0))) model.edge.add(model.basin[1], model.user_demand[2]) model.edge.add(model.basin[1], model.user_demand[3]) - model.edge.add(model.user_demand[2], model.terminal[4]) - model.edge.add(model.user_demand[3], model.terminal[4]) + model.edge.add(model.basin[1], model.user_demand[4]) + model.edge.add(model.user_demand[2], model.terminal[5]) + model.edge.add(model.user_demand[3], model.terminal[5]) + model.edge.add(model.user_demand[4], model.terminal[5]) return model @@ -388,7 +407,7 @@ def allocation_example_model() -> Model: ) ], ) - model.terminal.add(Node(1, Point(5, 0), subnetwork_id=2)) + model.terminal.add(Node(8, Point(5, 0), subnetwork_id=2)) model.edge.add(model.flow_boundary[1], model.basin[2], subnetwork_id=2) model.edge.add(model.basin[2], model.user_demand[3]) @@ -396,7 +415,7 @@ def allocation_example_model() -> Model: model.edge.add(model.linear_resistance[4], model.basin[5]) model.edge.add(model.basin[5], model.user_demand[6]) model.edge.add(model.basin[5], model.tabulated_rating_curve[7]) - model.edge.add(model.tabulated_rating_curve[7], model.terminal[1]) + model.edge.add(model.tabulated_rating_curve[7], model.terminal[8]) model.edge.add(model.user_demand[3], model.basin[2]) model.edge.add(model.user_demand[6], model.basin[5]) @@ -773,12 +792,12 @@ def flow_demand_model() -> Model: model.tabulated_rating_curve.add( Node(2, Point(1, 0), subnetwork_id=2), - [tabulated_rating_curve.Static(level=[0.0, 1.0], flow_rate=[0.0, 2e-3])], + [tabulated_rating_curve.Static(level=[0.0, 2.0], flow_rate=[0.0, 2e-3])], ) model.level_boundary.add( Node(1, Point(0, 0), subnetwork_id=2), - [level_boundary.Static(node_id=[1], level=[1.0])], + [level_boundary.Static(node_id=[1], level=[2.0])], ) model.basin.add( diff --git a/python/ribasim_testmodels/ribasim_testmodels/backwater.py b/python/ribasim_testmodels/ribasim_testmodels/backwater.py index 04b79a550..81f6fa2a0 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/backwater.py +++ b/python/ribasim_testmodels/ribasim_testmodels/backwater.py @@ -23,6 +23,7 @@ def backwater_model(): starttime="2020-01-01", endtime="2021-01-01", crs="EPSG:28992", + solver=ribasim.Solver(autodiff=True), ) model.flow_boundary.add( @@ -69,7 +70,7 @@ def backwater_model(): model.basin.add( Node(102, Point(1010.0, 0.0)), - [basin.State(level=[2.0]), basin.Profile(level=[0.0, 1.0], area=1e20)], + [basin.State(level=[2.0]), basin.Profile(level=[0.0, 1.0], area=1e10)], ) model.edge.add( model.manning_resistance[101], diff --git a/python/ribasim_testmodels/ribasim_testmodels/basic.py b/python/ribasim_testmodels/ribasim_testmodels/basic.py index 9b3050931..8618631de 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/basic.py +++ b/python/ribasim_testmodels/ribasim_testmodels/basic.py @@ -5,7 +5,7 @@ import numpy as np import pandas as pd import ribasim -from ribasim.config import Node +from ribasim.config import Experimental, Node from ribasim.input_base import TableModel from ribasim.nodes import ( basin, @@ -17,7 +17,7 @@ pump, tabulated_rating_curve, ) -from shapely.geometry import Point +from shapely.geometry import MultiPolygon, Point def basic_model() -> ribasim.Model: @@ -26,6 +26,7 @@ def basic_model() -> ribasim.Model: starttime="2020-01-01", endtime="2021-01-01", crs="EPSG:28992", + experimental=Experimental(concentration=True), ) model.logging = ribasim.Logging(verbosity="debug") @@ -91,7 +92,7 @@ def basic_model() -> ribasim.Model: # Setup TabulatedRatingCurve q = 10 / 86400 # 10 m³/day model.tabulated_rating_curve.add( - Node(6, Point(4.0, 0.0)), + Node(8, Point(4.0, 0.0)), [ tabulated_rating_curve.Static( level=[0.0, 1.0], @@ -100,7 +101,7 @@ def basic_model() -> ribasim.Model: ], ) model.tabulated_rating_curve.add( - Node(3, Point(3.0, 1.0)), + Node(5, Point(3.0, 1.0)), [ tabulated_rating_curve.Static( level=[0.0, 1.0], @@ -109,7 +110,7 @@ def basic_model() -> ribasim.Model: ], ) model.tabulated_rating_curve.add( - Node(1, Point(3.0, -1.0)), + Node(4, Point(3.0, -1.0)), [ tabulated_rating_curve.Static( level=[0.0, 1.0], @@ -161,19 +162,19 @@ def basic_model() -> ribasim.Model: model.edge.add(model.manning_resistance[2], model.basin[3]) model.edge.add( model.basin[3], - model.tabulated_rating_curve[6], + model.tabulated_rating_curve[8], ) model.edge.add( model.basin[3], - model.tabulated_rating_curve[3], + model.tabulated_rating_curve[5], ) model.edge.add( model.basin[3], - model.tabulated_rating_curve[1], + model.tabulated_rating_curve[4], ) - model.edge.add(model.tabulated_rating_curve[3], model.basin[6]) + model.edge.add(model.tabulated_rating_curve[5], model.basin[6]) model.edge.add(model.basin[6], model.pump[7]) - model.edge.add(model.tabulated_rating_curve[6], model.basin[9]) + model.edge.add(model.tabulated_rating_curve[8], model.basin[9]) model.edge.add(model.pump[7], model.basin[9]) model.edge.add(model.basin[9], model.linear_resistance[10]) model.edge.add( @@ -185,7 +186,7 @@ def basic_model() -> ribasim.Model: model.basin[3], ) model.edge.add( - model.tabulated_rating_curve[1], + model.tabulated_rating_curve[4], model.terminal[14], ) model.edge.add( @@ -290,13 +291,13 @@ def tabulated_rating_curve_model() -> ribasim.Model: [ tabulated_rating_curve.Time( time=[ - # test subsecond precision - pd.Timestamp("2020-01-01 00:00:00.000001"), - pd.Timestamp("2020-01"), - pd.Timestamp("2020-02"), - pd.Timestamp("2020-02"), - pd.Timestamp("2020-03"), - pd.Timestamp("2020-03"), + # test millisecond precision + pd.Timestamp("2020-01-01"), + pd.Timestamp("2020-01-01"), + pd.Timestamp("2020-02-01 00:00:00.001"), + pd.Timestamp("2020-02-01 00:00:00.001"), + pd.Timestamp("2020-03-01"), + pd.Timestamp("2020-03-01"), ], level=[0.0, 1.0, 0.0, 1.1, 0.0, 1.2], flow_rate=[0.0, 10 / 86400, 0.0, 10 / 86400, 0.0, 10 / 86400], @@ -314,7 +315,7 @@ def tabulated_rating_curve_model() -> ribasim.Model: Node(1, basin_geometry_1), [ basin.Static(precipitation=[0.002 / 86400]), - basin.Area(geometry=[basin_geometry_1.buffer(1.0)]), + basin.Area(geometry=[MultiPolygon([basin_geometry_1.buffer(1.0)])]), *node_data, ], ) @@ -323,7 +324,7 @@ def tabulated_rating_curve_model() -> ribasim.Model: Node(4, basin_geometry_2), [ basin.Static(precipitation=[0.0]), - basin.Area(geometry=[basin_geometry_2.buffer(1.0)]), + basin.Area(geometry=[MultiPolygon([basin_geometry_2.buffer(1.0)])]), *node_data, ], ) @@ -381,7 +382,7 @@ def outlet_model(): # Setup the outlet model.outlet.add( Node(2, Point(1.0, 0.0)), - [outlet.Static(flow_rate=[1e-3], min_crest_level=[2.0])], + [outlet.Static(flow_rate=[1e-3], min_upstream_level=[2.0])], ) # Setup the edges diff --git a/python/ribasim_testmodels/ribasim_testmodels/continuous_control.py b/python/ribasim_testmodels/ribasim_testmodels/continuous_control.py new file mode 100644 index 000000000..0da7fdca2 --- /dev/null +++ b/python/ribasim_testmodels/ribasim_testmodels/continuous_control.py @@ -0,0 +1,92 @@ +import numpy as np +import pandas as pd +from ribasim.config import Node +from ribasim.model import Model +from ribasim.nodes import ( + basin, + continuous_control, + level_boundary, + linear_resistance, + outlet, +) +from shapely.geometry import Point + + +def outlet_continuous_control_model() -> Model: + """Set up a small model that distributes flow over 2 branches.""" + + model = Model( + starttime="2020-01-01", + endtime="2021-01-01", + crs="EPSG:28992", + ) + + model.level_boundary.add( + Node(1, Point(0, 0)), + [ + level_boundary.Time( + time=pd.date_range( + start="2020-01-01", end="2021-01-01", periods=100, unit="ms" + ), + level=6.0 + np.sin(np.linspace(0, 6 * np.pi, 100)), + ) + ], + ) + + model.linear_resistance.add( + Node(2, Point(1, 0)), [linear_resistance.Static(resistance=[10.0])] + ) + + model.basin.add( + Node(3, Point(2, 0)), + [ + basin.Profile(area=10000.0, level=[0.0, 1.0]), + basin.State(level=[10.0]), + ], + ) + + model.outlet.add(Node(4, Point(3, 1)), [outlet.Static(flow_rate=[1.0])]) + model.outlet.add(Node(5, Point(3, -1)), [outlet.Static(flow_rate=[1.0])]) + + model.terminal.add(Node(6, Point(4, 1))) + model.terminal.add(Node(7, Point(4, -1))) + + model.continuous_control.add( + Node(8, Point(2, 1)), + [ + continuous_control.Variable( + listen_node_id=[2], + variable="flow_rate", + ), + continuous_control.Function( + input=[0.0, 1.0], + output=[0.0, 0.6], + controlled_variable="flow_rate", + ), + ], + ) + model.continuous_control.add( + Node(9, Point(2, -1)), + [ + continuous_control.Variable( + listen_node_id=[2], + variable="flow_rate", + ), + continuous_control.Function( + input=[0.0, 1.0], + output=[0.0, 0.4], + controlled_variable="flow_rate", + ), + ], + ) + + model.edge.add(model.level_boundary[1], model.linear_resistance[2]) + model.edge.add(model.linear_resistance[2], model.basin[3]) + model.edge.add(model.basin[3], model.outlet[4]) + model.edge.add(model.basin[3], model.outlet[5]) + model.edge.add(model.outlet[4], model.terminal[6]) + model.edge.add(model.outlet[5], model.terminal[7]) + model.edge.add(model.continuous_control[8], model.outlet[4]) + model.edge.add(model.continuous_control[9], model.outlet[5]) + + return model diff --git a/python/ribasim_testmodels/ribasim_testmodels/discrete_control.py b/python/ribasim_testmodels/ribasim_testmodels/discrete_control.py index da8a65890..c325fbfb5 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/discrete_control.py +++ b/python/ribasim_testmodels/ribasim_testmodels/discrete_control.py @@ -1,5 +1,7 @@ -from ribasim.config import Node -from ribasim.model import Model +import numpy as np +import pandas as pd +from ribasim.config import Experimental, Node +from ribasim.model import Model, Solver from ribasim.nodes import ( basin, discrete_control, @@ -55,7 +57,6 @@ def pump_discrete_control_model() -> Model: Node(5, Point(1, 1)), [ discrete_control.Variable( - listen_node_type="Basin", listen_node_id=[1, 3], variable="level", compound_variable_id=[1, 2], @@ -74,7 +75,6 @@ def pump_discrete_control_model() -> Model: Node(6, Point(2, -1)), [ discrete_control.Variable( - listen_node_type="Basin", listen_node_id=[3], variable="level", compound_variable_id=1, @@ -149,7 +149,6 @@ def flow_condition_model() -> Model: Node(5, Point(1, 1)), [ discrete_control.Variable( - listen_node_type="FlowBoundary", listen_node_id=[1], variable="flow_rate", look_ahead=60 * 86400, @@ -216,7 +215,6 @@ def level_boundary_condition_model() -> Model: Node(6, Point(1.5, 1)), [ discrete_control.Variable( - listen_node_type="LevelBoundary", listen_node_id=[1], variable="level", look_ahead=60 * 86400, @@ -292,7 +290,6 @@ def tabulated_rating_curve_control_model() -> Model: Node(4, Point(1, 1)), [ discrete_control.Variable( - listen_node_type="Basin", listen_node_id=[1], variable="level", compound_variable_id=1, @@ -358,7 +355,6 @@ def compound_variable_condition_model() -> Model: Node(6, Point(1, 1)), [ discrete_control.Variable( - listen_node_type="FlowBoundary", listen_node_id=[2, 3], variable="flow_rate", weight=0.5, @@ -392,6 +388,7 @@ def level_range_model() -> Model: starttime="2020-01-01", endtime="2021-01-01", crs="EPSG:28992", + solver=Solver(abstol=1e-6, reltol=1e-5), ) model.basin.add( @@ -422,7 +419,6 @@ def level_range_model() -> Model: Node(7, Point(1, 0)), [ discrete_control.Variable( - listen_node_type="Basin", listen_node_id=[1], variable="level", compound_variable_id=1, @@ -495,7 +491,7 @@ def connector_node_flow_condition_model() -> Model: ], ) model.linear_resistance.add( - Node(1, Point(1, 0)), + Node(2, Point(1, 0)), [ linear_resistance.Static( control_state=["On", "Off"], resistance=1e4, active=[True, False] @@ -503,18 +499,17 @@ def connector_node_flow_condition_model() -> Model: ], ) model.basin.add( - Node(2, Point(2, 0)), + Node(3, Point(2, 0)), [ basin.Profile(area=1000.0, level=[0.0, 1.0]), basin.State(level=[10.0]), ], ) model.discrete_control.add( - Node(1, Point(0.5, 0.8660254037844386)), + Node(4, Point(0.5, 0.8660254037844386)), [ discrete_control.Variable( - listen_node_type=["LinearResistance"], - listen_node_id=[1], + listen_node_id=[2], variable=["flow_rate"], compound_variable_id=1, ), @@ -523,8 +518,175 @@ def connector_node_flow_condition_model() -> Model: ], ) - model.edge.add(model.basin[1], model.linear_resistance[1]) - model.edge.add(model.linear_resistance[1], model.basin[2]) - model.edge.add(model.discrete_control[1], model.linear_resistance[1]) + model.edge.add(model.basin[1], model.linear_resistance[2]) + model.edge.add(model.linear_resistance[2], model.basin[3]) + model.edge.add(model.discrete_control[4], model.linear_resistance[2]) + + return model + + +def concentration_condition_model() -> Model: + """ + Set up a minimal model with discrete control based on a + concentration condition. + """ + + model = Model( + starttime="2020-01-01", + endtime="2021-01-01", + crs="EPSG:28992", + ) + + model.basin.add( + Node(1, Point(0, 0)), + [ + basin.Profile(area=1000.0, level=[0.0, 1.0]), + basin.State(level=[20.0]), + basin.ConcentrationExternal( + time=pd.date_range( + start="2020-01-01", end="2021-01-01", periods=100, unit="ms" + ), + substance="kryptonite", + concentration=np.sin(np.linspace(0, 6 * np.pi, 100)) ** 2, + ), + ], + ) + + model.pump.add( + Node(2, Point(1, 0)), + [ + pump.Static( + control_state=["On", "Off"], active=[True, False], flow_rate=1e-3 + ) + ], + ) + + model.terminal.add(Node(3, Point(2, 0))) + + model.discrete_control.add( + Node(4, Point(1, 1)), + [ + discrete_control.Variable( + listen_node_id=[1], + variable=["concentration_external.kryptonite"], + compound_variable_id=1, + ), + discrete_control.Condition(greater_than=[0.5], compound_variable_id=1), + discrete_control.Logic(truth_state=["T", "F"], control_state=["On", "Off"]), + ], + ) + + model.edge.add(model.basin[1], model.pump[2]) + model.edge.add(model.pump[2], model.terminal[3]) + model.edge.add(model.discrete_control[4], model.pump[2]) + + return model + + +def continuous_concentration_condition_model() -> Model: + """ + Set up a minimal model with discrete control based on a + continuous (calculated) concentration condition. + In this case, we setup a salt concentration and mimic + the Dutch coast. + + dc + / | + lb --> lr -> basin <-- fb + | + out + | + term + """ + + model = Model( + starttime="2020-01-01", + endtime="2020-02-01", + crs="EPSG:28992", + solver=Solver(saveat=86400 / 8), + experimental=Experimental(concentration=True), + ) + + basi = model.basin.add( + Node(1, Point(0, 0)), + [ + basin.Profile(area=[10.0, 100.0], level=[0.0, 1.0]), + basin.State(level=[10.0]), + basin.ConcentrationState( + substance=["Cl"], + concentration=[35.0], # slightly salty start + ), + basin.Concentration( + time=pd.date_range( + start="2020-01-01", end="2021-01-01", periods=10, unit="ms" + ), + substance="Bar", + precipitation=0.1, + ), + ], + ) + + linearr = model.linear_resistance.add( + Node(2, Point(-1, 0)), + [ + linear_resistance.Static( + control_state=["On", "Off"], + resistance=[0.001, 10], + max_flow_rate=[0.2, 0.0001], + ) + ], + ) + + levelb = model.level_boundary.add( + Node(3, Point(-2, 0)), + [ + level_boundary.Static(level=[35.0]), + level_boundary.Concentration( + time=pd.date_range( + start="2020-01-01", end="2021-01-01", periods=10, unit="ms" + ), + substance="Cl", + concentration=35.0, + ), + ], + ) + + flowb = model.flow_boundary.add( + Node(4, Point(1, 0)), + [ + flow_boundary.Static(flow_rate=[0.1]), + flow_boundary.Concentration( + time=pd.date_range( + start="2020-01-01", end="2021-01-01", periods=11, unit="ms" + ), + substance="Foo", + concentration=1.0, + ), + ], + ) + + discretec = model.discrete_control.add( + Node(5, Point(0, 0.5)), + [ + discrete_control.Variable( + listen_node_id=[1], + variable=["concentration.Cl"], + compound_variable_id=1, + ), + # More than 20% of seawater (35 g/L) + discrete_control.Condition(greater_than=[7], compound_variable_id=1), + discrete_control.Logic(truth_state=["T", "F"], control_state=["Off", "On"]), + ], + ) + + outl = model.outlet.add(Node(6, Point(0, -0.5)), [outlet.Static(flow_rate=[0.11])]) + term = model.terminal.add(Node(7, Point(0, -1))) + + model.edge.add(levelb, linearr) + model.edge.add(linearr, basi) + model.edge.add(flowb, basi) + model.edge.add(discretec, linearr) + model.edge.add(basi, outl) + model.edge.add(outl, term) return model diff --git a/python/ribasim_testmodels/ribasim_testmodels/doc_example.py b/python/ribasim_testmodels/ribasim_testmodels/doc_example.py index d22f3d9a0..b097d9cc2 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/doc_example.py +++ b/python/ribasim_testmodels/ribasim_testmodels/doc_example.py @@ -104,7 +104,6 @@ def local_pidcontrolled_cascade_model(): # Set up pid control pid_control_data = { - "listen_node_type": "Basin", "proportional": [0.1], "integral": [0.00], "derivative": [0.0], @@ -135,23 +134,23 @@ def local_pidcontrolled_cascade_model(): # Set up outlet model.outlet.add( Node(2, Point(0.0, -1.0)), - [outlet.Static(flow_rate=[4 * 0.5 / 3600], min_crest_level=[0.0])], + [outlet.Static(flow_rate=[4 * 0.5 / 3600], min_upstream_level=[0.0])], ) model.outlet.add( Node(5, Point(0.0, -3.0)), - [outlet.Static(flow_rate=[0.5 / 3600], min_crest_level=[1.95])], + [outlet.Static(flow_rate=[0.5 / 3600], min_upstream_level=[1.95])], ) model.outlet.add( Node(7, Point(1.0, -4.0)), - [outlet.Static(flow_rate=[4 * 0.5 / 3600], min_crest_level=[1.45])], + [outlet.Static(flow_rate=[4 * 0.5 / 3600], min_upstream_level=[1.45])], ) model.outlet.add( Node(9, Point(3.0, -4.0)), - [outlet.Static(flow_rate=[0.5 / 3600], min_crest_level=[0.95])], + [outlet.Static(flow_rate=[0.5 / 3600], min_upstream_level=[0.95])], ) model.outlet.add( Node(11, Point(4.0, -3.0)), - [outlet.Static(flow_rate=[0.5 / 3600], min_crest_level=[0.45])], + [outlet.Static(flow_rate=[0.5 / 3600], min_upstream_level=[0.45])], ) model.edge.add(model.basin[1], model.outlet[2]) diff --git a/python/ribasim_testmodels/ribasim_testmodels/equations.py b/python/ribasim_testmodels/ribasim_testmodels/equations.py index 3f830855c..cb03ce7ee 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/equations.py +++ b/python/ribasim_testmodels/ribasim_testmodels/equations.py @@ -179,7 +179,6 @@ def pid_control_equation_model() -> Model: Node(4, Point(0.5, 1)), [ pid_control.Static( - listen_node_type="Basin", listen_node_id=[1], target=10.0, proportional=-2.5, diff --git a/python/ribasim_testmodels/ribasim_testmodels/invalid.py b/python/ribasim_testmodels/ribasim_testmodels/invalid.py index ceb252616..995d30993 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/invalid.py +++ b/python/ribasim_testmodels/ribasim_testmodels/invalid.py @@ -1,14 +1,18 @@ from typing import Any -from ribasim.config import Node, Solver +from ribasim.config import Allocation, Node, Solver from ribasim.input_base import TableModel from ribasim.model import Model from ribasim.nodes import ( basin, discrete_control, flow_boundary, + flow_demand, + level_boundary, + level_demand, pump, tabulated_rating_curve, + user_demand, ) from shapely.geometry import Point @@ -24,6 +28,7 @@ def invalid_qh_model() -> Model: starttime="2020-01-01", endtime="2020-12-01", crs="EPSG:28992", + use_validation=False, ) model.tabulated_rating_curve.add( @@ -39,6 +44,7 @@ def invalid_discrete_control_model() -> Model: starttime="2020-01-01", endtime="2020-12-01", crs="EPSG:28992", + use_validation=False, ) basin_shared: list[TableModel[Any]] = [ @@ -67,7 +73,6 @@ def invalid_discrete_control_model() -> Model: Node(5, Point(1, 1)), [ discrete_control.Variable( - listen_node_type=["Basin", "FlowBoundary", "FlowBoundary"], listen_node_id=[1, 4, 4], variable=["level", "flow_rate", "flow_rate"], # Invalid: look_ahead can only be specified for timeseries variables. @@ -113,6 +118,7 @@ def invalid_edge_types_model() -> Model: starttime="2020-01-01", endtime="2020-12-01", crs="EPSG:28992", + use_validation=False, ) basin_shared: list[TableModel[Any]] = [ @@ -147,6 +153,7 @@ def invalid_unstable_model() -> Model: endtime="2021-01-01", crs="EPSG:28992", solver=Solver(dtmin=60.0), + use_validation=False, ) id_shift = 10 for i in range(6): @@ -163,3 +170,57 @@ def invalid_unstable_model() -> Model: model.edge.add(model.basin[1 + id_shift * i], model.pump[2 + id_shift * i]) model.edge.add(model.pump[2 + id_shift * i], model.terminal[3 + id_shift * i]) return model + + +def invalid_priorities_model() -> Model: + """Model with allocation active but missing priority parameter(s).""" + + model = Model( + starttime="2020-01-01 00:00:00", + endtime="2021-01-01 00:00:00", + crs="EPSG:28992", + allocation=Allocation(use_allocation=True, timestep=1e5), + use_validation=False, + ) + + model.tabulated_rating_curve.add( + Node(2, Point(1, 0), subnetwork_id=2), + [tabulated_rating_curve.Static(level=[0.0, 1.0], flow_rate=[0.0, 2e-3])], + ) + + model.level_boundary.add( + Node(1, Point(0, 0), subnetwork_id=2), + [level_boundary.Static(node_id=[1], level=[1.0])], + ) + + model.basin.add( + Node(3, Point(2, 0), subnetwork_id=2), + [basin.Profile(area=1e3, level=[0.0, 1.0]), basin.State(level=[1.0])], + ) + + model.user_demand.add( + Node(4, Point(3, 0), subnetwork_id=2), + [user_demand.Static(demand=[1e-3], return_factor=1.0, min_level=0.2)], + ) + + model.level_demand.add( + Node(6, Point(2, -1), subnetwork_id=2), + [level_demand.Static(min_level=[1.0], max_level=1.5)], + ) + + model.flow_demand.add( + Node(5, Point(1, -1), subnetwork_id=2), + [flow_demand.Static(demand=[2e-3])], + ) + + model.edge.add( + model.level_boundary[1], + model.tabulated_rating_curve[2], + subnetwork_id=2, + ) + model.edge.add(model.tabulated_rating_curve[2], model.basin[3]) + model.edge.add(model.basin[3], model.user_demand[4]) + model.edge.add(model.level_demand[6], model.basin[3]) + model.edge.add(model.flow_demand[5], model.tabulated_rating_curve[2]) + + return model diff --git a/python/ribasim_testmodels/ribasim_testmodels/pid_control.py b/python/ribasim_testmodels/ribasim_testmodels/pid_control.py index 4a543acc3..435d60e7a 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/pid_control.py +++ b/python/ribasim_testmodels/ribasim_testmodels/pid_control.py @@ -44,7 +44,6 @@ def pid_control_model() -> Model: "2020-07-01", "2020-12-01", ], - listen_node_type="Basin", listen_node_id=2, target=[5.0, 5.0, 7.5, 7.5], proportional=-1e-3, @@ -66,7 +65,6 @@ def pid_control_model() -> Model: "2020-07-01", "2020-12-01", ], - listen_node_type="Basin", listen_node_id=2, target=[5.0, 5.0, 7.5, 7.5], proportional=1e-3, @@ -116,7 +114,6 @@ def discrete_control_of_pid_control_model() -> Model: Node(6, Point(1, 1)), [ pid_control.Static( - listen_node_type="Basin", listen_node_id=3, control_state=["target_high", "target_low"], target=[5.0, 3.0], @@ -130,7 +127,6 @@ def discrete_control_of_pid_control_model() -> Model: Node(7, Point(0, 1)), [ discrete_control.Variable( - listen_node_type="LevelBoundary", listen_node_id=[1], variable="level", compound_variable_id=1, diff --git a/python/ribasim_testmodels/ribasim_testmodels/time.py b/python/ribasim_testmodels/ribasim_testmodels/time.py index 64e006d8a..b77f46c2f 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/time.py +++ b/python/ribasim_testmodels/ribasim_testmodels/time.py @@ -20,8 +20,8 @@ def flow_boundary_time_model() -> Model: ) n_times = 100 - time = pd.date_range(start="2020-03-01", end="2020-10-01", periods=n_times).astype( - "datetime64[s]" + time = pd.date_range( + start="2020-03-01", end="2020-10-01", periods=n_times, unit="s" ) flow_rate = 1 + np.sin(np.pi * np.linspace(0, 0.5, n_times)) ** 2 diff --git a/python/ribasim_testmodels/ribasim_testmodels/trivial.py b/python/ribasim_testmodels/ribasim_testmodels/trivial.py index 2864edbd3..42ef8650f 100644 --- a/python/ribasim_testmodels/ribasim_testmodels/trivial.py +++ b/python/ribasim_testmodels/ribasim_testmodels/trivial.py @@ -12,6 +12,7 @@ def trivial_model() -> Model: endtime="2021-01-01", crs="EPSG:28992", results=Results(subgrid=True, compression=False), + use_validation=True, ) # Convert steady forcing to m/s @@ -23,7 +24,7 @@ def trivial_model() -> Model: # 22. start at -1.0 # 11. start at 0.0 # 33. start at 1.0 - model.basin.add( + basin6 = model.basin.add( Node(6, Point(400, 200)), [ basin.Static( @@ -42,19 +43,13 @@ def trivial_model() -> Model: # TODO largest signed 32 bit integer, to check encoding terminal_id = 2147483647 - model.terminal.add(Node(terminal_id, Point(500, 200))) - model.tabulated_rating_curve.add( - Node(6, Point(450, 200)), + term = model.terminal.add(Node(terminal_id, Point(500, 200))) + trc0 = model.tabulated_rating_curve.add( + Node(0, Point(450, 200)), [tabulated_rating_curve.Static(level=[0.0, 1.0], flow_rate=[0.0, 10 / 86400])], ) - model.edge.add( - model.basin[6], - model.tabulated_rating_curve[6], - ) - model.edge.add( - model.tabulated_rating_curve[6], - model.terminal[terminal_id], - ) + model.edge.add(basin6, trc0, edge_id=100) + model.edge.add(trc0, term) return model diff --git a/ribasim_qgis/.coveragerc b/ribasim_qgis/.coveragerc index 011bc9fa5..e14c37159 100644 --- a/ribasim_qgis/.coveragerc +++ b/ribasim_qgis/.coveragerc @@ -1,6 +1,6 @@ [run] +source = . omit = - ribasim_qgis/resources.py - ribasim_qgis/tests/* - ribasim_qgis/tomllib/* - ribasim_qgis/ui_tests/* + */resources.py + */tests/* + */tomllib/* diff --git a/ribasim_qgis/core/geopackage.py b/ribasim_qgis/core/geopackage.py index 4a54ddc1a..4017f7800 100644 --- a/ribasim_qgis/core/geopackage.py +++ b/ribasim_qgis/core/geopackage.py @@ -17,6 +17,7 @@ # Importing from plugins directly for mypy from plugins import processing from qgis.core import QgsVectorFileWriter, QgsVectorLayer +from qgis.PyQt.QtXml import QDomDocument @contextmanager @@ -27,6 +28,7 @@ def sqlite3_cursor(path: Path): yield cursor finally: cursor.close() + connection.commit() connection.close() @@ -49,8 +51,31 @@ def layers(path: Path) -> list[str]: return layers +def write_schema_version(path: Path, version: int = 2) -> None: + """Write the schema version to the geopackage.""" + with sqlite3_cursor(path) as cursor: + cursor.execute( + """ + CREATE TABLE IF NOT EXISTS ribasim_metadata ( + key TEXT PRIMARY KEY, + value TEXT + ); + """ + ) + cursor.execute( + "INSERT OR REPLACE INTO ribasim_metadata (key, value) VALUES ('schema_version', ?)", + (version,), + ) + sql = "INSERT INTO gpkg_contents (table_name, data_type, identifier) VALUES (?, ?, ?)" + cursor.execute(sql, ("ribasim_metadata", "attributes", "ribasim_metadata")) + + def write_layer( - path: Path, layer: QgsVectorLayer, layername: str, newfile: bool = False + path: Path, + layer: QgsVectorLayer, + layername: str, + newfile: bool = False, + fid: str = "fid", ) -> QgsVectorLayer: """ Write a QgsVectorLayer to a GeoPackage database. @@ -75,6 +100,12 @@ def write_layer( options = QgsVectorFileWriter.SaveVectorOptions() options.driverName = "gpkg" options.layerName = layername + options.layerOptions = [f"FID={fid}"] + + # Store the current layer style + doc = QDomDocument() + layer.exportNamedStyle(doc) + if not newfile: options.actionOnExistingFile = ( QgsVectorFileWriter.ActionOnExistingFile.CreateOrOverwriteLayer @@ -88,6 +119,11 @@ def write_layer( f" with error: {error_message}" ) layer = QgsVectorLayer(f"{path}|layername={layername}", layername, "ogr") + + # Load the stored layer style, and save it to the geopackage + layer.importNamedStyle(doc) + stylename = f"{layername.replace(' / ', '_')}Style" + layer.saveStyleToDatabase(stylename, "", True, "") return layer diff --git a/ribasim_qgis/core/nodes.py b/ribasim_qgis/core/nodes.py index 9ab80351b..9a1859c77 100644 --- a/ribasim_qgis/core/nodes.py +++ b/ribasim_qgis/core/nodes.py @@ -24,30 +24,23 @@ import abc from pathlib import Path -from typing import Any, cast +from typing import Any -from PyQt5.QtCore import Qt, QVariant -from PyQt5.QtGui import QColor +from PyQt5.QtCore import QVariant from qgis.core import ( Qgis, - QgsCategorizedSymbolRenderer, QgsCoordinateReferenceSystem, QgsEditorWidgetSetup, - QgsFeatureRenderer, QgsField, - QgsLineSymbol, - QgsMarkerLineSymbolLayer, - QgsMarkerSymbol, QgsPalLayerSettings, - QgsRendererCategory, - QgsSimpleMarkerSymbolLayer, - QgsSimpleMarkerSymbolLayerBase, QgsVectorLayer, QgsVectorLayerSimpleLabeling, ) from ribasim_qgis.core import geopackage +STYLE_DIR = Path(__file__).parent / "styles" + class Input(abc.ABC): """Abstract base class for Ribasim input layers.""" @@ -60,8 +53,12 @@ def __init__(self, path: Path): def input_type(cls) -> str: ... @classmethod - @abc.abstractmethod - def geometry_type(cls) -> str: ... + def geometry_type(cls) -> str: + return "No Geometry" + + @classmethod + def qgis_geometry_type(cls) -> Qgis.GeometryType: + return Qgis.GeometryType.NullGeometry # type: ignore @classmethod @abc.abstractmethod @@ -71,6 +68,10 @@ def attributes(cls) -> list[QgsField]: ... def is_spatial(cls): return False + @classmethod + def fid_column(cls) -> str: + return "fid" + @classmethod def nodetype(cls): return cls.input_type().split("/")[0].strip() @@ -86,6 +87,8 @@ def create( raise ValueError(f"Name already exists in geopackage: {cls.input_type()}") instance = cls(path) instance.layer = instance.new_layer(crs) + # Load style from QML file + instance.load_default_style() return instance def new_layer(self, crs: QgsCoordinateReferenceSystem) -> QgsVectorLayer: @@ -120,13 +123,18 @@ def set_dropdown(self, name: str, options: set[str]) -> None: ) layer.setEditorWidgetSetup(index, setup) + def set_unique(self, name: str) -> None: + layer = self.layer + index = layer.fields().indexFromName(name) + setup = QgsEditorWidgetSetup( + "UniqueValues", + {}, + ) + layer.setEditorWidgetSetup(index, setup) + def set_read_only(self) -> None: pass - @property - def renderer(self) -> QgsFeatureRenderer | None: - return None - @property def labels(self) -> Any: return None @@ -135,14 +143,23 @@ def layer_from_geopackage(self) -> QgsVectorLayer: self.layer = QgsVectorLayer( f"{self._path}|layername={self.input_type()}", self.input_type() ) + # Load style from database if exists, otherwise load and save default qml style + _, success = self.layer.loadDefaultStyle() + if not success: + self.load_default_style() + self.save_style() + # Connect signal to save style to database when changed + self.layer.styleChanged.connect(self.save_style) return self.layer - def from_geopackage(self) -> tuple[QgsVectorLayer, Any, Any]: + def from_geopackage(self) -> tuple[QgsVectorLayer, Any]: self.layer_from_geopackage() - return (self.layer, self.renderer, self.labels) + return (self.layer, self.labels) def write(self) -> None: - self.layer = geopackage.write_layer(self._path, self.layer, self.input_type()) + self.layer = geopackage.write_layer( + self._path, self.layer, self.input_type(), fid=self.fid_column() + ) self.set_defaults() def remove_from_geopackage(self) -> None: @@ -152,6 +169,16 @@ def set_editor_widget(self) -> None: # Calling during new_layer doesn't have any effect... pass + def stylename(self) -> str: + return f"{self.input_type().replace(' / ', '_')}Style" + + def load_default_style(self): + fn = STYLE_DIR / f"{self.stylename()}.qml" + self.layer.loadNamedStyle(str(fn)) + + def save_style(self): + self.layer.saveStyleToDatabase(self.stylename(), "", True, "") + class Node(Input): @classmethod @@ -162,12 +189,16 @@ def input_type(cls) -> str: def geometry_type(cls) -> str: return "Point" + @classmethod + def qgis_geometry_type(cls) -> Qgis.GeometryType: + return Qgis.GeometryType.PointGeometry # type: ignore + @classmethod def attributes(cls) -> list[QgsField]: return [ + QgsField("node_id", QVariant.Int), QgsField("name", QVariant.String), QgsField("node_type", QVariant.String), - QgsField("node_id", QVariant.Int), QgsField("subnetwork_id", QVariant.Int), ] @@ -175,75 +206,34 @@ def attributes(cls) -> list[QgsField]: def is_spatial(cls): return True + @classmethod + def fid_column(cls): + return "node_id" + def write(self) -> None: # Special case the Node layer write because it needs to generate a new file. self.layer = geopackage.write_layer( - self._path, self.layer, self.input_type(), newfile=True + self._path, + self.layer, + self.input_type(), + newfile=True, + fid=self.fid_column(), ) self.set_defaults() return def set_editor_widget(self) -> None: layer = self.layer - node_type_field = layer.fields().indexFromName("node_type") + node_type_field_index = layer.fields().indexFromName("node_type") self.set_dropdown("node_type", NONSPATIALNODETYPES) + self.set_unique("node_id") layer_form_config = layer.editFormConfig() - layer_form_config.setReuseLastValue(node_type_field, True) + layer_form_config.setReuseLastValue(node_type_field_index, True) layer.setEditFormConfig(layer_form_config) return - @property - def renderer(self) -> QgsCategorizedSymbolRenderer: - shape = Qgis.MarkerShape - MARKERS: dict[str, tuple[QColor, str, Qgis.MarkerShape]] = { - "Basin": (QColor("blue"), "Basin", shape.Circle), - "LinearResistance": ( - QColor("green"), - "LinearResistance", - shape.Triangle, - ), - "TabulatedRatingCurve": ( - QColor("green"), - "TabulatedRatingCurve", - shape.Diamond, - ), - "LevelBoundary": (QColor("green"), "LevelBoundary", shape.Circle), - "FlowBoundary": (QColor("purple"), "FlowBoundary", shape.Hexagon), - "Pump": (QColor("gray"), "Pump", shape.Hexagon), - "Outlet": (QColor("green"), "Outlet", shape.Hexagon), - "ManningResistance": (QColor("red"), "ManningResistance", shape.Diamond), - "Terminal": (QColor("purple"), "Terminal", shape.Square), - "DiscreteControl": (QColor("black"), "DiscreteControl", shape.Star), - "PidControl": (QColor("black"), "PidControl", shape.Cross2), - "UserDemand": (QColor("green"), "UserDemand", shape.Square), - "LevelDemand": ( - QColor("black"), - "LevelDemand", - shape.Circle, - ), - "FlowDemand": (QColor("red"), "FlowDemand", shape.Hexagon), - # All other nodes, or incomplete input - "": (QColor("white"), "", shape.Circle), - } - - categories = [] - for value, (color, label, marker_shape) in MARKERS.items(): - symbol = QgsMarkerSymbol() - cast(QgsSimpleMarkerSymbolLayerBase, symbol.symbolLayer(0)).setShape( - marker_shape - ) - symbol.setColor(QColor(color)) - symbol.setSize(4) - category = QgsRendererCategory(value, symbol, label, render=True) - categories.append(category) - - renderer = QgsCategorizedSymbolRenderer( - attrName="node_type", categories=categories - ) - return renderer - @property def labels(self) -> Any: pal_layer = QgsPalLayerSettings() @@ -258,10 +248,9 @@ class Edge(Input): @classmethod def attributes(cls) -> list[QgsField]: return [ + QgsField("edge_id", QVariant.Int), QgsField("name", QVariant.String), - QgsField("from_node_type", QVariant.String), QgsField("from_node_id", QVariant.Int), - QgsField("to_node_type", QVariant.String), QgsField("to_node_id", QVariant.Int), QgsField("edge_type", QVariant.String), QgsField("subnetwork_id", QVariant.Int), @@ -271,6 +260,10 @@ def attributes(cls) -> list[QgsField]: def geometry_type(cls) -> str: return "LineString" + @classmethod + def qgis_geometry_type(cls) -> Qgis.GeometryType: + return Qgis.GeometryType.LineGeometry # type: ignore + @classmethod def input_type(cls) -> str: return "Edge" @@ -279,64 +272,25 @@ def input_type(cls) -> str: def is_spatial(cls): return True + @classmethod + def fid_column(cls): + return "edge_id" + def set_editor_widget(self) -> None: layer = self.layer self.set_dropdown("edge_type", EDGETYPES) - self.set_dropdown("from_node_type", NONSPATIALNODETYPES) - self.set_dropdown("to_node_type", NONSPATIALNODETYPES) + self.set_unique("edge_id") layer_form_config = layer.editFormConfig() layer.setEditFormConfig(layer_form_config) return - @property - def renderer(self) -> QgsCategorizedSymbolRenderer: - MARKERS = { - "flow": (QColor("#3690c0"), "flow"), # lightblue - "control": (QColor("gray"), "control"), - "": (QColor("black"), ""), # All other edges, or incomplete input - } - - categories = [] - for value, (colour, label) in MARKERS.items(): - # Create line - symbol = QgsLineSymbol() - symbol.setColor(QColor(colour)) - symbol.setWidth(0.5) - - # Create an arrow marker to indicate directionality - arrow_marker = QgsSimpleMarkerSymbolLayer() - arrow_marker.setShape(Qgis.MarkerShape.ArrowHeadFilled) - arrow_marker.setColor(QColor(colour)) - arrow_marker.setSize(3) - arrow_marker.setStrokeStyle(Qt.PenStyle(Qt.NoPen)) - - # Add marker to line - marker_symbol = QgsMarkerSymbol() - marker_symbol.changeSymbolLayer(0, arrow_marker) - marker_line_symbol_layer = cast( - QgsMarkerLineSymbolLayer, - QgsMarkerLineSymbolLayer.create({"placements": "CentralPoint"}), - ) - - marker_line_symbol_layer.setSubSymbol(marker_symbol) - symbol.appendSymbolLayer(marker_line_symbol_layer) - - category = QgsRendererCategory(value, symbol, label) - category.setRenderState(True) - categories.append(category) - - renderer = QgsCategorizedSymbolRenderer( - attrName="edge_type", categories=categories - ) - return renderer - @property def labels(self) -> Any: pal_layer = QgsPalLayerSettings() - pal_layer.fieldName = """concat("name", ' #', "fid")""" + pal_layer.fieldName = """concat("name", ' #', "edge_id")""" pal_layer.isExpression = True pal_layer.placement = Qgis.LabelPlacement.Line pal_layer.dist = 1.0 @@ -403,6 +357,64 @@ def attributes(cls) -> list[QgsField]: ] +class BasinConcentrationExternal(Input): + @classmethod + def input_type(cls) -> str: + return "Basin / concentration_external" + + @classmethod + def geometry_type(cls) -> str: + return "No Geometry" + + @classmethod + def attributes(cls) -> list[QgsField]: + return [ + QgsField("time", QVariant.DateTime), + QgsField("node_id", QVariant.Int), + QgsField("substance", QVariant.String), + QgsField("concentration", QVariant.Double), + ] + + +class BasinConcentrationState(Input): + @classmethod + def input_type(cls) -> str: + return "Basin / concentration_state" + + @classmethod + def geometry_type(cls) -> str: + return "No Geometry" + + @classmethod + def attributes(cls) -> list[QgsField]: + return [ + QgsField("time", QVariant.DateTime), + QgsField("node_id", QVariant.Int), + QgsField("substance", QVariant.String), + QgsField("concentration", QVariant.Double), + ] + + +class BasinConcentration(Input): + @classmethod + def input_type(cls) -> str: + return "Basin / concentration" + + @classmethod + def geometry_type(cls) -> str: + return "No Geometry" + + @classmethod + def attributes(cls) -> list[QgsField]: + return [ + QgsField("time", QVariant.DateTime), + QgsField("node_id", QVariant.Int), + QgsField("substance", QVariant.String), + QgsField("drainage", QVariant.Double), + QgsField("precipitation", QVariant.Double), + ] + + class BasinSubgridLevel(Input): @classmethod def input_type(cls) -> str: @@ -433,7 +445,11 @@ def is_spatial(cls): @classmethod def geometry_type(cls) -> str: - return "Polygon" + return "MultiPolygon" + + @classmethod + def qgis_geometry_type(cls) -> Qgis.GeometryType: + return Qgis.GeometryType.PolygonGeometry # type: ignore @classmethod def attributes(cls) -> list[QgsField]: @@ -612,7 +628,7 @@ def attributes(cls) -> list[QgsField]: QgsField("flow_rate", QVariant.Double), QgsField("min_flow_rate", QVariant.Double), QgsField("max_flow_rate", QVariant.Double), - QgsField("min_crest_level", QVariant.Double), + QgsField("min_upstream_level", QVariant.Double), QgsField("control_state", QVariant.String), ] @@ -667,7 +683,6 @@ def attributes(cls) -> list[QgsField]: return [ QgsField("node_id", QVariant.Int), QgsField("compound_variable_id", QVariant.Int), - QgsField("listen_node_type", QVariant.String), QgsField("listen_node_id", QVariant.Int), QgsField("variable", QVariant.String), QgsField("weight", QVariant.Double), @@ -711,6 +726,45 @@ def attributes(cls) -> list[QgsField]: ] +class ContinuousControlVariable(Input): + @classmethod + def input_type(cls) -> str: + return "ContinuousControl / variable" + + @classmethod + def geometry_type(cs) -> str: + return "No Geometry" + + @classmethod + def attributes(cls) -> list[QgsField]: + return [ + QgsField("node_id", QVariant.Int), + QgsField("listen_node_id", QVariant.Int), + QgsField("variable", QVariant.String), + QgsField("weight", QVariant.Double), + QgsField("look_ahead", QVariant.Double), + ] + + +class ContinuousControlFunction(Input): + @classmethod + def input_type(cls) -> str: + return "ContinuousControl / function" + + @classmethod + def geometry_type(cls) -> str: + return "No Geometry" + + @classmethod + def attributes(cls) -> list[QgsField]: + return [ + QgsField("node_id", QVariant.Int), + QgsField("input", QVariant.Double), + QgsField("output", QVariant.Double), + QgsField("controlled_variable", QVariant.String), + ] + + class PidControlStatic(Input): @classmethod def input_type(cls) -> str: @@ -725,7 +779,6 @@ def attributes(cls) -> list[QgsField]: return [ QgsField("node_id", QVariant.Int), QgsField("active", QVariant.Bool), - QgsField("listen_node_type", QVariant.String), QgsField("listen_node_id", QVariant.Int), QgsField("target", QVariant.Double), QgsField("proportional", QVariant.Double), @@ -747,7 +800,6 @@ def geometry_type(cls) -> str: def attributes(cls) -> list[QgsField]: return [ QgsField("node_id", QVariant.Int), - QgsField("listen_node_type", QVariant.String), QgsField("listen_node_id", QVariant.Int), QgsField("time", QVariant.DateTime), QgsField("target", QVariant.Double), @@ -879,9 +931,15 @@ def attributes(cls) -> list[QgsField]: } NONSPATIALNODETYPES: set[str] = { cls.nodetype() for cls in Input.__subclasses__() if not cls.is_spatial() -} +} | {"Terminal"} EDGETYPES = {"flow", "control"} -SPATIALCONTROLNODETYPES = {"LevelDemand", "FlowDemand", "DiscreteControl", "PidControl"} +SPATIALCONTROLNODETYPES = { + "ContinuousControl", + "DiscreteControl", + "FlowDemand", + "LevelDemand", + "PidControl", +} def load_nodes_from_geopackage(path: Path) -> dict[str, Input]: diff --git a/ribasim_qgis/core/topology.py b/ribasim_qgis/core/topology.py index fcb210426..709aa6441 100644 --- a/ribasim_qgis/core/topology.py +++ b/ribasim_qgis/core/topology.py @@ -114,9 +114,7 @@ def set_edge_properties(node: QgsVectorLayer, edge: QgsVectorLayer) -> None: from_fid, to_fid = derive_connectivity(node_index, node_xy, edge_xy) edge_fields = edge.fields() - from_type_field = edge_fields.indexFromName("from_node_type") from_id_field = edge_fields.indexFromName("from_node_id") - to_type_field = edge_fields.indexFromName("to_node_type") to_id_field = edge_fields.indexFromName("to_node_id") edge_type_field = edge_fields.indexFromName("edge_type") @@ -127,21 +125,11 @@ def set_edge_properties(node: QgsVectorLayer, edge: QgsVectorLayer) -> None: edge_iterator = cast(Iterable[QgsFeature], edge.getFeatures()) for feature, fid1, fid2 in zip(edge_iterator, from_fid, to_fid): type1, id1 = node_identifiers[fid1] - type2, id2 = node_identifiers[fid2] + _, id2 = node_identifiers[fid2] edge_type = infer_edge_type(type1) fid = feature.id() - edge.changeAttributeValue( - fid, - from_type_field, - type1, - ) edge.changeAttributeValue(fid, from_id_field, id1) - edge.changeAttributeValue( - fid, - to_type_field, - type2, - ) edge.changeAttributeValue(fid, to_id_field, id2) edge.changeAttributeValue(fid, edge_type_field, edge_type) diff --git a/ribasim_qgis/metadata.txt b/ribasim_qgis/metadata.txt index ba15dfb0d..e8ee3ce45 100644 --- a/ribasim_qgis/metadata.txt +++ b/ribasim_qgis/metadata.txt @@ -7,7 +7,7 @@ name=Ribasim qgisMinimumVersion=3.34 description=QGIS plugin to setup Ribasim models -version=2024.9.0 +version=2024.11.0 author=Deltares and contributors email=ribasim.info@deltares.nl @@ -20,13 +20,12 @@ repository=https://github.com/Deltares/Ribasim # Recommended items: hasProcessingProvider=no -# Uncomment the following line and add your changelog: -# changelog=https://deltares.github.io/Ribasim/changelog.html +changelog=https://ribasim.org/changelog # Tags are comma separated with spaces allowed -tags=julia, hydrology, water allocation +tags=hydrology, water, water resources, model, julia -homepage=https://github.com/Deltares/Ribasim +homepage=https://ribasim.org/ category=Plugins icon=icon.png # experimental flag diff --git a/ribasim_qgis/ribasim_qgis.py b/ribasim_qgis/ribasim_qgis.py index c2a8462ca..3957a2f06 100644 --- a/ribasim_qgis/ribasim_qgis.py +++ b/ribasim_qgis/ribasim_qgis.py @@ -8,7 +8,7 @@ from qgis.PyQt.QtWidgets import QAction -class RibasimDockWidget(QgsDockWidget): # type: ignore +class RibasimDockWidget(QgsDockWidget): def closeEvent(self, event) -> None: # TODO: if we implement talking to a Julia server, shut it down here. event.accept() diff --git a/ribasim_qgis/scripts/install_ribasim_qgis.py b/ribasim_qgis/scripts/install_ribasim_qgis.py index 71755680a..a572fbd22 100644 --- a/ribasim_qgis/scripts/install_ribasim_qgis.py +++ b/ribasim_qgis/scripts/install_ribasim_qgis.py @@ -6,8 +6,14 @@ plugins_path = Path(".pixi/qgis_env/profiles/default/python/plugins") source_path = plugins_path / "ribasim_qgis" +styles_source_path = source_path / "core" / "styles" +styles_target_path = Path("python/ribasim/ribasim/styles").absolute() + plugins_path.mkdir(parents=True, exist_ok=True) source_path.unlink(missing_ok=True) source_path.symlink_to(target_path, target_is_directory=True) +styles_source_path.unlink(missing_ok=True) +styles_source_path.symlink_to(styles_target_path, target_is_directory=True) + enable_plugin("ribasim_qgis") diff --git a/ribasim_qgis/scripts/qgis_testrunner.py b/ribasim_qgis/scripts/qgis_testrunner.py index d8f71bb22..726341abc 100644 --- a/ribasim_qgis/scripts/qgis_testrunner.py +++ b/ribasim_qgis/scripts/qgis_testrunner.py @@ -87,7 +87,7 @@ def __get_test_function(test_module_name): from qgis.PyQt.QtCore import QDir -class QgsProjectBadLayerDefaultHandler(QgsProjectBadLayerHandler): # type: ignore +class QgsProjectBadLayerDefaultHandler(QgsProjectBadLayerHandler): def handleBadLayers(self, layers, dom): pass diff --git a/ribasim_qgis/scripts/run_qgis_ui_tests.py b/ribasim_qgis/scripts/run_qgis_ui_tests.py index bee8e1096..04fda7c4d 100644 --- a/ribasim_qgis/scripts/run_qgis_ui_tests.py +++ b/ribasim_qgis/scripts/run_qgis_ui_tests.py @@ -9,7 +9,7 @@ "--nologo", "--code", "ribasim_qgis/scripts/qgis_testrunner.py", - "ribasim_qgis.ui_tests", + "ribasim_qgis.tests", ], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, diff --git a/ribasim_qgis/tests/__init__.py b/ribasim_qgis/tests/__init__.py new file mode 100644 index 000000000..7034cc660 --- /dev/null +++ b/ribasim_qgis/tests/__init__.py @@ -0,0 +1,20 @@ +import sys +from pathlib import Path + +import coverage +from qgis.testing import unittest + +testfolder = Path(__file__).parent + + +def run_all(): + test_loader = unittest.defaultTestLoader + test_suite = test_loader.discover(".", pattern="test_*.py") + + cov = coverage.Coverage(config_file=testfolder.parent / ".coveragerc") + cov.start() + unittest.TextTestRunner(verbosity=3, stream=sys.stdout).run(test_suite) + + cov.stop() + cov.save() + cov.xml_report(outfile=testfolder / "coverage.xml") diff --git a/ribasim_qgis/tests/core/test_model.py b/ribasim_qgis/tests/core/test_model.py index 9f780385f..f0e43eb5a 100644 --- a/ribasim_qgis/tests/core/test_model.py +++ b/ribasim_qgis/tests/core/test_model.py @@ -8,7 +8,7 @@ ) -class TestModel(unittest.TestCase): # type: ignore +class TestModel(unittest.TestCase): tests_folder_path = Path(__file__).parent.parent.resolve() data_folder_path = tests_folder_path / "data" diff --git a/ribasim_qgis/tests/data/simple_valid.toml b/ribasim_qgis/tests/data/simple_valid.toml index 4df80d496..443dbadff 100644 --- a/ribasim_qgis/tests/data/simple_valid.toml +++ b/ribasim_qgis/tests/data/simple_valid.toml @@ -1,4 +1,6 @@ starttime = 2020-01-01 00:00:00 endtime = 2021-01-01 00:00:00 +crs = "EPSG:28992" input_dir = "." results_dir = "results" +ribasim_version = "2024.11.0" diff --git a/ribasim_qgis/tests/ui/__init__.py b/ribasim_qgis/tests/ui/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ribasim_qgis/ui_tests/test_load_plugin.py b/ribasim_qgis/tests/ui/test_load_plugin.py similarity index 50% rename from ribasim_qgis/ui_tests/test_load_plugin.py rename to ribasim_qgis/tests/ui/test_load_plugin.py index b37f9c2a4..325d7772e 100644 --- a/ribasim_qgis/ui_tests/test_load_plugin.py +++ b/ribasim_qgis/tests/ui/test_load_plugin.py @@ -1,14 +1,19 @@ +from pathlib import Path + +from qgis.core import QgsProject from qgis.testing import unittest from qgis.utils import iface, plugins +from ribasim_qgis.core.geopackage import sqlite3_cursor + -class TestPlugin(unittest.TestCase): # type: ignore +class TestPlugin(unittest.TestCase): def test_plugin_is_loaded(self): """Test plugin is properly loaded and appears in QGIS plugins.""" plugin = plugins.get("ribasim_qgis") self.assertTrue(plugin, "Ribasim plugin not loaded") - def test_load_dock(self): + def test_plugin(self): """Triggers Ribasim button and checks that Dock is added.""" # This checks the *actual* QGIS interface, not just a stub @@ -34,3 +39,31 @@ def test_load_dock(self): c for c in iface.mainWindow().children() if c.objectName() == "RibasimDock" ] self.assertTrue(len(docks) == 1, "Ribasim dock not activated") + + # Get the required widgets via the dock + ribadock = docks[0] + ribawidget = ribadock.widget() + datawidget = ribawidget.tabwidget.widget(0) + + # Write an empty model + datawidget._new_model("test.toml") + self.assertTrue(Path("test.toml").exists(), "test.toml not created") + self.assertTrue(Path("database.gpkg").exists(), "database.gpkg not created") + self.assertTrue( + len(QgsProject.instance().mapLayers()) == 2, + "Not just the Node and Edge layers", + ) + + # Check schema version + with sqlite3_cursor("database.gpkg") as cursor: + cursor.execute( + "SELECT value FROM ribasim_metadata WHERE key='schema_version'" + ) + self.assertTrue(int(cursor.fetchone()[0]) == 1, "schema_version is wrong") + + # Open the model + datawidget._open_model("test.toml") + self.assertTrue( + len(QgsProject.instance().mapLayers()) == 4, + "Not just the Node and Edge layers twice", + ) diff --git a/ribasim_qgis/ui_tests/__init__.py b/ribasim_qgis/ui_tests/__init__.py deleted file mode 100644 index 81e3b194e..000000000 --- a/ribasim_qgis/ui_tests/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -import sys - -from qgis.testing import unittest - - -def run_all(): - test_loader = unittest.defaultTestLoader - test_suite = test_loader.discover(".", pattern="test_*.py") - unittest.TextTestRunner(verbosity=3, stream=sys.stdout).run(test_suite) diff --git a/ribasim_qgis/widgets/dataset_widget.py b/ribasim_qgis/widgets/dataset_widget.py index 5c2be37f2..f45f12132 100644 --- a/ribasim_qgis/widgets/dataset_widget.py +++ b/ribasim_qgis/widgets/dataset_widget.py @@ -8,6 +8,7 @@ from __future__ import annotations from datetime import datetime +from functools import partial from pathlib import Path from typing import Any, cast @@ -27,11 +28,15 @@ QWidget, ) from qgis.core import ( + QgsEditorWidgetSetup, + QgsFeatureRequest, QgsMapLayer, QgsProject, + QgsRelation, QgsVectorLayer, ) +from ribasim_qgis.core.geopackage import write_schema_version from ribasim_qgis.core.model import ( get_database_path_from_model_file, get_directory_path_from_model_file, @@ -93,8 +98,8 @@ def remove_geopackage_layers(self) -> None: # Start deleting elements = {item.element for item in selection} # type: ignore[attr-defined] # TODO: dynamic item.element should be in some dict. - qgs_instance = QgsProject.instance() - assert qgs_instance is not None + project = QgsProject.instance() + assert project is not None for element in elements: layer = element.layer @@ -102,7 +107,7 @@ def remove_geopackage_layers(self) -> None: if layer is None: continue try: - qgs_instance.removeMapLayer(layer.id()) + project.removeMapLayer(layer.id()) except (RuntimeError, AttributeError) as e: if e.args[0] in ( "wrapped C/C++ object of type QgsVectorLayer has been deleted", @@ -182,7 +187,6 @@ def add_layer( self, layer: Any, destination: Any, - renderer: Any = None, suppress: bool = False, on_top: bool = False, labels: Any = None, @@ -190,7 +194,6 @@ def add_layer( return self.ribasim_widget.add_layer( layer, destination, - renderer, suppress, on_top, labels, @@ -198,9 +201,9 @@ def add_layer( def add_item_to_qgis(self, item) -> None: element = item.element - layer, renderer, labels = element.from_geopackage() + layer, labels = element.from_geopackage() suppress = self.suppress_popup_checkbox.isChecked() - self.add_layer(layer, "Ribasim Input", renderer, suppress, labels=labels) + self.add_layer(layer, "Ribasim Input", suppress, labels=labels) element.set_editor_widget() element.set_read_only() return @@ -210,6 +213,32 @@ def add_selection_to_qgis(self) -> None: for item in selection: self.add_item_to_qgis(item) + @staticmethod + def add_relationship(from_layer, to_layer_id, name, fk="node_id") -> None: + rel = QgsRelation() + rel.setReferencingLayer(from_layer.id()) + rel.setReferencedLayer(to_layer_id) + rel.setName(name) + rel.setStrength(rel.RelationStrength.Composition) # type: ignore + rel.addFieldPair(fk, "node_id") + rel.generateId() + instance = QgsProject.instance() + assert instance is not None + rel_manager = instance.relationManager() + assert rel_manager is not None + rel_manager.addRelation(rel) + + # Also use the relationship as an editor widget + field_index = from_layer.fields().indexFromName(fk) + setup = QgsEditorWidgetSetup( + "RelationReference", + { + "Relation": rel.id(), + "MapIdentification": True, + }, + ) + from_layer.setEditorWidgetSetup(field_index, setup) + def load_geopackage(self) -> None: """Load the layers of a GeoPackage into the Layers Panel""" self.dataset_tree.clear() @@ -223,34 +252,78 @@ def load_geopackage(self) -> None: node = nodes.pop("Node") item = self.dataset_tree.add_node_layer(node) self.add_item_to_qgis(item) + # Make sure node_id shows up in relationships + node.layer.setDisplayExpression("node_id") edge = nodes.pop("Edge") item = self.dataset_tree.add_node_layer(edge) self.add_item_to_qgis(item) + self.add_relationship( + edge.layer, node.layer.id(), "EdgeFromNode", "from_node_id" + ) + self.add_relationship(edge.layer, node.layer.id(), "EdgeToNode", "to_node_id") basin_area_layer = nodes.pop("Basin / area", None) if basin_area_layer is not None: item = self.dataset_tree.add_node_layer(basin_area_layer) self.add_item_to_qgis(item) + self.add_relationship( + basin_area_layer.layer, node.layer.id(), "Basin / area" + ) # Add the remaining layers - for node_layer in nodes.values(): + for table_name, node_layer in nodes.items(): item = self.dataset_tree.add_node_layer(node_layer) self.add_item_to_qgis(item) + self.add_relationship(node_layer.layer, node.layer.id(), table_name) # Connect node and edge layer to derive connectivities. self.node_layer = node.layer + assert self.node_layer is not None self.edge_layer = edge.layer self.edge_layer.editingStopped.connect(self.connect_nodes) + + def filterbyrel(relationships, feature_ids): + """Filter all related tables by the selected features in the node table.""" + ids = [] + selection = QgsFeatureRequest().setFilterFids(feature_ids) + for rel in relationships: + for feature in rel.referencedLayer().getFeatures(selection): + ids.extend(f.id() for f in rel.getRelatedFeatures(feature)) + + rel.referencingLayer().selectByIds(ids) + + # When the Node selection changes, filter all related tables + edge_rels = [] + instance = QgsProject.instance() + assert instance is not None + rel_manager = instance.relationManager() + assert rel_manager is not None + for rel in rel_manager.relations().values(): + # Edge relations are special, they have two references to the Node table + referencing = rel.referencingLayer() + referenced = rel.referencedLayer() + assert referencing is not None + assert referenced is not None + + if referencing.name() == "Edge": + edge_rels.append(rel) + else: + referenced.selectionChanged.connect(partial(filterbyrel, [rel])) + + self.node_layer.selectionChanged.connect(partial(filterbyrel, edge_rels)) return def new_model(self) -> None: """Create a new Ribasim model file, and set it as the active dataset.""" path, _ = QFileDialog.getSaveFileName(self, "Select file", "", "*.toml") + self._new_model(path) + + def _new_model(self, path: str): if path != "": # Empty string in case of cancel button press self.dataset_line_edit.setText(path) geo_path = self.path.with_name("database.gpkg") - self._write_new_model() + self._write_toml() for input_type in (Node, Edge): instance = input_type.create( @@ -259,17 +332,20 @@ def new_model(self) -> None: names=[], ) instance.write() + write_schema_version(geo_path) self.load_geopackage() self.ribasim_widget.toggle_node_buttons(True) - def _write_new_model(self) -> None: + def _write_toml(self) -> None: with open(self.path, "w") as f: f.writelines( [ f"starttime = {datetime(2020, 1, 1)}\n", f"endtime = {datetime(2021, 1, 1)}\n", + f'crs = "{self.ribasim_widget.crs.authid()}"\n', 'input_dir = "."\n', 'results_dir = "results"\n', + 'ribasim_version = "2024.11.0"\n', ] ) @@ -277,6 +353,9 @@ def open_model(self) -> None: """Open a Ribasim model file.""" self.dataset_tree.clear() path, _ = QFileDialog.getOpenFileName(self, "Select file", "", "*.toml") + self._open_model(path) + + def _open_model(self, path: str) -> None: if path != "": # Empty string in case of cancel button press self.dataset_line_edit.setText(path) self.load_geopackage() diff --git a/ribasim_qgis/widgets/nodes_widget.py b/ribasim_qgis/widgets/nodes_widget.py index 9baa7a690..cdaa293ae 100644 --- a/ribasim_qgis/widgets/nodes_widget.py +++ b/ribasim_qgis/widgets/nodes_widget.py @@ -66,8 +66,8 @@ def new_node_layer(self, node_type: str) -> None: # Write to geopackage node.write() # Add to QGIS - self.ribasim_widget.add_layer( - node.layer, "Ribasim Input", node.renderer, labels=node.labels - ) + self.ribasim_widget.add_layer(node.layer, "Ribasim Input", labels=node.labels) + # Setup relationship + self.ribasim_widget.add_relationship(node.layer, node_type) # Add to dataset tree self.ribasim_widget.add_node_layer(node) diff --git a/ribasim_qgis/widgets/ribasim_widget.py b/ribasim_qgis/widgets/ribasim_widget.py index e185155ae..8af4689c4 100644 --- a/ribasim_qgis/widgets/ribasim_widget.py +++ b/ribasim_qgis/widgets/ribasim_widget.py @@ -16,7 +16,6 @@ Qgis, QgsAbstractVectorLayerLabeling, QgsCoordinateReferenceSystem, - QgsFeatureRenderer, QgsLayerTreeGroup, QgsMapLayer, QgsProject, @@ -107,7 +106,7 @@ def create_groups(self, name: str) -> None: assert project is not None root = project.layerTreeRoot() assert root is not None - self.group = root.addGroup(name) + self.group = root.insertGroup(0, name) # insert at the top self.create_subgroup(name, "Ribasim Input") def add_to_group(self, maplayer: Any, destination: str, on_top: bool): @@ -134,7 +133,6 @@ def add_layer( self, layer: QgsVectorLayer, destination: str, - renderer: QgsFeatureRenderer | None = None, suppress: bool | None = None, on_top: bool = False, labels: QgsAbstractVectorLayerLabeling | None = None, @@ -148,8 +146,6 @@ def add_layer( QGIS map layer, raster or vector layer destination: Legend group - renderer: - QGIS layer renderer, optional suppress: optional, bool. Default value is None. This controls whether attribute form popup is suppressed or not. @@ -179,8 +175,6 @@ def add_layer( else Qgis.AttributeFormSuppression.Default ) maplayer.setEditFormConfig(config) - if renderer is not None: - maplayer.setRenderer(renderer) if labels is not None: layer.setLabeling(labels) layer.setLabelsEnabled(True) @@ -188,3 +182,7 @@ def add_layer( self.add_to_group(maplayer, destination, on_top) return maplayer + + def add_relationship(self, new_layer, name: str) -> None: + assert self.node_layer is not None + self.__dataset_widget.add_relationship(new_layer, self.node_layer.id(), name) diff --git a/ruff.toml b/ruff.toml index 85d29439d..ab710a111 100644 --- a/ruff.toml +++ b/ruff.toml @@ -17,7 +17,7 @@ ignore = [ "PD002", "PD901", ] -fixable = ["I"] +fixable = ["ALL"] [lint.pydocstyle] convention = "numpy" diff --git a/utils/gen_python.jl b/utils/gen_python.jl index 2fd5db115..3226d5ac7 100644 --- a/utils/gen_python.jl +++ b/utils/gen_python.jl @@ -5,21 +5,17 @@ using Legolas using OteraEngine using Ribasim -pythontype(::Type{<:AbstractString}) = "Series[str]" -pythontype(::Type{<:Integer}) = "Series[Int32]" -pythontype(::Type{<:AbstractFloat}) = "Series[float]" -pythontype(::Type{<:Number}) = "Series[float]" -pythontype(::Type{<:Bool}) = "Series[pa.BOOL]" # pa.BOOL is a nullable boolean type, bool is not nullable -pythontype(::Type{<:Enum}) = "Series[str]" -pythontype(::Type{<:DateTime}) = "Series[Timestamp]" -pythontype(::Type{<:Any}) = "Series[Any]" -function pythontype(T::Union) - nonmissingtypes = filter(x -> x != Missing, Base.uniontypes(T)) - return join(map(pythontype, nonmissingtypes), " | ") -end +pythontype(::Type{Union{Missing, T}}) where {T} = pythontype(T) +pythontype(::Type{<:AbstractString}) = "Series[Annotated[pd.ArrowDtype, pyarrow.string()]]" +pythontype(::Type{<:Integer}) = "Series[Annotated[pd.ArrowDtype, pyarrow.int32()]]" +pythontype(::Type{<:AbstractFloat}) = "Series[Annotated[pd.ArrowDtype, pyarrow.float64()]]" +pythontype(::Type{<:Number}) = "Series[Annotated[pd.ArrowDtype, pyarrow.float64()]]" +pythontype(::Type{<:Bool}) = "Series[Annotated[pd.ArrowDtype, pyarrow.bool_()]]" +pythontype(::Type{<:Enum}) = "Series[Annotated[pd.ArrowDtype, pyarrow.string()]]" +pythontype(::Type{<:DateTime}) = "Series[Annotated[pd.ArrowDtype, pyarrow.timestamp('ms')]]" isnullable(_) = "False" -isnullable(T::Union) = typeintersect(T, Missing) == Missing ? "True" : "False" +isnullable(::Type{T}) where {T >: Union{Missing}} = "True" function strip_prefix(T::DataType) n = string(T) @@ -55,3 +51,30 @@ open(normpath(@__DIR__, "..", "python", "ribasim", "ribasim", "schemas.py"), "w" init = Dict("models" => get_models()) println(io, model_template(; init = init)) end + +function get_connectivity() + """ + Set up a vector contains all possible connecting node for all node types. + """ + [ + ( + name = T, + connectivity = Set( + Ribasim.config.camel_case(x) for x in Ribasim.neighbortypes(T) + ), + flow_neighbor_bound = Ribasim.n_neighbor_bounds_flow(T), + control_neighbor_bound = Ribasim.n_neighbor_bounds_control(T), + ) for T in keys(Ribasim.config.nodekinds) + ] +end + +connection_template = Template( + normpath(@__DIR__, "templates", "validation.py.jinja"); + config = Dict("trim_blocks" => true, "lstrip_blocks" => true, "autoescape" => false), +) + +# Write validation.py +open(normpath(@__DIR__, "..", "python", "ribasim", "ribasim", "validation.py"), "w") do io + init = Dict("nodes" => get_connectivity()) + println(io, connection_template(; init = init)) +end diff --git a/utils/generate-testmodels.py b/utils/generate-testmodels.py index 516ef2281..58bb08114 100644 --- a/utils/generate-testmodels.py +++ b/utils/generate-testmodels.py @@ -1,10 +1,15 @@ import multiprocessing import shutil +import sys from functools import partial from pathlib import Path import ribasim_testmodels +selection = ( + sys.argv[1:] if len(sys.argv) > 1 else ribasim_testmodels.constructors.keys() +) + def generate_model(args, datadir): model_name, model_constructor = args @@ -15,7 +20,8 @@ def generate_model(args, datadir): if __name__ == "__main__": datadir = Path("generated_testmodels") - if datadir.is_dir(): + # Don't remove all models if we only (re)generate a subset + if datadir.is_dir() and len(sys.argv) == 0: shutil.rmtree(datadir, ignore_errors=True) datadir.mkdir(exist_ok=True) @@ -30,8 +36,10 @@ def generate_model(args, datadir): generate_model_partial = partial(generate_model, datadir=datadir) + models = [ + (k, v) for k, v in ribasim_testmodels.constructors.items() if k in selection + ] + with multiprocessing.Pool(processes=4) as p: - for model_name in p.imap_unordered( - generate_model_partial, ribasim_testmodels.constructors.items() - ): + for model_name in p.imap_unordered(generate_model_partial, models): print(f"Generated {model_name}") diff --git a/utils/get_benchmark.py b/utils/get_benchmark.py new file mode 100644 index 000000000..42be86ac7 --- /dev/null +++ b/utils/get_benchmark.py @@ -0,0 +1,34 @@ +import argparse +import os + +from minio import Minio +from minio.error import S3Error + +minioServer = "s3.deltares.nl" +bucketName = "ribasim" + +parser = argparse.ArgumentParser( + description="Download a folder (recursively) from the MinIO server" +) +parser.add_argument("folder", help="The path to download in the MinIO server") +parser.add_argument( + "--accesskey", + help="The access key to access the MinIO server", + default=os.environ.get("MINIO_ACCESS_KEY", "KwKRzscudy3GvRB8BN1Z"), +) +parser.add_argument( + "--secretkey", + help="The secret key to access the MinIO server", + default=os.environ.get("MINIO_SECRET_KEY"), +) +args = parser.parse_args() + + +client = Minio(minioServer, access_key=args.accesskey, secret_key=args.secretkey) +objects = client.list_objects(bucketName, prefix=args.folder, recursive=True) + +for obj in objects: + try: + client.fget_object(bucketName, obj.object_name, "models/" + obj.object_name) + except S3Error as e: + print(f"Error occurred: {e}") diff --git a/utils/templates/schemas.py.jinja b/utils/templates/schemas.py.jinja index 1ff1a6a23..19b53c7ce 100644 --- a/utils/templates/schemas.py.jinja +++ b/utils/templates/schemas.py.jinja @@ -1,20 +1,36 @@ # Automatically generated file. Do not modify. +from typing import Annotated, Any, Callable + +import pandas as pd import pandera as pa -from pandera.dtypes import Int32, Timestamp -from pandera.typing import Series +import pyarrow +from pandera.dtypes import Int32 +from pandera.typing import Index, Series +from ribasim import migrations class _BaseSchema(pa.DataFrameModel): class Config: add_missing_columns = True coerce = True + @classmethod + def _index_name(self) -> str: + return "fid" + + @classmethod + def migrate(cls, df: Any, schema_version: int) -> Any: + f: Callable[[Any, Any], Any] = getattr( + migrations, str(cls.__name__).lower() + "_migration", lambda x, _: x + ) + return f(df, schema_version) {% for m in models %} class {{m[:name]}}Schema(_BaseSchema): + fid: Index[Int32] = pa.Field(default=1, check_name=True, coerce=True) {% for f in m[:fields] %} - {% if (f[2] == "Series[Int32]") %} + {% if (f[1] == :node_id) %} {{ f[1] }}: {{ f[2] }} = pa.Field(nullable={{ f[3] }}, default=0) {% else %} {{ f[1] }}: {{ f[2] }} = pa.Field(nullable={{ f[3] }}) diff --git a/utils/templates/validation.py.jinja b/utils/templates/validation.py.jinja new file mode 100644 index 000000000..4e4138571 --- /dev/null +++ b/utils/templates/validation.py.jinja @@ -0,0 +1,31 @@ +# Automatically generated file. Do not modify. + +# Table for connectivity +# "Basin": ["LinearResistance"] means that the downstream of basin can be LinearResistance only +node_type_connectivity: dict[str, list[str]] = { +{% for n in nodes %} + '{{n[:name]}}': [{% for value in n[:connectivity] %} + '{{ value }}', + {% end %}], +{% end %} +} + +# Function to validate connection +def can_connect(node_type_up: str, node_type_down: str) -> bool: + if node_type_up in node_type_connectivity: + return node_type_down in node_type_connectivity[node_type_up] + return False + +flow_edge_neighbor_amount: dict[str, list[int]] = { +{% for n in nodes %} + '{{n[:name]}}': + [{{ n[:flow_neighbor_bound].in_min }}, {{ n[:flow_neighbor_bound].in_max }}, {{ n[:flow_neighbor_bound].out_min }}, {{ n[:flow_neighbor_bound].out_max }}], +{% end %} +} + +control_edge_neighbor_amount: dict[str, list[int]] = { +{% for n in nodes %} + '{{n[:name]}}': + [{{ n[:control_neighbor_bound].in_min }}, {{ n[:control_neighbor_bound].in_max }}, {{ n[:control_neighbor_bound].out_min }}, {{ n[:control_neighbor_bound].out_max }}], +{% end %} +} diff --git a/utils/upload_benchmark.py b/utils/upload_benchmark.py new file mode 100644 index 000000000..940f69bfa --- /dev/null +++ b/utils/upload_benchmark.py @@ -0,0 +1,39 @@ +import argparse +import os +from pathlib import Path + +from minio import Minio +from minio.error import S3Error + +minioServer = "s3.deltares.nl" +bucketName = "ribasim" + +parser = argparse.ArgumentParser(description="Upload a file to the MinIO server") +parser.add_argument("source", type=Path, help="The source file to upload") +parser.add_argument("destination", help="The destination file in the MinIO server") +parser.add_argument( + "--accesskey", + help="The access key to access the MinIO server", + default=os.environ.get("MINIO_ACCESS_KEY", "KwKRzscudy3GvRB8BN1Z"), +) +parser.add_argument( + "--secretkey", + help="The secret key to access the MinIO server", + default=os.environ.get("MINIO_SECRET_KEY"), +) +args = parser.parse_args() + +if not args.source.is_file(): + raise ValueError("The source file does not exist") + +# Minio client connection +client = Minio(minioServer, access_key=args.accesskey, secret_key=args.secretkey) + +try: + client.fput_object( + bucketName, + args.destination, + args.source, + ) +except S3Error as e: + print(f"Error occurred: {e}")