Ah, that gives me some more information. The plugin is using
with self:
pass
to unzip itself. Relevant code is here:
https://github.com/kovidgoyal/calibr...init__.py#L279
As for requests, it is a pretty old and poorly designed library, so it doesnt surprise me that it does stupid things like using __file__ instead of the correct stdlib facilities for loading resources. That said this should indeed not break in calibre and was probably broken by the changes to the plugin loader system to support python 3.
And just FYI, if you want browser user agents, a good way to get them is
from calibre import random_user_agent
and if you want https certificates, the way to get a path to them is
P('mozilla-ca-certs.pem')
No idea if these libraries allow you to pass such things into them, however.