zope.publisher allows you to publish Python objects on the web. It has support for plain HTTP/WebDAV clients, web browsers as well as XML-RPC and FTP clients. Input and output streams are represented by request and response objects which allow for easy client interaction from Python. The behaviour of the publisher is geared towards WSGI compatibility.
Some parts of zope.app.publisher packages was moved into this package during zope.app.publisher refactoring:
- IModifiableUserPreferredLanguages adapter for requests
- browser:defaultView and browser:defaultSkin ZCML directives
- IHTTPView, IXMLRPCView and like interfaces
- security ZCML declarations for some of zope.publisher classes
Introduced IReRaiseException interface. If during publishing an exception occurs and for this exception an adapter is available that returns False on being called, the exception won't be reraised by the publisher. This happens only if handle_errors parameter of the publish() method is set to False. Fixes problems when acting in a WSGI pipeline with a debugger middleware enabled.
See https://bugs.launchpad.net/grok/+bug/332061 for details.
Fix #98471: Restrict redirects to current host. This causes a ValueError to be raised in the case of redirecting to a different host. If this is intentional, the parameter trusted can be given.
Moved dependency on zope.testing from install_requires to tests_require.
Removed behavior of doing a time.sleep in the supportsRetry http request.
Add a fix for Internet Explorer versions that upload files will full filesystem paths as filenames.
Add an adapter from zope.security.interfaces.IPrincipal to zope.publisher.interfaces.logginginfo.ILoggingInfo. It was moved from zope.app.security as a part of refactoring process.
Add adapters from HTTP and FTP request to zope.authentication.ILoginPassword interface. They are moved from zope.app.security as a part of refactoring process. This change adds a dependency on the zope.authentication package, but it's okay, since it's a tiny contract definition-only package.
See http://mail.zope.org/pipermail/zope-dev/2009-March/035325.html for reasoning.
Clean-up: Move skin related code from zope.publisher.interfaces.browser and zope.publisher.browser to zope.publihser.interfaces and zope.publisher.skinnable and provide BBB imports. See skinnable.txt for more information.
Fix: ensure that we only apply skin interface in setDefaultSkin which also provide IBrowserSkinType. This will ensure that we find a skin if the applySkin method will lookup for a skin based on this type interface.
Fix: Make it possible to use adapters and not only interfaces as skins from the adapter registry. Right now the defaultSkin directive registers simple interfaces as skin adapters which will run into a TypeError if someone tries to adapter such a skin adapter. Probably we should change the defaultSkin directive and register real adapters instead of using the interfaces as fake adapters where we expect adapter factories.
Feature: allow to use applySkin with different skin types using the optional argument skinType which is by default set to IBrowserSkinType
Feature: implemented the default skin pattern within adapters. This allows us to register default skins for other requests then only IBrowserRequest using IDefaultSkin adapters.
Note, ISkinnable and ISkinType and the skin implementation should be moved out of the browser request modules. Packages like z3c.jsonrpc do not depend on IBrowserRequest but they are skinnable.
Feature: added ISkinnable interface which allows us to implement the apply skin pattern not only for IBrowserRequest
Fix: Don't cause warnings on Python 2.6
Fix: Make IBrowserPage inherit IBrowserView.
Move IView and IDefaultViewName from zope.component.interfaces to zope.publisher.interfaces. Stop inheriting from deprecated (for years) interfaces defined in zope.component.
Remove deprecated code.
Clean-up: Move "zope.testing" from extras to dependencies, per Zope Framework policy. Remove zope.app.testing as a dependency: tests run fine without it.
Bugs fixed:
Bugs fixed:
Bugs fixed:
Bugs fixed:
A previous fix to handle posting of non-form data broke handling of form data with extra information in the content type, as in:
application/x-www-form-urlencoded; charset=UTF-8
Bugs fixed:
When posting non-form (and non-multipart) data, the request body was consumed and discarded. This makes it impossible to deal with other post types, like xml-rpc or json without resorting to overly complex "request factory" contortions.
https://bugs.launchpad.net/zope2/+bug/143873
The zope.publisher.http.HTTPCharsets was confused by the Zope 2 publisher, which gives missleading information about which headers it has.
Features added:
No changes since 3.4.1b2.
No changes.
Initial release as a separate project, corresponds to zope.publisher from Zope 3.4.0a1