Информация о релизе 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.