Информация о релизе Zope 2.10.9

Описание релиза python-фреймворка Zope 2.10.9.

Вы можете загрузить исходники и Windows-версию: http://www.zope.org/Products/Zope/2.10.9/

Некоторые новые возможности Zope 2.10:

  • реализация ZPT основана на Zope 3;
  • экспериментальная интеграция WSGI и Twisted;
  • интеграция с Zope 3.3, Five 1.5;
  • сервер времени;
  • некоторые незначительные улучшения и исправления;
  • замена некоторых модулей Zope 2 аналогами из Zope 3.

Более подробная информация доступна в CHANGES.txt.

Вы можете сообщать об ошибках в релизе через трекере:

http://collector.zope.org/Zope

За подробной информацией о доступных релизах Zope, руководству по выборе дистрибутива и инструкциями по установке, обращайтесь:

http://www.plope.com/Books/2_7Edition/InstallingZope.stx

Поддерживаемые версии Python

Zope 2.10 требует Python 2.4.5 или выше (Python 2.4.4 ещё поддерживается). Более старые версии Python более не поддерживаются. Python 2.5 пока не поддерживается.

Юникод-миграция ZPT

Начиная с Zope 2.10.2 реализация ZPT использует юникод для внутреннего представления. Для этого ZPT выполняет миграцию контента в юникод «на лету». Код миграции должен автоматически определять кодировки ISO-8859-15 и UTF-8. Для других кодировок требуется устанавливать переменную окружения ZPT_PREFERRED_ENCODING. Код миграции применяется только к инстанции ZopePageTemplate.

Обязательно требуется выполнять резервное копирование перед использованием Zope 2.10.2 или выше

Миграция в юникод ZPT также исправляет различные проблемы с FTP и Webdav. При загрузке ZPT контента через FTP или WebDAV, контент преобразуется, используя свойство output_encoding соответствующей инстанции ZopePageTemplate.

Метод pt_render() теперь всегда возвращает Python-строку в unicode. Перекодирование обработанного ZPT (через HTTP) определяется через

  • charset=XXXX в HTTP-заголовке content-type;
  • etc/zope.conf: default-zpublisher-encoding;
  • по умолчанию: iso-8859-15.

Чтобы избежать UnicodeDecodeErrors, добавлен механизм разрешения колфликтов перекодировки - resolver. Этот Resolver предназначен для преобразования не-юникод строк в Python-строки в unicode по некоторой политике. Политика по умолчанию (как определено в  PageTemplates.unicodeconflictresolver.PreferredCharsetResolver) пытается преобразовать заданную строку, используя следующие кодировки:

  • кодировку из заголовка HTTP_ACCEPT_CHARSET;
  • свойство management_page_charset, если доступно;
  • кодировку по умолчанию для Python (возвращается sys.getdefaultencoding()).

Так же доступны некоторые другие механизмы разрешения конфликтов. Resolver настроен, как утилита Zope 3 в Products/PageTemplates/configure.zcml и может быть переопределён Вашим собственным файлом overrides.zcml.

Вам также может помочь