Добрый день!
Обнаружили проблему в работе библиотеки. При передаче в метод send_message параметра parse_mode=None отправка сообщения намертво зависает на data = await future в trueconf.methods.base.TrueConfMethod.__call__. Воспроизвести достаточно просто:
import asyncio
from trueconf import Bot
async def main():
bot = Bot.from_credentials(
username="login",
password="password",
server="server",
dispatcher=None
)
await bot.start()
await bot.send_message(chat_id="chat_id", text="hi", parse_mode=None)
print('Это сообщение мы не увидим')
asyncio.run(main())
В типизации к параметру в send_message конечно указано, что ожидается только str, однако в библиотеке нет никакой реакции на то, что был передан некорректный параметр, а исполняемый код бесконечно ожидает какой-то реакции от сервера.
Прошу посмотреть:
- Можно ли на уровне библиотеки решить проблему с бесконечным зависанием? Причем не только с точки зрения проверки типизации, но и какой-то механизм защиты от бесконечного ожидания в целом с логированием потенциальной причины ее возникновения.
- Можно ли на уровне сервера настроить какую-то ответную реакцию (если до него сообщение все-таки доходит), которая могла бы помочь в отладке аналогичных проблем?
Добрый день!
Обнаружили проблему в работе библиотеки. При передаче в метод
send_messageпараметраparse_mode=Noneотправка сообщения намертво зависает наdata = await futureвtrueconf.methods.base.TrueConfMethod.__call__. Воспроизвести достаточно просто:В типизации к параметру в
send_messageконечно указано, что ожидается толькоstr, однако в библиотеке нет никакой реакции на то, что был передан некорректный параметр, а исполняемый код бесконечно ожидает какой-то реакции от сервера.Прошу посмотреть: