📰 IT Дайджест

#python

37 материалов

9. Larry Hastings показал детерминированное тестирование многопоточного Python на PyCon US

С появлением free-threaded Python тестирование многопоточных программ стало особенно актуально. Ларри Хастингс представил метод, устраняющий недетерминизм планировщика ОС. Подробности — в видео доклада с PyCon US.

lwn.net · #tool #concurrency #python #testing

9. Вышел Python 3.15.0 RC2 — финальный кандидат перед октябрьским релизом

Менеджер релиза Hugo van Kemenade объявил второй кандидат Python 3.15. В RC-фазе разрешены только баг-фиксы. Разработчиков просят готовить колёса для PyPI. Саймон Уиллисон проверил Datasette, sqlite-utils — проходят, LLM ждёт scikit-learn для 3.15.

simonwillison.net · #tool #python #release

9. Совет Python приостановил разработку JIT-компилятора — только багфиксы

Экспериментальный JIT, появившийся в Python 3.13, больше не получит новых возможностей до дальнейшего распоряжения совета. Разрешены только исправления ошибок и уязвимостей. Причины паузы официально не объявлены.

lwn.net · #tool #cpython #jit #python

14. Django переходит на ежегодный цикл релизов — каждая версия станет LTS

Steering Council принял DEP 20: с января 2028 Django переходит с восьмимесячного цикла на ежегодный. Каждая версия получит три года поддержки, «LTS» как отдельная метка исчезает, а версии будут называть по году: Django 2028, Django 2029. До 2028 ничего не меняется, Django 6.2 LTS выйдет в апреле 2027 с поддержкой до апреля 2030.

www.djangoproject.com · #tool #django #python #web

4. Ruff 0.16.0 включил 413 правил по умолчанию вместо 59 — проекты Саймона Уиллисона сломались, 1538 ошибок исправлены одной командой

Astral обновила Ruff: теперь активны 413 правил (было 59), общее число правил выросло с 708 до 968. На sqlite-utils команда uvx ruff@latest check . --fix --unsafe-fixes исправила 1538 из 1618 проблем — остались DTZ005 (datetime без tz), BLE001 (слепой except Exception) и B018 (бесполезное чтение атрибута). Сам Уиллисон правил проекты через Codex (GPT-5.6 Sol) и Claude Code (Opus 5).

simonwillison.net · #tool #linting #python #ruff

4. SQLite Query Explainer показывает план запросов в браузере

Саймон Уиллисон собрал интерактивный объяснялщик EXPLAIN и EXPLAIN QUERY PLAN: SQLite крутится в Python через Pyodide в WebAssembly прямо в браузере. Идея простая и злая: не ждать, пока очередной человек «когда-нибудь научится читать query plan», а сразу тыкать его носом в расшифровку.

simonwillison.net · #tool #pyodide #python #sqlite #webassembly

10. uvx в GitHub Actions: чтобы кеш не сносило при каждом запуске

Симон Уилсон нашёл рецепт для cache-friendly запуска uvx tool-name в GitHub Actions. Ключевой трюк — фиксировать UV_EXCLUDE_NEWER: "2026-07-12" и включать это значение в cache key, чтобы uvx не тянул каждый раз новый набор зависимостей.

simonwillison.net · #tool #caching #github-actions #python #uvx

4. sqlite-utils 4.1: вставка и upsert теперь умеют брать rows() из Python-кода

Simon Willison выпустил sqlite-utils 4.1, и главное изменение здесь очень в его стиле: команды insert и upsert получили опцию --code. Теперь можно передать блок Python-кода или путь к .py-файлу, который определяет rows() или iterable строк, вместо того чтобы городить промежуточный файл и лишний импорт.

simonwillison.net · #tool #cli #python #release #sqlite #upsert

3. LLM 0.31.1 чинит падение на пустых аргументах tool call

В релизе llm 0.31.1 исправили баг с OpenAI Chat Completion endpoints: если tool call приходил с пустыми arguments, у некоторых провайдеров вылетала JSON-ошибка. Автор отдельно пишет, что баг всплыл во время тестов с llm-meta-ai — то есть не в вакууме, а в живой интеграции.

