On 3/12/2011 7:18 PM, Tim Johnson wrote:
* Terry Reedy<tjre...@udel.edu>  [110312 13:28]:
On 3/12/2011 2:53 PM, Tim Johnson wrote:

Is 'cgilib' *your* wrapper of the cgi module, or from a third party.

   cgilib is my module. I use the cgi module as follows:
## code below
     import cgi
     self.form = cgi.FieldStorage(keep_blank_values=1)
## /code

And cgitools is a class therein?

Without seeing cgitools/cgirev, it is hard to say. Something like

while True:
   try:
     x = cgitools()
     break
   except NameError
     pass

would produce the symptom ;-)

   Hmm! I'm unsure what you mean here, but

If the name 'cgitools' is used *somewhere*, not necessary in cgilib itself, other than in the class header itself, but the resulting NameError is *somehow* caught inside a retry loop, then your total application would exhibit the symptom you describe ('hanging'). This could happen if there is a bare 'except:' statement (these are not recommended) that needs to be specific 'except SomeError:'.

   I did do something like this:
## code below
if __name__=="__main__":
     import sys,traceback
     sys.stderr = sys.stdout ##
     try :
         print("Content-type: text/html\n")
         print("<pre>")
         cgi = CGI()
         print("here")
         print("CGI OUTPUT TEST")
         for i in range(cgi.len_path_parts()):
             print("path part # %d requested: %s" % (i,str(cgi[i])))
     except :
         traceback.print_exc()
## /code
And I get
CGI OUTPUT TEST
path part # 0 requested: test
path part # 1 requested: this
Whether I use CGI or cgitools as the class name.

But, if I use CGI as the class name and instantiate from a large application
with numerous dependecies, the process hangs.

The same happens if I 'alias' cgitools, as in
class CGI(cgitools):
     pass

You mean you leave 'class cgitools()...' alone within cgilib and just add that? That would discredit the theory above. What if you use a different alias, like 'moretools'? Are you on an OS where 'cgi' and 'CGI' could get confused?

It is as if some gremlin lives on my system and insists that I use
the name `cgitools' and only the name `cgitools'. I'm sure
this comes from a side effect somewhere in the process.
thanks for the reply


--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to