Релиз языка программирования Python 3.2

21 февраля 2011 года

Доступен релиз языка программирования Python 3.2, основные усилия при подготовке которого были направлены на увеличение стабильности, расширение возможностей стандартной библиотеки и упрощение процесса портирования скриптов, написанных для ветки Python 2.x. Так как двухгодичный мораторий на изменение синтаксиса языка истекает 26 июня 2011 года, то версии 3.2 полностью обратно совместима с веткой Python 3.1 и не содержит изменений синтаксиса, семантики и встроенных функций (тем не менее отмечается несколько изменений во встроенных типах). Напомним, что после выхода выпуска 2.7 добавление новшеств в ветку Python 2.x прекращено, но ошибки будут исправляться вплоть до 2015 года.

Из улучшений, добавленных в Python 3.2, можно отметить:

  • Расширение возможностей модуля unittest: реализована возможность обращения к модулям с тестами по файловому пути (python -m unittest discover -s my_proj_dir -p _test.py), а не только по имени; добавлены новые методы (assertCountEqual, assertWarns и assertWarnsRegex); реализована интерактивная командная строка для проведения ручных тестов; переработаны тексты сообщений, которые теперь более явно отражают причины сбоя; для более точного отражения выполняемых функций переименованы некоторые имена методов (например, вместо assert_ представлен assertTrue, вместо assertEquals - assertEqual);
  • Реализована поддержка привязанных к версии интерпретатора отдельных репозиториев для .pyc-файлов, используемых для кэширования байткода ( PEP 3147). Вынос pyc-файлов в отдельные директории позволяет решить проблему с использованием нескольких Python-интерпретаторов (2.x и 3.x) для выполнения одних скриптов, что ранее приводило к постоянному обновлению кэшей;
  • Поддержка привязанных к номеру версии Python ABI динамических библиотек ( PEP 3149), что позволяет использовать свой набор библиотек для различных версий и реализаций Python (CPython, PyPy, Jython);
  • Представлено новое пространство имен "concurrent" для организации параллельного программирования. Первым для данного пространства представлен модуль concurrent.futures ( PEP 3148) с набором высокоуровневых функций для управления нитями и процессами. В будущем число модулей concurrent.* будет расширено;
  • Для модулей-расширений представлен ограниченный ABI (Py_LIMITED_API), который объявлен стабильным ( PEP 384), что позволит решить проблему работоспособности сборок модулей-расширений для разных версий Python (при обновлении версии ранее приходилось пересобирать все модули-расширения. При использовании Py_LIMITED_API модули собранные для 3.2, смогут работать в ветках 3.3 и 3.4);
  • Базирующийся на словарях метод logging.config.dictConfig для определения конфигурации модуля для обработки логов ( PEP 391);
  • Переработанная реализация GIL-блокировки (Global Interpreter Lock), оптимизированная для обеспечения параллельного выполнения нескольких Python-потоков на системах с многоядерными CPU;
  • В пакете email и модулях mailbox/nntplib добавлена поддержка модели bytes/text Python 3, что позволяет корректно обрабатывать сообщения в смешанных однобайтных и многобайтных кодировках;
  • Значительно улучшен модуль для обеспечения работы защищенных SSL-соединений, в который добавлен менеджер SSL-контекста;
  • Для доступа к системной информации, такой как файловые пути и специфичные для платформы опции, добавлен модуль sysconfig;
  • В модуле shutil добавлена поддержка работы с архивами в формате ZIP, TAR, GZIP и BZIP;
  • Значительно изменен модуль configparser, который переведен на использование нового протокола определения структуры конфигурации, основанного на маппинге значений;
  • Множественные исправления, возникающие из-за разделения типов bytes/string и особенностей обработки числовых операций в Python 3.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Релиз языка программирования Python 3.2», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.