simonwillison.net · #tool #llm #openai #python #release

3. sqlite-utils 4.0: миграции, вложенные транзакции и compound foreign keys

Саймон Уиллисон выкатил sqlite-utils 4.0 — это уже 124-й релиз проекта и первое крупное повышение версии со времен 3.0 в ноябре 2020-го. Внутри три заметных вещи: migrations для базы, вложенные транзакции через новый db.atomic(), и поддержка compound foreign keys. Для утилиты, которая обычно живет в духе «маленький швейцарский нож для SQLite», это уже довольно жирный апгрейд.

simonwillison.net · #tool #cli #migrations #python #sqlite

5. XWayland 24.1.13 закрывает две новые дыры в X.Org codebase

Вышел XWayland 24.1.13, и релиз чинит еще две security issues в кодовой базе X.Org Server. Поскольку XWayland — это слой, через который legacy X11-приложения живут внутри Wayland-сессий, такие патчи обычно означают, что кто-то снова нашел способ испортить праздник старому стеку.

www.phoronix.com · #tool #python #sqlite #sqlite-migrate

3. sqlite-utils 4.0rc3: compound foreign keys и ещё один сдвиг в схеме

Дейн Паулл (Simon Willison) готовит sqlite-utils 4.0rc3 и пишет, что ради него пересмотрел кучу issue и PR, подсматривая ответы у Claude Fable 5 и GPT-5.5. Главная новинка — поддержка introspecting и создания compound foreign keys, причём тут есть тонкое breaking change в table.foreign_keys.

simonwillison.net · #tool #cli #python #sqlite

2. sqlite-utils 4.0rc2 собрали в основном Claude Fable и $149,25

Саймон Уиллисону понадобился Claude Fable, чтобы дотащить sqlite-utils до релиза 4.0rc2, и он отдельно посчитал расходы: около $149,25. История не про магию, а про очень практичную боль — автор хотел добиться стабильного major release без лишнего semver-цирка.

simonwillison.net · #tool #python #release #semver #sqlite

3. SearXNG как метапоисковик: 171 балл и один репозиторий вместо сервиса

SearXNG — свободный метапоисковик, который собирает результаты из разных источников, не привязывая вас к одному поисковому гиганту. Проект на GitHub собрал 171 пункт на HN и 48 комментариев — для open source-поиска это уже не совсем кружок по интересам, а вполне живой инструмент.

github.com · #tool #github #metasearch #python #search #selfhosted

11. MySQL-пул на Python обещает минус 80% RAM

На Хабре показали кастомный асинхронный connection pool для MySQL на Python, который авторы связывают с экономией до 80% RAM сервера. Судя по описанию, история выросла из банальной боли: под пиковыми нагрузками классическое «создаём новое соединение на каждый чих» быстро превращает backend в дорогостоящий обогреватель. Здесь хотя бы есть конкретная цифра и понятный предмет оптимизации.

habr.com · #tool #async #connection-pool #mysql #python

4. Kivo: Python-оверлей для телесуфлёра на PySide6

Kivo — лёгкий десктопный телесуфлёр с always-on-top оверлеем, прозрачным фреймлесс-окном и автопрокруткой текста. Он открывает .txt, следит за изменениями файла и умеет ставить скролл на паузу — полезно для тех, кто читает AI-генерёнку в камеру и хочет делать вид, что всё под контролем.

github.com · #tool #desktop #pyside6 #python #teleprompter

12. Линуксовый планировщик с учётом кэша уже меряют на прирост до 360% в MySQL

Phoronix пишет, что после попадания Cache Aware Scheduling в Linux 7.2 уже появился патч-сет, который расширяет эту схему и показывает до 360% в MySQL. Звучит как место, где либо бенчмарк попал в очень узкий кейс, либо планировщик наконец начал понимать, что кэш — это не декоративная штука.

www.phoronix.com · #tool #datasette #plugin #pypi #python #release

