TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.2K subscribers
Post #7038 3.03K
✔️ 2 минималистичные библиотеки, которые делают асинхронность в Python проще

В Python всё чаще приходится выбирать между sync и async реализациями (а иногда ещё и писать обе).

Если вам надоело дублировать код или разбираться в тёмных углах asyncio, вот две очень лёгкие и практичные альтернативы.

🙂 transfunctions — одна функция → три разных поведения

С помощью шаблона вы пишете *один* фрагмент кода, а библиотека генерирует:
— обычную функцию (func())
— async-версию (await func())
— генератор (for _ in func():)

Пример:
@transfunction
def template():
print('so, ', end='')
with sync_context:
print("it's just usual function!")
with async_context:
print("it's an async function!")
with generator_context:
print("it's a generator function!")
yield


Хотите всё автоматически — используйте @superfunction, и функция сама поймёт, как её вызвали:
~my_superfunction()         # обычный вызов
await my_superfunction() # async-исполнение
for x in my_superfunction(): # генератор


🙂 tinyio — tiny event loop (≈300 строк) вместо asyncio

Если вы когда-нибудь думали «asyncio слишком сложный для такой простой задачи» — эта библиотека для вас.

tinyio — микроскопический event loop с безопасной обработкой ошибок и простейшим API:
def slow_add_one(x):
yield tinyio.sleep(1)
return x + 1

def foo():
a, b = yield [slow_add_one(3), slow_add_one(4)]
return a, b

loop = tinyio.Loop()
print(loop.run(foo())) # → (4, 5)


— вместо await используется yield
— если ошибка случается в одной корутине — автоматически отменяются все, чтобы не было скрытого «зомби»-кода
— нет Task, Future, TaskGroup — только Loop, sleep, run_in_thread

🙂 Установка

pip install transfunctions
pip install tinyio


🐸 Библиотека питониста

#буст
  • ❤ 18
  • 👍 6
  • 🌚 1
More from @pyproglib
  1. Oct 9, 2026Post #7855
  2. Oct 9, 2026Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации…
  3. Oct 7, 2026🎓 С Днём учителя! Учиться никогда не поздно — особенно когда технологии меняются быстрее,…
  4. Oct 3, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  5. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  6. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →