@Kovid,
Is it safe to assume that for users of calibre version <= 4.23, the win32 modules will always be available?
If so, I believe I now have
subprocess working OK in python3/calibrev5.2 with unicode args. In which case the last 5 rows can be removed from my original list
Code:
from win32com.client import WithEvents #function
from win32com.client import Dispatch #function
from win32com.client import DispatchBaseClass #class
from win32com.client import CoClassBaseClass #class
from win32com.client.CLSIDToClass import RegisterCLSIDsFromDict #function
from win32com.client.util import Iterator as w32comclient_util_iterator #class
from win32com.server.util import wrap as w32comserver_util_wrap #function
from win32com.server.policy import EventHandlerPolicy #class
from win32process import CreateProcess
from win32process import STARTUPINFO
from win32event import WaitForSingleObject
from win32event import INFINITE
from win32con import STARTF_USESHOWWINDOW, SW_HIDE, CREATE_DEFAULT_ERROR_MODE
ETA: All imports are now either a class or a function (rather than its module).
The attached updated plugin still seems to work OK in v4.23 and v5.2