1. Datasette 1.0a35: таблицы теперь можно создавать из меню

Саймон Уилсон выкатил 1.0a35 для Datasette и отдельно подсветил новый экран "Create table" в меню действий базы. Он дергает JSON API `/<database>/-/create` и умеет задавать колонки, primary key, кастомные типы, `NOT NULL`, литеральные и expression defaults, а также single-column foreign keys. Для веб-инструмента, который долго жил вокруг чтения данных, это уже вполне взрослый CRUD-уголок.

simonwillison.net · #tool #api #datasette #python #sqlite #web

1. Free-threaded Python: GIL убрали, но праздновать рано

LWN разбирает переход Python к free-threaded-версии без GIL: теперь несколько потоков реально могут выполняться параллельно внутри интерпретатора. Thomas Wouters на PyCon US 2026 объясняет, что это не просто переключатель, а большая перекройка CPython с кучей оговорок по совместимости и производительности.

lwn.net · #tool #free-threading #gil #python

8. WebScan v2.0: из песочницы Хабра до pip install за неделю

Автор рассказывает, как за неделю довел WebScan до версии 2.0 и упаковал проект в pip install. Внутри обещаны путь от идеи, ошибки и бенчмарк — то есть не маркетинговый «вот вам тулза», а нормальная разработческая кухня с тем, где именно всё сломалось и что пришлось переделать.

habr.com · #tool #benchmark #pip #python #web #webscan

1. Pyodide-пакеты теперь можно грузить прямо в PyPI

Simon Willison пишет про Pyodide 314.0 и приятную мелочь для тех, кто любит WebAssembly: Python-пакеты, собранные для Pyodide, теперь можно публиковать в PyPI и ставить во время выполнения. Раньше команда Pyodide тащила на себе больше 300 пакетов вручную — собирать, хостить и обновлять это удовольствие, конечно, было сомнительным.

simonwillison.net · #tool #packaging #pyodide #pypi #python #wasm

7. Datasette 1.0a33: JSON-экстры для запросов и строк

Саймон Уиллисон выпустил Datasette 1.0a33 и расширил паттерн `?_extra=` — теперь он работает не только для таблиц, но и для запросов и строк. Это еще альфа, но уже с задокументированным API-экстримом, потому что без этого любой движок данных быстро превращается в музей недосказанностей.

simonwillison.net · #tool #python #release #sqlite

12. asyncinject 0.7: библиотека, которую еще и Claude Fable починил

Саймон Уиллисон выложил asyncinject 0.7 — утилиту для dependency injection в asyncio. Забавно, что он отдельно отмечает: Claude Fable 5 сам нашел баги в этой зависимости и помог их исправить, так что у модели уже почти роль очень настойчивого стажера.

simonwillison.net · #tool #asyncio #library #python #release

8. Seth Larson спорит, считать ли плохие AI-подсказки уязвимостью

Seth Larson из Python Software Foundation разбирает случай с PyCharm Full Line completion: локальный deep learning module предлагает код, который может привести к серьезным уязвимостям. Главный вопрос не в том, плохой ли совет, а в том, как вообще классифицировать такую штуку — баг это, уязвимость или просто очень дорогая галлюцинация.

lwn.net · #security #code-completion #cve #pycharm #python

13. Datasette Agent 0.2a0 научился спрашивать пользователя посреди работы

В datasette-agent 0.2a0 инструменты теперь могут вызывать await context.ask_user(...) и задавать yes/no, multiple-choice или free-text вопросы прямо во время выполнения. Пока ответ не получен, агентный turn подвисает — то есть теперь у бота есть официальный способ нести ответственность и одновременно просить человека доделать половину работы.

simonwillison.net · #ai #agents #datasette #python

2. Datasette Agent получил черновик режима редактирования текста

Simon Willison выкатил datasette-agent-edit 0.1a0 — ранний плагин для правок существующего текста: от совместного Markdown до больших SQL-запросов и SVG. Он прямо пишет, что агентное редактирование сложно сделать надёжным, и ссылается на дизайн Claude text editor как на любимый ориентир.

