fix(mypy): add type stubs and fix typing issues (#3938)

Adds type stubs and fixes mypy errors for better type coverage.

Changes:
- Added type_checking dependency group with type stubs (torchtune, trl,
etc.)
- Added lm-format-enforcer to pre-commit hook
- Created HFAutoModel Protocol for type-safe HuggingFace model handling
- Added mypy.overrides for untyped libraries (torchtune, fairscale,
etc.)
- Fixed type issues in post-training providers, databricks, and
api_recorder

Note: ~1,200 errors remain in excluded files (see pyproject.toml exclude
list).

---------

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Ashwin Bharambe 2025-10-28 11:00:09 -07:00 committed by GitHub
parent 1d385b5b75
commit 94b0592240
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 487 additions and 68 deletions

View file

@ -599,7 +599,11 @@ def _combine_model_list_responses(endpoint: str, records: list[dict[str, Any]])
if endpoint == "/api/tags":
from ollama import ListResponse
body = ListResponse(models=ordered)
# Both cast(Any, ...) and type: ignore are needed here:
# - cast(Any, ...) attempts to bypass type checking on the argument
# - type: ignore is still needed because mypy checks the call site independently
# and reports arg-type mismatch even after casting
body = ListResponse(models=cast(Any, ordered)) # type: ignore[arg-type]
return {"request": canonical_req, "response": {"body": body, "is_streaming": False}}