From 67672dc5b76f8bc17785a19d3dc6d1463fc2902c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Mon, 7 Sep 2026 21:10:06 +0200 Subject: [PATCH] ci : bump ty to 0.0.78 (#28548) * bump ty to 0.0.78 * type fixes * more type fixes * add --exit-zero-on-warning * remove Callable again --- .github/workflows/python-type-check.yml | 4 ++-- conversion/minimax.py | 2 +- conversion/muse_glimmer.py | 2 +- examples/pydantic_models_to_grammar.py | 2 +- scripts/jinja/jinja-tester.py | 3 +-- scripts/snapdragon/ggml-hexagon-profile.py | 4 +++- scripts/tool_bench.py | 4 ++-- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/python-type-check.yml b/.github/workflows/python-type-check.yml index 14edb1a9d..1a2f40ad4 100644 --- a/.github/workflows/python-type-check.yml +++ b/.github/workflows/python-type-check.yml @@ -31,7 +31,7 @@ jobs: uses: actions/setup-python@v6 with: python-version: "3.11" - pip-install: -r requirements/requirements-all.txt ty==0.0.35 + pip-install: -r requirements/requirements-all.txt ty==0.0.78 # - name: Type-check with Pyright # uses: jakebailey/pyright-action@v2 # with: @@ -40,4 +40,4 @@ jobs: # warnings: true - name: Type-check with ty run: | - ty check --output-format=github + ty check --exit-zero-on-warning --output-format=github diff --git a/conversion/minimax.py b/conversion/minimax.py index 53a9ff60f..aac340c61 100644 --- a/conversion/minimax.py +++ b/conversion/minimax.py @@ -25,7 +25,7 @@ class MiniMaxText01Model(TextModel): # they get in the way of the token sampling process and must be suppressed tokenizer = AutoTokenizer.from_pretrained(self.dir_model, trust_remote_code=True) - tokenizer_vocab_size = tokenizer.vocab_size + tokenizer_vocab_size = tokenizer.vocab_size # ty: ignore[unresolved-attribute] with open(self.dir_model / "model.safetensors.index.json", "r", encoding="utf-8") as f: weight_map = json.load(f)["weight_map"] diff --git a/conversion/muse_glimmer.py b/conversion/muse_glimmer.py index b205f70a0..c86b33227 100644 --- a/conversion/muse_glimmer.py +++ b/conversion/muse_glimmer.py @@ -37,7 +37,7 @@ class MuseGlimmerModel(TextModel): from transformers import AutoTokenizer tok = AutoTokenizer.from_pretrained(self.dir_model) - eot_id = tok.convert_tokens_to_ids("<|eot|>") + eot_id = tok.convert_tokens_to_ids("<|eot|>") # ty: ignore[unresolved-attribute] if isinstance(eot_id, int) and eot_id >= 0: self.gguf_writer.add_eot_token_id(eot_id) diff --git a/examples/pydantic_models_to_grammar.py b/examples/pydantic_models_to_grammar.py index 0cdd0b570..736b2b7df 100644 --- a/examples/pydantic_models_to_grammar.py +++ b/examples/pydantic_models_to_grammar.py @@ -1177,7 +1177,7 @@ def create_dynamic_model_from_function(func: Callable[..., Any]): dynamic_fields[param.name] = ( param.annotation if param.annotation != inspect.Parameter.empty else str, default_value) # Creating the dynamic model - dynamic_model = create_model(f"{getattr(func, '__name__')}", **dynamic_fields) + dynamic_model = create_model(f"{getattr(func, '__name__')}", **dynamic_fields) # ty: ignore[no-matching-overload] for name, param_doc in param_docs: dynamic_model.model_fields[name].description = param_doc.description diff --git a/scripts/jinja/jinja-tester.py b/scripts/jinja/jinja-tester.py index a83f02541..6d36ecfa5 100755 --- a/scripts/jinja/jinja-tester.py +++ b/scripts/jinja/jinja-tester.py @@ -20,7 +20,6 @@ from PySide6.QtCore import Qt, QRect, QSize from jinja2 import TemplateSyntaxError from jinja2.sandbox import ImmutableSandboxedEnvironment from datetime import datetime -from typing import Callable def format_template_content(template_content): @@ -396,7 +395,7 @@ class JinjaTester(QMainWindow): ensure_ascii=ensure_ascii, ) ) - env.globals["strftime_now"]: Callable[[str], str] = lambda format: datetime.now().strftime(format) + env.globals["strftime_now"] = lambda format: datetime.now().strftime(format) # ty: ignore[invalid-assignment, invalid-argument-type] env.globals["raise_exception"] = raise_exception # ty: ignore[invalid-assignment] try: template = env.from_string(template_str) diff --git a/scripts/snapdragon/ggml-hexagon-profile.py b/scripts/snapdragon/ggml-hexagon-profile.py index 038d92fb5..48b3fe479 100755 --- a/scripts/snapdragon/ggml-hexagon-profile.py +++ b/scripts/snapdragon/ggml-hexagon-profile.py @@ -7,7 +7,7 @@ import argparse import statistics import logging import bisect -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List, Optional, Iterable from collections import defaultdict @@ -473,6 +473,8 @@ def print_bubbles_timeline(op): all_bubbles = [] for t in active_threads: stats = thread_stats[t] + assert isinstance(stats['dma_bubbles'], Iterable) + assert isinstance(stats['compute_bubbles'], Iterable) for start, end, dur in stats['compute_bubbles']: pct = (dur / batch_duration) * 100.0 all_bubbles.append((dur, f"Thread {t} Compute: bubble of {dur} cycles ({pct:.1f}%) at {start - op_start} to {end - op_start}")) diff --git a/scripts/tool_bench.py b/scripts/tool_bench.py index d9f5583d4..fb7df10f3 100755 --- a/scripts/tool_bench.py +++ b/scripts/tool_bench.py @@ -52,8 +52,8 @@ import typer sys.path.insert(0, Path(__file__).parent.parent.as_posix()) if True: - from tools.server.tests.utils import ServerProcess - from tools.server.tests.unit.test_tool_call import do_test_calc_result, do_test_hello_world, do_test_weather + from tools.server.tests.utils import ServerProcess # ty: ignore[unresolved-import] + from tools.server.tests.unit.test_tool_call import do_test_calc_result, do_test_hello_world, do_test_weather # ty: ignore[unresolved-import] @contextmanager