python-flickr-api icon indicating copy to clipboard operation
python-flickr-api copied to clipboard

requests.post calls should use timeouts

Open smontanaro opened this issue 2 years ago • 4 comments

method_call.py and upload.py call requests.post to do their work but don't pass a timeout argument to the call, but should. From the requests documentation:

You can tell Requests to stop waiting for a response after a given number of seconds with the timeout parameter. Nearly all production code should use this parameter in nearly all requests. Failure to do so can cause your program to hang indefinitely:

I did the simplest thing possible, just stuff in a hardcoded timeout of 75s (I was editing my flickr-api installation), but giving the caller a simple API for setting the timeout value would obviously be better. Defaulting to None would preserve the current behavior. I've attached my quick-n-dirty change but will try to work up a more reasonable PR.

timeout.txt

smontanaro avatar Jan 21 '23 21:01 smontanaro

I think that's a great idea. It can be much less than 75s imo. 10s would still be pretty conservative.

beaufour avatar Jan 23 '23 19:01 beaufour

Yeah, I was kinda in a hurry and just wanted something I felt would work so I could ignore that issue. The timeout will be settable (see attached). timeout.txt

smontanaro avatar Jan 26 '23 13:01 smontanaro

It would be a lot easier to look at with a pull request :) Globals are quite ugly, but given that there's a precedent with caching it's probably fine.

beaufour avatar Jan 26 '23 18:01 beaufour

Yeah, I understand. Not sure if I can create a pull request without forking your repo. (I'm not much of a git expert.)

smontanaro avatar Jan 26 '23 20:01 smontanaro