mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-07-23 12:21:08 +00:00
feat(model): Support Qwen2.5 VL models (#2743)
This commit is contained in:
parent
e04b0f9c19
commit
0188d2367b
@ -157,6 +157,9 @@ hf_kimi = [
|
||||
hf_qwen3 = [
|
||||
"transformers>=4.51.0",
|
||||
]
|
||||
hf_qwen2vl = [
|
||||
"transformers>=4.34.0",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
|
@ -553,6 +553,7 @@ class QwenAdapter(NewHFChatModelAdapter):
|
||||
and "1.5" in lower_model_name_or_path
|
||||
and "moe" not in lower_model_name_or_path
|
||||
and "qwen2" not in lower_model_name_or_path
|
||||
and "vl" not in lower_model_name_or_path
|
||||
)
|
||||
|
||||
|
||||
@ -565,10 +566,12 @@ class Qwen2Adapter(QwenAdapter):
|
||||
(
|
||||
"qwen2" in lower_model_name_or_path
|
||||
and "instruct" in lower_model_name_or_path
|
||||
and "vl" not in lower_model_name_or_path
|
||||
)
|
||||
or (
|
||||
"qwen2.5" in lower_model_name_or_path
|
||||
and "instruct" in lower_model_name_or_path
|
||||
and "vl" not in lower_model_name_or_path
|
||||
)
|
||||
)
|
||||
|
||||
@ -608,6 +611,7 @@ class Qwen3Adapter(QwenAdapter):
|
||||
return lower_model_name_or_path and (
|
||||
"qwen3" in lower_model_name_or_path
|
||||
and "base" not in lower_model_name_or_path
|
||||
and "vl" not in lower_model_name_or_path
|
||||
)
|
||||
|
||||
def check_transformer_version(self, current_version: str) -> None:
|
||||
@ -664,6 +668,60 @@ class Qwen3Adapter(QwenAdapter):
|
||||
return str_prompt
|
||||
|
||||
|
||||
class Qwen2VLAdapter(NewHFChatModelAdapter):
|
||||
def check_transformer_version(self, current_version: str) -> None:
|
||||
if not current_version >= "4.37.0":
|
||||
raise ValueError(
|
||||
"Qwen2.5VL model require transformers.__version__>=4.37.0, please "
|
||||
"upgrade your transformers package."
|
||||
)
|
||||
|
||||
def do_match(self, lower_model_name_or_path: Optional[str] = None):
|
||||
return (
|
||||
lower_model_name_or_path
|
||||
and "qwen2" in lower_model_name_or_path
|
||||
and "vl" in lower_model_name_or_path
|
||||
and "instruct" in lower_model_name_or_path
|
||||
)
|
||||
|
||||
def load(self, model_path: str, from_pretrained_kwargs: dict):
|
||||
try:
|
||||
from transformers import (
|
||||
Qwen2_5_VLForConditionalGeneration,
|
||||
)
|
||||
except ImportError as exc:
|
||||
raise ValueError(
|
||||
"Could not import qwen2.5 vl model, please upgrade your "
|
||||
"transformers package to 4.37.0 or later."
|
||||
) from exc
|
||||
|
||||
logger.info(
|
||||
f"Load model from {model_path}, from_pretrained_kwargs: "
|
||||
f"{from_pretrained_kwargs}"
|
||||
)
|
||||
|
||||
revision = from_pretrained_kwargs.get("revision", "main")
|
||||
trust_remote_code = from_pretrained_kwargs.get(
|
||||
"trust_remote_code", self.trust_remote_code
|
||||
)
|
||||
low_cpu_mem_usage = from_pretrained_kwargs.get("low_cpu_mem_usage", False)
|
||||
if "trust_remote_code" not in from_pretrained_kwargs:
|
||||
from_pretrained_kwargs["trust_remote_code"] = trust_remote_code
|
||||
if "low_cpu_mem_usage" not in from_pretrained_kwargs:
|
||||
from_pretrained_kwargs["low_cpu_mem_usage"] = low_cpu_mem_usage
|
||||
|
||||
tokenizer = self.load_tokenizer(
|
||||
model_path,
|
||||
revision,
|
||||
use_fast=self.use_fast_tokenizer(),
|
||||
trust_remote_code=trust_remote_code,
|
||||
)
|
||||
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
|
||||
model_path, **from_pretrained_kwargs
|
||||
)
|
||||
return model, tokenizer
|
||||
|
||||
|
||||
class QwenOmniAdapter(NewHFChatModelAdapter):
|
||||
def do_match(self, lower_model_name_or_path: Optional[str] = None):
|
||||
return lower_model_name_or_path and (
|
||||
@ -1075,6 +1133,7 @@ register_model_adapter(GLM4Adapter, supported_models=COMMON_HF_GLM_MODELS)
|
||||
register_model_adapter(GLM40414Adapter)
|
||||
register_model_adapter(Codegeex4Adapter)
|
||||
register_model_adapter(Qwen2Adapter, supported_models=COMMON_HF_QWEN25_MODELS)
|
||||
register_model_adapter(Qwen2VLAdapter)
|
||||
register_model_adapter(Internlm2Adapter)
|
||||
register_model_adapter(DeepseekV3R1Adapter, supported_models=COMMON_HF_DEEPSEEK__MODELS)
|
||||
register_model_adapter(KimiVLAdapter)
|
||||
|
@ -1,21 +1,21 @@
|
||||
"""
|
||||
Run unit test with command: pytest dbgpt/datasource/rdbms/tests/test_conn_mysql.py
|
||||
docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=12345678 mysql:5.7
|
||||
mysql -h 127.0.0.1 -uroot -p -P3307
|
||||
Enter password:
|
||||
Welcome to the MySQL monitor. Commands end with ; or \g.
|
||||
Your MySQL connection id is 2
|
||||
Server version: 5.7.41 MySQL Community Server (GPL)
|
||||
Run unit test with command: pytest dbgpt/datasource/rdbms/tests/test_conn_mysql.py
|
||||
docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=12345678 mysql:5.7
|
||||
mysql -h 127.0.0.1 -uroot -p -P3307
|
||||
Enter password:
|
||||
Welcome to the MySQL monitor. Commands end with ; or \g.
|
||||
Your MySQL connection id is 2
|
||||
Server version: 5.7.41 MySQL Community Server (GPL)
|
||||
|
||||
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
|
||||
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
|
||||
|
||||
Oracle is a registered trademark of Oracle Corporation and/or its
|
||||
affiliates. Other names may be trademarks of their respective
|
||||
owners.
|
||||
Oracle is a registered trademark of Oracle Corporation and/or its
|
||||
affiliates. Other names may be trademarks of their respective
|
||||
owners.
|
||||
|
||||
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
||||
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
||||
|
||||
> create database test;
|
||||
> create database test;
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
39
uv.lock
39
uv.lock
@ -3671,6 +3671,10 @@ hf-kimi = [
|
||||
{ name = "tiktoken" },
|
||||
{ name = "transformers", version = "4.51.2", source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } },
|
||||
]
|
||||
hf-qwen2vl = [
|
||||
{ name = "transformers", version = "4.51.2", source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }, marker = "(extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cpu') or (extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cuda118') or (extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cuda121') or (extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra == 'extra-14-dbgpt-acc-auto-cpu' and extra == 'extra-14-dbgpt-acc-auto-cuda118') or (extra == 'extra-14-dbgpt-acc-auto-cpu' and extra == 'extra-14-dbgpt-acc-auto-cuda121') or (extra == 'extra-14-dbgpt-acc-auto-cpu' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra == 'extra-14-dbgpt-acc-auto-cuda118' and extra == 'extra-14-dbgpt-acc-auto-cuda121') or (extra == 'extra-14-dbgpt-acc-auto-cuda118' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra == 'extra-14-dbgpt-acc-auto-cuda121' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra != 'extra-14-dbgpt-acc-auto-cuda124' and extra == 'extra-5-dbgpt-hf-kimi') or (extra != 'extra-14-dbgpt-acc-auto-auto' and extra != 'extra-14-dbgpt-acc-auto-cpu' and extra != 'extra-14-dbgpt-acc-auto-cuda118' and extra != 'extra-14-dbgpt-acc-auto-cuda121' and extra == 'extra-5-dbgpt-hf-kimi')" },
|
||||
{ name = "transformers", version = "4.51.3", source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }, marker = "(extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cpu') or (extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cuda118') or (extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cuda121') or (extra == 'extra-14-dbgpt-acc-auto-auto' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra == 'extra-14-dbgpt-acc-auto-cpu' and extra == 'extra-14-dbgpt-acc-auto-cuda118') or (extra == 'extra-14-dbgpt-acc-auto-cpu' and extra == 'extra-14-dbgpt-acc-auto-cuda121') or (extra == 'extra-14-dbgpt-acc-auto-cpu' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra == 'extra-14-dbgpt-acc-auto-cuda118' and extra == 'extra-14-dbgpt-acc-auto-cuda121') or (extra == 'extra-14-dbgpt-acc-auto-cuda118' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra == 'extra-14-dbgpt-acc-auto-cuda121' and extra == 'extra-14-dbgpt-acc-auto-cuda124') or (extra != 'extra-14-dbgpt-acc-auto-cuda124' and extra == 'extra-5-dbgpt-hf-glm4') or (extra != 'extra-14-dbgpt-acc-auto-cuda124' and extra != 'extra-5-dbgpt-hf-kimi') or (extra != 'extra-14-dbgpt-acc-auto-cuda124' and extra == 'extra-5-dbgpt-hf-kimi' and extra == 'extra-5-dbgpt-hf-qwen-omni') or (extra != 'extra-14-dbgpt-acc-auto-cuda124' and extra == 'extra-5-dbgpt-hf-kimi' and extra == 'extra-5-dbgpt-hf-qwen3') or (extra != 'extra-14-dbgpt-acc-auto-auto' and extra != 'extra-14-dbgpt-acc-auto-cpu' and extra != 'extra-14-dbgpt-acc-auto-cuda118' and extra != 'extra-14-dbgpt-acc-auto-cuda121' and extra == 'extra-5-dbgpt-hf-glm4') or (extra != 'extra-14-dbgpt-acc-auto-auto' and extra != 'extra-14-dbgpt-acc-auto-cpu' and extra != 'extra-14-dbgpt-acc-auto-cuda118' and extra != 'extra-14-dbgpt-acc-auto-cuda121' and extra != 'extra-5-dbgpt-hf-kimi') or (extra != 'extra-14-dbgpt-acc-auto-auto' and extra != 'extra-14-dbgpt-acc-auto-cpu' and extra != 'extra-14-dbgpt-acc-auto-cuda118' and extra != 'extra-14-dbgpt-acc-auto-cuda121' and extra == 'extra-5-dbgpt-hf-kimi' and extra == 'extra-5-dbgpt-hf-qwen-omni') or (extra != 'extra-14-dbgpt-acc-auto-auto' and extra != 'extra-14-dbgpt-acc-auto-cpu' and extra != 'extra-14-dbgpt-acc-auto-cuda118' and extra != 'extra-14-dbgpt-acc-auto-cuda121' and extra == 'extra-5-dbgpt-hf-kimi' and extra == 'extra-5-dbgpt-hf-qwen3')" },
|
||||
]
|
||||
hf-qwen3 = [
|
||||
{ name = "transformers", version = "4.51.3", source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } },
|
||||
]
|
||||
@ -3796,6 +3800,7 @@ requires-dist = [
|
||||
{ name = "transformers", marker = "extra == 'hf'", specifier = ">=4.46.0" },
|
||||
{ name = "transformers", marker = "extra == 'hf-glm4'", specifier = ">=4.51.3" },
|
||||
{ name = "transformers", marker = "extra == 'hf-kimi'", specifier = "<4.51.3" },
|
||||
{ name = "transformers", marker = "extra == 'hf-qwen2vl'", specifier = ">=4.34.0" },
|
||||
{ name = "transformers", marker = "extra == 'hf-qwen3'", specifier = ">=4.51.0" },
|
||||
{ name = "typeguard" },
|
||||
{ name = "typing-inspect" },
|
||||
@ -3803,7 +3808,7 @@ requires-dist = [
|
||||
{ name = "xlrd", marker = "extra == 'framework'", specifier = "==2.0.1" },
|
||||
{ name = "zhipuai", marker = "extra == 'proxy-zhipuai'", specifier = ">=2.1.5" },
|
||||
]
|
||||
provides-extras = ["client", "cli", "agent", "simple-framework", "framework", "hf", "code", "llama-cpp", "llama-cpp-server", "proxy-ollama", "proxy-zhipuai", "proxy-tongyi", "proxy-qianfan", "proxy-openai", "proxy-anthropic", "model-vl", "hf-qwen-omni", "hf-glm4", "hf-kimi", "hf-qwen3"]
|
||||
provides-extras = ["client", "cli", "agent", "simple-framework", "framework", "hf", "code", "llama-cpp", "llama-cpp-server", "proxy-ollama", "proxy-zhipuai", "proxy-tongyi", "proxy-qianfan", "proxy-openai", "proxy-anthropic", "model-vl", "hf-qwen-omni", "hf-glm4", "hf-kimi", "hf-qwen3", "hf-qwen2vl"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = []
|
||||
@ -10929,23 +10934,23 @@ dependencies = [
|
||||
{ name = "cymem" },
|
||||
{ name = "murmurhash" },
|
||||
]
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f2/4e/76dbf784e7d4ed069f91a4c249b1d6ec6856ef0c0b2fd96992895d458b15/preshed-3.0.9.tar.gz", hash = "sha256:721863c5244ffcd2651ad0928951a2c7c77b102f4e11a251ad85d37ee7621660" }
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f2/4e/76dbf784e7d4ed069f91a4c249b1d6ec6856ef0c0b2fd96992895d458b15/preshed-3.0.9.tar.gz", hash = "sha256:721863c5244ffcd2651ad0928951a2c7c77b102f4e11a251ad85d37ee7621660", size = 14478 }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/38/7f/a7d3eeaee67ecebbe51866c1aae6310e34cefa0a64821aed963a0a167b51/preshed-3.0.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f96ef4caf9847b2bb9868574dcbe2496f974e41c2b83d6621c24fb4c3fc57e3" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/61/4e/f251271ee9f0e0eb0ebe219a8df57ff8511a3b7a83e79e24d37105034164/preshed-3.0.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a61302cf8bd30568631adcdaf9e6b21d40491bd89ba8ebf67324f98b6c2a2c05" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/eb/8b/6c8a153ea39b4750c20ed48dd9be4bf9d8c0b4e7822fc63c68cd2891703d/preshed-3.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99499e8a58f58949d3f591295a97bca4e197066049c96f5d34944dd21a497193" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/42/59/8f65ad22c13020ff281529e415c32a56cfa691d24b0eca2eb3d756e4d644/preshed-3.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea6b6566997dc3acd8c6ee11a89539ac85c77275b4dcefb2dc746d11053a5af8" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/72/108426ca3b6e7f16db30b3b9396e3fa45a3fd5a76f6532ab04beada2e4e3/preshed-3.0.9-cp310-cp310-win_amd64.whl", hash = "sha256:bfd523085a84b1338ff18f61538e1cfcdedc4b9e76002589a301c364d19a2e36" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/c0/1e/05fa559f53b635d96b233b63e93accb75215025b997486f7290991bec6c3/preshed-3.0.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7c2364da27f2875524ce1ca754dc071515a9ad26eb5def4c7e69129a13c9a59" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/a8/b3/1a73ba16bab53043fd19dd0a7838ae05c705dccb329404dd4ad5925767f1/preshed-3.0.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:182138033c0730c683a6d97e567ceb8a3e83f3bff5704f300d582238dbd384b3" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/2c/9a/919d3708f6fa98d9eab1a186e6b30ab25a4595907bbc1fea5c1e8faa9b9d/preshed-3.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:345a10be3b86bcc6c0591d343a6dc2bfd86aa6838c30ced4256dfcfa836c3a64" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/db/69/d9ab108dc670b5be9e292bbd555f39e6eb0a4baab25cd28f792850d5e65b/preshed-3.0.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51d0192274aa061699b284f9fd08416065348edbafd64840c3889617ee1609de" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e4/fc/78cdbdb79f5d6d45949e72c32445d6c060977ad50a1dcfc0392622165f7c/preshed-3.0.9-cp311-cp311-win_amd64.whl", hash = "sha256:96b857d7a62cbccc3845ac8c41fd23addf052821be4eb987f2eb0da3d8745aa1" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/fe/7e/a41595876f644d8bd2c3d5422d7211e876b1848a8cc0c03cce33d9cd048a/preshed-3.0.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b4fe6720012c62e6d550d6a5c1c7ad88cacef8388d186dad4bafea4140d9d198" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e7/68/1b4772ff3232e71b63a9206936eb1f75e976ebf4e4e24dc9b3ea7b68369b/preshed-3.0.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e04f05758875be9751e483bd3c519c22b00d3b07f5a64441ec328bb9e3c03700" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/52/48eefe876a3841c5850bd955daf145d0e408567c8f46a997bce136dc259d/preshed-3.0.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a55091d0e395f1fdb62ab43401bb9f8b46c7d7794d5b071813c29dc1ab22fd0" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/55/ea/9e6c1a7b1d623f6340379290d603a3b8a71ce52a93f842fbf7547f7f1812/preshed-3.0.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7de8f5138bcac7870424e09684dc3dd33c8e30e81b269f6c9ede3d8c7bb8e257" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/db/e4/d074efb7e8a8873d346d2fb8dd43e19b1eae0697351c0d79cff947cba46e/preshed-3.0.9-cp312-cp312-win_amd64.whl", hash = "sha256:24229c77364628743bc29c5620c5d6607ed104f0e02ae31f8a030f99a78a5ceb" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/38/7f/a7d3eeaee67ecebbe51866c1aae6310e34cefa0a64821aed963a0a167b51/preshed-3.0.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f96ef4caf9847b2bb9868574dcbe2496f974e41c2b83d6621c24fb4c3fc57e3", size = 132225 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/61/4e/f251271ee9f0e0eb0ebe219a8df57ff8511a3b7a83e79e24d37105034164/preshed-3.0.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a61302cf8bd30568631adcdaf9e6b21d40491bd89ba8ebf67324f98b6c2a2c05", size = 127791 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/eb/8b/6c8a153ea39b4750c20ed48dd9be4bf9d8c0b4e7822fc63c68cd2891703d/preshed-3.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99499e8a58f58949d3f591295a97bca4e197066049c96f5d34944dd21a497193", size = 150279 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/42/59/8f65ad22c13020ff281529e415c32a56cfa691d24b0eca2eb3d756e4d644/preshed-3.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea6b6566997dc3acd8c6ee11a89539ac85c77275b4dcefb2dc746d11053a5af8", size = 156914 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/72/108426ca3b6e7f16db30b3b9396e3fa45a3fd5a76f6532ab04beada2e4e3/preshed-3.0.9-cp310-cp310-win_amd64.whl", hash = "sha256:bfd523085a84b1338ff18f61538e1cfcdedc4b9e76002589a301c364d19a2e36", size = 122224 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/c0/1e/05fa559f53b635d96b233b63e93accb75215025b997486f7290991bec6c3/preshed-3.0.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7c2364da27f2875524ce1ca754dc071515a9ad26eb5def4c7e69129a13c9a59", size = 132972 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/a8/b3/1a73ba16bab53043fd19dd0a7838ae05c705dccb329404dd4ad5925767f1/preshed-3.0.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:182138033c0730c683a6d97e567ceb8a3e83f3bff5704f300d582238dbd384b3", size = 128751 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/2c/9a/919d3708f6fa98d9eab1a186e6b30ab25a4595907bbc1fea5c1e8faa9b9d/preshed-3.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:345a10be3b86bcc6c0591d343a6dc2bfd86aa6838c30ced4256dfcfa836c3a64", size = 150050 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/db/69/d9ab108dc670b5be9e292bbd555f39e6eb0a4baab25cd28f792850d5e65b/preshed-3.0.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51d0192274aa061699b284f9fd08416065348edbafd64840c3889617ee1609de", size = 157159 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e4/fc/78cdbdb79f5d6d45949e72c32445d6c060977ad50a1dcfc0392622165f7c/preshed-3.0.9-cp311-cp311-win_amd64.whl", hash = "sha256:96b857d7a62cbccc3845ac8c41fd23addf052821be4eb987f2eb0da3d8745aa1", size = 122323 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/fe/7e/a41595876f644d8bd2c3d5422d7211e876b1848a8cc0c03cce33d9cd048a/preshed-3.0.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b4fe6720012c62e6d550d6a5c1c7ad88cacef8388d186dad4bafea4140d9d198", size = 133196 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e7/68/1b4772ff3232e71b63a9206936eb1f75e976ebf4e4e24dc9b3ea7b68369b/preshed-3.0.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e04f05758875be9751e483bd3c519c22b00d3b07f5a64441ec328bb9e3c03700", size = 128594 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/52/48eefe876a3841c5850bd955daf145d0e408567c8f46a997bce136dc259d/preshed-3.0.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a55091d0e395f1fdb62ab43401bb9f8b46c7d7794d5b071813c29dc1ab22fd0", size = 149220 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/55/ea/9e6c1a7b1d623f6340379290d603a3b8a71ce52a93f842fbf7547f7f1812/preshed-3.0.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7de8f5138bcac7870424e09684dc3dd33c8e30e81b269f6c9ede3d8c7bb8e257", size = 156809 },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/db/e4/d074efb7e8a8873d346d2fb8dd43e19b1eae0697351c0d79cff947cba46e/preshed-3.0.9-cp312-cp312-win_amd64.whl", hash = "sha256:24229c77364628743bc29c5620c5d6607ed104f0e02ae31f8a030f99a78a5ceb", size = 122428 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
Loading…
Reference in New Issue
Block a user