Исходный код cdek.client
from __future__ import annotations
from collections.abc import Callable
from typing import Any
from .apps.agreement import AgreementApp
from .apps.check import CheckApp
from .apps.currency import CurrencyApp
from .apps.form import BarcodeApp, InvoiceApp
from .apps.intake import IntakeApp
from .apps.location import LocationApp
from .apps.office import OfficeApp
from .apps.order import OrderApp
from .apps.payment import PaymentApp
from .apps.tariff import TariffApp
from .apps.webhook import WebhookApp
[документация]
class CdekClient:
"""Клиент взаимодействия с API CDEK 2.0"""
def __init__(self, account: str, secure: str | None = None, timeout: float = 5.0):
"""
Конструктор клиента
Args:
account: Логин Account в сервисе Интеграции
secure: Пароль Secure password в сервисе Интеграции
timeout: Настройка клиента задающая общий тайм-аут запроса в секундах
"""
if account == "TEST":
self.base_url: str = "https://api.edu.cdek.ru/v2/"
self.account: str = "wqGwiQx0gg8mLtiEKsUinjVSICCjtTEP"
self.secure: str | None = "RmAmgvSgSl1yirlz9QupbzOJVqhCxcP5"
self.account_type: str = "TEST"
else:
self.base_url = "https://api.cdek.ru/v2/"
self.account = account
self.secure = secure
self.account_type = "COMBAT"
self.timeout: float = timeout
self.token: str | None = None
self.expire: int = 0
self.memory: dict[str, Any] | None = None
self.memory_save_callback: Callable[[dict[str, Any]], None] | None = None
[документация]
def set_memory(
self,
memory: dict[str, Any] | None,
save_callback: Callable[[dict[str, Any]], None],
) -> CdekClient:
"""
Установить параметры сохранения токена
Args:
memory: массив настройки сохранения
save_callback: коллбэк сохранения
Returns:
self
"""
self.memory = memory
self.memory_save_callback = save_callback
return self
@property
def currency(self) -> CurrencyApp:
"""Получение информации о валюте"""
return CurrencyApp(self)
@property
def office(self) -> OfficeApp:
"""Получение информации о ПВЗ"""
return OfficeApp(self)
@property
def order(self) -> OrderApp:
"""Получение информации о заказе"""
return OrderApp(self)
@property
def location(self) -> LocationApp:
"""Получение информации о местоположении"""
return LocationApp(self)
@property
def tariff(self) -> TariffApp:
"""Получение информации о тарифе"""
return TariffApp(self)
@property
def barcode(self) -> BarcodeApp:
"""Получение информации о штрих-коде"""
return BarcodeApp(self)
@property
def invoice(self) -> InvoiceApp:
"""Получение информации о накладной"""
return InvoiceApp(self)
@property
def payment(self) -> PaymentApp:
"""Получение информации о платеже"""
return PaymentApp(self)
@property
def agreement(self) -> AgreementApp:
"""Получение информации о договоренности"""
return AgreementApp(self)
@property
def intake(self) -> IntakeApp:
"""Получение информации о заявке на вызов курьера"""
return IntakeApp(self)
@property
def check(self) -> CheckApp:
"""Получение информации о чеке"""
return CheckApp(self)
@property
def webhook(self) -> WebhookApp:
"""Получение информации о вебхуке"""
return WebhookApp(self)