Официальная библиотека depspy предоставляет удобный асинхронный интерфейс для работы с Deps API, инкапсулируя всю логику HTTP-запросов, обработки ошибок и кэширования.
Библиотека разработана и поддерживается контрибьютором @fakelag28.

Установка

Для установки последней версии библиотеки выполните команду в терминале:
pip install depspy

Быстрый старт

Использование контекстного менеджера async with гарантирует корректное управление сессией и ресурсами.
main.py
import asyncio
from depspy import DepsClient

async def main():
    # Обязательно используйте ваш API ключ
    async with DepsClient("YOUR_API_KEY") as client:
        player = await client.get_player(nickname="Nicolas_Reed", server_id=5)
        print(player)

if __name__ == "__main__":
    asyncio.run(main())

Ключевые особенности

Библиотека depspy разработана для максимальной эффективности и удобства разработчика.

Асинхронность

Полная поддержка asyncio для высокопроизводительных неблокирующих операций.

Надежность

Автоматические повторные попытки при сбоях и встроенная обработка ошибок API.

Типизация

Строгие модели данных Pydantic для валидации и удобной работы с ответами API.

Гибкость

Широкие возможности настройки клиента, включая прокси, таймауты и кэширование.

Примеры использования

players.py
import asyncio
from depspy import DepsClient
from depspy.errors import PlayerNotFoundError

async def main():
    async with DepsClient("YOUR_API_KEY") as client:
        try:
            player = await client.get_player("Nicolas_Reed", server_id=5)
            print(f"Найден игрок: {player.nickname}, уровень: {player.level}")

            is_online = await client.is_player_online("Nicolas_Reed", server_id=5)
            print(f"Игрок онлайн: {is_online}")

        except PlayerNotFoundError:
            print("Игрок с таким никнеймом не найден.")
        except Exception as e:
            print(f"Произошла ошибка: {e}")

if __name__ == "__main__":
    asyncio.run(main())

Обработка исключений

Библиотека автоматически преобразует коды ошибок API в типизированные исключения для удобной обработки.
errors.py
import asyncio
from depspy import DepsClient
from depspy.errors import RateLimitError, UnauthorizedError

async def main():
    async with DepsClient("INVALID_API_KEY") as client:
        try:
            await client.get_player("some_player", 1)
        except UnauthorizedError:
            print("Ошибка: Неверный или просроченный API ключ.")
        except RateLimitError as e:
            print(f"Превышен лимит запросов. Попробуйте через {e.retry_after} секунд.")
        except Exception as e:
            print(f"Произошла неизвестная ошибка: {e}")

if __name__ == "__main__":
    asyncio.run(main())
Основные исключения: UnauthorizedError, RateLimitError, PlayerNotFoundError, ServerNotFoundError, APIError.

Расширенная настройка клиента

Вы можете тонко настроить клиент DepsClient при его инициализации, передав нужные параметры.
config.py
import logging
from depspy import DepsClient

client = DepsClient(
    api_key="YOUR_API_KEY",
    corporate_key=False,
    timeout=30,
    max_retries=3,
    cache_ttl=300,
    proxy="http://user:pass@host:port",
    verify_ssl=True,
    log_level=logging.INFO
)
ПараметрТипПо умолчаниюОписание
api_keystr-Ваш API-ключ.
corporate_keyboolFalseИспользовать корпоративный ключ.
base_urlstrhttps://api.depscian.tech/v2Базовый URL API.
timeoutint30Таймаут запросов в секундах.
max_retriesint3Макс. количество попыток при сбоях.
cache_ttlint300Время жизни кэша для запросов (в сек).
proxystrNoneURL прокси-сервера.
verify_sslboolTrueПроверять ли SSL-сертификат.
log_levelintlogging.WARNINGУровень логирования.