chore(V2): mypy clean — fix radice V2 nuovo + suppress mirato V1 legacy

- settings.py: lambda factory + type:ignore[call-arg] per env-loaded models
- routers/*.py (6 file): cast esplicito Environment / Client per request.state
- __main__.py: cast Literal env in builder, type:ignore Settings()
- server.py: type:ignore[method-assign] su app.openapi
- deribit/tools.py: assert su validator-normalized fields, list return type
- deribit/client.py: type:ignore mirato no-any-return / has-type, rinomina types→types_list
- hyperliquid/{client,tools}.py: assert su validator-normalized fields, var-annotated
- alpaca/client.py: type:ignore mirato per SDK quirks (assignment, no-any-return, arg-type, union-attr)
- {macro,sentiment}/fetchers.py: type:ignore mirato no-any-return / operator / union-attr

Mypy: 68 → 0 errors. Test: 259 passing. Ruff: clean.
This commit is contained in:
AdrianoDev
2026-04-30 20:43:03 +02:00
parent 436dfd6f5a
commit 697d118522
16 changed files with 74 additions and 61 deletions
+3 -3
View File
@@ -6,7 +6,7 @@ dal middleware in `cerbero_mcp.auth`; qui leggiamo solo `request.state.environme
"""
from __future__ import annotations
from typing import Literal
from typing import Literal, cast
from fastapi import APIRouter, Depends, Request
@@ -18,14 +18,14 @@ Environment = Literal["testnet", "mainnet"]
def get_environment(request: Request) -> Environment:
return request.state.environment
return cast(Environment, request.state.environment)
async def get_hyperliquid_client(
request: Request, env: Environment = Depends(get_environment)
) -> HyperliquidClient:
registry: ClientRegistry = request.app.state.registry
return await registry.get("hyperliquid", env)
return cast(HyperliquidClient, await registry.get("hyperliquid", env))
def _build_creds(request: Request) -> dict: