#python
37 материалов
С появлением free-threaded Python тестирование многопоточных программ стало особенно актуально. Ларри Хастингс представил метод, устраняющий недетерминизм планировщика ОС. Подробности — в видео доклада с PyCon US.
lwn.net · #tool #concurrency #python #testing
Менеджер релиза Hugo van Kemenade объявил второй кандидат Python 3.15. В RC-фазе разрешены только баг-фиксы. Разработчиков просят готовить колёса для PyPI. Саймон Уиллисон проверил Datasette, sqlite-utils — проходят, LLM ждёт scikit-learn для 3.15.
simonwillison.net · #tool #python #release
Экспериментальный JIT, появившийся в Python 3.13, больше не получит новых возможностей до дальнейшего распоряжения совета. Разрешены только исправления ошибок и уязвимостей. Причины паузы официально не объявлены.
lwn.net · #tool #cpython #jit #python
Из-за использования актуальной версии Unicode вместо Unicode 3.2.0 в функции StringPrep, str.lower() даёт неверные результаты для IDNA 2003. Исправление добавлено в виде новых исключений. CVE-2026-17084.
sethmlarson.dev · #security #cve #python #security
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
В uv 0.12.0 команда uv init теперь создаёт проект с src/ layout, использует uv_build backend и настраивает script alias. Изменение ломает обратную совместимость. Версия всё ещё не 1.0.
simonwillison.net · #tool #packaging #python #uv
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
Саймон Уиллисон собрал интерактивный объяснялщик EXPLAIN и EXPLAIN QUERY PLAN: SQLite крутится в Python через Pyodide в WebAssembly прямо в браузере. Идея простая и злая: не ждать, пока очередной человек «когда-нибудь научится читать query plan», а сразу тыкать его носом в расшифровку.
simonwillison.net · #tool #pyodide #python #sqlite #webassembly
Симон Уилсон нашёл рецепт для cache-friendly запуска uvx tool-name в GitHub Actions. Ключевой трюк — фиксировать UV_EXCLUDE_NEWER: "2026-07-12" и включать это значение в cache key, чтобы uvx не тянул каждый раз новый набор зависимостей.
simonwillison.net · #tool #caching #github-actions #python #uvx
Simon Willison выпустил sqlite-utils 4.1, и главное изменение здесь очень в его стиле: команды insert и upsert получили опцию --code. Теперь можно передать блок Python-кода или путь к .py-файлу, который определяет rows() или iterable строк, вместо того чтобы городить промежуточный файл и лишний импорт.
simonwillison.net · #tool #cli #python #release #sqlite #upsert
В релизе llm 0.31.1 исправили баг с OpenAI Chat Completion endpoints: если tool call приходил с пустыми arguments, у некоторых провайдеров вылетала JSON-ошибка. Автор отдельно пишет, что баг всплыл во время тестов с llm-meta-ai — то есть не в вакууме, а в живой интеграции.
simonwillison.net · #tool #llm #openai #python #release
Саймон Уиллисон выкатил sqlite-utils 4.0 — это уже 124-й релиз проекта и первое крупное повышение версии со времен 3.0 в ноябре 2020-го. Внутри три заметных вещи: migrations для базы, вложенные транзакции через новый db.atomic(), и поддержка compound foreign keys. Для утилиты, которая обычно живет в духе «маленький швейцарский нож для SQLite», это уже довольно жирный апгрейд.
simonwillison.net · #tool #cli #migrations #python #sqlite
Вышел XWayland 24.1.13, и релиз чинит еще две security issues в кодовой базе X.Org Server. Поскольку XWayland — это слой, через который legacy X11-приложения живут внутри Wayland-сессий, такие патчи обычно означают, что кто-то снова нашел способ испортить праздник старому стеку.
www.phoronix.com · #tool #python #sqlite #sqlite-migrate
Дейн Паулл (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
Саймон Уиллисону понадобился Claude Fable, чтобы дотащить sqlite-utils до релиза 4.0rc2, и он отдельно посчитал расходы: около $149,25. История не про магию, а про очень практичную боль — автор хотел добиться стабильного major release без лишнего semver-цирка.
simonwillison.net · #tool #python #release #semver #sqlite
SearXNG — свободный метапоисковик, который собирает результаты из разных источников, не привязывая вас к одному поисковому гиганту. Проект на GitHub собрал 171 пункт на HN и 48 комментариев — для open source-поиска это уже не совсем кружок по интересам, а вполне живой инструмент.
github.com · #tool #github #metasearch #python #search #selfhosted
На Хабре показали кастомный асинхронный connection pool для MySQL на Python, который авторы связывают с экономией до 80% RAM сервера. Судя по описанию, история выросла из банальной боли: под пиковыми нагрузками классическое «создаём новое соединение на каждый чих» быстро превращает backend в дорогостоящий обогреватель. Здесь хотя бы есть конкретная цифра и понятный предмет оптимизации.
habr.com · #tool #async #connection-pool #mysql #python
Kivo — лёгкий десктопный телесуфлёр с always-on-top оверлеем, прозрачным фреймлесс-окном и автопрокруткой текста. Он открывает .txt, следит за изменениями файла и умеет ставить скролл на паузу — полезно для тех, кто читает AI-генерёнку в камеру и хочет делать вид, что всё под контролем.
github.com · #tool #desktop #pyside6 #python #teleprompter
Phoronix пишет, что после попадания Cache Aware Scheduling в Linux 7.2 уже появился патч-сет, который расширяет эту схему и показывает до 360% в MySQL. Звучит как место, где либо бенчмарк попал в очень узкий кейс, либо планировщик наконец начал понимать, что кэш — это не декоративная штука.
www.phoronix.com · #tool #datasette #plugin #pypi #python #release
Саймон Уилсон выкатил 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
LWN разбирает переход Python к free-threaded-версии без GIL: теперь несколько потоков реально могут выполняться параллельно внутри интерпретатора. Thomas Wouters на PyCon US 2026 объясняет, что это не просто переключатель, а большая перекройка CPython с кучей оговорок по совместимости и производительности.
lwn.net · #tool #free-threading #gil #python
Автор рассказывает, как за неделю довел WebScan до версии 2.0 и упаковал проект в pip install. Внутри обещаны путь от идеи, ошибки и бенчмарк — то есть не маркетинговый «вот вам тулза», а нормальная разработческая кухня с тем, где именно всё сломалось и что пришлось переделать.
habr.com · #tool #benchmark #pip #python #web #webscan
Simon Willison пишет про Pyodide 314.0 и приятную мелочь для тех, кто любит WebAssembly: Python-пакеты, собранные для Pyodide, теперь можно публиковать в PyPI и ставить во время выполнения. Раньше команда Pyodide тащила на себе больше 300 пакетов вручную — собирать, хостить и обновлять это удовольствие, конечно, было сомнительным.
simonwillison.net · #tool #packaging #pyodide #pypi #python #wasm
Саймон Уиллисон выпустил Datasette 1.0a33 и расширил паттерн `?_extra=` — теперь он работает не только для таблиц, но и для запросов и строк. Это еще альфа, но уже с задокументированным API-экстримом, потому что без этого любой движок данных быстро превращается в музей недосказанностей.
simonwillison.net · #tool #python #release #sqlite
Саймон Уиллисон выложил asyncinject 0.7 — утилиту для dependency injection в asyncio. Забавно, что он отдельно отмечает: Claude Fable 5 сам нашел баги в этой зависимости и помог их исправить, так что у модели уже почти роль очень настойчивого стажера.
simonwillison.net · #tool #asyncio #library #python #release
Seth Larson из Python Software Foundation разбирает случай с PyCharm Full Line completion: локальный deep learning module предлагает код, который может привести к серьезным уязвимостям. Главный вопрос не в том, плохой ли совет, а в том, как вообще классифицировать такую штуку — баг это, уязвимость или просто очень дорогая галлюцинация.
lwn.net · #security #code-completion #cve #pycharm #python
В datasette-agent 0.2a0 инструменты теперь могут вызывать await context.ask_user(...) и задавать yes/no, multiple-choice или free-text вопросы прямо во время выполнения. Пока ответ не получен, агентный turn подвисает — то есть теперь у бота есть официальный способ нести ответственность и одновременно просить человека доделать половину работы.
simonwillison.net · #ai #agents #datasette #python
Simon Willison выкатил datasette-agent-edit 0.1a0 — ранний плагин для правок существующего текста: от совместного Markdown до больших SQL-запросов и SVG. Он прямо пишет, что агентное редактирование сложно сделать надёжным, и ссылается на дизайн Claude text editor как на любимый ориентир.
simonwillison.net · #tool #agentic-editing #datasette #opensource #python #release
Саймон Уиллисон показывает, как загонять Python-код в изолированную среду: MicroPython крутится внутри WebAssembly, а наружу торчит только аккуратно урезанный API. Это не «запустил код в браузере и надеюсь на лучшее», а вполне конкретная схема с ограничениями по памяти и доступу к системе.
simonwillison.net · #tool #microcontroller #python #sandbox #wasm
Simon Willison выпустил micropython-wasm 0.1a2 и добавил командную строку, чтобы запускать MicroPython в WebAssembly-песочнице без лишнего ритуала. Он использует это как основу для sandbox-плагина в Datasette Agent, то есть идея не просто «поигрался», а завязана на реальном исполнении пользовательского кода.
simonwillison.net · #tool #micropython #python #release #show-hn #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
Еще один релиз от Willison — micropython-wasm 0.1a1. Это не громкий анонс, а набор исправлений под ограничения, которые всплыли, пока он пытался собрать datasette-agent-micropython поверх WebAssembly. То есть сначала сломалось на практике, потом стало немного менее сломанным — классическая инфраструктурная романтика.
simonwillison.net · #ai #python #sandbox #wasm #webassembly
Simon Willison выкатывает минорный релиз datasette 1.0a32 и честно пишет: это багфикс, а не повод для шампанского. Починили INSERT ... RETURNING в новом endpoint /db/-/execute-write и несколько проблем с base_url, которые всплыли во время экспериментов с Service Workers.
simonwillison.net · #tool #datasette #python #release #sqlite
Еще один взгляд на datasette 1.0a32: релиз маленький, но конкретный. Исправили INSERT ... RETURNING через /db/-/execute-write и добили баги с base_url, которые вылезли при экспериментах с Service Workers.
simonwillison.net · #tool #datasette #python #release #sqlite
Уиллисон показывает, как Datasette Lite крутит Python-приложение целиком в браузере, без сервера, на Pyodide в WebAssembly. Старый вариант через Web Workers и перехват навигации работал, но был довольно корявым — теперь автор исследует схему с service worker, чтобы браузер вел себя чуть менее как цирк с конями.
simonwillison.net · #tool #asgi #pyodide #python #service-worker #wasm
В 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
Саймон Уилсон прошёлся по git-истории README и насчитал цепочку: Warelay → CLAWDIS → CLAWDBOT → Clawdbot → Moltbot → OpenClaw. Для этого он использовал свой скрипт first_line_history.py, который, судя по всему, отлично подходит для археологии нейминга в проектах, где название меняется чаще, чем API.
simonwillison.net · #tool #git #history #oss #pytalk #python