feat(parsers): добавлен API клиент для checko.ru

- Реализован CheckoClient с поддержкой всех 10 эндпоинтов API v2
- Frozen dataclass модели для запросов и ответов
- Справочники ОКВЭД2, ОКФС, ОКОПФ, ОКПД, статусы компаний
- Маппинг русских полей API на английские имена
- Unit тесты с моками
- E2E тесты с реальными запросами
- Настройка CHECKO_API_KEY в settings.py
This commit is contained in:
2026-02-03 17:00:19 +01:00
parent 5c88c6466d
commit c36c7b9ba9
22 changed files with 5943 additions and 4 deletions

View File

@@ -0,0 +1,46 @@
"""
ОКФС (ОК 027-99) - Общероссийский классификатор форм собственности.
Использование:
from apps.parsers.clients.checko.datasets import OKFS
# Получить название по коду
name = OKFS.get_name("16") # -> "Частная собственность"
# Получить полный объект
item = OKFS.get("16")
"""
from dataclasses import dataclass
from typing import ClassVar
from apps.parsers.clients.checko.datasets.base import BaseDataset
@dataclass(frozen=True)
class OkfsItem:
"""Элемент справочника ОКФС."""
code: str
"""Код формы собственности."""
name: str
"""Наименование формы собственности."""
class OKFS(BaseDataset[OkfsItem]):
"""
Справочник ОКФС (формы собственности).
Данные: ОК 027-99.
"""
_data: ClassVar[dict[str, OkfsItem] | None] = None
_json_filename: ClassVar[str] = "okfs.json"
@classmethod
def _parse_item(cls, raw: dict) -> OkfsItem:
return OkfsItem(
code=raw.get("code", ""),
name=raw.get("name", ""),
)