asyncio вызывает боль? Потому что даже простая ошибка может сломать всю цепочку задач.🐍 tinyio — это минималистичный event loop для Python (всего ~200 строк), который работает через
yield, а не await, и делает асинхронность прозрачной.Что умеет:
•
yield вместо await: проще отлаживать и понимать• Параллельный запуск:
yield [task1(), task2()]• Фоновые задачи:
yield {task1(), task2()}• Прерывание всех задач при одной ошибке
• Встроенные
Lock, Semaphore, Event, timeoutПример:
def slow_add(x):
yield tinyio.sleep(1)
return x + 1
def main():
a, b = yield [slow_add(1), slow_add(2)]
return a + b
Loop().run(main()) # → 5
Когда нужно просто и понятно — tinyio делает то, что должен. Никакой магии.
🔗 https://github.com/patrick-kidger/tinyio
@python_job_interview
