[Grok-dev] zope.app.wsgi adapters not registered by default

Jan-Wijbrand Kolman janwijbrand at gmail.com
Wed May 18 05:25:36 EDT 2011

On 5/13/11 09:14 , Jeroen Michiel wrote:
> Martijn Faassen-2 wrote:
>> Doesn't sound deliberate. Could you add this to launchpad?
> Thought as much.
> Reported!

I looked into this. It is bit of an unfortunate situation. Let me try to 
explain and propose a solution:

`zope.app.wsgi` defines `IResult` adapters for efficiently sending large 
amounts of data back to the client.

Although in principle these adapters are not WSGI-specific (and IMHO 
could've been implemented in zope.publisher where also the IResult 
interfaces lives), there's one aspect in the adapter's implementation 
that I think was the reason for putting these in the `zope.app.wsgi` 
package after all: the implementation will use the "wsgi.file_wrapper" 
from the WSGI environment when it is available.

In the Grok stack, it is grokcore.startup that directly depends on 
`zope.app.wsgi`. A project built with grokproject will itself depend on 
`grokcore.startup`, but no other package in the Grok stack depends on 
`grokcore.startup` or `zope.app.wsgi` (except for several test 
dependencies). It does somehow not make sense to me to have a project 
built with `grokproject` to directly depend on `zope.app.wsgi` - this 
package is only instrumental I guess.

For now I think a reasonable albeit not ideal solution would be to have 
the grok package (which after all defines a "policy" or "profile" for 
Grok-based web applications) depend on zope.app.wsgi and have grok's 
`configure.zcml` include the configuration of `zope.app.wsgi`

I think I'll do that, unless of course someone has a much better idea :-)

regards, jw

More information about the Grok-dev mailing list