add hf authentication
Browse files- app.py +40 -13
- pyproject.toml +1 -1
- requirements.txt +1 -1
- uv.lock +91 -2
app.py
CHANGED
|
@@ -1,24 +1,25 @@
|
|
| 1 |
-
import os
|
| 2 |
import itertools
|
|
|
|
| 3 |
import tempfile
|
| 4 |
|
| 5 |
-
|
| 6 |
-
|
| 7 |
import gradio as gr
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
import numpy as np
|
| 10 |
-
import json
|
| 11 |
import torch
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
|
|
|
| 17 |
from matplotlib.cm import ScalarMappable
|
| 18 |
from matplotlib.colors import Normalize
|
| 19 |
-
|
| 20 |
-
from biotite.structure import io, to_sequence, spread_residue_wise, filter_amino_acids
|
| 21 |
-
from biotite.database import rcsb
|
| 22 |
from rocketshp import RocketSHP, load_sequence, load_structure
|
| 23 |
from rocketshp.network import (
|
| 24 |
build_allosteric_network,
|
|
@@ -116,6 +117,7 @@ def predict_rocketshp(
|
|
| 116 |
structure_code: str | None,
|
| 117 |
structure_file: str | None,
|
| 118 |
chain_id: str | None,
|
|
|
|
| 119 |
):
|
| 120 |
print(f"sequence text: {sequence}")
|
| 121 |
print(f"sequence file: {sequence_file}")
|
|
@@ -123,6 +125,11 @@ def predict_rocketshp(
|
|
| 123 |
print(f"structure file: {structure_file}")
|
| 124 |
print(f"model variant: {model_variant}")
|
| 125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 126 |
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
| 127 |
is_sequence_model = "seq" in model_variant or "mini" in model_variant
|
| 128 |
|
|
@@ -403,6 +410,23 @@ def visualize_network(
|
|
| 403 |
return fig, bc_highlight, comm_highlight, out_cluster_file_name
|
| 404 |
|
| 405 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 406 |
reps = [
|
| 407 |
{
|
| 408 |
"model": 0,
|
|
@@ -450,6 +474,8 @@ with rocketshp_gradio:
|
|
| 450 |
- 📄: [Paper](https://www.biorxiv.org/content/10.1101/2025.06.12.659353v1)
|
| 451 |
- 💻: [GitHub](https://github.com/flatironinstitute/RocketSHP/tree/main)
|
| 452 |
|
|
|
|
|
|
|
| 453 |
""")
|
| 454 |
|
| 455 |
rmsf = gr.State([])
|
|
@@ -458,6 +484,7 @@ with rocketshp_gradio:
|
|
| 458 |
ca_dist = gr.State([])
|
| 459 |
sequence = gr.State([])
|
| 460 |
|
|
|
|
| 461 |
model_variant = gr.Dropdown(
|
| 462 |
label="Select RocketSHP Model",
|
| 463 |
choices=["latest", "v1_seq", "v1_mini"],
|
|
|
|
|
|
|
| 1 |
import itertools
|
| 2 |
+
import json
|
| 3 |
import tempfile
|
| 4 |
|
| 5 |
+
import biotite.structure as bs
|
|
|
|
| 6 |
import gradio as gr
|
| 7 |
+
import huggingface_hub
|
| 8 |
+
import matplotlib.colors as mcolors
|
| 9 |
+
import matplotlib.patches as mpatches
|
| 10 |
+
import matplotlib.pyplot as plt
|
| 11 |
+
import networkx as nx
|
| 12 |
import numpy as np
|
|
|
|
| 13 |
import torch
|
| 14 |
+
from biotite.database import rcsb
|
| 15 |
+
from biotite.sequence import io as seqio
|
| 16 |
+
from biotite.structure import filter_amino_acids, io, spread_residue_wise, to_sequence
|
| 17 |
+
from gradio_molecule3d import Molecule3D
|
| 18 |
+
from huggingface_hub import get_hf_file_metadata
|
| 19 |
+
from huggingface_hub.utils import GatedRepoError
|
| 20 |
from matplotlib.cm import ScalarMappable
|
| 21 |
from matplotlib.colors import Normalize
|
| 22 |
+
|
|
|
|
|
|
|
| 23 |
from rocketshp import RocketSHP, load_sequence, load_structure
|
| 24 |
from rocketshp.network import (
|
| 25 |
build_allosteric_network,
|
|
|
|
| 117 |
structure_code: str | None,
|
| 118 |
structure_file: str | None,
|
| 119 |
chain_id: str | None,
|
| 120 |
+
oauth_token: gr.OAuthToken | None = None,
|
| 121 |
):
|
| 122 |
print(f"sequence text: {sequence}")
|
| 123 |
print(f"sequence file: {sequence_file}")
|
|
|
|
| 125 |
print(f"structure file: {structure_file}")
|
| 126 |
print(f"model variant: {model_variant}")
|
| 127 |
|
| 128 |
+
if oauth_token is None:
|
| 129 |
+
raise gr.Error("Please log in to use this Space")
|
| 130 |
+
token_value = oauth_token.token
|
| 131 |
+
check_permissions(token_value)
|
| 132 |
+
|
| 133 |
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
| 134 |
is_sequence_model = "seq" in model_variant or "mini" in model_variant
|
| 135 |
|
|
|
|
| 410 |
return fig, bc_highlight, comm_highlight, out_cluster_file_name
|
| 411 |
|
| 412 |
|
| 413 |
+
def check_permissions(token: str | None = None) -> None:
|
| 414 |
+
if token is None:
|
| 415 |
+
raise gr.Error("Please log in to use this Space")
|
| 416 |
+
try:
|
| 417 |
+
url = huggingface_hub.hf_hub_url(
|
| 418 |
+
repo_id="EvolutionaryScale/esm3-sm-open-v1",
|
| 419 |
+
repo_type="model",
|
| 420 |
+
filename="config.json",
|
| 421 |
+
)
|
| 422 |
+
get_hf_file_metadata(url=url)
|
| 423 |
+
return
|
| 424 |
+
except GatedRepoError:
|
| 425 |
+
raise gr.Error(
|
| 426 |
+
"You must have access to ... to run this Space. Please go through the gating process and come back."
|
| 427 |
+
)
|
| 428 |
+
|
| 429 |
+
|
| 430 |
reps = [
|
| 431 |
{
|
| 432 |
"model": 0,
|
|
|
|
| 474 |
- 📄: [Paper](https://www.biorxiv.org/content/10.1101/2025.06.12.659353v1)
|
| 475 |
- 💻: [GitHub](https://github.com/flatironinstitute/RocketSHP/tree/main)
|
| 476 |
|
| 477 |
+
To run RocketSHP, your HuggingFace account should have access to [ESM3-open](https://huggingface.co/EvolutionaryScale/esm3-sm-open-v1) weights. If you don't have access, please go through the gating process on HuggingFace to gain access to the model weights.
|
| 478 |
+
|
| 479 |
""")
|
| 480 |
|
| 481 |
rmsf = gr.State([])
|
|
|
|
| 484 |
ca_dist = gr.State([])
|
| 485 |
sequence = gr.State([])
|
| 486 |
|
| 487 |
+
gr.LoginButton()
|
| 488 |
model_variant = gr.Dropdown(
|
| 489 |
label="Select RocketSHP Model",
|
| 490 |
choices=["latest", "v1_seq", "v1_mini"],
|
pyproject.toml
CHANGED
|
@@ -9,7 +9,7 @@ dependencies = [
|
|
| 9 |
"biotite==0.41.2",
|
| 10 |
"datasets>=4.3.0",
|
| 11 |
"esm==3.1.3",
|
| 12 |
-
"gradio>=5.49.1",
|
| 13 |
"gradio-molecule3d>=0.0.7",
|
| 14 |
"h5py>=3.15.1",
|
| 15 |
"huggingface-hub>=0.36.0",
|
|
|
|
| 9 |
"biotite==0.41.2",
|
| 10 |
"datasets>=4.3.0",
|
| 11 |
"esm==3.1.3",
|
| 12 |
+
"gradio[oauth]>=5.49.1",
|
| 13 |
"gradio-molecule3d>=0.0.7",
|
| 14 |
"h5py>=3.15.1",
|
| 15 |
"huggingface-hub>=0.36.0",
|
requirements.txt
CHANGED
|
@@ -2,7 +2,7 @@ biopython>=1.79,
|
|
| 2 |
biotite==0.41.2,
|
| 3 |
datasets>=4.3.0,
|
| 4 |
esm==3.1.3,
|
| 5 |
-
gradio>=5.49.1,
|
| 6 |
gradio-molecule3d>=0.0.7,
|
| 7 |
h5py>=3.15.1,
|
| 8 |
huggingface-hub>=0.36.0,
|
|
|
|
| 2 |
biotite==0.41.2,
|
| 3 |
datasets>=4.3.0,
|
| 4 |
esm==3.1.3,
|
| 5 |
+
gradio[oauth]>=5.49.1,
|
| 6 |
gradio-molecule3d>=0.0.7,
|
| 7 |
h5py>=3.15.1,
|
| 8 |
huggingface-hub>=0.36.0,
|
uv.lock
CHANGED
|
@@ -327,6 +327,18 @@ wheels = [
|
|
| 327 |
{ url = "https://files.pythonhosted.org/packages/f6/22/91616fe707a5c5510de2cac9b046a30defe7007ba8a0c04f9c08f27df312/audioop_lts-0.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:b492c3b040153e68b9fdaff5913305aaaba5bb433d8a7f73d5cf6a64ed3cc1dd", size = 25206, upload-time = "2025-08-05T16:43:16.444Z" },
|
| 328 |
]
|
| 329 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 330 |
[[package]]
|
| 331 |
name = "babel"
|
| 332 |
version = "2.17.0"
|
|
@@ -811,6 +823,68 @@ wheels = [
|
|
| 811 |
{ url = "https://files.pythonhosted.org/packages/0c/58/bd257695f39d05594ca4ad60df5bcb7e32247f9951fd09a9b8edb82d1daa/contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77", size = 225315, upload-time = "2025-07-26T12:02:58.801Z" },
|
| 812 |
]
|
| 813 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 814 |
[[package]]
|
| 815 |
name = "cycler"
|
| 816 |
version = "0.12.1"
|
|
@@ -1251,6 +1325,12 @@ wheels = [
|
|
| 1251 |
{ url = "https://files.pythonhosted.org/packages/8d/95/1c25fbcabfa201ab79b016c8716a4ac0f846121d4bbfd2136ffb6d87f31e/gradio-5.49.1-py3-none-any.whl", hash = "sha256:1b19369387801a26a6ba7fd2f74d46c5b0e2ac9ddef14f24ddc0d11fb19421b7", size = 63523840, upload-time = "2025-10-08T20:18:34.585Z" },
|
| 1252 |
]
|
| 1253 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1254 |
[[package]]
|
| 1255 |
name = "gradio-client"
|
| 1256 |
version = "1.13.3"
|
|
@@ -1521,6 +1601,15 @@ wheels = [
|
|
| 1521 |
{ url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" },
|
| 1522 |
]
|
| 1523 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1524 |
[[package]]
|
| 1525 |
name = "jedi"
|
| 1526 |
version = "0.19.2"
|
|
@@ -3890,7 +3979,7 @@ dependencies = [
|
|
| 3890 |
{ name = "biotite" },
|
| 3891 |
{ name = "datasets" },
|
| 3892 |
{ name = "esm" },
|
| 3893 |
-
{ name = "gradio" },
|
| 3894 |
{ name = "gradio-molecule3d" },
|
| 3895 |
{ name = "h5py" },
|
| 3896 |
{ name = "huggingface-hub" },
|
|
@@ -3926,7 +4015,7 @@ requires-dist = [
|
|
| 3926 |
{ name = "biotite", specifier = "==0.41.2" },
|
| 3927 |
{ name = "datasets", specifier = ">=4.3.0" },
|
| 3928 |
{ name = "esm", specifier = "==3.1.3" },
|
| 3929 |
-
{ name = "gradio", specifier = ">=5.49.1" },
|
| 3930 |
{ name = "gradio-molecule3d", specifier = ">=0.0.7" },
|
| 3931 |
{ name = "h5py", specifier = ">=3.15.1" },
|
| 3932 |
{ name = "huggingface-hub", specifier = ">=0.36.0" },
|
|
|
|
| 327 |
{ url = "https://files.pythonhosted.org/packages/f6/22/91616fe707a5c5510de2cac9b046a30defe7007ba8a0c04f9c08f27df312/audioop_lts-0.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:b492c3b040153e68b9fdaff5913305aaaba5bb433d8a7f73d5cf6a64ed3cc1dd", size = 25206, upload-time = "2025-08-05T16:43:16.444Z" },
|
| 328 |
]
|
| 329 |
|
| 330 |
+
[[package]]
|
| 331 |
+
name = "authlib"
|
| 332 |
+
version = "1.6.5"
|
| 333 |
+
source = { registry = "https://pypi.org/simple" }
|
| 334 |
+
dependencies = [
|
| 335 |
+
{ name = "cryptography" },
|
| 336 |
+
]
|
| 337 |
+
sdist = { url = "https://files.pythonhosted.org/packages/cd/3f/1d3bbd0bf23bdd99276d4def22f29c27a914067b4cf66f753ff9b8bbd0f3/authlib-1.6.5.tar.gz", hash = "sha256:6aaf9c79b7cc96c900f0b284061691c5d4e61221640a948fe690b556a6d6d10b", size = 164553, upload-time = "2025-10-02T13:36:09.489Z" }
|
| 338 |
+
wheels = [
|
| 339 |
+
{ url = "https://files.pythonhosted.org/packages/f8/aa/5082412d1ee302e9e7d80b6949bc4d2a8fa1149aaab610c5fc24709605d6/authlib-1.6.5-py2.py3-none-any.whl", hash = "sha256:3e0e0507807f842b02175507bdee8957a1d5707fd4afb17c32fb43fee90b6e3a", size = 243608, upload-time = "2025-10-02T13:36:07.637Z" },
|
| 340 |
+
]
|
| 341 |
+
|
| 342 |
[[package]]
|
| 343 |
name = "babel"
|
| 344 |
version = "2.17.0"
|
|
|
|
| 823 |
{ url = "https://files.pythonhosted.org/packages/0c/58/bd257695f39d05594ca4ad60df5bcb7e32247f9951fd09a9b8edb82d1daa/contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77", size = 225315, upload-time = "2025-07-26T12:02:58.801Z" },
|
| 824 |
]
|
| 825 |
|
| 826 |
+
[[package]]
|
| 827 |
+
name = "cryptography"
|
| 828 |
+
version = "46.0.3"
|
| 829 |
+
source = { registry = "https://pypi.org/simple" }
|
| 830 |
+
dependencies = [
|
| 831 |
+
{ name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
|
| 832 |
+
]
|
| 833 |
+
sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258, upload-time = "2025-10-15T23:18:31.74Z" }
|
| 834 |
+
wheels = [
|
| 835 |
+
{ url = "https://files.pythonhosted.org/packages/1d/42/9c391dd801d6cf0d561b5890549d4b27bafcc53b39c31a817e69d87c625b/cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", size = 7225004, upload-time = "2025-10-15T23:16:52.239Z" },
|
| 836 |
+
{ url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667, upload-time = "2025-10-15T23:16:54.369Z" },
|
| 837 |
+
{ url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807, upload-time = "2025-10-15T23:16:56.414Z" },
|
| 838 |
+
{ url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615, upload-time = "2025-10-15T23:16:58.442Z" },
|
| 839 |
+
{ url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800, upload-time = "2025-10-15T23:17:00.378Z" },
|
| 840 |
+
{ url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707, upload-time = "2025-10-15T23:17:01.98Z" },
|
| 841 |
+
{ url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541, upload-time = "2025-10-15T23:17:04.078Z" },
|
| 842 |
+
{ url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464, upload-time = "2025-10-15T23:17:05.483Z" },
|
| 843 |
+
{ url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838, upload-time = "2025-10-15T23:17:07.425Z" },
|
| 844 |
+
{ url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596, upload-time = "2025-10-15T23:17:09.343Z" },
|
| 845 |
+
{ url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782, upload-time = "2025-10-15T23:17:11.22Z" },
|
| 846 |
+
{ url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381, upload-time = "2025-10-15T23:17:12.829Z" },
|
| 847 |
+
{ url = "https://files.pythonhosted.org/packages/96/92/8a6a9525893325fc057a01f654d7efc2c64b9de90413adcf605a85744ff4/cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018", size = 3055988, upload-time = "2025-10-15T23:17:14.65Z" },
|
| 848 |
+
{ url = "https://files.pythonhosted.org/packages/7e/bf/80fbf45253ea585a1e492a6a17efcb93467701fa79e71550a430c5e60df0/cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", size = 3514451, upload-time = "2025-10-15T23:17:16.142Z" },
|
| 849 |
+
{ url = "https://files.pythonhosted.org/packages/2e/af/9b302da4c87b0beb9db4e756386a7c6c5b8003cd0e742277888d352ae91d/cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", size = 2928007, upload-time = "2025-10-15T23:17:18.04Z" },
|
| 850 |
+
{ url = "https://files.pythonhosted.org/packages/f5/e2/a510aa736755bffa9d2f75029c229111a1d02f8ecd5de03078f4c18d91a3/cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217", size = 7158012, upload-time = "2025-10-15T23:17:19.982Z" },
|
| 851 |
+
{ url = "https://files.pythonhosted.org/packages/73/dc/9aa866fbdbb95b02e7f9d086f1fccfeebf8953509b87e3f28fff927ff8a0/cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", size = 4288728, upload-time = "2025-10-15T23:17:21.527Z" },
|
| 852 |
+
{ url = "https://files.pythonhosted.org/packages/c5/fd/bc1daf8230eaa075184cbbf5f8cd00ba9db4fd32d63fb83da4671b72ed8a/cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", size = 4435078, upload-time = "2025-10-15T23:17:23.042Z" },
|
| 853 |
+
{ url = "https://files.pythonhosted.org/packages/82/98/d3bd5407ce4c60017f8ff9e63ffee4200ab3e23fe05b765cab805a7db008/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", size = 4293460, upload-time = "2025-10-15T23:17:24.885Z" },
|
| 854 |
+
{ url = "https://files.pythonhosted.org/packages/26/e9/e23e7900983c2b8af7a08098db406cf989d7f09caea7897e347598d4cd5b/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", size = 3995237, upload-time = "2025-10-15T23:17:26.449Z" },
|
| 855 |
+
{ url = "https://files.pythonhosted.org/packages/91/15/af68c509d4a138cfe299d0d7ddb14afba15233223ebd933b4bbdbc7155d3/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", size = 4967344, upload-time = "2025-10-15T23:17:28.06Z" },
|
| 856 |
+
{ url = "https://files.pythonhosted.org/packages/ca/e3/8643d077c53868b681af077edf6b3cb58288b5423610f21c62aadcbe99f4/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", size = 4466564, upload-time = "2025-10-15T23:17:29.665Z" },
|
| 857 |
+
{ url = "https://files.pythonhosted.org/packages/0e/43/c1e8726fa59c236ff477ff2b5dc071e54b21e5a1e51aa2cee1676f1c986f/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", size = 4292415, upload-time = "2025-10-15T23:17:31.686Z" },
|
| 858 |
+
{ url = "https://files.pythonhosted.org/packages/42/f9/2f8fefdb1aee8a8e3256a0568cffc4e6d517b256a2fe97a029b3f1b9fe7e/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", size = 4931457, upload-time = "2025-10-15T23:17:33.478Z" },
|
| 859 |
+
{ url = "https://files.pythonhosted.org/packages/79/30/9b54127a9a778ccd6d27c3da7563e9f2d341826075ceab89ae3b41bf5be2/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", size = 4466074, upload-time = "2025-10-15T23:17:35.158Z" },
|
| 860 |
+
{ url = "https://files.pythonhosted.org/packages/ac/68/b4f4a10928e26c941b1b6a179143af9f4d27d88fe84a6a3c53592d2e76bf/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", size = 4420569, upload-time = "2025-10-15T23:17:37.188Z" },
|
| 861 |
+
{ url = "https://files.pythonhosted.org/packages/a3/49/3746dab4c0d1979888f125226357d3262a6dd40e114ac29e3d2abdf1ec55/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", size = 4681941, upload-time = "2025-10-15T23:17:39.236Z" },
|
| 862 |
+
{ url = "https://files.pythonhosted.org/packages/fd/30/27654c1dbaf7e4a3531fa1fc77986d04aefa4d6d78259a62c9dc13d7ad36/cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914", size = 3022339, upload-time = "2025-10-15T23:17:40.888Z" },
|
| 863 |
+
{ url = "https://files.pythonhosted.org/packages/f6/30/640f34ccd4d2a1bc88367b54b926b781b5a018d65f404d409aba76a84b1c/cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db", size = 3494315, upload-time = "2025-10-15T23:17:42.769Z" },
|
| 864 |
+
{ url = "https://files.pythonhosted.org/packages/ba/8b/88cc7e3bd0a8e7b861f26981f7b820e1f46aa9d26cc482d0feba0ecb4919/cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21", size = 2919331, upload-time = "2025-10-15T23:17:44.468Z" },
|
| 865 |
+
{ url = "https://files.pythonhosted.org/packages/fd/23/45fe7f376a7df8daf6da3556603b36f53475a99ce4faacb6ba2cf3d82021/cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", size = 7218248, upload-time = "2025-10-15T23:17:46.294Z" },
|
| 866 |
+
{ url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089, upload-time = "2025-10-15T23:17:48.269Z" },
|
| 867 |
+
{ url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029, upload-time = "2025-10-15T23:17:49.837Z" },
|
| 868 |
+
{ url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222, upload-time = "2025-10-15T23:17:51.357Z" },
|
| 869 |
+
{ url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280, upload-time = "2025-10-15T23:17:52.964Z" },
|
| 870 |
+
{ url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958, upload-time = "2025-10-15T23:17:54.965Z" },
|
| 871 |
+
{ url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714, upload-time = "2025-10-15T23:17:56.754Z" },
|
| 872 |
+
{ url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970, upload-time = "2025-10-15T23:17:58.588Z" },
|
| 873 |
+
{ url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236, upload-time = "2025-10-15T23:18:00.897Z" },
|
| 874 |
+
{ url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642, upload-time = "2025-10-15T23:18:02.749Z" },
|
| 875 |
+
{ url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126, upload-time = "2025-10-15T23:18:04.85Z" },
|
| 876 |
+
{ url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573, upload-time = "2025-10-15T23:18:06.908Z" },
|
| 877 |
+
{ url = "https://files.pythonhosted.org/packages/0a/6e/1c8331ddf91ca4730ab3086a0f1be19c65510a33b5a441cb334e7a2d2560/cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", size = 3036695, upload-time = "2025-10-15T23:18:08.672Z" },
|
| 878 |
+
{ url = "https://files.pythonhosted.org/packages/90/45/b0d691df20633eff80955a0fc7695ff9051ffce8b69741444bd9ed7bd0db/cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", size = 3501720, upload-time = "2025-10-15T23:18:10.632Z" },
|
| 879 |
+
{ url = "https://files.pythonhosted.org/packages/e8/cb/2da4cc83f5edb9c3257d09e1e7ab7b23f049c7962cae8d842bbef0a9cec9/cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", size = 2918740, upload-time = "2025-10-15T23:18:12.277Z" },
|
| 880 |
+
{ url = "https://files.pythonhosted.org/packages/06/8a/e60e46adab4362a682cf142c7dcb5bf79b782ab2199b0dcb81f55970807f/cryptography-46.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7ce938a99998ed3c8aa7e7272dca1a610401ede816d36d0693907d863b10d9ea", size = 3698132, upload-time = "2025-10-15T23:18:17.056Z" },
|
| 881 |
+
{ url = "https://files.pythonhosted.org/packages/da/38/f59940ec4ee91e93d3311f7532671a5cef5570eb04a144bf203b58552d11/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b", size = 4243992, upload-time = "2025-10-15T23:18:18.695Z" },
|
| 882 |
+
{ url = "https://files.pythonhosted.org/packages/b0/0c/35b3d92ddebfdfda76bb485738306545817253d0a3ded0bfe80ef8e67aa5/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb", size = 4409944, upload-time = "2025-10-15T23:18:20.597Z" },
|
| 883 |
+
{ url = "https://files.pythonhosted.org/packages/99/55/181022996c4063fc0e7666a47049a1ca705abb9c8a13830f074edb347495/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717", size = 4242957, upload-time = "2025-10-15T23:18:22.18Z" },
|
| 884 |
+
{ url = "https://files.pythonhosted.org/packages/ba/af/72cd6ef29f9c5f731251acadaeb821559fe25f10852f44a63374c9ca08c1/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9", size = 4409447, upload-time = "2025-10-15T23:18:24.209Z" },
|
| 885 |
+
{ url = "https://files.pythonhosted.org/packages/0d/c3/e90f4a4feae6410f914f8ebac129b9ae7a8c92eb60a638012dde42030a9d/cryptography-46.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:6b5063083824e5509fdba180721d55909ffacccc8adbec85268b48439423d78c", size = 3438528, upload-time = "2025-10-15T23:18:26.227Z" },
|
| 886 |
+
]
|
| 887 |
+
|
| 888 |
[[package]]
|
| 889 |
name = "cycler"
|
| 890 |
version = "0.12.1"
|
|
|
|
| 1325 |
{ url = "https://files.pythonhosted.org/packages/8d/95/1c25fbcabfa201ab79b016c8716a4ac0f846121d4bbfd2136ffb6d87f31e/gradio-5.49.1-py3-none-any.whl", hash = "sha256:1b19369387801a26a6ba7fd2f74d46c5b0e2ac9ddef14f24ddc0d11fb19421b7", size = 63523840, upload-time = "2025-10-08T20:18:34.585Z" },
|
| 1326 |
]
|
| 1327 |
|
| 1328 |
+
[package.optional-dependencies]
|
| 1329 |
+
oauth = [
|
| 1330 |
+
{ name = "authlib" },
|
| 1331 |
+
{ name = "itsdangerous" },
|
| 1332 |
+
]
|
| 1333 |
+
|
| 1334 |
[[package]]
|
| 1335 |
name = "gradio-client"
|
| 1336 |
version = "1.13.3"
|
|
|
|
| 1601 |
{ url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" },
|
| 1602 |
]
|
| 1603 |
|
| 1604 |
+
[[package]]
|
| 1605 |
+
name = "itsdangerous"
|
| 1606 |
+
version = "2.2.0"
|
| 1607 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1608 |
+
sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" }
|
| 1609 |
+
wheels = [
|
| 1610 |
+
{ url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" },
|
| 1611 |
+
]
|
| 1612 |
+
|
| 1613 |
[[package]]
|
| 1614 |
name = "jedi"
|
| 1615 |
version = "0.19.2"
|
|
|
|
| 3979 |
{ name = "biotite" },
|
| 3980 |
{ name = "datasets" },
|
| 3981 |
{ name = "esm" },
|
| 3982 |
+
{ name = "gradio", extra = ["oauth"] },
|
| 3983 |
{ name = "gradio-molecule3d" },
|
| 3984 |
{ name = "h5py" },
|
| 3985 |
{ name = "huggingface-hub" },
|
|
|
|
| 4015 |
{ name = "biotite", specifier = "==0.41.2" },
|
| 4016 |
{ name = "datasets", specifier = ">=4.3.0" },
|
| 4017 |
{ name = "esm", specifier = "==3.1.3" },
|
| 4018 |
+
{ name = "gradio", extras = ["oauth"], specifier = ">=5.49.1" },
|
| 4019 |
{ name = "gradio-molecule3d", specifier = ">=0.0.7" },
|
| 4020 |
{ name = "h5py", specifier = ">=3.15.1" },
|
| 4021 |
{ name = "huggingface-hub", specifier = ">=0.36.0" },
|