[Web-SIG] Pre-PEP: Python Web Container Interface v1.0
Phillip J. Eby
pje at telecommunity.com
Mon Dec 8 10:29:40 EST 2003
At 06:38 AM 12/8/03 -0500, A.M. Kuchling wrote:
>On Sun, Dec 07, 2003 at 07:05:26PM -0500, Phillip J. Eby wrote:
> > Maybe I'm overreacting to being burned by imperfect dictionary simulations
> > in the past. OTOH, I noticed you haven't actually given a use case for
> > *not* using a dictionary. :)
>
>os.environ is not a dictionary (nor a subclass of dict), so the simplest CGI
>case would be runCGI(sys.stdin, sys.stdout, sys.stderr, os.environ.copy()).
>Seems silly.
The copy() in that case would arguably be necessary anyway. Remember that
the spec requires the caller to be allowed to *modify* environ in place.
Anyway, as per my response to Stuart, I suppose I could further compromise
to having the spec require that the copy() method return a
dictionary. Then people who want to be sure their manipulations are
portable, can simply take a copy of environ. (Or, alternatively, .items()
could be required, and the portable mechanism would be to use
'dict(environ.items())'.)
But, given how simple it is for the container to use a dictionary in the
first place, it seems silly to force every layer to do a copy "just in
case" to be portable. And, I think that os.environ really is the exception
rather than the rule. How many existing containers use non-dictionaries now?
More information about the Web-SIG
mailing list