Julien Blanchon
commited on
Commit
·
a81122c
1
Parent(s):
2a76037
Update
Browse files- app.py +2 -28
- pyproject.toml +1 -0
- requirements.txt +2 -1
- uv.lock +56 -0
app.py
CHANGED
@@ -1,7 +1,3 @@
|
|
1 |
-
import importlib
|
2 |
-
import os
|
3 |
-
import subprocess
|
4 |
-
import sys
|
5 |
import gradio as gr
|
6 |
import spaces # type: ignore - ZeroGPU spaces library
|
7 |
import numpy as np
|
@@ -15,6 +11,7 @@ from tim.schedulers.transition import TransitionSchedule
|
|
15 |
from tim.utils.misc_utils import instantiate_from_config, init_from_ckpt
|
16 |
from tim.models.vae import get_sd_vae, get_dc_ae, sd_vae_decode, dc_ae_decode
|
17 |
from tim.models.utils.text_encoders import load_text_encoder, encode_prompt
|
|
|
18 |
|
19 |
# Configuration
|
20 |
dtype = torch.bfloat16
|
@@ -254,32 +251,9 @@ css = """
|
|
254 |
}
|
255 |
"""
|
256 |
|
257 |
-
|
258 |
-
def ensure_flash_attn():
|
259 |
-
try:
|
260 |
-
importlib.import_module("flash_attn")
|
261 |
-
return
|
262 |
-
except Exception:
|
263 |
-
pass
|
264 |
-
|
265 |
-
# Optional: skip source builds if a wheel is available
|
266 |
-
env = os.environ.copy()
|
267 |
-
env["FLASH_ATTENTION_SKIP_CUDA_BUILD"] = "TRUE"
|
268 |
-
|
269 |
-
# Fast path: try pip (prebuilt wheels exist for common torch/CUDA combos)
|
270 |
-
subprocess.check_call(
|
271 |
-
[sys.executable, "-m", "pip", "install", "--no-build-isolation", "flash-attn"],
|
272 |
-
env=env,
|
273 |
-
)
|
274 |
-
|
275 |
-
# Validate import
|
276 |
-
importlib.import_module("flash_attn")
|
277 |
-
|
278 |
-
|
279 |
# Initialize model components
|
280 |
try:
|
281 |
-
|
282 |
-
ensure_flash_attn()
|
283 |
load_model_components(device)
|
284 |
print("Model components loaded successfully!")
|
285 |
except Exception as e:
|
|
|
|
|
|
|
|
|
|
|
1 |
import gradio as gr
|
2 |
import spaces # type: ignore - ZeroGPU spaces library
|
3 |
import numpy as np
|
|
|
11 |
from tim.utils.misc_utils import instantiate_from_config, init_from_ckpt
|
12 |
from tim.models.vae import get_sd_vae, get_dc_ae, sd_vae_decode, dc_ae_decode
|
13 |
from tim.models.utils.text_encoders import load_text_encoder, encode_prompt
|
14 |
+
from kernels import get_kernel
|
15 |
|
16 |
# Configuration
|
17 |
dtype = torch.bfloat16
|
|
|
251 |
}
|
252 |
"""
|
253 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
# Initialize model components
|
255 |
try:
|
256 |
+
flash_attn = get_kernel("kernels-community/flash-attn")
|
|
|
257 |
load_model_components(device)
|
258 |
print("Model components loaded successfully!")
|
259 |
except Exception as e:
|
pyproject.toml
CHANGED
@@ -13,6 +13,7 @@ dependencies = [
|
|
13 |
"gradio>=5.44.1",
|
14 |
"imageio==2.34.2",
|
15 |
"imageio-ffmpeg==0.5.1",
|
|
|
16 |
"moviepy==1.0.3",
|
17 |
"numpy==1.26.0",
|
18 |
"omegaconf>=2.3.0",
|
|
|
13 |
"gradio>=5.44.1",
|
14 |
"imageio==2.34.2",
|
15 |
"imageio-ffmpeg==0.5.1",
|
16 |
+
"kernels>=0.10.0",
|
17 |
"moviepy==1.0.3",
|
18 |
"numpy==1.26.0",
|
19 |
"omegaconf>=2.3.0",
|
requirements.txt
CHANGED
@@ -11,4 +11,5 @@ Pillow
|
|
11 |
safetensors
|
12 |
tqdm
|
13 |
# flash-attn @ https://github.com/mjun0812/flash-attention-prebuild-wheels/releases/download/v0.3.14/flash_attn-2.8.2+cu129torch2.8-cp310-cp310-linux_x86_64.whl
|
14 |
-
accelerate
|
|
|
|
11 |
safetensors
|
12 |
tqdm
|
13 |
# flash-attn @ https://github.com/mjun0812/flash-attention-prebuild-wheels/releases/download/v0.3.14/flash_attn-2.8.2+cu129torch2.8-cp310-cp310-linux_x86_64.whl
|
14 |
+
accelerate
|
15 |
+
kernels
|
uv.lock
CHANGED
@@ -697,6 +697,21 @@ wheels = [
|
|
697 |
{ url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" },
|
698 |
]
|
699 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
700 |
[[package]]
|
701 |
name = "markdown-it-py"
|
702 |
version = "4.0.0"
|
@@ -2147,6 +2162,7 @@ dependencies = [
|
|
2147 |
{ name = "gradio" },
|
2148 |
{ name = "imageio" },
|
2149 |
{ name = "imageio-ffmpeg" },
|
|
|
2150 |
{ name = "moviepy" },
|
2151 |
{ name = "numpy" },
|
2152 |
{ name = "omegaconf" },
|
@@ -2174,6 +2190,7 @@ requires-dist = [
|
|
2174 |
{ name = "gradio", specifier = ">=5.44.1" },
|
2175 |
{ name = "imageio", specifier = "==2.34.2" },
|
2176 |
{ name = "imageio-ffmpeg", specifier = "==0.5.1" },
|
|
|
2177 |
{ name = "moviepy", specifier = "==1.0.3" },
|
2178 |
{ name = "numpy", specifier = "==1.26.0" },
|
2179 |
{ name = "omegaconf", specifier = ">=2.3.0" },
|
@@ -2241,6 +2258,45 @@ wheels = [
|
|
2241 |
{ url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" },
|
2242 |
]
|
2243 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2244 |
[[package]]
|
2245 |
name = "tomlkit"
|
2246 |
version = "0.13.3"
|
|
|
697 |
{ url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" },
|
698 |
]
|
699 |
|
700 |
+
[[package]]
|
701 |
+
name = "kernels"
|
702 |
+
version = "0.10.0"
|
703 |
+
source = { registry = "https://pypi.org/simple" }
|
704 |
+
dependencies = [
|
705 |
+
{ name = "huggingface-hub" },
|
706 |
+
{ name = "packaging" },
|
707 |
+
{ name = "pyyaml" },
|
708 |
+
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
709 |
+
]
|
710 |
+
sdist = { url = "https://files.pythonhosted.org/packages/6f/81/79e43ff7355c479633e92df61eeadbf4ac32080c1db4dd61717fc7fc2d05/kernels-0.10.0.tar.gz", hash = "sha256:8c3acef89ac3275a3e91e6611e5131f640cefcc5d5960bf0484184ce45786a03", size = 43222, upload-time = "2025-09-05T08:54:14.441Z" }
|
711 |
+
wheels = [
|
712 |
+
{ url = "https://files.pythonhosted.org/packages/1e/43/69bd3f18bb3b5d17d85658222335f186f08e655fc23b18fb5f7471d777fa/kernels-0.10.0-py3-none-any.whl", hash = "sha256:8a2c7bf8e3024412df44df4bfd0720007f4e035d6be581fc25afad23b471fa7e", size = 37628, upload-time = "2025-09-05T08:54:13.043Z" },
|
713 |
+
]
|
714 |
+
|
715 |
[[package]]
|
716 |
name = "markdown-it-py"
|
717 |
version = "4.0.0"
|
|
|
2162 |
{ name = "gradio" },
|
2163 |
{ name = "imageio" },
|
2164 |
{ name = "imageio-ffmpeg" },
|
2165 |
+
{ name = "kernels" },
|
2166 |
{ name = "moviepy" },
|
2167 |
{ name = "numpy" },
|
2168 |
{ name = "omegaconf" },
|
|
|
2190 |
{ name = "gradio", specifier = ">=5.44.1" },
|
2191 |
{ name = "imageio", specifier = "==2.34.2" },
|
2192 |
{ name = "imageio-ffmpeg", specifier = "==0.5.1" },
|
2193 |
+
{ name = "kernels", specifier = ">=0.10.0" },
|
2194 |
{ name = "moviepy", specifier = "==1.0.3" },
|
2195 |
{ name = "numpy", specifier = "==1.26.0" },
|
2196 |
{ name = "omegaconf", specifier = ">=2.3.0" },
|
|
|
2258 |
{ url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" },
|
2259 |
]
|
2260 |
|
2261 |
+
[[package]]
|
2262 |
+
name = "tomli"
|
2263 |
+
version = "2.2.1"
|
2264 |
+
source = { registry = "https://pypi.org/simple" }
|
2265 |
+
sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" }
|
2266 |
+
wheels = [
|
2267 |
+
{ url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077, upload-time = "2024-11-27T22:37:54.956Z" },
|
2268 |
+
{ url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429, upload-time = "2024-11-27T22:37:56.698Z" },
|
2269 |
+
{ url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067, upload-time = "2024-11-27T22:37:57.63Z" },
|
2270 |
+
{ url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030, upload-time = "2024-11-27T22:37:59.344Z" },
|
2271 |
+
{ url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898, upload-time = "2024-11-27T22:38:00.429Z" },
|
2272 |
+
{ url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894, upload-time = "2024-11-27T22:38:02.094Z" },
|
2273 |
+
{ url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319, upload-time = "2024-11-27T22:38:03.206Z" },
|
2274 |
+
{ url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273, upload-time = "2024-11-27T22:38:04.217Z" },
|
2275 |
+
{ url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310, upload-time = "2024-11-27T22:38:05.908Z" },
|
2276 |
+
{ url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309, upload-time = "2024-11-27T22:38:06.812Z" },
|
2277 |
+
{ url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762, upload-time = "2024-11-27T22:38:07.731Z" },
|
2278 |
+
{ url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453, upload-time = "2024-11-27T22:38:09.384Z" },
|
2279 |
+
{ url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486, upload-time = "2024-11-27T22:38:10.329Z" },
|
2280 |
+
{ url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349, upload-time = "2024-11-27T22:38:11.443Z" },
|
2281 |
+
{ url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159, upload-time = "2024-11-27T22:38:13.099Z" },
|
2282 |
+
{ url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243, upload-time = "2024-11-27T22:38:14.766Z" },
|
2283 |
+
{ url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645, upload-time = "2024-11-27T22:38:15.843Z" },
|
2284 |
+
{ url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584, upload-time = "2024-11-27T22:38:17.645Z" },
|
2285 |
+
{ url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875, upload-time = "2024-11-27T22:38:19.159Z" },
|
2286 |
+
{ url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418, upload-time = "2024-11-27T22:38:20.064Z" },
|
2287 |
+
{ url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708, upload-time = "2024-11-27T22:38:21.659Z" },
|
2288 |
+
{ url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582, upload-time = "2024-11-27T22:38:22.693Z" },
|
2289 |
+
{ url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543, upload-time = "2024-11-27T22:38:24.367Z" },
|
2290 |
+
{ url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691, upload-time = "2024-11-27T22:38:26.081Z" },
|
2291 |
+
{ url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170, upload-time = "2024-11-27T22:38:27.921Z" },
|
2292 |
+
{ url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530, upload-time = "2024-11-27T22:38:29.591Z" },
|
2293 |
+
{ url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666, upload-time = "2024-11-27T22:38:30.639Z" },
|
2294 |
+
{ url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954, upload-time = "2024-11-27T22:38:31.702Z" },
|
2295 |
+
{ url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724, upload-time = "2024-11-27T22:38:32.837Z" },
|
2296 |
+
{ url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383, upload-time = "2024-11-27T22:38:34.455Z" },
|
2297 |
+
{ url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" },
|
2298 |
+
]
|
2299 |
+
|
2300 |
[[package]]
|
2301 |
name = "tomlkit"
|
2302 |
version = "0.13.3"
|