PYPROGLIB Telegram 7038
✔️ 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


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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍6🌚1



tgoop.com/pyproglib/7038
Create:
Last Update:

✔️ 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


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

#буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tgoop.com/pyproglib/7038

View MORE
Open in Telegram


Telegram News

Date: |

2How to set up a Telegram channel? (A step-by-step tutorial) While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. On Tuesday, some local media outlets included Sing Tao Daily cited sources as saying the Hong Kong government was considering restricting access to Telegram. Privacy Commissioner for Personal Data Ada Chung told to the Legislative Council on Monday that government officials, police and lawmakers remain the targets of “doxxing” despite a privacy law amendment last year that criminalised the malicious disclosure of personal information. SUCK Channel Telegram Administrators
from us


Telegram Библиотека питониста | Python, Django, Flask
FROM American