Размер: 6663
Комментарий:
|
Размер: 12228
Комментарий:
|
Удаления помечены так. | Добавления помечены так. |
Строка 46: | Строка 46: |
The pluggable object copying mechanism once developed in the zc.copy package was merged back into zope.location, zope.copypastemove and the new zope.copy package. The zope.copy package now provides a pluggable mechanism for copying objects from zc.copy and doesn’t depend on anything but zope.interface. The zope.copypastemove uses the copy function from zope.copy in its ObjectCopier. | Подключаемый механизм копирования, изначально разрабонанный как ''zc.copy'' был объединен с ''zope.location'', ''zope.copypastemove'' и новым пакетом ''zope.copy''. Пакет ''zope.copy'' теперь обеспечивает подключаемый механизм копирования объектов из ''zc.copy'' и не зависит ни от чего, кроме ''zope.interface''. Пакет ''zope.copypastemove'' использует функцию копирования из ''zope.copy'' в своем классе '''!ObjectCopier'''. |
Строка 48: | Строка 48: |
The zope.location now provides an ICopyHook adapter that implements conditional copy functionality based on object locations, that old zope.location.pickling.CopyPersistent used to provide. Note, that if you don’t use ZCML configuration of zope.location, you may need to register zope.location.pickling.LocationCopyHook yourself. | Пакет ''zope.location'' теперь предоставляет адаптер '''ICopyHook''', который реализует механизм условного копирования, основанного на местоположениях (locations) объекта, который раньше обеспечивался с помощью ''zope.location.pickling.!CopyPersistent''. Заметьте, если вы не используете ZCML конфигурацию ''zope.location'', вам придется зарегистрировать ''zope.location.pickling.!LocationCopyHook'' вручную. |
Строка 50: | Строка 50: |
The zope.location.pickling.locationCopy and zope.location.pickling.CopyPersistent are now deprecated in favor of zope.copy and were replaced by backward-compatibility imports. See zope.copy package documentation for information on how to use the new mechanism. | Хотя ''zope.location.pickling.locationCopy'' и ''zope.location.pickling.!CopyPersistent'' и устарели в связи с появлением ''zope.copy'', была добавлена обратная совместимость импортов. Обратитесь к документации по пакету ''zope.copy'' для получения информации об использовании нового механизма. |
Строка 52: | Строка 52: |
The new version of the zc.copy package now only contains backward-compatibility imports and is deprecated. zope.copy should be preferred for new developments. | Новая версия пакета ''zc.copy'' теперь содержит только импорты для поддержки обратной совместимости и является устаревшей (deprecated). Для новых разработок используйте ''zope.copy''. |
Строка 54: | Строка 54: |
=== Рефакторинг zope.app.security === | |
Строка 55: | Строка 56: |
Пакет ''zope.app.security'' был полностью отрефакторен и разбит на несколько мелких частей с целью уменьшения зависимостей и прояснения целей использования. Реализация ZCML директивы '''<module>''' перенесена в пакет ''zope.security''. Пакеты, в которых присутствовали зависимости от ''zope.app.security'' c целью доступа к использованию этой директивы, должны объявить прямую зависимость от ''zope.security'', что также даст возможность полностью избавится зависимости от ''zope.app.security''. Модуль ''protectclass'' этого пакета перенесен в ''zope.security'' с сохранением импотов для обратной совместимости. Пересмотрите ваши импорты из ''zope.app.security'', чтобы узнать, нельзя ли заменить их на прямые импорты из ''zope.security''. Все интерфейсы ('''IAuthentication''', '''IUnauthenticatedPrincipal''', '''ILoginPassword'' и т.д.) перенесены в новый пакет ''zope.authentication'' наряду с несколькими вспомагательными вещами, такими как '''PrincipalSource''' и функцией '''checkPrincipal'''. Новый пакет имеет намного меньше зависимостей и определяет вбстрактные соглашения для реализации аутентификации внутри фреймворка Zope. Хотя импорты, обеспечивающие обратную совместимость, оставлены, настоятельно рекоммендуется обновить ваши импорты с целью использования пакета ''zope.authentication''. Глобальный реестр пользователей (principal) и их ZCML директивы перенесены в новый пакет ''zope.principalregistry'' с сохранением обратной совместимости импортов. Если ваше приложение использует глобальных пользователей (principals), пересмотрите свой код и ZCML конфигурацию, на предмет обновления путей. Функциональность локальной системы прав перенесена в пакет ''zope.app.localpermission''. Эта функциональность является частью шаблона разработки '''Through-The-Web''', которая больше не используется и не поддерживается в Zope Toolkit и Application, так что может считаться устаревшей. Как бы там ни было, она может служить прекрасным примером TTW компонента. Словари прав и стандартные методы защиты для объектов '''Message''' и аттрибутов ''__name__'', ''__parent__'', наряду с основными общими правами, такими как '''zope.View''' и '''zope.ManageContent''' слиты в пакет ''zope.security''. Адаптеры из пакета ''zope.publisher'': интерфейсов '''IHTTPCredentials''' и '''IFTPCredentials''' к интерфейсу '''ILoginPassword''' перемещены в ''zope.publisher'', вместе с тем создавая зависимость ''zope.publisher'' от ''zope.authentication''. The original zope.app.security package now only contains several deprecated or application-specific permission definitions, python module protections, that are only likely to be needed with deprecated Through-The-Web development pattern, and ZMI-related browser views (login.html, zope.app.form view for PrincipalSource and so on), as well as backward-compatibility imports. So, if you’re not using TTW and/or standard ZMI browser views, you probably should review update your imports to a new places and drop dependency on zope.app.security to reduce package dependencies count. Other packages, that used zope.app.security, like zope.securitypolicy are either already adapted to the changes or will be adapted soon. |
Что нового в Bluebream 1.0
Содержание
-
Что нового в Bluebream 1.0
-
Вопросы миграции
- zope.app.keyreference -> zope.keyreference
- zope.app.intid -> zope.intid
- zope.app.catalog -> zope.catalog
- zope.app.container -> zope.container
- zope.app.component -> zope.security, zope.site
- zope.app.folder -> zope.site, zope.container
- zc.copy -> zope.copy, zope.copypastemove, zope.location
- Рефакторинг zope.app.security
-
Вопросы миграции
Вопросы миграции
zope.app.keyreference -> zope.keyreference
Этот пакет был переименован в zope.keyreference и туда переехала вся функциональная часть. Новый пакет содержит небольшой обходной путь (workaround) для поддержки загружаемости старых персистентных keyrerefences без установки пакета zope.app.keyreference, так что последний теперь не нужен вообще. И все-таки мы настоятельно рекомендуем пересмотреть свой программный код на наличие импортов из zope.app.keyreference и поменять их на импорты из zope.keyreference.
zope.app.intid -> zope.intid
Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, была перенесена в zope.intid с сохранением обратной совместимости импортов. Пересмотрите все ваши импорты из zope.app.intid, чтобы узнать, нельзя ли их заменить на прямые импорты из zope.intid.
zope.app.catalog -> zope.catalog
Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, была перенесена в zope.catalog. Пересмотрите все ваши импорты из zope.app.catalog, чтобы узнать, нельзя ли их заменить на прямые импорты из zope.catalog.
zope.app.container -> zope.container
Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, была перенесена в zope.container. Пересмотрите все ваши импорты из zope.app.container, чтобы узнать, нельзя ли их заменить на прямые импорты из zope.container.
Вдобавок, исключения, которые импользуются в zope.container были изменены, так что если ваш код их отлавливает, вам нужно их пересмотреть:
DuplicationError в методе setitem изменено на KeyError.
UserError в NameChooser изменено на ValueError.
zope.app.component -> zope.security, zope.site
Реализация ZCML директивы <class> перенесена из этого пакета в zope.security. Пакеты, которые получали эту директиву из zope.app.component должны объявить прямую зависимость от zope.security, тем самым получив возможность полностью избавится зависимости от zope.app.component.
Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, перенесена в пакет zope.site с сохранением обратной совместимости импортов. Пересмотрите все ваши импорты из zope.app.component, чтобы узнать, нельзя ли заменить их на прямые импорты из zope.site.
zope.app.folder -> zope.site, zope.container
Реализация класса zope.app.folder.Folder перенесена в zope.site.folder с сохранением обратной совместимости по импортам. Пересмотрите все ваши импорты из zope.app.folder, чтобы узнать, нельзя ли заменить их на прямые импорты из zope.site.
Вдобавок, Folder становится реализацией интерфейса IContainer, который также является частью примеси функционала управления сайтом. В некоторых случаях, когда поддержка функционала управления сайтом не нужна, вы можете обойтись без класса Folder, используя вместо него "чистую" реализацию этого интерфейса - Container из пакета zope.container.
Базовый класс с реализацией контейнерного поведения класса Folder перенесен в zope.container (а zope.site ипользует его для реализации Folder). Мы не считаем это изменение таковым, для которого необходимо сохранять обратную совместимость.
zc.copy -> zope.copy, zope.copypastemove, zope.location
Подключаемый механизм копирования, изначально разрабонанный как zc.copy был объединен с zope.location, zope.copypastemove и новым пакетом zope.copy. Пакет zope.copy теперь обеспечивает подключаемый механизм копирования объектов из zc.copy и не зависит ни от чего, кроме zope.interface. Пакет zope.copypastemove использует функцию копирования из zope.copy в своем классе ObjectCopier.
Пакет zope.location теперь предоставляет адаптер ICopyHook, который реализует механизм условного копирования, основанного на местоположениях (locations) объекта, который раньше обеспечивался с помощью zope.location.pickling.CopyPersistent. Заметьте, если вы не используете ZCML конфигурацию zope.location, вам придется зарегистрировать zope.location.pickling.LocationCopyHook вручную.
Хотя zope.location.pickling.locationCopy и zope.location.pickling.CopyPersistent и устарели в связи с появлением zope.copy, была добавлена обратная совместимость импортов. Обратитесь к документации по пакету zope.copy для получения информации об использовании нового механизма.
Новая версия пакета zc.copy теперь содержит только импорты для поддержки обратной совместимости и является устаревшей (deprecated). Для новых разработок используйте zope.copy.
Рефакторинг zope.app.security
Пакет zope.app.security был полностью отрефакторен и разбит на несколько мелких частей с целью уменьшения зависимостей и прояснения целей использования.
Реализация ZCML директивы <module> перенесена в пакет zope.security. Пакеты, в которых присутствовали зависимости от zope.app.security c целью доступа к использованию этой директивы, должны объявить прямую зависимость от zope.security, что также даст возможность полностью избавится зависимости от zope.app.security.
Модуль protectclass этого пакета перенесен в zope.security с сохранением импотов для обратной совместимости. Пересмотрите ваши импорты из zope.app.security, чтобы узнать, нельзя ли заменить их на прямые импорты из zope.security.
Все интерфейсы (IAuthentication, IUnauthenticatedPrincipal, ILoginPassword и т.д.) перенесены в новый пакет zope.authentication наряду с несколькими вспомагательными вещами, такими как PrincipalSource и функцией checkPrincipal. Новый пакет имеет намного меньше зависимостей и определяет вбстрактные соглашения для реализации аутентификации внутри фреймворка Zope. Хотя импорты, обеспечивающие обратную совместимость, оставлены, настоятельно рекоммендуется обновить ваши импорты с целью использования пакета zope.authentication. Глобальный реестр пользователей (principal) и их ZCML директивы перенесены в новый пакет Функциональность локальной системы прав перенесена в пакет Словари прав и стандартные методы защиты для объектов Адаптеры из пакета The original zope.app.security package now only contains several deprecated or application-specific permission definitions, python module protections, that are only likely to be needed with deprecated Through-The-Web development pattern, and ZMI-related browser views (login.html, zope.app.form view for PrincipalSource and so on), as well as backward-compatibility imports. So, if you’re not using TTW and/or standard ZMI browser views, you probably should review update your imports to a new places and drop dependency on zope.app.security to reduce package dependencies count. Other packages, that used zope.app.security, like zope.securitypolicy are either already adapted to the changes or will be adapted soon.