devdigest // data science
704 subscribers
47 photos
1 video
3 files
510 links
Про искусственный интеллект, большие данные и квантовые вычисления.

Все каналы проекта: https://t.me/devdigestplatform/163
Download Telegram
⚡️ Python 3.15: lazy import, распаковка в comprehension и сэмплирующий профилировщик

Вышел Python 3.15, и три вещи в нём стоит попробовать на этой неделе. Первая — PEP 810: lazy import json и lazy from pathlib import Path загружают модуль при первом обращении. Мотивация у Саймона Уиллисона из его LLM CLI: плагины, импортирующие sentence_transformers, добавляли несколько секунд к каждому запуску — типичная боль любого Python-CLI с тяжёлым ML-стеком.

Вторая — PEP 798, распаковка внутри comprehension: [*L for L in lists], {*s for s in sets}, {**d for d in dicts}. Больше не нужен itertools.chain, чтобы сплющить список списков. Третья — профилирование: cProfile переименован в profiling.tracing, а рядом появился сэмплирующий профилировщик Tachyon в profiling.sampling с flame graph, heat map и экспортом в формат Firefox Profiler; к живому процессу он цепляется через python -m profiling.sampling attach PID (на macOS потребовался sudo).

По скорости, по замерам Мигеля Гринберга на rc3, 3.15 примерно равен 3.14; экспериментальный JIT дал 1.2x на Фибоначчи. Заодно 3.10 ушёл в EOL — библиотекам теперь можно опираться на tomllib, asyncio.TaskGroup и timeout(), datetime.UTC. Ставится через uv python install 3.15, и 3.15.0 уже есть в actions/python-versions.

👉🏻 Канал | 💬 Чат | 📕 Каталог