Асинхронная библиотека для работы с Deps API
Project description
DepsPy
Асинхронная библиотека для работы с Deps API на Python.
Установка
pip install depspy
Использование
import asyncio
from depspy import DepsClient
async def main():
async with DepsClient("YOUR_API_KEY") as client:
# Получение информации об игроке
player = await client.get_player("Nicolas_Reed", 5)
print(player)
await asyncio.sleep(3)
# Получение списка онлайн игроков
online = await client.get_online_players(5)
print(f"Онлайн игроков: {len(online.data)}")
await asyncio.sleep(3)
# Получение списка фракций
fractions = await client.get_fractions(5)
print(f"Доступно {len(fractions.data)} фракций: {fractions.data}")
await asyncio.sleep(3)
# Пробив каждой доступной фракции
# Используем asyncio.sleep дабы не достигать минутный лимит
for fraction_id in fractions.data:
try:
fraction_online = await client.get_fraction_online(5, fraction_id)
print(f"Онлайн во фракции '{fraction_id}': {len(fraction_online.data)}")
await asyncio.sleep(5)
except Exception as e:
print(f"Не удалось получить онлайн для фракции '{fraction_id}': {e}")
await asyncio.sleep(5)
if __name__ == "__main__":
asyncio.run(main())
Особенности
- Полностью асинхронный API
- Автоматическая обработка ошибок
- Поддержка корпоративных ключей
- Автоматические повторные попытки при ошибках
- Типизация данных с помощью Pydantic
- Поддержка контекстного менеджера
- Встроенное кэширование запросов
- Валидация входных данных
- Подробное логирование
- Поддержка прокси
- Настраиваемые таймауты
- SSL верификация
Методы API
Основные методы
get_player(nickname: str, server_id: int)- Получение информации об игрокеget_interviews(server_id: int)- Получение информации о собеседованияхget_online_players(server_id: int)- Получение списка онлайн игроковget_fractions(server_id: int)- Получение списка фракцийget_fraction_online(server_id: int, fraction_id: str)- Получение онлайн игроков фракцииget_admins(server_id: int)- Получение списка администраторовget_status()- Получение статуса серверов
Дополнительные методы
get_player_by_id(player_id: int, server_id: int)- Получение информации об игроке по IDget_server_info(server_id: int)- Получение информации о сервереget_online_count(server_id: int)- Получение количества онлайн игроковget_fraction_members_count(server_id: int, fraction_id: str)- Получение количества игроков во фракцииis_player_online(nickname: str, server_id: int)- Проверка онлайн статуса игрокаget_player_level(nickname: str, server_id: int)- Получение уровня игрокаget_player_money(nickname: str, server_id: int)- Получение информации о деньгах игрокаget_player_organization(nickname: str, server_id: int)- Получение информации об организации игрокаget_player_property(nickname: str, server_id: int)- Получение информации о собственности игрокаget_player_vip_info(nickname: str, server_id: int)- Получение VIP информации игрока
Обработка ошибок
Библиотека предоставляет следующие исключения:
Основные ошибки
UnauthorizedError- Ошибка авторизацииRateLimitError- Превышен лимит запросовPlayerNotFoundError- Игрок не найденServerNotFoundError- Сервер не найденAPIError- Общая ошибка API
Дополнительные ошибки
InvalidAPIKeyError- Недействительный API ключExpiredAPIKeyError- Истекший API ключInsufficientPermissionsError- Недостаточно правInvalidServerIDError- Недействительный ID сервераInvalidNicknameError- Недействительный никнеймInvalidFractionIDError- Недействительный ID фракцииValidationError- Ошибка валидации данныхMaintenanceError- API на обслуживанииTimeoutError- Таймаут запросаConnectionError- Ошибка соединенияProxyError- Ошибка проксиSSLError- Ошибка SSLDNSResolutionError- Ошибка разрешения DNS
Настройка клиента
client = DepsClient(
api_key="YOUR_API_KEY",
corporate_key=False, # Использовать корпоративный ключ
base_url="https://api.depscian.tech/v2", # Базовый URL API
timeout=30, # Таймаут запросов в секундах
max_retries=3, # Максимальное количество попыток
cache_ttl=300, # Время жизни кэша в секундах
proxy="http://proxy.example.com:8080", # Прокси сервер
verify_ssl=True, # Проверка SSL сертификата
log_level=logging.INFO # Уровень логирования
)
Требования
- Python 3.8+
- aiohttp>=3.8.0
- pydantic>=2.0.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
depspy-1.2.2.tar.gz
(11.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
depspy-1.2.2-py3-none-any.whl
(10.1 kB
view details)
File details
Details for the file depspy-1.2.2.tar.gz.
File metadata
- Download URL: depspy-1.2.2.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c65955bb0ed214f925c8b0563638f94c7ca0e5bf49c717cce16592ee56a81a50
|
|
| MD5 |
9b526ac62fd8489627c466be70912312
|
|
| BLAKE2b-256 |
60a529ce327a143cf7664c0900cd304270afaa2c9e1e16cea7a06ed1cd784077
|
File details
Details for the file depspy-1.2.2-py3-none-any.whl.
File metadata
- Download URL: depspy-1.2.2-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2974cfe036492d5480fbbd71de5e300bc1947a1155375673ef288a9c9aa034a0
|
|
| MD5 |
d98e09a14fd8cd65682ee8852f3c9172
|
|
| BLAKE2b-256 |
72c1b0d2049bfc2e83b60f2a961531313ba434fd750b094f2e7e70a0e3daf9c5
|