RSS Планета Python Заметка

RSS Планета Python

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

Трэд заметок

Такие инструменты, как VS Code, с трудом определяют среду Python проекта, что препятствует выполнению основных функций, таких как выполнение кода и анализ зависимостей. Эта проблема возникает из-за того, что редакторы не имеют универсального метода для определения того, какой инструмент рабочего процесса использует проект или где расположены его виртуальные среды. При первом открытии проекта VS Code не может надежно определить, предпочитает ли пользователь Hatch, Poetry, uv или пользовательское решение. Текущие методы часто полагаются на угадывание на основе pyproject.toml, что зависит от поддержания точного списка поддерживаемых инструментов. Кроме того, инструменты рабочего процесса, которые хранят среды глобально или позволяют использовать общие среды, усложняют идентификацию, особенно когда пользователи управляют многочисленными средами. Простое решение существует для сред, хранящихся локально в каталоге .venv, предлагая базовую функциональность. Однако для сред вне проекта или при наличии нескольких сред специальный файл, такой как предложенный .python-envs, мог бы перечислять их пути. Для решения проблемы предпочтения инструмента предлагается таблица [workflow] в pyproject.toml для определения того, как инструменты запускаются в серверном режиме, обеспечивая связь через JSON-RPC на основе протокола Workflow Server Protocol. Этот протокол позволяет инструментам информировать редакторы о доступных средах и управлять их созданием. Альтернатива включает установление соглашений об именовании для инструментов CLI, которые возвращают необходимые детали среды. Мотивация автора проистекает из желания упростить настройку для всех пользователей Python, независимо от уровня опыта, минимизируя ручное управление средами. Это усилие направлено на решения, которые не являются специфичными для VS Code и могут быть приняты другими редакторами. Такой стандартизированный протокол связи поднял бы инструменты рабочего процесса за пределы простого промежуточного ПО, обеспечивая более широкую поддержку редакторов и сокращая разработку специализированных расширений.
Django 6.1 beta 1 уже доступна. Он символизирует второе Этап в цикле релиза 6.1 — это возможность попробовать изменения происходят в Django 6.1.Django 6.1 предлагает гармоничное сочетание новых функций и улучшений удобства использования, которые вы можете Об этом можно прочитать в Примечания к релизу 6.1, который находится в разработке.Только баги в новых функциях и регрессии по сравнению с предыдущими версиями Django будут Исправлено между настоящим моментом и финальной версией 6.1. Переводы будут обновляется после «заморозки строк», который происходит при выпуске Кандидат выдвинулся. The Текущий график релизов Ожидается выпуск кандидата примерно через месяц, с окончательным релизом Запланировано примерно через две недели — 5 августа.Раннее и частое тестирование со стороны сообщества поможет минимизировать количество Баги в релизе. Обновления по графику релиза доступны на форуме Django.Как и все альфа- и бета-версии, этот релиз не предназначен для продакшена Использовать. Однако, если вы хотите попробовать некоторые из новых функций или помочь найти, исправление ошибок (о которых следует сообщать трекер выпусков), Вы можете взять копию бета-пакета с сайта на нашей странице загрузок или на PyPI.Идентификатор ключа PGP, использованный для этого релиза, — Jacob Walls: 131403F4D16D8DC7
Выпущена версия 3.26 библиотеки для чтения RSS-лент Python под названием reader. Важной новой функцией является автоматическое обнаружение лент, когда пользователи могут ввести URL веб-сайта, и система предложит найденные ленты. Эта функциональность обеспечивается плагином autodiscover, который сохраняет обнаруженные ленты в теге feed. Кроме того, reader теперь поддерживает экспорт базы данных, позволяя пользователям загружать все свои данные, включая ленты и статусы статей. Эта функция особенно полезна при миграции на другие установки reader или для локального резервного копирования. Разработчик также работает над хостинговой версией reader, с общедоступной демонстрационной версией только для чтения, доступной для ознакомления. Ключевые завершенные функции для хостинговой версии включают многопользовательское веб-приложение, аутентификацию по электронной почте и развертывание инфраструктуры. Сама библиотека reader предоставляет основные функции чтения лент, такие как получение, хранение и управление различными типами лент, маркировка статей, тегирование, фильтрация, поиск и получение статистики. Она предлагает стабильный API, широкое тестовое покрытие и типизированный Python. Библиотека призвана упростить процесс для разработчиков, которые хотят создавать свои собственные программы для чтения RSS-лент или улучшать существующие. reader разработан как долгосрочная, расширяемая, стабильная и хорошо протестированная библиотека с минимальным количеством зависимостей.
CdXz5zHNQW_VN3UB2CEG5.png
В этом выпуске PyCoder's Weekly освещаются новости разработки на Python и сообщества. Представлена система плагинов с открытым исходным кодом Pluggy, используемая такими фреймворками, как pytest и tox. Есть руководство по реализации интерфейсов в Python с использованием ABC и протоколов, а также связанный с этим тест. Спонсор выделяет Honeybadger для мониторинга производственных Python-приложений.В рассылке представлен учебник по созданию расширений Scrapy для улучшения возможностей веб-скрапинга. Объявлены даты выборов в совет директоров PSF на 2026 год, а также новые окончательные PEP, связанные с Python 3.15. Django Software Foundation ищет исполнительного директора, а видео с PyData London 2026 теперь доступны.Статьи охватывают изменения в сборке мусора Python 3.14, сравнение библиотек очередей задач Python на 2026 год и опасения по поводу уязвимостей безопасности в автодополнении кода ИИ. Обсуждения в сообществе касаются проблем управления зависимостями для новых разработчиков и инженерии контекста для кодовых баз Python с использованием ИИ. Даются советы по развитию навыков Python, востребованных на рынке труда.Читатели могут научиться запускать измененный код Python с помощью модуля AST и создавать презентации SciPy с помощью Quarto. Среди новых проектов представлены asncounter, hydra, warp, python-socketio и marimo-tutorials. Предстоящие мероприятия включают виртуальные часы приема и различные встречи групп пользователей Python в июне и июле.
CdXz5zHNQW_ULVmhrrNLw.png
Splitline Ng из DEVCORE Research Team сообщил о серьезной уязвимости обхода аутентификации в API управления релизами python.org. Эта уязвимость, существующая с 2014 года, позволяла злоумышленнику использовать имя пользователя администратора с произвольным API-ключом для получения прав администратора. Эксплуатация могла бы позволить изменять метаданные релизов и файлов Python, в частности, URL-адреса загрузки, представленные пользователям. Однако после обширных проверок журналов и резервных копий баз данных доказательств эксплуатации не было обнаружено. Команда реагирования на инциденты безопасности Python (PSRT) подтвердила и устранила уязвимость в течение 48 часов после сообщения. Сет Ларсон и Хьюго ван Кеменейд разработали и внедрили исправление при содействии Джейкоба Коффи. Учитывая давность уязвимости и надежные процессы проверки, используемые распространителями, незамеченная эксплуатация была крайне маловероятной. Проверка материалов Sigstore и PGP подтвердила, что все артефакты python.org остались неизменными. После немедленного исправления был проведен тщательный ручной аудит кодовой базы, а также использованы инструменты аудита на основе LLM. Для обеспечения всесторонней безопасности был также проведен сторонний аудит компанией Trail of Bits. Меры по устранению уязвимости включали исправление механизма аутентификации, требование HTTPS-URL для новых релизов, добавление отрицательных тестовых случаев аутентификации и отклонение не-HTTPS URL. Также был увеличен срок хранения журналов для улучшения возможностей аудита.
Теперь тома Docker можно резервировать локально или в любом совместимом с S3 хранилище, предлагая легкое и эффективное решение, написанное на Go. Этот инструмент легко интегрируется с Docker Compose и предоставляет производственные функции, такие как ротация, шифрование и уведомления. Pyodide выпустил версию 3.14.0, соответствующую Python 3.14 и упрощающую управление пакетами с помощью PEP 783. Ключевые стандартные библиотеки, такие как sqlite3, ssl и lzma, теперь включены по умолчанию, улучшая пользовательский опыт. Важное исправление ошибки устраняет потерю точности при работе с большими целыми числами, пересекающими границу Python/JS. Экспериментальная поддержка TCP-сокетов в Node.js расширяет возможности Pyodide для серверных приложений. Nb-cli, новый экспериментальный интерфейс командной строки на основе Rust, позволяет автоматизировать ИИ-агентов и задачи в ноутбуках. Он позволяет ИИ-агентам взаимодействовать с Jupyter Notebooks извне, упрощая композицию и автоматизацию рабочих процессов. Hindsight — это система памяти ИИ-агентов, обеспечивающая постоянное обучение и возможности запоминания. Она использует несколько методов поиска для точного извлечения информации из памяти и автоматически консолидирует связанную информацию. Наконец, в выпуске представлены несколько дополнительных материалов, включая обновления инструментов ИИ и новости компаний.
Системы ИИ допускают непредсказуемые ошибки, что требует проверки каждого результата. Этот процесс проверки может быть столь же затратным, как и сама задача, что приводит к перекладыванию затрат на других. Основная проблема заключается в феномене "обратного кентавра", когда работодатели превращают сотрудников в неоплачиваемых верификаторов ИИ. Это происходит потому, что ошибки в работе ИИ являются обобщенной внешней проблемой, и людям дешевле выполнять работу полностью. Утверждение о том, что "ревью кода является узким местом", подчеркивает необходимость человеческого понимания, а не только технической проверки. В конкурентной среде ИИ помогает "карьеристам", позволяя им быстро создавать большие объемы кода, перекладывая бремя проверки на других. Эта динамика выгодна тому, кто дает запрос, и несет в себе риск серьезных проблем, при этом виноватым часто оказывается рецензент. ИИ также преуспевает в роли "Гишского галопера", подавляя противников потоком лжи, особенно в политических дискуссиях. Мошенничество, спам и аферы облегчаются благодаря способности ИИ быстро генерировать убедительный текст, перекладывая затраты на проверку на жертв. Боты службы поддержки клиентов, часто воспринимаемые как противники, используют ИИ для быстрого отказа или затягивания времени для клиентов, отдавая приоритет метрикам, а не решению проблемы. В образовании ИИ способствует массовому списыванию, поскольку студенты перекладывают работу по проверке на учителей. Хотя некоторые представляют, как ИИ используется для законных обращений против влиятельных структур, таких как страховые компании, структурные преимущества этих структур часто преобладают. Даже полезное использование ИИ может перерасти в гонку вооружений, потенциально приводя к худшим долгосрочным результатам. Возможности ИИ по обобщению и ответам на вопросы также могут быть использованы в качестве оружия, хотя само чтение считается более разрушительным для контента веб-сайтов.
Автор наблюдает растущую тенденцию к созданию систем поверх кодирующих агентов, формируя циклы, которые расширяют возможности агента за пределы одной сессии. Эти циклы включают очереди задач, машинное исполнение и управляющую оболочку, которая решает, продолжать ли задачу, изменяя контекст, или отправлять ее на другую машину. В то время как кодирующие агенты имеют внутренние циклы для задач, появляется новый внешний цикл "уровня управляющей оболочки", который доминирует в дискурсе. Автор лично испытывает трудности с этим подходом "без участия человека" для кода, который ему важен, находя сгенерированный код слишком защитным, сложным и лишенным сильных инвариантов. Текущие модели склонны добавлять чрезмерные локальные защиты вместо предотвращения нежелательных состояний, проблема, которая, кажется, усугубляется. Циклы усиливают эти тенденции, делая системы менее понятными, хотя они кажутся более надежными. Однако циклы превосходны в таких областях, как портирование кода, исследование производительности и сканирование безопасности, где целью является трансформация кода или создание недолговечных артефактов. В этих случаях долговечность или проверяемость сгенерированного кода менее критичны, чем процесс исследования или трансформации. Автор противопоставляет это написанию долговечного кода, который он сравнивает с эволюцией от программного обеспечения как детерминированной машины к программному обеспечению как организму. Этот сдвиг подразумевает отход от глубокого человеческого понимания к мониторингу, стабилизации и обращению с системами почти как с биологическими сущностями. Отказаться от этого машиноориентированного будущего становится трудно, особенно в сфере безопасности, где злоумышленники и исследователи уже используют циклы, вынуждая защитников адаптироваться. Конкурентное давление и скорость некоторых команд, использующих оркестрацию, также будут способствовать внедрению. Наиболее тревожным аспектом является потенциальная когнитивная и практическая зависимость от этих циклических систем, что вызывает вопросы о будущем доступе, стоимости и способности понимать код без помощи машины. В конечном итоге, кодовые базы могут стать зависимыми от участия машины для их обслуживания.
Этот учебник поможет вам создать кодирующего агента с нуля, чтобы понять его внутреннюю работу. Необходим предварительный опыт работы с Python и ключ API Claude. Настройка проекта включает использование 'uv' для создания проекта и установки зависимостей 'python-dotenv' и 'anthropic'. Аутентификация осуществляется путем размещения вашего ключа API Claude в файле .env и добавления его в .gitignore. Ядром кодирующего агента является большая языковая модель (LLM). В этом учебнике конкретно используется API Claude из-за его удобного SDK. Вы научитесь взаимодействовать с LLM через ее API. Учебник подчеркивает концепцию инструментов как способа расширения функциональности LLM. Кодирующий агент определяется как LLM, расширенная инструментами для взаимодействия с окружающей средой. Практическая реализация включает отправку сообщения LLM с использованием Python SDK 'anthropic'. Предоставленный фрагмент кода демонстрирует, как загружать переменные среды и инициализировать клиент Anthropic. Дальнейшие шаги будут включать управление контекстом и реализацию вызовов инструментов. Этот практический подход раскрывает тайны создания сложных кодирующих агентов.
CdXz5zHNQW_S96YGC59dT.webp
Агенты — это системы, построенные вокруг больших языковых моделей, а не просто более умные модели сами по себе. Они обладают специализированными компонентами, которые позволяют им сохраняться и действовать за пределами одного взаимодействия. Основная структура большинства агентов включает модель для рассуждений, инструкции для руководства, память для хранения информации, инструменты для расширения возможностей и цикл выполнения для непрерывной работы. Модель, или LLM, действует как движок рассуждений, обрабатывая язык и принимая решения о действиях. Инструкции определяют цель агента, его личность и желаемое поведение, фокусируя процесс принятия решений. В отличие от контекстного окна LLM, которое сбрасывается после каждого хода, память агента представляет собой внешнее, постоянное хранилище информации, доступное между сессиями. Эта память обеспечивает непрерывность работы, поддерживая контекст с течением времени. Инструменты предоставляют агентам функциональность, выходящую за рамки генерации текста, позволяя им взаимодействовать с внешним миром. Цикл выполнения оркестрирует цикл наблюдения, принятия решений, действий и оценки агента. Без любого из этих основных компонентов поведение агента значительно изменяется. Различие между кажущейся памятью LLM в рамках разговора и постоянной памятью агента имеет решающее значение для понимания функциональности агента. Система, а не сама модель, управляет информацией и подает ее в контекстное окно LLM. В конечном итоге эффективность агента зависит от синергетического взаимодействия всех его составных частей.
Настройка "ворот качества" для новых проектов часто включает копирование и редактирование существующих конфигурационных файлов, что является утомительным и нарушающим рабочий процесс процессом. Этот рабочий процесс "археологии конфигураций" требует ручного определения инструментов, поиска деталей их репозиториев и написания YAML, что прерывает рабочий процесс разработчика. Для решения этой проблемы был разработан pc-init, инструмент командной строки. Pc-init автоматизирует создание готового к производству конфигурационного файла pre-commit на основе технологического стека проекта. Пользователи просто указывают свой язык и фреймворк, а pc-init генерирует необходимую настройку. Например, pc-init --lang py или pc-init --lang js --framework react. Это устраняет необходимость искать URL-адреса или вручную управлять сложным YAML. Pc-init способствует стандартизации, обеспечивая единообразные стандарты качества для всех проектов. Инструмент также расширяем, позволяя пользователям определять собственные пресеты для обеспечения единообразия в команде. Он легко интегрируется как с pre-commit, так и с prek. Установка проста с помощью uv tool install pc-init. После генерации конфигурации пользователи должны запустить pre-commit autoupdate или prek autoupdate для получения последних версий инструментов. Предложения и проблемы можно сообщать в репозитории проекта на GitHub.
Этот текст представляет новый трек инструментов Unix для изучения языка Rust, предназначенный для того, чтобы сделать концепции языка более понятными путем перестроения знакомых программ на Python. Основная идея заключается в использовании существующих знаний о идиомах Python и прямом сравнении их с их эквивалентами в Rust. Этот подход помогает учащимся понять синтаксис и уникальные особенности Rust, такие как итераторы, типы Option и Result. Например, исключения времени выполнения Python для недопустимых входных данных переформулируются в Rust как возвращаемые типы, что делает обработку ошибок явной и обеспечиваемой компилятором. Трек подчеркивает чистые, тестируемые функции, отражающие профессиональную структуру инструментов Rust. Упражнения охватывают общие утилиты Unix, такие как wc, head, tail, cat, tr, grep, cut, uniq, sort, sed и финальный проект "top_words". Каждое упражнение строится на фундаментальных концепциях Rust, особенно на итераторах и обработке различных типов данных. Прямое сравнение с фрагментами кода Python подчеркивается как ключевое преимущество для контекстного понимания. Учащимся рекомендуется начать с бесплатных упражнений по wc и head/tail, чтобы испытать практический, тест-ориентированный процесс обучения. Автор надеется, что этот трек поможет пользователям перейти от пассивного обучения к активному развитию на Rust. Также упоминаются будущие треки, включая один о времени жизни Rust.
CdXz5zHNQW_uybQpwreBf.jpeg
Тестовый набор платформы Rust Django автора изначально выполнялся 30 секунд, что вызвало подозрение относительно производительности базы данных. Однако профилирование с помощью cProfile выявило, что настоящим узким местом была не база данных, сократив время выполнения до 3 секунд. Текст подчеркивает важность измерения производительности, а не угадывания решений, таких как слишком много фикстур или медленная база данных. Он выступает за использование инструментов профилирования, таких как cProfile, для выявления конкретных узких мест. Автор использовал cProfile для создания файла pstats, а затем profiling-explorer для визуализации данных. Профайлер выделил, что функция _hashlib.pbkdf2_hmac, стандартный хешер паролей Django, потребляла чрезмерное время во время тестов. Этот хешер намеренно медленный, чтобы противостоять атакам методом перебора, но он неоправданно замедляет каждый тест, который создает пользователя. Было реализовано простое исправление из пяти строк путем замены на более быстрый хешер MD5, специально для тестов. Это изменение оказалось очень эффективным, значительно сократив время выполнения тестового набора. После этой первоначальной оптимизации следующей самой времязатратной функцией стала cursor.execute, что изначально казалось потенциальной проблемой запросов N+1. Однако дальнейшие измерения подтвердили, что запросов N+1 не было; высокое количество вызовов было связано с законными операциями настройки тестов. Этот опыт подкрепляет основное послание: всегда профилируйте перед оптимизацией, чтобы избежать напрасных усилий и неверных предположений.
CdXz5zHNQW_5c2sgQR2VI.png
Core Dispatch охватывает события с 4 по 19 июня 2026 года. 10 июня были выпущены Python 3.14.6 и 3.13.14. Руководящий совет объявил о новом пути развития экспериментального JIT, предложив PEP стандарта для структурированного обсуждения сообществом. Разработчики JIT активно ищут обратную связь от сообщества по этому PEP JIT. Был разработан PEP 835, сокращенный синтаксис для метаданных аннотированных типов. Правление PSF опубликовало проект своей стратегической программы на 2026 год, открытой для отзывов до 25 июня. Также были объявлены даты выборов в Правление PSF на 2026 год. Пользователям рекомендуется протестировать последний бета-релиз 3.15. Объединенные PR включают исправления безопасности и улучшения производительности в различных модулях. Продолжаются обсуждения по обнаружению виртуальных окружений и синтаксису метаданных аннотированных типов. Основные разработчики поделились мнениями о возвращении в Sovereign Tech Fellowship, уязвимостях автодополнения кода и внутренних механизмах многопоточности. Несколько конференций по Python и призывы к подаче докладов имеют приближающиеся сроки. Было опубликовано интервью с Гвидо ван Россумом о ранних днях Python.
Платформа Rust предлагает множество упражнений, каждое из которых требует от пользователя открыть редактор, написать код и проверить его с помощью бэкенда Rust. Этот процесс требует сквозного тестирования, чтобы гарантировать, что обновления не нарушат существующую функциональность. Ручное тестирование неэффективно и не охватывает полный цикл пользователя от входа в систему до получения обратной связи. Хотя для приложения Django и валидатора Rust существуют модульные тесты, они не тестируют интегрированный опыт выполнения упражнения. Playwright в сочетании с pytest предлагает лаконичное решение для такого сквозного тестирования. Одна тестовая функция Python параметризуется путем извлечения всех общедоступных упражнений и их решений из базы данных. Каждый параметризованный тест переходит к упражнению, вставляет правильное решение в редактор и проверяет отправку. Тест утверждает, что полученная обратная связь указывает на успешное завершение.Фикстуры с областью действия сессии в pytest используются для оптимизации производительности путем запуска браузера и входа в систему только один раз для всех тестов. Важным аспектом тестирования Playwright является управление временем ожидания элементов, особенно для редактора CodeMirror, путем явного ожидания видимости элемента и инициализации его экземпляра JavaScript. Был реализован обходной путь, чтобы избежать ловушки асинхронного контекста Django при создании тестовых пользователей, используя отдельную фикстуру, которая выполняется перед фикстурами Playwright, используя django_db_blocker. Сквозные тесты разработаны для работы с реальной базой данных и фактическим валидатором Rust, обеспечивая реалистичное интеграционное тестирование. Эти тесты выполняются локально перед крупными отправками, в то время как среды CI в основном запускают более быстрые модульные тесты. Этот подход автоматически тестирует недавно добавленные упражнения без необходимости написания нового тестового кода, а любые изменения в интерфейсе проверяются на соответствие этому интегрированному набору регрессионных тестов. Playwright предпочтительнее Selenium благодаря его современному и эргономичному интерфейсу, при этом управление временем ожидания элементов является решаемой задачей.
Автор был вдохновлён додекаэдром с исламскими узорами, созданным Таджем Рагу. Они изучили дизайн и использовали Python для генерации PDF-шаблона для создания своей собственной модели. Результатом стал додекаэдр, который элегантно сочетает геометрическую форму додекаэдра с исламскими звёздными узорами. Каждое пятиугольное лицо украшено кольцом из десяти маленьких пятиконечных звёзд. В центре каждого лица находится десятиконечная звезда, образованная двумя перекрывающимися пятиконечными звёздами. Умный дизайн наиболее очевиден на углах додекаэдра. Здесь три пятиугольника, встречающиеся в вершине, создают зазор. Этот зазор, когда он сложен, завершает девятиконечную звезду, используя те же элементы звёзд. Девятиконечная звезда образуется потому, что одна точка центральной десятиконечной звезды отсутствует из-за геометрии. Автор предлагает подписаться на Таджа Рагу в Instagram, чтобы увидеть больше подобных дизайнов, отметив работу Рагу по дереву. PDF-шаблон доступен для того, чтобы другие могли создать свои собственные модели. Процесс создания кода на Python был сложным, включающим сложную математику и рисование линий. Автор выражает желание иметь лучшие инструменты для дизайна на основе плиток в будущем. Построение додекаэдра было полезным, итеративным процессом, включающим изучение, кодирование, печать, сборку и раскраску. Этот проект позволил автору заняться как интеллектуальным, так и практическим творчеством.
CdXz5zHNQW_v0N7yoOJJU.jpeg
Выборы в Совет директоров Python Software Foundation (PSF) скоро состоятся, предоставляя сообществу возможность избрать представителей. В настоящее время открыты четыре места в Совете PSF, поскольку у нескольких действующих членов истекают сроки полномочий. Параллельно пройдет первая избирательная кампания вновь утвержденного Совета по упаковке. Период выдвижения кандидатов в Совет PSF начнется во вторник, 28 июля, и завершится во вторник, 11 августа. Кандидаты будут объявлены в четверг, 13 августа. Для голосования необходимо быть вносящим, поддерживающим или членом-стипендиатом к вторнику, 25 августа, и подтвердить свое намерение голосовать.Изменение устава позволяет автоматически включать в список избирателей тех, кто голосовал ранее, однако изменение адреса электронной почты может этому помешать. Члены могут управлять своими предпочтениями в отношении избирательной коммуникации на сайте psfmember.org. PSF ищет кандидатов с разнообразными навыками, включая лидерство, фандрайзинг, опыт работы в некоммерческих организациях, организацию мероприятий и техническую экспертизу. Доступны ресурсы для получения дополнительной информации о роли директора PSF. Поощряются самовыдвижение и выдвижение других кандидатов, при этом рекомендуется предварительная беседа с номинантом. Обсуждения выборов проходят на форуме PSF, а часы для вопросов и ответов будут проводиться в Discord. Обновления будут предоставляться через блог PSF и почтовый список psf-member-announce.
Чтобы различать типы методов Python, обратите внимание на то, что метод использует. Если ему нужен экземпляр, обозначаемый self, это метод экземпляра для изменения состояния объекта. Если ему требуется сам класс, cls, но не конкретный экземпляр, это метод класса (classmethod), идеально подходящий для альтернативных конструкторов или реестров. Когда метод не нуждается ни в self, ни в cls, это статический метод (staticmethod), функционирующий как изолированный помощник или утилита.classmethod особенно полезен при создании объектов несколькими способами, поскольку Python не позволяет перегружать __init__. Примеры включают создание дат из временных меток или строк ISO, как это видно в datetime.date. Эти методы используют cls для обеспечения правильного создания экземпляров подклассов. Другое распространенное использование classmethod — управление состоянием на уровне класса, например, реестрами плагинов или счетчиками.staticmethod — это, по сути, автономная функция, размещенная внутри класса для организационных целей. Она полезна для вспомогательных функций, тесно связанных с назначением класса, таких как утилиты преобразования в классе Color. Однако, если staticmethod логически не принадлежит классу, возможно, лучше сделать ее функцией на уровне модуля для более легкого тестирования. Основной принцип заключается в том, чтобы методы выполняли работу, соответствующую их обозначенной области.Поскольку код, сгенерированный ИИ, становится все более распространенным, критическая оценка его структуры и назначения имеет решающее значение. classmethod, который просто перенаправляет аргументы в __init__ без добавления ценности, может указывать на отсутствие понимания. Аналогично, staticmethod, который мог бы быть автономной функцией, может быть структурно некорректным. Развитие сильного чувства хороших практик Python необходимо при проверке кода, независимо от его происхождения. Это правило принятия решений предоставляет простую основу для таких оценок.
Автор часто организовывал личные мероприятия для друзей с серверов Discord. Изначально они использовали @here, чтобы оповестить всех о деталях мероприятия. Однако они обнаружили, что многие друзья лучше реагировали на последующие текстовые сообщения. Это побудило автора создать инструмент SMS BCC из-за эффективности текстовых сообщений в организации. Автор обнаружил, что команда @here в Discord уведомляет только пользователей, которые в данный момент онлайн. Это означает, что пользователи, которые не в сети или отсутствуют, не получают первоначального уведомления. Следовательно, друзья автора, которые часто были не в сети, пропускали первоначальные оповещения о мероприятиях. Это различие делает @here подходящим для синхронных действий, таких как онлайн-игры, но не для заблаговременного планирования мероприятий. Автор узнал это от друга и понял, что многие другие могут об этом не знать. С этого момента автор планирует использовать @channel для организации мероприятий, чтобы обеспечить более широкое уведомление. Они надеются, что этот совет поможет другим увеличить посещаемость их мероприятий в Discord, и просят поделиться другими неизвестными хитростями.
OpenAI приобрела Astral, компанию, ответственную за популярные инструменты Python, такие как uv, Ruff и ty. Эта сделка вызвала вопросы о будущем этих open-source проектов. Однако Чарли Марш, ранее работавший в Astral, предполагает, что OpenAI может выпустить больше open-source разработок, чем Astral. В эпизоде подкаста обсуждаются последствия этой сделки, включая возможные смешанные чувства по поводу перехода. Будет рассмотрено будущее существующих инструментов Python от Astral и опыт работы в OpenAI, центральном узле разработки ИИ. Марш считает, что они могут продолжить и, возможно, расширить open-source деятельность. Приобретение знаменует собой значительный шаг в экосистеме ИИ, отражая более раннее приобретение Bun компанией Anthropic. Этот эпизод обещает глубокое погружение в эти события и их влияние на сообщество Python. Слушатели могут найти ссылки на все упомянутые проекты и ресурсы.
Фонд программного обеспечения Django нанимает своего первого исполнительного директора благодаря значительному взносу от шести агентств по веб-разработке Django. Эти агентства — Caktus Group, Lincoln Loop, Six Feet Up, Cuttlesoft, OddBird и Two Rock — совместно внесли 47 500 долларов США для финансирования первого года работы на этой должности. Это финансирование знаменует собой решающий шаг от обсуждения необходимости в исполнительном директоре к активному его поиску. Должность исполнительного директора необходима, потому что DSF значительно вырос, взяв на себя многочисленные обязанности, которые долгое время выполнялись преданными, но ограниченными в ресурсах членами правления-волонтерами. Эта новая оплачиваемая должность будет заниматься повседневными операциями, спонсорством, работой с сообществом и финансовой отчетностью. Агентства решили сотрудничать из-за их общей зависимости от Django, признавая необходимость устойчивости и долгосрочной жизнеспособности фреймворка. Их взносы, варьирующиеся от 2500 до 12 500 долларов США, отражают значительные инвестиции для их бизнеса. Хотя этот взнос является хорошим началом, DSF увеличивает свою ежегодную цель по сбору средств до 500 000 долларов США для поддержания должности исполнительного директора и других жизненно важных программ. Фонд теперь просит другие компании, которые извлекают выгоду из Django, внести свой вклад в эту важную инфраструктуру. Процесс найма формализуется, и объявление о вакансии будет скоро опубликовано по различным каналам сообщества.
"PyCon US 2026 осветила значительные события в области безопасности Python. Новый специализированный трек по безопасности, "Прокладывая путь в безопасности Python", включал доклады по таким темам, как фишинг, нулевое доверие, использование Rust для CPython и генерация SBOM. Python Software Foundation (PSF) сообщила об увеличении как публикации пакетов, так и вредоносного ПО на PyPI. Сессия Open Space была посвящена проблемам безопасности для сопровождающих проектов с открытым исходным кодом. Обсуждения сосредоточились на усилении конвейеров CI/CD и управлении огромным объемом отчетов об уязвимостях, часто генерируемых LLM. Сопровождающие изучали стратегии обработки этих отчетов, учитывая возросшую рабочую нагрузку и увеличение количества низкокачественных submissions. Использование политик безопасности и моделей угроз поощрялось для смягчения проблем, вызванных LLM. Мета-разговор затронул необходимость "сигналов качества участников", чтобы помочь сопровождающим расставлять приоритеты в своем времени. Спонсорство Alpha-Omega поддерживает ключевые роли в области безопасности в PSF, включая Security Developer-in-Residence и PyPI Safety & Security Engineer. Обновления включали изменения в управлении Python Security Response Team (PSRT) и усилия по смягчению вредоносного ПО и атак на цепочки поставок на PyPI."
CdXz5zHNQW_ilXSD1f9ax.jpeg
Джефф Хеймер, опытный разработчик программного обеспечения и преподаватель, стремился углубить свои знания в области ИИ и освежить свои навыки Python. Он записался на курс Python Agentic AI, изначально не возлагая больших надежд из-за своих предполагаемых пробелов в знаниях. Несмотря на возникшие трудности, особенно с интеграцией интерфейса во время недели, посвященной ботам Telegram, структура курса позволила ему продвигаться вперед. Программа делала акцент на создании основной логики агента до разработки интерфейсов, что оказалось устойчивым подходом, когда один из интерфейсов отставал.Значительной трудностью для Джеффа стало освоение концепции мокирования, которая включает использование замещающих сервисов для тестирования. Он находил эту практику изначально запутанной, даже после консультаций с другими разработчиками. Однако курс в конечном итоге сделал мокирование незаменимым, позволив ему различать модульные и интеграционные тесты и улучшив его понимание фреймворков тестирования Python, таких как pytest. Приверженность Джеффа строгому тестированию привела к созданию всеобъемлющего набора тестов, который выявлял реальные проблемы.Он использовал ИИ в качестве помощника преподавателя, обращаясь за помощью в деталях реализации Python, а не в генерации кода. Такой подход позволил ему создавать приложение вручную, закрепляя полученные знания. Основным результатом для Джеффа стало не только созданное им функциональное агентное приложение, но и прочная ментальная модель того, как работают агенты ИИ. Он проверял это понимание на внешних примерах, подтверждая свое освоение базовых процессов. Эта вновь обретенная ясность превратила ИИ из абстрактной концепции в осязаемую область знаний.
Совет по управлению Python приостановил разработку JIT в ожидании нового PEP для решения вопросов интеграции и подхода. Саймон Уиллисон исследовал MicroPython и WASM для создания песочниц для кода. Wallaby — новый инструмент VS Code, предлагающий разработчикам Python результаты тестов в реальном времени, значения во время выполнения и помощь в отладке. API OpenRouter обеспечивает доступ к нескольким моделям ИИ с такими функциями, как интеллектуальная маршрутизация и контроль затрат. Выпущены версии scikit-learn 1.9 и Python 3.14.6/3.13.14. Marimo предлагает воспроизводимые реактивные блокноты, которые избегают скрытого состояния и экспортируются в различные форматы. EuroPython 2026 отметит свое 25-летие в Кракове, Польша. SQLPyHelper — это библиотека, предоставляющая унифицированный API базы данных для различных SQL-вариантов с поддержкой асинхронности. Pyodide 3.14.0 теперь позволяет создавать и публиковать колеса Pyodide в PyPI. Несколько статей охватывают такие темы, как перцептроны, перегрузка проверки типов Python, эффективное мокирование в тестах и сравнение редакторов кода ИИ Cursor и Windsurf. Среди представленных проектов — слой надежности для Celery, замена UUID на основе Rust, обнаружение трендов во временных рядах, конечные точки работоспособности Django и числовые циклические буферы. Предстоящие мероприятия включают виртуальные часы приема, доклады о CPython на Android и различные встречи PyData и PyLadies.
CdXz5zHNQW_RUdjlLmnfu.png
4-часовой живой мастер-класс под названием "Создание приложений для работы с данными с помощью Streamlit и Copilot", организованный O'Reilly, состоится 9 июля с 9:00 до 13:00 по тихоокеанскому времени. Это улучшенная версия предыдущего мастер-класса, предназначенная для пользователей Python, желающих превратить аналитические данные в интерактивные инструменты. Участники начнут с Jupyter Notebook и создадут полноценное приложение Streamlit. Приложение позволит пользователям исследовать наборы данных с помощью интерактивных элементов управления, диаграмм и карт. Copilot будет использоваться для ускорения разработки и облегчения поиска функций Streamlit. Основные темы включают структуру приложений Streamlit, управление вводом пользователя, создание интерактивной графики с помощью Plotly, организацию пользовательского интерфейса и развертывание приложений в Streamlit Cloud. Мастер-класс практический, участники шаг за шагом создадут функциональный проект. Пример приложения позволяет пользователям выбирать штат и демографическую статистику, визуализировать ее изменения во времени и просматривать данные в виде диаграмм, карт или таблиц. Полученные навыки применимы к различным проектам Streamlit. Этот мастер-класс идеально подходит для специалистов по данным, аналитиков и пользователей Python, заинтересованных в создании панелей мониторинга без обширных знаний в области веб-разработки. Регистрация осуществляется через O'Reilly; для новых участников доступна 30-дневная бесплатная пробная версия. Мастер-класс будет записан, что позволит получить к нему доступ, даже если вы не сможете присутствовать на живой сессии.
В этом выпуске Python Bytes рассматриваются различные инструменты и методы для разработчиков. Кельвин представляет pi — агент для написания кода с открытым исходным кодом, обладающий мощной моделью расширений и методологией под названием Superpowers. Затем Майкл обсуждает Warp.dev — современное терминальное приложение, и OhMyZSH для улучшения функциональности оболочки, рекомендуя Commandbookapp.com для дальнейшей автоматизации. Кельвин выступает за использование Kitty или Blink Shell в сочетании с Mosh и tmux для постоянных удаленных сессий кодирования, создавая «постоянный удаленный мозг». Майкл подчеркивает преимущества интеграции Claude, ИИ-помощника, в IDE, такие как PyCharm и VS Code, для кодирования и управления контекстом разговора. Для транскрипции Кельвин предлагает MacWhisper или Handy, подчеркивая их обработку на устройстве и конфиденциальность. Майкл объясняет полезность Tailscale для безопасной сетевой связи между устройствами без портов, делясь своими личными сценариями использования для разработки и удаленного доступа. В разделе «Дополнительно» упоминаются Telescopo и Typora как инструменты для работы с markdown, а также заявление относительно правительственных директив по Fable и Mythos. Выпуск завершается шуткой и упоминанием способов поддержки шоу.
Pluggy — это библиотека Python, предназначенная для создания систем плагинов в инструментах и библиотеках. Изначально она была разработана для проекта pytest, а затем выделена в отдельную библиотеку. Основная концепция Pluggy вращается вокруг хуков — функций, предоставляемых хост-приложением и реализуемых плагинами. Хосты определяют хуки с помощью HookspecMarker, а плагины реализуют их с помощью HookimplMarker.Библиотека облегчает создание демонстрационного инструмента под названием htmlize, который преобразует разметку в HTML и поддерживает пользовательские роли и обработку содержимого через плагины. Хост определяет специфические хуки, такие как htmlize_role_handler и htmlize_contents, чтобы позволить плагинам расширять его функциональность. Эти хуки могут принимать различные параметры и возвращать функции для обработки данных.PluginManager библиотеки обрабатывает загрузку плагинов, предоставляя удобный механизм для обнаружения плагинов, зарегистрированных как точки входа setuptools. Это позволяет плагинам, установленным через pip, автоматически обнаруживаться и загружаться хост-приложением. Хосты также могут использовать пользовательские методы обнаружения плагинов, регистрируя плагины напрямую в менеджере.Вызов загруженных плагинов прост; PluginManager координирует вызовы зарегистрированных реализаций хуков. Вызовы хуков обычно возвращают список результатов от всех подключенных плагинов, с возможностью управления порядком выполнения. Плагины реализуют хуки, декорируя свои функции маркером hookimpl хоста.Pluggy хорошо соответствует фундаментальным концепциям плагинов, таким как обнаружение, регистрация и использование хуков. Он предлагает Pythonic-способ предоставления API хоста плагинам, используя стандартные механизмы импорта Python. Хотя создание системы плагинов может быть простым, Pluggy предоставляет расширенные функции, такие как проверка сигнатуры, согласованный сбор результатов и параметры упорядочивания.Решение об использовании Pluggy зависит от потребностей проекта, взвешивая преимущества его расширенных функций по сравнению с добавлением зависимости. Механизм автоматической регистрации точек входа библиотеки особенно полезен для проектов, которые используют стандартные инструменты упаковки Python. В целом, Pluggy предлагает надежное и гибкое решение для создания расширяемых приложений Python.
Rust отказывается от традиционного объектно-ориентированного программирования, фокусируясь на данных и поведении, а не на объектах. Предпочтение отдается композиции вместо глубоких иерархий наследования, что позволяет создавать сложные типы путем объединения более простых. Трейты обеспечивают полиморфизм без наследования, определяя общее поведение отдельно от данных для большей гибкости. Правила владения и заимствования в Rust обеспечивают безопасный и эффективный доступ к данным, устраняя необходимость во многих ООП-шаблонах, таких как геттеры и сеттеры. Модульность достигается с помощью модулей и крейтов, при этом приватность обеспечивается на уровне модуля, а не класса. Перечисления и сопоставление с образцом предоставляют легкий и исчерпывающий способ представления и обработки различных типов данных, заменяя иерархии классов. Подход Rust разделяет данные и поведение, предлагая инкапсуляцию, абстракцию и полиморфизм без сложностей наследования и изменяемого состояния. Это приводит к более надежному и поддерживаемому коду, доказывая корректность компилятору. Язык поощряет ориентированный на данные дизайн, продвигая композицию вместо наследования. Философия Rust сосредоточена на доказательстве корректности, что приводит к иному стилю кодирования, чем объектно-ориентированный подход ООП.
Пользователи Twitter находят юмор в трудностях Anthropic с контролем экспорта, поскольку предыдущий акцент компании на опасности ИИ теперь, кажется, напрямую влияет на них. Директива правительства США приостановить доступ к определенным моделям ИИ для иностранных граждан подчеркивает растущий раскол, где мощная технология ограничивается на основе национальности. Это развитие предполагает глобальную траекторию к фрагментации, где ИИ рассматривается как оружие, а не как инструмент для всеобщего прогресса. Политика США в области контроля экспорта, в частности, нацеленная на иностранных граждан даже внутри своих границ, подчеркивает сдвиг от контроля доступа правительствами к контролю на основе индивидуальной национальности. Этот исключительный подход вызывает обеспокоенность по поводу того, что национализм может преобладать над настоящими соображениями безопасности. Европейским странам рекомендуется признать этот сдвиг, поскольку их собственная технологическая политика не готова к тому, чтобы справиться с ландшафтом, определяемым властью, а не регулированием. Зависимость Европы от американских технологических платформ и цепочек поставок оставляет ее уязвимой в дискуссиях о геополитике ИИ. Автор критикует внутреннюю фрагментацию Европы и бюрократические препятствия, которые задушают инновации и заставляют амбициозных основателей уезжать в США. Это создает самоподдерживающийся цикл утечки мозгов и слабости экосистемы. Текст утверждает, что Европа должна воспитывать большую амбицию, собственность и готовность строить, выходя за рамки простого регулирования. Автор предостерегает от простого подражания США, признавая его сильные стороны, но также и его социальные разногласия и тенденцию к конфликтам. Автор подчеркивает важность международного сотрудничества и принципов открытого исходного кода как противоядия от концентрации власти ИИ в руках нескольких людей. В конечном итоге, статья выступает за сотрудничество, предупреждая, что фрагментированный мир, управляемый конкурирующими блоками власти, подорвет индивидуальные права и стабильность.
Конференция EuroPython 2026 пройдет в Кракове через месяц, полное расписание докладов уже доступно онлайн. Список приглашенных докладчиков пополнился Уильямом Вудраффом, Марлен Мхангами и Имоген Райт, которые присоединятся к ранее объявленным спикерам. Цены на билеты вырастут 26 июня, поэтому посетителям рекомендуется приобрести их до этой даты. Продажа удаленных билетов начнется 15 июня для тех, кто не сможет присутствовать лично. В этом году отмечается 25-летие EuroPython, которое будет отмечено специальными мероприятиями, включая конкурсы на выигрыш бесплатного билета. Один конкурс ищет самый старый бейдж EuroPython, другой награждает участников за то, что они поделятся своим самым значимым опытом EuroPython в видеоформате. 18 июля запланирован мастер-класс от Django Girls, посвященный доступности Python и Django. Сообщество Women in Python проведет 5-километровый забег 16 июля для нетворкинга и укрепления дружеских связей. Заявки на волонтерство на месте рассматриваются, уведомления ожидаются с 13 по 19 июня. Видео с мастер-класса по ориентации спикеров EuroPython с советами для докладчиков теперь доступно на YouTube. Решения о финансовой помощи были разосланы, 84 гранта были предоставлены из бюджета в 35 000 евро. Новый контент, включая интервью с PyCon US, регулярно публикуется на YouTube-канале EuroPython. Места для спонсорских стендов почти заполнены, оставшиеся возможности доступны по запросу на [email protected]. Регистрация на Rust Summit, посвященный пересечению Rust и Python, остается открытой. Общество EuroPython также активно участвовало в PyCon US и PyCon Italia, демонстрируя свое присутствие и взаимодействуя с сообществом.
CdXz5zHNQW_4pUpCNfA9x.png
Автор с энтузиазмом присоединился к Sovereign Tech Fellowship, приняв участие в его успешной пилотной программе 2025 года. Эта стипендия предоставляет критически важное финансирование для сопровождающих жизненно важных технологий с открытым исходным кодом. Участие автора позволило сосредоточиться на выпуске версий Python 3.14 и 3.15, а также на наставничестве и поддержке сообщества. Комплексный отчет об оценке подробно описывает преимущества программы, включая конкретные достижения автора.Плавный выпуск Python 3.14.0 был значительно облегчен благодаря выделенному времени в рамках стипендии, что позволило проактивно решать проблемы и без стресса справляться с ускоренными выпусками. Автор эффективно наставлял новых менеджеров выпусков и триажеров, способствуя прозрачности через взаимодействие с сообществом и публичное распространение информации. Были улучшены процессы выпуска за счет автоматизации и повышения доступности веб-сайта, что затронуло миллионы пользователей.Была разработана панель мониторинга для управления многочисленными проблемами и бэкпортирования критических исправлений безопасности, что продемонстрировало значительное организационное влияние. Автор также выступал за нетехнические улучшения, успешно предложив чередовать Language Summit между PyCon US и EuroPython для содействия большему разнообразию. Эта организационная работа включала тщательный процесс обсуждения и предложения внутри основной команды.Дополнительное свободное время было выделено как на личные интересы, так и на поддержку местного сообщества Python, что привело к совместной организации встреч. Стипендия способствовала установлению ценных связей и обмену знаниями посредством ежемесячных встреч и очного мероприятия. Обширный вклад автора включал многочисленные коммиты в GitHub, выпуски, презентации на конференциях и усилия по организации сообщества. Заглядывая в будущее, автор с нетерпением ожидает расширенного состава стипендиатов 2026 года, который включает менеджеров сообщества и технических писателей. Текущая работа Sovereign Tech Agency играет ключевую роль в улучшении инфраструктуры с открытым исходным кодом, влияя на новые инициативы ЕС, такие как EU Sovereign Tech Fund.
Релиз Scikit-learn 1.9 приносит значительные улучшения в существующие модели машинного обучения. Легко заметные улучшения включают более богатые HTML-отображения в ноутбуках, которые теперь показывают подогнанные атрибуты и имена выходных признаков ColumnTransformer. Введен новый экспериментальный механизм обратного вызова, позволяющий отображать индикаторы выполнения и расширенный мониторинг во время обучения модели. Эта система обратных вызовов предназначена для гибкого отслеживания прогресса, даже в средах параллельных вычислений. Изначально обратные вызовы доступны для логистической регрессии, объектов GridSearchCV, конвейеров и StandardScaler. Релиз также фокусируется на улучшенной статистике и численности, повышая надежность процедур scikit-learn для различных входных данных и вариантов моделирования. Древовидные модели теперь имеют нативную поддержку пропущенных значений и монотонных ограничений. Линейные модели выигрывают от поддержки float32 в логистической регрессии и улучшенной стабильности в RidgeCV/ClassifierCV. Scikit-learn теперь возвращает разреженные массивы вместо разреженных матриц, что соответствует развивающимся практикам SciPy. Поддержка GPU расширяется: логистическая регрессия, пуассоновская регрессия и определенные метрики получают ускорение на GPU. Хотя опыт пользователей с GPU-бэкендами все еще развивается, это является отличной областью для участия контрибьюторов. Проект Scikit-learn процветает благодаря вкладу волонтеров и финансовых спонсоров.
CdXz5zHNQW_uYWVeT7Rck.png
Этот контент подчеркивает Startup Row с PyCon, демонстрируя компании на ранней стадии, основанные на Python. Организаторы Джейсон и Шей обсуждают происхождение программы и упоминают две компании-выпускницы, ставшие единорогами. Эпизод представляет пять участвующих стартапов. Tetrix предлагает ИИ для институциональных инвестиций на частных рынках. Arcjet предоставляет безопасность в приложении в виде SDK. Phemeral.dev фокусируется на безсерверном хостинге, специально для веб-приложений на Python. CapiscIO стремится создать систему идентификации и полномочий для агентов ИИ. Pixeltable - это многомодальная база данных, разработанная Марселем Корнакером, соавтором Apache Parquet. Текст побуждает слушателей определить общую тему среди этих стартапов. Он также перечисляет спонсоров эпизода и предоставляет ссылки на гостей, компании и контент, связанный с шоу. Наконец, он включает ссылки на социальные сети для шоу и его ведущего.
Выбор правильной платформы искусственного интеллекта имеет решающее значение для успешных проектов в области искусственного интеллекта и машинного обучения. Python доминирует в этой области благодаря зрелой экосистеме поддерживающих платформ. Идеальный выбор платформы зависит от конкретных требований проекта, таких как производственные системы или исследовательские прототипы. Платформы искусственного интеллекта упрощают разработку, предлагая готовые библиотеки для сложных математических и вычислительных операций. Эти платформы обычно делятся на три категории: платформы для глубокого обучения, платформы для классического машинного обучения и платформы для больших языковых моделей/ИИ-агентов. Платформы искусственного интеллекта ускоряют разработку, обеспечивают поддержку сообщества, предлагают готовые к производству инструменты и оптимизированы для такого оборудования, как графические процессоры. Доминируют платформы с открытым исходным кодом, предлагающие инновации, прозрачность и экономическую эффективность, при этом коммерческие платформы часто строятся на основе этих инструментов с открытым исходным кодом. TensorFlow, разработанный Google, представляет собой масштабируемую платформу глубокого обучения, идеально подходящую для корпоративных приложений и развертывания на различных устройствах. Scikit-learn — это важная библиотека с открытым исходным кодом для классического машинного обучения на структурированных данных, предлагающая удобный для начинающих API и комплексные алгоритмы. PyTorch от Meta — это гибкая платформа глубокого обучения, предпочитаемая в исследованиях благодаря своей "питонической" природе и динамическим графам вычислений. Keras — это высокоуровневый API, предназначенный для быстрого экспериментирования с глубоким обучением, известный своей простотой и поддержкой нескольких бэкендов. LangChain — это платформа с открытым исходным кодом, предназначенная для создания приложений на основе больших языковых моделей, упрощающая интеграцию больших языковых моделей с внешними данными и инструментами.
CdXz5zHNQW_dXsJvecBsg.png
Экосистема Django очень обширна и используется многими организациями и критической инфраструктурой по всему миру. Фонд программного обеспечения Django (DSF) поддерживает эту экосистему, но зависит от финансирования. В этом году DSF поставил амбициозную цель по сбору средств в размере 500 000 долларов, чтобы обеспечить дальнейшее здоровье и устойчивость Django. Этот рост с 300 000 долларов необходим для увеличения ежемесячных пожертвований с 9 000 до примерно 15 000 долларов. Вклады финансируют важную программу стипендий Django, которая занимается задачами разработки, такими как сортировка тикетов и проблемы безопасности. Кроме того, средства поддерживают управление товарными знаками, инфраструктуру для djangoproject.com, гранты на мероприятия DjangoCon и региональные мероприятия, а также программы сообщества, такие как Django Girls и Djangonaut Space. Увеличенное финансирование также позволит нанять исполнительного директора для предоставления посвященного руководства и расширения усилий по сбору средств. Новые инициативы, такие как корпоративное членство в программе стипендий, предлагают организациям прямой и видимый способ инвестировать в будущее Django. Корпоративные членства и индивидуальные пожертвования, включая программы соответствия работодателей и GitHub Sponsors, имеют решающее значение для достижения цели. Распространение информации также является ценным вкладом для тех, кто не может сделать финансовый вклад. DSF поддерживает прозрачность, публикуя ежемесячные финансовые снимки, с текущими операционными резервами около 222 000 долларов. Это увеличение сбора средств имеет важное значение для стабильности, устойчивости и обеспечения будущего успеха проекта для всех, кто на него полагается.
Эта статья объясняет, как извлекать метаданные из файлов изображений TIFF с помощью библиотеки Pillow в Python. Следуя предыдущим инструкциям для данных EXIF JPG, это руководство представляет метод для метаданных TIFF. Предоставляется скрипт Python, tiff_metadata.py, для демонстрации этого процесса. Скрипт импортирует словарь TAGS из PIL.TiffTags для интерпретации информации о тегах TIFF. Функция get_metadata открывает файл TIFF и проходит через его теги. Затем она использует словарь TAGS для сопоставления числовых идентификаторов тегов с читаемыми именами. Извлеченные метаданные хранятся в словаре и возвращаются. Пример вывода показывает различные теги TIFF, такие как размеры изображения, сведения о сжатии, разрешение и информация о программном обеспечении. Статья отмечает, что значения метаданных возвращаются как кортежи и предлагает задачу по очистке этих данных. Понимание и доступ к метаданным изображений позволяют выполнять программные задачи, такие как изменение размера изображения и сортировка файлов. Статья поощряет дальнейшее изучение возможностей Pillow для обработки изображений и упоминает соответствующую книгу на эту тему.
CdXz5zHNQW_2cKxZqZ5Kc.png
"Стеки и очереди являются фундаментальными структурами данных в информатике. Они предназначены для эффективного удаления либо самого недавно добавленного, либо наименее недавно добавленного элемента. Очередь работает на принципе "первым вошёл, первым вышел" (FIFO), подобно очереди в ожидании. Первый элемент, помещённый в очередь, является первым, кто будет удалён. Напротив, стек следует принципу "последним вошёл, первым вышел" (LIFO). Это аналогично стопке тарелок, где верхняя тарелка является первой, которая будет взята. В программировании последний элемент, добавленный в стек, является первым, кто будет получен. Python предлагает способы реализации как стеков, так и очередей. Для операций со стеком можно использовать стандартный список Python. Это использует встроенные методы списка append и pop. Для операций с очередью рекомендуется использовать объект deque из модуля collections. Дек предоставляет эффективные операции добавления и удаления с обоих концов структуры."
Редакторы кода, работающие на основе ИИ, революционизируют разработку на Python, интегрируя ИИ непосредственно в рабочие процессы. Cursor и Windsurf - известные форки VS Code, которые предлагают эту бесшовную интеграцию. Хотя оба они импортируют настройки VS Code и используют продвинутые модели ИИ, они существенно различаются в подходе к изменению кода. Cursor отдает приоритет контролю пользователя, представляя изменения, сгенерированные ИИ, в виде просматриваемых diff перед их применением, и полагается на явные правила поведения ИИ.Напротив, Windsurf подчеркивает непрерывность, применяя правки непосредственно в редакторе и используя более широкий контекст рабочего пространства, включая вывод терминала и историю разговоров, для руководства своими действиями. Сравнение этих редакторов будет охватывать автозаполнение кода с помощью ИИ, агентное редактирование нескольких файлов и возможности отладки. Cursor идеален для пользователей, которые предпочитают просматривать изменения перед их реализацией, тогда как Windsurf подходит тем, кто хочет, чтобы ИИ применял правки непосредственно при работе в комплексном контексте рабочего пространства.Cursor предлагает более быстрое, пошаговое автозаполнение кода с помощью ИИ и меньшее использование ресурсов, что делает его подходящим для меньших баз кода. Windsurf обеспечивает более осведомленное о структуре автозаполнение по нескольким взаимосвязанным файлам и использует семантическую карту для индексирования, что выгодно для более крупных проектов, но требует больше ресурсов изначально. Оба редактора имеют платные планы по 20 долларов в месяц, с бесплатными тарифными планами, доступными для изучения. Установка обоих редакторов проста и включает в себя скачивание приложения и необязательный импорт конфигураций VS Code.
CdXz5zHNQW_AAH5sMMiqO.jpeg
Чтобы визуально отобразить статус устройства в QTableView, вы можете выделить целые строки, настроив метод data() модели. Представление QTableView запрашивает у модели различные роли данных для каждой ячейки, включая Qt.BackgroundRole. Возвращая QColor из метода data() вашей модели при запросе Qt.BackgroundRole, на основе условий в данных строки, вы можете установить цвет фона. Важно отметить, что этот цвет применяется ко всем ячейкам этой строки, поскольку метод data() вызывается для каждой ячейки, и решение о цвете не зависит от индекса столбца. Пример демонстрирует это, окрашивая строки в синий цвет для статуса "NewConnection" и в зеленый для статуса "Registered". Чтобы обеспечить читаемость текста на цветном фоне, вы также можете обрабатывать Qt.ForegroundRole и возвращать контрастный цвет текста. Если данные изменяются динамически, вы должны выпустить сигнал dataChanged из модели, чтобы побудить представление перерисовать и отобразить обновленные цвета строк. Этот подход обеспечивает четкий, основанный на данных метод выделения строк в QTableView.
Плагин для PyCharm под названием "Full Line Completion" использует локальную модель глубокого обучения для предложения целых строк кода. Автор протестировал эту функцию и обнаружил, что она предлагала небезопасные фрагменты кода. Изначально плагин предлагал отключить предупреждения о небезопасных запросах при использовании urllib3. Затем он предложил отключить проверку сертификатов, что подвергло бы приложения атакам типа "человек посередине". Автор сообщил об этом поведении в JetBrains, которые сочли это не "прямой уязвимостью безопасности". Однако JetBrains попросили автора не публиковать отчет, ссылаясь на свою Политику скоординированного раскрытия информации. После 90-дневного периода ожидания автор обнаружил, что поведение не изменилось в более новой версии плагина. Автор считает, что подобные проблемы существуют в различных моделях генерации кода и сами по себе не являются уязвимостью безопасности, заслуживающей CVE. Тем не менее, они утверждают, что устранение этих небезопасных предложений у источника имеет решающее значение для предотвращения случайного принятия пользователями уязвимого кода. Автор ищет мнения сообщества по этому классу проблем с моделями генерации кода.
Я давно являюсь убежденным сторонником Open Source, в том числе экспериментируя с его финансированием. Я искренне верю в то, что Open Source в конечном итоге всегда побеждает, но не автоматически и не быстро. В настоящее время он испытывает трудности из-за наплыва ИИ-мусора, меняющейся динамики среди контрибьюторов, снижения стоимости производства кода и того, что крупные компании учатся закрывать двери за собой.Большая часть сегодняшней борьбы заключается в манипулировании нарративом. Мнения лидеров в социальных сетях и деловых кругах все чаще представляют доступ как безответственность. Вот почему DMA ЕС имеет значение, даже если многие люди (включая меня) инстинктивно ненавидят регулирование ЕС. Борьба Apple за задержку функций ИИ в Европе — это не потому, что Брюссель раздражает: это вопрос о том, смогут ли пользователи получить доступ к своим устройствам и данным. Телефон ваш, данные ваши, но Apple решает, кто может получить к ним доступ, и лишает вас этой возможности, а затем пытается представить это так, будто это в ваших интересах (якобы ради вашей безопасности).Чем ближе вы подходите к ядру ИИ, тем больше это проявляется. Anthropic имеет все финансовые стимулы ограничивать то, что люди могут делать с Mythos и Fable, и они облекают эти ограничения в язык безопасности и (национальной) безопасности. Некоторые ограничения могут быть оправданы, но не все. Они обучали свои модели на общедоступных работах, а затем блокируют попытки Open Source учиться и анализировать эти системы.Неприязнь к ЕС, Китаю или любому другому крупному правительству не должна заставлять нас забывать, что истинный демократизированный доступ к технологиям, включая ИИ, отвечает интересам всех нас. Некоторые временные неудобства с продуктами, включая задержку функций ИИ от Apple, будут стоить того, если это поможет сохранить открытые двери. Мы не должны позволять компаниям владеть нарративом о том, что предотвращение доступа отвечает нашим интересам, особенно как европейцы, где шансы уже не в нашу пользу из-за наших неразвитых рынков капитала, утечки мозгов и внутренних распрей.