PEP 222 draft

Erno Kuusela erno-news at
Sun Dec 24 20:17:50 CET 2000

>>>>> "A" == A M Kuchling <amk at> writes:

|     The module would be deprecated.  (XXX A new module or
| package name hasn't been chosen yet: 'web'?  'cgilib'?)

i would like it more to add the new stuff to the existing cgi module
rather than having old/new modules with slightly different
variations of the same name.

|     XXX open issues: naming convention (studlycaps or
| underline-separated?); need to look at the cgi.parse*() functions
| and see if they can be simplified, too.

StudlyCaps for classes and underline_separated for the rest!

|     # The Response class borrows most of its methods from Zope's #
| HTTPResponse class.

|         def redirect(self, url): "Redirect the browser to another
| URL" pass
i think this is spurious, there is the status method already,
and you don't know which of the various 30x responses is most
appropriate here.

|         # XXX methods for specific classes of error:serverError, #
| badRequest, etc.?

i like cacheability, maybe expires/last-modified/vary
but maybe that's spurious too.
|     class Request:
|         """ Attributes:

|         XXX should these be dictionaries, or dictionary-like
| objects?  .headers : dictionary containing HTTP headers .cookies :
| dictionary of cookies .fields : data from the form .env :
| environment dictionary """

probably dictionary-like, since there can be several occurrences
of a single header and the order might matter.
|         # Should people just use the dictionaries directly?  def
| getHeader(self, name, default=None): pass

"getList" too?

|         # Possibilities?  I don't know if these are worth doing in
| the # basic objects.  def getBrowser(self): "Returns
| Mozilla/IE/Lynx/Opera/whatever"

do you mean attempting something more than just returning the
user-agent header? that seems highly unwise to me. many browsers
(opera, konqueror, msie atleast) lie in the user-agent header
and it's not possible to decipher it robustly and future-proofly.
and most of the situations where misguided cgi programmers want to do
user-agent sniffing is exactly differentiating between these.

   -- erno

More information about the Python-list mailing list