Как обычно, октябрь в этом году был насыщен событиями для сообщества Python. Была выпущена окончательная версия Python 3.11, несколько бета-версий популярных библиотек Python и некоторые интересные разработки сообщества Python.
Вот краткий обзор самых интересных событий октября 2022 года.
[python_ad_block]Безусловно, самым захватывающим событием этого месяца стал выпуск Python 3.11, затмивший несколько других интересных новостей. Несколько лет назад для ежегодных релизов Python был выбран октябрь, что сделало цикл обновлений более предсказуемым.
Первоначально релиз Python 3.11 был запланирован на 3 октября. К сожалению, из-за непредвиденных проблем он был отложен. Чтобы увидеть этот крупный релиз Python, миру пришлось ждать еще 3 недели, до 24 октября.
Эта версия включает в себя множество новых функций и обещает значительные улучшения производительности, которые будут продолжены в будущих версиях для достижения еще лучших результатов.
В статье What’s New In Python 3.11 дается обзор того, что изменилось по сравнению с предыдущей версией языка. Python 3.11 changelog содержит более подробную информацию со ссылками на GitHub и соответствующие коммиты кода.
Если вкратце, то вот самые полезные новые функции в Python 3.11:
Несмотря на то, что Python 3.11 уже вышел, пройдет некоторое время, прежде чем компании и поставщики облачных услуг начнут его масштабное использование.
Обновление среды исполнения всегда сопряжено с риском и может привести к простою, потере данных или другим непредвиденным проблемам. Именно поэтому армия США отказывается обновлять свое старое программное обеспечение на критически важном оборудовании.
В то же время стоит отметить, что некоторые основные библиотеки Python, особенно в области data science, начали поддерживать Python 3.11 и тщательно протестировали его перед официальным выпуском. Это означает, что пользователи этих библиотек смогут безопасно перейти на Python 3.11 и начать пользоваться преимуществами новых языковых возможностей.
Экосистема Python также продолжает развиваться, и новые версии библиотек выходят каждый месяц. Нам стал доступен релиз pytest 7.2.0, а SQLAlchemy 2.0 наконец-то выпущен в бета-версии. Библиотека NetworkX также выпустила бета-версию своей следующей основной версии.
В конце октября opensource-сообщество выпустило новый релиз pytest, одной из самых распространенных библиотек для тестирования в Python. Эта версия несет в себе несколько улучшений, нацеленных на повышение «качества жизни» разработчика.
В частности, pytest больше не распознает модульные тесты, написанные для библиотеки nose, которая также раньше часто использовалась для тестирования. Так как разработка этой библиотеки застопорилась, а обслуживание уровня совместимости pytest-nose становится все дороже по мере развития pytest, разработчики pytest решили отказаться от поддержки nose.
Таким образом, вам следует прекратить использовать в pytest-методы .setup()
и .teardown()
в модульных тестах на основе классов. Хотя они пока будут продолжать работать в соответствии с графиком деприкации, использовать их не рекомендуется. Аналогичные методы, встроенные в pytest, имеют немного другие имена, но в остальном должны вести себя так же.
Кроме того, теперь pytest распознает альтернативу файлу конфигурации pytest.ini, который может быть скрыт в Unix-подобных операционных системах. Это означает, что необязательно начинать имя файла с точки:
# .pytest.ini [pytest] python_functions = should_*
Еще одно примечательное изменение заключается в том, что параметр конфигурации testpaths
будет поддерживать расширение шаблона пути в стиле Unix с использованием модуля Python glob
:
[pytest] testpaths = src/*/unit_tests src/*/integration_tests src/*/system_tests **/tests
Символ звездочки (*) соответствует любому количеству символов, а двойная звездочка (**) рекурсивно соответствует каталогам.
Эта функция может оказаться особенно удобной в большом репозитории, так называемым монорепозитории, который включает в себя несколько проектов, использующих одну и ту же структуру каталогов.
Чтобы узнать больше про данный релиз, можно ознакомиться с полным журналом изменений на официальном сайте. Там есть много других интересных улучшений, исправлений ошибок и обновлений.
В октябре состоялся релиз предварительной версии SQLAlchemy 2.0. Это означает долгожданный отказ от устаревших интерфейсов и переход к использованию современных шаблонов Python. Интерес, выраженный в количестве ежедневных загрузок данной версии, превзошел все ожидания. А дополнительный выпуск с несколькими исправлениями вышел всего через неделю.
SQLAlchemy — очень популярный фреймворк, предоставляющий низкоуровневые абстракции и высокоуровневый объектно-реляционный преобразователь (ORM) для согласованного перемещения данных между Python и различными реляционными базами данных. В то же время он предоставляет подходы, уникальные для конкретных типов баз данных. Платформа помогает автоматизировать повторяющиеся шаблонные операторы SQL, которые неизбежны в большинстве приложений.
Полный набор функций и архитектура SQLAlchemy 2.0 уже давно доступны в переходной версии 1.4, которая обеспечивает мост между старым и новым интерфейсами. Используя текущую стабильную версию платформы, можно включить режим деприкации SQLAlchemy 2.0, чтобы получать уведомления о всевозможных несовместимостях и проблемах, прежде чем окончательно переключиться на следующее поколение SQLAlchemy.
Первое и самое важное изменение — это отказ от поддержки Python 2, а также очистка кодовой базы от старого хлама, что упрощает поддержку фреймворка в будущем.
SQLAlchemy будет работать только на Python 3.7 (и старше). Также он будет использовать для управления своими ресурсами преимущества современных синтаксических конструкций, например, менеджер контекста.
Еще одним заметным улучшением является добавление асинхронного слоя поверх классического API для блокирующих запросов в SQLAlchemy.
Интеграция с асинхронным вводом-выводом Python позволит фреймворку работать в асинхронных веб-приложениях. Ранее они не могли использовать преимущества SQLAlchemy, если он не был включен в пул потоков. Это также должно открыть данную библиотеку для людей, которые прежде ее не рассматривали.
Новый механизм кэширования скомпилированных операторов SQL также ускорит выполнение кода. Это позволит в дальнейшем улучшать основной движок, что раньше было невозможно из-за ограничений по времени выполнения.
И последнее, но не менее важное: фреймворк предоставит новые унифицированные API, чтобы сузить альтернативные способы достижения одной и той же цели в более подробном и явном стиле кодирования.
Идея состоит в том, что программист всегда должен знать, что он делает и почему он это делает, вместо того, чтобы быть изолированным от базового SQL. Поэтому интерфейсы, которые давно устарели, но продолжали использоваться, в данной версии удалены.
Официальная документация содержит подробные инструкции по миграции вашего кода на следующее поколение SQLAlchemy. Помните, что SQLAlchemy 2.0 все еще находится в разработке и до конца может быть не готов к работе, поэтому пока не спешите обновляться!
И еще один бета-релиз был анонсирован в прошлом месяце. NetworkX, популярная библиотека данных для создания и анализа графиков и сетей на Python, получила новую мажорную версию.
Бета-версия NetworkX 3.0 — это важное событие, направленное на решение проблемы многолетнего технического долга посредством тщательного удаления старого кода. В качестве побочного эффекта ядро библиотеки больше не зависит от каких-либо сторонних пакетов.
Оптимизация и модернизация кода библиотеки снизит планку входа для новых пользователей и улучшит ее производительность.
Кроме того, NetworkX 3.0 теперь более тесно интегрирован с другими популярными научными библиотеками, такими как NumPy, Matplotlib, pandas и SciPy. Алгоритмы, которые ранее были реализованы в NetworkX, теперь выиграют от этих интеграций.
В прошлом месяце сообщество Python жило полной жизнью. PyCon US 2023 уже принимает заявки, открыто свежее исследование Python Developers Survey 2022, назначен новый менеджер по выпуску Python. Кроме того, Эл Свейгарт выпустил новую книгу.
Подготовка к крупнейшей ежегодной конференции Python уже началась, и питонисты всего мира с нетерпением ждут этого события.
Как и конференция в начале этого года, PyCon US 2023 вернется в Солт-Лейк-Сити и будет проходить очно, с соблюдением правил техники безопасности и охраны труда, а также онлайн.
Конференция следующего года пройдет с 19 по 27 апреля и будет посвящена двадцатой годовщине PyCon US:
На PyCon любой желающий может выступить с речью или активно участвовать как-то иначе, независимо от уровня своего опыта. Вы можете отправить свое предложение, выбрав один из следующих типов презентации:
Последний срок подачи индивидуальных заявок – 9 декабря 2022 года.
Чтобы быть в курсе последних событий, читайте блог PyCon US или подпишитесь на PyCon US в Твиттере.
Если вы планируете принять участие, обязательно ознакомьтесь с руководством Real Python’s PyCon US, чтобы узнать, как получить максимальную отдачу от конференции.
Шестой год подряд Python Software Foundation (PSF) проводит официальный опрос разработчиков Python, чтобы получить представление о сообществе Python и узнать, как оно развивается.
В частности, опрос помогает собрать отзывы о состоянии языка Python и его экосистемы, а также о том, как они используются такими людьми, как вы. Если вам интересно, то можно ознакомиться с результатами прошлого года.
Опрос адаптивный, поэтому точное количество вопросов и их объем будут зависеть от вашего предыдущего ответа. Однако его заполнение не должно занимать более 10-15 минут:
Вопросы касаются самых разных тем, начиная от вашей роли и опыта и заканчивая практиками разработки программного обеспечения, инструментами и библиотеками, которые ваша организация использует и с какой частотой их применяет.
Большинство вопросов предполагают множественный выбор, некоторые являются взаимоисключающими, а на некоторые из них предлагается написать краткий ответ своими словами.
Примечание: Как и в предыдущие годы, PSF сотрудничает с JetBrains для решения ряда технических вопросов, таких как размещение опроса и обработка ответов людей. JetBrains — компания, стоящая за PyCharm, популярной IDE для Python.
Если у вас есть несколько свободных минут, подумайте о том, чтобы поделиться своими ответами. Оно того стоит!
Обратите внимание, что в этом году будет проводиться лотерея, поэтому, чтобы принять участие в розыгрыше, убедитесь, что вы правильно указали свой адрес электронной почты в конце опроса!
Существует негласное правило, что один и тот же человек управляет двумя последовательными релизами Python. Над двумя последними выпусками работал Пабло Галиндо Сальгадо (Pablo Galindo Salgado), основной разработчик CPython, работающий в Руководящем совете Python.
Пабло ввел в обиход идею прямой трансляции процесса релиза для общественности. Выпуск Python 3.11 транслировался на YouTube и по-прежнему доступен для просмотра:
Носить забавные шляпы стало ключевой фишкой вечеринок, посвященных выпуску Python. Надеемся, традиция продолжится!
Однако после двух лет подряд пришло время перемен. Выпусками Python 3.12 и Python 3.13 будет управлять Томас Воутерс (Thomas Wouters) — еще один опытный разработчик ядра в Руководящем совете Python. Кроме того, он является членом совета директоров Python Software Foundation (PSF).
Томас уже попробовал свои силы в выпуске первой альфа-версии Python 3.12 сразу после выпуска 3.11. Исходный код можно найти на GitHub по тегу v3.12.0a. Кроме того, если хотите попробовать, можно установить Python 3.12 alpha 1 через Docker или pyenv. Однако имейте в виду, что это еще сырая предварительная версия, которая не несет существенных изменений.
Удачи в новой роли, Томас! Ждем с нетерпением новые функции и улучшения, которые принесет Python 3.12.
Эл Свейгарт — весьма плодовитый технический писатель, написавший несколько книг по Python. В том числе такую популярную книку, как Automate the Boring Stuff with Python. Ее можно найти на Amazon. В то же время автор великодушно выкладывает бесплатно на своем сайте все свои книги по лицензии Creative Commons в электронном виде.
В его последней книге «Python Programming Exercises, Gently Explained» используется практический подход к обучению Python. Новичкам предлагается решить 42 задачи:
Если вы застряли в освоении Python, то эти упражнения по программированию могут стать идеальным ресурсом, который поможет вам двигаться дальше.
Кстати, количество упражнений в книге выбрано не случайно. Число 42 — внутренняя шутка среди программистов. Это число используется в качестве значения-заполнителя для чисел, так же, как слово foobar служит заполнителем для строк.
Наконец, если вы встретите автора этой книги на PyCon US, не стесняйтесь поболтать с ним! Эл очень доступный и дружелюбный человек, которому наверняка будет интересно с вами пообщаться.
Итак, какая ваша любимая новость о Python за октябрь? Мы пропустили что-нибудь примечательное? Собираетесь ли вы перейти на Python 3.11 или вам еще рано? Вы уже принимали участие в опросе разработчиков Python 2022? Планируете ли вы посетить конференцию PyCon US в следующем году? Сообщите нам об этом в комментариях!
Счастливого питонинга!
Перевод статьи Bartosz Zaczynski Python News: What’s New From October 2022.
Управление памятью - важный, но часто упускаемый из виду аспект программирования. При неправильном подходе оно…
Как возникает круговой импорт? Эта ошибка импорта обычно возникает, когда два или более модуля, зависящих…
Вы когда-нибудь оказывались в ситуации, когда скрипт на Python выполняется очень долго и вы задаетесь…
В этом руководстве мы разберем все, что нужно знать о символах перехода на новую строку…
Блок if __name__ == "__main__" в Python позволяет определить код, который будет выполняться только при…
Давайте разберем, как настроить модульные тесты для экземпляров классов. Мы напишем тесты для проверки функциональности…