On Sat, Sep 11, 2010 at 01:09:31PM +0200, Evert Rol wrote: > >>> My script to call a web service authenticates. > > > >> Sorry, but where is the (full) script? I missed an attachment or > >> (preferably) a link. > > > > Hello, > > > > Sorry, the verb of the sentence is "authenticates," as in, "My script > > ... authenticates." > > Sorry, misread that. > Although code does help :-).
> I assume the rest of the code is just the loop around the items you > want to fetch, calling getData each time with a new URL. Yes, it's looping over a list. Specifically, at startup the script does a date detection and creates a list of identifiers for each week of the year up to the point of invocation. So, if it is week 36, I get a list of 36 weeks. Then, the data retrieval and processing takes place like this: [processData(w) for w in weeks] Where the processData function calls getData() and passes in the current week to process. [ code snipped ] > > So, to restate the question, how can I trap an exception in the cases > > in which authentication fails? [ snip ] > I'm not sure what you're exactly doing here, or what you're getting, >but I did get curious and dug around urllib2.py. Apparently, there is >a hardcoded 5 retries before the authentication really fails. So any >stack trace would be the normal stack trace times 5. Not the 30 you >mentioned, but annoying enough anyway (I don't see how it would fail >for every element in the loop though. Once it raises an exception, >the program basically ends). It never throws an exception. Or, if it does, something about the way I'm calling suppresses it. IOW, I can put in a bogus credential and start the script and sit here for 5 minutes and see nothing. Then ^C and I get a huge stacktrace that shows the repeated calls. After the timeout on one element in the list, it goes to the next element, times out, goes to the next. > I don't know why it's hard-coded that way, and not just an option > with a default of 5, but that's currently how it is (maybe someone > else on this list knows?). I don't know, but even if I could set it to 1, I'm not helped unless there's a way for me to make it throw an exception and exit the loop. > If that's what you're finding, perhaps the quickest way is to > subclass urllib2.HTTPBasicAuthHandler, and override the > http_error_auth_reqed method (essentially keeping it exactly the > same apart from the hard-coded 5). Now there's a challenge! ;-) Thanks. mp -- Michael Powe mich...@trollope.org Naugatuck CT USA Is it time for your medication or mine?
pgpCntmjOvEx8.pgp
Description: PGP signature
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor