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: |

During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month. To edit your name or bio, click the Menu icon and select “Manage Channel.” Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. 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. How to build a private or public channel on Telegram?
from us


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