simonwillison.net · #tool #agentic-editing #datasette #opensource #python #release

1. Simon Willison запускает Python в песочнице через MicroPython и WASM

Саймон Уиллисон показывает, как загонять Python-код в изолированную среду: MicroPython крутится внутри WebAssembly, а наружу торчит только аккуратно урезанный API. Это не «запустил код в браузере и надеюсь на лучшее», а вполне конкретная схема с ограничениями по памяти и доступу к системе.

simonwillison.net · #tool #microcontroller #python #sandbox #wasm

6. microPython-wasm 0.1a2: теперь у песочницы есть CLI

Simon Willison выпустил micropython-wasm 0.1a2 и добавил командную строку, чтобы запускать MicroPython в WebAssembly-песочнице без лишнего ритуала. Он использует это как основу для sandbox-плагина в Datasette Agent, то есть идея не просто «поигрался», а завязана на реальном исполнении пользовательского кода.

simonwillison.net · #tool #micropython #python #release #show-hn #wasm

3. Datasette Agent учится запускать Python в sandbox на Micropython/WASM

Simon Willison выкатил alpha datasette-agent-micropython 0.1a0: цель — безопасно генерировать и исполнять Python-код внутри Datasette Agent. Он пишет, что GPT-5.5 пока не смог выбраться из песочницы, а это уже неплохой тест на адекватность всей конструкции. Основа — webassembly и Micropython, то есть попытка сделать «дайте ИИ код-раннер, но без пожара».

simonwillison.net · #ai #datasette #llm #python #sandbox #webassembly

4. Micropython-wasm 0.1a1 чинит ограничения для Datasette Agent

Еще один релиз от Willison — micropython-wasm 0.1a1. Это не громкий анонс, а набор исправлений под ограничения, которые всплыли, пока он пытался собрать datasette-agent-micropython поверх WebAssembly. То есть сначала сломалось на практике, потом стало немного менее сломанным — классическая инфраструктурная романтика.

simonwillison.net · #ai #python #sandbox #wasm #webassembly

2. Datasette 1.0a32 чинит INSERT ... RETURNING через /db/-/execute-write

Simon Willison выкатывает минорный релиз datasette 1.0a32 и честно пишет: это багфикс, а не повод для шампанского. Починили INSERT ... RETURNING в новом endpoint /db/-/execute-write и несколько проблем с base_url, которые всплыли во время экспериментов с Service Workers.

simonwillison.net · #tool #datasette #python #release #sqlite

5. Python ASGI в браузере через Pyodide и service worker

Уиллисон показывает, как Datasette Lite крутит Python-приложение целиком в браузере, без сервера, на Pyodide в WebAssembly. Старый вариант через Web Workers и перехват навигации работал, но был довольно корявым — теперь автор исследует схему с service worker, чтобы браузер вел себя чуть менее как цирк с конями.

simonwillison.net · #tool #asgi #pyodide #python #service-worker #wasm

3. NVIDIA выпустила CUDA 13.3 с CUDA Python 1.0 и CUDA Tile for C++

В CUDA 13.3 завезли CUDA Python 1.0 и поддержку CUDA Tile for C++, то есть NVIDIA продолжает обвешивать свой стек еще одной прослойкой абстракций. Phoronix пишет, что это очередной шаг в unified GPU programming stack — формулировка, за которой обычно прячется мысль: «держитесь, сейчас будет ещё сложнее».

www.phoronix.com · #hardware #cuda #gpu #nvidia #python

4. Simon Willison раскопал, как OpenClaw сменил пять имён за полгода

Саймон Уилсон прошёлся по git-истории README и насчитал цепочку: Warelay → CLAWDIS → CLAWDBOT → Clawdbot → Moltbot → OpenClaw. Для этого он использовал свой скрипт first_line_history.py, который, судя по всему, отлично подходит для археологии нейминга в проектах, где название меняется чаще, чем API.

simonwillison.net · #tool #git #history #oss #pytalk #python