Open thehesiod opened 10 years ago
It's hard to say exactly what's going on here without a way to reliably reproduce the problem.
But there's fortunately a way to work around this issue by adding it to the blacklist. That should work fine for your case because it doesn't sound like you're interested in reloading ftplib
itself.
I had a scenario where I did something like this (sorry, don't have it exactly anymore):
reloader.py:
drone.py:
Utils.py:
The issue I noticed is that after refreshing Utils.py, and then reloading drone.py, FTP would error out because eventually it decided that the default timeout was !=
socket._GLOBAL_DEFAULT_TIMEOUT
and therefore tried to pass a generic object to timeout and error stating that it wasn't a float.I think whats happening is that the object() used as the
_GLOBAL_DEFAULT_TIMEOUT
reference gets replaced between ftplib/socket after the module gets re-loaded so it doesn't recognize it anymore. I think socket.py shouldn't be using this mechanism as the default anyways, its dumb, it should instead have used -1 or something...however, whats the recommended solution?