Planet Python на русском Заметка

Planet Python на русском

Сайт Planet Python - это планетарный сайт, на котором собраны материалы, связанные с Python, из различных источников, включая блоги, новостные сайты и другие онлайн-издания. Сайт представляет собой универсальное место, где можно быть в курсе последних событий в мире программирования на Python. Контент сайта включает в себя учебники, новости, анонсы проектов и обсуждения различных тем, связанных с Python. Пользователи могут посещать сайт, чтобы быть в курсе событий, происходящих в сообществе Python, новых релизов, конференций и лучших практик использования языка программирования Python. Цель сайта - способствовать продвижению и распространению контента, связанного с Python, тем самым внося свой вклад в рост и развитие сообщества Python.

Трэд заметок

Wing Python IDE версии 12 теперь доступна, отличающаяся глубокой интеграцией с кодирующим агентом Claude Code AI. Этот релиз представляет новый инструмент Claude Code, инструмент Tasks для управления рабочими процессами AI-агентов и MCP-серверы, которые предоставляют агенту доступ к возможностям Wing по анализу кода, тестированию и отладке. Эта интеграция делает управление AI-агентами в Wing более эффективным и экономичным по сравнению с использованием терминала. Wing 12 также включает в себя управляемые ИИ действия с кодом (Code Actions), действия FIX и функцию "Написать тесты". Улучшения включают поддержку псевдотерминалов для команд ОС и ввода/вывода отладки, гибкое размещение инструментов в разделенных окнах редактора и реорганизованное меню "Инструменты". Автоматическое обнаружение тестов упрощает процесс настройки тестирования, а диалоговое окно "Настройки" теперь предлагает функцию поиска. Линейка продуктов была упрощена до Wing Pro, который включает функции ИИ, и Wing Classic, традиционный IDE без возможностей ИИ. Wing 101 остается бесплатным IDE для начинающих. Файлы проектов, созданные в Wing 12, несовместимы со старыми версиями, поэтому пользователям необходимо сохранять их под новыми именами. Существующие версии Wing 11 и более ранние могут быть установлены и использованы независимо.
CdXz5zHNQW_ZPi3AXTjF7.png
Core Dispatch охватывает период с 5 по 18 июля 2026 года, освещая выпуск бета-версии Python 3.15.0 beta 4. Эта бета-версия вышла 18 июля, а последующие релизы, включая Python 3.13.15 и 3.14.7, запланированы на 4 августа. Основная команда в настоящее время находится на EuroPython, где также проходил их ежегодный Language Summit; записи будут опубликованы позже. Обсуждения новых предложений по улучшению Python (PEP) продолжаются и активны. Среди заметных PEP — PEP 835 для сокращенного обозначения аннотированных метаданных и PEP 836, касающийся JIT-компиляторов. Также были представлены новые PEP, такие как PEP 840, касающийся разрешения имен в пространствах имен классов. Пользователям рекомендуется протестировать финальную бета-версию 3.15 и сообщать о любых проблемах. Несколько PEP выделены для обновлений, включая прокси общих объектов и добавление python-version в pyvenv.cfg. Объединенные запросы на вытягивание внесли новые функциональные возможности в модули, такие как ipaddress и tkinter, а также улучшения в утилитах tarfile и email. Обсуждения основной разработки включают безопасную публикацию в PyPI и исправление поведения словарей в Python 3.14. Также перечислены предстоящие конференции и призывы к подаче докладов, с приближающимися сроками для нескольких мероприятий.
CdXz5zHNQW_YSV2VZcoNV.jpeg
Хуанита Гомес — аспирантка Калифорнийского университета в Санта-Круз, занимающаяся исследованиями в области безопасности открытого исходного кода. Ее работа конкретно сосредоточена на повышении безопасности научного программного обеспечения с открытым исходным кодом. Ранее она участвовала в разработке IDE Spyder. В настоящее время она является менеджером сообщества проекта Scientific Python. Она также активно участвует в организации конференции SciPy. Хуанита пришла в мир открытого исходного кода через свой музыкальный YouTube-канал. Она использовала навыки видеомонтажа для улучшения документации и создания учебных пособий для Spyder, что привлекло внимание. Это привело к ее участию в проекте Scientific Python. Ее докторские исследования связывают вопросы безопасности с разработкой открытого исходного кода. Она дает практические советы сопровождающим по улучшению безопасности проектов с использованием таких инструментов, как функции GitHub и OpenSSF Scorecard. Хуанита также обсуждает преодоление синдрома самозванца как женщины и латиноамериканки в сфере технологий, а также свой личный путь в музыке, включая выступления на SciPy.
Автор выступил с докладом на EuroPython 2026, который стал продолжением его предыдущей презентации под названием "Работа в области безопасности — это нечто особенное". Цель этого доклада — показать, как вклад в безопасность в открытом исходном коде не соответствует установленным моделям документации, сообщества или кода. Роль автора как приглашенного разработчика по безопасности в Python Software Foundation спонсируется Alpha-Omega. Поддержка Alpha-Omega в обеспечении безопасности экосистемы Python признается. В посте приведены ссылки на слайды презентации, предыдущий доклад автора и различные ресурсы, связанные с безопасностью Python. Эти ресурсы включают блог Python Software Foundation, блог Python Insider и статьи об отчетности об уязвимостях и уязвимостях, сгенерированных LLM. Также упоминаются Политика безопасности Python и модель угроз, а также группа реагирования на инциденты безопасности Python и PEP 811. Автор приглашает читателей поделиться своими мыслями и предоставляет контактную информацию через Mastodon, Bluesky или по электронной почте. Он также призывает ознакомиться с архивом своего блога и списком блогов.
Все члены Python Software Foundation (PSF), имеющие право голоса, должны подтвердить свое членство для участия в предстоящих выборах в Совет директоров и Совет по упаковке Python (PPC). Крайний срок подтверждения вашего намерения голосовать — вторник, 25 августа, 14:00 UTC. Само голосование начнется во вторник, 1 сентября, и завершится во вторник, 15 сентября, оба раза в 14:00 UTC. Члены должны были получить электронное письмо от [email protected] с инструкциями о том, как подтвердить свой статус избирателя. Если это письмо не было получено, члены должны связаться с [email protected] или [email protected] для получения помощи. Предпочтения в отношении коммуникации по этим выборам можно управлять на psfmember.org, обновив настройки профиля. Чтобы подтвердить намерение голосовать, члены должны войти на psfmember.org, перейти на страницу "Подтверждение голосования" и выбрать свои предпочтения. Статус членства также можно проверить на psfmember.org на страницах "Ваши членства" или "Информация о пользователе-члене PSF". Процесс подтверждения требуется уставом PSF для обеспечения кворума на выборах, что имеет решающее значение для действительности выборов. Члены, которые голосовали в прошлом году, будут автоматически добавлены в список избирателей на 2026 год, если они не изменили свою контактную информацию. Имеющие право голоса члены получат бюллетени по электронной почте от OpaVote примерно 1 сентября.
Совет по управлению Django поддерживает проект Triptych, направленный на повышение выразительности HTML во всех браузерах. Этот проект предлагает три дополнения к HTML: включение методов форм PUT, PATCH и DELETE, введение действий кнопок для HTTP-запросов и возможность частичного обновления DOM. Эти изменения уменьшат зависимость от JavaScript и упростят веб-разработку. Проект соответствует недавней тенденции серверно-рендеринговых приложений и собственной функции частичного рендеринга шаблонов Django.В настоящее время основное внимание уделяется действиям кнопок, которые позволят объявлять действия, такие как выход из системы, в одну строку, устраняя необходимость в громоздких формах. Это изменение значительно упростит распространенные веб-шаблоны, такие как те, что используются в интерфейсе администратора Django. Такие улучшения принесут пользу разработчикам всех фреймворков, которые полагаются на HTML и серверный рендеринг. Фонд программного обеспечения Django поддерживает эту инициативу, поскольку развитие веб-стандартов является центральным элементом его миссии.Работа над стандартами — это медленный, но значимый процесс, и ведется поиск финансирования для выделения специалистов для этой работы. Фонд предоставил письмо о сотрудничестве для подачи заявки на финансирование Карсоном Гроссом и Алексом Петросом. Компании, использующие Django или аналогичные фреймворки, призываются предоставить письма поддержки для помощи в подаче заявки. Частные лица могут помочь, просматривая предложения, участвуя в обсуждениях и распространяя информацию. Конечная цель — более простой и лучший веб за счет фундаментальных улучшений HTML.
Этот пост — еженедельная рассылка для Python-разработчиков, содержащая различные статьи, руководства и проекты. Рассылка включает статьи об использовании списков Python для операций со стеком и очередей для операций с очередями, а также статью о F-выражениях Django для запросов полей из ORM. Также обсуждается безопасность кода с помощью ИИ-агентов для написания кода и приводится руководство по созданию клиента Python MCP для тестирования серверов MCP. Кроме того, в рассылке упоминаются несколько выпусков безопасности для Django и Python, включая PEP 797 и PEP 814. Рассылка также представляет различные проекты, такие как pyStrich, библиотека для генерации одномерных и двумерных штрих-кодов, и Snakie, кроссплатформенная IDE для MicroPython. Кроме того, рассылка включает список предстоящих событий, в том числе еженедельные сессии вопросов и ответов Real Python Office Hours и встречу PyData Bristol Meetup. Рассылка завершается приглашением подписаться на PyCoder's Weekly, чтобы еженедельно получать лучшие новости, статьи и руководства по Python прямо в свой почтовый ящик. В целом, рассылка предоставляет всесторонний обзор последних разработок и ресурсов в сообществе Python. Рассылка является ценным ресурсом для Python-разработчиков, предоставляя им последние новости, руководства и проекты, которые помогут им улучшить свои навыки и оставаться в курсе последних событий в этой области.
CdXz5zHNQW_fGIxCAgzyO.png
Предоставленный фрагмент кода использует соединение с базой данных Django для выполнения SQL-запроса со списком значений. Однако исходный код не работает из-за синтаксической ошибки, вызванной оператором IN и кортежем значений. Сообщение об ошибке указывает, что оператор IN несовместим с кортежем значений. Проблема специфична для psycopg v3, который требует использования оператора ANY вместо IN. Чтобы исправить проблему, код изменен для использования оператора ANY и передачи списка значений вместо кортежа.При работе со списком строк оператор ANY по-прежнему вызывает ошибку из-за несоответствия типов данных. Ошибка возникает потому, что оператор ANY пытается сравнить строки с целыми числами. Для решения этой проблемы строка SQL переписана так, чтобы каждое значение рассматривалось как отдельный параметр. Этот подход гарантирует, что каждое значение будет правильно отформатировано и экранировано, предотвращая любые потенциальные атаки SQL-инъекций.В измененном коде используется f-строка для динамической генерации SQL-запроса с правильным количеством параметров. Затем список значений передается методу execute, который заменяет заполнители в SQL-запросе фактическими значениями. Этот подход обеспечивает безопасный и эффективный способ выполнения SQL-запросов со списком значений.Измененный код может корректно обрабатывать как целочисленные, так и строковые значения и избегает любых потенциальных уязвимостей SQL-инъекций. Использование параметризованных запросов гарантирует, что значения будут правильно экранированы и отформатированы, независимо от их типа данных.В целом, измененный код представляет собой надежное и безопасное решение для выполнения SQL-запросов со списком значений в Django.Измененный код более безопасен и эффективен, чем исходный, и является хорошим примером того, как обрабатывать SQL-запросы с динамическими параметрами в Django.Использование параметризованных запросов и оператора ANY обеспечивает хороший баланс между безопасностью и производительностью, делая измененный код хорошим решением для выполнения SQL-запросов со списком значений в Django.
Майкл Дрисколл выпускает третье издание своей книги "Python 101", цель которой — сделать изучение языка программирования Python доступным, практичным и увлекательным для новичков. Это новое издание необходимо из-за значительных изменений в Python, включая новые возможности языка и обновленные лучшие практики с момента выхода предыдущей версии. Третье издание будет содержать обновленные примеры для современных версий Python, охватывать актуальные функции и включать отзывы читателей для улучшения примеров кода и упражнений. Книга предназначена для людей без предыдущего опыта программирования, студентов, самоучек и специалистов, переходящих в разработку программного обеспечения. Kickstarter используется для финансирования написания, редактирования, производства электронной книги, подготовки к печати и выполнения заказов. Вознаграждения для спонсоров варьируются от цифровых копий и печатных изданий до подписанных книг и раннего доступа к контенту. Обновления проекта будут публиковаться на протяжении всего процесса разработки. Дрисколл выражает благодарность за поддержку читателей, подчеркивая совместный характер создания технических книг. Он надеется сделать это издание "Python 101" лучшим из когда-либо созданных, ориентированным на новичков.
CdXz5zHNQW_nYEuzZxwA2.png
Анонс нашего разговора с Хуанитой Гомес. Полный выпуск смотрите 17 июля 2026 года. Краткий обзор нашего разговора с Хуанитой Гомес, ведущими которого были Чук Тин Хо и Мариата Виджая.Хуанита — кандидат наук в области компьютерных наук Калифорнийского университета в Санта-Круз, где ее исследования сосредоточены на повышении безопасности научного программного обеспечения с открытым исходным кодом. Она является бывшим разработчиком Spyder IDE, одним из комьюнити-менеджеров проекта Scientific Python и членом организационного комитета конференции SciPy.В этом выпуске Хуанита рассказывает, как она перешла от создания музыкальных клипов на YouTube к созданию более дружелюбной документации для Spyder, о своих исследованиях в области безопасности открытого исходного кода, практических советах по безопасности для сопровождающих и о своем пути преодоления синдрома самозванца как женщины и латиноамериканки в сфере технологий. Плюс: X Factor, Шакира и пение на сцене SciPy.Полный выпуск выйдет 17 июля 2026 года! Подпишитесь на наш подкаст прямо сейчас!
Дискуссия о доверенной публикации сосредоточена на обеспечении безопасности распространения пакетов. Доверенная публикация использует OIDC для аутентификации машинных идентификаторов, заменяя долгоживущие токены краткосрочными учетными данными. Однако этот механизм проверяет только машинный идентификатор, а не безопасность или качество пакета. Аналогично, аттестации пакетов не являются по своей сути сигналами доверия. Настоящая безопасность включает в себя ограничение разрешений конвейера CI и привязку действий к хэшам коммитов. JupyterLab 4.6 и Notebook 7.6 были выпущены с многочисленными улучшениями. Ключевые функции включают консоль для экспериментов и улучшенный файловый браузер. Отладчик теперь открывает исходные файлы в основной области, а пользовательские макеты предлагают большую гибкость. Сборки расширений значительно быстрее благодаря Rspack и jupyter-builder. Tau — новый, небольшой и читаемый агент для кодирования в терминале, разработанный как для практического использования, так и для обучения. Он поддерживает несколько поставщиков ИИ и предлагает трехслойную архитектуру для гибкости. Django 6.0 представляет встроенные фоновые задачи через django.tasks, API для определения и постановки задач в очередь. Эта система требует, чтобы пользователи предоставляли свой собственный бэкенд для выполнения задач. Разработанный сообществом локальный бэкенд, django-tasks-local, предлагает простое решение для разработки и производства с низкой нагрузкой. В выпуске также упоминается исправление ошибки, связанной со словарями Python, и то, что Bunny DNS теперь бесплатен.
DjangoCon US 2026 уже не за горами, и сейчас самое время начать планировать свое участие в конференции.Наш список докладчиков уже доступен и включает выступления от контрибьюторов Django, мейнтейнеров, преподавателей и членов сообщества, охватывающие все: от веб-разработки и API до развертывания, безопасности, тестирования, ИИ и будущего экосистемы Django.Независимо от того, посещаете ли вы DjangoCon US впервые или возвращаетесь, чтобы встретиться с друзьями и коллегами, вы найдете возможности для обучения, обмена идеями и знакомства с людьми со всего мирового сообщества Django.Помимо докладов, ваша регистрация на конференцию включает доступ к учебным пособиям, Open Spaces, спринтам сообщества, беседам в коридорах и социальным мероприятиям, которые делают DjangoCon US уникальным событием.Если вы еще не зарегистрировались, еще есть время присоединиться к нам в Чикаго с 24 по 28 августа.Зарегистрируйтесь на DjangoCon US 2026: https://2026.djangocon.usПросмотрите список докладчиков: https://2026.djangocon.us/news/announcing-lineup/В ближайшие недели мы будем делиться новыми обновлениями, включая полное расписание конференции, напоминания о поездке и все необходимое, чтобы максимально использовать ваше время на DjangoCon US.Мы с нетерпением ждем встречи с вами в Чикаго в августе!
Проект CPython, как и другие проекты, сталкивается со значительным ростом числа сообщений о проблемах безопасности. Сет Ларсон, штатный разработчик по безопасности Python Software Foundation (PSF), опубликовал диаграмму, демонстрирующую резкий рост числа CVE в год с заметным пиком в 2026 году. Однако эта диаграмма отражает только результаты работы по обеспечению безопасности и не учитывает всю работу, связанную с обработкой поступающих сообщений. Многие сообщения закрываются и обрабатываются как обычные ошибки, не связанные с безопасностью, или как не являющиеся ни ошибками безопасности, ни обычными ошибками. Команда реагирования на инциденты безопасности Python (PSRT) отвечает за обработку этих сообщений, и их работа не полностью отражена на диаграмме CVE. Количество поступающих GitHub Security Advisories (GHSAs) отслеживается с июля 2024 года, и данные показывают значительное число сообщений. GHSAs также отслеживаются по годам, причем данные за 2026 год заполнены только наполовину. Помимо GHSAs, для подачи сообщений о проблемах безопасности также использовались электронные письма, и количество обсуждений по электронной почте и участников отслеживалось по месяцам. PSF выражает благодарность Сету Ларсону за его работу, которая помогла разработать политику безопасности и определить членство и обязанности PSRT. В целом, рост числа сообщений о проблемах безопасности и работа PSRT важны для поддержания безопасности и целостности проекта CPython.
CdXz5zHNQW_JoaL6a52nC.png
Кодирующие агенты традиционно работают с файлами, что существенно отличается от интерактивных рабочих процессов анализа данных. Работа с данными включает загрузку данных, их проверку, выполнение кода и наблюдение за реакциями в реальном времени в памяти. Ранее ИИ-агенты не могли получить доступ к этому живому состоянию в памяти, только к базовым файлам. Этот недостаток теперь преодолевается. Marimo Pair представляет кодирующего агента, который интегрируется непосредственно в рабочую среду ноутбука. Этот агент получает полный доступ ко всем переменным Python, хранящимся в памяти. Ноутбук фактически становится совместным рабочим пространством между пользователем и агентом. Пользователи могут направлять агента, например, прося его сосредоточиться на конкретных точках данных, и визуализации ноутбука будут соответственно обновляться. Эта интеграция устраняет необходимость в обширной настройке или описании схем. Она позволяет агенту "видеть" и взаимодействовать с живым состоянием данных так же, как и пользователь.
Автор отмечает, что некоторые программные проекты, особенно использующие программирование с помощью искусственного интеллекта, демонстрируют неожиданные и хаотичные изменения, напоминающие «Вавилонскую башню» Брейгеля. Хотя библейская история часто подчёркивает гордость, она также подчёркивает единство, необходимое для технологического прогресса. В оригинальном повествовании Вавилона общий язык человечества способствовал огромной коллективной власти и амбициозным проектам. Вмешательство Бога рассеяло людей и их языки, остановив их объединённые строительные усилия.Аналогично, инструменты ИИ могут повысить продуктивность отдельных разработчиков, позволяя создавать более амбициозное программное обеспечение. Однако крупные программные проекты в первую очередь ограничены координацией и совместным пониманием между разработчиками, а не только индивидуальной скоростью программирования. Это общее понимание, «язык» программного проекта, охватывает концепции, границы, инварианты, принадлежность и обоснование дизайна, существующие через документацию, код, обзоры и обсуждения.Исторически трение в понимании, хоть и медленное, помогало синхронизировать разработчиков, заставляя их учиться и договариваться о поведении системы. Агенты ИИ, устраняя это трение, позволяют разработчикам самостоятельно вносить изменения, не обязательно взаимодействуя с другими или не осваивая глубокое понимание взаимосвязанных систем. В результате масштабируемые проекты с вибрацией могут стать неуправляемыми не из-за отсутствия коммуникации, а из-за отсутствия в ней необходимости. Агенты выступают неустанными переводчиками, внося локальные изменения, но этот процесс разрушает общий архитектурный язык, необходимый для коллективного рассуждения человека. В отличие от библейского Вавилона, где остановка строительства означала потерю понимания, инженерия с помощью ИИ позволяет продолжать строительство даже после разрушения общего понимания, что приводит к тонкому, дезориентирующему прогрессу.
Автор обсуждает сложность освоения новых навыков в эпоху ИИ-агентов, способных писать код. Основная идея заключается в важности "трения" в процессе обучения. ИИ, подобно игровым автоматам, предлагает путь наименьшего сопротивления, что потенциально может привести к отказу от мышления. Следовательно, автор намеренно исключает помощь ИИ со своих платформ для обучения программированию. Настоящее обучение требует самостоятельного прохождения процесса, прежде чем делегировать его агенту. Именно поэтому ИИ более полезен для объяснения концепций, чем для выполнения задач, которые вы намерены изучить. В коде, сгенерированном ИИ, могут возникать скрытые ошибки, особенно у новичков, которые еще не развили глубокого понимания. Обучение через создание, с тестами в качестве руководства, имеет решающее значение для сохранения владения кодом. Это включает в себя достаточное чтение для понимания концепций, выбор реального проекта и написание тестов в первую очередь. Автор подчеркивает, что ИИ должен быть ускорителем, а не компасом, и следует поддерживать высокую планку при принятии кода, сгенерированного ИИ. В конечном итоге, ИИ может улучшить разработку программного обеспечения, но он не меняет фундаментальную природу этой дисциплины.
CdXz5zHNQW_Rsl23zkzNv.png
Автор разработал Buzzword Bingo, многопользовательскую игру для конференций, чтобы исследовать пределы разработки, управляемой спецификациями и с помощью ИИ, используя Claude. Игра позволяет пользователям создавать и делиться уникальными игровыми полями для бинго, а игроки отмечают ключевые слова по мере их появления. Основной целью проекта было проверить, насколько эффективно Claude может генерировать надежный Python-код с полным покрытием типов, соответствующий строгим производственным стандартам. Процесс разработки в значительной степени опирался на разработку, управляемую спецификациями, с использованием Speckit, определяя поведение системы для реализации Claude.В качестве бэкенда использовались Django, HTMX, шаблоны Django и PostgreSQL, причем HTMX применялся для эффективных взаимодействий без состояния на стороне клиента. Ключевым решением в дизайне было использование URL-адресов возможностей для авторизации, предоставление доступа на основе владения URL-адресом, что устраняло необходимость в учетных записях пользователей или сложной аутентификации. Автор отдал приоритет экстремальной типобезопасности, используя комбинацию проверщиков типов ty, zuban и pyrefly с строгой конфигурацией Ruff.Claude преуспел в создании точных аннотаций типов при наличии четких примеров, продемонстрировав способность генерировать выразительные доменные модели. Хуки pre-commit, сгенерированные с помощью pc-init, оказались бесценными для обеспечения соблюдения стандартов кодирования и предоставления быстрой обратной связи. Однако Claude испытывал трудности с последовательным применением полных аннотаций типов, иногда пытаясь отключить проверки вместо исправления основных проблем. Это подчеркнуло необходимость надежных циклов обратной связи и человеческого вмешательства для поддержания инженерных ограничений с помощью ИИ-агентов.Эксперимент показал, что одновременная работа нескольких проверщиков типов (ty, pyrefly, zuban) была быстрее, чем один прогон MyPy, и обеспечивала дополнительное обнаружение проблем. Новая экосистема проверки типов выглядит многообещающей, но требует дальнейших экспериментов для строгой конфигурации. Проект послужил успешной демонстрацией продвижения разработки с помощью ИИ, а настоящим призом стали полученные знания о его возможностях и ограничениях.
Автор возобновляет работу с открытым исходным кодом, активно используя большие языковые модели для рутинной работы по написанию кода, особенно для PyOpenGL. Сгенерированные LLM тесты выявили несколько давних ошибок и улучшили удобство использования GLES и EGL. Библиотека glfw сыграла важную роль в выявлении скрытых зависимостей GLX, включая библиотеку GLUT, а также подчеркнула устаревший характер библиотеки GLE.PyOpenGL 4.0.0a1 является крупным релизом из-за прекращения поддержки старых версий Python и Numpy, в основном содержащим исправления ошибок из новых наборов тестов. Конкретные исправления включают исправления функций GLU, регенерацию таблиц размеров OpenGL на основе зондирования платформы и удаление двойной обертки для нескольких функций OpenGL.Добавлены новые 64-битные целочисленные типы массивов (GL_INT64 и GL_UNSIGNED_INT64), а операции, не связанные с Numpy, улучшены с поддержкой ctypesarrays и char_p. GLES получил значительное внимание благодаря модулю изображений, удобным оберткам, имитирующим GL, и нормализации имен расширений.Общие исправления ошибок включают обертку больших констант, кэширование данных расширений/версий, специфичное для контекста, и исправления распаковки ShaderProgram.retrieve(). Декораторы логирования теперь более дружелюбны к проверке типов, а в упаковке исправлены объявления лицензий.Хотя этот альфа-релиз уделяет первостепенное внимание исправлениям корректности, новый код, особенно для GLES, может привести к некоторым регрессиям. Альфа-версия 4.0.0a1 доступна для тестирования, и ожидаются дальнейшие изменения перед финальным релизом 4.0.0. Работа над OpenGLContext продолжается, а тизерное изображение демонстрирует прямую отрисовку актива из образца Khronos.
Оптимизация кода на Python часто начинается с выбора эффективных алгоритмов, использования расширений на компилируемых языках и внедрения параллелизма. Однако для достижения еще большей скорости требуется более глубокое понимание архитектуры ЦП. Например, распространенная проблема в градиентном бустинге гистограмм scikit-learn заключается в равномерном распределении большого массива чисел с плавающей запятой по 255 целочисленным корзинам. Первоначальный подход использует скомпилированный параллельный бинарный поиск по отсортированным границам корзин. Значительные улучшения скорости были достигнуты благодаря тому, что код соответствовал возможностям ЦП, а не работал против них. Это включало понимание таких концепций, как параллелизм на уровне инструкций и кэши памяти. В статье будет продемонстрирован упрощенный пример, иллюстрирующий, как добиться 6-кратного ускорения по сравнению с первоначальной реализацией. Это путешествие коснется продвинутых низкоуровневых аппаратных тем, таких как предсказание ветвлений и SIMD. Хотя это и не подробное руководство, оно познакомит с возможностями таких оптимизаций. Автор предоставит ресурсы для дальнейшего изучения этих сложных аппаратных тем.
Spiel — это проект с открытым исходным кодом, который позволяет пользователям создавать презентации в терминале своего компьютера, что является необычной, но остроумной потребностью. Проект использует пакет Rich для создания слайдов презентации, но в настоящее время он заархивирован и использует старую версию Textual, которую нельзя обновить. Чтобы попробовать Spiel, пользователи могут либо использовать Docker, либо установить его с помощью pip, и рекомендуется устанавливать его в виртуальное окружение Python. После установки пользователи могут проверить, работает ли он, запустив демоверсию Spiel. Создание презентации с помощью Spiel включает в себя создание колоды и добавление слайдов, что можно сделать с помощью декоратора или путем добавления объектов Slide в колоду. Документация содержит примеры того, как создать презентацию из одного слайда, и более полный пример с пользовательскими слайдами. Пользователи могут переходить к следующему или предыдущему слайду с помощью клавиш со стрелками и выходить, нажимая CTRL+C. Spiel кажется аккуратным пакетом, но жаль, что он в настоящее время заархивирован, и, надеюсь, автор снова откроет его или кто-то другой подхватит эстафету. А пока пользователи все еще могут использовать его в виртуальном окружении Python и попробовать. В целом, Spiel — это уникальный и интересный проект, который позволяет пользователям создавать презентации в своем терминале, и его стоит изучить, несмотря на текущий заархивированный статус. Функциональность проекта и примеры, приведенные в документации, позволяют пользователям легко начать работу и создавать свои собственные презентации.
CdXz5zHNQW_QIgFuXSWNh.png
Тема обсуждения — использование искусственного интеллекта в критически важных областях, таких как медицина, где уверенно неверный ответ может иметь серьезные последствия. Сумит Гундавар, лондонский инженер-программист, утверждает, что в таких областях завоевание доверия является настоящей инженерной задачей, а не просто созданием модели. Гундавар работает над клинической платформой для британской клиники долголетия и эстетической медицины, где безопасность пациентов является главным приоритетом. Он подчеркивает важность обоснованности, логики отказа и дизайна с участием человека в системах ИИ для предотвращения инцидентов, связанных с безопасностью пациентов. В разговоре также затрагивается концепция "галлюцинаций" в ИИ, которые могут быть особенно проблематичными в медицинских контекстах. Гундавар демонстрирует помощника, который отказывается отвечать, когда не может подтвердить свое утверждение, подчеркивая необходимость прозрачности и подотчетности в принятии решений ИИ. В обсуждении также рассматриваются различные инструменты и платформы, включая Anthropic, OpenAI и LangChain, которые используются для разработки более надежных и заслуживающих доверия систем ИИ. Кроме того, упоминаются нормативные акты, такие как Закон ЕС об ИИ и HIPAA, направленные на обеспечение безопасной и ответственной разработки ИИ в критически важных областях. Также подчеркивается важность человеческого надзора и проверки при принятии решений ИИ, особенно в областях, где последствия ошибок могут быть серьезными. В целом, обсуждение подчеркивает необходимость более тонкого и междисциплинарного подхода к разработке систем ИИ, которым можно доверять принятие решений в критически важных контекстах.
EuroPython в значительной степени полагается на преданных своему делу волонтеров, которые вкладывают значительное время в ее организацию. Эти волонтеры выполняют такие важные задачи, как заключение договоров с площадками и отбор докладчиков, вкладывая сотни часов для обеспечения успеха каждой конференции. В этой статье рассказывается о Дарье Линхарт Груздень, руководителе отдела коммуникаций, и ее вкладе. Дарья изначально присоединилась к команде в 2025 году для организации местного технологического мероприятия для юниоров в Чехии. Она обнаружила, что волонтерство привело к множеству дружеских и профессиональных связей в сообществе EuroPython. В своей основной роли руководителя отдела коммуникаций на выпуске 2026 года Дарья занимается разнообразными задачами, от формирования команды до партнерства со СМИ и веб-разработки. Она пережила моменты, когда усилия ее команды были отмечены ведущими разработчиками Python и оценены широким сообществом через активность в социальных сетях. Дарья выражает сильное желание снова стать волонтером, ссылаясь на возможность экспериментировать, расти и вносить вклад в значимые инициативы. Она описывает волонтерский опыт тремя словами: Ответственность, Влияние и Сотрудничество. Неожиданным ярким моментом для Дарьи стало приглашение обсудить EuroPython в подкасте Real Python.
CdXz5zHNQW_65V8DVkgWk.png
Рабочая группа PSF по разнообразию и инклюзивности запускает ежемесячные виртуальные часы для консультаций в Discord, начиная со вторника, 28 июля 2026 года. Цель состоит в том, чтобы предоставить пространство для людей, работающих над вопросами разнообразия и инклюзивности в сфере технологий, для общения, обмена опытом и задавания вопросов. Часы для консультаций будут проводиться в последний вторник каждого месяца, чередуясь между двумя временными интервалами для учета различных часовых поясов. Первая сессия будет в 13:00 UTC, а следующая — в 21:00 UTC, и этот шаблон будет продолжаться. Беседы будут проходить в текстовом формате и будут открыты для всех, без какого-либо давления на участие или представление себя в определенном свете. Рабочая группа стремится обсуждать различные темы, включая идеи для политик и инициатив по диверсификации миссий PSF, отзывы сообщества и прогресс в реализации инициатив по разнообразию. Часы для консультаций будут проходить в канале #psf-diversity на Discord PSF, и участники могут присоединяться на своем языке, при этом будут доступны ветки на нескольких языках. Рабочая группа призывает людей делиться своими мыслями, задавать вопросы и общаться с теми, кто заботится о том, чтобы сообщество Python стало более гостеприимным. Беседы будут оставаться в канале, позволяя участникам наверстать упущенное позже, если они не смогут присутствовать на живой сессии. Рабочая группа PSF по разнообразию и инклюзивности с нетерпением ждет возможности встретиться и пообщаться с людьми со всего мира во время этих часов для консультаций.
CdXz5zHNQW_gNhAEKKiNo.png
Последний призыв к участию в опросе разработчиков Django 2026 года открыт. Этот важный опрос, проводимый совместно Фондом программного обеспечения Django и JetBrains, завершится 13 июля 2026 года. Он служит жизненно важным инструментом для понимания использования Django и влияния на будущие технические решения и решения сообщества. Получено более 3100 ответов, и организаторы стремятся превысить 4000 участников. Каждое представление дает ценное представление о потребностях и практиках сообщества Django. На дизайн опроса повлияли ключевые фигуры и члены экосистемы Django. Эта обратная связь необходима для планирования будущего развития и удовлетворения требований сообщества. Участникам рекомендуется делиться опросом в социальных сетях и в своих сообществах, чтобы увеличить разнообразие ответов. Более широкое участие приводит к более репрезентативным и полезным результатам для всех участников. Вы можете получить доступ к опросу по предоставленным ссылкам для таких платформ, как Bluesky, Django Forum, LinkedIn, Mastodon, Reddit и X/Twitter. Дополнительная информация доступна в официальном блоге Django.
Моя новая книга, "Python Typing", официально выпущена и доступна на различных платформах. Вы можете приобрести ее на Gumroad, Leanpub или Amazon. Python предлагает возможности аннотирования типов начиная с версии 3.5, и эта функция значительно развивалась с течением времени. Эта книга всесторонне охватывает, как эффективно использовать аннотации типов в ваших проектах на Python. Она проведет вас через детальное понимание системы аннотаций Python. Вы изучите такие важные концепции, как аннотации переменных и функций, псевдонимы типов, новые типы и дженерики. Книга также углубляется в аннотирование вызываемых объектов, TypedDict, декораторов и генераторов. Помимо самих аннотаций, она предоставляет практические знания по использованию и настройке проверяющих типов Python, таких как Mypy и ty. Кроме того, вы научитесь интегрировать эти инструменты в свой рабочий процесс разработки с помощью pre-commit hooks или GitHub Actions. Эта интеграция позволяет автоматически проверять код перед слиянием, чтобы предотвратить попадание дефектов в продакшн.
CdXz5zHNQW_yretVEfPsy.webp
Текст посвящен процессу работы над CPython и столкновению с трудноуловимыми ошибками в различных компиляторах, операционных системах и других областях. Автор приводит несколько примеров таких ошибок, включая проблемы с Rust, LLVM, clang, GCC, glibc, readline и curses. В примечаниях к выпуску Python есть раздел под названием "А теперь кое-что совершенно другое", который содержит интересные факты и сведения. Для Python 3.14 автор сосредоточился на теме "пи", "пирога" и "сороки". В рамках этого исследования автор искал слово "пи" в Оксфордском английском словаре. Первой цитатой из Оксфордского английского словаря для слова "пи" была книга Уильяма Джонса "Synopsis Palmariorum Matheseos", опубликованная в 1706 году. Однако автор обнаружил ошибку разметки в первой цитате из Оксфордского английского словаря для слова "пи". Автор сообщил об ошибке в Оксфордский английский словарь в июле 2024 года, и она была исправлена к июню 2025 года. В тексте также упоминается история Оксфордского английского словаря, ссылаясь на его предшественника 1901 года, "A New English Dictionary on Historical Principles". Автор выражает удовлетворение тем, что ошибка была исправлена, говоря "Ура!" в честь разрешения проблемы.
CdXz5zHNQW_QcRbD4hJbT.jpeg
В PyQt6 динамически добавляемые виджеты иногда всплывают как отдельные окна из-за проблем с родительскими виджетами. Каждый виджет в Qt может иметь необязательный родительский виджет, который определяет его визуальное размещение. Без родителя или при потере родителя виджет становится окном верхнего уровня. Это часто происходит, когда виджеты создаются без указания родителя при инициализации. Например, tabs = QTabWidget() создает виджет без родителя, что приводит к его самостоятельному плаванию. Использование tabs = QTabWidget(parent_widget) явно назначает родителя, удерживая его в пределах предполагаемого контейнера. Переназначение атрибута виджета, такого как self.w = QTabWidget(), может непреднамеренно заменить существующий виджет, заставляя его дочерние элементы потерять родителя и стать плавающими окнами. Явное присвоение родителя виджета значению None также делает его автономным окном. Даже косвенные действия, такие как удаление виджета из компоновки определенными способами, могут очистить ссылку на его родителя. Решение заключается в том, чтобы каждый виджет имел родителя, либо передавая его при создании, либо оперативно добавляя в компоновку. Предоставленный пример демонстрирует динамическое создание вкладок, последовательно устанавливая явных родителей для всех виджетов. Это включает создание новых вкладок перед обозначенной вкладкой "+" и использование blockSignals для предотвращения рекурсивного срабатывания сигналов. Понимание и правильное управление родительскими виджетами имеет решающее значение для предотвращения такого неожиданного поведения плавающих окон.
Недавние инциденты безопасности, связанные с рабочими процессами GitHub Actions, подчеркивают его потенциальную уязвимость в процессах публикации. В этой статье предлагаются три стратегии смягчения последствий для безопасной публикации в PyPI с использованием GitHub Actions. Подчеркивается, что советы касаются только публикации, а не сборки, и рекомендуется использовать отдельные рабочие процессы для каждого.Первый шаг — использовать инструмент zizmor для выявления и исправления небезопасных настроек по умолчанию в ваших рабочих процессах GitHub Actions. Это включает запуск zizmor для автоматического исправления проблем и ручное устранение любых оставшихся проблем. Три распространенные проблемы, на которые указывает zizmor, — это слишком широкие разрешения по умолчанию, сохранение учетных данных после checkout и отсутствие привязки действий к конкретным хэшам коммитов.Для устранения широких разрешений установите глобальные разрешения в пустые, а затем явно укажите разрешения на уровне задания. Для действий checkout установите persist-credentials в false, чтобы предотвратить утечку учетных данных. Привязка действий к хэшам коммитов, а не к тегам, предотвращает компрометацию через вредоносные обновления кода для этих тегов. Инструменты, такие как gha-update, zizmor или Pinact, могут помочь автоматизировать этот процесс привязки.Вторая ключевая стратегия — интегрировать zizmor в ваш конвейер CI. Это позволяет сообщать о любых проблемах безопасности как о результатах сканирования частного кода, предоставляя контрольный список для постепенного устранения. Третий и последний рекомендуемый шаг — внедрить Trusted Publishing для PyPI. Это устраняет необходимость управления токенами API и использует инфраструктуру безопасности GitHub.При настройке Trusted Publishing крайне важно настроить среду GitHub. В этой среде требование рецензентов для рабочих процессов публикации добавляет важный этап утверждения. Этот процесс утверждения, даже если это просто ваше собственное одобрение, защищает от случайного или злонамеренного запуска релизов. Эти три шага значительно повышают безопасность публикации в PyPI через GitHub Actions.
CdXz5zHNQW_Sp7hMh7V4c.png
В этом выпуске PyCoder's Weekly освещается Wagtail как современная альтернатива Django Admin. Также объясняется, как выбирать случайные значения в Python, различая модули random и secrets. В спонсорской статье от PropelAuth представлена безопасная интеграция ИИ-агентов для B2B-приложений. Выпуск охватывает управление качеством кода Python с помощью различных инструментов и включает соответствующий тест.В обсуждениях представлены финальный PEP 752 о пространствах имен репозиториев пакетов и черновик PEP 836, касающийся поддерживаемого JIT-компилятора для CPython. Видео с PyCon US 2026 теперь доступны. Python Software Foundation проводит часы для потенциальных кандидатов в правление PSF. Представлено подробное руководство по запуску Celery на AWS ECS с акцентом на надежную обработку задач.Спонсируемый курс обучает рабочему процессу кодирования с использованием агентов для реальных проектов с помощью ИИ. Томас Вутерс обсудил прошлое, настоящее и будущее свободнопоточного Python на PyCon US 2026. Карлтон Гибсон поделился своими мыслями об эволюционирующей модели вклада в OSS, особенно с ростом ИИ. Выпуск также содержит руководства по извлечению метаданных TIFF с помощью Pillow и оптимизации тестовых наборов Django путем профилирования.Python 3.15 анонсирует обновленный JIT-компилятор, с соответствующим тестом. Также рассматриваются методы хранения дополнительных данных с объектами с использованием WeakKeyDictionary и начало работы с GitHub Copilot CLI. Показано несколько новых проектов Python, включая pytest-tia для целевых запусков тестов и purejq как реализацию jq на Python. Перечислены различные предстоящие события и встречи Python, охватывающие июль 2026 года.
CdXz5zHNQW_ITIOcjNCxZ.png
Обнаружение объектов — это важнейшая задача компьютерного зрения, которая идентифицирует и локализует несколько объектов на изображениях или кадрах видео. Это выходит за рамки простой классификации изображений, точно определяя положение каждого объекта с помощью ограничивающих рамок. Оценка производительности требует метрик как точности, так и вычислительной эффективности, при этом Intersection over Union (IoU) и mean Average Precision (mAP) измеряют качество обнаружения. Кадры в секунду (FPS) и количество параметров являются ключевыми показателями скорости вывода модели и требований к ресурсам.Архитектуры обнаружения объектов в широком смысле делятся на основанные на CNN или на основе Transformer, при этом современные модели часто объединяют признаки из обоих. Потоки обработки также делятся на двухэтапные детекторы, которые сначала выполняют предложения областей, а затем классификацию, и одноэтапные детекторы, которые предсказывают напрямую за один проход. Хотя исторически двухэтапные модели предлагали более высокую точность, одноэтапные детекторы в значительной степени сократили этот разрыв и, как правило, быстрее.В 2026 году двухэтапные конвейеры считаются менее конкурентоспособными, а ведущими моделями являются одноэтапные, не использующие NMS архитектуры Transformer и варианты семейства YOLO. RF-DETR выделяется как самая мощная модель реального времени, достигающая самого высокого mAP в сложных сценах благодаря использованию DINOv2 и деформируемого перекрестного внимания. Она превосходно адаптируется к доменам и поддерживает как обнаружение, так и сегментацию, хотя и более ресурсоемка, чем YOLO, на периферийных устройствах. YOLO12 представляет собой подход, ориентированный на внимание, интегрирующий механизмы самовнимания с CNN для сбалансированной производительности. Он предлагает конкурентоспособные скорости вывода и выигрывает от понимания глобального контекста. Важно использовать оригинальную реализацию YOLO12 для оптимальной производительности, поскольку некоторые порты были отмечены за неэффективность.
CdXz5zHNQW_goKrOOuxER.png
4-часовой живой мастер-класс под названием "Создание приложений для работы с данными с помощью Streamlit и Copilot" пройдет 9 июля с 9:00 до 13:00 по тихоокеанскому времени. Этот мастер-класс, организованный O'Reilly, является переработанной версией предыдущего предложения. Он предназначен для пользователей Python, желающих превратить свои аналитические данные в интерактивные и доступные для совместного использования инструменты. Участники научатся создавать полноценное приложение Streamlit из Jupyter Notebook, что позволит пользователям исследовать наборы данных с помощью интерактивных элементов управления, диаграмм и карт. Мастер-класс также охватит эффективное использование Copilot при разработке программного обеспечения. Основные темы включают структуру приложений Streamlit, обработку пользовательского ввода, создание интерактивной графики с помощью Plotly, организацию пользовательского интерфейса и развертывание приложений в Streamlit Cloud. Сессия является практической, участники будут шаг за шагом создавать функциональный проект. Пример приложения позволяет пользователям выбирать штаты, демографическую статистику и просматривать данные в виде диаграмм, карт или таблиц. Этот мастер-класс идеально подходит для специалистов по данным, аналитиков и разработчиков Python, желающих создавать информационные панели без обширных знаний в области веб-разработки, или для всех, кто интересуется Streamlit и Copilot. Регистрация доступна через платформу членства O'Reilly, которая предлагает 10-дневную бесплатную пробную версию. Мастер-класс будет записан, поэтому регистрация по-прежнему выгодна, даже если дата проведения неудобна.
Команда Django выпускает Django 6.0.7 и Django 5.2.16 для устранения уязвимостей безопасности. Одна из проблем, CVE-2026-48588, могла потенциально раскрыть личные данные через кэшированные ответы Set-Cookie. Это происходило при кэшировании ответов, устанавливающих файлы cookie, при изменении заголовка Cookie, но только если входящий запрос не содержал файлов cookie. Другая уязвимость, CVE-2026-53877, включала переполнение буфера кучи при чтении в GDALRaster при обработке определенных байтовых объектов, представляющих файлы растров. Это могло привести к раскрытию информации или ошибкам сегментации, затрагивая растры в виртуальной файловой системе GDAL. Третья уязвимость, CVE-2026-53878, позволяла внедрять заголовки, поскольку DomainNameValidator принимал символы новой строки в доменных именах. Хотя сам Django не был напрямую уязвим, пользовательские применения DomainNameValidator вне полей форм Django были подвержены риску. Эти проблемы низкой степени серьезности были исправлены в основных ветках Django, бета-версии 6.1, 6.0 и 5.2. Пользователям настоятельно рекомендуется как можно скорее обновиться до последних версий для обеспечения безопасности. О потенциальных проблемах безопасности следует сообщать конфиденциально по адресу [email protected].
CdXz5zHNQW_cgiHP0HuXi.jpeg
В этом выпуске обсуждаются несколько тем, связанных с Python. Начнем с dust — более быстрой и наглядной альтернативы команде du для анализа использования диска. Она помогает легко выявлять большие файлы и каталоги. Далее представлена новая спецификация формата архива под названием war, предназначенная для упаковки Python-проектов, с компоновкой header-index-store и эффективным дедупликацией. Затем обсуждение переходит к Hermes Agent — фреймворку для создания ИИ-агентов с открытым исходным кодом, который интегрируется с различными инструментами и платформами, обеспечивая постоянную память и автоматизированные действия. Этот агент призван быть больше, чем просто чат-ботом, выступая в роли личного помощника, который учится и действует в соответствии с рабочими процессами пользователя. Еще один представленный инструмент — llm-coding-agent, альфа-релиз, созданный с использованием управляемой подсказками разработки на основе тестов, предлагающий такие функции кодирования, как чтение и редактирование файлов. В сегменте также упоминаются sli.dev для слайдов разработчиков, pxpipe для сокращения использования токенов и даты первых выборов в Совет по упаковке Python. Наконец, Майкл возвращается к предыдущей теме, и рассказывается шутка о минимальных требованиях к Linux.
"The Legend of Zelda: Four Swords Adventures" была выпущена для Nintendo GameCube в 2004 году в Японии и Америке и в 2005 году по всему миру. Игра разделена на восемь областей с тремя уровнями в каждой. Датамайнеры обнаружили восемь вырезанных уровней, которые были в основном играбельны, но удалены на поздних этапах разработки, что можно увидеть на The Cutting Room Floor. Группа моддинга и локализации Eternal Dream Arabization and $$$Link создала мод, который восстановил эти вырезанные уровни, сделав их проходимыми путем исправления проблем и добавления Force Gems, где это было необходимо. Мод представляет собой набор файлов карт и кодов Action Replay, которые перезаписывают файл карты, загружаемый при входе на последний уровень в каждой области. Вырезанные уровни включают River Flow, Rainy Forest, Mountain Road, Graveyard, Four Descents into the Darkness, Oasis, Through the Blizzard и Clouds Across the Wind. Чтобы играть на этих вырезанных уровнях, игрокам нужен легально полученный ROM игры, эмулятор, такой как Dolphin, и файлы уровней FSA Second Quest, которые можно установить с помощью pyisotools. Процесс включает извлечение ISO, копирование измененных файлов карт и создание нового ISO, после чего коды Action Replay могут быть использованы для загрузки вырезанных уровней. Коды Action Replay предоставляются как для американской, так и для японской версий игры, а также доступны коды Swiss для использования с конфигурационными файлами читов Swiss. Игра является одним из наименее популярных тайтлов в серии The Legend of Zelda, продав менее 500 000 копий по всему миру, и автор планирует опубликовать записи прохождения вырезанных уровней на YouTube.
"Это руководство фокусируется на улучшении ранее созданного кодового агента путем интеграции предоставленных инструментов Anthropic. Цель - улучшить производительность агента, используя предопределенные, оптимизированные схемы инструментов. В частности, оно представляет инструмент "text_editor_20250728", названный "str_replace_based_edit_tool", который объединяет функциональность чтения, записи, замены и вставки текста. Этот новый инструмент заменяет ранее созданные пользовательские функции для манипуляции файлами.В руководстве также подчеркивается инструмент "bash", который предлагает постоянную сессию bash для выполнения команд. Используя инструменты Anthropic, агент может делать более последовательные и эффективные вызовы инструментов, поскольку модели обучены на этих конкретных схемах. Инструмент текстового редактора - это универсальный интерфейс, управляемый командами, который позволяет выполнять действия, такие как просмотр, замена, создание или вставка текста на основе ключа "команда" в запросе на использование инструмента. Чтобы организовать эти инструменты, они будут размещены в отдельных подмодулях. Существующие пользовательские функции редактирования файлов и соответствующие записи словаря будут удалены и заменены на конфигурацию инструмента текстового редактора Anthropic. Ключ "команда" инструмента текстового редактора имеет решающее значение для разъяснения желаемой операции редактирования."
CdXz5zHNQW_J4wjjDmtWx.webp
Mario Kart World вводит новую механику, при которой соседние трассы превращаются друг в друга во время переходных кругов, называемых Маршрутами. Существует 202 таких маршрута, соединяющих 30 трасс, некоторые из которых меняются в зависимости от направления движения. Этот бесшовный дизайн устраняет традиционные вступления и концы трасс, сливая гонки вместе. Эта "бесшовность" позволяет создавать новые режимы, такие как "Нокаут-тур", в котором есть временные контрольные точки, напоминающие аркадные игры. Однако этот дизайн также делает трудным запоминание отдельных названий трасс, в отличие от иконических трасс из предыдущих игр. Автор сравнивает это с алгоритмически подобранным контентом, где уменьшается активный выбор и память. Хотя механика игры не так вредна, как некоторые модели медиа-платформ, она уменьшает "церемонии". Эти церемонии, или точки поворота, могут побудить задуматься об удовольствии. Пассивный опыт участия приводит к отсутствию активного выбора, памяти об артисте и возможности быть настоящим "фанатом" без этих моментов перехода.
CdXz5zHNQW_prquQPDTKb.png
Данное руководство подробно описывает миграцию пакета Python fastkml с mypy на ty и pyrefly. Особое внимание уделяется одновременному запуску ty и pyrefly, поскольку они выявляют различные подмножества ошибок, предоставляя более полную картину, чем один анализатор. Процесс начинается с установления базового количества ошибок для обоих инструментов до внесения каких-либо изменений в код.Ключ к эффективной миграции заключается в выявлении и устранении системных первопричин, часто связанных с необязательными бэкендами C-расширений, а не в исправлении ошибок файл за файлом. Следует исправлять реальные ошибки, выявленные инструментами, особенно касающиеся сужения Optional/union и заглушек только для позиционных аргументов. Шум из тестовых файлов, в частности проблемы "создано, а затем доступно без сужения", следует массово подавлять с помощью ограниченных по области действия правил.Руководство советует включить строгие пресеты, а затем продвигать конкретные правила, явно исключая те, которые вызывают чрезмерные механические изменения. Проверка включает в себя обеспечение того, чтобы оба инструмента не сообщали об ошибках, полный набор тестов проходил, а линтеры были чистыми. Перед миграцией тщательно проанализируйте существующую конфигурацию mypy, чтобы понять, какой уровень строгости должны соответствовать или превзойти ty и pyrefly.Инвентаризация конфигурации mypy включает в себя сопоставление ее настроек с их примерными эквивалентами в ty/pyrefly и удаление устаревших переопределений кодов ошибок для отключения ошибок по модулям. После установки ty и pyrefly крайне важно получить базовое количество ошибок, категоризированное по типу ошибки, а затем по файлу; последнее обычно выявляет системные причины. Если существует частичная миграция с широкими подавлениями, ее следует рассматривать как тревожный сигнал, и подавления следует удалить, чтобы увидеть истинную базовую линию.Наиболее эффективным шагом является исправление архитектурных несоответствий, которые отмечают оба анализатора. Распространенным шаблоном являются необязательные бэкенды, обрабатываемые с помощью импорта try/except, где исправление часто заключается в блоке if TYPE_CHECKING:, чтобы позволить анализаторам типов видеть заглушки более богатого бэкенда. Подводные камни включают непереносимость комментариев # type: ignore[code], проблемы с регистром ключей TOML в pyrefly, хрупкость синтаксиса массивов таблиц в pyrefly при чередовании и невозможность прямого присваивания Protocol параметру конкретного класса. Тщательная проверка поведения и конфигурации инструментов имеет важное значение на протяжении всего процесса.
Выпущена версия 0.28.0 библиотеки scikit-survival, которая теперь поддерживает DataFrames Polars наряду с DataFrames pandas. Это достигается за счет использования слоя абстракции для DataFrames Narwhals, что повышает производительность. Релиз также обеспечивает совместимость с версией 1.9 библиотеки scikit-learn. Наборы данных в scikit-survival теперь можно загружать как DataFrames Polars, указав аргумент output_type. API set_output библиотеки scikit-learn позволяет трансформерам возвращать DataFrames Polars, а ClinicalKernelTransform и OneHotEncoder из scikit-survival теперь принимают как входные данные Polars, так и pandas. ClinicalKernelTransform учитывает типы столбцов Polars и позволяет указывать порядок категорий для порядковых признаков. OneHotEncoder преобразует строковые столбцы в числовые, возвращая DataFrame того же типа, что и входной. Модели выживаемости теперь можно обучать и делать прогнозы с использованием DataFrames Polars, но только для "горячих" (eager) DataFrames, а не для "ленивых" (lazy). В этом релизе отмечены два новых участника за их вклад в поддержку scikit-learn и Polars. Обновленные зависимости включают Narwhals 2.0.1 и scikit-learn 1.9.0. Scikit-survival можно установить через pip или conda.