"""Protocol клиента Nova Poshta — позволяет подменять реализацию в тестах. См. `StubNovaPoshtaClient`. """ from __future__ import annotations from typing import Protocol from app.schemas.tracking import TrackingStatusOut class NovaPoshtaError(Exception): """NP API ответил `success: false` (см. поле `errors` в ответе).""" class NovaPoshtaClient(Protocol): async def get_statuses(self, *, waybill_numbers: list[str]) -> list[TrackingStatusOut]: ...