Firat KUCUK wrote .. > Graham Dumpleton yazmýþ: > >What is the actual problem you are trying to solve? > > > >The "len(req.path_info) > 0" is actually redundant because when > >req.path_info is a string and has length 0, the "req.path_info" > >boolean check will fail anyway. > > > >In other words, the change you made wouldn't make any difference > >that I can see to the actual outcome. Is the redundancy all you > >were wanting to point out??? > > > >BTW, you should be careful about what SCRIPT_NAME gets set > >to by Apache and by this code. See discussion of strange things > >that happen at: > > > > https://issues.apache.org/jira/browse/MODPYTHON-68 > > briefly: > > print len(None) > > TypeError: len() of unsized object > > > if we use: > > if req.path_info *and* len(req.path_info) > 0: > > the same error will be occur. > > please try > DirectoryIndex index.py > and use cgihandler. > > req.path_info will be None. > and we cannot calculate length of none object
If req.path_info is None, the RHS of the "and" is not executed so len() is never performed on a None object. Python 2.3 (#1, Sep 13 2003, 00:49:11) [GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> path_info = None >>> if path_info and len(path_info): .. print "hi" .. >>> path_info = "" >>> if path_info and len(path_info): .. print "hi" .. >>> I really can't see how this can be a source of a problem. I had already written a separate test handler to check. AddHandler mod_python .py PythonHandler index PythonDebug On DirectoryIndex index.py # --- from mod_python import apache def handler(req): req.content_type = 'text/plain' req.write("%s\n"%req.path_info) req.write("%s\n"%apache.build_cgi_env(req)) return apache.OK Output shows: None {......, 'SCRIPT_NAME': '/~grahamd/script_name/index.py', 'REQUEST_URI': '/~grahamd/script_name/', ......} No error occurred. If you are getting an actual error of some sort, then post what the full traceback is, as at the moment this isn't making a great deal of sense to me. Graham