При этом мне в def g нельзя юзать await т.к. я не могу сделать этот метод асинхронным. Буду рад помощи, нашёл что то тип second_data = yield но не получилось сделать чтобы def ff(a): был ассинхронным
asyncio.Queue в помощь. Чтобы синхронно помещать туда элементы, или используй put_nowait(), или выкручивайся с вызовом put() через create_task().
Но у меня прямой вопрос: а как ты, собственно, собираешься выполнять синхронную g() в асинхронной программе? Потому что если через потоки, то про совет выше можешь забыть.
В общем я пытаюсь скомбинировать 2 либы telebot (бот тг) и pyrogram, в методе (функции) pyrogram он требует ассинхроность для вызова функций и в этом проблема
RINCODE, ну комбинировать два разных фреймворка для ботов - уже плохая идея. А уж синхронный с асинхронным... Выбери тот, на котором нужные фичи есть, и пиши на нём.
В общем я пытаюсь скомбинировать 2 либы telebot (бот тг) и pyrogram, в методе (функции) pyrogram он требует ассинхроность для вызова функций и в этом проблема
RINCODE, не надо верить любым сказкам, которые рассказывает нейросеть. В современной версии телебота есть класс AsyncTelebot, который как раз асинхронный.
Однако разбираться потом, что там сломается при замене класса на асинхронный, может быть не очень просто. И вполне возможно окажется, что проще переписать всё на более развитую асинхронную библиотеку aiogram либо даже на сам pyrogram, раз уж он тоже предполагается к использованию.