Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files- pyproject.toml +6 -6
- src/vocalizr/__init__.py +14 -5
- src/vocalizr/gui.py +12 -25
- src/vocalizr/model.py +20 -10
- uv.lock +53 -59
pyproject.toml
CHANGED
@@ -21,24 +21,24 @@ build-backend = "uv_build"
|
|
21 |
[dependency-groups]
|
22 |
dev = [
|
23 |
"mypy>=1.15.0",
|
24 |
-
"pyrefly>=0.14.0",
|
25 |
"black>=25.1.0",
|
26 |
"watchfiles>=1.0.5",
|
27 |
-
"ruff>=0.11.
|
28 |
"typos>=1.32.0",
|
29 |
"pylint>=3.3.7",
|
30 |
"pyright>=1.1.400",
|
31 |
-
"huggingface-hub[cli,hf-transfer]>=0.31.
|
|
|
32 |
]
|
33 |
|
34 |
[tool.typos.default.extend-words]
|
35 |
Chatacter = "Chatacter"
|
36 |
|
37 |
-
[tool.mypy]
|
38 |
-
ignore_missing_imports = true
|
39 |
-
|
40 |
[tool.pylint]
|
41 |
disable = ["E1101", "C0114"]
|
42 |
|
|
|
|
|
|
|
43 |
[tool.uv.sources]
|
44 |
en-core-web-sm = { url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl" }
|
|
|
21 |
[dependency-groups]
|
22 |
dev = [
|
23 |
"mypy>=1.15.0",
|
|
|
24 |
"black>=25.1.0",
|
25 |
"watchfiles>=1.0.5",
|
26 |
+
"ruff>=0.11.10",
|
27 |
"typos>=1.32.0",
|
28 |
"pylint>=3.3.7",
|
29 |
"pyright>=1.1.400",
|
30 |
+
"huggingface-hub[cli,hf-transfer]>=0.31.2",
|
31 |
+
"ty>=0.0.1a3",
|
32 |
]
|
33 |
|
34 |
[tool.typos.default.extend-words]
|
35 |
Chatacter = "Chatacter"
|
36 |
|
|
|
|
|
|
|
37 |
[tool.pylint]
|
38 |
disable = ["E1101", "C0114"]
|
39 |
|
40 |
+
[tool.ruff]
|
41 |
+
show-fixes = true
|
42 |
+
|
43 |
[tool.uv.sources]
|
44 |
en-core-web-sm = { url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl" }
|
src/vocalizr/__init__.py
CHANGED
@@ -1,16 +1,24 @@
|
|
1 |
from datetime import datetime
|
2 |
from os import getenv
|
3 |
from pathlib import Path
|
4 |
-
|
5 |
from dotenv import load_dotenv
|
6 |
from kokoro import KPipeline
|
7 |
from loguru import logger
|
8 |
from torch import cuda
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
load_dotenv()
|
11 |
|
12 |
-
DEBUG: bool = getenv(key="DEBUG", default="
|
13 |
-
CHAR_LIMIT: int = int(getenv(key="CHAR_LIMIT", default="-1"))
|
14 |
SERVER_NAME: str = getenv(key="GRADIO_SERVER_NAME", default="localhost")
|
15 |
SERVER_PORT: int = int(getenv(key="GRADIO_SERVER_PORT", default="8080"))
|
16 |
PIPELINE: KPipeline = KPipeline(lang_code="a", repo_id="hexgrad/Kokoro-82M")
|
@@ -32,11 +40,12 @@ logger.add(
|
|
32 |
colorize=True,
|
33 |
)
|
34 |
logger.info(f"CUDA Available: {CUDA_AVAILABLE}")
|
35 |
-
logger.info(f"
|
36 |
logger.info(f"Base directory: {BASE_DIR}")
|
37 |
logger.info(f"Results directory: {RESULTS_DIR}")
|
38 |
-
logger.info(f"
|
39 |
logger.info(f"Audio file path: {AUDIO_FILE_PATH}")
|
|
|
40 |
|
41 |
CHOICES: dict[str, str] = {
|
42 |
"🇺🇸 🚺 Heart ❤️": "af_heart",
|
|
|
1 |
from datetime import datetime
|
2 |
from os import getenv
|
3 |
from pathlib import Path
|
|
|
4 |
from dotenv import load_dotenv
|
5 |
from kokoro import KPipeline
|
6 |
from loguru import logger
|
7 |
from torch import cuda
|
8 |
+
from warnings import filterwarnings
|
9 |
+
|
10 |
+
filterwarnings(
|
11 |
+
action="ignore",
|
12 |
+
message="dropout option adds dropout after all but last recurrent layer",
|
13 |
+
)
|
14 |
+
filterwarnings(
|
15 |
+
action="ignore",
|
16 |
+
message="`torch.nn.utils.weight_norm` is deprecated",
|
17 |
+
)
|
18 |
|
19 |
load_dotenv()
|
20 |
|
21 |
+
DEBUG: bool = getenv(key="DEBUG", default="True").lower() == "true"
|
|
|
22 |
SERVER_NAME: str = getenv(key="GRADIO_SERVER_NAME", default="localhost")
|
23 |
SERVER_PORT: int = int(getenv(key="GRADIO_SERVER_PORT", default="8080"))
|
24 |
PIPELINE: KPipeline = KPipeline(lang_code="a", repo_id="hexgrad/Kokoro-82M")
|
|
|
40 |
colorize=True,
|
41 |
)
|
42 |
logger.info(f"CUDA Available: {CUDA_AVAILABLE}")
|
43 |
+
logger.info(f"Current date: {CURRENT_DATE}")
|
44 |
logger.info(f"Base directory: {BASE_DIR}")
|
45 |
logger.info(f"Results directory: {RESULTS_DIR}")
|
46 |
+
logger.info(f"Log directory: {LOG_DIR}")
|
47 |
logger.info(f"Audio file path: {AUDIO_FILE_PATH}")
|
48 |
+
logger.info(f"Log file path: {LOG_FILE_PATH}")
|
49 |
|
50 |
CHOICES: dict[str, str] = {
|
51 |
"🇺🇸 🚺 Heart ❤️": "af_heart",
|
src/vocalizr/gui.py
CHANGED
@@ -8,9 +8,9 @@ from gradio import (
|
|
8 |
Row,
|
9 |
Slider,
|
10 |
Textbox,
|
|
|
11 |
)
|
12 |
-
|
13 |
-
from vocalizr import CHOICES, CUDA_AVAILABLE
|
14 |
from vocalizr.model import generate_audio_for_text
|
15 |
|
16 |
|
@@ -22,10 +22,7 @@ def app_block() -> Blocks:
|
|
22 |
with Blocks() as app:
|
23 |
with Row():
|
24 |
with Column():
|
25 |
-
text: Textbox = Textbox(
|
26 |
-
label="Input Text",
|
27 |
-
info="Enter your text here",
|
28 |
-
)
|
29 |
with Row():
|
30 |
voice: Dropdown = Dropdown(
|
31 |
choices=list(CHOICES.items()),
|
@@ -36,14 +33,13 @@ def app_block() -> Blocks:
|
|
36 |
Dropdown(
|
37 |
choices=[("GPU 🚀", True), ("CPU 🐌", False)],
|
38 |
value=CUDA_AVAILABLE,
|
39 |
-
label="Hardware",
|
40 |
-
info="GPU is usually faster, but has a usage quota",
|
41 |
interactive=CUDA_AVAILABLE,
|
42 |
)
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
)
|
47 |
speed: Slider = Slider(
|
48 |
minimum=0.5,
|
49 |
maximum=2,
|
@@ -59,21 +55,12 @@ def app_block() -> Blocks:
|
|
59 |
autoplay=True,
|
60 |
)
|
61 |
with Row():
|
62 |
-
stream_btn: Button = Button(
|
63 |
-
|
64 |
-
variant="primary",
|
65 |
-
)
|
66 |
-
stop_btn: Button = Button(
|
67 |
-
value="Stop",
|
68 |
-
variant="stop",
|
69 |
-
)
|
70 |
stream_event = stream_btn.click(
|
71 |
fn=generate_audio_for_text,
|
72 |
-
inputs=[text, voice, speed, save_file],
|
73 |
outputs=[out_audio],
|
74 |
)
|
75 |
-
stop_btn.click(
|
76 |
-
fn=None,
|
77 |
-
cancels=stream_event,
|
78 |
-
)
|
79 |
return app
|
|
|
8 |
Row,
|
9 |
Slider,
|
10 |
Textbox,
|
11 |
+
Number,
|
12 |
)
|
13 |
+
from vocalizr import CHOICES, CUDA_AVAILABLE, DEBUG
|
|
|
14 |
from vocalizr.model import generate_audio_for_text
|
15 |
|
16 |
|
|
|
22 |
with Blocks() as app:
|
23 |
with Row():
|
24 |
with Column():
|
25 |
+
text: Textbox = Textbox(label="Input Text", info="Enter your text here")
|
|
|
|
|
|
|
26 |
with Row():
|
27 |
voice: Dropdown = Dropdown(
|
28 |
choices=list(CHOICES.items()),
|
|
|
33 |
Dropdown(
|
34 |
choices=[("GPU 🚀", True), ("CPU 🐌", False)],
|
35 |
value=CUDA_AVAILABLE,
|
36 |
+
label="Current Hardware",
|
|
|
37 |
interactive=CUDA_AVAILABLE,
|
38 |
)
|
39 |
+
char_limit: Number = Number(label="Character Limit", value=-1)
|
40 |
+
with Row():
|
41 |
+
save_file: Checkbox = Checkbox(label="Save Audio File")
|
42 |
+
debug: Checkbox = Checkbox(value=DEBUG, label="Debug")
|
43 |
speed: Slider = Slider(
|
44 |
minimum=0.5,
|
45 |
maximum=2,
|
|
|
55 |
autoplay=True,
|
56 |
)
|
57 |
with Row():
|
58 |
+
stream_btn: Button = Button(value="Generate", variant="primary")
|
59 |
+
stop_btn: Button = Button(value="Stop", variant="stop")
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
stream_event = stream_btn.click(
|
61 |
fn=generate_audio_for_text,
|
62 |
+
inputs=[text, voice, speed, save_file, debug, char_limit],
|
63 |
outputs=[out_audio],
|
64 |
)
|
65 |
+
stop_btn.click(fn=None, cancels=stream_event)
|
|
|
|
|
|
|
66 |
return app
|
src/vocalizr/model.py
CHANGED
@@ -7,7 +7,7 @@ from numpy import float32
|
|
7 |
from numpy.typing import NDArray
|
8 |
from soundfile import write
|
9 |
|
10 |
-
from vocalizr import AUDIO_FILE_PATH,
|
11 |
|
12 |
|
13 |
@logger.catch
|
@@ -31,10 +31,14 @@ def save_file_wav(audio: NDArray[float32]) -> None:
|
|
31 |
raise RuntimeError(f"Failed to save audio to {AUDIO_FILE_PATH}: {e}") from e
|
32 |
|
33 |
|
34 |
-
# noinspection PyTypeChecker
|
35 |
@logger.catch
|
36 |
def generate_audio_for_text(
|
37 |
-
text: str,
|
|
|
|
|
|
|
|
|
|
|
38 |
) -> Generator[tuple[Literal[24000], NDArray[float32]], Any, None]:
|
39 |
"""
|
40 |
Generates audio from the provided text using the specified voice and speed.
|
@@ -57,26 +61,32 @@ def generate_audio_for_text(
|
|
57 |
to False.
|
58 |
:type save_file: bool
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
:return: A generator that yields tuples, where the first element is the
|
61 |
fixed sampling rate of 24,000 Hz, and the second element is a NumPy
|
62 |
array representing the generated audio data.
|
63 |
:rtype: Generator[tuple[Literal[24000], NDArray[float32]], Any, None]
|
64 |
"""
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
logger.exception(
|
69 |
-
|
70 |
generator: Generator[KPipeline.Result, None, None] = PIPELINE(
|
71 |
text=text, voice=voice, speed=speed
|
72 |
)
|
73 |
-
logger.info(f"Generating audio for '{text}'")
|
74 |
for _, _, audio in generator:
|
75 |
if audio is None or isinstance(audio, str):
|
76 |
logger.exception(f"Unexpected type (audio): {type(audio)}")
|
77 |
raise Error(message=f"Unexpected type (audio): {type(audio)}")
|
|
|
78 |
audio_np: NDArray[float32] = audio.numpy()
|
79 |
if save_file:
|
|
|
80 |
save_file_wav(audio=audio_np)
|
81 |
-
logger.info(f"Yielding audio for '{text}'")
|
82 |
yield 24000, audio_np
|
|
|
7 |
from numpy.typing import NDArray
|
8 |
from soundfile import write
|
9 |
|
10 |
+
from vocalizr import AUDIO_FILE_PATH, PIPELINE
|
11 |
|
12 |
|
13 |
@logger.catch
|
|
|
31 |
raise RuntimeError(f"Failed to save audio to {AUDIO_FILE_PATH}: {e}") from e
|
32 |
|
33 |
|
|
|
34 |
@logger.catch
|
35 |
def generate_audio_for_text(
|
36 |
+
text: str,
|
37 |
+
voice: str = "af_heart",
|
38 |
+
speed: float = 1.0,
|
39 |
+
save_file: bool = False,
|
40 |
+
debug: bool = False,
|
41 |
+
char_limit: int = -1,
|
42 |
) -> Generator[tuple[Literal[24000], NDArray[float32]], Any, None]:
|
43 |
"""
|
44 |
Generates audio from the provided text using the specified voice and speed.
|
|
|
61 |
to False.
|
62 |
:type save_file: bool
|
63 |
|
64 |
+
:param debug: Whether to enable debug mode. Defaults to False.
|
65 |
+
:type debug: bool
|
66 |
+
|
67 |
+
:param char_limit: The maximum number of characters to include in the input
|
68 |
+
:type char_limit: int
|
69 |
+
|
70 |
:return: A generator that yields tuples, where the first element is the
|
71 |
fixed sampling rate of 24,000 Hz, and the second element is a NumPy
|
72 |
array representing the generated audio data.
|
73 |
:rtype: Generator[tuple[Literal[24000], NDArray[float32]], Any, None]
|
74 |
"""
|
75 |
+
if not text:
|
76 |
+
logger.exception("No text provided")
|
77 |
+
elif len(text) < 4:
|
78 |
+
logger.exception(f"Text too short: {text} with length {len(text)}")
|
79 |
+
text = text if char_limit == -1 else text.strip()[:char_limit]
|
80 |
generator: Generator[KPipeline.Result, None, None] = PIPELINE(
|
81 |
text=text, voice=voice, speed=speed
|
82 |
)
|
|
|
83 |
for _, _, audio in generator:
|
84 |
if audio is None or isinstance(audio, str):
|
85 |
logger.exception(f"Unexpected type (audio): {type(audio)}")
|
86 |
raise Error(message=f"Unexpected type (audio): {type(audio)}")
|
87 |
+
logger.info(f"Generating audio for '{text}'")
|
88 |
audio_np: NDArray[float32] = audio.numpy()
|
89 |
if save_file:
|
90 |
+
logger.info(f"Saving audio file at {AUDIO_FILE_PATH}")
|
91 |
save_file_wav(audio=audio_np)
|
|
|
92 |
yield 24000, audio_np
|
uv.lock
CHANGED
@@ -567,21 +567,6 @@ wheels = [
|
|
567 |
{ url = "https://files.pythonhosted.org/packages/a1/14/f1e15b851d1c2af5b0b1a82bf8eb10bda2da62d98180220ba6fd8879bb5b/hf_transfer-0.1.9-cp38-abi3-win_amd64.whl", hash = "sha256:16f208fc678911c37e11aa7b586bc66a37d02e636208f18b6bc53d29b5df40ad", size = 1160240, upload-time = "2025-01-07T10:05:14.324Z" },
|
568 |
]
|
569 |
|
570 |
-
[[package]]
|
571 |
-
name = "hf-xet"
|
572 |
-
version = "1.1.0"
|
573 |
-
source = { registry = "https://pypi.org/simple" }
|
574 |
-
sdist = { url = "https://files.pythonhosted.org/packages/aa/2c/70009910fcbd204bde75842b60c1e47fe72edb0e978954cb8001735885c7/hf_xet-1.1.0.tar.gz", hash = "sha256:a7c2a4c2b6eee9ce0a1a367a82b60d95ba634420ef1c250addad7aa4af419cf4", size = 263996, upload-time = "2025-04-29T21:15:51.247Z" }
|
575 |
-
wheels = [
|
576 |
-
{ url = "https://files.pythonhosted.org/packages/dc/fd/0db331297e331f0f02005fd7ea666439bf15efd74f0dd62af02a43236a1b/hf_xet-1.1.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:0322c42551e275fcb7949c083a54a81b2898e50787c9aa74284fcb8d2c58c12c", size = 5069444, upload-time = "2025-04-29T21:15:42.631Z" },
|
577 |
-
{ url = "https://files.pythonhosted.org/packages/b9/7d/4d7ae44219d3744ad55669cb90ef3d4ed9f5f8a4729fa635a6499491cb78/hf_xet-1.1.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:667153a0304ac2debf2af95a8ff7687186f885b493f4cd16344869af270cd110", size = 4881465, upload-time = "2025-04-29T21:15:40.799Z" },
|
578 |
-
{ url = "https://files.pythonhosted.org/packages/83/9a/d40d2a57b132d609d8a4ccc29e59ed69749021610616749cabcda2532158/hf_xet-1.1.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:995eeffb119636ea617b96c7d7bf3c3f5ea8727fa57974574e25d700b8532d48", size = 53584225, upload-time = "2025-04-29T21:15:37.754Z" },
|
579 |
-
{ url = "https://files.pythonhosted.org/packages/2e/01/d94553f91d85746e0862f24d239da88d10f5ce252b028565744e982432f4/hf_xet-1.1.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3aee847da362393331f515c4010d0aaa1c2669acfcca1f4b28946d6949cc0086", size = 52043680, upload-time = "2025-04-29T21:15:34.15Z" },
|
580 |
-
{ url = "https://files.pythonhosted.org/packages/29/89/1f31853bf378f0ceb3363c07fd8a12af9b904b1f8c21e65eb5c19397bc98/hf_xet-1.1.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:68c5813a6074aa36e12ef5983230e3b03148cce61e0fcdd294096493795565b4", size = 53072672, upload-time = "2025-04-29T21:15:44.743Z" },
|
581 |
-
{ url = "https://files.pythonhosted.org/packages/b5/9f/5ecb92b18a4b2135a72a95dc08bcbeda9176f46642c745ee052420d2aea8/hf_xet-1.1.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4ee9222bf9274b1c198b88a929de0b5a49349c4962d89c5b3b2f0f7f47d9761c", size = 53521053, upload-time = "2025-04-29T21:15:48.252Z" },
|
582 |
-
{ url = "https://files.pythonhosted.org/packages/53/d6/cb32842cbf1cf5a154b41fa918a2fd86003af9bca227a2397cd7f312a8a6/hf_xet-1.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:73153eab9abf3d6973b21e94a67ccba5d595c3e12feb8c0bf50be02964e7f126", size = 4204376, upload-time = "2025-04-29T21:15:52.69Z" },
|
583 |
-
]
|
584 |
-
|
585 |
[[package]]
|
586 |
name = "httpcore"
|
587 |
version = "1.0.9"
|
@@ -621,21 +606,20 @@ wheels = [
|
|
621 |
|
622 |
[[package]]
|
623 |
name = "huggingface-hub"
|
624 |
-
version = "0.31.
|
625 |
source = { registry = "https://pypi.org/simple" }
|
626 |
dependencies = [
|
627 |
{ name = "filelock" },
|
628 |
{ name = "fsspec" },
|
629 |
-
{ name = "hf-xet", marker = "platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" },
|
630 |
{ name = "packaging" },
|
631 |
{ name = "pyyaml" },
|
632 |
{ name = "requests" },
|
633 |
{ name = "tqdm" },
|
634 |
{ name = "typing-extensions" },
|
635 |
]
|
636 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
637 |
wheels = [
|
638 |
-
{ url = "https://files.pythonhosted.org/packages/
|
639 |
]
|
640 |
|
641 |
[package.optional-dependencies]
|
@@ -1525,21 +1509,6 @@ wheels = [
|
|
1525 |
{ url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" },
|
1526 |
]
|
1527 |
|
1528 |
-
[[package]]
|
1529 |
-
name = "pyrefly"
|
1530 |
-
version = "0.14.1"
|
1531 |
-
source = { registry = "https://pypi.org/simple" }
|
1532 |
-
sdist = { url = "https://files.pythonhosted.org/packages/7d/21/d8108a979ab07bb9fb946a2ed67dd15d192e6f47440fb1c23c3740b941f9/pyrefly-0.14.1.tar.gz", hash = "sha256:439762c0d9cd2a23c464924cf65adac89a0981e2e39fb88c0ea6becc2ec05bd8", size = 944001, upload-time = "2025-05-10T03:41:48.876Z" }
|
1533 |
-
wheels = [
|
1534 |
-
{ url = "https://files.pythonhosted.org/packages/cd/7d/3a2c15e87d109141e775070c77dc036f2f80ddbd85a4ae743e96016e22a9/pyrefly-0.14.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9a2e10908edcabe66c81dbfb74c0ddee6f182ccfe9fd78d3d151e251a99673a9", size = 6244556, upload-time = "2025-05-10T03:41:34.206Z" },
|
1535 |
-
{ url = "https://files.pythonhosted.org/packages/cc/b6/f993b07bb1d4d5f5ad4ad6e3616213d653a5c4f6de5d86f1966f765b2eef/pyrefly-0.14.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d963709f54421b4f9bd8aa2d6556a7367a78c5da373b97d44033903d493b9385", size = 5901305, upload-time = "2025-05-10T03:41:36.5Z" },
|
1536 |
-
{ url = "https://files.pythonhosted.org/packages/0b/34/65973f8c73f9aef185f9cf0aeb85f5b73f7ab3be16829a5578b582834393/pyrefly-0.14.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dff47b1bc01f702947f0aa01d89e4eea5467533a5e2cce28246191277d14dcf6", size = 6900446, upload-time = "2025-05-10T03:41:39.377Z" },
|
1537 |
-
{ url = "https://files.pythonhosted.org/packages/07/eb/c4e6fbc442144f9c43871d39fe7dc88bc98e594fc3548a5cd82575c07116/pyrefly-0.14.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:050828ff96a5814c98a8217ae32515910767698f504698b65b25614a2589faff", size = 6506620, upload-time = "2025-05-10T03:41:41.496Z" },
|
1538 |
-
{ url = "https://files.pythonhosted.org/packages/ba/21/435b3ea02481d9cf42a6407113ec5eab47b49c44d0dc20c5319064f9f37d/pyrefly-0.14.1-py3-none-win32.whl", hash = "sha256:694cb156f540f133bab6975f7cee17d8f15d707e5e4f8ac040d2c6f1ab6f3500", size = 5737107, upload-time = "2025-05-10T03:41:43.153Z" },
|
1539 |
-
{ url = "https://files.pythonhosted.org/packages/78/f2/a281b401f1b6399cc47d594d146966305e9f6eb2ce80bc75a2d97a13e8ce/pyrefly-0.14.1-py3-none-win_amd64.whl", hash = "sha256:68e2240ca1a6d7237e0a6a9448757302302cc85896a7b5b12d362606ea371c82", size = 6168272, upload-time = "2025-05-10T03:41:45.275Z" },
|
1540 |
-
{ url = "https://files.pythonhosted.org/packages/ff/78/89184a166eef39674304785bd65f8f43e252fc469daaea3204739c43835d/pyrefly-0.14.1-py3-none-win_arm64.whl", hash = "sha256:a366f0adac8779c475a1fea06ca9787be58d2b5641554b4fd78d6c6a3aaa9e35", size = 5875018, upload-time = "2025-05-10T03:41:47.163Z" },
|
1541 |
-
]
|
1542 |
-
|
1543 |
[[package]]
|
1544 |
name = "pyright"
|
1545 |
version = "1.1.400"
|
@@ -1768,27 +1737,27 @@ wheels = [
|
|
1768 |
|
1769 |
[[package]]
|
1770 |
name = "ruff"
|
1771 |
-
version = "0.11.
|
1772 |
-
source = { registry = "https://pypi.org/simple" }
|
1773 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
1774 |
-
wheels = [
|
1775 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1776 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1777 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1778 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1779 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1780 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1781 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1782 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1783 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1784 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1785 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1786 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1787 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1788 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1789 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1790 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1791 |
-
{ url = "https://files.pythonhosted.org/packages/
|
1792 |
]
|
1793 |
|
1794 |
[[package]]
|
@@ -2203,6 +2172,31 @@ wheels = [
|
|
2203 |
{ url = "https://files.pythonhosted.org/packages/0a/93/f28a696fa750b9b608baa236f8225dd3290e5aff27433b06143adc025961/triton-3.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce4700fc14032af1e049005ae94ba908e71cd6c2df682239aed08e49bc71b742", size = 156580729, upload-time = "2025-04-09T20:27:55.424Z" },
|
2204 |
]
|
2205 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2206 |
[[package]]
|
2207 |
name = "typer"
|
2208 |
version = "0.15.3"
|
@@ -2313,9 +2307,9 @@ dev = [
|
|
2313 |
{ name = "huggingface-hub", extra = ["cli", "hf-transfer"] },
|
2314 |
{ name = "mypy" },
|
2315 |
{ name = "pylint" },
|
2316 |
-
{ name = "pyrefly" },
|
2317 |
{ name = "pyright" },
|
2318 |
{ name = "ruff" },
|
|
|
2319 |
{ name = "typos" },
|
2320 |
{ name = "watchfiles" },
|
2321 |
]
|
@@ -2331,12 +2325,12 @@ requires-dist = [
|
|
2331 |
[package.metadata.requires-dev]
|
2332 |
dev = [
|
2333 |
{ name = "black", specifier = ">=25.1.0" },
|
2334 |
-
{ name = "huggingface-hub", extras = ["cli", "hf-transfer"], specifier = ">=0.31.
|
2335 |
{ name = "mypy", specifier = ">=1.15.0" },
|
2336 |
{ name = "pylint", specifier = ">=3.3.7" },
|
2337 |
-
{ name = "pyrefly", specifier = ">=0.14.0" },
|
2338 |
{ name = "pyright", specifier = ">=1.1.400" },
|
2339 |
-
{ name = "ruff", specifier = ">=0.11.
|
|
|
2340 |
{ name = "typos", specifier = ">=1.32.0" },
|
2341 |
{ name = "watchfiles", specifier = ">=1.0.5" },
|
2342 |
]
|
|
|
567 |
{ url = "https://files.pythonhosted.org/packages/a1/14/f1e15b851d1c2af5b0b1a82bf8eb10bda2da62d98180220ba6fd8879bb5b/hf_transfer-0.1.9-cp38-abi3-win_amd64.whl", hash = "sha256:16f208fc678911c37e11aa7b586bc66a37d02e636208f18b6bc53d29b5df40ad", size = 1160240, upload-time = "2025-01-07T10:05:14.324Z" },
|
568 |
]
|
569 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
570 |
[[package]]
|
571 |
name = "httpcore"
|
572 |
version = "1.0.9"
|
|
|
606 |
|
607 |
[[package]]
|
608 |
name = "huggingface-hub"
|
609 |
+
version = "0.31.2"
|
610 |
source = { registry = "https://pypi.org/simple" }
|
611 |
dependencies = [
|
612 |
{ name = "filelock" },
|
613 |
{ name = "fsspec" },
|
|
|
614 |
{ name = "packaging" },
|
615 |
{ name = "pyyaml" },
|
616 |
{ name = "requests" },
|
617 |
{ name = "tqdm" },
|
618 |
{ name = "typing-extensions" },
|
619 |
]
|
620 |
+
sdist = { url = "https://files.pythonhosted.org/packages/3b/7b/09ab792c463975fcd0a81f459b5e900057dabbbc274ff253bb28d58ebfce/huggingface_hub-0.31.2.tar.gz", hash = "sha256:7053561376ed7f6ffdaecf09cc54d70dc784ac6315fa4bb9b93e19662b029675", size = 403025, upload-time = "2025-05-13T09:45:43.617Z" }
|
621 |
wheels = [
|
622 |
+
{ url = "https://files.pythonhosted.org/packages/83/81/a8fd9c226f7e3bc8918f1e456131717cb38e93f18ccc109bf3c8471e464f/huggingface_hub-0.31.2-py3-none-any.whl", hash = "sha256:8138cd52aa2326b4429bb00a4a1ba8538346b7b8a808cdce30acb6f1f1bdaeec", size = 484230, upload-time = "2025-05-13T09:45:41.977Z" },
|
623 |
]
|
624 |
|
625 |
[package.optional-dependencies]
|
|
|
1509 |
{ url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" },
|
1510 |
]
|
1511 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1512 |
[[package]]
|
1513 |
name = "pyright"
|
1514 |
version = "1.1.400"
|
|
|
1737 |
|
1738 |
[[package]]
|
1739 |
name = "ruff"
|
1740 |
+
version = "0.11.10"
|
1741 |
+
source = { registry = "https://pypi.org/simple" }
|
1742 |
+
sdist = { url = "https://files.pythonhosted.org/packages/e8/4c/4a3c5a97faaae6b428b336dcca81d03ad04779f8072c267ad2bd860126bf/ruff-0.11.10.tar.gz", hash = "sha256:d522fb204b4959909ecac47da02830daec102eeb100fb50ea9554818d47a5fa6", size = 4165632, upload-time = "2025-05-15T14:08:56.76Z" }
|
1743 |
+
wheels = [
|
1744 |
+
{ url = "https://files.pythonhosted.org/packages/2f/9f/596c628f8824a2ce4cd12b0f0b4c0629a62dfffc5d0f742c19a1d71be108/ruff-0.11.10-py3-none-linux_armv6l.whl", hash = "sha256:859a7bfa7bc8888abbea31ef8a2b411714e6a80f0d173c2a82f9041ed6b50f58", size = 10316243, upload-time = "2025-05-15T14:08:12.884Z" },
|
1745 |
+
{ url = "https://files.pythonhosted.org/packages/3c/38/c1e0b77ab58b426f8c332c1d1d3432d9fc9a9ea622806e208220cb133c9e/ruff-0.11.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:968220a57e09ea5e4fd48ed1c646419961a0570727c7e069842edd018ee8afed", size = 11083636, upload-time = "2025-05-15T14:08:16.551Z" },
|
1746 |
+
{ url = "https://files.pythonhosted.org/packages/23/41/b75e15961d6047d7fe1b13886e56e8413be8467a4e1be0a07f3b303cd65a/ruff-0.11.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1067245bad978e7aa7b22f67113ecc6eb241dca0d9b696144256c3a879663bca", size = 10441624, upload-time = "2025-05-15T14:08:19.032Z" },
|
1747 |
+
{ url = "https://files.pythonhosted.org/packages/b6/2c/e396b6703f131406db1811ea3d746f29d91b41bbd43ad572fea30da1435d/ruff-0.11.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4854fd09c7aed5b1590e996a81aeff0c9ff51378b084eb5a0b9cd9518e6cff2", size = 10624358, upload-time = "2025-05-15T14:08:21.542Z" },
|
1748 |
+
{ url = "https://files.pythonhosted.org/packages/bd/8c/ee6cca8bdaf0f9a3704796022851a33cd37d1340bceaf4f6e991eb164e2e/ruff-0.11.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b4564e9f99168c0f9195a0fd5fa5928004b33b377137f978055e40008a082c5", size = 10176850, upload-time = "2025-05-15T14:08:23.682Z" },
|
1749 |
+
{ url = "https://files.pythonhosted.org/packages/e9/ce/4e27e131a434321b3b7c66512c3ee7505b446eb1c8a80777c023f7e876e6/ruff-0.11.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b6a9cc5b62c03cc1fea0044ed8576379dbaf751d5503d718c973d5418483641", size = 11759787, upload-time = "2025-05-15T14:08:25.733Z" },
|
1750 |
+
{ url = "https://files.pythonhosted.org/packages/58/de/1e2e77fc72adc7cf5b5123fd04a59ed329651d3eab9825674a9e640b100b/ruff-0.11.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:607ecbb6f03e44c9e0a93aedacb17b4eb4f3563d00e8b474298a201622677947", size = 12430479, upload-time = "2025-05-15T14:08:28.013Z" },
|
1751 |
+
{ url = "https://files.pythonhosted.org/packages/07/ed/af0f2340f33b70d50121628ef175523cc4c37619e98d98748c85764c8d88/ruff-0.11.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b3a522fa389402cd2137df9ddefe848f727250535c70dafa840badffb56b7a4", size = 11919760, upload-time = "2025-05-15T14:08:30.956Z" },
|
1752 |
+
{ url = "https://files.pythonhosted.org/packages/24/09/d7b3d3226d535cb89234390f418d10e00a157b6c4a06dfbe723e9322cb7d/ruff-0.11.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f071b0deed7e9245d5820dac235cbdd4ef99d7b12ff04c330a241ad3534319f", size = 14041747, upload-time = "2025-05-15T14:08:33.297Z" },
|
1753 |
+
{ url = "https://files.pythonhosted.org/packages/62/b3/a63b4e91850e3f47f78795e6630ee9266cb6963de8f0191600289c2bb8f4/ruff-0.11.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a60e3a0a617eafba1f2e4186d827759d65348fa53708ca547e384db28406a0b", size = 11550657, upload-time = "2025-05-15T14:08:35.639Z" },
|
1754 |
+
{ url = "https://files.pythonhosted.org/packages/46/63/a4f95c241d79402ccdbdb1d823d156c89fbb36ebfc4289dce092e6c0aa8f/ruff-0.11.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:da8ec977eaa4b7bf75470fb575bea2cb41a0e07c7ea9d5a0a97d13dbca697bf2", size = 10489671, upload-time = "2025-05-15T14:08:38.437Z" },
|
1755 |
+
{ url = "https://files.pythonhosted.org/packages/6a/9b/c2238bfebf1e473495659c523d50b1685258b6345d5ab0b418ca3f010cd7/ruff-0.11.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ddf8967e08227d1bd95cc0851ef80d2ad9c7c0c5aab1eba31db49cf0a7b99523", size = 10160135, upload-time = "2025-05-15T14:08:41.247Z" },
|
1756 |
+
{ url = "https://files.pythonhosted.org/packages/ba/ef/ba7251dd15206688dbfba7d413c0312e94df3b31b08f5d695580b755a899/ruff-0.11.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5a94acf798a82db188f6f36575d80609072b032105d114b0f98661e1679c9125", size = 11170179, upload-time = "2025-05-15T14:08:43.762Z" },
|
1757 |
+
{ url = "https://files.pythonhosted.org/packages/73/9f/5c336717293203ba275dbfa2ea16e49b29a9fd9a0ea8b6febfc17e133577/ruff-0.11.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3afead355f1d16d95630df28d4ba17fb2cb9c8dfac8d21ced14984121f639bad", size = 11626021, upload-time = "2025-05-15T14:08:46.451Z" },
|
1758 |
+
{ url = "https://files.pythonhosted.org/packages/d9/2b/162fa86d2639076667c9aa59196c020dc6d7023ac8f342416c2f5ec4bda0/ruff-0.11.10-py3-none-win32.whl", hash = "sha256:dc061a98d32a97211af7e7f3fa1d4ca2fcf919fb96c28f39551f35fc55bdbc19", size = 10494958, upload-time = "2025-05-15T14:08:49.601Z" },
|
1759 |
+
{ url = "https://files.pythonhosted.org/packages/24/f3/66643d8f32f50a4b0d09a4832b7d919145ee2b944d43e604fbd7c144d175/ruff-0.11.10-py3-none-win_amd64.whl", hash = "sha256:5cc725fbb4d25b0f185cb42df07ab6b76c4489b4bfb740a175f3a59c70e8a224", size = 11650285, upload-time = "2025-05-15T14:08:52.392Z" },
|
1760 |
+
{ url = "https://files.pythonhosted.org/packages/95/3a/2e8704d19f376c799748ff9cb041225c1d59f3e7711bc5596c8cfdc24925/ruff-0.11.10-py3-none-win_arm64.whl", hash = "sha256:ef69637b35fb8b210743926778d0e45e1bffa850a7c61e428c6b971549b5f5d1", size = 10765278, upload-time = "2025-05-15T14:08:54.56Z" },
|
1761 |
]
|
1762 |
|
1763 |
[[package]]
|
|
|
2172 |
{ url = "https://files.pythonhosted.org/packages/0a/93/f28a696fa750b9b608baa236f8225dd3290e5aff27433b06143adc025961/triton-3.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce4700fc14032af1e049005ae94ba908e71cd6c2df682239aed08e49bc71b742", size = 156580729, upload-time = "2025-04-09T20:27:55.424Z" },
|
2173 |
]
|
2174 |
|
2175 |
+
[[package]]
|
2176 |
+
name = "ty"
|
2177 |
+
version = "0.0.1a3"
|
2178 |
+
source = { registry = "https://pypi.org/simple" }
|
2179 |
+
sdist = { url = "https://files.pythonhosted.org/packages/7c/2c/7e942c911da8bc597ae8ed5148931670c1074d64e03bf62e0ee0f62de5b9/ty-0.0.1a3.tar.gz", hash = "sha256:56e73d152888576932c67c61b295a5428636e3ef15e8a19a83977822b3a8a762", size = 2875322, upload-time = "2025-05-15T12:48:53.544Z" }
|
2180 |
+
wheels = [
|
2181 |
+
{ url = "https://files.pythonhosted.org/packages/21/a8/79b0575b8a0385bdb08097c59268388d811638b83a8fe09eb6a034e33626/ty-0.0.1a3-py3-none-linux_armv6l.whl", hash = "sha256:f04dd8d6a1db1e8cf40270619a555ea306f7b6bfc265e0919a7b89ee1a467232", size = 6208030, upload-time = "2025-05-15T12:48:17.885Z" },
|
2182 |
+
{ url = "https://files.pythonhosted.org/packages/7e/59/fe66fcef7efdc32d5689b681c005d289b0150259fa2907215d53c624f938/ty-0.0.1a3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:bb04a11d2b772ddd680f09fffd60c3ee827e5b020a20dd8ce07f2c64ed0d554a", size = 6283431, upload-time = "2025-05-15T12:48:20.29Z" },
|
2183 |
+
{ url = "https://files.pythonhosted.org/packages/45/32/2d7f4d9a514538dbb6152f28964804a688a98c0de9ade0d6f035fd991932/ty-0.0.1a3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:aef675b51212ee2f5c731fd4b26191f13ef7d51509aafd959685d5716781c875", size = 5955170, upload-time = "2025-05-15T12:48:22.001Z" },
|
2184 |
+
{ url = "https://files.pythonhosted.org/packages/45/34/0021bc71c17b0acd8d5757ec2fe1649c9ee10044c0e1144b87401b6270d7/ty-0.0.1a3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7f63794a660cf7d87562bedf124152a9a284b637d80488c13a1cb5ed6aaf85", size = 6085244, upload-time = "2025-05-15T12:48:23.789Z" },
|
2185 |
+
{ url = "https://files.pythonhosted.org/packages/5e/54/f12dae2d5d1aea37d03ffaa5029d3f9a79aeb4324e62a01909035072a635/ty-0.0.1a3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f16a4fae298f6886a5dad8e81919bb848b0bb0839f39715a0e0723665092efe", size = 6065139, upload-time = "2025-05-15T12:48:26.4Z" },
|
2186 |
+
{ url = "https://files.pythonhosted.org/packages/8f/e4/acfb902f77f17f4009e06f0ab2be1591c1ac4483fe9fd2915d76327bef21/ty-0.0.1a3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b6c38f7252b38d6c3b5517f33b8a5736bdf1313d96d72d2bf2cf7ed96d3e3ee", size = 6764344, upload-time = "2025-05-15T12:48:28.449Z" },
|
2187 |
+
{ url = "https://files.pythonhosted.org/packages/52/e4/76a8bfd8c2c3565e24c173b61bafa4e0b7033ffb1434654c6324f89bef53/ty-0.0.1a3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:225dcfb52cd757aab1585caa94602e5f87edbab6bd260bbea5c8a821b389baa1", size = 7176756, upload-time = "2025-05-15T12:48:30.361Z" },
|
2188 |
+
{ url = "https://files.pythonhosted.org/packages/69/0c/628bedeab27911c5a194e42986cac58f9b25c36e666bf8729bb25e601895/ty-0.0.1a3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb0c3d664840d1fefecc63b1cf5a62a2039b039ddca9a868eac51ce3cc1b3ab5", size = 6827963, upload-time = "2025-05-15T12:48:32.31Z" },
|
2189 |
+
{ url = "https://files.pythonhosted.org/packages/64/59/e9c8444d47778da1b4c3d5580d583a7b1ecaf912fa035193c261e202cb9a/ty-0.0.1a3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23e9b730ba9c8772801ea16fe5da6007cd7f5cae504b9eb746782600b910c389", size = 7587027, upload-time = "2025-05-15T12:48:34.196Z" },
|
2190 |
+
{ url = "https://files.pythonhosted.org/packages/54/9b/461eaca531ec17d18028a5a263cf94329796d4e798e4b81631e5d82d02df/ty-0.0.1a3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc7b7617b4ae3471546543e3b5922bfffcfb138c34b19f41d0c102bf6c3f064f", size = 6556360, upload-time = "2025-05-15T12:48:36.415Z" },
|
2191 |
+
{ url = "https://files.pythonhosted.org/packages/97/41/0ad3145620568103ed0661bb6037d75392dd1b7822254bbaa62dc910fb7b/ty-0.0.1a3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f45db3b40b265fd4e4f67d26e038dcdd1a10a9246e09c1b0f310150fc01e101a", size = 6001580, upload-time = "2025-05-15T12:48:38.905Z" },
|
2192 |
+
{ url = "https://files.pythonhosted.org/packages/bc/55/f5b1d630bbbc1e2b5c034cc2c17b6420001c928ed7e97c8f2e1debcc1195/ty-0.0.1a3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:aa754e4ff7685910769812d92c1e31b664142c7067b79487e58889aca67fc3ae", size = 6092120, upload-time = "2025-05-15T12:48:40.688Z" },
|
2193 |
+
{ url = "https://files.pythonhosted.org/packages/71/a9/71577384db3fb7f4722b10d64a59abee724b8462af038b0ab493cb9aa855/ty-0.0.1a3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:015657bdb165ad01f5baf822ef430c8dec98c5a70f8d86e32cf20ff679bdd57a", size = 6473271, upload-time = "2025-05-15T12:48:43.365Z" },
|
2194 |
+
{ url = "https://files.pythonhosted.org/packages/d6/4a/aec305127624520af7ba1ac58bf871d36c575b3eb66308ad98f2b2f8cb28/ty-0.0.1a3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:28a09ae6c97c38f540af87df5a37e71b91e153dceb7128ff40bfd6742c9a01c5", size = 6627140, upload-time = "2025-05-15T12:48:45.813Z" },
|
2195 |
+
{ url = "https://files.pythonhosted.org/packages/2c/30/81fa4d1a4e68b01ae7cb8297920a9e1d939a94049eb059eaaf03d38e231a/ty-0.0.1a3-py3-none-win32.whl", hash = "sha256:c04c852d8382712a8235b05984b22176f9397d58e596d69abf4073729b3404c6", size = 5891012, upload-time = "2025-05-15T12:48:47.552Z" },
|
2196 |
+
{ url = "https://files.pythonhosted.org/packages/20/75/dbf77fd884f581acd88c3dac526faeb1396252ad5284870e7edef184a411/ty-0.0.1a3-py3-none-win_amd64.whl", hash = "sha256:90c068448d5a66b8aa0a533380fe8f10d6d6522bc2a20b41ba713029c775f9da", size = 6370696, upload-time = "2025-05-15T12:48:49.353Z" },
|
2197 |
+
{ url = "https://files.pythonhosted.org/packages/cc/79/d143f7a65f8321849934559a2c968b7877b4fae64b19d082890454d5cd93/ty-0.0.1a3-py3-none-win_arm64.whl", hash = "sha256:8abf6f1c391fe4f506bf36f9e66b3f95844a4c74c01c037a80e71f440073c1e5", size = 6031781, upload-time = "2025-05-15T12:48:51.525Z" },
|
2198 |
+
]
|
2199 |
+
|
2200 |
[[package]]
|
2201 |
name = "typer"
|
2202 |
version = "0.15.3"
|
|
|
2307 |
{ name = "huggingface-hub", extra = ["cli", "hf-transfer"] },
|
2308 |
{ name = "mypy" },
|
2309 |
{ name = "pylint" },
|
|
|
2310 |
{ name = "pyright" },
|
2311 |
{ name = "ruff" },
|
2312 |
+
{ name = "ty" },
|
2313 |
{ name = "typos" },
|
2314 |
{ name = "watchfiles" },
|
2315 |
]
|
|
|
2325 |
[package.metadata.requires-dev]
|
2326 |
dev = [
|
2327 |
{ name = "black", specifier = ">=25.1.0" },
|
2328 |
+
{ name = "huggingface-hub", extras = ["cli", "hf-transfer"], specifier = ">=0.31.2" },
|
2329 |
{ name = "mypy", specifier = ">=1.15.0" },
|
2330 |
{ name = "pylint", specifier = ">=3.3.7" },
|
|
|
2331 |
{ name = "pyright", specifier = ">=1.1.400" },
|
2332 |
+
{ name = "ruff", specifier = ">=0.11.10" },
|
2333 |
+
{ name = "ty", specifier = ">=0.0.1a3" },
|
2334 |
{ name = "typos", specifier = ">=1.32.0" },
|
2335 |
{ name = "watchfiles", specifier = ">=1.0.5" },
|
2336 |
]
|