diff --git a/.black.toml b/.black.toml
deleted file mode 100644
index e046b07..0000000
--- a/.black.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[tool.black]
-target-version = [
- "py312",
-]
-line-length = 88
-color = true
-exclude = "/(\n \\.git\n | \\.hg\n | \\.mypy_cache\n | \\.tox\n | \\.venv\n | _build\n | buck-out\n | build\n | dist\n | env\n | venv\n)/\n"
diff --git a/.editorconfig b/.editorconfig
index 5973eb7..5ae6fc4 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -14,13 +14,6 @@ end_of_line = lf
indent_style = space
indent_size = 4
-[*.bat]
-indent_style = tab
-end_of_line = crlf
-
-[Makefile]
-indent_style = tab
-
[*.{yml, yaml}]
indent_size = 2
trim_trailing_whitespace = true
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index d4f24e9..ad2aab3 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -1,11 +1,13 @@
name: Deploy documentation
on:
- # Runs on pushes targeting the default branch
push:
- branches: ["main"]
-
- # Allows you to run this workflow manually from the Actions tab
+ branches: [ "main" ]
+ paths:
+ - 'povme/**'
+ - 'docs/**'
+ - 'pixi.toml'
+ - 'pixi.lock'
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
@@ -34,9 +36,14 @@ jobs:
fetch-depth: 0
- name: Install pixi
- uses: prefix-dev/setup-pixi@v0.8.1
+ uses: prefix-dev/setup-pixi@v0.9.4
with:
- frozen: true
+ environments: docs
+ locked: false
+ frozen: false
+ cache: true
+ cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
+ activate-environment: true
- name: Build documentation
run: pixi run docs
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 7483d20..50d23a2 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -3,9 +3,18 @@ name: Tests
on:
push:
branches: [ "main" ]
+ paths:
+ - 'povme/**'
+ - 'tests/**'
+ - 'pixi.toml'
+ - 'pixi.lock'
pull_request:
branches: [ "main" ]
- # Allows you to run this workflow manually from the Actions tab
+ paths:
+ - 'povme/**'
+ - 'tests/**'
+ - 'pixi.toml'
+ - 'pixi.lock'
workflow_dispatch:
jobs:
@@ -13,13 +22,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- - name: Checkout repo
+ - name: Checkout code
uses: actions/checkout@v4
- name: Install pixi
- uses: prefix-dev/setup-pixi@v0.8.1
+ uses: prefix-dev/setup-pixi@v0.9.4
with:
- frozen: true
+ locked: false
+ frozen: false
+ cache: true
+ cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
+ activate-environment: true
- name: Run tests
run: pixi run tests
diff --git a/.gitignore b/.gitignore
index 88d35b1..bd7c1eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,3 @@
-*.pyc
-.DS_Store
-
# pixi environments
.pixi
*.egg-info
@@ -9,14 +6,755 @@
api
public
-__pycache__
-.vscode
-build
+# Scalene
+profile*
+
+
+# Created by https://www.toptal.com/developers/gitignore/api/osx,python,pycharm,windows,visualstudio,visualstudiocode,zsh,jetbrains,jupyternotebooks
+# Edit at https://www.toptal.com/developers/gitignore?templates=osx,python,pycharm,windows,visualstudio,visualstudiocode,zsh,jetbrains,jupyternotebooks
+
+### JetBrains ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# AWS User-specific
+.idea/**/aws.xml
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# SonarLint plugin
+.idea/sonarlint/
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### JetBrains Patch ###
+
+# Sonarlint plugin
+# https://plugins.jetbrains.com/plugin/7973-sonarlint
+.idea/**/sonarlint/
+
+# SonarQube Plugin
+# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
+.idea/**/sonarIssues.xml
+
+# Markdown Navigator plugin
+# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
+.idea/**/markdown-navigator.xml
+.idea/**/markdown-navigator-enh.xml
+.idea/**/markdown-navigator/
+
+# Cache file creation bug
+# See https://youtrack.jetbrains.com/issue/JBR-2257
+.idea/$CACHE_FILE$
+
+# CodeStream plugin
+# https://plugins.jetbrains.com/plugin/12206-codestream
+.idea/codestream.xml
+
+# Azure Toolkit for IntelliJ plugin
+# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
+.idea/**/azureSettings.xml
+
+### JupyterNotebooks ###
+# gitignore template for Jupyter Notebooks
+# website: http://jupyter.org/
+
+.ipynb_checkpoints
+*/.ipynb_checkpoints/*
+
+# IPython
+profile_default/
+ipython_config.py
+
+### OSX ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### Python ###
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
-# Coverage
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
.coverage
+.coverage.*
+.cache
+nosetests.xml
coverage.xml
-report.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
-# Scalene
-profile*
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/#use-with-ide
+.pdm.toml
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+### Python Patch ###
+# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
+poetry.toml
+
+# ruff
+.ruff_cache/
+
+# LSP config files
+pyrightconfig.json
+
+### VisualStudioCode ###
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+!.vscode/*.code-snippets
+
+# Local History for Visual Studio Code
+.history/
+
+# Built Visual Studio Code Extensions
+*.vsix
+
+### VisualStudioCode Patch ###
+# Ignore all local history of files
+.history
+.ionide
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+### Zsh ###
+# Zsh compiled script + zrecompile backup
+*.zwc
+*.zwc.old
+
+# Zsh completion-optimization dumpfile
+*zcompdump*
+
+# Zsh history
+.zsh_history
+
+# Zsh sessions
+.zsh_sessions
+
+# Zsh zcalc history
+.zcalc_history
+
+# A popular plugin manager's files
+._zinit
+.zinit_lstupd
+
+# zdharma/zshelldoc tool's files
+zsdoc/data
+
+# robbyrussell/oh-my-zsh/plugins/per-directory-history plugin's files
+# (when set-up to store the history in the local directory)
+.directory_history
+
+# MichaelAquilina/zsh-autoswitch-virtualenv plugin's files
+# (for Zsh plugins using Python)
+
+# Zunit tests' output
+/tests/_output/*
+!/tests/_output/.gitkeep
+
+### VisualStudio ###
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.tlog
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+report*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio 6 auto-generated project file (contains which files were open etc.)
+*.vbp
+
+# Visual Studio 6 workspace and project file (working project files containing files to include in project)
+*.dsw
+*.dsp
+
+# Visual Studio 6 technical files
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# Visual Studio History (VSHistory) files
+.vshistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+# VS Code files for those working on multiple tools
+*.code-workspace
+
+# Local History for Visual Studio Code
+
+# Windows Installer files from build outputs
+
+# JetBrains Rider
+*.sln.iml
+
+### VisualStudio Patch ###
+# Additional files built by Visual Studio
+
+# End of https://www.toptal.com/developers/gitignore/api/osx,python,pycharm,windows,visualstudio,visualstudiocode,zsh,jetbrains,jupyternotebooks
+
+.vscode
diff --git a/.ignore b/.ignore
new file mode 100644
index 0000000..a46ec0a
--- /dev/null
+++ b/.ignore
@@ -0,0 +1,6 @@
+public
+.mypy_cache
+.pixi
+.DS_Store
+.ruff_cache
+*.npz
diff --git a/.isort.cfg b/.isort.cfg
deleted file mode 100644
index 241e17d..0000000
--- a/.isort.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-[settings]
-py_version = 312
-line_length = 88
-known_typing = typing,types,typing_extensions,mypy,mypy_extensions
-sections = FUTURE,TYPING,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER
-profile = black
-include_trailing_comma = true
-multi_line_output = 3
-indent = 4
diff --git a/.markdownlint.yaml b/.markdownlint.yaml
deleted file mode 100644
index 1fa301f..0000000
--- a/.markdownlint.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml
-MD007:
- indent: 4
-MD013: false
-MD022: false
-MD024: false
-MD026: false
-MD028: false
-MD030:
- ol_multi: 2
- ol_single: 2
- ul_multi: 3
- ul_single: 3
-MD031: false
-MD032: false
-MD033: false
-MD036: false
-MD038: false
-MD041: false
-MD046: false
diff --git a/.ruff.toml b/.ruff.toml
index 50ccc07..edafbc3 100644
--- a/.ruff.toml
+++ b/.ruff.toml
@@ -2,22 +2,46 @@ target-version = "py312"
line-length = 88
indent-width = 4
exclude = [
+ ".bzr",
+ ".direnv",
+ ".eggs",
".git",
+ ".git-rewrite",
".hg",
+ ".ipynb_checkpoints",
".mypy_cache",
+ ".nox",
+ ".pants.d",
+ ".pyenv",
+ ".pytest_cache",
+ ".pytype",
+ ".ruff_cache",
+ ".svn",
".tox",
".venv",
+ ".vscode",
+ "__pypackages__",
"_build",
"buck-out",
"build",
"dist",
- "env",
+ "node_modules",
+ "site-packages",
"venv",
+ ".pixi",
+ "__init__.py"
]
+[lint]
+preview = true
+select = ["E1", "E2", "E3", "E4", "E7", "W1", "W2", "W3", "W5", "W6", "F"]
+fixable = ["ALL"]
+dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
+
[format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
+line-ending = "auto"
docstring-code-format = true
docstring-code-line-length = "dynamic"
diff --git a/hooks/launchy.py b/hooks/launchy.py
deleted file mode 100644
index 42ff79b..0000000
--- a/hooks/launchy.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import os
-
-from bs4 import BeautifulSoup
-
-
-def is_jupyter(markdown=None, html=None):
- if html:
- return '
' in html
- if markdown:
- return False
- raise ValueError("Must provide either markdown or html")
-
-
-def on_page_content(html, page, config, files):
- """Adds a Google colab button to launch Jupyter files"""
- # Only Jupyter notebooks will have this div.
- if is_jupyter(html=html):
- colab_url = os.path.join(config["colab_base_url"], page.url)[:-1] + ".ipynb"
- colab_launch_html = f"""
-
- """
- soup = BeautifulSoup(html, "html.parser")
- h1_tag = soup.find("h1")
- h1_tag.insert_after(BeautifulSoup(colab_launch_html, "html.parser"))
- return soup.prettify()
- return html
diff --git a/mkdocs.yml b/mkdocs.yml
index 1b721d9..95d1aef 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -53,7 +53,6 @@ validation:
plugins:
- search
- autorefs
- - material-plausible
- gen-files:
scripts:
- docs/gen_ref_pages.py
@@ -84,26 +83,10 @@ plugins:
timezone: America/Detroit
fallback_to_build_date: true
- macros
- - table-reader
- glightbox
- - mkdocs-jupyter:
- no_input: False
- include_requirejs: true
- include_source: True
- ignore: ["*.py"]
- remove_tag_config:
- remove_input_tags:
- - hide_code
-
-hooks:
- - hooks/launchy.py
-colab_base_url: https://colab.research.google.com/github/durrantlab/POVME/blob/main/docs
extra:
generator: true
- # analytics:
- # provider: plausible
- # domain: povme
social:
- icon: fontawesome/brands/github
link: https://github.com/durrantlab
diff --git a/pixi.lock b/pixi.lock
index 6dd2ec3..4f8229d 100644
--- a/pixi.lock
+++ b/pixi.lock
@@ -5,6 +5,8 @@ environments:
- url: https://conda.anaconda.org/conda-forge/
indexes:
- https://pypi.org/simple
+ options:
+ pypi-prerelease-mode: if-necessary-or-explicit
packages:
linux-64:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
@@ -60,18 +62,129 @@ environments:
- pypi: https://files.pythonhosted.org/packages/f1/54/65af8de681fa8255402c80eda2a501ba467921d5a7a028c9c22a2c2eedb5/msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/04/52/c97c58a33b3d6c89a8138788576d372a90a6556f354799971c6b4d16d871/protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl
- - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=423cf64f17c21881a1685402437bd69a81e79ccf#423cf64f17c21881a1685402437bd69a81e79ccf
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
- pypi: https://files.pythonhosted.org/packages/82/ad/2eaf308c64e39704629863720c59b82e1ceed814fca319b8585deb92bb74/ray-2.40.0-cp312-cp312-manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/82/a1/a45f3e30835b553379b3a56ea6c4eb622cf11e72008229af840e4596a8ea/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl
- - pypi: .
+ - pypi: ./
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-5_he492b99_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-5_h9b27e0a_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-22.1.0-h19cb2f5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.4-h991f03e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-22.1.0-h0d3cbff_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/loguru-0.7.3-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.2-py312hb34da66_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py312h8a6388b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.13-ha9537fe_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py312h51361c1_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.1-py312h6309490_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda
+ - pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/9c/b6/9ee9c1a608916ca5feae81a344dffbaa53b26b90be58cc2159e3332d44ec/charset_normalizer-3.4.5-cp312-cp312-macosx_10_13_universal2.whl
+ - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a9/b8/2f664b56a3b4b32d28d3d106c71783073f712ba43ff6d34b9ea0ce36dc7b/filelock-3.25.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ad/bd/8b0d01c756203fbab65d265859749860682ccd2a59594609aeec3a144efa/msgpack-1.1.2-cp312-cp312-macosx_10_13_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/13/c4/6322ab5c8f279c4c358bc14eb8aefc0550b97222a39f04eb3c1af7a830fa/protobuf-7.34.0-cp310-abi3-macosx_10_9_universal2.whl
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
+ - pypi: https://files.pythonhosted.org/packages/1a/4c/76f2c7c0946645fdd8d286a3e00e2c42130d676286de206be5d60d271218/ray-2.49.2-cp312-cp312-macosx_12_0_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl
+ - pypi: ./
+ osx-arm64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-hef89b57_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_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-22.1.0-hc7d1edf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/loguru-0.7.3-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py312he281c53_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.13-h8561d8f_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py312h04c11ed_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py312h0f234b1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda
+ - pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/9c/b6/9ee9c1a608916ca5feae81a344dffbaa53b26b90be58cc2159e3332d44ec/charset_normalizer-3.4.5-cp312-cp312-macosx_10_13_universal2.whl
+ - pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a9/b8/2f664b56a3b4b32d28d3d106c71783073f712ba43ff6d34b9ea0ce36dc7b/filelock-3.25.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/34/68/ba4f155f793a74c1483d4bdef136e1023f7bcba557f0db4ef3db3c665cf1/msgpack-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/13/c4/6322ab5c8f279c4c358bc14eb8aefc0550b97222a39f04eb3c1af7a830fa/protobuf-7.34.0-cp310-abi3-macosx_10_9_universal2.whl
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
+ - pypi: https://files.pythonhosted.org/packages/0e/16/45eefb51eb1767342a6dbf41af0b432279e422e56160705fcd1098a7ec53/ray-2.54.0-cp312-cp312-macosx_12_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl
+ - pypi: ./
dev:
channels:
- url: https://conda.anaconda.org/conda-forge/
indexes:
- https://pypi.org/simple
+ options:
+ pypi-prerelease-mode: if-necessary-or-explicit
packages:
linux-64:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
@@ -208,27 +321,280 @@ environments:
- pypi: https://files.pythonhosted.org/packages/d1/0f/8910b19ac0670a0f80ce1008e5e751c4a57e14d2c4c13a482aa6079fa9d6/jsonschema_specifications-2024.10.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f1/54/65af8de681fa8255402c80eda2a501ba467921d5a7a028c9c22a2c2eedb5/msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/04/52/c97c58a33b3d6c89a8138788576d372a90a6556f354799971c6b4d16d871/protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl
- - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=423cf64f17c21881a1685402437bd69a81e79ccf#423cf64f17c21881a1685402437bd69a81e79ccf
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
- pypi: https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/82/ad/2eaf308c64e39704629863720c59b82e1ceed814fca319b8585deb92bb74/ray-2.40.0-cp312-cp312-manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/82/a1/a45f3e30835b553379b3a56ea6c4eb622cf11e72008229af840e4596a8ea/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- - pypi: .
+ - pypi: ./
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/backports.zstd-1.3.0-py312h6917036_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/black-24.10.0-py312hb401068_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/bracex-2.2.1-pyhd8ed1ab_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.2.0-py312h4b46afd_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.28.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.5-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cmarkgfm-2024.11.20-py312h2f459f6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.13.4-py312h51361c1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.13-py312hd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.1-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh534df25_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-5_he492b99_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-5_h9b27e0a_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-22.1.0-h19cb2f5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.4-h991f03e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-22.1.0-h0d3cbff_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/loguru-0.7.3-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.3-py312heb39f77_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.19.1-py312h80b0991_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/nh3-0.3.3-py310h332ba72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.2-py312hb34da66_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.10.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.2-py312hf7082af_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py312h8a6388b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.13.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.13-ha9537fe_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.13-hd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.8.1-py312hba6025d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py312h51361c1_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/questionary-2.1.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.3-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.9.7-pyh8f84b5b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.7.4-py312h07459cc_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/scalene-1.5.51-py312h69bf00f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.1-py312h6309490_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhcf101f3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_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/types-pyyaml-6.0.12.20250915-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/wcmatch-10.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.6.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.46.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h3eecb57_6.conda
+ - pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/c5/0d/84a4380f930db0010168e0aa7b7a8fed9ba1835a8fbb1472bc6d0201d529/build-1.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a9/b8/2f664b56a3b4b32d28d3d106c71783073f712ba43ff6d34b9ea0ce36dc7b/filelock-3.25.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ad/bd/8b0d01c756203fbab65d265859749860682ccd2a59594609aeec3a144efa/msgpack-1.1.2-cp312-cp312-macosx_10_13_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/13/c4/6322ab5c8f279c4c358bc14eb8aefc0550b97222a39f04eb3c1af7a830fa/protobuf-7.34.0-cp310-abi3-macosx_10_9_universal2.whl
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
+ - pypi: https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/1a/4c/76f2c7c0946645fdd8d286a3e00e2c42130d676286de206be5d60d271218/ray-2.49.2-cp312-cp312-macosx_12_0_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl
+ - pypi: ./
+ osx-arm64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.3.0-py312h44dc372_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/bracex-2.2.1-pyhd8ed1ab_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py312h0dfefe5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.28.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.5-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cmarkgfm-2024.11.20-py312h163523d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.13.4-py312h04c11ed_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.13-py312hd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-hef89b57_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.1-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh534df25_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_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-22.1.0-hc7d1edf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/loguru-0.7.3-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.3-py312h04c11ed_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.19.1-py312hefc2c51_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nh3-0.3.3-py310hf32026f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py312he281c53_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.10.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py312hb3ab3e3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.13.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.13-h8561d8f_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.13-hd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.8.1-py312hb3ab3e3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py312h04c11ed_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/questionary-2.1.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-2.0.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.3-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.9.7-pyh8f84b5b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.7.4-py312h5d18b81_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scalene-1.5.51-py312h455b684_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py312h0f234b1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhcf101f3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_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/types-pyyaml-6.0.12.20250915-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/wcmatch-10.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.6.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.46.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda
+ - pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/c5/0d/84a4380f930db0010168e0aa7b7a8fed9ba1835a8fbb1472bc6d0201d529/build-1.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a9/b8/2f664b56a3b4b32d28d3d106c71783073f712ba43ff6d34b9ea0ce36dc7b/filelock-3.25.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/34/68/ba4f155f793a74c1483d4bdef136e1023f7bcba557f0db4ef3db3c665cf1/msgpack-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/13/c4/6322ab5c8f279c4c358bc14eb8aefc0550b97222a39f04eb3c1af7a830fa/protobuf-7.34.0-cp310-abi3-macosx_10_9_universal2.whl
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
+ - pypi: https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/0e/16/45eefb51eb1767342a6dbf41af0b432279e422e56160705fcd1098a7ec53/ray-2.54.0-cp312-cp312-macosx_12_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl
+ - pypi: ./
docs:
channels:
- url: https://conda.anaconda.org/conda-forge/
indexes:
- https://pypi.org/simple
+ options:
+ pypi-prerelease-mode: if-necessary-or-explicit
packages:
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/annotated-types-0.7.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.16.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda
@@ -237,40 +603,22 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.11-py312h2ec8cdc_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2
- - conda: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/ghp-import-2.1.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.11-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.43-pyhff2d567_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-1.5.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.0.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/hjson-py-3.1.0-pyhd8ed1ab_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hjson-py-3.1.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.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.30.0-pyh707e725_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.4-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.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_pygments-0.3.0-pyhd8ed1ab_2.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/jupytext-1.16.4-pyh80e38bb_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/krb5-1.21.3-h659f571_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-25_linux64_openblas.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/libedit-3.1.20191231-he28a2e2_2.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
@@ -282,7 +630,6 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
- - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
@@ -291,109 +638,288 @@ environments:
- 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/loguru-0.7.2-py312h7900ff3_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.6-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.4.2-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.2.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-gen-files-0.4.0-pyhd8ed1ab_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-gen-files-0.6.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-git-revision-date-localized-plugin-1.2.9-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-glightbox-0.4.0-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-jupyter-0.25.1-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-macros-plugin-1.3.7-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-glightbox-0.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-macros-plugin-1.5.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-9.5.48-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-extensions-1.3.1-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-table-reader-plugin-3.1.0-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-0.26.2-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-python-1.12.2-pyhff2d567_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.1-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.16.4-hd8ed1ab_2.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.4-pyhff2d567_2.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.16.4-hd8ed1ab_2.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-1.0.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-python-2.0.2-pyh332efcf_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_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.0-py312h7e784f5_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/paginate-0.5.7-pyhd8ed1ab_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/linux-64/pandoc-3.6-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_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-pyhd8ed1ab_1004.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_1.conda
- - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py312h66e93f0_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.3-pyh3cfb1c2_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.27.1-py312h12e396e_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.12-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.21.1-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_1.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.2-py312h66e93f0_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-env-tag-0.1-pyhd8ed1ab_0.tar.bz2
- - 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/readline-8.2-h8228510_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py312h66e93f0_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.22.3-py312h12e396e_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py312h62794b6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/selectolax-0.3.29-py312h66e93f0_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.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/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/super-collections-0.5.3-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/super_collections-0.5.3-pyhd8ed1ab_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-2.5.0-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/super-collections-0.6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/super_collections-0.6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py312h66e93f0_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py312h7900ff3_0.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_1.conda
- - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2
- - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
- pypi: https://files.pythonhosted.org/packages/ec/6a/bc7e17a3e87a2985d3e8f4da4cd0f481060eb78fb08596c42be62c90a4d9/aiosignal-1.3.2-py2.py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/4b/02/8db98cdc1a58e0abd6716d5e63244658e6e63513c65f469f34b6f1053fd0/bracex-2.5.post1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/af/f2/64b73a9bb86f5a89fb55450e97cd5c1f84a862d4ff90d9fd1a73ab0f64a5/frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- - pypi: https://files.pythonhosted.org/packages/48/9d/797d595dc57bbcb6284584ca7e228ac54b421aa1e864cec15d0f78e02f4b/material_plausible_plugin-0.2.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/97/f0/1434593be83f8c9b3c5cdfa3db2b3b4b8af3eab164a787ad81b5736abcf0/mkdocs_awesome_pages_plugin-2.9.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f1/54/65af8de681fa8255402c80eda2a501ba467921d5a7a028c9c22a2c2eedb5/msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/04/52/c97c58a33b3d6c89a8138788576d372a90a6556f354799971c6b4d16d871/protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl
- - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=423cf64f17c21881a1685402437bd69a81e79ccf#423cf64f17c21881a1685402437bd69a81e79ccf
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
- pypi: https://files.pythonhosted.org/packages/82/ad/2eaf308c64e39704629863720c59b82e1ceed814fca319b8585deb92bb74/ray-2.40.0-cp312-cp312-manylinux2014_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/ab/df/4ee467ab39cc1de4b852c212c1ed3becfec2e486a51ac1ce0091f85f38d7/wcmatch-10.0-py3-none-any.whl
- - pypi: .
+ - pypi: ./
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/backports.zstd-1.3.0-py312h6917036_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/backrefs-6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.2.0-py312h4b46afd_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.5-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ghp-import-2.1.0-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hjson-py-3.1.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-5_he492b99_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-5_h9b27e0a_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-22.1.0-h19cb2f5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.4-h991f03e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-22.1.0-h0d3cbff_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/loguru-0.7.3-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.10.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.3-py312heb39f77_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-gen-files-0.6.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-git-revision-date-localized-plugin-1.2.9-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-glightbox-0.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-macros-plugin-1.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-9.7.4-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-extensions-1.3.1-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-1.0.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-python-2.0.2-pyh332efcf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.2-py312hb34da66_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/paginate-0.5.7-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py312h8a6388b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.21.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.13-ha9537fe_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py312h51361c1_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-env-tag-1.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.1-py312h6309490_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/selectolax-0.3.29-py312h01d7ebd_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/super-collections-0.6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/super_collections-0.6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/watchdog-6.0.0-py312hba6025d_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h3eecb57_6.conda
+ - pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/9d/2a/9186535ce58db529927f6cf5990a849aa9e052eea3e2cfefe20b9e1802da/bracex-2.6-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a9/b8/2f664b56a3b4b32d28d3d106c71783073f712ba43ff6d34b9ea0ce36dc7b/filelock-3.25.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/73/61/19fc1e9c579dbfd4e8a402748f1d63cab7aabe8f8d91eb0235e45b32d040/mkdocs_awesome_pages_plugin-2.10.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/ad/bd/8b0d01c756203fbab65d265859749860682ccd2a59594609aeec3a144efa/msgpack-1.1.2-cp312-cp312-macosx_10_13_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/13/c4/6322ab5c8f279c4c358bc14eb8aefc0550b97222a39f04eb3c1af7a830fa/protobuf-7.34.0-cp310-abi3-macosx_10_9_universal2.whl
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
+ - pypi: https://files.pythonhosted.org/packages/1a/4c/76f2c7c0946645fdd8d286a3e00e2c42130d676286de206be5d60d271218/ray-2.49.2-cp312-cp312-macosx_12_0_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl
+ - pypi: https://files.pythonhosted.org/packages/eb/d8/0d1d2e9d3fabcf5d6840362adcf05f8cf3cd06a73358140c3a97189238ae/wcmatch-10.1-py3-none-any.whl
+ - pypi: ./
+ osx-arm64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.3.0-py312h44dc372_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/backrefs-6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py312h0dfefe5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.5-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ghp-import-2.1.0-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.0.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hjson-py-3.1.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-hef89b57_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_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-22.1.0-hc7d1edf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/loguru-0.7.3-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.10.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.3-py312h04c11ed_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-gen-files-0.6.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-git-revision-date-localized-plugin-1.2.9-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-glightbox-0.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-macros-plugin-1.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-9.7.4-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-extensions-1.3.1-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-1.0.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-python-2.0.2-pyh332efcf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py312he281c53_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/paginate-0.5.7-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.21.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.13-h8561d8f_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py312h04c11ed_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-env-tag-1.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py312h0f234b1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/selectolax-0.3.29-py312hea69d52_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/super-collections-0.6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/super_collections-0.6.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/watchdog-6.0.0-py312hb3ab3e3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda
+ - pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/9d/2a/9186535ce58db529927f6cf5990a849aa9e052eea3e2cfefe20b9e1802da/bracex-2.6-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/a9/b8/2f664b56a3b4b32d28d3d106c71783073f712ba43ff6d34b9ea0ce36dc7b/filelock-3.25.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/73/61/19fc1e9c579dbfd4e8a402748f1d63cab7aabe8f8d91eb0235e45b32d040/mkdocs_awesome_pages_plugin-2.10.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/34/68/ba4f155f793a74c1483d4bdef136e1023f7bcba557f0db4ef3db3c665cf1/msgpack-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/13/c4/6322ab5c8f279c4c358bc14eb8aefc0550b97222a39f04eb3c1af7a830fa/protobuf-7.34.0-cp310-abi3-macosx_10_9_universal2.whl
+ - pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
+ - pypi: https://files.pythonhosted.org/packages/0e/16/45eefb51eb1767342a6dbf41af0b432279e422e56160705fcd1098a7ec53/ray-2.54.0-cp312-cp312-macosx_12_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl
+ - pypi: https://files.pythonhosted.org/packages/eb/d8/0d1d2e9d3fabcf5d6840362adcf05f8cf3cd06a73358140c3a97189238ae/wcmatch-10.1-py3-none-any.whl
+ - pypi: ./
packages:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726
@@ -416,6 +942,39 @@ packages:
purls: []
size: 23621
timestamp: 1650670423406
+- conda: https://conda.anaconda.org/conda-forge/osx-64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ build_number: 7
+ sha256: 30006902a9274de8abdad5a9f02ef7c8bb3d69a503486af0c1faee30b023e5b7
+ md5: eaac87c21aff3ed21ad9656697bb8326
+ depends:
+ - llvm-openmp >=9.0.1
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 8328
+ timestamp: 1764092562779
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda
+ build_number: 7
+ sha256: 7acaa2e0782cad032bdaf756b536874346ac1375745fb250e9bdd6a48a7ab3cd
+ md5: a44032f282e7d2acdeb1c240308052dd
+ depends:
+ - llvm-openmp >=9.0.1
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 8325
+ timestamp: 1764092507920
+- conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
+ sha256: a3967b937b9abf0f2a99f3173fa4630293979bd1644709d89580e7c62a544661
+ md5: aaa2a381ccc56eac91d63b6c1240312f
+ depends:
+ - cpython
+ - python-gil
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 8191
+ timestamp: 1744137672556
- pypi: https://files.pythonhosted.org/packages/ec/6a/bc7e17a3e87a2985d3e8f4da4cd0f481060eb78fb08596c42be62c90a4d9/aiosignal-1.3.2-py2.py3-none-any.whl
name: aiosignal
version: 1.3.2
@@ -435,19 +994,6 @@ packages:
- pkg:pypi/annotated-types?source=hash-mapping
size: 18074
timestamp: 1733247158254
-- conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda
- sha256: 93b14414b3b3ed91e286e1cbe4e7a60c4e1b1c730b0814d1e452a8ac4b9af593
- md5: 8f587de4bcf981e26228f268df374a9b
- depends:
- - python >=3.9
- constrains:
- - astroid >=2,<4
- license: Apache-2.0
- license_family: Apache
- purls:
- - pkg:pypi/asttokens?source=hash-mapping
- size: 28206
- timestamp: 1733250564754
- pypi: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl
name: attrs
version: 24.2.0
@@ -495,17 +1041,11 @@ packages:
- mypy>=1.11.1 ; python_full_version >= '3.9' and platform_python_implementation == 'CPython' and extra == 'tests-mypy'
- pytest-mypy-plugins ; python_full_version >= '3.9' and python_full_version < '3.13' and platform_python_implementation == 'CPython' and extra == 'tests-mypy'
requires_python: '>=3.7'
-- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.2.0-pyh71513ae_1.conda
- sha256: 8488a116dffe204015a90b41982c0270534bd1070f44a00b316d59e4a79ae8c7
- md5: 2018839db45c79654b57a924fcdd27d0
- depends:
- - python >=3.9
- license: MIT
- license_family: MIT
- purls:
- - pkg:pypi/attrs?source=hash-mapping
- size: 56336
- timestamp: 1733520064905
+- pypi: https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl
+ name: attrs
+ version: 25.4.0
+ sha256: adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.16.0-pyhd8ed1ab_1.conda
sha256: f6205d3a62e87447e06e98d911559be0208d824976d77ab092796c9176611fcb
md5: 3e23f7db93ec14c80525257d8affac28
@@ -518,6 +1058,20 @@ packages:
- pkg:pypi/babel?source=hash-mapping
size: 6551057
timestamp: 1733236466015
+- conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.18.0-pyhcf101f3_1.conda
+ sha256: a14a9ad02101aab25570543a59c5193043b73dc311a25650134ed9e6cb691770
+ md5: f1976ce927373500cc19d3c0b2c85177
+ depends:
+ - python >=3.10
+ - python
+ constrains:
+ - pytz >=2015.7
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/babel?source=compressed-mapping
+ size: 7684321
+ timestamp: 1772555330347
- conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda
sha256: e1c3dc8b5aa6e12145423fed262b4754d70fec601339896b9ccf483178f690a6
md5: 767d508c1a67e02ae8f50e44cacfadb2
@@ -528,6 +1082,19 @@ packages:
purls: []
size: 7069
timestamp: 1733218168786
+- conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda
+ sha256: 25abdb37e186f0d6ac3b774a63c81c5bc4bf554b5096b51343fa5e7c381193b1
+ md5: bea46844deb274b2cc2a3a941745fa73
+ depends:
+ - python >=3.10
+ - backports
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/backports-tarfile?source=hash-mapping
+ size: 35739
+ timestamp: 1767290467820
- conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_1.conda
sha256: a0f41db6d7580cec3c850e5d1b82cb03197dd49a3179b1cee59c62cd2c761b36
md5: df837d654933488220b454c6a3b0fad6
@@ -540,18 +1107,44 @@ packages:
- pkg:pypi/backports-tarfile?source=hash-mapping
size: 32786
timestamp: 1733325872620
-- conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_1.conda
- sha256: fca842ab7be052eea1037ebee17ac25cc79c626382dd2187b5c6e007b9d9f65f
- md5: d48f7e9fdec44baf6d1da416fe402b04
+- conda: https://conda.anaconda.org/conda-forge/osx-64/backports.zstd-1.3.0-py312h6917036_0.conda
+ sha256: 96eefe04e072e8c31fcac7d5e89c9d4a558d2565eef629cfc691a755b2fa6e59
+ md5: c8b7d0fb5ff6087760dde8f5f388b135
depends:
- - python >=3.9
- - soupsieve >=1.2
+ - python
+ - __osx >=10.13
+ - python_abi 3.12.* *_cp312
+ - zstd >=1.5.7,<1.6.0a0
+ license: BSD-3-Clause AND MIT AND EPL-2.0
+ purls:
+ - pkg:pypi/backports-zstd?source=hash-mapping
+ size: 238093
+ timestamp: 1767044989890
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.3.0-py312h44dc372_0.conda
+ sha256: aee745bfca32f7073d3298157bbb2273d6d83383cb266840cf0a7862b3cd8efc
+ md5: c2d5961bfd98504b930e704426d16572
+ depends:
+ - python
+ - python 3.12.* *_cpython
+ - __osx >=11.0
+ - zstd >=1.5.7,<1.6.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause AND MIT AND EPL-2.0
+ purls:
+ - pkg:pypi/backports-zstd?source=hash-mapping
+ size: 241051
+ timestamp: 1767045000787
+- conda: https://conda.anaconda.org/conda-forge/noarch/backrefs-6.2-pyhd8ed1ab_0.conda
+ sha256: ea22e1ae38622c7872a41708a248ef0b1917ca3d91a0672995a0c8cbfc85c04e
+ md5: d78c9304d873002ca50e65c33ed6ff0e
+ depends:
+ - python >=3.10
license: MIT
license_family: MIT
purls:
- - pkg:pypi/beautifulsoup4?source=hash-mapping
- size: 118042
- timestamp: 1733230951790
+ - pkg:pypi/backrefs?source=hash-mapping
+ size: 144933
+ timestamp: 1771286293210
- conda: https://conda.anaconda.org/conda-forge/linux-64/black-24.10.0-py312h7900ff3_0.conda
sha256: 2b4344d18328b3e8fd9b5356f4ee15556779766db8cb21ecf2ff818809773df6
md5: 2daba153b913b1b901cf61440ad5e019
@@ -569,23 +1162,51 @@ packages:
- pkg:pypi/black?source=hash-mapping
size: 390571
timestamp: 1728503839694
-- conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyhd8ed1ab_1.conda
- sha256: ffc8e4e53cd92aec0f0ea0bc9e28f5fd1b1e67bde46b0b298170e6fb78eecce1
- md5: 707af59db75b066217403a8f00c1d826
+- conda: https://conda.anaconda.org/conda-forge/osx-64/black-24.10.0-py312hb401068_0.conda
+ sha256: a1397d32f6d40ff19107bab8c1570f3934ad91a601d1d973b129eabe08b943e6
+ md5: e832f4c2afb84e85718008b600944bc0
depends:
- - python >=3.9
- - webencodings
- license: Apache-2.0 AND MIT
- license_family: Apache
+ - 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=hash-mapping
+ size: 393514
+ timestamp: 1728503944080
+- conda: 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
+ - packaging >=22.0
+ - pathspec >=0.9
+ - platformdirs >=2
+ - 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/bleach?source=hash-mapping
- size: 132933
- timestamp: 1733302409510
+ - pkg:pypi/black?source=hash-mapping
+ size: 392801
+ timestamp: 1728503954904
- pypi: https://files.pythonhosted.org/packages/4b/02/8db98cdc1a58e0abd6716d5e63244658e6e63513c65f469f34b6f1053fd0/bracex-2.5.post1-py3-none-any.whl
name: bracex
version: 2.5.post1
sha256: 13e5732fec27828d6af308628285ad358047cec36801598368cb28bc631dbaf6
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/9d/2a/9186535ce58db529927f6cf5990a849aa9e052eea3e2cfefe20b9e1802da/bracex-2.6-py3-none-any.whl
+ name: bracex
+ version: '2.6'
+ sha256: 0b0049264e7340b3ec782b5cb99beb325f36c3782a32e36e876452fd49a09952
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/noarch/bracex-2.2.1-pyhd8ed1ab_0.tar.bz2
sha256: e3f867b5be7837366e989df8f6e64f94ec180676fea3494285ee873f24921156
md5: 586272349d7bef5b1ef527b56dca73cb
@@ -614,6 +1235,39 @@ packages:
- pkg:pypi/brotli?source=hash-mapping
size: 349867
timestamp: 1725267732089
+- conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.2.0-py312h4b46afd_1.conda
+ sha256: 8854a80360128157e8d05eb57c1c7e7c1cb10977e4c4557a77d29c859d1f104b
+ md5: 01fdbccc39e0a7698e9556e8036599b7
+ depends:
+ - __osx >=10.13
+ - libcxx >=19
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - libbrotlicommon 1.2.0 h8616949_1
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/brotli?source=hash-mapping
+ size: 389534
+ timestamp: 1764017976737
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py312h0dfefe5_1.conda
+ sha256: 6178775a86579d5e8eec6a7ab316c24f1355f6c6ccbe84bb341f342f1eda2440
+ md5: 311fcf3f6a8c4eb70f912798035edd35
+ depends:
+ - __osx >=11.0
+ - libcxx >=19
+ - python >=3.12,<3.13.0a0
+ - python >=3.12,<3.13.0a0 *_cpython
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - libbrotlicommon 1.2.0 hc919400_1
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/brotli?source=hash-mapping
+ size: 359503
+ timestamp: 1764018572368
- pypi: https://files.pythonhosted.org/packages/84/c2/80633736cd183ee4a62107413def345f7e6e3c01563dbca1417363cf957e/build-1.2.2.post1-py3-none-any.whl
name: build
version: 1.2.2.post1
@@ -649,6 +1303,21 @@ packages:
- uv>=0.1.18 ; extra == 'uv'
- virtualenv>=20.0.35 ; extra == 'virtualenv'
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/c5/0d/84a4380f930db0010168e0aa7b7a8fed9ba1835a8fbb1472bc6d0201d529/build-1.4.0-py3-none-any.whl
+ name: build
+ version: 1.4.0
+ sha256: 6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596
+ requires_dist:
+ - packaging>=24.0
+ - pyproject-hooks
+ - colorama ; os_name == 'nt'
+ - importlib-metadata>=4.6 ; python_full_version < '3.10.2'
+ - tomli>=1.1.0 ; python_full_version < '3.11'
+ - uv>=0.1.18 ; extra == 'uv'
+ - virtualenv>=20.11 ; python_full_version < '3.10' and extra == 'virtualenv'
+ - virtualenv>=20.17 ; python_full_version >= '3.10' and python_full_version < '3.14' and extra == 'virtualenv'
+ - virtualenv>=20.31 ; python_full_version >= '3.14' and extra == 'virtualenv'
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.28.1-pyhd8ed1ab_0.conda
sha256: a4935811c9833b4a58922b7f1fa6bbe7cbc7f0f477e67b4b16d515417df3b944
md5: 27fb27016d3be886f4376c94c367c2de
@@ -668,6 +1337,25 @@ packages:
- pkg:pypi/bump-my-version?source=hash-mapping
size: 45642
timestamp: 1730666890761
+- conda: https://conda.anaconda.org/conda-forge/noarch/bump-my-version-0.28.3-pyhd8ed1ab_0.conda
+ sha256: 10f57788a110c2139fc5a9ff59cf68b4b87a3e64b25cc63e3ef0d371c3ff23b6
+ md5: b605410561fbaa47e7259cfc4efdd02f
+ depends:
+ - click
+ - pydantic >=2.0.0
+ - pydantic-settings
+ - python >=3.8
+ - questionary
+ - rich
+ - rich-click
+ - tomlkit
+ - wcmatch >=8.5.1
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/bump-my-version?source=hash-mapping
+ size: 45511
+ timestamp: 1734528543461
- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d
md5: 62ee74e96c5ebb0af99386de58cf9553
@@ -679,6 +1367,26 @@ packages:
purls: []
size: 252783
timestamp: 1720974456583
+- conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_9.conda
+ sha256: 9f242f13537ef1ce195f93f0cc162965d6cc79da578568d6d8e50f70dd025c42
+ md5: 4173ac3b19ec0a4f400b4f782910368b
+ depends:
+ - __osx >=10.13
+ license: bzip2-1.0.6
+ license_family: BSD
+ purls: []
+ size: 133427
+ timestamp: 1771350680709
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda
+ sha256: 540fe54be35fac0c17feefbdc3e29725cce05d7367ffedfaaa1bdda234b019df
+ md5: 620b85a3f45526a8bc4d23fd78fc22f0
+ depends:
+ - __osx >=11.0
+ license: bzip2-1.0.6
+ license_family: BSD
+ purls: []
+ size: 124834
+ timestamp: 1771350416561
- conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda
sha256: afee721baa6d988e27fef1832f68d6f32ac8cc99cdf6015732224c2841a09cea
md5: c27d1c142233b5bc9ca570c6e2e0c244
@@ -686,11 +1394,25 @@ packages:
purls: []
size: 159003
timestamp: 1725018903918
+- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda
+ sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc
+ md5: 4492fd26db29495f0ba23f146cd5638d
+ depends:
+ - __unix
+ license: ISC
+ purls: []
+ size: 147413
+ timestamp: 1772006283803
- pypi: https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl
name: certifi
version: 2024.12.14
sha256: 1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56
requires_python: '>=3.6'
+- pypi: https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl
+ name: certifi
+ version: 2026.2.25
+ sha256: 027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa
+ requires_python: '>=3.7'
- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda
sha256: 7020770df338c45ac6b560185956c32f0a5abf4b76179c037f115fc7d687819f
md5: 12f7d00853807b0531775e9be891cb11
@@ -701,6 +1423,16 @@ packages:
- pkg:pypi/certifi?source=hash-mapping
size: 163752
timestamp: 1725278204397
+- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.2.25-pyhd8ed1ab_0.conda
+ sha256: a6b118fd1ed6099dc4fc03f9c492b88882a780fadaef4ed4f93dc70757713656
+ md5: 765c4d97e877cdbbb88ff33152b86125
+ depends:
+ - python >=3.10
+ license: ISC
+ purls:
+ - pkg:pypi/certifi?source=compressed-mapping
+ size: 151445
+ timestamp: 1772001170301
- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda
sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457
md5: a861504bbea4161a9170b85d4d2be840
@@ -717,11 +1449,47 @@ packages:
- pkg:pypi/cffi?source=hash-mapping
size: 294403
timestamp: 1725560714366
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda
+ sha256: e2888785e50ef99c63c29fb3cfbfb44cdd50b3bb7cd5f8225155e362c391936f
+ md5: cf70c8244e7ceda7e00b1881ad7697a9
+ depends:
+ - __osx >=10.13
+ - libffi >=3.5.2,<3.6.0a0
+ - pycparser
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/cffi?source=hash-mapping
+ size: 288241
+ timestamp: 1761203170357
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda
+ sha256: 597e986ac1a1bd1c9b29d6850e1cdea4a075ce8292af55568952ec670e7dd358
+ md5: 503ac138ad3cfc09459738c0f5750705
+ depends:
+ - __osx >=11.0
+ - libffi >=3.5.2,<3.6.0a0
+ - pycparser
+ - 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=hash-mapping
+ size: 288080
+ timestamp: 1761203317419
- pypi: https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
name: charset-normalizer
version: 3.4.0
sha256: 8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15
requires_python: '>=3.7.0'
+- pypi: https://files.pythonhosted.org/packages/9c/b6/9ee9c1a608916ca5feae81a344dffbaa53b26b90be58cc2159e3332d44ec/charset_normalizer-3.4.5-cp312-cp312-macosx_10_13_universal2.whl
+ name: charset-normalizer
+ version: 3.4.5
+ sha256: ed97c282ee4f994ef814042423a529df9497e3c666dca19be1d4cd1129dc7ade
+ requires_python: '>=3.7'
- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_1.conda
sha256: 63022ee2c6a157a9f980250a66f54bdcdf5abee817348d0f9a74c2441a6fbf0e
md5: 6581a17bba6b948bb60130026404a9d6
@@ -733,6 +1501,17 @@ packages:
- pkg:pypi/charset-normalizer?source=hash-mapping
size: 47533
timestamp: 1733218182393
+- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.5-pyhd8ed1ab_0.conda
+ sha256: 05ea76a016c77839b64f9f8ec581775f6c8a259044bd5b45a177e46ab4e7feac
+ md5: beb628209b2b354b98203066f90b3287
+ depends:
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/charset-normalizer?source=compressed-mapping
+ size: 53210
+ timestamp: 1772816516728
- pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl
name: click
version: 8.1.7
@@ -741,6 +1520,13 @@ packages:
- colorama ; sys_platform == 'win32'
- importlib-metadata ; python_full_version < '3.8'
requires_python: '>=3.7'
+- pypi: https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl
+ name: click
+ version: 8.3.1
+ sha256: 981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6
+ requires_dist:
+ - colorama ; sys_platform == 'win32'
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_1.conda
sha256: 1cd5fc6ccdd5141378e51252a7a3810b07fd5a7e6934a5b4a7eccba66566224b
md5: cb8e52f28f5e592598190c562e7b5bf1
@@ -753,6 +1539,31 @@ packages:
- pkg:pypi/click?source=hash-mapping
size: 84513
timestamp: 1733221925078
+- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ sha256: 8aee789c82d8fdd997840c952a586db63c6890b00e88c4fb6e80a38edd5f51c0
+ md5: 94b550b8d3a614dbd326af798c7dfb40
+ depends:
+ - __unix
+ - python >=3.10
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/click?source=hash-mapping
+ size: 87749
+ timestamp: 1747811451319
+- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
+ sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715
+ md5: ea8a6c3256897cc31263de9f455e25d9
+ depends:
+ - python >=3.10
+ - __unix
+ - python
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/click?source=hash-mapping
+ size: 97676
+ timestamp: 1764518652276
- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.0-pyhd8ed1ab_1.conda
sha256: 5a33d0d3ef33121c546eaf78b3dac2141fc4d30bbaeb3959bbc66fcd5e99ced6
md5: c88ca2bb7099167912e3b26463fff079
@@ -764,6 +1575,18 @@ packages:
- pkg:pypi/cloudpickle?source=hash-mapping
size: 25952
timestamp: 1729059365471
+- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda
+ sha256: 4c287c2721d8a34c94928be8fe0e9a85754e90189dd4384a31b1806856b50a67
+ md5: 61b8078a0905b12529abc622406cb62c
+ depends:
+ - python >=3.10
+ - python
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/cloudpickle?source=compressed-mapping
+ size: 27353
+ timestamp: 1765303462831
- conda: https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-2024.11.20-py312h66e93f0_0.conda
sha256: 294643f1ad5cbaa8646f803b89cc2da2b43c41cf4d3855883662ab0bb5455d3e
md5: bf99b4a864e31ecd9244affd27f3ceb6
@@ -779,6 +1602,35 @@ packages:
- pkg:pypi/cmarkgfm?source=hash-mapping
size: 139452
timestamp: 1732193337513
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cmarkgfm-2024.11.20-py312h2f459f6_1.conda
+ sha256: 332f5a0266ab84fb757c1c70e6d3749a6065c764122837f4e51b1381c4e71ef3
+ md5: f50b1eef90c025fe846cf816f243ff84
+ depends:
+ - __osx >=10.13
+ - cffi >=1.0.0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/cmarkgfm?source=hash-mapping
+ size: 121520
+ timestamp: 1760363218714
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cmarkgfm-2024.11.20-py312h163523d_1.conda
+ sha256: 6aea1c9887e69ac0e37211023190fb1526ba356affbe537eb75da028aed666fe
+ md5: 660087d3044bbb4f8fe780dd4f6d767d
+ depends:
+ - __osx >=11.0
+ - cffi >=1.0.0
+ - 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/cmarkgfm?source=hash-mapping
+ size: 115798
+ timestamp: 1760363773598
- conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
md5: 962b9857ee8e7018c22f2776ffa0b2d7
@@ -790,18 +1642,6 @@ packages:
- pkg:pypi/colorama?source=hash-mapping
size: 27011
timestamp: 1733218222191
-- conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_1.conda
- sha256: 7e87ef7c91574d9fac19faedaaee328a70f718c9b4ddadfdc0ba9ac021bd64af
- md5: 74673132601ec2b7fc592755605f4c1b
- depends:
- - python >=3.9
- - traitlets >=5.3
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/comm?source=hash-mapping
- size: 12103
- timestamp: 1733503053903
- conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.6.9-py312h178313f_0.conda
sha256: 377e0ed5a3cba689622e4639d730553564df94a6ef5a0aed77ac184fbab60065
md5: a6a5f52f8260983b0aaeebcebf558a3e
@@ -817,18 +1657,58 @@ packages:
- pkg:pypi/coverage?source=hash-mapping
size: 365110
timestamp: 1733692337748
-- conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-44.0.0-py312hda17c39_0.conda
- sha256: 4241f5e195994ae86199389b22a0621aef2afeb8a468bd98f0958bb77eff90a3
- md5: 50052304026b6f33fdd34563ee4b47b8
+- conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.13.4-py312h51361c1_0.conda
+ sha256: 03fda3e272c41223ab9c0b310be43a6afc4e19ee04eabb020482effa0059a42c
+ md5: c054ec603d6a17ab2710323cc1013d11
depends:
- - __glibc >=2.17,<3.0.a0
- - cffi >=1.12
- - libgcc >=13
- - openssl >=3.4.0,<4.0a0
+ - __osx >=10.13
- python >=3.12,<3.13.0a0
- python_abi 3.12.* *_cp312
- constrains:
- - __glibc >=2.17
+ - tomli
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/coverage?source=hash-mapping
+ size: 386403
+ timestamp: 1770720768345
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.13.4-py312h04c11ed_0.conda
+ sha256: 711f0fdda04d834b16de0d60b518ff57fe8ac25000678d6d31445f1301827c62
+ md5: 8857ec2579297861a95ac913f5b2d97f
+ depends:
+ - __osx >=11.0
+ - python >=3.12,<3.13.0a0
+ - python >=3.12,<3.13.0a0 *_cpython
+ - python_abi 3.12.* *_cp312
+ - tomli
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/coverage?source=hash-mapping
+ size: 386007
+ timestamp: 1770720691274
+- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.13-py312hd8ed1ab_0.conda
+ noarch: generic
+ sha256: d3e9bbd7340199527f28bbacf947702368f31de60c433a16446767d3c6aaf6fe
+ md5: f54c1ffb8ecedb85a8b7fcde3a187212
+ depends:
+ - python >=3.12,<3.13.0a0
+ - python_abi * *_cp312
+ license: Python-2.0
+ purls: []
+ size: 46463
+ timestamp: 1772728929620
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-44.0.0-py312hda17c39_0.conda
+ sha256: 4241f5e195994ae86199389b22a0621aef2afeb8a468bd98f0958bb77eff90a3
+ md5: 50052304026b6f33fdd34563ee4b47b8
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - cffi >=1.12
+ - libgcc >=13
+ - openssl >=3.4.0,<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:
@@ -862,43 +1742,6 @@ packages:
purls: []
size: 618596
timestamp: 1640112124844
-- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.11-py312h2ec8cdc_0.conda
- sha256: 3d800be438a76d8a636219afd63a617737729867af5800d50fc72e71ac4f27f1
- md5: 0235a6da7d128c7e068973c4de62fc7b
- depends:
- - __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=hash-mapping
- size: 2668691
- timestamp: 1734159098550
-- conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_1.conda
- sha256: 84e5120c97502a3785e8c3241c3bf51f64b4d445f13b4d2445db00d9816fe479
- md5: d622d8d7ee8868870f9cbe259f381181
- depends:
- - python >=3.9
- license: BSD-2-Clause
- license_family: BSD
- purls:
- - pkg:pypi/decorator?source=hash-mapping
- size: 14068
- timestamp: 1733236549190
-- conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2
- sha256: 9717a059677553562a8f38ff07f3b9f61727bd614f505658b0a5ecbcf8df89be
- md5: 961b3a227b437d82ad7054484cfa71b2
- depends:
- - python >=3.6
- license: PSF-2.0
- license_family: PSF
- purls:
- - pkg:pypi/defusedxml?source=hash-mapping
- size: 24062
- timestamp: 1615232388757
- conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda
sha256: fa5966bb1718bbf6967a85075e30e4547901410cc7cb7b16daf68942e9a94823
md5: 24c1ca34138ee57de72a943237cde4cc
@@ -909,17 +1752,16 @@ packages:
- pkg:pypi/docutils?source=hash-mapping
size: 402700
timestamp: 1733217860944
-- conda: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_1.conda
- sha256: 80f579bfc71b3dab5bef74114b89e26c85cb0df8caf4c27ab5ffc16363d57ee7
- md5: 3366592d3c219f2731721f11bc93755c
+- conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
+ sha256: 0d605569a77350fb681f9ed8d357cc71649b59a304099dc9d09fbeec5e84a65e
+ md5: d6bd3cd217e62bbd7efe67ff224cd667
depends:
- - python >=3.9
- license: MIT
- license_family: MIT
+ - python >=3.10
+ license: CC-PDDC AND BSD-3-Clause AND BSD-2-Clause AND ZPL-2.1
purls:
- - pkg:pypi/entrypoints?source=hash-mapping
- size: 11259
- timestamp: 1733327239578
+ - pkg:pypi/docutils?source=hash-mapping
+ size: 438002
+ timestamp: 1766092633160
- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda
sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701
md5: a16662747cdeb9abbac74d0057cc976e
@@ -930,17 +1772,17 @@ packages:
- pkg:pypi/exceptiongroup?source=compressed-mapping
size: 20486
timestamp: 1733208916977
-- conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.1.0-pyhd8ed1ab_1.conda
- sha256: 28d25ea375ebab4bf7479228f8430db20986187b04999136ff5c722ebd32eb60
- md5: ef8b5fca76806159fc25b4f48d8737eb
+- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
+ sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144
+ md5: 8e662bd460bda79b1ea39194e3c4c9ab
depends:
- - python >=3.9
- license: MIT
- license_family: MIT
+ - python >=3.10
+ - typing_extensions >=4.6.0
+ license: MIT and PSF-2.0
purls:
- - pkg:pypi/executing?source=hash-mapping
- size: 28348
- timestamp: 1733569440265
+ - pkg:pypi/exceptiongroup?source=hash-mapping
+ size: 21333
+ timestamp: 1763918099466
- conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda
sha256: 1848c7db9e264e3b8036ee133d570dd880422983cd20dd9585a505289606d276
md5: 1d6afef758879ef5ee78127eb4cd2c4a
@@ -972,6 +1814,11 @@ packages:
- virtualenv>=20.26.4 ; extra == 'testing'
- typing-extensions>=4.12.2 ; python_full_version < '3.11' and extra == 'typing'
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/a9/b8/2f664b56a3b4b32d28d3d106c71783073f712ba43ff6d34b9ea0ce36dc7b/filelock-3.25.1-py3-none-any.whl
+ name: filelock
+ version: 3.25.1
+ sha256: 18972df45473c4aa2c7921b609ee9ca4925910cc3a0fb226c96b92fc224ef7bf
+ requires_python: '>=3.10'
- pypi: https://files.pythonhosted.org/packages/af/f2/64b73a9bb86f5a89fb55450e97cd5c1f84a862d4ff90d9fd1a73ab0f64a5/frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
name: frozenlist
version: 1.5.0
@@ -989,9 +1836,21 @@ packages:
- pkg:pypi/ghp-import?source=hash-mapping
size: 16334
timestamp: 1730194036772
-- conda: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.11-pyhd8ed1ab_1.conda
- sha256: a5150ca4103c3ded9f7664bd5176cf0a6f3da86886552bfd3d519826518b2a3d
- md5: 9d3a3c39dd982332dab2aac113492013
+- conda: https://conda.anaconda.org/conda-forge/noarch/ghp-import-2.1.0-pyhd8ed1ab_2.conda
+ sha256: 40fdf5a9d5cc7a3503cd0c33e1b90b1e6eab251aaaa74e6b965417d089809a15
+ md5: 93f742fe078a7b34c29a182958d4d765
+ depends:
+ - python >=3.9
+ - python-dateutil >=2.8.1
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/ghp-import?source=hash-mapping
+ size: 16538
+ timestamp: 1734344477841
+- conda: https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda
+ sha256: dbbec21a369872c8ebe23cb9a3b9d63638479ee30face165aa0fccc96e93eec3
+ md5: 7c14f3706e099f8fcd47af2d494616cc
depends:
- python >=3.9
- smmap >=3.0.1,<6
@@ -999,32 +1858,58 @@ packages:
license_family: BSD
purls:
- pkg:pypi/gitdb?source=hash-mapping
- size: 52948
- timestamp: 1733236367007
-- conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.43-pyhff2d567_1.conda
- sha256: eb4bc75fe20aa0404ef698e08cf8864149300d96740268763b4c829baf8af571
- md5: 23867f6f9fcd2fb9e9ce6427addf01ae
+ size: 53136
+ timestamp: 1735887290843
+- conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda
+ sha256: 8043bcb4f59d17467c6c2f8259e7ded18775de5d62a8375a27718554d9440641
+ md5: 74c0cfdd5359cd2a1f178a4c3d0bd3a5
depends:
- gitdb >=4.0.1,<5
- - python >=3.9
- - typing_extensions >=3.7.4.3
+ - python >=3.10
+ - typing_extensions >=3.10.0.2
license: BSD-3-Clause
license_family: BSD
purls:
- pkg:pypi/gitpython?source=hash-mapping
- size: 156841
- timestamp: 1733236771325
-- conda: https://conda.anaconda.org/conda-forge/noarch/griffe-1.5.1-pyhd8ed1ab_0.conda
- sha256: 591bf3247a0872b76e2cf57cbdb71762913568390f5a745fe0f3f779a16459a9
- md5: 87db2aa0738c4acc5f565388d519fb25
+ size: 158433
+ timestamp: 1767358832407
+- conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.0.0-pyhcf101f3_0.conda
+ sha256: c7c7120acc201584517b9830aa8da600a0bddf7be59b692a442b72bb8424273b
+ md5: 4a58c937b57806b62f0442dc9087dcca
depends:
- - colorama >=0.4
- - python >=3.9
+ - python >=3.10
+ - griffelib >=2.0.0,<2.0.1.0a0
+ - griffecli >=2.0.0,<2.0.1.0a0
+ - python
license: ISC
purls:
- pkg:pypi/griffe?source=hash-mapping
- size: 97620
- timestamp: 1729348988898
+ size: 17184
+ timestamp: 1771834183597
+- conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.0.0-pyhcf101f3_0.conda
+ sha256: a5dec02625f9fffffe456ad65b83e0cb58579036e32d74ef6e16ab199ead623e
+ md5: 1f00605b0fb7a5262a98300bbae6014c
+ depends:
+ - python >=3.10
+ - colorama >=0.4
+ - griffelib >=2.0.0,<2.0.1.0a0
+ - python
+ license: ISC
+ purls:
+ - pkg:pypi/griffecli?source=hash-mapping
+ size: 19658
+ timestamp: 1771834183597
+- conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.0.0-pyhcf101f3_0.conda
+ sha256: c512737c8eb60f9e47a34fb476fe8541238f88c3fb04d3cbc7ee799e7f5821b3
+ md5: 1f060d75bf6d887a9a62b7750857768d
+ depends:
+ - python >=3.10
+ - python
+ license: ISC
+ purls:
+ - pkg:pypi/griffelib?source=hash-mapping
+ size: 117162
+ timestamp: 1771834183594
- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda
sha256: 843ddad410c370672a8250470697027618f104153612439076d4d7b91eeb7b5c
md5: 825927dc7b0f287ef8d4d0011bb113b1
@@ -1038,17 +1923,31 @@ packages:
- pkg:pypi/h2?source=hash-mapping
size: 52000
timestamp: 1733298867359
-- conda: https://conda.anaconda.org/conda-forge/noarch/hjson-py-3.1.0-pyhd8ed1ab_0.tar.bz2
- sha256: be791a584329f061d28940b2c76dcf92fbd63305e81ec8eaf91646d4e15db84b
- md5: c30befad415322013e1e7418d7d23c56
+- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3
+ md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9
+ depends:
+ - python >=3.10
+ - hyperframe >=6.1,<7
+ - hpack >=4.1,<5
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/h2?source=hash-mapping
+ size: 95967
+ timestamp: 1756364871835
+- conda: https://conda.anaconda.org/conda-forge/noarch/hjson-py-3.1.0-pyhd8ed1ab_1.conda
+ sha256: b1ffd36565dc2a583ef938533aa7d3eaef0143bb5df3dccea2eb7a1b9f1ee031
+ md5: 404a42a57137c137b03102161c5bb2a8
depends:
- - python >=3.3
+ - python >=3.9
license: Apache-2.0
license_family: APACHE
purls:
- pkg:pypi/hjson?source=hash-mapping
- size: 45239
- timestamp: 1660536535567
+ size: 44540
+ timestamp: 1734896878029
- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda
sha256: ec89b7e5b8aa2f0219f666084446e1fb7b54545861e9caa892acb24d125761b5
md5: 2aa5ff7fa34a81b9196532c84c10d865
@@ -1060,6 +1959,17 @@ packages:
- pkg:pypi/hpack?source=hash-mapping
size: 29412
timestamp: 1733299296857
+- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba
+ md5: 0a802cb9888dd14eeefc611f05c40b6e
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/hpack?source=hash-mapping
+ size: 30731
+ timestamp: 1737618390337
- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda
sha256: e91c6ef09d076e1d9a02819cd00fa7ee18ecf30cdd667605c853980216584d1b
md5: 566e75c90c1d0c8c459eb0ad9833dc7a
@@ -1071,6 +1981,27 @@ packages:
- pkg:pypi/hyperframe?source=hash-mapping
size: 17239
timestamp: 1733298862681
+- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8
+ md5: 8e6923fc12f1fe8f8c4e5c9f343256ac
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/hyperframe?source=hash-mapping
+ size: 17397
+ timestamp: 1737618427549
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-hef89b57_0.conda
+ sha256: 24bc62335106c30fecbcc1dba62c5eba06d18b90ea1061abd111af7b9c89c2d7
+ md5: 114e6bfe7c5ad2525eb3597acdbf2300
+ depends:
+ - __osx >=11.0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 12389400
+ timestamp: 1772209104304
- pypi: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl
name: idna
version: '3.10'
@@ -1081,6 +2012,16 @@ packages:
- pytest>=8.3.2 ; extra == 'all'
- flake8>=7.1.1 ; extra == 'all'
requires_python: '>=3.6'
+- pypi: https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl
+ name: idna
+ version: '3.11'
+ sha256: 771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea
+ requires_dist:
+ - ruff>=0.6.2 ; extra == 'all'
+ - mypy>=1.11.2 ; extra == 'all'
+ - pytest>=8.3.2 ; extra == 'all'
+ - flake8>=7.1.1 ; extra == 'all'
+ requires_python: '>=3.8'
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87
md5: 39a4f67be3286c86d696df570b1201b7
@@ -1092,6 +2033,17 @@ packages:
- pkg:pypi/idna?source=hash-mapping
size: 49765
timestamp: 1733211921194
+- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
+ sha256: ae89d0299ada2a3162c2614a9d26557a92aa6a77120ce142f8e0109bbf0342b0
+ md5: 53abe63df7e10a6ba605dc5f9f961d36
+ depends:
+ - python >=3.10
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/idna?source=hash-mapping
+ size: 50721
+ timestamp: 1760286526795
- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_1.conda
sha256: 13766b88fc5b23581530d3a0287c0c58ad82f60401afefab283bf158d2be55a9
md5: 315607a3030ad5d5227e76e0733798ff
@@ -1104,6 +2056,19 @@ packages:
- pkg:pypi/importlib-metadata?source=compressed-mapping
size: 28623
timestamp: 1733223207185
+- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745
+ md5: 63ccfdc3a3ce25b027b8767eb722fca8
+ depends:
+ - python >=3.9
+ - zipp >=3.20
+ - python
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/importlib-metadata?source=hash-mapping
+ size: 34641
+ timestamp: 1747934053147
- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda
sha256: 461199e429a3db01f0a673f8beaac5e0be75b88895952fb9183f2ab01c5c3c24
md5: 15798fa69312d433af690c8c42b3fb36
@@ -1118,6 +2083,20 @@ packages:
- pkg:pypi/importlib-resources?source=hash-mapping
size: 32701
timestamp: 1733231441973
+- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
+ sha256: acc1d991837c0afb67c75b77fdc72b4bf022aac71fedd8b9ea45918ac9b08a80
+ md5: c85c76dc67d75619a92f51dfbce06992
+ depends:
+ - python >=3.9
+ - zipp >=3.1.0
+ constrains:
+ - importlib-resources >=6.5.2,<6.5.3.0a0
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/importlib-resources?source=hash-mapping
+ size: 33781
+ timestamp: 1736252433366
- conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
md5: 6837f3eff7dcea42ecd714ce1ac2b108
@@ -1129,53 +2108,17 @@ packages:
- pkg:pypi/iniconfig?source=hash-mapping
size: 11474
timestamp: 1733223232820
-- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.5-pyh3099207_0.conda
- sha256: 33cfd339bb4efac56edf93474b37ddc049e08b1b4930cf036c893cc1f5a1f32a
- md5: b40131ab6a36ac2c09b7c57d4d3fbf99
+- conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda
+ sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19
+ md5: 9614359868482abba1bd15ce465e3c42
depends:
- - __linux
- - comm >=0.1.1
- - debugpy >=1.6.5
- - ipython >=7.23.1
- - jupyter_client >=6.1.12
- - jupyter_core >=4.12,!=5.0.*
- - matplotlib-inline >=0.1
- - nest-asyncio
- - packaging
- - psutil
- - python >=3.8
- - pyzmq >=24
- - tornado >=6.1
- - traitlets >=5.4.0
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/ipykernel?source=hash-mapping
- size: 119084
- timestamp: 1719845605084
-- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-8.30.0-pyh707e725_0.conda
- sha256: 65cdc105e5effea2943d3979cc1592590c923a589009b484d07672faaf047af1
- md5: 5d6e5cb3a4b820f61b2073f0ad5431f1
- depends:
- - __unix
- - decorator
- - exceptiongroup
- - jedi >=0.16
- - matplotlib-inline
- - pexpect >4.3
- - pickleshare
- - prompt-toolkit >=3.0.41,<3.1.0
- - pygments >=2.4.0
- python >=3.10
- - stack_data
- - traitlets >=5.13.0
- - typing_extensions >=4.6
- license: BSD-3-Clause
- license_family: BSD
+ license: MIT
+ license_family: MIT
purls:
- - pkg:pypi/ipython?source=hash-mapping
- size: 600248
- timestamp: 1732897026255
+ - pkg:pypi/iniconfig?source=compressed-mapping
+ size: 13387
+ timestamp: 1760831448842
- conda: https://conda.anaconda.org/conda-forge/noarch/isort-5.13.2-pyhd8ed1ab_1.conda
sha256: 6ebf6e83c2d449760ad5c5cc344711d6404f9e3cf6952811b8678aca5a4ab01f
md5: ef7dc847f19fe4859d5aaa33385bf509
@@ -1188,6 +2131,19 @@ packages:
- pkg:pypi/isort?source=hash-mapping
size: 73545
timestamp: 1733236278052
+- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda
+ sha256: 3cc991f0f09dfd00d2626e745ba68da03e4f1dcbb7b36dd20f7a7373643cd5d5
+ md5: d59568bad316413c89831456e691de29
+ depends:
+ - python >=3.10
+ - more-itertools
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/jaraco-classes?source=hash-mapping
+ size: 14831
+ timestamp: 1767294269456
- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_2.conda
sha256: 3d16a0fa55a29fe723c918a979b2ee927eb0bf9616381cdfd26fa9ea2b649546
md5: ade6b25a6136661dadd1a43e4350b10b
@@ -1212,6 +2168,18 @@ packages:
- pkg:pypi/jaraco-context?source=hash-mapping
size: 12483
timestamp: 1733382698758
+- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.1-pyhcf101f3_0.conda
+ sha256: 49c3e2e9aa4930734badfcbb31543406ed1b5531cb833f595cf57baf628dea7d
+ md5: 5ed60de12f1673398943262371667f79
+ depends:
+ - python >=3.10
+ - backports.tarfile
+ - python
+ license: MIT
+ purls:
+ - pkg:pypi/jaraco-context?source=compressed-mapping
+ size: 15368
+ timestamp: 1773131463776
- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.1.0-pyhd8ed1ab_0.conda
sha256: 61da3e37149da5c8479c21571eaec61cc4a41678ee872dcb2ff399c30878dddb
md5: eb257d223050a5a27f5fdf5c9debc8ec
@@ -1224,17 +2192,19 @@ packages:
- pkg:pypi/jaraco-functools?source=hash-mapping
size: 15545
timestamp: 1733746481844
-- conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda
- sha256: 92c4d217e2dc68983f724aa983cca5464dcb929c566627b26a2511159667dba8
- md5: a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9
+- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda
+ sha256: 6a91447b3bb4d7ae94cc0d77ed12617796629aee11111efe7ea43cbd0e113bda
+ md5: aa83cc08626bf6b613a3103942be8951
depends:
- - parso >=0.8.3,<0.9.0
- - python >=3.9
- license: Apache-2.0 AND MIT
+ - python >=3.10
+ - more-itertools
+ - python
+ license: MIT
+ license_family: MIT
purls:
- - pkg:pypi/jedi?source=hash-mapping
- size: 843646
- timestamp: 1733300981994
+ - pkg:pypi/jaraco-functools?source=hash-mapping
+ size: 18744
+ timestamp: 1767294193246
- conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2
sha256: 16639759b811866d63315fe1391f6fb45f5478b823972f4d3d9f0392b7dd80b8
md5: 9800ad1699b42612478755a2d26c722d
@@ -1258,6 +2228,19 @@ packages:
- pkg:pypi/jinja2?source=hash-mapping
size: 110963
timestamp: 1733217424408
+- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda
+ sha256: fc9ca7348a4f25fed2079f2153ecdcf5f9cf2a0bc36c4172420ca09e1849df7b
+ md5: 04558c96691bed63104678757beb4f8d
+ depends:
+ - markupsafe >=2.0
+ - python >=3.10
+ - python
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/jinja2?source=compressed-mapping
+ size: 120685
+ timestamp: 1764517220861
- pypi: https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl
name: jsonschema
version: 4.23.0
@@ -1286,23 +2269,33 @@ packages:
- uri-template ; extra == 'format-nongpl'
- webcolors>=24.6.0 ; extra == 'format-nongpl'
requires_python: '>=3.8'
-- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda
- sha256: be992a99e589146f229c58fe5083e0b60551d774511c494f91fe011931bd7893
- md5: a3cead9264b331b32fe8f0aabc967522
- depends:
- - attrs >=22.2.0
- - importlib_resources >=1.4.0
- - jsonschema-specifications >=2023.03.6
- - pkgutil-resolve-name >=1.3.10
- - python >=3.9
- - referencing >=0.28.4
- - rpds-py >=0.7.1
- license: MIT
- license_family: MIT
- purls:
- - pkg:pypi/jsonschema?source=hash-mapping
- size: 74256
- timestamp: 1733472818764
+- pypi: https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl
+ name: jsonschema
+ version: 4.26.0
+ sha256: d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce
+ requires_dist:
+ - attrs>=22.2.0
+ - jsonschema-specifications>=2023.3.6
+ - referencing>=0.28.4
+ - rpds-py>=0.25.0
+ - fqdn ; extra == 'format'
+ - idna ; extra == 'format'
+ - isoduration ; extra == 'format'
+ - jsonpointer>1.13 ; extra == 'format'
+ - rfc3339-validator ; extra == 'format'
+ - rfc3987 ; extra == 'format'
+ - uri-template ; extra == 'format'
+ - webcolors>=1.11 ; extra == 'format'
+ - fqdn ; extra == 'format-nongpl'
+ - idna ; extra == 'format-nongpl'
+ - isoduration ; extra == 'format-nongpl'
+ - jsonpointer>1.13 ; extra == 'format-nongpl'
+ - rfc3339-validator ; extra == 'format-nongpl'
+ - rfc3986-validator>0.1.0 ; extra == 'format-nongpl'
+ - rfc3987-syntax>=1.1.0 ; extra == 'format-nongpl'
+ - uri-template ; extra == 'format-nongpl'
+ - webcolors>=24.6.0 ; extra == 'format-nongpl'
+ requires_python: '>=3.10'
- pypi: https://files.pythonhosted.org/packages/d1/0f/8910b19ac0670a0f80ce1008e5e751c4a57e14d2c4c13a482aa6079fa9d6/jsonschema_specifications-2024.10.1-py3-none-any.whl
name: jsonschema-specifications
version: 2024.10.1
@@ -1310,80 +2303,13 @@ packages:
requires_dist:
- referencing>=0.31.0
requires_python: '>=3.9'
-- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda
- sha256: 37127133837444cf0e6d1a95ff5a505f8214ed4e89e8e9343284840e674c6891
- md5: 3b519bc21bc80e60b456f1e62962a766
- depends:
- - python >=3.9
- - referencing >=0.31.0
- license: MIT
- license_family: MIT
- purls:
- - pkg:pypi/jsonschema-specifications?source=hash-mapping
- size: 16170
- timestamp: 1733493624968
-- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda
- sha256: 19d8bd5bb2fde910ec59e081eeb59529491995ce0d653a5209366611023a0b3a
- md5: 4ebae00eae9705b0c3d6d1018a81d047
- depends:
- - importlib-metadata >=4.8.3
- - jupyter_core >=4.12,!=5.0.*
- - python >=3.9
- - python-dateutil >=2.8.2
- - pyzmq >=23.0
- - tornado >=6.2
- - traitlets >=5.3
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/jupyter-client?source=hash-mapping
- size: 106342
- timestamp: 1733441040958
-- conda: 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.8
- - traitlets >=5.3
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/jupyter-core?source=hash-mapping
- size: 57671
- timestamp: 1727163547058
-- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda
- sha256: dc24b900742fdaf1e077d9a3458fd865711de80bca95fe3c6d46610c532c6ef0
- md5: fd312693df06da3578383232528c468d
- depends:
- - pygments >=2.4.1,<3
- - python >=3.9
- constrains:
- - jupyterlab >=4.0.8,<5.0.0
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/jupyterlab-pygments?source=hash-mapping
- size: 18711
- timestamp: 1733328194037
-- conda: https://conda.anaconda.org/conda-forge/noarch/jupytext-1.16.4-pyh80e38bb_0.conda
- sha256: e0e904bcc18a3b31dc79b05f98a3fd46c9e52b27e7942856f767f0c0b815ae15
- md5: 1df7fd1594a7f2f6496ff23834a099bf
- depends:
- - markdown-it-py >=1.0
- - mdit-py-plugins
- - nbformat
- - packaging
- - python >=3.8
- - pyyaml
- - tomli
- license: MIT
- license_family: MIT
- purls:
- - pkg:pypi/jupytext?source=hash-mapping
- size: 104513
- timestamp: 1722332096729
+- pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl
+ name: jsonschema-specifications
+ version: 2025.9.1
+ sha256: 98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe
+ requires_dist:
+ - referencing>=0.31.0
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_1.conda
sha256: 0f15886df2dfdd7474fc15b9bf890669cbfd0becb0072eafb9a3ba1e949d9a57
md5: 8067b23a97d7ee4bb0fd81500ba4bbe3
@@ -1403,30 +2329,23 @@ packages:
- pkg:pypi/keyring?source=hash-mapping
size: 37016
timestamp: 1733418412922
-- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
- sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb
- md5: 30186d27e2c9fa62b45fb1476b7200e3
- depends:
- - libgcc-ng >=10.3.0
- license: LGPL-2.1-or-later
- purls: []
- size: 117831
- timestamp: 1646151697040
-- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
- sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238
- md5: 3f43953b7d3fb3aaa1d0d0723d91e368
+- conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh534df25_0.conda
+ sha256: 9def5c6fb3b3b4952a4f6b55a019b5c7065b592682b84710229de5a0b73f6364
+ md5: c88f9579d08eb4031159f03640714ce3
depends:
- - keyutils >=1.6.1,<2.0a0
- - libedit >=3.1.20191231,<3.2.0a0
- - libedit >=3.1.20191231,<4.0a0
- - libgcc-ng >=12
- - libstdcxx-ng >=12
- - openssl >=3.3.1,<4.0a0
+ - __osx
+ - importlib-metadata >=4.11.4
+ - importlib_resources
+ - jaraco.classes
+ - jaraco.context
+ - jaraco.functools
+ - python >=3.10
license: MIT
license_family: MIT
- purls: []
- size: 1370023
- timestamp: 1719463201255
+ purls:
+ - pkg:pypi/keyring?source=hash-mapping
+ size: 37924
+ timestamp: 1763320995459
- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe
md5: 048b02e3962f066da18efe3a21b77672
@@ -1456,10 +2375,46 @@ packages:
purls: []
size: 15677
timestamp: 1729642900350
-- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda
- build_number: 25
- sha256: ab87b0477078837c91d9cda62a9faca18fba7c57cc77aa779ae24b3ac783b5dd
- md5: 5dbd1b0fc0d01ec5e0e1fbe667281a11
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-5_he492b99_openblas.conda
+ build_number: 5
+ sha256: 4754de83feafa6c0b41385f8dab1b13f13476232e16f524564a340871a9fc3bc
+ md5: 36d2e68a156692cbae776b75d6ca6eae
+ depends:
+ - libopenblas >=0.3.30,<0.3.31.0a0
+ - libopenblas >=0.3.30,<1.0a0
+ constrains:
+ - liblapack 3.11.0 5*_openblas
+ - blas 2.305 openblas
+ - libcblas 3.11.0 5*_openblas
+ - mkl <2026
+ - liblapacke 3.11.0 5*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18476
+ timestamp: 1765819054657
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda
+ build_number: 5
+ sha256: 620a6278f194dcabc7962277da6835b1e968e46ad0c8e757736255f5ddbfca8d
+ md5: bcc025e2bbaf8a92982d20863fe1fb69
+ depends:
+ - libopenblas >=0.3.30,<0.3.31.0a0
+ - libopenblas >=0.3.30,<1.0a0
+ constrains:
+ - libcblas 3.11.0 5*_openblas
+ - liblapack 3.11.0 5*_openblas
+ - liblapacke 3.11.0 5*_openblas
+ - blas 2.305 openblas
+ - mkl <2026
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18546
+ timestamp: 1765819094137
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-25_linux64_openblas.conda
+ build_number: 25
+ sha256: ab87b0477078837c91d9cda62a9faca18fba7c57cc77aa779ae24b3ac783b5dd
+ md5: 5dbd1b0fc0d01ec5e0e1fbe667281a11
depends:
- libblas 3.9.0 25_linux64_openblas
constrains:
@@ -1471,17 +2426,56 @@ packages:
purls: []
size: 15613
timestamp: 1729642905619
-- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2
- sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf
- md5: 4d331e44109e3f0e19b4cb8f9b82f3e1
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-5_h9b27e0a_openblas.conda
+ build_number: 5
+ sha256: 8077c29ea720bd152be6e6859a3765228cde51301fe62a3b3f505b377c2cb48c
+ md5: b31d771cbccff686e01a687708a7ca41
depends:
- - libgcc-ng >=7.5.0
- - ncurses >=6.2,<7.0.0a0
- license: BSD-2-Clause
+ - libblas 3.11.0 5_he492b99_openblas
+ constrains:
+ - liblapack 3.11.0 5*_openblas
+ - blas 2.305 openblas
+ - liblapacke 3.11.0 5*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18484
+ timestamp: 1765819073006
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda
+ build_number: 5
+ sha256: 38809c361bbd165ecf83f7f05fae9b791e1baa11e4447367f38ae1327f402fc0
+ md5: efd8bd15ca56e9d01748a3beab8404eb
+ depends:
+ - libblas 3.11.0 5_h51639a9_openblas
+ constrains:
+ - liblapacke 3.11.0 5*_openblas
+ - liblapack 3.11.0 5*_openblas
+ - blas 2.305 openblas
+ license: BSD-3-Clause
license_family: BSD
purls: []
- size: 123878
- timestamp: 1597616541093
+ size: 18548
+ timestamp: 1765819108956
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-22.1.0-h19cb2f5_1.conda
+ sha256: fa002b43752fe5860e588435525195324fe250287105ebd472ac138e97de45e6
+ md5: 836389b6b9ae58f3fbcf7cafebd5c7f2
+ depends:
+ - __osx >=11.0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 570141
+ timestamp: 1772001147762
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.0-h55c6f16_1.conda
+ sha256: ce1049fa6fda9cf08ff1c50fb39573b5b0ea6958375d8ea7ccd8456ab81a0bcb
+ md5: e9c56daea841013e7774b5cd46f41564
+ depends:
+ - __osx >=11.0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 568910
+ timestamp: 1772001095642
- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26
md5: db833e03127376d461e1e13e76f09b6c
@@ -1495,6 +2489,30 @@ packages:
purls: []
size: 73304
timestamp: 1730967041968
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.4-h991f03e_0.conda
+ sha256: 8d9d79b2de7d6f335692391f5281607221bf5d040e6724dad4c4d77cd603ce43
+ md5: a684eb8a19b2aa68fde0267df172a1e3
+ depends:
+ - __osx >=10.13
+ constrains:
+ - expat 2.7.4.*
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 74578
+ timestamp: 1771260142624
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.4-hf6b4638_0.conda
+ sha256: 03887d8080d6a8fe02d75b80929271b39697ecca7628f0657d7afaea87761edf
+ md5: a92e310ae8dfc206ff449f362fc4217f
+ depends:
+ - __osx >=11.0
+ constrains:
+ - expat 2.7.4.*
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 68199
+ timestamp: 1771260020767
- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e
md5: d645c6d2ac96843a2bfaccd2d62b3ac3
@@ -1505,6 +2523,26 @@ packages:
purls: []
size: 58292
timestamp: 1636488182923
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-hd1f9c09_0.conda
+ sha256: 951958d1792238006fdc6fce7f71f1b559534743b26cc1333497d46e5903a2d6
+ md5: 66a0dc7464927d0853b590b6f53ba3ea
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 53583
+ timestamp: 1769456300951
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-hcf2aa1b_0.conda
+ sha256: 6686a26466a527585e6a75cc2a242bf4a3d97d6d6c86424a441677917f28bec7
+ md5: 43c04d9cb46ef176bb2a4c77e324d599
+ depends:
+ - __osx >=11.0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 40979
+ timestamp: 1769456747661
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569
md5: 3cb76c3f10d3bc7f1105b2fc9db984df
@@ -1519,6 +2557,32 @@ packages:
purls: []
size: 848745
timestamp: 1729027721139
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_18.conda
+ sha256: 83366f11615ab234aa1e0797393f9e07b78124b5a24c4a9f8af0113d02df818e
+ md5: 9a5cb96e43f5c2296690186e15b3296f
+ depends:
+ - _openmp_mutex
+ constrains:
+ - libgcc-ng ==15.2.0=*_18
+ - libgomp 15.2.0 18
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 423025
+ timestamp: 1771378225170
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_18.conda
+ sha256: 1d9c4f35586adb71bcd23e31b68b7f3e4c4ab89914c26bed5f2859290be5560e
+ md5: 92df6107310b1fff92c4cc84f0de247b
+ depends:
+ - _openmp_mutex
+ constrains:
+ - libgcc-ng ==15.2.0=*_18
+ - libgomp 15.2.0 18
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 401974
+ timestamp: 1771378877463
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7
md5: e39480b9ca41323497b05492a63bc35b
@@ -1541,6 +2605,30 @@ packages:
purls: []
size: 53997
timestamp: 1729027752995
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_18.conda
+ sha256: fb06c2a2ef06716a0f2a6550f5d13cdd1d89365993068512b7ae3c34e6e665d9
+ md5: 34a9f67498721abcfef00178bcf4b190
+ depends:
+ - libgfortran5 15.2.0 hd16e46c_18
+ constrains:
+ - libgfortran-ng ==15.2.0=*_18
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 139761
+ timestamp: 1771378423828
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_18.conda
+ sha256: 63f89087c3f0c8621c5c89ecceec1e56e5e1c84f65fc9c5feca33a07c570a836
+ md5: 26981599908ed2205366e8fc91b37fc6
+ depends:
+ - libgfortran5 15.2.0 hdae7583_18
+ constrains:
+ - libgfortran-ng ==15.2.0=*_18
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 138973
+ timestamp: 1771379054939
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d
md5: 9822b874ea29af082e5d36098d25427d
@@ -1553,6 +2641,30 @@ packages:
purls: []
size: 1462645
timestamp: 1729027735353
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_18.conda
+ sha256: ddaf9dcf008c031b10987991aa78643e03c24a534ad420925cbd5851b31faa11
+ md5: ca52daf58cea766656266c8771d8be81
+ depends:
+ - libgcc >=15.2.0
+ constrains:
+ - libgfortran 15.2.0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 1062274
+ timestamp: 1771378232014
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_18.conda
+ sha256: 91033978ba25e6a60fb86843cf7e1f7dc8ad513f9689f991c9ddabfaf0361e7e
+ md5: c4a6f7989cffb0544bfd9207b6789971
+ depends:
+ - libgcc >=15.2.0
+ constrains:
+ - libgfortran 15.2.0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 598634
+ timestamp: 1771378886363
- conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda
sha256: 49ee9401d483a76423461c50dcd37f91d070efaec7e4dc2828d8cdd2ce694231
md5: 13e8e54035ddd2b91875ba399f0f7c04
@@ -1603,6 +2715,36 @@ packages:
purls: []
size: 15608
timestamp: 1729642910812
+- conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda
+ build_number: 5
+ sha256: 2c915fe2b3d806d4b82776c882ba66ba3e095e9e2c41cc5c3375bffec6bddfdc
+ md5: eb5b1c25d4ac30813a6ca950a58710d6
+ depends:
+ - libblas 3.11.0 5_he492b99_openblas
+ constrains:
+ - libcblas 3.11.0 5*_openblas
+ - blas 2.305 openblas
+ - liblapacke 3.11.0 5*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18491
+ timestamp: 1765819090240
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda
+ build_number: 5
+ sha256: 735a6e6f7d7da6f718b6690b7c0a8ae4815afb89138aa5793abe78128e951dbb
+ md5: ca9d752201b7fa1225bca036ee300f2b
+ depends:
+ - libblas 3.11.0 5_h51639a9_openblas
+ constrains:
+ - libcblas 3.11.0 5*_openblas
+ - blas 2.305 openblas
+ - liblapacke 3.11.0 5*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18551
+ timestamp: 1765819121855
- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda
sha256: e6e425252f3839e2756e4af1ea2074dffd3396c161bf460629f9dfd6a65f15c6
md5: 2ecf2f1c7e4e21fcfe6423a51a992d84
@@ -1613,6 +2755,28 @@ packages:
purls: []
size: 111132
timestamp: 1733407410083
+- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda
+ sha256: 7ab3c98abd3b5d5ec72faa8d9f5d4b50dcee4970ed05339bc381861199dabb41
+ md5: 688a0c3d57fa118b9c97bf7e471ab46c
+ depends:
+ - __osx >=10.13
+ constrains:
+ - xz 5.8.2.*
+ license: 0BSD
+ purls: []
+ size: 105482
+ timestamp: 1768753411348
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda
+ sha256: 7bfc7ffb2d6a9629357a70d4eadeadb6f88fa26ebc28f606b1c1e5e5ed99dc7e
+ md5: 009f0d956d7bfb00de86901d16e486c7
+ depends:
+ - __osx >=11.0
+ constrains:
+ - xz 5.8.2.*
+ license: 0BSD
+ purls: []
+ size: 92242
+ timestamp: 1768752982486
- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6
md5: 30fd6e37fe21f86f4bd26d6ee73eeec7
@@ -1638,15 +2802,36 @@ packages:
purls: []
size: 5578513
timestamp: 1730772671118
-- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda
- sha256: 0105bd108f19ea8e6a78d2d994a6d4a8db16d19a41212070d2d1d48a63c34161
- md5: a587892d3c13b6621a6091be690dbca2
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda
+ sha256: ba642353f7f41ab2d2eb6410fbe522238f0f4483bcd07df30b3222b4454ee7cd
+ md5: 9241a65e6e9605e4581a2a8005d7f789
depends:
- - libgcc-ng >=12
- license: ISC
+ - __osx >=10.13
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ - llvm-openmp >=19.1.7
+ constrains:
+ - openblas >=0.3.30,<0.3.31.0a0
+ license: BSD-3-Clause
+ license_family: BSD
purls: []
- size: 205978
- timestamp: 1716828628198
+ size: 6268795
+ timestamp: 1763117623665
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda
+ sha256: ebbbc089b70bcde87c4121a083c724330f02a690fb9d7c6cd18c30f1b12504fa
+ md5: a6f6d3a31bb29e48d37ce65de54e2df0
+ depends:
+ - __osx >=11.0
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ - llvm-openmp >=19.1.7
+ constrains:
+ - openblas >=0.3.30,<0.3.31.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 4284132
+ timestamp: 1768547079205
- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda
sha256: 48af21ebc2cbf358976f1e0f4a0ab9e91dfc83d0ef337cf3837c6f5bc22fb352
md5: b58da17db24b6e08bcbf8fed2fb8c915
@@ -1658,6 +2843,27 @@ packages:
purls: []
size: 873551
timestamp: 1733761824646
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.52.0-h77d7759_0.conda
+ sha256: f500d1cd50cfcd288d02b8fc3c3b7ecf8de6fec7b86e57ea058def02908e4231
+ md5: d553eb96758e038b04027b30fe314b2d
+ depends:
+ - __osx >=11.0
+ - libzlib >=1.3.1,<2.0a0
+ license: blessing
+ purls: []
+ size: 996526
+ timestamp: 1772819669038
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.52.0-h1ae2325_0.conda
+ sha256: beb0fd5594d6d7c7cd42c992b6bb4d66cbb39d6c94a8234f15956da99a04306c
+ md5: f6233a3fddc35a2ec9f617f79d6f3d71
+ depends:
+ - __osx >=11.0
+ - icu >=78.2,<79.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: blessing
+ purls: []
+ size: 918420
+ timestamp: 1772819478684
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462
md5: 234a5554c53625688d51062645337328
@@ -1710,6 +2916,56 @@ packages:
purls: []
size: 60963
timestamp: 1727963148474
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ sha256: 8412f96504fc5993a63edf1e211d042a1fd5b1d51dedec755d2058948fcced09
+ md5: 003a54a4e32b02f7355b50a837e699da
+ depends:
+ - __osx >=10.13
+ constrains:
+ - zlib 1.3.1 *_2
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 57133
+ timestamp: 1727963183990
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda
+ sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b
+ md5: 369964e85dc26bfe78f41399b366c435
+ depends:
+ - __osx >=11.0
+ constrains:
+ - zlib 1.3.1 *_2
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 46438
+ timestamp: 1727963202283
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-22.1.0-h0d3cbff_0.conda
+ sha256: b63df4e592b3362e7d13e3d1cf8e55ce932ff4f17611c8514b5d36368ec2094c
+ md5: 3921780bab286f2439ba483c22b90345
+ depends:
+ - __osx >=11.0
+ constrains:
+ - openmp 22.1.0|22.1.0.*
+ - intel-openmp <0.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ purls: []
+ size: 311938
+ timestamp: 1772024731611
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-22.1.0-hc7d1edf_0.conda
+ sha256: 0daeedb3872ad0fdd6f0d7e7165c63488e8a315d7057907434145fba0c1e7b3d
+ md5: ff0820b5588b20be3b858552ecf8ffae
+ depends:
+ - __osx >=11.0
+ constrains:
+ - openmp 22.1.0|22.1.0.*
+ - intel-openmp <0.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ purls: []
+ size: 285558
+ timestamp: 1772028716784
- conda: https://conda.anaconda.org/conda-forge/linux-64/loguru-0.7.2-py312h7900ff3_2.conda
sha256: e5477e3fa7b4ef070e9ecae619cfc5845e14e3cdac8fbb2d158a03d51f967bef
md5: fddd3092f921be8e01b18f2a0266d98f
@@ -1722,6 +2978,31 @@ packages:
- pkg:pypi/loguru?source=hash-mapping
size: 123047
timestamp: 1725349857430
+- conda: https://conda.anaconda.org/conda-forge/noarch/loguru-0.7.3-pyh707e725_0.conda
+ sha256: e4a07f357a4cf195a2345dabd98deab80f4d53574abe712a9cc7f22d3f2cc2c3
+ md5: 49647ac1de4d1e4b49124aedf3934e02
+ depends:
+ - __unix
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/loguru?source=hash-mapping
+ size: 59696
+ timestamp: 1746634858826
+- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.10.2-pyhcf101f3_0.conda
+ sha256: 20e0892592a3e7c683e3d66df704a9425d731486a97c34fc56af4da1106b2b6b
+ md5: ba0a9221ce1063f31692c07370d062f3
+ depends:
+ - importlib-metadata >=4.4
+ - python >=3.10
+ - python
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/markdown?source=compressed-mapping
+ size: 85893
+ timestamp: 1770694658918
- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.6-pyhd8ed1ab_0.conda
sha256: fce1fde00359696983989699c00f9891194c4ebafea647a8d21b7e2e3329b56e
md5: 06e9bebf748a0dea03ecbe1f0e27e909
@@ -1746,6 +3027,18 @@ packages:
- pkg:pypi/markdown-it-py?source=hash-mapping
size: 64430
timestamp: 1733250550053
+- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda
+ sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e
+ md5: 5b5203189eb668f042ac2b0826244964
+ depends:
+ - mdurl >=0.1,<1
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/markdown-it-py?source=hash-mapping
+ size: 64736
+ timestamp: 1754951288511
- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda
sha256: 4a6bf68d2a2b669fecc9a4a009abd1cf8e72c2289522ff00d81b5a6e51ae78f5
md5: eb227c3e0bf58f5bd69c0532b157975b
@@ -1762,38 +3055,37 @@ packages:
- pkg:pypi/markupsafe?source=hash-mapping
size: 24604
timestamp: 1733219911494
-- pypi: https://files.pythonhosted.org/packages/48/9d/797d595dc57bbcb6284584ca7e228ac54b421aa1e864cec15d0f78e02f4b/material_plausible_plugin-0.2.0-py3-none-any.whl
- name: material-plausible-plugin
- version: 0.2.0
- sha256: b7dc866b358475d940c5c61f56f86c400b9c1e73ffa2b06819207df38f34fcf4
- requires_dist:
- - mkdocs
- - mkdocs-material
- requires_python: '>=3.7'
-- conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda
- sha256: 69b7dc7131703d3d60da9b0faa6dd8acbf6f6c396224cf6aef3e855b8c0c41c6
- md5: af6ab708897df59bd6e7283ceab1b56b
+- conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.3-py312heb39f77_1.conda
+ sha256: 0eb418d4776a1a54c1869b11a5c4ae096ef9a46c8d7e481e32fa814561c5cfed
+ md5: d596f9d03043acd4ec711c844060da59
depends:
- - python >=3.9
- - traitlets
+ - __osx >=11.0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - jinja2 >=3.0.0
license: BSD-3-Clause
license_family: BSD
purls:
- - pkg:pypi/matplotlib-inline?source=hash-mapping
- size: 14467
- timestamp: 1733417051523
-- conda: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.4.2-pyhd8ed1ab_1.conda
- sha256: c63ed79d9745109c0a70397713b0c07f06e7d3561abcb122cfc80a141ab3b449
- md5: af2060041d4f3250a7eb6ab3ec0e549b
+ - pkg:pypi/markupsafe?source=compressed-mapping
+ size: 25095
+ timestamp: 1772445399364
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.3-py312h04c11ed_1.conda
+ sha256: 330394fb9140995b29ae215a19fad46fcc6691bdd1b7654513d55a19aaa091c1
+ md5: 11d95ab83ef0a82cc2de12c1e0b47fe4
depends:
- - markdown-it-py >=1.0.0,<4.0.0
- - python >=3.9
- license: MIT
- license_family: MIT
+ - __osx >=11.0
+ - python >=3.12,<3.13.0a0
+ - python >=3.12,<3.13.0a0 *_cpython
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - jinja2 >=3.0.0
+ license: BSD-3-Clause
+ license_family: BSD
purls:
- - pkg:pypi/mdit-py-plugins?source=hash-mapping
- size: 42180
- timestamp: 1733854816517
+ - pkg:pypi/markupsafe?source=compressed-mapping
+ size: 25564
+ timestamp: 1772445846939
- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7
md5: 592132998493b3ff25fd7479396e8351
@@ -1816,17 +3108,6 @@ packages:
- pkg:pypi/mergedeep?source=hash-mapping
size: 11676
timestamp: 1734157119152
-- conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_1.conda
- sha256: 0a9faaf1692b74f321cedbd37a44f108a1ec3f5d9638bc5bbf860cb3b6ff6db4
- md5: c46df05cae629e55426773ac1f85d68f
- depends:
- - python >=3.9
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/mistune?source=hash-mapping
- size: 65901
- timestamp: 1733258822603
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_0.conda
sha256: 757f046175d031781e9ae58f2c3b8f952bda157a7659a1bb59b8572ac939b40c
md5: b7b2cfed0691bc312988b7c5bbe77226
@@ -1854,20 +3135,47 @@ packages:
- pkg:pypi/mkdocs?source=hash-mapping
size: 3522125
timestamp: 1725058594628
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.2.0-pyhd8ed1ab_1.conda
- sha256: 5d26e5e5257909e03b2c59fdda7842cadc51a5e3c34b7f709ff593d5bab634e1
- md5: 43688b5c2118511e37e8fd03c1c580a2
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
+ sha256: 902d2e251f9a7ffa7d86a3e62be5b2395e28614bd4dbe5f50acf921fd64a8c35
+ md5: 14661160be39d78f2b210f2cc2766059
+ depends:
+ - click >=7.0,<8.3.0a0
+ - colorama >=0.4
+ - ghp-import >=1.0
+ - importlib-metadata >=4.4
+ - jinja2 >=2.11.1
+ - markdown >=3.3.6
+ - markupsafe >=2.0.1
+ - mergedeep >=1.3.4
+ - mkdocs-get-deps >=0.2.0
+ - packaging >=20.5
+ - pathspec >=0.11.1
+ - python >=3.9
+ - pyyaml >=5.1
+ - pyyaml-env-tag >=0.1
+ - watchdog >=2.0
+ constrains:
+ - babel >=2.9.0
+ license: BSD-2-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/mkdocs?source=hash-mapping
+ size: 3524754
+ timestamp: 1734344673481
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.4-pyhd8ed1ab_0.conda
+ sha256: 2badce31930bc16c54e95c0f1bb03009b67b4525df005ac11365dcd8cfdf7604
+ md5: 3ccacc29f132fcc46a544b9b8fcbc293
depends:
- markdown >=3.3
- markupsafe >=2.0.1
- mkdocs >=1.1
- pymdown-extensions
- - python >=3.8,<4.0
+ - python >=3.10
license: ISC
purls:
- pkg:pypi/mkdocs-autorefs?source=hash-mapping
- size: 24228
- timestamp: 1725295211203
+ size: 35803
+ timestamp: 1770749168710
- pypi: https://files.pythonhosted.org/packages/97/f0/1434593be83f8c9b3c5cdfa3db2b3b4b8af3eab164a787ad81b5736abcf0/mkdocs_awesome_pages_plugin-2.9.3-py3-none-any.whl
name: mkdocs-awesome-pages-plugin
version: 2.9.3
@@ -1877,18 +3185,28 @@ packages:
- natsort>=8.1.0
- wcmatch>=7
requires_python: '>=3.8.1'
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-gen-files-0.4.0-pyhd8ed1ab_0.tar.bz2
- sha256: f158e2239b0b4549dc5e0d38c973135e19f8def084f0d096faf2c6161d12b1a9
- md5: ea350040131e9a179817f620a704411a
+- pypi: https://files.pythonhosted.org/packages/73/61/19fc1e9c579dbfd4e8a402748f1d63cab7aabe8f8d91eb0235e45b32d040/mkdocs_awesome_pages_plugin-2.10.1-py3-none-any.whl
+ name: mkdocs-awesome-pages-plugin
+ version: 2.10.1
+ sha256: c6939dbea37383fc3cf8c0a4e892144ec3d2f8a585e16fdc966b34e7c97042a7
+ requires_dist:
+ - mkdocs>=1
+ - natsort>=8.1.0
+ - wcmatch>=7
+ requires_python: '>=3.8.1'
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-gen-files-0.6.0-pyhcf101f3_0.conda
+ sha256: 64c802b733adcc3fd1435f4b180706defd968a5fe9959c678f8f54452b85e2fa
+ md5: 30eab90072aa47828d5374be23ff714d
depends:
- - mkdocs <2.0.0,>=1.0.3
- - python >=3.7
+ - python >=3.10
+ - mkdocs >=1.4.1
+ - python
license: MIT
license_family: MIT
purls:
- pkg:pypi/mkdocs-gen-files?source=hash-mapping
- size: 12043
- timestamp: 1661211107053
+ size: 16356
+ timestamp: 1763934948991
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_0.conda
sha256: aa6207994b15a15b5f82a442804c279bf78f6c4680f0903fb015294c41e34b30
md5: 0365c9a6e4e41732bde159112b0aef4d
@@ -1904,6 +3222,21 @@ packages:
- pkg:pypi/mkdocs-get-deps?source=hash-mapping
size: 14733
timestamp: 1713710951974
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_1.conda
+ sha256: e0b501b96f7e393757fb2a61d042015966f6c5e9ac825925e43f9a6eafa907b6
+ md5: 84382acddb26c27c70f2de8d4c830830
+ depends:
+ - importlib-metadata >=4.3
+ - mergedeep >=1.3.4
+ - platformdirs >=2.2.0
+ - python >=3.9
+ - pyyaml >=5.1
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/mkdocs-get-deps?source=hash-mapping
+ size: 14757
+ timestamp: 1734353035244
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-git-revision-date-localized-plugin-1.2.9-pyhd8ed1ab_0.conda
sha256: a82d131b27c4cd9e2be71326b3c6a65bbadee23dcef80f8319831c852604ff94
md5: a331f7234c4e8f6136d12fe82f1ee7cd
@@ -1918,44 +3251,28 @@ packages:
- pkg:pypi/mkdocs-git-revision-date-localized-plugin?source=hash-mapping
size: 25456
timestamp: 1726153706839
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-glightbox-0.4.0-pyhd8ed1ab_0.conda
- sha256: 63a7e757ea96166793d2ae8a5c0c0759169b168b088ba89b53dd4305a433cf14
- md5: bd45af24c992ba48cbbe12f251d9215e
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-glightbox-0.5.2-pyhd8ed1ab_0.conda
+ sha256: e285099d3323fead1bfcf6a99aa55a6ddabea757c4836aea54e13278d17f323e
+ md5: 385fee9887fa6842cb37eff0cdcf9b3e
depends:
- - python >=3.7
+ - python >=3.10
+ - selectolax 0.3.29
license: MIT
license_family: MIT
purls:
- pkg:pypi/mkdocs-glightbox?source=hash-mapping
- size: 30948
- timestamp: 1715044596241
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-jupyter-0.25.1-pyhd8ed1ab_0.conda
- sha256: 026ee6d726e7fa6e375823903318b702eb5751eec30f45bed8e607b36fc66569
- md5: 1b225a74ce9e55ded554e1dac6da89fa
- depends:
- - ipykernel <7.0.0,>6.0.0
- - jupytext <2,>1.13.8
- - mkdocs <2,>=1.4.0
- - mkdocs-material >9.0.0
- - nbconvert <8,>=7.2.9
- - pygments >2.12.0
- - python >=3.9
- license: Apache-2.0
- license_family: APACHE
- purls:
- - pkg:pypi/mkdocs-jupyter?source=hash-mapping
- size: 1193680
- timestamp: 1731435601843
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-macros-plugin-1.3.7-pyhd8ed1ab_0.conda
- sha256: df27ad6a7ec7086e95d624443b19618c18c75f6b7f41835293b4ea406e112c50
- md5: 7ed9e7512c1e96a318afe0011e89e8f8
+ size: 31471
+ timestamp: 1761263149204
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-macros-plugin-1.5.0-pyhd8ed1ab_0.conda
+ sha256: 58858ecb69e17d96c70dea3ef472f4c764e7845e342134b239d716590383f194
+ md5: 33fe848c8741e64dc856a0db6035112b
depends:
- hjson-py
- jinja2
- mkdocs >=0.17
- packaging
- pathspec
- - python >=3.8
+ - python >=3.10
- python-dateutil
- pyyaml
- super-collections
@@ -1964,8 +3281,8 @@ packages:
license_family: MIT
purls:
- pkg:pypi/mkdocs-macros-plugin?source=hash-mapping
- size: 34810
- timestamp: 1729967508816
+ size: 38717
+ timestamp: 1763024056285
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-9.5.48-pyhd8ed1ab_0.conda
sha256: 28bca703b95a7c367c48c4f97fe64a98dd7ad7c1c8d235ce160f27d5901edd58
md5: ebe34a572984b7186fa46c32d5f33cca
@@ -1989,6 +3306,29 @@ packages:
- pkg:pypi/mkdocs-material?source=hash-mapping
size: 4888534
timestamp: 1733780218029
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-9.7.4-pyhcf101f3_0.conda
+ sha256: 1926320a4bca8d76bd45a23c64766b6aaa44752a77fa8d428e0169e2dd8c32a5
+ md5: c358e3c4737bd5665f648cf480e8ab59
+ depends:
+ - python >=3.10
+ - jinja2 >=3.1
+ - markdown >=3.2
+ - mkdocs >=1.6
+ - mkdocs-material-extensions >=1.3
+ - pygments >=2.16
+ - pymdown-extensions >=10.2
+ - babel >=2.10
+ - colorama >=0.4
+ - paginate >=0.5
+ - backrefs >=5.7.post1
+ - requests >=2.30
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/mkdocs-material?source=compressed-mapping
+ size: 4800782
+ timestamp: 1772724906755
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-extensions-1.3.1-pyhd8ed1ab_0.conda
sha256: e01a349f4816ba7513f8b230ca2c4f703a7ccc7f7d78535076f9215ca766ec78
md5: 6e7e399b351756b9d181c64a362bdcb5
@@ -2002,54 +3342,52 @@ packages:
- pkg:pypi/mkdocs-material-extensions?source=hash-mapping
size: 16011
timestamp: 1700695213251
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-table-reader-plugin-3.1.0-pyhd8ed1ab_0.conda
- sha256: 2d81889f195ed4ac50128a7485e7dfa65e692e71721913617796141e02ff02b4
- md5: 027d48d01eb97a1175c66d6ac8f24ff8
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-material-extensions-1.3.1-pyhd8ed1ab_1.conda
+ sha256: f62955d40926770ab65cc54f7db5fde6c073a3ba36a0787a7a5767017da50aa3
+ md5: de8af4000a4872e16fb784c649679c8e
depends:
- - mkdocs >=1.0
- - pandas >=1.1
- - python >=3.6
- - pyyaml >=5.4.1
- - tabulate >=0.8.7
+ - python >=3.9
+ constrains:
+ - mkdocs-material >=5.0.0
license: MIT
license_family: MIT
purls:
- - pkg:pypi/mkdocs-table-reader-plugin?source=hash-mapping
- size: 15076
- timestamp: 1724961317361
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-0.26.2-pyhd8ed1ab_0.conda
- sha256: 95622541e9a96ca539e379a17008a6224b05516ede3d544412f63a050f320fc2
- md5: dbb0e345753ce3932f097d57a7ba2344
+ - pkg:pypi/mkdocs-material-extensions?source=hash-mapping
+ size: 16122
+ timestamp: 1734641109286
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-1.0.3-pyhd8ed1ab_0.conda
+ sha256: 01aa08456b569680394caa883b5a02f54e247142b6897e537abee2998ba1de1e
+ md5: 97f68128ed142b9d918d44c785674932
depends:
- click >=7.0
- importlib-metadata >=4.6
- - jinja2 >=2.11.1
+ - jinja2 >=3.1
- markdown >=3.6
- markupsafe >=1.1
- - mkdocs >=1.4
- - mkdocs-autorefs >=1.2
- - platformdirs >=2.2.0
+ - mkdocs >=1.6
+ - mkdocs-autorefs >=1.4
- pymdown-extensions >=6.3
- - python >=3.9,<4.0
+ - python >=3.10,<4.0
- typing-extensions >=4.1
license: ISC
purls:
- pkg:pypi/mkdocstrings?source=hash-mapping
- size: 30546
- timestamp: 1728841500652
-- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-python-1.12.2-pyhff2d567_0.conda
- sha256: 25b01f86e5aca97eede0057b1bd7feb2b91719dab0930fe222f16ce7ad38c893
- md5: d10758f0e39897d7d2fa4b399370a3b1
- depends:
- - griffe >=0.49
- - mkdocs-autorefs >=1.2
- - mkdocstrings >=0.26
- - python >=3.9
+ size: 36266
+ timestamp: 1770555720575
+- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocstrings-python-2.0.2-pyh332efcf_0.conda
+ sha256: 40202810555ccdd350d37c13d9eeb48642c7d8b08575666d822e7af9516a870c
+ md5: e9549209e83a29bb7bcf6bbc5c6396f9
+ depends:
+ - griffe >=1.13
+ - mkdocs-autorefs >=1.4
+ - mkdocstrings >=0.30
+ - python >=3.10
+ - typing_extensions >=4.0
license: ISC
purls:
- pkg:pypi/mkdocstrings-python?source=hash-mapping
- size: 48611
- timestamp: 1729546255258
+ size: 57013
+ timestamp: 1770730332317
- conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_1.conda
sha256: ccb385f3a25efb47e9ea9870b0fa67b05c3b40c4c695e5f3946ab12e79e3096d
md5: 206f67a1eccc290e5679bb793c3eb17e
@@ -2061,11 +3399,33 @@ packages:
- pkg:pypi/more-itertools?source=hash-mapping
size: 57541
timestamp: 1733662695649
+- conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda
+ sha256: 449609f0d250607a300754474350a3b61faf45da183d3071e9720e453c765b8a
+ md5: 32f78e9d06e8593bc4bbf1338da06f5f
+ depends:
+ - python >=3.10
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/more-itertools?source=hash-mapping
+ size: 69210
+ timestamp: 1764487059562
- pypi: https://files.pythonhosted.org/packages/f1/54/65af8de681fa8255402c80eda2a501ba467921d5a7a028c9c22a2c2eedb5/msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
name: msgpack
version: 1.1.0
sha256: 17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/34/68/ba4f155f793a74c1483d4bdef136e1023f7bcba557f0db4ef3db3c665cf1/msgpack-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
+ name: msgpack
+ version: 1.1.2
+ sha256: 446abdd8b94b55c800ac34b102dffd2f6aa0ce643c55dfc017ad89347db3dbdb
+ requires_python: '>=3.9'
+- pypi: https://files.pythonhosted.org/packages/ad/bd/8b0d01c756203fbab65d265859749860682ccd2a59594609aeec3a144efa/msgpack-1.1.2-cp312-cp312-macosx_10_13_x86_64.whl
+ name: msgpack
+ version: 1.1.2
+ sha256: 70a0dff9d1f8da25179ffcf880e10cf1aad55fdb63cd59c9a49a1b82290062aa
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.13.0-py312h66e93f0_0.conda
sha256: fbd1a5ac0e0e0fb16ab65395fb9b6d86aa9fb1e32689df13ee45829294a7ec57
md5: 824a5a98260d4ee4d12fcad92d153c47
@@ -2083,6 +3443,43 @@ packages:
- pkg:pypi/mypy?source=hash-mapping
size: 18799862
timestamp: 1729644961295
+- conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.19.1-py312h80b0991_0.conda
+ sha256: b9f6bcdb906cc6876bd355c6b90ce8d64f1ad489b77873611daebf2d901682e4
+ md5: 4f96e01343365798cb2d28502477983d
+ depends:
+ - __osx >=10.13
+ - mypy_extensions >=1.0.0
+ - pathspec >=0.9.0
+ - psutil >=4.0
+ - python >=3.12,<3.13.0a0
+ - python-librt >=0.6.2
+ - python_abi 3.12.* *_cp312
+ - typing_extensions >=4.6.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/mypy?source=hash-mapping
+ size: 13694656
+ timestamp: 1765796080117
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.19.1-py312hefc2c51_0.conda
+ sha256: 6d3e7afb2c0d07c1cc18394749b33466103599024691ccd01a413b33e3ca7058
+ md5: 066e48f36dc3c70fa25b3228d781b57c
+ depends:
+ - __osx >=11.0
+ - mypy_extensions >=1.0.0
+ - pathspec >=0.9.0
+ - psutil >=4.0
+ - python >=3.12,<3.13.0a0
+ - python >=3.12,<3.13.0a0 *_cpython
+ - python-librt >=0.6.2
+ - python_abi 3.12.* *_cp312
+ - typing_extensions >=4.6.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/mypy?source=hash-mapping
+ size: 11025065
+ timestamp: 1765796035384
- conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_1.conda
sha256: 1895f47b7d68581a6facde5cb13ab8c2764c2e53a76bd746f8f98910dc4e08fe
md5: 29097e7ea634a45cc5386b95cac6568f
@@ -2094,6 +3491,17 @@ packages:
- pkg:pypi/mypy-extensions?source=hash-mapping
size: 10854
timestamp: 1733230986902
+- conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
+ sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1
+ md5: e9c622e0d00fa24a6292279af3ab6d06
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/mypy-extensions?source=hash-mapping
+ size: 11766
+ timestamp: 1745776666688
- pypi: https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl
name: natsort
version: 8.4.0
@@ -2102,88 +3510,6 @@ packages:
- fastnumbers>=2.0.0 ; extra == 'fast'
- pyicu>=1.0.0 ; extra == 'icu'
requires_python: '>=3.7'
-- conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.1-pyhd8ed1ab_0.conda
- sha256: 564e22c4048f2f00c7ee79417dea364f95cf069a1f2565dc26d5ece1fc3fd779
- md5: 3ee79082e59a28e1db11e2a9c3bcd85a
- depends:
- - jupyter_client >=6.1.12
- - jupyter_core >=4.12,!=5.0.*
- - nbformat >=5.1
- - python >=3.8
- - traitlets >=5.4
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/nbclient?source=hash-mapping
- size: 27878
- timestamp: 1732882434219
-- conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.16.4-hd8ed1ab_2.conda
- sha256: 034ae98c183f260307d3a9775fa75871dd6ab00b2bce52c6cd417dd8cc86fc4a
- md5: 9337002f0dd2fcb8e1064f8023c8e0c0
- depends:
- - nbconvert-core 7.16.4 pyhff2d567_2
- - nbconvert-pandoc 7.16.4 hd8ed1ab_2
- license: BSD-3-Clause
- license_family: BSD
- purls: []
- size: 8134
- timestamp: 1733405605338
-- conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.4-pyhff2d567_2.conda
- sha256: 03a1303ce135a8214b450e751d93c9048f55edb37f3f9f06c5e9d78ba3ef2a89
- md5: 0457fdf55c88e52e0e7b63691eafcc48
- depends:
- - beautifulsoup4
- - bleach
- - defusedxml
- - entrypoints >=0.2.2
- - jinja2 >=3.0
- - jupyter_core >=4.7
- - jupyterlab_pygments
- - markupsafe >=2.0
- - mistune >=2.0.3,<4
- - nbclient >=0.5.0
- - nbformat >=5.1
- - packaging
- - pandocfilters >=1.4.1
- - pygments >=2.4.1
- - python >=3.8
- - tinycss2
- - traitlets >=5.0
- constrains:
- - nbconvert =7.16.4=*_2
- - pandoc >=2.9.2,<4.0.0
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/nbconvert?source=hash-mapping
- size: 188505
- timestamp: 1733405603619
-- conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.16.4-hd8ed1ab_2.conda
- sha256: d72734dcda3ab02e76ac11d453e1d4fac7edbd37db86fe14b324b15fd84ce42c
- md5: 28701f71ce0b88b86783df822dd9d7b9
- depends:
- - nbconvert-core 7.16.4 pyhff2d567_2
- - pandoc
- license: BSD-3-Clause
- license_family: BSD
- purls: []
- size: 8171
- timestamp: 1733405604621
-- conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda
- sha256: 7a5bd30a2e7ddd7b85031a5e2e14f290898098dc85bea5b3a5bf147c25122838
- md5: bbe1963f1e47f594070ffe87cdf612ea
- depends:
- - jsonschema >=2.6
- - jupyter_core >=4.12,!=5.0.*
- - python >=3.9
- - python-fastjsonschema >=2.15
- - traitlets >=5.1
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/nbformat?source=hash-mapping
- size: 100945
- timestamp: 1733402844974
- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda
sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a
md5: 70caf8bb6cf39a0b6b7efc885f51c0fe
@@ -2194,17 +3520,24 @@ packages:
purls: []
size: 889086
timestamp: 1724658547447
-- conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda
- sha256: bb7b21d7fd0445ddc0631f64e66d91a179de4ba920b8381f29b9d006a42788c0
- md5: 598fd7d4d0de2455fb74f56063969a97
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ sha256: ea4a5d27ded18443749aefa49dc79f6356da8506d508b5296f60b8d51e0c4bd9
+ md5: ced34dd9929f491ca6dab6a2927aff25
depends:
- - python >=3.9
- license: BSD-2-Clause
- license_family: BSD
- purls:
- - pkg:pypi/nest-asyncio?source=hash-mapping
- size: 11543
- timestamp: 1733325673691
+ - __osx >=10.13
+ license: X11 AND BSD-3-Clause
+ purls: []
+ size: 822259
+ timestamp: 1738196181298
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
+ sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733
+ md5: 068d497125e4bf8a66bf707254fff5ae
+ depends:
+ - __osx >=11.0
+ license: X11 AND BSD-3-Clause
+ purls: []
+ size: 797030
+ timestamp: 1738196177597
- conda: https://conda.anaconda.org/conda-forge/linux-64/nh3-0.2.18-py312h12e396e_1.conda
sha256: b0a67992a9a09b3cd2ab7a31728d77301783b22cf6ad4153cf2e737ac839dcb7
md5: 7c34beca547867671e26e61106fad3bd
@@ -2221,6 +3554,40 @@ packages:
- pkg:pypi/nh3?source=hash-mapping
size: 658988
timestamp: 1725341823258
+- conda: https://conda.anaconda.org/conda-forge/osx-64/nh3-0.3.3-py310h332ba72_0.conda
+ noarch: python
+ sha256: f285d74abff26d36e932bf74a1f043e3dd84a1b378079ea072723cf6253bb81b
+ md5: 39c4e0d3100db6e94f8a3165c3a68d0c
+ depends:
+ - python
+ - __osx >=11.0
+ - _python_abi3_support 1.*
+ - cpython >=3.10
+ constrains:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/nh3?source=hash-mapping
+ size: 660287
+ timestamp: 1771078346220
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nh3-0.3.3-py310hf32026f_0.conda
+ noarch: python
+ sha256: 4b2af5ca6f5d578f2eceaf8025e8bd80d3f7e5f932fa5ff2f2b4a039aef8d784
+ md5: 2766e89e8aa0a79626a735d4afdeefcd
+ depends:
+ - python
+ - __osx >=11.0
+ - _python_abi3_support 1.*
+ - cpython >=3.10
+ constrains:
+ - __osx >=11.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/nh3?source=hash-mapping
+ size: 634553
+ timestamp: 1771078287944
- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.0-py312h7e784f5_0.conda
sha256: 288b65215e8b2872b41aa369d31c8d7a22e280e94d5704d4d92594126796a5aa
md5: c9e9a81299192e77428f40711a4fb00d
@@ -2241,6 +3608,45 @@ packages:
- pkg:pypi/numpy?source=hash-mapping
size: 8421926
timestamp: 1733688768634
+- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.2-py312hb34da66_1.conda
+ sha256: e9acaaafe6a0a698d4d759d860fc8a617724a3031ae1918f761e69297e543a3e
+ md5: c06b511affcf74a79b1852ae7b722035
+ depends:
+ - python
+ - __osx >=10.13
+ - libcxx >=19
+ - liblapack >=3.9.0,<4.0a0
+ - python_abi 3.12.* *_cp312
+ - libcblas >=3.9.0,<4.0a0
+ - libblas >=3.9.0,<4.0a0
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/numpy?source=hash-mapping
+ size: 7978246
+ timestamp: 1770098377108
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.2-py312he281c53_1.conda
+ sha256: 7fd2f1a33b244129dcc2163304d103a7062fc38f01fe13945c9ea95cef12b954
+ md5: 4afbe6ffff0335d25f3c5cc78b1350a4
+ depends:
+ - python
+ - libcxx >=19
+ - __osx >=11.0
+ - python 3.12.* *_cpython
+ - libblas >=3.9.0,<4.0a0
+ - python_abi 3.12.* *_cp312
+ - liblapack >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/numpy?source=hash-mapping
+ size: 6840961
+ timestamp: 1770098400654
- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda
sha256: 814b9dff1847b132c676ee6cc1a8cb2d427320779b93e1b6d76552275c128705
md5: 23cc74f77eb99315c0360ec3533147a9
@@ -2253,11 +3659,38 @@ packages:
purls: []
size: 2947466
timestamp: 1731377666602
+- conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.1-hb6871ef_1.conda
+ sha256: e02e5639b0e4d6d4fcf0f3b082642844fb5a37316f5b0a1126c6271347462e90
+ md5: 30bb8d08b99b9a7600d39efb3559fff0
+ depends:
+ - __osx >=10.13
+ - ca-certificates
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 2777136
+ timestamp: 1769557662405
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.1-hd24854e_1.conda
+ sha256: 361f5c5e60052abc12bdd1b50d7a1a43e6a6653aab99a2263bf2288d709dcf67
+ md5: f4f6ad63f98f64191c3e77c5f5f29d76
+ depends:
+ - __osx >=11.0
+ - ca-certificates
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 3104268
+ timestamp: 1769556384749
- pypi: https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl
name: packaging
version: '24.2'
sha256: 09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl
+ name: packaging
+ version: '26.0'
+ sha256: b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
+ requires_python: '>=3.8'
- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda
sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1
md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa
@@ -2269,6 +3702,18 @@ packages:
- pkg:pypi/packaging?source=hash-mapping
size: 60164
timestamp: 1733203368787
+- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
+ sha256: c1fc0f953048f743385d31c468b4a678b3ad20caffdeaa94bed85ba63049fd58
+ md5: b76541e68fea4d511b1ac46a28dcd2c6
+ depends:
+ - python >=3.8
+ - python
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/packaging?source=compressed-mapping
+ size: 72010
+ timestamp: 1769093650580
- conda: https://conda.anaconda.org/conda-forge/noarch/paginate-0.5.7-pyhd8ed1ab_0.conda
sha256: 3bb17531195c52cef472e807308f0133747d9c09995aa8066798498cd297f054
md5: 44127829a5c92252386963c8df5c192e
@@ -2280,56 +3725,17 @@ packages:
- pkg:pypi/paginate?source=hash-mapping
size: 18660
timestamp: 1724622434233
-- conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py312hf9745cd_1.conda
- sha256: ad275a83bfebfa8a8fee9b0569aaf6f513ada6a246b2f5d5b85903d8ca61887e
- md5: 8bce4f6caaf8c5448c7ac86d87e26b4b
- depends:
- - __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-dateutil >=2.8.1
- - python-tzdata >=2022a
- - python_abi 3.12.* *_cp312
- - pytz >=2020.1,<2024.2
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/pandas?source=hash-mapping
- size: 15436913
- timestamp: 1726879054912
-- conda: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.6-ha770c72_0.conda
- sha256: 9d4cfbb4cb844c50cecb0bc3c1ad7479908f422299bf79e667aa75129c4b0a21
- md5: 38ee82616a780cf22ec6355e386e2563
- license: GPL-2.0-or-later
- license_family: GPL
- purls: []
- size: 21236819
- timestamp: 1733818363981
-- conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2
- sha256: 2bb9ba9857f4774b85900c2562f7e711d08dd48e2add9bee4e1612fbee27e16f
- md5: 457c2c8c08e54905d6954e79cb5b5db9
- depends:
- - python !=3.0,!=3.1,!=3.2,!=3.3
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/pandocfilters?source=hash-mapping
- size: 11627
- timestamp: 1631603397334
-- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.4-pyhd8ed1ab_1.conda
- sha256: 17131120c10401a99205fc6fe436e7903c0fa092f1b3e80452927ab377239bcc
- md5: 5c092057b6badd30f75b06244ecd01c9
+- conda: https://conda.anaconda.org/conda-forge/noarch/paginate-0.5.7-pyhd8ed1ab_1.conda
+ sha256: f6fef1b43b0d3d92476e1870c08d7b9c229aebab9a0556b073a5e1641cf453bd
+ md5: c3f35453097faf911fd3f6023fc2ab24
depends:
- python >=3.9
license: MIT
license_family: MIT
purls:
- - pkg:pypi/parso?source=hash-mapping
- size: 75295
- timestamp: 1733271352153
+ - pkg:pypi/paginate?source=hash-mapping
+ size: 18865
+ timestamp: 1734618649164
- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
sha256: 9f64009cdf5b8e529995f18e03665b03f5d07c0b17445b8badef45bde76249ee
md5: 617f15191456cc6a13db418a275435e5
@@ -2341,6 +3747,17 @@ packages:
- pkg:pypi/pathspec?source=hash-mapping
size: 41075
timestamp: 1733233471940
+- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda
+ sha256: 29ea20d0faf20374fcd61c25f6d32fb8e9a2c786a7f1473a0c3ead359470fbe1
+ md5: 2908273ac396d2cd210a8127f5f1c0d6
+ depends:
+ - python >=3.10
+ license: MPL-2.0
+ license_family: MOZILLA
+ purls:
+ - pkg:pypi/pathspec?source=hash-mapping
+ size: 53739
+ timestamp: 1769677743677
- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda
sha256: 1087716b399dab91cc9511d6499036ccdc53eb29a288bebcb19cf465c51d7c0d
md5: df359c09c41cd186fffb93a2d87aa6f5
@@ -2354,28 +3771,6 @@ packages:
purls: []
size: 952308
timestamp: 1723488734144
-- conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda
- sha256: 202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a
- md5: d0d408b1f18883a944376da5cf8101ea
- depends:
- - ptyprocess >=0.5
- - python >=3.9
- license: ISC
- purls:
- - pkg:pypi/pexpect?source=hash-mapping
- size: 53561
- timestamp: 1733302019362
-- conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-pyhd8ed1ab_1004.conda
- sha256: e2ac3d66c367dada209fc6da43e645672364b9fd5f9d28b9f016e24b81af475b
- md5: 11a9d1d09a3615fc07c3faf79bc0b943
- depends:
- - python >=3.9
- license: MIT
- license_family: MIT
- purls:
- - pkg:pypi/pickleshare?source=hash-mapping
- size: 11748
- timestamp: 1733327448200
- conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda
sha256: 499313e72e20225f84c2e9690bbaf5b952c8d7e0bf34b728278538f766b81628
md5: 5dd546fe99b44fda83963d15f84263b7
@@ -2389,6 +3784,19 @@ packages:
- pkg:pypi/pip?source=hash-mapping
size: 1243168
timestamp: 1730203795600
+- conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda
+ sha256: da8c8888de10c1e4234ebcaa1550ac2b4b5408ac20f093fe641e4bc8c9c9f3eb
+ md5: 04e691b9fadd93a8a9fad87a81d4fd8f
+ depends:
+ - python >=3.9,<3.13.0a0
+ - setuptools
+ - wheel
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pip?source=hash-mapping
+ size: 1245116
+ timestamp: 1734466348103
- conda: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.10.0-pyhd8ed1ab_0.conda
sha256: 3e833f907039646e34d23203cd5c9cc487a451d955d8c8d6581e18a8ccef4cee
md5: 8c6a4a704308f5d91f3a974a72db1096
@@ -2400,16 +3808,6 @@ packages:
- pkg:pypi/pkginfo?source=hash-mapping
size: 28142
timestamp: 1709561205511
-- conda: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda
- sha256: adb2dde5b4f7da70ae81309cce6188ed3286ff280355cf1931b45d91164d2ad8
- md5: 5a5870a74432aa332f7d32180633ad05
- depends:
- - python >=3.9
- license: MIT AND PSF-2.0
- purls:
- - pkg:pypi/pkgutil-resolve-name?source=hash-mapping
- size: 10693
- timestamp: 1733344619659
- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda
sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27
md5: 577852c7e53901ddccc7e6a9959ddebe
@@ -2421,6 +3819,18 @@ packages:
- pkg:pypi/platformdirs?source=hash-mapping
size: 20448
timestamp: 1733232756001
+- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda
+ sha256: 7f263219cecf0ba6d74c751efa60c4676ce823157ca90aa43ebba5ac615ca0fa
+ md5: 4fefefb892ce9cc1539405bec2f1a6cd
+ depends:
+ - python >=3.10
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/platformdirs?source=compressed-mapping
+ size: 25643
+ timestamp: 1771233827084
- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_1.conda
sha256: 122433fc5318816b8c69283aaf267c73d87aa2d09ce39f64c9805c9a3b264819
md5: e9dcbce5f45f9ee500e728ae58b605b6
@@ -2432,10 +3842,22 @@ packages:
- pkg:pypi/pluggy?source=hash-mapping
size: 23595
timestamp: 1733222855563
-- pypi: .
+- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
+ sha256: e14aafa63efa0528ca99ba568eaf506eb55a0371d12e6250aaaa61718d2eb62e
+ md5: d7585b6550ad04c8c5e21097ada2888e
+ depends:
+ - python >=3.9
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pluggy?source=compressed-mapping
+ size: 25877
+ timestamp: 1764896838868
+- pypi: ./
name: povme
- version: 2.2.1
- sha256: 5973bf1bd0a250bd9154e17ceec48d868742792801d6a6690ae2c3289d2618b4
+ version: 2.2.2
+ sha256: b1b5c5a60e3f40c1f4686037b0f8a74d7c51f38f9ec155d9c687085827e97f37
requires_dist:
- numpy>=2.1.3,<3
- scipy>=1.14.1,<2
@@ -2445,7 +3867,6 @@ packages:
- ray>=2.38.0,<3
- pymolecule @ git+https://github.com/durrantlab/pymolecule
requires_python: '>=3.10,<3.13'
- editable: true
- conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.36-pyha770c72_0.conda
sha256: 6bd3626799c9467d7aa8ed5f95043e4cea614a1329580980ddcf40cfed3ee860
md5: 4d79ec192e0bfd530a254006d123b9a6
@@ -2460,20 +3881,20 @@ packages:
- pkg:pypi/prompt-toolkit?source=hash-mapping
size: 271530
timestamp: 1670414885944
-- conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.48-pyha770c72_1.conda
- sha256: 79fb7d1eeb490d4cc1b79f781bb59fe302ae38cf0a30907ecde75a7d399796cc
- md5: 368d4aa48358439e07a97ae237491785
+- conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda
+ sha256: 4817651a276016f3838957bfdf963386438c70761e9faec7749d411635979bae
+ md5: edb16f14d920fb3faf17f5ce582942d6
depends:
- - python >=3.9
+ - python >=3.10
- wcwidth
constrains:
- - prompt_toolkit 3.0.48
+ - prompt_toolkit 3.0.52
license: BSD-3-Clause
license_family: BSD
purls:
- pkg:pypi/prompt-toolkit?source=hash-mapping
- size: 269848
- timestamp: 1733302634979
+ size: 273927
+ timestamp: 1756321848365
- conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.36-hd8ed1ab_0.conda
sha256: 8685763bf7b3299be8b1e6fccad1282217733c8fcf1d682397323e2e08a00a68
md5: 482c15eb65dde2f899c4d68eaa938b1d
@@ -2484,11 +3905,26 @@ packages:
purls: []
size: 6372
timestamp: 1670414891579
+- conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda
+ sha256: e79922a360d7e620df978417dd033e66226e809961c3e659a193f978a75a9b0b
+ md5: 6d034d3a6093adbba7b24cb69c8c621e
+ depends:
+ - prompt-toolkit >=3.0.52,<3.0.53.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 7212
+ timestamp: 1756321849562
- pypi: https://files.pythonhosted.org/packages/04/52/c97c58a33b3d6c89a8138788576d372a90a6556f354799971c6b4d16d871/protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl
name: protobuf
version: 5.29.1
sha256: 8ee1461b3af56145aca2800e6a3e2f928108c749ba8feccc6f5dd0062c410c0d
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/13/c4/6322ab5c8f279c4c358bc14eb8aefc0550b97222a39f04eb3c1af7a830fa/protobuf-7.34.0-cp310-abi3-macosx_10_9_universal2.whl
+ name: protobuf
+ version: 7.34.0
+ sha256: 8e329966799f2c271d5e05e236459fe1cbfdb8755aaa3b0914fa60947ddea408
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-6.1.0-py312h66e93f0_0.conda
sha256: 0f309b435174e037d5cfe5ed26c1c5ad8152c68cfe61af17709ec31ec3d9f096
md5: 0524eb91d3d78d76d671c6e3cd7cee82
@@ -2503,27 +3939,33 @@ packages:
- pkg:pypi/psutil?source=hash-mapping
size: 488462
timestamp: 1729847159916
-- conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda
- sha256: a7713dfe30faf17508ec359e0bc7e0983f5d94682492469bd462cdaae9c64d83
- md5: 7d9daffbb8d8e0af0f769dbbcd173a54
+- conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.2-py312hf7082af_0.conda
+ sha256: 517c17b24349476535db4da7d1cd31538dadf2c77f9f7f7d8be6b7dc5dfbb636
+ md5: 1fd947fae149960538fc941b8f122bc1
depends:
- - python >=3.9
- license: ISC
+ - python
+ - __osx >=10.13
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause
+ license_family: BSD
purls:
- - pkg:pypi/ptyprocess?source=hash-mapping
- size: 19457
- timestamp: 1733302371990
-- conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda
- sha256: 71bd24600d14bb171a6321d523486f6a06f855e75e547fa0cb2a0953b02047f0
- md5: 3bfdfb8dbcdc4af1ae3f9a8eb3948f04
+ - pkg:pypi/psutil?source=hash-mapping
+ size: 236338
+ timestamp: 1769678402626
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py312hb3ab3e3_0.conda
+ sha256: 6d0e21c76436374635c074208cfeee62a94d3c37d0527ad67fd8a7615e546a05
+ md5: fd856899666759403b3c16dcba2f56ff
depends:
- - python >=3.9
- license: MIT
- license_family: MIT
+ - python
+ - __osx >=11.0
+ - python 3.12.* *_cpython
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause
+ license_family: BSD
purls:
- - pkg:pypi/pure-eval?source=hash-mapping
- size: 16668
- timestamp: 1733569518868
+ - pkg:pypi/psutil?source=hash-mapping
+ size: 239031
+ timestamp: 1769678393511
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6
md5: 12c566707c80111f9799308d9e265aef
@@ -2532,7 +3974,8 @@ packages:
- python
license: BSD-3-Clause
license_family: BSD
- purls: []
+ purls:
+ - pkg:pypi/pycparser?source=hash-mapping
size: 110100
timestamp: 1733195786147
- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.3-pyh3cfb1c2_0.conda
@@ -2550,6 +3993,23 @@ packages:
- pkg:pypi/pydantic?source=hash-mapping
size: 317037
timestamp: 1733316963547
+- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda
+ sha256: 868569d9505b7fe246c880c11e2c44924d7613a8cdcc1f6ef85d5375e892f13d
+ md5: c3946ed24acdb28db1b5d63321dbca7d
+ depends:
+ - typing-inspection >=0.4.2
+ - typing_extensions >=4.14.1
+ - python >=3.10
+ - typing-extensions >=4.6.1
+ - annotated-types >=0.6.0
+ - pydantic-core ==2.41.5
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pydantic?source=hash-mapping
+ size: 340482
+ timestamp: 1764434463101
- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.27.1-py312h12e396e_0.conda
sha256: c89741f4eff395f8de70975f42e1f20591f0e0870929d440af35b13399976b09
md5: 114030cb28527db2c385f07038e914c8
@@ -2567,6 +4027,53 @@ packages:
- pkg:pypi/pydantic-core?source=hash-mapping
size: 1635156
timestamp: 1732254225040
+- conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py312h8a6388b_1.conda
+ sha256: af6a81fdc058bcd22c87948df34744b33d622fbc12333cd4d2312b941b3205ec
+ md5: 8ab9943e70b341775f266f8fd1e2911b
+ depends:
+ - python
+ - typing-extensions >=4.6.0,!=4.7.0
+ - __osx >=10.13
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pydantic-core?source=hash-mapping
+ size: 1939222
+ timestamp: 1762989023771
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda
+ sha256: 048da0a49d644dba126905a1abcea0aee75efe88b5d621b9007b569dd753cfbc
+ md5: 88a76b4c912b6127d64298e3d8db980c
+ depends:
+ - python
+ - typing-extensions >=4.6.0,!=4.7.0
+ - python 3.12.* *_cpython
+ - __osx >=11.0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - __osx >=11.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pydantic-core?source=hash-mapping
+ size: 1769018
+ timestamp: 1762989029329
+- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.13.1-pyhd8ed1ab_0.conda
+ sha256: 343988d65c08477a87268d4fbeba59d0295514143965d2755ac4519b73155479
+ md5: cc0da73801948100ae97383b8da12993
+ depends:
+ - pydantic >=2.7.0
+ - python >=3.10
+ - python-dotenv >=0.21.0
+ - typing-inspection >=0.4.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pydantic-settings?source=compressed-mapping
+ size: 49319
+ timestamp: 1771527313149
- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.7.0-pyh3cfb1c2_0.conda
sha256: dd1ac7c8b6a189c8aa18f6c7df019d8f6df495300a259e3fbebdb542fc955c3b
md5: d9f19a7c4199249fa229891b573b6f9b
@@ -2590,20 +4097,31 @@ packages:
- pkg:pypi/pygments?source=hash-mapping
size: 876700
timestamp: 1733221731178
-- conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.12-pyhd8ed1ab_0.conda
- sha256: a56ba3e7070c0dbfe8c435a43d75ea0faa4ec61aa158f364f5826a283925cd25
- md5: e352dc92203f360748da72357da78ed8
+- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a
+ md5: 6b6ece66ebcae2d5f326c77ef2c5a066
+ depends:
+ - python >=3.9
+ license: BSD-2-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/pygments?source=hash-mapping
+ size: 889287
+ timestamp: 1750615908735
+- conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.21.1-pyhd8ed1ab_0.conda
+ sha256: 405e0a5e43ccf7c1cd084932e97291c3cf934036e8569e9cc0ccc91371aae93b
+ md5: d08476fd9134bf9a37edb06c4d65f441
depends:
- markdown >=3.6
- - python >=3.8
+ - python >=3.10
- pyyaml
license: MIT
license_family: MIT
purls:
- pkg:pypi/pymdown-extensions?source=hash-mapping
- size: 167047
- timestamp: 1730190145267
-- pypi: git+https://github.com/durrantlab/pymolecule.git?rev=423cf64f17c21881a1685402437bd69a81e79ccf#423cf64f17c21881a1685402437bd69a81e79ccf
+ size: 171234
+ timestamp: 1769322477196
+- pypi: git+https://github.com/durrantlab/pymolecule.git?rev=614a95a0b792f83fbee77e4c7eed7d5ce046dee1#614a95a0b792f83fbee77e4c7eed7d5ce046dee1
name: pymolecule
version: 0.0.1
requires_dist:
@@ -2657,6 +4175,27 @@ packages:
- pkg:pypi/pytest?source=hash-mapping
size: 259195
timestamp: 1733217599806
+- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhcf101f3_1.conda
+ sha256: 39f41a52eb6f927caf5cd42a2ff98a09bb850ce9758b432869374b6253826962
+ md5: da0c42269086f5170e2b296878ec13a6
+ depends:
+ - pygments >=2.7.2
+ - python >=3.10
+ - iniconfig >=1
+ - packaging >=20
+ - pluggy >=1.5,<2
+ - tomli >=1
+ - colorama >=0.4
+ - exceptiongroup >=1
+ - python
+ constrains:
+ - pytest-faulthandler >=2
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pytest?source=hash-mapping
+ size: 294852
+ timestamp: 1762354779909
- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.0.0-pyhd8ed1ab_1.conda
sha256: 09acac1974e10a639415be4be326dd21fa6d66ca51a01fb71532263fba6dccf6
md5: 79963c319d1be62c8fd3e34555816e01
@@ -2671,7 +4210,22 @@ packages:
- pkg:pypi/pytest-cov?source=hash-mapping
size: 26256
timestamp: 1733223113491
-- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
+- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-6.3.0-pyhd8ed1ab_0.conda
+ sha256: 5ba3e0955e473234fcc38cb4f0d893135710ec85ccb1dffdd73d9b213e99e8fb
+ md5: 50d191b852fccb4bf9ab7b59b030c99d
+ depends:
+ - coverage >=7.5
+ - pluggy >=1.2
+ - pytest >=6.2.5
+ - python >=3.10
+ - toml
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pytest-cov?source=hash-mapping
+ size: 28806
+ timestamp: 1757200686993
+- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
build_number: 1
sha256: 3f0e0518c992d8ccfe62b189125721309836fe48a010dc424240583e157f9ff0
md5: 7fd2fd79436d9b473812f14e86746844
@@ -2699,6 +4253,63 @@ packages:
purls: []
size: 31565686
timestamp: 1733410597922
+- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.13-ha9537fe_0_cpython.conda
+ sha256: fb592ceb1bc247d19247d5535083da4a79721553e29e1290f5d81c07d4f086b5
+ md5: ec05996c0d914a4e98ee3c7d789083f8
+ depends:
+ - __osx >=11.0
+ - bzip2 >=1.0.8,<2.0a0
+ - libexpat >=2.7.4,<3.0a0
+ - libffi >=3.5.2,<3.6.0a0
+ - liblzma >=5.8.2,<6.0a0
+ - libsqlite >=3.51.2,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - openssl >=3.5.5,<4.0a0
+ - readline >=8.3,<9.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ purls: []
+ size: 13672169
+ timestamp: 1772730464626
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.13-h8561d8f_0_cpython.conda
+ sha256: e658e647a4a15981573d6018928dec2c448b10c77c557c29872043ff23c0eb6a
+ md5: 8e7608172fa4d1b90de9a745c2fd2b81
+ depends:
+ - __osx >=11.0
+ - bzip2 >=1.0.8,<2.0a0
+ - libexpat >=2.7.4,<3.0a0
+ - libffi >=3.5.2,<3.6.0a0
+ - liblzma >=5.8.2,<6.0a0
+ - libsqlite >=3.51.2,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - openssl >=3.5.5,<4.0a0
+ - readline >=8.3,<9.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ purls: []
+ size: 12127424
+ timestamp: 1772730755512
+- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
+ sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664
+ md5: 5b8d21249ff20967101ffa321cab24e8
+ depends:
+ - python >=3.9
+ - six >=1.5
+ - python
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/python-dateutil?source=hash-mapping
+ size: 233310
+ timestamp: 1751104122689
- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda
sha256: a50052536f1ef8516ed11a844f9413661829aa083304dc624c5925298d078d79
md5: 5ba79d7c71f03c678c8ead841f347d6e
@@ -2722,28 +4333,54 @@ packages:
- pkg:pypi/python-dotenv?source=compressed-mapping
size: 24215
timestamp: 1733243277223
-- conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda
- sha256: 1b09a28093071c1874862422696429d0d35bd0b8420698003ac004746c5e82a2
- md5: 38e34d2d1d9dca4fb2b9a0a04f604e2c
+- conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.2-pyhcf101f3_0.conda
+ sha256: 74e417a768f59f02a242c25e7db0aa796627b5bc8c818863b57786072aeb85e5
+ md5: 130584ad9f3a513cdd71b1fdc1244e9c
depends:
- - python >=3.9
+ - python >=3.10
license: BSD-3-Clause
license_family: BSD
purls:
- - pkg:pypi/fastjsonschema?source=hash-mapping
- size: 226259
- timestamp: 1733236073335
-- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_1.conda
- sha256: 57c9a02ec25926fb48edca59b9ede107823e5d5c473b94a0e05cc0b9a193a642
- md5: c0def296b2f6d2dd7b030c2a7f66bb1f
+ - pkg:pypi/python-dotenv?source=compressed-mapping
+ size: 27848
+ timestamp: 1772388605021
+- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.13-hd8ed1ab_0.conda
+ sha256: 97327b9509ae3aae28d27217a5d7bd31aff0ab61a02041e9c6f98c11d8a53b29
+ md5: 32780d6794b8056b78602103a04e90ef
+ depends:
+ - cpython 3.12.13.*
+ - python_abi * *_cp312
+ license: Python-2.0
+ purls: []
+ size: 46449
+ timestamp: 1772728979370
+- conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.8.1-py312hba6025d_0.conda
+ sha256: 84c03816c897e293e07da488f434aa8458553da9e2658756882d4ceda68c2270
+ md5: 7496bfe5a3930dade1b3e40e6f9e0f31
+ depends:
+ - python
+ - __osx >=11.0
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/librt?source=hash-mapping
+ size: 69168
+ timestamp: 1771423096964
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.8.1-py312hb3ab3e3_0.conda
+ sha256: ab3baf903f255a50206de01ccbc4daec409563e409348022f805afcce5aee59a
+ md5: 54327820d1bf2d856220a51ac8d197ff
depends:
- - python >=3.9
- license: Apache-2.0
- license_family: APACHE
+ - python
+ - __osx >=11.0
+ - python 3.12.* *_cpython
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
purls:
- - pkg:pypi/tzdata?source=hash-mapping
- size: 142235
- timestamp: 1733235414217
+ - pkg:pypi/librt?source=hash-mapping
+ size: 72629
+ timestamp: 1771423101785
- conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda
build_number: 5
sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0
@@ -2755,6 +4392,17 @@ packages:
purls: []
size: 6238
timestamp: 1723823388266
+- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ build_number: 8
+ sha256: 80677180dd3c22deb7426ca89d6203f1c7f1f256f2d5a94dc210f6e758229809
+ md5: c3efd25ac4d74b1584d2f7a57195ddf1
+ constrains:
+ - python 3.12.* *_cpython
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6958
+ timestamp: 1752805918820
- conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda
sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41
md5: 3eeeeb9e4827ace8c0c1419c85d590ad
@@ -2781,6 +4429,35 @@ packages:
- pkg:pypi/pyyaml?source=hash-mapping
size: 206553
timestamp: 1725456256213
+- conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py312h51361c1_1.conda
+ sha256: d85e3be523b7173a194a66ae05a585ac1e14ccfbe81a9201b8047d6e45f2f7d9
+ md5: 9029301bf8a667cf57d6e88f03a6726b
+ depends:
+ - __osx >=10.13
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - yaml >=0.2.5,<0.3.0a0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pyyaml?source=compressed-mapping
+ size: 190417
+ timestamp: 1770223755226
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py312h04c11ed_1.conda
+ sha256: 737959262d03c9c305618f2d48c7f1691fb996f14ae420bfd05932635c99f873
+ md5: 95a5f0831b5e0b1075bbd80fcffc52ac
+ depends:
+ - __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=hash-mapping
+ size: 187278
+ timestamp: 1770223990452
- conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-env-tag-0.1-pyhd8ed1ab_0.tar.bz2
sha256: 900319483135730d9836855a807822f0500b1a239520749103e9ef9b7ba9f246
md5: 626ed9060ddeb681ddc42bcad89156ab
@@ -2793,23 +4470,18 @@ packages:
- pkg:pypi/pyyaml-env-tag?source=hash-mapping
size: 7473
timestamp: 1624389117412
-- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_3.conda
- sha256: bc303f9b11e04a515f79cd5ad3bfa0e84b9dfec76552626d6263b38789fe6678
- md5: 746ce19f0829ec3e19c93007b1a224d3
+- conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-env-tag-1.1-pyhd8ed1ab_0.conda
+ sha256: 69ab63bd45587406ae911811fc4d4c1bf972d643fa57a009de7c01ac978c4edd
+ md5: e8e53c4150a1bba3b160eacf9d53a51b
depends:
- - __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
+ - python >=3.9
+ - pyyaml
+ license: MIT
+ license_family: MIT
purls:
- - pkg:pypi/pyzmq?source=hash-mapping
- size: 378126
- timestamp: 1728642454632
+ - pkg:pypi/pyyaml-env-tag?source=hash-mapping
+ size: 11137
+ timestamp: 1747237061448
- conda: https://conda.anaconda.org/conda-forge/noarch/questionary-2.0.1-pyhd8ed1ab_1.conda
sha256: e1b22276ab3a33ed24b606e95099506269c09205278e4174823c51e5e4579eab
md5: 375950ebdf7945b4d3d57fad0cbe52e6
@@ -2822,6 +4494,18 @@ packages:
- pkg:pypi/questionary?source=hash-mapping
size: 29421
timestamp: 1694359940547
+- conda: https://conda.anaconda.org/conda-forge/noarch/questionary-2.1.1-pyhd8ed1ab_0.conda
+ sha256: 0604c6dff3af5f53e34fceb985395d08287137f220450108a795bcd1959caf14
+ md5: 34fa231b5c5927684b03bb296bb94ddc
+ depends:
+ - prompt_toolkit >=2.0,<4.0
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/questionary?source=hash-mapping
+ size: 31257
+ timestamp: 1757356458097
- pypi: https://files.pythonhosted.org/packages/82/ad/2eaf308c64e39704629863720c59b82e1ceed814fca319b8585deb92bb74/ray-2.40.0-cp312-cp312-manylinux2014_x86_64.whl
name: ray
version: 2.40.0
@@ -3024,6 +4708,521 @@ packages:
- fsspec ; extra == 'tune'
- pyarrow<18 ; platform_machine == 'x86_64' and sys_platform == 'darwin' and extra == 'tune'
requires_python: '>=3.9'
+- pypi: https://files.pythonhosted.org/packages/1a/4c/76f2c7c0946645fdd8d286a3e00e2c42130d676286de206be5d60d271218/ray-2.49.2-cp312-cp312-macosx_12_0_x86_64.whl
+ name: ray
+ version: 2.49.2
+ sha256: 6784e076e4418222ef8ee3b6a8bfeb867d8797803b25bcfcce3bf3bc5414bef1
+ requires_dist:
+ - click>=7.0
+ - filelock
+ - jsonschema
+ - msgpack>=1.0.0,<2.0.0
+ - packaging
+ - protobuf>=3.20.3
+ - pyyaml
+ - requests
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'cgraph'
+ - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'client'
+ - grpcio ; extra == 'client'
+ - numpy>=1.20 ; extra == 'data'
+ - pandas>=1.3 ; extra == 'data'
+ - pyarrow>=9.0.0 ; extra == 'data'
+ - fsspec ; extra == 'data'
+ - aiohttp>=3.7 ; extra == 'default'
+ - aiohttp-cors ; extra == 'default'
+ - colorful ; extra == 'default'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'default'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'default'
+ - requests ; extra == 'default'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'default'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'default'
+ - opencensus ; extra == 'default'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'default'
+ - opentelemetry-exporter-prometheus ; extra == 'default'
+ - opentelemetry-proto ; extra == 'default'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'default'
+ - prometheus-client>=0.7.1 ; extra == 'default'
+ - smart-open ; extra == 'default'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'default'
+ - memray ; sys_platform != 'win32' and extra == 'observability'
+ - prometheus-client>=0.7.1 ; extra == 'serve'
+ - fastapi ; extra == 'serve'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve'
+ - starlette ; extra == 'serve'
+ - watchfiles ; extra == 'serve'
+ - opentelemetry-exporter-prometheus ; extra == 'serve'
+ - uvicorn[standard] ; extra == 'serve'
+ - opencensus ; extra == 'serve'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'serve'
+ - aiohttp>=3.7 ; extra == 'serve'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'serve'
+ - requests ; extra == 'serve'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'serve'
+ - aiohttp-cors ; extra == 'serve'
+ - colorful ; extra == 'serve'
+ - opentelemetry-proto ; extra == 'serve'
+ - smart-open ; extra == 'serve'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'serve'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve'
+ - pandas ; extra == 'tune'
+ - tensorboardx>=1.9 ; extra == 'tune'
+ - requests ; extra == 'tune'
+ - pyarrow>=9.0.0 ; extra == 'tune'
+ - fsspec ; extra == 'tune'
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'adag'
+ - prometheus-client>=0.7.1 ; extra == 'serve-grpc'
+ - fastapi ; extra == 'serve-grpc'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-grpc'
+ - starlette ; extra == 'serve-grpc'
+ - watchfiles ; extra == 'serve-grpc'
+ - opentelemetry-exporter-prometheus ; extra == 'serve-grpc'
+ - uvicorn[standard] ; extra == 'serve-grpc'
+ - pyopenssl ; extra == 'serve-grpc'
+ - opencensus ; extra == 'serve-grpc'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'serve-grpc'
+ - aiohttp>=3.7 ; extra == 'serve-grpc'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-grpc'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'serve-grpc'
+ - requests ; extra == 'serve-grpc'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'serve-grpc'
+ - aiohttp-cors ; extra == 'serve-grpc'
+ - colorful ; extra == 'serve-grpc'
+ - opentelemetry-proto ; extra == 'serve-grpc'
+ - smart-open ; extra == 'serve-grpc'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'serve-grpc'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-grpc'
+ - prometheus-client>=0.7.1 ; extra == 'serve-async-inference'
+ - fastapi ; extra == 'serve-async-inference'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-async-inference'
+ - starlette ; extra == 'serve-async-inference'
+ - watchfiles ; extra == 'serve-async-inference'
+ - opentelemetry-exporter-prometheus ; extra == 'serve-async-inference'
+ - uvicorn[standard] ; extra == 'serve-async-inference'
+ - opencensus ; extra == 'serve-async-inference'
+ - celery ; extra == 'serve-async-inference'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'serve-async-inference'
+ - aiohttp>=3.7 ; extra == 'serve-async-inference'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-async-inference'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'serve-async-inference'
+ - requests ; extra == 'serve-async-inference'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'serve-async-inference'
+ - aiohttp-cors ; extra == 'serve-async-inference'
+ - colorful ; extra == 'serve-async-inference'
+ - opentelemetry-proto ; extra == 'serve-async-inference'
+ - smart-open ; extra == 'serve-async-inference'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'serve-async-inference'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-async-inference'
+ - ray-cpp==2.49.2 ; extra == 'cpp'
+ - pandas ; extra == 'rllib'
+ - tensorboardx>=1.9 ; extra == 'rllib'
+ - requests ; extra == 'rllib'
+ - pyarrow>=9.0.0 ; extra == 'rllib'
+ - fsspec ; extra == 'rllib'
+ - dm-tree ; extra == 'rllib'
+ - gymnasium==1.1.1 ; extra == 'rllib'
+ - lz4 ; extra == 'rllib'
+ - ormsgpack==1.7.0 ; extra == 'rllib'
+ - pyyaml ; extra == 'rllib'
+ - scipy ; extra == 'rllib'
+ - pandas ; extra == 'train'
+ - tensorboardx>=1.9 ; extra == 'train'
+ - requests ; extra == 'train'
+ - pyarrow>=9.0.0 ; extra == 'train'
+ - fsspec ; extra == 'train'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'train'
+ - numpy>=1.20 ; extra == 'air'
+ - prometheus-client>=0.7.1 ; extra == 'air'
+ - fastapi ; extra == 'air'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'air'
+ - starlette ; extra == 'air'
+ - watchfiles ; extra == 'air'
+ - opentelemetry-exporter-prometheus ; extra == 'air'
+ - uvicorn[standard] ; extra == 'air'
+ - opencensus ; extra == 'air'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'air'
+ - aiohttp>=3.7 ; extra == 'air'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'air'
+ - fsspec ; extra == 'air'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'air'
+ - requests ; extra == 'air'
+ - pandas>=1.3 ; extra == 'air'
+ - tensorboardx>=1.9 ; extra == 'air'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'air'
+ - aiohttp-cors ; extra == 'air'
+ - colorful ; extra == 'air'
+ - pandas ; extra == 'air'
+ - opentelemetry-proto ; extra == 'air'
+ - smart-open ; extra == 'air'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'air'
+ - pyarrow>=9.0.0 ; extra == 'air'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'air'
+ - numpy>=1.20 ; extra == 'all'
+ - prometheus-client>=0.7.1 ; extra == 'all'
+ - fastapi ; extra == 'all'
+ - gymnasium==1.1.1 ; extra == 'all'
+ - scipy ; extra == 'all'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all'
+ - memray ; sys_platform != 'win32' and extra == 'all'
+ - starlette ; extra == 'all'
+ - dm-tree ; extra == 'all'
+ - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all'
+ - watchfiles ; extra == 'all'
+ - opentelemetry-exporter-prometheus ; extra == 'all'
+ - uvicorn[standard] ; extra == 'all'
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all'
+ - opencensus ; extra == 'all'
+ - pyopenssl ; extra == 'all'
+ - celery ; extra == 'all'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'all'
+ - aiohttp>=3.7 ; extra == 'all'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all'
+ - fsspec ; extra == 'all'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'all'
+ - pandas>=1.3 ; extra == 'all'
+ - requests ; extra == 'all'
+ - tensorboardx>=1.9 ; extra == 'all'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'all'
+ - aiohttp-cors ; extra == 'all'
+ - pyyaml ; extra == 'all'
+ - colorful ; extra == 'all'
+ - pandas ; extra == 'all'
+ - grpcio ; extra == 'all'
+ - opentelemetry-proto ; extra == 'all'
+ - smart-open ; extra == 'all'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'all'
+ - ormsgpack==1.7.0 ; extra == 'all'
+ - lz4 ; extra == 'all'
+ - pyarrow>=9.0.0 ; extra == 'all'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all'
+ - prometheus-client>=0.7.1 ; extra == 'all-cpp'
+ - numpy>=1.20 ; extra == 'all-cpp'
+ - fastapi ; extra == 'all-cpp'
+ - gymnasium==1.1.1 ; extra == 'all-cpp'
+ - scipy ; extra == 'all-cpp'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all-cpp'
+ - memray ; sys_platform != 'win32' and extra == 'all-cpp'
+ - starlette ; extra == 'all-cpp'
+ - dm-tree ; extra == 'all-cpp'
+ - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all-cpp'
+ - watchfiles ; extra == 'all-cpp'
+ - opentelemetry-exporter-prometheus ; extra == 'all-cpp'
+ - uvicorn[standard] ; extra == 'all-cpp'
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all-cpp'
+ - opencensus ; extra == 'all-cpp'
+ - pyopenssl ; extra == 'all-cpp'
+ - celery ; extra == 'all-cpp'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'all-cpp'
+ - aiohttp>=3.7 ; extra == 'all-cpp'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all-cpp'
+ - fsspec ; extra == 'all-cpp'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'all-cpp'
+ - pandas>=1.3 ; extra == 'all-cpp'
+ - requests ; extra == 'all-cpp'
+ - tensorboardx>=1.9 ; extra == 'all-cpp'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'all-cpp'
+ - aiohttp-cors ; extra == 'all-cpp'
+ - pyyaml ; extra == 'all-cpp'
+ - colorful ; extra == 'all-cpp'
+ - pandas ; extra == 'all-cpp'
+ - ray-cpp==2.49.2 ; extra == 'all-cpp'
+ - grpcio ; extra == 'all-cpp'
+ - opentelemetry-proto ; extra == 'all-cpp'
+ - smart-open ; extra == 'all-cpp'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'all-cpp'
+ - ormsgpack==1.7.0 ; extra == 'all-cpp'
+ - lz4 ; extra == 'all-cpp'
+ - pyarrow>=9.0.0 ; extra == 'all-cpp'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all-cpp'
+ - numpy>=1.20 ; extra == 'llm'
+ - prometheus-client>=0.7.1 ; extra == 'llm'
+ - fastapi ; extra == 'llm'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'llm'
+ - jsonref>=1.1.0 ; extra == 'llm'
+ - starlette ; extra == 'llm'
+ - watchfiles ; extra == 'llm'
+ - opentelemetry-exporter-prometheus ; extra == 'llm'
+ - uvicorn[standard] ; extra == 'llm'
+ - opencensus ; extra == 'llm'
+ - grpcio>=1.32.0 ; python_full_version < '3.10' and extra == 'llm'
+ - aiohttp>=3.7 ; extra == 'llm'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'llm'
+ - fsspec ; extra == 'llm'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 ; extra == 'llm'
+ - pandas>=1.3 ; extra == 'llm'
+ - jsonschema ; extra == 'llm'
+ - requests ; extra == 'llm'
+ - grpcio>=1.42.0 ; python_full_version >= '3.10' and extra == 'llm'
+ - aiohttp-cors ; extra == 'llm'
+ - colorful ; extra == 'llm'
+ - typer ; extra == 'llm'
+ - opentelemetry-proto ; extra == 'llm'
+ - vllm>=0.10.0 ; extra == 'llm'
+ - async-timeout ; python_full_version < '3.11' and extra == 'llm'
+ - smart-open ; extra == 'llm'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'llm'
+ - hf-transfer ; extra == 'llm'
+ - pyarrow>=9.0.0 ; extra == 'llm'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'llm'
+ - ninja ; extra == 'llm'
+ requires_python: '>=3.9'
+- pypi: https://files.pythonhosted.org/packages/0e/16/45eefb51eb1767342a6dbf41af0b432279e422e56160705fcd1098a7ec53/ray-2.54.0-cp312-cp312-macosx_12_0_arm64.whl
+ name: ray
+ version: 2.54.0
+ sha256: cf5c33b4b13850ec24a5bd5f9d9e0a8161f8e586bfd297e52913d170dec447fe
+ requires_dist:
+ - click>=7.0
+ - filelock
+ - jsonschema
+ - msgpack>=1.0.0,<2.0.0
+ - packaging>=24.2
+ - protobuf>=3.20.3
+ - pyyaml
+ - requests
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'cgraph'
+ - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'client'
+ - grpcio ; extra == 'client'
+ - numpy>=1.20 ; extra == 'data'
+ - pandas>=1.3 ; extra == 'data'
+ - pyarrow>=9.0.0 ; extra == 'data'
+ - fsspec ; extra == 'data'
+ - aiohttp>=3.13.3 ; extra == 'default'
+ - aiohttp-cors ; extra == 'default'
+ - colorful ; extra == 'default'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'default'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'default'
+ - requests ; extra == 'default'
+ - grpcio>=1.42.0 ; extra == 'default'
+ - opencensus ; extra == 'default'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'default'
+ - opentelemetry-exporter-prometheus ; extra == 'default'
+ - opentelemetry-proto ; extra == 'default'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'default'
+ - prometheus-client>=0.7.1 ; extra == 'default'
+ - smart-open ; extra == 'default'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'default'
+ - memray ; sys_platform != 'win32' and extra == 'observability'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve'
+ - grpcio>=1.42.0 ; extra == 'serve'
+ - watchfiles ; extra == 'serve'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'serve'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve'
+ - colorful ; extra == 'serve'
+ - fastapi ; extra == 'serve'
+ - requests ; extra == 'serve'
+ - prometheus-client>=0.7.1 ; extra == 'serve'
+ - opencensus ; extra == 'serve'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve'
+ - opentelemetry-exporter-prometheus ; extra == 'serve'
+ - opentelemetry-proto ; extra == 'serve'
+ - aiohttp>=3.13.3 ; extra == 'serve'
+ - starlette ; extra == 'serve'
+ - smart-open ; extra == 'serve'
+ - uvicorn[standard] ; extra == 'serve'
+ - aiohttp-cors ; extra == 'serve'
+ - pandas ; extra == 'tune'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'tune'
+ - tensorboardx>=1.9 ; extra == 'tune'
+ - requests ; extra == 'tune'
+ - pyarrow>=9.0.0 ; extra == 'tune'
+ - fsspec ; extra == 'tune'
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'adag'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-grpc'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-grpc'
+ - grpcio>=1.42.0 ; extra == 'serve-grpc'
+ - watchfiles ; extra == 'serve-grpc'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'serve-grpc'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-grpc'
+ - colorful ; extra == 'serve-grpc'
+ - fastapi ; extra == 'serve-grpc'
+ - requests ; extra == 'serve-grpc'
+ - prometheus-client>=0.7.1 ; extra == 'serve-grpc'
+ - opencensus ; extra == 'serve-grpc'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-grpc'
+ - opentelemetry-exporter-prometheus ; extra == 'serve-grpc'
+ - opentelemetry-proto ; extra == 'serve-grpc'
+ - aiohttp>=3.13.3 ; extra == 'serve-grpc'
+ - starlette ; extra == 'serve-grpc'
+ - pyopenssl ; extra == 'serve-grpc'
+ - smart-open ; extra == 'serve-grpc'
+ - uvicorn[standard] ; extra == 'serve-grpc'
+ - aiohttp-cors ; extra == 'serve-grpc'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'serve-async-inference'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'serve-async-inference'
+ - grpcio>=1.42.0 ; extra == 'serve-async-inference'
+ - watchfiles ; extra == 'serve-async-inference'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'serve-async-inference'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'serve-async-inference'
+ - colorful ; extra == 'serve-async-inference'
+ - fastapi ; extra == 'serve-async-inference'
+ - requests ; extra == 'serve-async-inference'
+ - celery ; extra == 'serve-async-inference'
+ - prometheus-client>=0.7.1 ; extra == 'serve-async-inference'
+ - opencensus ; extra == 'serve-async-inference'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'serve-async-inference'
+ - opentelemetry-exporter-prometheus ; extra == 'serve-async-inference'
+ - opentelemetry-proto ; extra == 'serve-async-inference'
+ - aiohttp>=3.13.3 ; extra == 'serve-async-inference'
+ - starlette ; extra == 'serve-async-inference'
+ - smart-open ; extra == 'serve-async-inference'
+ - uvicorn[standard] ; extra == 'serve-async-inference'
+ - aiohttp-cors ; extra == 'serve-async-inference'
+ - ray-cpp==2.54.0 ; extra == 'cpp'
+ - pandas ; extra == 'rllib'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'rllib'
+ - tensorboardx>=1.9 ; extra == 'rllib'
+ - requests ; extra == 'rllib'
+ - pyarrow>=9.0.0 ; extra == 'rllib'
+ - fsspec ; extra == 'rllib'
+ - dm-tree ; extra == 'rllib'
+ - gymnasium==1.2.2 ; extra == 'rllib'
+ - lz4 ; extra == 'rllib'
+ - ormsgpack>=1.7.0 ; extra == 'rllib'
+ - pyyaml ; extra == 'rllib'
+ - scipy ; extra == 'rllib'
+ - pandas ; extra == 'train'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'train'
+ - tensorboardx>=1.9 ; extra == 'train'
+ - requests ; extra == 'train'
+ - pyarrow>=9.0.0 ; extra == 'train'
+ - fsspec ; extra == 'train'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'train'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'air'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'air'
+ - grpcio>=1.42.0 ; extra == 'air'
+ - watchfiles ; extra == 'air'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'air'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'air'
+ - colorful ; extra == 'air'
+ - fastapi ; extra == 'air'
+ - requests ; extra == 'air'
+ - prometheus-client>=0.7.1 ; extra == 'air'
+ - pandas ; extra == 'air'
+ - opencensus ; extra == 'air'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'air'
+ - opentelemetry-exporter-prometheus ; extra == 'air'
+ - pyarrow>=9.0.0 ; extra == 'air'
+ - fsspec ; extra == 'air'
+ - opentelemetry-proto ; extra == 'air'
+ - numpy>=1.20 ; extra == 'air'
+ - aiohttp>=3.13.3 ; extra == 'air'
+ - starlette ; extra == 'air'
+ - pandas>=1.3 ; extra == 'air'
+ - smart-open ; extra == 'air'
+ - uvicorn[standard] ; extra == 'air'
+ - aiohttp-cors ; extra == 'air'
+ - tensorboardx>=1.9 ; extra == 'air'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all'
+ - grpcio>=1.42.0 ; extra == 'all'
+ - watchfiles ; extra == 'all'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'all'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all'
+ - colorful ; extra == 'all'
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all'
+ - fastapi ; extra == 'all'
+ - requests ; extra == 'all'
+ - celery ; extra == 'all'
+ - prometheus-client>=0.7.1 ; extra == 'all'
+ - pandas ; extra == 'all'
+ - opencensus ; extra == 'all'
+ - dm-tree ; extra == 'all'
+ - lz4 ; extra == 'all'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all'
+ - opentelemetry-exporter-prometheus ; extra == 'all'
+ - ormsgpack>=1.7.0 ; extra == 'all'
+ - pyarrow>=9.0.0 ; extra == 'all'
+ - fsspec ; extra == 'all'
+ - gymnasium==1.2.2 ; extra == 'all'
+ - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all'
+ - opentelemetry-proto ; extra == 'all'
+ - numpy>=1.20 ; extra == 'all'
+ - aiohttp>=3.13.3 ; extra == 'all'
+ - starlette ; extra == 'all'
+ - pandas>=1.3 ; extra == 'all'
+ - pyyaml ; extra == 'all'
+ - pyopenssl ; extra == 'all'
+ - smart-open ; extra == 'all'
+ - aiohttp-cors ; extra == 'all'
+ - uvicorn[standard] ; extra == 'all'
+ - scipy ; extra == 'all'
+ - tensorboardx>=1.9 ; extra == 'all'
+ - memray ; sys_platform != 'win32' and extra == 'all'
+ - grpcio ; extra == 'all'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'all-cpp'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'all-cpp'
+ - grpcio>=1.42.0 ; extra == 'all-cpp'
+ - watchfiles ; extra == 'all-cpp'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'all-cpp'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'all-cpp'
+ - colorful ; extra == 'all-cpp'
+ - cupy-cuda12x ; sys_platform != 'darwin' and extra == 'all-cpp'
+ - fastapi ; extra == 'all-cpp'
+ - requests ; extra == 'all-cpp'
+ - celery ; extra == 'all-cpp'
+ - prometheus-client>=0.7.1 ; extra == 'all-cpp'
+ - pandas ; extra == 'all-cpp'
+ - opencensus ; extra == 'all-cpp'
+ - dm-tree ; extra == 'all-cpp'
+ - lz4 ; extra == 'all-cpp'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'all-cpp'
+ - opentelemetry-exporter-prometheus ; extra == 'all-cpp'
+ - ormsgpack>=1.7.0 ; extra == 'all-cpp'
+ - pyarrow>=9.0.0 ; extra == 'all-cpp'
+ - fsspec ; extra == 'all-cpp'
+ - gymnasium==1.2.2 ; extra == 'all-cpp'
+ - grpcio!=1.56.0 ; sys_platform == 'darwin' and extra == 'all-cpp'
+ - opentelemetry-proto ; extra == 'all-cpp'
+ - numpy>=1.20 ; extra == 'all-cpp'
+ - aiohttp>=3.13.3 ; extra == 'all-cpp'
+ - starlette ; extra == 'all-cpp'
+ - pandas>=1.3 ; extra == 'all-cpp'
+ - pyyaml ; extra == 'all-cpp'
+ - pyopenssl ; extra == 'all-cpp'
+ - smart-open ; extra == 'all-cpp'
+ - aiohttp-cors ; extra == 'all-cpp'
+ - uvicorn[standard] ; extra == 'all-cpp'
+ - scipy ; extra == 'all-cpp'
+ - tensorboardx>=1.9 ; extra == 'all-cpp'
+ - memray ; sys_platform != 'win32' and extra == 'all-cpp'
+ - ray-cpp==2.54.0 ; extra == 'all-cpp'
+ - grpcio ; extra == 'all-cpp'
+ - virtualenv>=20.0.24,!=20.21.1 ; extra == 'llm'
+ - py-spy>=0.2.0 ; python_full_version < '3.12' and extra == 'llm'
+ - grpcio>=1.42.0 ; extra == 'llm'
+ - watchfiles ; extra == 'llm'
+ - opentelemetry-sdk>=1.30.0 ; extra == 'llm'
+ - pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*,!=2.11.*,<3 ; extra == 'llm'
+ - colorful ; extra == 'llm'
+ - meson ; extra == 'llm'
+ - fastapi ; extra == 'llm'
+ - requests ; extra == 'llm'
+ - async-timeout ; python_full_version < '3.11' and extra == 'llm'
+ - prometheus-client>=0.7.1 ; extra == 'llm'
+ - hf-transfer ; extra == 'llm'
+ - pybind11 ; extra == 'llm'
+ - opencensus ; extra == 'llm'
+ - jsonref>=1.1.0 ; extra == 'llm'
+ - py-spy>=0.4.0 ; python_full_version >= '3.12' and extra == 'llm'
+ - opentelemetry-exporter-prometheus ; extra == 'llm'
+ - pyarrow>=9.0.0 ; extra == 'llm'
+ - fsspec ; extra == 'llm'
+ - opentelemetry-proto ; extra == 'llm'
+ - numpy>=1.20 ; extra == 'llm'
+ - jsonschema ; extra == 'llm'
+ - typer ; extra == 'llm'
+ - nixl>=0.6.1 ; extra == 'llm'
+ - aiohttp>=3.13.3 ; extra == 'llm'
+ - pandas>=1.3 ; extra == 'llm'
+ - starlette ; extra == 'llm'
+ - smart-open ; extra == 'llm'
+ - uvicorn[standard] ; extra == 'llm'
+ - ninja ; extra == 'llm'
+ - aiohttp-cors ; extra == 'llm'
+ - vllm[audio]>=0.15.0 ; extra == 'llm'
+ - transformers>=4.57.3 ; extra == 'llm'
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7
md5: 47d31b792659ce70f470b5c82fdfb7a4
@@ -3035,6 +5234,28 @@ packages:
purls: []
size: 281456
timestamp: 1679532220005
+- conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda
+ sha256: 4614af680aa0920e82b953fece85a03007e0719c3399f13d7de64176874b80d5
+ md5: eefd65452dfe7cce476a519bece46704
+ depends:
+ - __osx >=10.13
+ - ncurses >=6.5,<7.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 317819
+ timestamp: 1765813692798
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda
+ sha256: a77010528efb4b548ac2a4484eaf7e1c3907f2aec86123ed9c5212ae44502477
+ md5: f8381319127120ce51e081dce4865cf4
+ depends:
+ - __osx >=11.0
+ - ncurses >=6.5,<7.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 313930
+ timestamp: 1765813902568
- conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_0.conda
sha256: 0e6fdf0b30448ca92a0767e982182154d531391856296feda983053c41cdac6f
md5: 63260acf67cb6169bdf519405b96ee63
@@ -3050,6 +5271,21 @@ packages:
- pkg:pypi/readme-renderer?source=hash-mapping
size: 17186
timestamp: 1720528649611
+- conda: https://conda.anaconda.org/conda-forge/noarch/readme_renderer-44.0-pyhd8ed1ab_1.conda
+ sha256: 66f3adf6aaabf977cfcc22cb65607002b1de4a22bc9fac7be6bb774bc6f85a3a
+ md5: c58dd5d147492671866464405364c0f1
+ depends:
+ - cmarkgfm >=0.8.0
+ - docutils >=0.21.2
+ - nh3 >=0.2.14
+ - pygments >=2.5.1
+ - python >=3.9
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/readme-renderer?source=hash-mapping
+ size: 17481
+ timestamp: 1734339765256
- pypi: https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl
name: referencing
version: 0.35.1
@@ -3058,19 +5294,15 @@ packages:
- attrs>=22.2.0
- rpds-py>=0.7.0
requires_python: '>=3.8'
-- conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda
- sha256: f972eecb4dc8e06257af37642f92b0f2df04a7fe4c950f2e1045505e5e93985f
- md5: 8c9083612c1bfe6878715ed5732605f8
- depends:
- - attrs >=22.2.0
- - python >=3.9
- - rpds-py >=0.7.0
- license: MIT
- license_family: MIT
- purls:
- - pkg:pypi/referencing?source=hash-mapping
- size: 42201
- timestamp: 1733366868091
+- pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl
+ name: referencing
+ version: 0.37.0
+ sha256: 381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231
+ requires_dist:
+ - attrs>=22.2.0
+ - rpds-py>=0.7.0
+ - typing-extensions>=4.4.0 ; python_full_version < '3.13'
+ requires_python: '>=3.10'
- conda: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py312h66e93f0_0.conda
sha256: fcb5687d3ec5fff580b64b8fb649d9d65c999a91a5c3108a313ecdd2de99f06b
md5: 647770db979b43f9c9ca25dcfa7dc4e4
@@ -3097,6 +5329,18 @@ packages:
- pysocks>=1.5.6,!=1.5.7 ; extra == 'socks'
- chardet>=3.0.2,<6 ; extra == 'use-chardet-on-py3'
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl
+ name: requests
+ version: 2.32.5
+ sha256: 2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6
+ requires_dist:
+ - charset-normalizer>=2,<4
+ - idna>=2.5,<4
+ - urllib3>=1.21.1,<3
+ - certifi>=2017.4.17
+ - pysocks>=1.5.6,!=1.5.7 ; extra == 'socks'
+ - chardet>=3.0.2,<6 ; extra == 'use-chardet-on-py3'
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda
sha256: d701ca1136197aa121bbbe0e8c18db6b5c94acbd041c2b43c70e5ae104e1d8ad
md5: a9b9368f3701a417eac9edbcae7cb737
@@ -3114,6 +5358,24 @@ packages:
- pkg:pypi/requests?source=compressed-mapping
size: 58723
timestamp: 1733217126197
+- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda
+ sha256: 7813c38b79ae549504b2c57b3f33394cea4f2ad083f0994d2045c2e24cb538c5
+ md5: c65df89a0b2e321045a9e01d1337b182
+ depends:
+ - python >=3.10
+ - certifi >=2017.4.17
+ - charset-normalizer >=2,<4
+ - idna >=2.5,<4
+ - urllib3 >=1.21.1,<3
+ - python
+ constrains:
+ - chardet >=3.0.2,<6
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/requests?source=compressed-mapping
+ size: 63602
+ timestamp: 1766926974520
- conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda
sha256: c0b815e72bb3f08b67d60d5e02251bbb0164905b5f72942ff5b6d2a339640630
md5: 66de8645e324fda0ea6ef28c2f99a2ab
@@ -3151,6 +5413,21 @@ packages:
- pkg:pypi/rich?source=compressed-mapping
size: 185646
timestamp: 1733342347277
+- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.3-pyhcf101f3_0.conda
+ sha256: b06ce84d6a10c266811a7d3adbfa1c11f13393b91cc6f8a5b468277d90be9590
+ md5: 7a6289c50631d620652f5045a63eb573
+ depends:
+ - markdown-it-py >=2.2.0
+ - pygments >=2.13.0,<3.0.0
+ - python >=3.10
+ - typing_extensions >=4.0.0,<5.0.0
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/rich?source=compressed-mapping
+ size: 208472
+ timestamp: 1771572730357
- conda: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.8.3-pyhd8ed1ab_0.conda
sha256: e83ebdc82e5787cb2dacd4380e0ca7c1ce4e7f356a0be0ccbac2ebcff1032efa
md5: ad6cdc745c76535e7cc56aab865b1fc5
@@ -3164,17 +5441,49 @@ packages:
- pkg:pypi/rich-click?source=hash-mapping
size: 33837
timestamp: 1718026216838
+- conda: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.9.7-pyh8f84b5b_0.conda
+ sha256: aa3fcb167321bae51998de2e94d199109c9024f25a5a063cb1c28d8f1af33436
+ md5: 0c20a8ebcddb24a45da89d5e917e6cb9
+ depends:
+ - python >=3.10
+ - rich >=12
+ - click >=8
+ - typing-extensions >=4
+ - __unix
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/rich-click?source=hash-mapping
+ size: 64356
+ timestamp: 1769850479089
- pypi: https://files.pythonhosted.org/packages/82/a1/a45f3e30835b553379b3a56ea6c4eb622cf11e72008229af840e4596a8ea/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
name: rpds-py
version: 0.22.3
sha256: e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15
requires_python: '>=3.9'
-- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.22.3-py312h12e396e_0.conda
- sha256: e8662d21ca3c912ac8941725392b838a29458b106ef22d9489cdf0f8de145fad
- md5: bfb49da0cc9098597d527def04d66f8b
+- pypi: https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl
+ name: rpds-py
+ version: 0.30.0
+ sha256: a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad
+ requires_python: '>=3.10'
+- pypi: https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl
+ name: rpds-py
+ version: 0.30.0
+ sha256: 6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05
+ requires_python: '>=3.10'
+- pypi: https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ name: rpds-py
+ version: 0.30.0
+ sha256: 47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23
+ requires_python: '>=3.10'
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.7.4-py312h2156523_0.conda
+ sha256: 41424ae6a027f433d259aa384b29fa2fb8e366f5080e93179c1d228ba8e6bd83
+ md5: 025594b21ff040de6d98e6b1ef699185
depends:
- __glibc >=2.17,<3.0.a0
- libgcc >=13
+ - libstdcxx >=13
- python >=3.12,<3.13.0a0
- python_abi 3.12.* *_cp312
constrains:
@@ -3182,26 +5491,42 @@ packages:
license: MIT
license_family: MIT
purls:
- - pkg:pypi/rpds-py?source=hash-mapping
- size: 354410
- timestamp: 1733366814237
-- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.7.4-py312h2156523_0.conda
- sha256: 41424ae6a027f433d259aa384b29fa2fb8e366f5080e93179c1d228ba8e6bd83
- md5: 025594b21ff040de6d98e6b1ef699185
+ - pkg:pypi/ruff?source=hash-mapping
+ size: 7788530
+ timestamp: 1731708419964
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.7.4-py312h07459cc_0.conda
+ sha256: 49c4702be860ab71bb3f95b49f67c887c6baa06e03efe0c6a7e6d4e113890b7c
+ md5: eb613739f9e64b39efa883ee42afb4e5
depends:
- - __glibc >=2.17,<3.0.a0
- - libgcc >=13
- - libstdcxx >=13
+ - __osx >=10.13
+ - libcxx >=18
- python >=3.12,<3.13.0a0
- python_abi 3.12.* *_cp312
constrains:
- - __glibc >=2.17
+ - __osx >=10.13
license: MIT
license_family: MIT
purls:
- pkg:pypi/ruff?source=hash-mapping
- size: 7788530
- timestamp: 1731708419964
+ size: 7218063
+ timestamp: 1731708938871
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.7.4-py312h5d18b81_0.conda
+ sha256: fddde6d050fa51295541a14ae59dcd9b5f090d0cbc8159ee569d2996b8871e6d
+ md5: e461924d00bf42f3bb3ed3c731fb9a01
+ depends:
+ - __osx >=11.0
+ - libcxx >=18
+ - 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=hash-mapping
+ size: 6888167
+ timestamp: 1731709556409
- conda: https://conda.anaconda.org/conda-forge/linux-64/scalene-1.5.41-py312h7070661_0.conda
sha256: 5c8069fc7f19bf124cf706426c92e7c11f3ce609b275832dda17b792c7e70fbe
md5: 7fcd3f4ae7b8be9632acda161fcb3910
@@ -3222,6 +5547,47 @@ packages:
- pkg:pypi/scalene?source=hash-mapping
size: 576545
timestamp: 1714760304745
+- conda: https://conda.anaconda.org/conda-forge/osx-64/scalene-1.5.51-py312h69bf00f_1.conda
+ sha256: 65dc582f8a0c82c02faf6c30c2f387a775c96c2796c9f57e8fbb6dcc6ff92dc7
+ md5: 2a19c33b7d05bb964bd693d0b758df19
+ depends:
+ - __osx >=10.13
+ - cloudpickle >=2.2.1
+ - jinja2 >=3.0.3
+ - libcxx >=19
+ - numpy >=1.24.0,!=1.27
+ - psutil >=5.9.2
+ - pydantic >=2.6
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - rich >=10.7.0
+ - wheel >=0.36.1
+ license: MIT AND Apache-2.0
+ purls:
+ - pkg:pypi/scalene?source=hash-mapping
+ size: 857242
+ timestamp: 1762179609800
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scalene-1.5.51-py312h455b684_1.conda
+ sha256: c20c46a7c98c3b737aeceef9de8cb197d80bcbe293fa2921f201a99e916a9caa
+ md5: 6016cd9cdd6eedefb8a2d091863f7ed9
+ depends:
+ - __osx >=11.0
+ - cloudpickle >=2.2.1
+ - jinja2 >=3.0.3
+ - libcxx >=19
+ - numpy >=1.24.0,!=1.27
+ - psutil >=5.9.2
+ - pydantic >=2.6
+ - python >=3.12,<3.13.0a0
+ - python >=3.12,<3.13.0a0 *_cpython
+ - python_abi 3.12.* *_cp312
+ - rich >=10.7.0
+ - wheel >=0.36.1
+ license: MIT AND Apache-2.0
+ purls:
+ - pkg:pypi/scalene?source=hash-mapping
+ size: 892393
+ timestamp: 1762180081793
- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.14.1-py312h62794b6_2.conda
sha256: 6e4916d610dc15f9b504517bd6c1f3dbbae019a3c7abf0aeb55f310c452a4474
md5: 94688dd449f6c092e5f951780235aca1
@@ -3245,6 +5611,51 @@ packages:
- pkg:pypi/scipy?source=hash-mapping
size: 17444442
timestamp: 1733621582568
+- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.1-py312h6309490_0.conda
+ sha256: 81842a4b39f700e122c8ba729034c7fc7b3a6bfd8d3ca41fe64e2bc8b0d1a4f4
+ md5: 07c955303eea8d00535164eb5f63ee97
+ depends:
+ - __osx >=11.0
+ - libblas >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ - libcxx >=19
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ - liblapack >=3.9.0,<4.0a0
+ - numpy <2.7
+ - numpy >=1.23,<3
+ - numpy >=1.25.2
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/scipy?source=compressed-mapping
+ size: 15312767
+ timestamp: 1771881124085
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py312h0f234b1_0.conda
+ sha256: 7082a8c87ae32b6090681a1376e3335cf23c95608c68a3f96f3581c847f8b840
+ md5: fd035cd01bb171090a990ae4f4143090
+ depends:
+ - __osx >=11.0
+ - libblas >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ - libcxx >=19
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ - liblapack >=3.9.0,<4.0a0
+ - numpy <2.7
+ - numpy >=1.23,<3
+ - numpy >=1.25.2
+ - 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=compressed-mapping
+ size: 13966986
+ timestamp: 1771881089893
- conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda
sha256: c6d5d0bc7fb6cbfa3b8be8f2399a3c1308b3392a4e20bd1a0f29a828fda5ab20
md5: 4840da9db2808db946a0d979603c6de4
@@ -3260,6 +5671,44 @@ packages:
- pkg:pypi/secretstorage?source=hash-mapping
size: 31601
timestamp: 1725915741329
+- conda: https://conda.anaconda.org/conda-forge/linux-64/selectolax-0.3.29-py312h66e93f0_0.conda
+ sha256: 5644f81d26d1e20dd97542a49c98f79eecf4f3c064aeb04943fdba41cb681c36
+ md5: 53bd83e7a48572a68d781e8fbe4573bc
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: Apache-2.0 AND LGPL-2.1-only AND MIT
+ purls:
+ - pkg:pypi/selectolax?source=hash-mapping
+ size: 1574247
+ timestamp: 1746056064690
+- conda: https://conda.anaconda.org/conda-forge/osx-64/selectolax-0.3.29-py312h01d7ebd_0.conda
+ sha256: eaba3d73cb4bff5e93ace7947575a9ac9d06d0a1aef51b8fe7a20e00b5d98767
+ md5: 53a148f1f4707604920b192a1f47d724
+ depends:
+ - __osx >=10.13
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: Apache-2.0 AND LGPL-2.1-only AND MIT
+ purls:
+ - pkg:pypi/selectolax?source=hash-mapping
+ size: 1431014
+ timestamp: 1746056156889
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/selectolax-0.3.29-py312hea69d52_0.conda
+ sha256: 427781149a6274b6a7d0988f688b2646667ee24cbe782b8ef5adf59f3c15f177
+ md5: 4aa79c544cbcf608bf3b29e5224a421f
+ 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 AND LGPL-2.1-only AND MIT
+ purls:
+ - pkg:pypi/selectolax?source=hash-mapping
+ size: 1413006
+ timestamp: 1746056278237
- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_1.conda
sha256: abb12e1dd515b13660aacb5d0fd43835bc2186cab472df25b7716cd65e095111
md5: fc80f7995e396cbaeabd23cf46c413dc
@@ -3271,6 +5720,17 @@ packages:
- pkg:pypi/setuptools?source=hash-mapping
size: 774252
timestamp: 1732632769210
+- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda
+ sha256: 91d664ace7c22e787775069418daa9f232ee8bafdd0a6a080a5ed2395a6fa6b2
+ md5: 9bddfdbf4e061821a1a443f93223be61
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/setuptools?source=hash-mapping
+ size: 777736
+ timestamp: 1740654030775
- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda
sha256: 41db0180680cc67c3fa76544ffd48d6a5679d96f4b71d7498a759e94edc9a2db
md5: a451d576819089b0d672f18768be0f65
@@ -3282,99 +5742,63 @@ packages:
- pkg:pypi/six?source=hash-mapping
size: 16385
timestamp: 1733381032766
-- conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.0-pyhd8ed1ab_0.tar.bz2
- sha256: 23011cb3e064525bdb8787c75126a2e78d2344a72cd6773922006d1da1f2af16
- md5: 62f26a3d1387acee31322208f0cfa3e0
+- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
+ sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d
+ md5: 3339e3b65d58accf4ca4fb8748ab16b3
depends:
- - python >=3.5
- license: BSD-3-Clause
- license_family: BSD
- purls:
- - pkg:pypi/smmap?source=hash-mapping
- size: 22483
- timestamp: 1634310465482
-- conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda
- sha256: 54ae221033db8fbcd4998ccb07f3c3828b4d77e73b0c72b18c1d6a507059059c
- md5: 3f144b2c34f8cb5a9abd9ed23a39c561
- depends:
- - python >=3.8
+ - python >=3.9
+ - python
license: MIT
license_family: MIT
purls:
- - pkg:pypi/soupsieve?source=hash-mapping
- size: 36754
- timestamp: 1693929424267
-- conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda
- sha256: 570da295d421661af487f1595045760526964f41471021056e993e73089e9c41
- md5: b1b505328da7a6b246787df4b5a49fbc
+ - pkg:pypi/six?source=hash-mapping
+ size: 18455
+ timestamp: 1753199211006
+- conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda
+ sha256: eb92d0ad94b65af16c73071cc00cc0e10f2532be807beb52758aab2b06eb21e2
+ md5: 87f47a78808baf2fa1ea9c315a1e48f1
depends:
- - asttokens
- - executing
- - pure_eval
- python >=3.9
- license: MIT
- license_family: MIT
+ license: BSD-3-Clause
+ license_family: BSD
purls:
- - pkg:pypi/stack-data?source=hash-mapping
- size: 26988
- timestamp: 1733569565672
-- conda: https://conda.anaconda.org/conda-forge/noarch/super-collections-0.5.3-pyhd8ed1ab_0.conda
- sha256: ef433a056158a088ed25f12eb1e1386cfe1253cc7dec5d3a23482f4cc057bf3e
- md5: 5201b5981937167b2ba3d38916f7f7d4
+ - pkg:pypi/smmap?source=hash-mapping
+ size: 26051
+ timestamp: 1739781801801
+- conda: https://conda.anaconda.org/conda-forge/noarch/super-collections-0.6.2-pyhd8ed1ab_0.conda
+ sha256: cc8d62c5f2ea2fe894d422b1dc559eafa1bfb588c8e27bbb034c9e75b4a62ae8
+ md5: 2e813ca47d1e4223081a75d08d5ee173
depends:
- - python >=3.8
- - super_collections >=0.5.3,<0.5.4.0a0
+ - python >=3.10
+ - super_collections >=0.6.2,<0.6.3.0a0
license: MIT
license_family: MIT
purls: []
- size: 6276
- timestamp: 1728985843294
-- conda: https://conda.anaconda.org/conda-forge/noarch/super_collections-0.5.3-pyhd8ed1ab_0.conda
- sha256: a4b2fbdf92141a7ab3b39f1ab32a08d359594f664b733610f5fb1430f4b5df27
- md5: 5919642f54976cffce4676b574cc770e
+ size: 6927
+ timestamp: 1759321066325
+- conda: https://conda.anaconda.org/conda-forge/noarch/super_collections-0.6.2-pyhd8ed1ab_0.conda
+ sha256: da5b15f808dbc6c4d06f95a54b833e6a7faeb117d3a640f6513b855994a65177
+ md5: fc4839a94c8be99378a45bfcfbcced75
depends:
- hjson-py
- - python >=3.8
+ - python >=3.10
license: MIT
license_family: MIT
purls:
- pkg:pypi/super-collections?source=hash-mapping
- size: 13584
- timestamp: 1728985831941
-- conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda
- sha256: 090023bddd40d83468ef86573976af8c514f64119b2bd814ee63a838a542720a
- md5: 959484a66b4b76befcddc4fa97c95567
- depends:
- - python >=3.9
- license: MIT
- license_family: MIT
- purls:
- - pkg:pypi/tabulate?source=hash-mapping
- size: 37554
- timestamp: 1733589854804
-- conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-2.5.0-pyhd8ed1ab_1.conda
- sha256: 4a7e13776ebd78afcdba3985ea42317e4e0a20722d2c27ecaae3d9f8849e6516
- md5: 1ce02d60767af357e864ce61895268d2
+ size: 21464
+ timestamp: 1759321058217
+- conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_0.conda
+ sha256: 2107f959cd2a8a804d52e124434088e1a28c843942b62a7f8a3d84072861f0ef
+ md5: bc6228906129e420c74a5ebaf0d63936
depends:
- - python >=3.9
+ - python >=3.10
license: MIT
license_family: MIT
purls:
- pkg:pypi/termcolor?source=hash-mapping
- size: 12665
- timestamp: 1733754731291
-- conda: 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=hash-mapping
- size: 28285
- timestamp: 1729802975370
+ size: 13259
+ timestamp: 1767096412722
- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e
md5: d453b98d9c83e71da0741bb0ff4d76bc
@@ -3386,6 +5810,40 @@ packages:
purls: []
size: 3318875
timestamp: 1699202167581
+- conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda
+ sha256: 7f0d9c320288532873e2d8486c331ec6d87919c9028208d3f6ac91dc8f99a67b
+ md5: 6e6efb7463f8cef69dbcb4c2205bf60e
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: TCL
+ license_family: BSD
+ purls: []
+ size: 3282953
+ timestamp: 1769460532442
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda
+ sha256: 799cab4b6cde62f91f750149995d149bc9db525ec12595e8a1d91b9317f038b3
+ md5: a9d86bc62f39b94c4661716624eb21b0
+ depends:
+ - __osx >=11.0
+ - libzlib >=1.3.1,<2.0a0
+ license: TCL
+ license_family: BSD
+ purls: []
+ size: 3127137
+ timestamp: 1769460817696
+- conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhcf101f3_3.conda
+ sha256: fd30e43699cb22ab32ff3134d3acf12d6010b5bbaa63293c37076b50009b91f8
+ md5: d0fc809fa4c4d85e959ce4ab6e1de800
+ depends:
+ - python >=3.10
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/toml?source=hash-mapping
+ size: 24017
+ timestamp: 1764486833072
- conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda
sha256: 34f3a83384ac3ac30aefd1309e69498d8a4aa0bf2d1f21c645f79b180e378938
md5: b0dd904de08b7db706167240bf37b164
@@ -3408,6 +5866,18 @@ packages:
- pkg:pypi/tomli?source=hash-mapping
size: 19167
timestamp: 1733256819729
+- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
+ sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8
+ md5: 72e780e9aa2d0a3295f59b1874e3768b
+ depends:
+ - python >=3.10
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/tomli?source=compressed-mapping
+ size: 21453
+ timestamp: 1768146676791
- conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_1.conda
sha256: 986fae65f5568e95dbf858d08d77a0f9cca031345a98550f1d4b51d36d8811e2
md5: 1d9ab4fc875c52db83f9c9b40af4e2c8
@@ -3419,31 +5889,17 @@ packages:
- pkg:pypi/tomlkit?source=hash-mapping
size: 37372
timestamp: 1733230836889
-- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py312h66e93f0_0.conda
- sha256: 062a3a3a37fa8615ce57929ba7e982c76f5a5810bcebd435950f6d6c4147c310
- md5: e417822cb989e80a0d2b1b576fdd1657
- depends:
- - __glibc >=2.17,<3.0.a0
- - libgcc >=13
- - python >=3.12,<3.13.0a0
- - python_abi 3.12.* *_cp312
- license: Apache-2.0
- license_family: Apache
- purls:
- - pkg:pypi/tornado?source=compressed-mapping
- size: 840414
- timestamp: 1732616043734
-- conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda
- sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959
- md5: 019a7385be9af33791c989871317e1ed
+- conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda
+ sha256: b35082091c8efd084e51bc3a4a2d3b07897eff232aaf58cbc0f959b6291a6a93
+ md5: 385dca77a8b0ec6fa9b92cb62d09b43b
depends:
- - python >=3.9
- license: BSD-3-Clause
- license_family: BSD
+ - python >=3.10
+ license: MIT
+ license_family: MIT
purls:
- - pkg:pypi/traitlets?source=hash-mapping
- size: 110051
- timestamp: 1733367480074
+ - pkg:pypi/tomlkit?source=hash-mapping
+ size: 39224
+ timestamp: 1768476626454
- conda: https://conda.anaconda.org/conda-forge/noarch/twine-5.1.1-pyhd8ed1ab_0.conda
sha256: e54a95bbc254e1196ebb4cb65b5653292e5ff83f924215bbe4a28c437e04754d
md5: 5463141e576b9aaa0db7ed488e298241
@@ -3474,6 +5930,16 @@ packages:
- pkg:pypi/types-pyyaml?source=hash-mapping
size: 21297
timestamp: 1733260537257
+- conda: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20250915-pyhd8ed1ab_1.conda
+ sha256: ba565f80b5dc5d88f34587b391f21807efd54099516f11beae5cb29a7925fd3d
+ md5: 0fcb42ddc8e8ba6f906274108e6d891d
+ depends:
+ - python >=3.10
+ license: Apache-2.0 AND MIT
+ purls:
+ - pkg:pypi/types-pyyaml?source=hash-mapping
+ size: 22060
+ timestamp: 1762942278334
- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda
noarch: python
sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32
@@ -3485,6 +5951,28 @@ packages:
purls: []
size: 10075
timestamp: 1733188758872
+- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c
+ md5: edd329d7d3a4ab45dcf905899a7a6115
+ depends:
+ - typing_extensions ==4.15.0 pyhcf101f3_0
+ license: PSF-2.0
+ license_family: PSF
+ purls: []
+ size: 91383
+ timestamp: 1756220668932
+- conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda
+ sha256: 70db27de58a97aeb7ba7448366c9853f91b21137492e0b4430251a1870aa8ff4
+ md5: a0a4a3035667fc34f29bfbd5c190baa6
+ depends:
+ - python >=3.10
+ - typing_extensions >=4.12.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/typing-inspection?source=hash-mapping
+ size: 18923
+ timestamp: 1764158430324
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda
sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568
md5: d17f13df8b65464ca316cbc000a3cb64
@@ -3496,6 +5984,18 @@ packages:
- pkg:pypi/typing-extensions?source=compressed-mapping
size: 39637
timestamp: 1733188758212
+- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731
+ md5: 0caa1af407ecff61170c9437a808404d
+ depends:
+ - python >=3.10
+ - python
+ license: PSF-2.0
+ license_family: PSF
+ purls:
+ - pkg:pypi/typing-extensions?source=hash-mapping
+ size: 51692
+ timestamp: 1756220668932
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda
sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf
md5: 8ac3367aafb1cc0a068483c580af8015
@@ -3503,6 +6003,13 @@ packages:
purls: []
size: 122354
timestamp: 1728047496079
+- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
+ sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c
+ md5: ad659d0a2b3e47e38d829aa8cad2d610
+ license: LicenseRef-Public-Domain
+ purls: []
+ size: 119135
+ timestamp: 1767016325805
- pypi: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl
name: urllib3
version: 2.2.3
@@ -3514,6 +6021,17 @@ packages:
- pysocks>=1.5.6,!=1.5.7,<2.0 ; extra == 'socks'
- zstandard>=0.18.0 ; extra == 'zstd'
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl
+ name: urllib3
+ version: 2.6.3
+ sha256: bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4
+ requires_dist:
+ - brotli>=1.2.0 ; platform_python_implementation == 'CPython' and extra == 'brotli'
+ - brotlicffi>=1.2.0.0 ; platform_python_implementation != 'CPython' and extra == 'brotli'
+ - h2>=4,<5 ; extra == 'h2'
+ - pysocks>=1.5.6,!=1.5.7,<2.0 ; extra == 'socks'
+ - backports-zstd>=1.0.0 ; python_full_version < '3.14' and extra == 'zstd'
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_1.conda
sha256: 416e30a1c3262275f01a3e22e783118d9e9d2872a739a9ed860d06fa9c7593d5
md5: 4a2d8ef7c37b8808c5b9b750501fffce
@@ -3529,6 +6047,21 @@ packages:
- pkg:pypi/urllib3?source=hash-mapping
size: 98077
timestamp: 1733206968917
+- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda
+ sha256: af641ca7ab0c64525a96fd9ad3081b0f5bcf5d1cbb091afb3f6ed5a9eee6111a
+ md5: 9272daa869e03efe68833e3dc7a02130
+ depends:
+ - backports.zstd >=1.0.0
+ - brotli-python >=1.2.0
+ - h2 >=4,<5
+ - pysocks >=1.5.6,<2.0,!=1.5.7
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/urllib3?source=hash-mapping
+ size: 103172
+ timestamp: 1767817860341
- conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py312h7900ff3_0.conda
sha256: 2436c4736b8135801f6bfcd09c7283f2d700a66a90ebd14b666b996e33ef8c9a
md5: 687b37d1325f228429409465e811c0bc
@@ -3542,6 +6075,35 @@ packages:
- pkg:pypi/watchdog?source=hash-mapping
size: 140940
timestamp: 1730493008472
+- conda: https://conda.anaconda.org/conda-forge/osx-64/watchdog-6.0.0-py312hba6025d_3.conda
+ sha256: dc852510fc797797a475bf39c7e1b1a0d890c4bc10710d7d6781b2a6ef55c360
+ md5: 555736af86bab70bbf128cb933e74140
+ depends:
+ - python
+ - pyyaml >=3.10
+ - __osx >=11.0
+ - python_abi 3.12.* *_cp312
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/watchdog?source=compressed-mapping
+ size: 161620
+ timestamp: 1772608079095
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/watchdog-6.0.0-py312hb3ab3e3_3.conda
+ sha256: 67b64f00d88f954f40ec530d589ea6967354ffac841db9f9f169a2ccb9870632
+ md5: 2039281440a04616a27b9298f9aa6ca0
+ depends:
+ - python
+ - pyyaml >=3.10
+ - python 3.12.* *_cpython
+ - __osx >=11.0
+ - python_abi 3.12.* *_cp312
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/watchdog?source=compressed-mapping
+ size: 164910
+ timestamp: 1772608083776
- pypi: https://files.pythonhosted.org/packages/ab/df/4ee467ab39cc1de4b852c212c1ed3becfec2e486a51ac1ce0091f85f38d7/wcmatch-10.0-py3-none-any.whl
name: wcmatch
version: '10.0'
@@ -3549,6 +6111,13 @@ packages:
requires_dist:
- bracex>=2.1.1
requires_python: '>=3.8'
+- pypi: https://files.pythonhosted.org/packages/eb/d8/0d1d2e9d3fabcf5d6840362adcf05f8cf3cd06a73358140c3a97189238ae/wcmatch-10.1-py3-none-any.whl
+ name: wcmatch
+ version: '10.1'
+ sha256: 5848ace7dbb0476e5e55ab63c6bbd529745089343427caa5537f230cc01beb8a
+ requires_dist:
+ - bracex>=2.1.1
+ requires_python: '>=3.9'
- conda: https://conda.anaconda.org/conda-forge/noarch/wcmatch-10.0-pyhd8ed1ab_0.conda
sha256: 9883e1a7c65f91c3480b38137af5b1d88ee38150b1943c356d11f6b0cd374a8b
md5: b262b976f96f01ad6847b20dbea512af
@@ -3561,6 +6130,18 @@ packages:
- pkg:pypi/wcmatch?source=hash-mapping
size: 37788
timestamp: 1727447886965
+- conda: https://conda.anaconda.org/conda-forge/noarch/wcmatch-10.1-pyhd8ed1ab_0.conda
+ sha256: 49f073b34970355c5f70d789874c0f22205790e176192ba1e82de457a3fb9e96
+ md5: b045a877087e3bbdd36fe460e7f5cc55
+ depends:
+ - bracex >=2.1.1
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/wcmatch?source=hash-mapping
+ size: 38497
+ timestamp: 1750680074971
- conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_1.conda
sha256: f21e63e8f7346f9074fd00ca3b079bd3d2fa4d71f1f89d5b6934bf31446dc2a5
md5: b68980f2495d096e71c7fd9d7ccf63e6
@@ -3572,17 +6153,17 @@ packages:
- pkg:pypi/wcwidth?source=hash-mapping
size: 32581
timestamp: 1733231433877
-- conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda
- sha256: 19ff205e138bb056a46f9e3839935a2e60bd1cf01c8241a5e172a422fed4f9c6
- md5: 2841eb5bfc75ce15e9a0054b98dcd64d
+- conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.6.0-pyhd8ed1ab_0.conda
+ sha256: e298b508b2473c4227206800dfb14c39e4b14fd79d4636132e9e1e4244cdf4aa
+ md5: c3197f8c0d5b955c904616b716aca093
depends:
- - python >=3.9
- license: BSD-3-Clause
- license_family: BSD
+ - python >=3.10
+ license: MIT
+ license_family: MIT
purls:
- - pkg:pypi/webencodings?source=hash-mapping
- size: 15496
- timestamp: 1733236131358
+ - pkg:pypi/wcwidth?source=compressed-mapping
+ size: 71550
+ timestamp: 1770634638503
- conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda
sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce
md5: 75cb7132eb58d97896e173ef12ac9986
@@ -3594,6 +6175,18 @@ packages:
- pkg:pypi/wheel?source=compressed-mapping
size: 62931
timestamp: 1733130309598
+- conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.46.3-pyhd8ed1ab_0.conda
+ sha256: d6cf2f0ebd5e09120c28ecba450556ce553752652d91795442f0e70f837126ae
+ md5: bdbd7385b4a67025ac2dba4ef8cb6a8f
+ depends:
+ - packaging >=24.0
+ - python >=3.10
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/wheel?source=hash-mapping
+ size: 31858
+ timestamp: 1769139207397
- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2
sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535
md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae
@@ -3604,20 +6197,26 @@ packages:
purls: []
size: 89141
timestamp: 1641346969816
-- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda
- sha256: a4dc72c96848f764bb5a5176aa93dd1e9b9e52804137b99daeebba277b31ea10
- md5: 3947a35e916fcc6b9825449affbf4214
+- conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda
+ sha256: a335161bfa57b64e6794c3c354e7d49449b28b8d8a7c4ed02bf04c3f009953f9
+ md5: a645bb90997d3fc2aea0adf6517059bd
depends:
- - __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
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 79419
+ timestamp: 1753484072608
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda
+ sha256: b03433b13d89f5567e828ea9f1a7d5c5d697bf374c28a4168d71e9464f5dafac
+ md5: 78a0fe9e9c50d2c381e8ee47e3ea437d
+ depends:
+ - __osx >=11.0
+ license: MIT
+ license_family: MIT
purls: []
- size: 335400
- timestamp: 1731585026517
+ size: 83386
+ timestamp: 1753484079473
- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda
sha256: 567c04f124525c97a096b65769834b7acb047db24b15a56888a322bf3966c3e1
md5: 0c3cc595284c5e8f0f9900a9b228a332
@@ -3629,6 +6228,18 @@ packages:
- pkg:pypi/zipp?source=hash-mapping
size: 21809
timestamp: 1732827613585
+- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda
+ sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae
+ md5: 30cd29cb87d819caead4d55184c1d115
+ depends:
+ - python >=3.10
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/zipp?source=compressed-mapping
+ size: 24194
+ timestamp: 1764460141901
- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda
sha256: b97015e146437283f2213ff0e95abdc8e2480150634d81fbae6b96ee09f5e50b
md5: 8b7069e9792ee4e5b4919a7a306d2e67
@@ -3658,3 +6269,25 @@ packages:
purls: []
size: 554846
timestamp: 1714722996770
+- conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h3eecb57_6.conda
+ sha256: 47101a4055a70a4876ffc87b750ab2287b67eca793f21c8224be5e1ee6394d3f
+ md5: 727109b184d680772e3122f40136d5ca
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 528148
+ timestamp: 1764777156963
+- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda
+ sha256: 9485ba49e8f47d2b597dd399e88f4802e100851b27c21d7525625b0b4025a5d9
+ md5: ab136e4c34e97f34fb621d2592a393d8
+ depends:
+ - __osx >=11.0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 433413
+ timestamp: 1764777166076
diff --git a/pixi.toml b/pixi.toml
index b2e6193..95ec87f 100644
--- a/pixi.toml
+++ b/pixi.toml
@@ -1,15 +1,15 @@
-[project]
+[workspace]
authors = ["Jacob Durrant
"]
channels = ["conda-forge"]
description = "Detect and characterize pockets from molecular simulations"
name = "povme"
-platforms = ["linux-64"]
-version = "2.2.1"
+platforms = ["linux-64", "osx-64", "osx-arm64"]
+version = "2.2.2"
readme = "README.md"
[pypi-dependencies]
povme = { path = ".", editable = true }
-pymolecule = { git = "https://github.com/durrantlab/pymolecule.git", rev = "423cf64f17c21881a1685402437bd69a81e79ccf" }
+pymolecule = { git = "https://github.com/durrantlab/pymolecule.git", rev = "614a95a0b792f83fbee77e4c7eed7d5ce046dee1" }
ray = { version = ">=2.37.0,<3"}
[system-requirements]
@@ -46,10 +46,7 @@ types-pyyaml = ">=6.0.12.20240917,<7"
scalene = ">=1.5.41,<2"
[feature.dev.tasks]
-mdlint = { cmd = ["markdownlint-cli2", '"**/*.{md,markdown}"', "--fix", "--config", ".markdownlint.yaml", "||", "true"] }
-isort = { cmd = ["isort", "--settings-path", ".isort.cfg", "./povme", "./tests", "||", "true"] }
-black = { cmd = ["black", "--config", ".black.toml", "./povme", "./tests", "||", "true"] }
-format = { depends-on = ["mdlint", "isort", "black"] }
+format = { cmd = ["ruff", "check", "--select", "I", "--fix", "&&", "ruff", "format", "--config", ".ruff.toml", "./"] }
tests = { cmd = [
"PYTHONPATH=.",
"pytest",
@@ -82,21 +79,19 @@ publish = { cmd = ["twine", "upload", "dist/*"] }
build = ">=1.2.2.post1,<2"
[feature.docs.dependencies]
+# Will need to migrate to https://zensical.org/ once it matures.
mkdocs = ">=1.6.1,<2"
mkdocs-material = ">=9.5.44,<10"
-pymdown-extensions = ">=10.12,<11"
-mkdocs-table-reader-plugin = ">=3.1.0,<4"
-mkdocstrings = ">=0.26.2,<0.27"
-mkdocstrings-python = ">=1.12.2,<2"
-mkdocs-gen-files = ">=0.4.0,<0.5"
-mkdocs-macros-plugin = ">=1.3.7,<2"
-mkdocs-jupyter = ">=0.25.0,<0.26"
-mkdocs-glightbox = ">=0.4.0,<0.5"
+pymdown-extensions = ">=10.21.1,<11"
+mkdocstrings = ">=1.0.3,<2"
+mkdocstrings-python = ">=2.0.2,<3"
+mkdocs-macros-plugin = ">=1.5.0,<2"
+mkdocs-glightbox = ">=0.5.2,<0.6"
mkdocs-git-revision-date-localized-plugin = ">=1.2.9,<2"
-mkdocs-autorefs = ">=1.2.0,<2"
+mkdocs-autorefs = ">=1.4.4,<2"
+mkdocs-gen-files = ">=0.6.0,<0.7"
[feature.docs.pypi-dependencies]
-material-plausible-plugin = ">=0.2.0,<0.3"
mkdocs-awesome-pages-plugin = ">=2.9.3,<3"
[feature.docs.tasks]
diff --git a/povme/config/io.py b/povme/config/io.py
index 7ea9500..90ae65c 100644
--- a/povme/config/io.py
+++ b/povme/config/io.py
@@ -1,6 +1,5 @@
-from typing import Any
-
from abc import ABC
+from typing import Any
import yaml
@@ -15,7 +14,7 @@ def update(self, data: dict[str, Any]) -> None:
data: Key-value mapping to update attributes with.
"""
for key, value in data.items():
- if key in self.model_fields: # type: ignore
+ if key in self.__class__.model_fields: # type: ignore
setattr(self, key, value)
def from_yaml(self, yaml_paths: str | list[str]) -> None:
diff --git a/povme/parallel.py b/povme/parallel.py
index 16e9284..b1fdf64 100644
--- a/povme/parallel.py
+++ b/povme/parallel.py
@@ -36,16 +36,18 @@ def process_item(self, item):
```python
items_to_process = [1, 2, 3, 4, 5]
+
def save_results(results, **kwargs):
# Implement saving logic, e.g., write to a file or database
print("Saving results:", results)
+
manager.submit_tasks(
items=items_to_process,
chunk_size=2,
save_func=save_results,
- save_kwargs={'destination': 'output.txt'},
- save_interval=2
+ save_kwargs={"destination": "output.txt"},
+ save_interval=2,
)
```
@@ -69,10 +71,9 @@ def save_results(results, **kwargs):
"""
-from typing import Any, Generator
-
from abc import ABC, abstractmethod
from collections.abc import Callable
+from typing import Any, Generator
import ray
from loguru import logger
diff --git a/povme/pocket/detect.py b/povme/pocket/detect.py
index 8f96776..82058c6 100644
--- a/povme/pocket/detect.py
+++ b/povme/pocket/detect.py
@@ -1,10 +1,24 @@
+"""Automatic pocket detection from a static protein structure.
+
+This module provides the [`PocketDetector`][pocket.detect.PocketDetector] class, which implements the
+pocket-identification pipeline:
+
+1. Load a PDB structure and strip hydrogen atoms.
+2. Compute the convex hull of alpha carbon positions.
+3. Fill the hull with a coarse grid of equidistant points, progressively
+ refining the resolution.
+4. Remove grid points that clash with protein atoms.
+5. Filter isolated points that lack sufficient neighbors.
+6. Partition the remaining points into distinct pockets.
+7. Cluster each pocket with k-means and output encompassing spheres.
+"""
+
import os
import numpy as np
from loguru import logger
from pymolecule import Molecule
from scipy.cluster.vq import ClusterError, kmeans2
-from scipy.spatial.distance import cdist
from povme.config import PocketDetectConfig
from povme.io import openfile, write_pdbs
@@ -26,7 +40,7 @@ def __init__(
"""
if config is None:
config = PocketDetectConfig()
- self.config = PocketDetectConfig()
+ self.config = config
def run(self, path_pdb: str, output_prefix: str = "") -> None:
config = self.config
@@ -37,20 +51,20 @@ def run(self, path_pdb: str, output_prefix: str = "") -> None:
output_dirname = os.path.dirname(output_prefix)
os.makedirs(output_dirname, exist_ok=True)
- # Step 1: Load in the protein
+ # Load in the protein
logger.info("Loading the PDB file " + path_pdb + "...")
molecule = Molecule()
molecule.io.load_pdb_into(path_pdb)
- # Step 2: Get rid of hydrogen atoms. They just slow stuff down.
+ # Get rid of hydrogen atoms. They just slow stuff down.
print("Removing hydrogen atoms...")
sel = molecule.selections.select_atoms({"element_stripped": b"H"})
sel = molecule.selections.invert_selection(sel)
molecule = molecule.selections.get_molecule_from_selection(sel)
- # Step 3: Calculate the convex hull of the protein alpha carbons.
+ # Calculate the convex hull of the protein alpha carbons.
print("Calculating the convex hull of the PDB file...")
# Get a version of the protein with just the alpha carbons. In my
@@ -63,7 +77,7 @@ def run(self, path_pdb: str, output_prefix: str = "") -> None:
molecule_alpha_carbons.information.get_coordinates()
)
- # Step 4. Get a box of equispaced points that surround the protein,
+ # Get a box of equispaced points that surround the protein,
# snapped to reso. I'm putting a whole bunch of other functions in this
# class as well to manipulate the points of this box.
@@ -80,7 +94,7 @@ def run(self, path_pdb: str, output_prefix: str = "") -> None:
config.pocket_detection_resolution * 4,
)
- # Step 5. Remove points outside the convex hull. Gradually fill in
+ # Remove points outside the convex hull. Gradually fill in
# protein-occupying region with denser point fields. Faster this way, I
# think.
logger.info("Removing points that fall outside the protein's convex hull...")
@@ -102,7 +116,7 @@ def run(self, path_pdb: str, output_prefix: str = "") -> None:
molecule.information.get_coordinates(), config.clashing_cutoff, config
)
- # Step 7. Now surround each of these points with higher density points
+ # Now surround each of these points with higher density points
# that in the same regions. This is for getting a more detailed view of
# the identified pockets.
if config.pocket_measuring_resolution != config.pocket_detection_resolution:
@@ -127,7 +141,7 @@ def run(self, path_pdb: str, output_prefix: str = "") -> None:
molecule.information.get_coordinates(), config.clashing_cutoff, config
)
- # Step 8. Now start doing a repeated pass filter (keep repeating until no
+ # Now start doing a repeated pass filter (keep repeating until no
# change). Don't know if this is a high pass or low pass filter. I've
# heard these terms, though, and they sound cool.
logger.info(
@@ -139,11 +153,11 @@ def run(self, path_pdb: str, output_prefix: str = "") -> None:
config.pocket_measuring_resolution, config.n_neighbors
)
- # Step 9. Separate out the pockets so they can be considered in isolation.
+ # Separate out the pockets so they can be considered in isolation.
logger.info("Partitioning the remaining points by pocket...")
all_pockets = box_pts.separate_out_pockets()
- # Step 10. Get povme spheres that encompass each pocket, write pockets to
+ # Get povme spheres that encompass each pocket, write pockets to
# separate pdb files
logger.info("Saving the points of each pocket...")
let_ids = [
@@ -213,8 +227,9 @@ def run(self, path_pdb: str, output_prefix: str = "") -> None:
cluster_pts = pts[indexes_for_this_cluster]
cluster_center = np.mean(cluster_pts, axis=0)
try:
- cluster_radius = np.max(
- cdist(np.array([cluster_center]), cluster_pts)
+ diffs = cluster_pts - cluster_center
+ cluster_radius = float(
+ np.max(np.sqrt(np.einsum("ij,ij->i", diffs, diffs)))
)
f.write(
"REMARK CHAIN "
diff --git a/povme/pocket/volume.py b/povme/pocket/volume.py
index ef182cf..07035ee 100644
--- a/povme/pocket/volume.py
+++ b/povme/pocket/volume.py
@@ -1,14 +1,25 @@
-from typing import Any, Generator
+"""Pocket volume calculation for single structures and MD trajectories.
+
+This module provides the [`PocketVolume`][pocket.volume.PocketVolume] class, which orchestrates
+the end-to-end POVME volume-measurement workflow:
+
+1. Generate (or load) the pocket-encompassing point field from
+ user-defined inclusion/exclusion regions.
+2. Distribute per-frame volume calculations across workers using
+ [`RayManager`][parallel.RayManager].
+3. Collect results and optionally write trajectory PDBs and volumetric
+ density maps.
+"""
import os
import sys
import time
from io import StringIO
+from typing import Any, Generator
import numpy as np
from loguru import logger
from pymolecule import Molecule
-from scipy.spatial.distance import cdist
from povme.config import PocketVolumeConfig
from povme.io import dx_freq, gzopenfile, numpy_to_pdb, openfile, write_to_file
@@ -19,28 +30,79 @@
def get_unique_rows(a):
- """Identifies unique points (rows) in an array of points.
+ """Return the unique rows of a 2-D array.
- Arguments:
- a: A nx3 numpy.array representing 3D points.
+ Each row is treated as an opaque byte string so that
+ [`numpy.unique`](https://numpy.org/doc/stable/reference/generated/numpy.unique.html)
+ can identify duplicates without floating-point
+ tolerance issues (the input is assumed to be snapped to a grid).
- Returns:
- A nx2 numpy.array containing the 3D points that are unique.
+ Args:
+ a: An array of shape `(n, d)` (typically `d = 3`).
+ Returns:
+ An array of shape `(m, d)` (`m <= n`) containing only the
+ unique rows, in sorted order.
"""
-
a[a == -0.0] = 0.0
b = np.ascontiguousarray(a).view(np.dtype((np.void, a.dtype.itemsize * a.shape[1])))
return np.unique(b).view(a.dtype).reshape(-1, a.shape[1]) # unique_a
+def remove_exclusion_points(
+ pts: np.ndarray,
+ pts_exclusion: np.ndarray,
+) -> np.ndarray:
+ """Remove inclusion points that coincide with exclusion points.
+
+ Both point sets are assumed to lie on the same regular grid (i.e., their
+ coordinates are exact multiples of the grid spacing after snapping).
+ Instead of computing a full pairwise distance matrix with
+ [`cdist`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.cdist.html),
+ this function performs a set-difference using NumPy's structured-array view trick.
+
+ 1. Each `(x, y, z)` row is reinterpreted as a single opaque
+ [`np.void`](https://numpy.org/doc/stable/reference/arrays.scalars.html) element.
+ 2. [`numpy.isin`](https://numpy.org/doc/stable/reference/generated/numpy.isin.html)
+ performs a hash-based membership test.
+
+ Args:
+ pts: An `(N, 3)` array of inclusion grid points.
+ pts_exclusion: An `(M, 3)` array of exclusion grid points.
+
+ Returns:
+ An `(K, 3)` array (`K <= N`) containing only those rows of
+ `pts` that do not appear in *pts_exclusion*.
+ """
+
+ def _to_void(a: np.ndarray) -> np.ndarray:
+ """View each row of a 2-D array as a single void element."""
+ a = np.ascontiguousarray(a)
+ return a.view(np.dtype((np.void, a.dtype.itemsize * a.shape[1])))
+
+ pts_void = _to_void(pts)
+ exc_void = _to_void(pts_exclusion)
+ mask = ~np.isin(pts_void, exc_void).ravel()
+ return pts[mask]
+
+
def collect_pdb_frames_in_chunks(
filename: str, chunk_size: int
) -> Generator[list[tuple[int, str]], None, None]:
- """
- Read a multi-frame PDB and yield frames in chunks.
+ """Read a multi-frame PDB and yield frames in chunks.
- Each yielded chunk is a list of (frame_index, pdb_frame_string).
+ Frames are delimited by lines starting with `END`. Frames are
+ accumulated into chunks of `chunk_size` before being yielded, reducing
+ the overhead of task submission when using parallel workers.
+
+ Args:
+ filename: Path to the multi-frame PDB file.
+ chunk_size: Maximum number of frames per yielded chunk.
+
+ Yields:
+ Lists of `(frame_index, pdb_frame_string)` tuples. The
+ `frame_index` is 1-based. The final yielded chunk may contain
+ fewer than *chunk_size* frames.
"""
frame_buffer: list[str] = []
frame_index = 0
@@ -73,7 +135,6 @@ def collect_pdb_frames_in_chunks(
class TaskComputeVolumeFromPDBLines(RayTaskGeneral):
-
def process_item(self, item: tuple[Any, ...]) -> tuple[Any, ...]:
frame_index, pdb_string, config, pts, regions_contig, output_prefix = item
@@ -115,9 +176,23 @@ def __init__(
self.config = config
def gen_points(self, config):
+ """Generate the pocket-encompassing point field.
+
+ Constructs a regular grid of 3D points by unioning all
+ inclusion-region grids and then subtracting all exclusion-region
+ grids.
+
+ Args:
+ config: The volume-calculation configuration, which specifies
+ inclusion/exclusion spheres and boxes and the grid spacing.
+
+ Returns:
+ An `(K, 3)` array of unique grid points that lie inside at
+ least one inclusion region and outside all exclusion regions.
+ """
logger.info("Generating the pocket-encompassing point field")
- # get all the points of the inclusion regions
+ # Collect inclusion points
regions_include = collect_regions(
config.points_inclusion_sphere, config.points_inclusion_box
)
@@ -126,7 +201,7 @@ def gen_points(self, config):
pts = np.vstack((pts, Included.get_points(config.grid_spacing)))
pts = get_unique_rows(pts)
- # get all the points of the exclusion regions
+ # Collect exclusion points and subtract them
regions_exclude = collect_regions(
config.points_exclusion_sphere, config.points_exclusion_box
)
@@ -138,12 +213,7 @@ def gen_points(self, config):
)
pts_exclusion = get_unique_rows(pts_exclusion)
- # remove the exclusion points from the inclusion points I
- # think there ought to be a set-based way of doing this, but
- # I'm going to go for the pairwise comparison. consider
- # rewriting later
- index_to_remove = np.nonzero(cdist(pts, pts_exclusion) < 1e-7)[0]
- pts = np.delete(pts, index_to_remove, axis=0)
+ pts = remove_exclusion_points(pts, pts_exclusion)
return pts
@@ -174,7 +244,6 @@ def write_points(pts, output_prefix, config):
)
def write_points_contig(self, regions_contig, output_prefix, config):
-
# get all the contiguous points
contig_pts = regions_contig[0].get_points(config.grid_spacing)
for Contig in regions_contig[1:]:
diff --git a/povme/points/gridmesh.py b/povme/points/gridmesh.py
index 1816dc2..33c379f 100644
--- a/povme/points/gridmesh.py
+++ b/povme/points/gridmesh.py
@@ -1,9 +1,25 @@
+"""Grid mesh construction and manipulation for pocket detection.
+
+This module provides the [`GridMesh`][points.gridmesh.GridMesh] class, which represents a box of
+equidistant 3D points used during POVME's pocket-detection phase. The class
+supports:
+
+- Generating a regular grid that encompasses a protein's bounding box.
+- Removing points outside a convex hull.
+- Removing points that clash with protein atoms.
+- Filtering isolated points that lack sufficient neighbors.
+- Expanding the grid to higher resolution around surviving points.
+- Separating surviving points into distinct pockets.
+"""
+
+import math
from typing import Any
import numpy as np
import numpy.typing as npt
from loguru import logger
-from scipy import spatial
+from scipy.ndimage import label as ndimage_label
+from scipy.spatial import KDTree
from povme.config import PocketVolumeConfig
from povme.io import write_pdbs
@@ -28,49 +44,42 @@ def process_item(
"""
try:
hull, some_points = item
- new_pts = [pt for pt in some_points if hull.inside_hull(pt)]
- return np.array(new_pts)
- except Exception as e:
- logger.exception(f"Error in Removing Points Outside Hull: {e}")
- return np.array([]) # Return empty array on error
+ if len(some_points) == 0:
+ return np.array([]).reshape(0, 3)
+ # Process all points against each triangle simultaneously.
+ inside = np.ones(len(some_points), dtype=bool)
+ epsilon = 1.0e-5
-class TaskGetClosePoints(RayTaskGeneral):
- """A class to identify box points that are near other, user-specified points."""
+ for triangle in hull.hull:
+ # Only test points still considered "inside"
+ candidate_idx = np.where(inside)[0]
+ if len(candidate_idx) == 0:
+ break
- def process_item(
- self, item: tuple[spatial.KDTree, float, npt.NDArray[np.float64]]
- ) -> npt.NDArray[np.float64]:
- """Identifies indices of box points close to other points.
+ candidate_pts = some_points[candidate_idx]
- Args:
- item: A tuple containing:
- - box_of_pts_distance_tree: KDTree of box points.
- - dist_cutoff: The cutoff distance.
- - other_points: Numpy array of other points.
+ # Vector from triangle vertex 0 to each candidate point
+ rel_points = candidate_pts - triangle[0] # (K, 3)
- Returns:
- A numpy array of unique indices of box points that are within dist_cutoff.
- """
- try:
- box_of_pts_distance_tree, dist_cutoff, other_points = item
+ # Triangle edge vectors
+ vec1 = triangle[1] - triangle[0] # (3,)
+ vec2 = triangle[2] - triangle[1] # (3,)
- # Create KDTree for other_points
- other_points_distance_tree = spatial.KDTree(other_points)
+ # Outward-facing normal of this triangle face
+ cross = np.cross(vec1, vec2) # (3,)
- # Find all box points within dist_cutoff of any other point
- sparce_distance_matrix = other_points_distance_tree.sparse_distance_matrix(
- box_of_pts_distance_tree, dist_cutoff
- )
+ # Dot product: positive means the point is on the
+ # "outside" of this face
+ dots = rel_points @ cross # (K,)
- # Extract unique indices of box points that are close to other points
- indices_of_box_pts_close_to_molecule_points = np.unique(
- sparce_distance_matrix.tocsr().indices
- )
+ # Mark points outside this face as outside the hull
+ outside_mask = dots > epsilon
+ inside[candidate_idx[outside_mask]] = False
- return indices_of_box_pts_close_to_molecule_points
+ return some_points[inside]
except Exception as e:
- logger.exception(f"Error in Getting Close Points: {e}")
+ logger.exception(f"Error in Removing Points Outside Hull: {e}")
return np.array([]) # Return empty array on error
@@ -96,7 +105,7 @@ def __init__(self, box: npt.NDArray[np.float64], res: float) -> None:
max_y = self.__snap_float(box[1][1], res) + 1.1 * res
max_z = self.__snap_float(box[1][2], res) + 1.1 * res
- x, y, z = np.mgrid[min_x:max_x:res, min_y:max_y:res, min_z:max_z:res] # type: ignore
+ x, y, z = np.mgrid[min_x:max_x:res, min_y:max_y:res, min_z:max_z:res]
self.points = np.array(list(zip(x.ravel(), y.ravel(), z.ravel())))
def __snap_float(
@@ -123,7 +132,6 @@ def remove_points_outside_convex_hull(self, hull, config):
hull: The convex hull.
config: Configuration object containing `n_cores`.
"""
-
# Prepare input as list of tuples: (hull, some_points)
chunks = [(hull, t) for t in np.array_split(self.points, config.n_cores)]
@@ -158,49 +166,33 @@ def remove_all_points_close_to_other_points(
dist_cutoff: float,
config: PocketVolumeConfig,
) -> None:
- """Removes all points in this box that come within the points specified
- in a numpy array
+ """Remove grid points that are within a cutoff of protein atoms.
Args:
- other_points: A numpy array containing the other points.
- dist_cutoff: A float, the cutoff distance to use in determining
- whether or not box points will be removed.
- config: Configuration object containing `n_cores`.
+ other_points: An `(m, 3)` array of protein-atom coordinates.
+ dist_cutoff: Grid points closer than this distance to any
+ atom are removed.
+ config: Configuration object (`n_cores`, `use_ray`).
"""
+ if len(self.points) == 0 or len(other_points) == 0:
+ return
- # note, in newer versions of scipy use cKDTree
- box_of_pts_distance_tree = spatial.KDTree(self.points)
+ # Build a single KDTree on the grid points
+ grid_tree = KDTree(self.points)
- # Prepare input as list of tuples: (box_of_pts_distance_tree, dist_cutoff, t)
- chunks = [
- (box_of_pts_distance_tree, dist_cutoff, t)
- for t in np.array_split(other_points, config.n_cores)
- ]
+ # For each atom, find all grid points within dist_cutoff.
+ # query_ball_point on the atom array is efficient: one bulk call.
+ atom_tree = KDTree(other_points)
+ # pairs[i] is a list of grid-point indices close to atom i
+ close_pairs = atom_tree.query_ball_tree(grid_tree, r=dist_cutoff)
- # Initialize RayManager with the appropriate task class
- ray_manager = RayManager(
- task_class=TaskGetClosePoints,
- n_cores=config.n_cores,
- use_ray=config.use_ray,
- )
- ray_manager.submit_tasks(items=chunks)
- processed_chunks = ray_manager.get_results()
+ # Collect all unique grid-point indices that are too close
+ close_set = set()
+ for idx_list in close_pairs:
+ close_set.update(idx_list)
- # Each element in processed_chunks is either a numpy array of indices or an error tuple
- valid_indices = []
- for result in processed_chunks:
- if isinstance(result, tuple) and result[0] == "error":
- logger.error(f"Error getting close points: {result[1]}")
- else:
- valid_indices.append(result)
-
- if valid_indices:
- indices_of_box_pts_close_to_molecule_points = np.unique(
- np.hstack(valid_indices)
- )
- self.points = np.delete(
- self.points, indices_of_box_pts_close_to_molecule_points, axis=0
- ) # remove the ones that are too close to molecule atoms
+ if close_set:
+ self.points = np.delete(self.points, sorted(close_set), axis=0)
def to_pdb(self, let="X"):
"""Converts the points in this box into a PDB representation.
@@ -212,41 +204,43 @@ def to_pdb(self, let="X"):
A PDB-formatted string.
"""
-
return self.write_pdbs.numpy_to_pdb(self.points, let)
def expand_around_existing_points(self, num_pts, reso):
"""Add points to the current box that surround existing points,
essentially increasing the resolution of the box.
+ For each surviving grid point, new points are placed at all
+ integer multiples of `reso` within a cube of half-width
+ `num_pts x reso` centred on the original point. Duplicates are removed.
+
Args:
num_pts: An int, the number of points to place on each side of
the existing points, in the X, Y, and Z directions.
res: The distance between adjacent added points.
-
"""
+ i = np.arange(-num_pts * reso, num_pts * reso + reso * 0.01, reso)
- new_pts = []
+ # Generate all (K, 3) offset vectors at once
+ gx, gy, gz = np.meshgrid(i, i, i, indexing="ij")
+ offsets = np.column_stack([gx.ravel(), gy.ravel(), gz.ravel()])
- i = np.arange(-num_pts * reso, num_pts * reso + reso * 0.01, reso)
- for xi in i:
- for yi in i:
- for zi in i:
- vec = np.array([xi, yi, zi])
- new_pts.append(self.points + vec)
- self.points = np.vstack(new_pts)
+ # Broadcast: (1, N, 3) + (K, 1, 3) -> (K, N, 3) -> (K*N, 3)
+ all_new = (self.points[np.newaxis, :, :] + offsets[:, np.newaxis, :]).reshape(
+ -1, 3
+ )
+ self.points = all_new
self.__unique_points()
def __unique_points(self):
"""Identifies unique points (rows) in an array of points.
Args:
- a: A nx3 np.array representing 3D points.
+ a: A `n x 3` np.array representing 3D points.
Returns:
- A nx2 np.array containing the 3D points that are unique.
-
+ A `n x 2` np.array containing the 3D points that are unique.
"""
b = np.ascontiguousarray(self.points).view(
@@ -259,125 +253,90 @@ def __unique_points(self):
self.points = unique_points
def filter_isolated_points_until_no_change(self, reso, number_of_neighbors):
- """Keep removing points that don't have enough neighbors, until no
- such points exist.
+ """Iteratively remove points with too few neighbors.
+
+ Points on the fringe of a pocket often have fewer grid neighbors
+ than points in the pocket interior. This method repeatedly
+ removes any point with fewer than `number_of_neighbors` neighbors
+ (counted within the diagonal distance of one grid cell) until the
+ point set stabilizes.
Args:
- res: The distance between adjacent points.
+ res: The grid spacing. The neighbor cutoff is derived
+ as `reso x sqrt(3) x 1.1` to include diagonal (kitty-corner)
+ neighbors.
number_of_neighbors: The minimum number of permissible neighbors.
-
"""
-
- # calculate the pairwise distances between all box points note, in
- # newer versions of scipy use cKDTree
- box_of_pts_distance_tree = spatial.KDTree(self.points)
-
- # so kiddy-corner counted as a neighbor
- self.dist_matrix = box_of_pts_distance_tree.sparse_distance_matrix(
- box_of_pts_distance_tree, reso * np.sqrt(3.0) * 1.1
- ).todense()
-
- # note that the diagnol of self.dist_matrix is zero, as expected, but
- # ones with dist > reso * np.sqrt(3.0) * 1.1 are also 0. Pretty
- # convenient.
+ cutoff = reso * math.sqrt(3.0) * 1.1
num_pts = 0
- # keep running the pass until there are no changes (points are stable)
while num_pts != len(self.points):
num_pts = len(self.points)
-
- # identify the points that have enough neighbors
- columns_nonzero_count = np.array((self.dist_matrix != 0).sum(0))[0]
- columns_nonzero_count_match_criteria = (
- columns_nonzero_count >= number_of_neighbors
- )
- columns_nonzero_count_match_criteria_index = np.nonzero(
- columns_nonzero_count_match_criteria
+ tree = KDTree(self.points)
+
+ # Count neighbors for each point (subtract 1 to exclude self).
+ # return_length=True returns just the count, not the full
+ # neighbor lists, saving memory and time.
+ counts = (
+ np.asarray(
+ tree.query_ball_point(self.points, r=cutoff, return_length=True),
+ dtype=np.int64,
+ )
+ - 1
)
- self.__keep_limited_points(columns_nonzero_count_match_criteria_index)
+ keep_mask = counts >= number_of_neighbors
+ self.points = self.points[keep_mask]
- def __keep_limited_points(self, pt_indices):
- """A support function"""
-
- # keep only those points
- self.points = self.points[pt_indices]
+ def separate_out_pockets(self) -> list[npt.NDArray[np.float64]]:
+ """Partition surviving points into distinct pockets.
- # update the distance matrix so it doesn't need to be recalculated
- self.dist_matrix = self.dist_matrix[pt_indices, :][0]
- self.dist_matrix = self.dist_matrix.T
- self.dist_matrix = self.dist_matrix[pt_indices, :][0]
- # self.dist_matrix = self.dist_matrix.T # not necessary because it's a symetrical matrix
+ Two points belong to the same pocket if they are connected through
+ a chain of grid neighbors (26-connectivity, i.e., including
+ diagonal/kitty-corner neighbors).
- def separate_out_pockets(self) -> list[npt.NDArray[np.float64]]:
- """Separate the points according to the pocket they belong to.
- Determined by looking at patches of contiguous points.
+ 1. Points are mapped to integer ``(i, j, k)`` indices by
+ subtracting the grid minimum and dividing by the grid spacing.
+ 2. A 3D boolean volume is constructed and filled at the
+ appropriate indices.
+ 3. [`scipy.ndimage.label`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.label.html)
+ performs connected-component
+ labelling with 26-connectivity.
+ 4. Each connected component is extracted as a separate pocket.
Returns:
- A list of point arrays, each array corresponding to the points of a
- separate pocket.
-
+ A list of `(n_i, 3)` arrays, one per pocket, sorted in
+ descending order of point count (largest pocket first).
"""
- all_pockets = []
-
- # self.points is an array of 3D points
-
- # self.dist_matrix is a distance matrix. self.dist_matrix[i,j] is
- # distance between points i and j. But it only contains distances if
- # the points are close (neighbors). Otherwise, 0.
-
- # Keep going until there are no more points that need to be assigned
- # to a pocket.
- while len(self.points) != 0:
- pocket_indexes = np.array([0])
- num_pts_in_pocket = 0
-
- # Keep looping into no new unique pockets are added.
- while num_pts_in_pocket != len(pocket_indexes):
- num_pts_in_pocket = len(pocket_indexes)
-
- # Get all the adjacent points
- indices_of_neighbors = np.nonzero(self.dist_matrix[pocket_indexes, :])[
- 1
- ]
-
- # Get one of them. Not sure why this was previously in the code...
- # if len(indices_of_neighbors) > 0:
- # In case a point has no neighbors, you need this conditional.
- # one_index_of_neighbor = np.array(indices_of_neighbors)[0]
-
- # Add that one index to the growing list.
- pocket_indexes = np.hstack(
- (
- pocket_indexes,
- indices_of_neighbors,
- # one_index_of_neighbor # Not sure why it used to be this.
- )
- )
-
- # Make sure only unique indices ones are retained.
- pocket_indexes = np.unique(pocket_indexes)
+ # Infer the grid spacing from the minimum nonzero pairwise distance
+ # along any single axis. Since points are on a regular grid, the
+ # smallest positive coordinate difference equals the spacing.
+ diffs_x = np.diff(np.unique(np.round(self.points[:, 0], 8)))
+ reso = float(diffs_x[diffs_x > 1e-9].min()) if len(diffs_x) > 0 else 1.0
- # Save these points (in the pocket) to a list of pockets.
- pocket = self.points[pocket_indexes, :]
- all_pockets.append(pocket)
+ # Map to integer grid indices
+ grid_min = np.min(self.points, axis=0)
+ indices = np.round((self.points - grid_min) / reso).astype(int)
+ shape = tuple(indices.max(axis=0) + 1)
- # Remove those points from the list of points before trying again.
- self.__delete_limited_points(pocket_indexes)
+ # Build 3-D boolean volume
+ volume = np.zeros(shape, dtype=bool)
+ volume[indices[:, 0], indices[:, 1], indices[:, 2]] = True
- # sort the pockets by size
- all_pockets = sorted(all_pockets, key=lambda pts: -len(pts))
+ # Connected-component labelling with 26-connectivity
+ struct = np.ones((3, 3, 3), dtype=int)
+ labels_3d, n_components = ndimage_label(volume, structure=struct)
- return all_pockets
+ # Map labels back to the original point array
+ point_labels = labels_3d[indices[:, 0], indices[:, 1], indices[:, 2]]
- def __delete_limited_points(self, pt_indices):
- """A support function"""
+ pockets: list[npt.NDArray[np.float64]] = []
+ for label_id in range(1, n_components + 1):
+ pocket_pts = self.points[point_labels == label_id]
+ pockets.append(pocket_pts)
- # keep only those points
- self.points = np.delete(self.points, pt_indices, axis=0)
+ # Sort by size, largest first (matches original behavior)
+ pockets.sort(key=lambda p: -len(p))
- # update the distance matrix so it doesn't need to be recalculated
- self.dist_matrix = np.delete(self.dist_matrix, pt_indices, axis=0)
- self.dist_matrix = self.dist_matrix.T
- self.dist_matrix = np.delete(self.dist_matrix, pt_indices, axis=0)
+ return pockets
diff --git a/povme/points/hull.py b/povme/points/hull.py
index ee4c5af..b437b96 100644
--- a/povme/points/hull.py
+++ b/povme/points/hull.py
@@ -1,12 +1,22 @@
+"""Convex hull construction and per-frame pocket volume computation.
+
+This module contains the [`ConvexHull`][points.hull.ConvexHull] class used for two distinct
+purposes in POVME:
+
+1. Pocket detection by building a convex hull around the protein so that
+ grid points outside the protein surface can be discarded.
+2. Per-frame volume calculation that removes grid points that clash with receptor atoms,
+ optionally excludes points outside the convex hull, enforces pocket contiguity,
+ and computes the final pocket volume.
+"""
+
import math
-import time
from functools import reduce
import numpy as np
import numpy.typing as npt
from loguru import logger
-from scipy.spatial import cKDTree
-from scipy.spatial.distance import cdist, pdist, squareform
+from scipy.spatial import Delaunay, KDTree
from povme.io import gzopenfile, numpy_to_pdb, openfile, write_to_file
from povme.parallel import RayTaskGeneral
@@ -20,14 +30,147 @@ def unique_rows(a):
Returns:
A nx2 np.array containing the 3D points that are unique.
-
"""
-
a[a == -0.0] = 0.0
b = np.ascontiguousarray(a).view(np.dtype((np.void, a.dtype.itemsize * a.shape[1])))
return np.unique(b).view(a.dtype).reshape(-1, a.shape[1]) # unique_a
+def _count_neighbors_kdtree(
+ pts: npt.NDArray[np.float64],
+ cutoff_dist: float,
+) -> npt.NDArray[np.int64]:
+ """Count the number of neighboring points within a cutoff distance.
+
+ Args:
+ pts: An array of shape `(n, 3)`. The points whose neighbors we
+ want to count.
+ cutoff_dist: The maximum Euclidean distance at which two points are
+ considered neighbors.
+
+ Returns:
+ An integer array of shape `(n,)` where element $i$ is the number
+ of other points within `cutoff_dist` of `pts[i]` (i.e., the
+ point itself is not counted as its own neighbor).
+ """
+ tree = KDTree(pts)
+ # return_length=True avoids building explicit neighbor lists,
+ # returning just the count — this is faster and uses less memory.
+ counts = tree.query_ball_point(pts, r=cutoff_dist, return_length=True)
+ return np.asarray(counts, dtype=np.int64) - 1 # subtract self
+
+
+def flood_fill_contiguous_kdtree(
+ pts: npt.NDArray[np.float64],
+ contig_seed_pts: npt.NDArray[np.float64],
+ grid_spacing: float,
+) -> npt.NDArray[np.float64]:
+ """Identify pocket points contiguous with a seed region using BFS.
+
+ 1. Builds a single [`KDTree`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html)
+ over all surviving pocket points.
+ 2. Pre-computes the full neighbor-list for every point in one
+ `query_ball_point` call, stored as a Python list of
+ lists.
+ 3. Finds which pocket points coincide with seed points using a second
+ KD-tree query.
+ 4. Runs a breadth-first search (BFS) over the neighbor graph, expanding
+ from the seed set.
+
+ Args:
+ pts: An array of shape `(n, 3)` containing the surviving pocket points
+ (already pruned by clash detection and neighbor filtering).
+ contig_seed_pts: An array of shape `(m, 3)` containing the grid points
+ inside the user-defined contiguous-pocket seed region(s).
+ grid_spacing: The POVME grid spacing in Angstroms. Used to
+ derive the neighbor cutoff (diagonal of a grid cell).
+
+ Returns:
+ An array of shape `(k, 3)` containing the subset of *pts* that
+ are reachable from the seed region through contiguous grid
+ neighbors. Returns an empty array if no seed points overlap with
+ surviving pocket points.
+ """
+ if len(pts) == 0 or len(contig_seed_pts) == 0:
+ return np.array([]).reshape(0, 3)
+
+ cutoff_dist = grid_spacing * 1.01 * math.sqrt(3)
+
+ tree = KDTree(pts)
+
+ # Find which pocket points coincide with seed points
+ seed_tree = KDTree(contig_seed_pts)
+ seed_matches = seed_tree.query_ball_tree(tree, r=1e-5)
+ frontier = set()
+ for matches in seed_matches:
+ frontier.update(matches)
+
+ if not frontier:
+ return np.array([]).reshape(0, 3)
+
+ # Pre-compute neighbor lists for all pocket points
+ all_neighbors = tree.query_ball_point(pts, r=cutoff_dist)
+
+ # BFS expansion from seed set
+ visited = set(frontier)
+ while frontier:
+ new_frontier = set()
+ for idx in frontier:
+ for neighbor_idx in all_neighbors[idx]:
+ if neighbor_idx not in visited:
+ visited.add(neighbor_idx)
+ new_frontier.add(neighbor_idx)
+ frontier = new_frontier
+
+ return pts[sorted(visited)]
+
+
+def _vectorized_hull_check(
+ pts: npt.NDArray[np.float64],
+ hull_triangles: list[npt.NDArray[np.float64]],
+ epsilon: float = 1.0e-5,
+) -> npt.NDArray[np.float64]:
+ """Vectorized convex-hull inside/outside test.
+
+ This version processes all points against each triangle
+ simultaneously using NumPy array operations. An early-exit optimization skips
+ points already classified as "outside" in subsequent triangle iterations.
+
+ Args:
+ pts: An array of shape `(n, 3)` containing the candidate points.
+ hull_triangles: A list of $T$ triangles, each a `(3, 3)` array
+ whose rows are the triangle's three vertices. The vertices are
+ ordered so that the outward-facing normal is given by the cross
+ product of edges 0 -> 1 and 1 -> 2.
+ epsilon: Floating-point tolerance for the inside/outside dot-product
+ test. A point is deemed "outside" a triangle's half-space when
+ the dot product exceeds this value.
+
+ Returns:
+ An array of shape `(m, 3)` (`m <= n`) containing only the
+ points that lie inside (or on the surface of) the convex hull.
+ """
+ inside = np.ones(len(pts), dtype=bool)
+
+ for triangle in hull_triangles:
+ if not inside.any():
+ break
+
+ candidate_idx = np.where(inside)[0]
+ candidate_pts = pts[candidate_idx]
+
+ rel_points = candidate_pts - triangle[0]
+ vec1 = triangle[1] - triangle[0]
+ vec2 = triangle[2] - triangle[1]
+ cross = np.cross(vec1, vec2)
+
+ dots = rel_points @ cross
+ outside_mask = dots > epsilon
+ inside[candidate_idx[outside_mask]] = False
+
+ return pts[inside]
+
+
class ConvexHull:
"""A class to handle convex-hull calculations.
@@ -63,7 +206,6 @@ def get_seg_dict_num(
Returns:
If `seg_index` exists in the keys of `seg_dict`, return the value.
Otherwise, return 0.
-
"""
# we want the index with the greater x-value, so we don't get
# identical segments in the dictionary more than once
@@ -115,7 +257,6 @@ def gift_wrapping_3d(
rows describe the location of the 3 corners of the triangle. Each
of the 3 points are arranged so that a cross product will point
outwards from the hull.
-
"""
n = np.shape(raw_points)[0] # number of points
@@ -124,9 +265,9 @@ def gift_wrapping_3d(
xaxis = np.array([1, 0, 0])
maxx = raw_points[0][0] # initiate highest x value
points = [] # a list of tuples for easy dictionary lookup
- seg_dict: dict[tuple[tuple[np.float64, ...], ...], int] = (
- {}
- ) # a dictionary that contains the number of triangles a seg is in
+ seg_dict: dict[
+ tuple[tuple[np.float64, ...], ...], int
+ ] = {} # a dictionary that contains the number of triangles a seg is in
for i in range(n): # find the n with the largest x value
point = tuple(raw_points[i])
@@ -168,7 +309,6 @@ def gift_wrapping_3d(
while (
seg_list
): # as long as there are unexplored edges of triangles in the hull...
-
counter += 1
seg = seg_list.pop() # take a segment out of the seg_list
tuple1 = seg[0] # the two ends of the segment
@@ -187,9 +327,9 @@ def gift_wrapping_3d(
best_point = None
for i in range(n): # look at each point
-
pointi = raw_points[i]
- # if np.array_equal(pointi, point1) or np.array_equal(pointi, point2): continue # if we are trying one of the points that are point1 or point2
+ # if np.array_equal(pointi, point1) or np.array_equal(pointi, point2):
+ # continue if we are trying one of the points that are point1 or point2
diff_vec1 = point2 - point1
# diff_len1 = np.linalg.norm(diff_vec1)
diff_vec2 = pointi - point2
@@ -221,10 +361,10 @@ def gift_wrapping_3d(
if dot_cross > best_dot_cross:
best_cross = test_cross
best_dot_cross = dot_cross
- best_point = pointi
+ # best_point = pointi # Not used, so commented out
tuple3 = points[i]
- point3 = best_point
+ # point3 = best_point # Not used, so commented out
if self.get_seg_dict_num(seg_dict, (tuple2, tuple1)) > 2:
continue
@@ -268,7 +408,6 @@ def akl_toussaint(self, points: npt.NDArray[np.float64]) -> npt.NDArray[np.float
Returns:
All members of original set of points that fall outside the
Akl-Toussaint octahedron.
-
"""
x_high = (-1e99, 0, 0)
@@ -343,9 +482,7 @@ def outside_hull(
# cross product between vec1 and vec2
our_cross = np.cross(vec1, vec2)
# dot product to determine whether cross is point inward or
- # outward
- our_dot = np.dot(rel_point, our_cross)
- # if the dot is greater than 0, then its outside
+ # outward if the dot is greater than 0, then its outside
if np.dot(rel_point, our_cross) > epsilon:
return True
@@ -366,6 +503,40 @@ def inside_hull(self, our_point):
@staticmethod
def volume(frame_indx, pdb, pts, regions_contig, output_prefix, config):
+ """Compute the pocket volume for a single trajectory frame.
+
+ 1. Discard receptor atoms too far from the grid to matter.
+ 2. Build a [`KDTree`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html) on the remaining atom
+ coordinates and use `query_ball_point` to identify grid points
+ that clash with any atom's van der Waals sphere (plus
+ `config.distance_cutoff`).
+ 3. Optionally exclude points outside the convex hull of non-hydrogen
+ receptor atoms.
+ 4. Optionally enforce contiguous-pocket constraints using a
+ KD-tree-based BFS flood fill.
+ 5. Compute the volume as `N_surviving_points x grid_spacing^3`.
+
+ Args:
+ frame_indx: 1-based frame index within the trajectory.
+ pdb: A `pymolecule.Molecule` instance holding one frame.
+ pts: An `(N, 3)` array of grid points defining the
+ pocket-encompassing region.
+ regions_contig: A list of [`Region`][points.regions.Region]
+ objects defining the contiguous-pocket seed region(s).
+ May be empty if contiguity is not enforced.
+ output_prefix: Directory/filename prefix for output files.
+ config: A [`PocketVolumeConfig`][config.PocketVolumeConfig] instance
+ controlling algorithmic parameters.
+
+ Returns:
+ The input frame index (for bookkeeping).
+
+ The pocket volume.
+
+ A dict that may contain the key
+ `"SaveVolumetricDensityMap"` mapping to the surviving
+ point array (if the user requested a density map).
+ """
# if the user wants to save empty points (points that are removed),
# then we need a copy of the original
if config.output_equal_num_points_per_frame:
@@ -404,7 +575,7 @@ def volume(frame_indx, pdb, pts, regions_contig, output_prefix, config):
vdw[element_stripped == b"S"] = 1.8
# Create a KD-tree for atom coordinates
- atom_tree = cKDTree(coords)
+ atom_tree = KDTree(coords)
# Compute the maximum cutoff for searching
# Since each atom might have a different vdw radius, we must take the max
@@ -435,61 +606,38 @@ def volume(frame_indx, pdb, pts, regions_contig, output_prefix, config):
# now keep the appropriate points
pts = np.delete(pts, close_pt_indices, axis=0)
- # exclude points outside convex hull
if config.convex_hull_exclusion:
- convex_hull_3d = ConvexHull(pts)
-
- # get the coordinates of the non-hydrogen atoms (faster to discard
- # hydrogens)
hydros = pdb.selections.select_atoms({"element_stripped": [b"H"]})
not_hydros = pdb.selections.invert_selection(hydros)
not_hydros_coors = pdb.information.coordinates[not_hydros]
- # not_hydros = pdb.selections.select_atoms({'name_stripped':['CA']})
- # not_hydros_coors = pdb.information.coordinates[not_hydros]
-
- # modify pts here.
- # note that the atoms of the pdb frame are in pdb.information.coordinates
- # begintime = time.time() # measure execution time
- akl_toussaint_pts = convex_hull_3d.akl_toussaint(
- not_hydros_coors
- ) # quickly reduces input size
- # print "akl Toussaint:", time.time() - begintime
- begintime = time.time() # measure execution time
- # calculate convex hull using gift wrapping algorithm
- hull = convex_hull_3d.gift_wrapping_3d(akl_toussaint_pts)
- # print "gift_wrapping:", time.time() - begintime
-
- # we will need to regenerate the pts list, disregarding those
- # outside the hull
- old_pts = pts
- pts = []
- for pt in old_pts:
- pt_outside = convex_hull_3d.outside_hull(
- pt, hull
- ) # check if pt is outside hull
- if not pt_outside:
- # if its not outside the hull, then include it in the
- # volume measurement
- pts.append(pt)
- pts = np.array(pts)
+ # Delaunay-based check (fastest, ~100x vs Python loop)
+ # Uses scipy's C-level Delaunay triangulation. A point is inside
+ # the convex hull iff find_simplex returns a non-negative index.
+ try:
+ delaunay_hull = Delaunay(not_hydros_coors)
+ inside_mask = delaunay_hull.find_simplex(pts) >= 0
+ pts = pts[inside_mask]
+ except Exception:
+ # Fallback: original gift-wrapping + vectorized check
+ logger.debug(
+ "Delaunay hull failed (likely degenerate geometry), "
+ "falling back to gift-wrapping."
+ )
+ convex_hull_3d = ConvexHull(pts)
+ akl_toussaint_pts = convex_hull_3d.akl_toussaint(not_hydros_coors)
+ hull = convex_hull_3d.gift_wrapping_3d(akl_toussaint_pts)
+ pts = _vectorized_hull_check(pts, hull)
# Now, enforce contiguity if needed
if len(regions_contig) > 0 and len(pts) > 0:
- # first, for each point, determine how many neighbors it has to
- # count kiddy-corner points too
cutoff_dist = config.grid_spacing * 1.01 * math.sqrt(3)
- pts_dists = squareform(pdist(pts))
- # minus 1 because an atom shouldn't be considered its own neighor
- neighbor_counts = np.sum(pts_dists < cutoff_dist, axis=0) - 1
- # remove all the points that don't have enough neighbors
- pts = pts[
- np.nonzero(neighbor_counts >= config.contiguous_points_criteria)[0]
- ]
+ # Remove isolated points (too few neighbors)
+ neighbor_counts = _count_neighbors_kdtree(pts, cutoff_dist)
+ pts = pts[neighbor_counts >= config.contiguous_points_criteria]
- # get all the points in the defined parameters['ContiguousPocket']
- # seed regions
+ # Flood fill from seed region
contig_pts = regions_contig[0].get_points(config.grid_spacing)
for Contig in regions_contig[1:]:
contig_pts = np.vstack(
@@ -497,32 +645,17 @@ def volume(frame_indx, pdb, pts, regions_contig, output_prefix, config):
)
contig_pts = unique_rows(contig_pts)
- try: # error here if there are no points of contiguous seed region outside of protein volume.
- # now just get the ones that are not near the protein
- contig_pts = pts[np.nonzero(cdist(contig_pts, pts) < 1e-7)[1]]
-
- last_size_of_contig_pts = 0
- while last_size_of_contig_pts != len(contig_pts):
- last_size_of_contig_pts = len(contig_pts)
-
- # now get the indices of all points that are close to the
- # contig_pts
- all_pts_close_to_contig_pts_boolean = (
- cdist(pts, contig_pts) < cutoff_dist
- )
- index_all_pts_close_to_contig_pts = np.unique(
- np.nonzero(all_pts_close_to_contig_pts_boolean)[0]
- )
- contig_pts = pts[index_all_pts_close_to_contig_pts]
-
- pts = contig_pts
+ try:
+ pts = flood_fill_contiguous_kdtree(pts, contig_pts, config.grid_spacing)
except Exception:
logger.exception(
"Frame "
+ str(frame_indx)
- + ": None of the points in the contiguous-pocket seed region\n\t\tare outside the volume of the protein! Assuming a pocket\n\t\tvolume of 0.0 A."
+ + ": None of the points in the contiguous-pocket seed "
+ "region\n\t\tare outside the volume of the protein! "
+ "Assuming a pocket\n\t\tvolume of 0.0 A."
)
- pts = np.array([])
+ pts = np.array([]).reshape(0, 3)
# now write the pdb and calculate the volume
volume = len(pts) * math.pow(config.grid_spacing, 3)
@@ -584,7 +717,6 @@ def process_item(self, item):
A tuple with frame index, calculated volume, and any extra data.
"""
try:
-
return ConvexHull.volume(*item)
except Exception as e:
logger.exception(f"Error in frame {item[0]}: {e}")
diff --git a/povme/points/regions.py b/povme/points/regions.py
index 1040992..c27c82e 100644
--- a/povme/points/regions.py
+++ b/povme/points/regions.py
@@ -1,8 +1,21 @@
+"""3-D region definitions for POVME inclusion, exclusion, and seed volumes.
+
+This module defines the abstract [`Region`][points.regions.Region] base class and two concrete
+implementations, [`SphericalRegion`][points.regions.SphericalRegion] and
+[`RectangularRegion`][points.regions.RectangularRegion],
+that generate regular grids of 3D points filling a geometric volume. These
+regions are used throughout POVME to specify:
+
+- Inclusion regions: the volume to search for pockets.
+- Exclusion regions: sub-volumes to explicitly ignore.
+- Contiguous-pocket seed regions: small volumes placed inside the pocket
+ of interest so that only the contiguous pocket is retained.
+"""
+
from abc import ABC, abstractmethod
import numpy as np
import numpy.typing as npt
-from scipy.spatial.distance import cdist
def snap_points(points: npt.NDArray[np.float64], res: float) -> npt.NDArray[np.float64]:
@@ -148,16 +161,17 @@ def __str__(self):
)
def get_points(self, res: float) -> npt.NDArray[np.float64]:
- """
- Generates a grid of points filling the spherical region.
+ """Generate grid points filling the sphere.
+
+ A cubic grid spanning `[center - radius, center + radius]` is
+ constructed along each axis, then points outside the sphere are
+ removed using a vectorized Euclidean-norm test.
Args:
- res:
- The resolution of the grid, defining the spacing between points.
+ res: The grid spacing (Å).
Returns:
- A numpy array of shape (n, 3), where each row is a [x, y, z]
- coordinate representing a point within the spherical region.
+ An `(n, 3)` array of interior grid points.
"""
xs = np.arange(
self.center[0] - self.radius,
@@ -176,8 +190,9 @@ def get_points(self, res: float) -> npt.NDArray[np.float64]:
)
result = build_mesh_grid(xs, ys, zs, res)
- # Remove points outside the sphere
- distances = cdist(result, self.center.reshape(1, -1)).flatten()
+
+ diff = result - self.center # broadcasting (N,3) - (3,) -> (N,3)
+ distances = np.sqrt(np.einsum("ij,ij->i", diff, diff))
inside_sphere = distances < self.radius
return result[inside_sphere]
@@ -302,14 +317,14 @@ def collect_regions(
regions: list[SphericalRegion | RectangularRegion] = []
if spherical_configs is not None:
- for config in spherical_configs: # type: ignore
+ for config in spherical_configs:
if len(config) == 0:
continue
regions.append(SphericalRegion(config["center"], config["radius"])) # type: ignore
if rectangular_configs is not None:
- for config in rectangular_configs: # type: ignore
+ for config in rectangular_configs:
if len(config) == 0:
continue
- regions.append(RectangularRegion(config["center"], config["lengths"])) # type: ignore
+ regions.append(RectangularRegion(config["center"], config["lengths"]))
return regions
diff --git a/pyproject.toml b/pyproject.toml
index 2246abf..f86786f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "povme"
-version = "2.2.1"
+version = "2.2.2"
description = "Detect and characterize protein pockets."
authors = [
{name = "Durrant Lab", email = "durrantj@pitt.edu"}
diff --git a/tests/files/4nss/povme.yml b/tests/files/4nss/povme.yml
index d742270..d2cfcd1 100644
--- a/tests/files/4nss/povme.yml
+++ b/tests/files/4nss/povme.yml
@@ -32,7 +32,7 @@ contiguous_pocket_seed_sphere:
contiguous_points_criteria: 3
-use_ray: true
+use_ray: false
n_cores: 2