On Wed, 26 Mar 2008, Jeremy wrote:
> Hi Wayne,
> I did as you suggested, and here is the output:
>
> >>> *********************
> HERE10 ('http',
> '//mole.bio.cam.ac.uk/~ccpn/ccpNmrUpdate/__UpdateAgentData.db')
> HERE11 {'http': 'http://'}
> HERE12 http://
> HERE13 ('http', '//')
> HERE14 ('', '')
> HERE3 ('', '
>
http://mole.bio.cam.ac.uk/~ccpn/ccpNmrUpdate/__UpdateAgentData.db')
> HERE4
> Exception in Tkinter callback
> Traceback (most recent call last):
> File "/sw/lib/python2.5/lib-tk/Tkinter.py", line 1403, in __call__
> return self.func(*args)
> (...etc...)
>
> Hope that gives some clue.
>
> -Jeremy
>
> On Wed, Mar 26, 2008 at 1:41 AM, Wayne Boucher <
[log in to unmask]>
> wrote:
>
> > Right, when the code is getting to that point the host
> > (
mole.bio.cam.ac.uk) has been lost for some reason. The only way I can
> > see this happening is further upstream in lines 173-177, which involves
> > proxies. So you could try modifying those lines to:
> >
> > print 'HERE10', (urltype, url)
> > if urltype in self.proxies:
> > print 'HERE11', self.proxies
> > proxy = self.proxies[urltype]
> > print 'HERE12', proxy
> > urltype, proxyhost = splittype(proxy)
> > print 'HERE13', (urltype, proxyhost)
> > host, selector = splithost(proxyhost)
> > print 'HERE14', (host, selector)
> > url = (host, fullurl) # Signal special case to open_*()
> >
> > By the time you get to HERE14 the host has been splatted. It's possibly
> > this is because the proxy in HERE12 is just rubbish. Looking at the code
> > it looks like self.proxies ought to be empty, in which case going into
> > that "if" block would not happen. But that's the only bit of code I can
> > see that is modifying the url in the way indicated by the messages further
> > downstream.
> >
> > Wayne
> >
> > On Tue, 25 Mar 2008, Jeremy wrote:
> >
> > > Hi Wayne,
> > > Thanks for the reply. My coworkers actually use Python 2.5, so that is
> > > likely not the problem. I added the five lines and the output was as
> > > follows:
> > >
> > > HERE3 ('', '
> > >
http://mole.bio.cam.ac.uk/~ccpn/ccpNmrUpdate/__UpdateAgentData.db')
> > > HERE4
> > > Exception in Tkinter callback
> > > Traceback (most recent call last):
> > > File "/sw/lib/python2.5/lib-tk/Tkinter.py", line 1403, in __call__
> > > return self.func(*args)
> > > (...etc...)
> > >
> > > Hope this gives you some information.
> > >
> > > Jeremy
> > >
> > >
> > >
> > > On Tue, Mar 25, 2008 at 1:39 PM, Wayne Boucher <
[log in to unmask]
> > >
> > > wrote:
> > >
> > > > Hello,
> > > >
> > > > That bit of urllib.py is a bit opaque, but the only thing I can see
> > that
> > > > might be going on weird is to do with proxies. Are your coworkers
> > using
> > > > Python <=2.4? I did a diff between the Python 2.4 and 2.5 urllib.pycode
> > > > and the main differences are to do with proxy handling, but not
> > obviously
> > > > at the root of this problem so this could be irrelevant. The one way
> > to
> > > > really find out what is going on is to edit
> > > >
> > > > /sw/lib/python2.5/urllib.py
> > > >
> > > > and to put in various checks along the way. If you have adminstrator
> > > > access (which I assume you do) then you could add some debugging to
> > the
> > > > function open_http to get (I've added five debugging lines below):
> > > >
> > > > def open_http(self, url, data=None):
> > > > """Use HTTP protocol."""
> > > > import httplib
> > > > user_passwd = None
> > > > proxy_passwd= None
> > > > if isinstance(url, str):
> > > > host, selector = splithost(url)
> > > > print 'HERE1', url, host
> > > > if host:
> > > > user_passwd, host = splituser(host)
> > > > host = unquote(host)
> > > > realhost = host
> > > > print 'HERE2', host
> > > > else:
> > > > host, selector = url
> > > > print 'HERE3', url, host
> > > > # check whether the proxy contains authorization
> > information
> > > > proxy_passwd, host = splituser(host)
> > > > print 'HERE4', host
> > > > # now we proceed with the url we want to obtain
> > > > urltype, rest = splittype(selector)
> > > > url = rest
> > > > user_passwd = None
> > > > if urltype.lower() != 'http':
> > > > realhost = None
> > > > else:
> > > > realhost, rest = splithost(rest)
> > > > if realhost:
> > > > user_passwd, realhost = splituser(realhost)
> > > > if user_passwd:
> > > > selector = "%s://%s%s" % (urltype, realhost, rest)
> > > > if proxy_bypass(realhost):
> > > > host = realhost
> > > > print 'HERE5', host
> > > >
> > > > #print "proxy via http:", host, selector
> > > > if not host: raise IOError, ('http error', 'no host given')
> > > >
> > > > Wayne
> > > >
> > > > On Tue, 25 Mar 2008, Jeremy wrote:
> > > >
> > > > > Thanks for the quick replies. I do not think it is a firewall issue
> > > > (although I am behind one), as my
> > > > > coworkers (running Linux or Tiger) are able to update just fine.
> > > > >
> > > > > Any further ideas?
> > > > >
> > > > > Thanks,
> > > > > Jeremy
> > > > >
> > > >
> > >
> >
>