PYPROGLIB Telegram 7166
🔳 PEP 806 — смешанные синхронные и асинхронные контекстные менеджеры с точной маркировкой async

Python предлагает удобный способ работы с несколькими контекстными менеджерами через with и async with. Но до сих пор смешивание синхронных и асинхронных менеджеров требовало глубокой вложенности или использования громоздких обходных решений, вроде чрезмерного применения AsyncExitStack.

📪 PEP 806 предлагает разрешить использовать в одном with и синхронные, и асинхронные менеджеры, просто помечая асинхронные ключевым словом async.

Пример старого подхода с глубокой вложенностью:
async def process_data():
async with acquire_lock() as lock:
with temp_directory() as tmpdir:
async with connect_to_db(cache=tmpdir) as db:
with open('config.json', encoding='utf-8') as f:
config = json.load(f)
await db.execute(config['query'])


С PEP 806 код станет компактнее и читаемее:
async def process_data():
with (
async acquire_lock() as lock,
temp_directory() as tmpdir,
async connect_to_db(cache=tmpdir) as db,
open('config.json', encoding='utf-8') as f,
):
config = json.load(f)
await db.execute(config['query'])


🔛 Меньше вложенности
🔛 Чёткая маркировка асинхронного кода
🔛 Легче читать и поддерживать

🌠 Полный текст PEP: https://clc.to/Kx-lqQ

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍184



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

🔳 PEP 806 — смешанные синхронные и асинхронные контекстные менеджеры с точной маркировкой async

Python предлагает удобный способ работы с несколькими контекстными менеджерами через with и async with. Но до сих пор смешивание синхронных и асинхронных менеджеров требовало глубокой вложенности или использования громоздких обходных решений, вроде чрезмерного применения AsyncExitStack.

📪 PEP 806 предлагает разрешить использовать в одном with и синхронные, и асинхронные менеджеры, просто помечая асинхронные ключевым словом async.

Пример старого подхода с глубокой вложенностью:

async def process_data():
async with acquire_lock() as lock:
with temp_directory() as tmpdir:
async with connect_to_db(cache=tmpdir) as db:
with open('config.json', encoding='utf-8') as f:
config = json.load(f)
await db.execute(config['query'])


С PEP 806 код станет компактнее и читаемее:
async def process_data():
with (
async acquire_lock() as lock,
temp_directory() as tmpdir,
async connect_to_db(cache=tmpdir) as db,
open('config.json', encoding='utf-8') as f,
):
config = json.load(f)
await db.execute(config['query'])


🔛 Меньше вложенности
🔛 Чёткая маркировка асинхронного кода
🔛 Легче читать и поддерживать

🌠 Полный текст PEP: https://clc.to/Kx-lqQ

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

#буст

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


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

View MORE
Open in Telegram


Telegram News

Date: |

Telegram offers a powerful toolset that allows businesses to create and manage channels, groups, and bots to broadcast messages, engage in conversations, and offer reliable customer support via bots. SUCK Channel Telegram Healing through screaming therapy best-secure-messaging-apps-shutterstock-1892950018.jpg Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image.
from us


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