def print_basic_debug_info(out=None): if out is None: out = sys.stdout out = functools.partial(prints, file=out) import platform from calibre.constants import (__appname__, get_version, isportable, isosx, isfrozen, is64bit) out(__appname__, get_version(), 'Portable' if isportable else '', 'embedded-python:', isfrozen, 'is64bit:', is64bit) out(platform.platform(), platform.system(), platform.architecture()) if iswindows and not is64bit: try: import win32process if win32process.IsWow64Process(): out('32bit process running on 64bit windows') except: pass out(platform.system_alias(platform.system(), platform.release(), platform.version())) out('Python', platform.python_version()) try: if iswindows: out('Windows:', platform.win32_ver()) elif isosx: out('OSX:', platform.mac_ver()) else: out('Linux:', platform.linux_distribution()) except: pass from calibre.customize.ui import has_external_plugins, initialized_plugins if has_external_plugins(): names = (p.name for p in initialized_plugins() if getattr(p, 'plugin_path', None) is not None) out('Successfully initialized third party plugins:', ' && '.join(names))
def get_installed_plugin_status(display_plugin): display_plugin.installed_version = None display_plugin.plugin = None for plugin in initialized_plugins(): if plugin.name == display_plugin.qname and plugin.plugin_path is not None: display_plugin.plugin = plugin display_plugin.installed_version = plugin.version break if display_plugin.uninstall_plugins: # Plugin requires a specific plugin name to be uninstalled first # This could occur when a plugin is renamed (Kindle Collections) # or multiple plugins deprecated into a newly named one. # Check whether user has the previous version(s) installed plugins_to_remove = list(display_plugin.uninstall_plugins) for plugin_to_uninstall in plugins_to_remove: found = False for plugin in initialized_plugins(): if plugin.name == plugin_to_uninstall: found = True break if not found: display_plugin.uninstall_plugins.remove(plugin_to_uninstall)
def populate(self): self._data = {} for plugin in initialized_plugins(): if (getattr(plugin, 'plugin_path', None) is None and self.show_only_user_plugins): continue if plugin.type not in self._data: self._data[plugin.type] = [plugin] else: self._data[plugin.type].append(plugin) self.categories = sorted(self._data.keys()) for plugins in self._data.values(): plugins.sort(cmp=lambda x, y: cmp(x.name.lower(), y.name.lower()))
def _add_installed_plugins(): # installed plugins from calibre.customize.ui import initialized_plugins user_installed_plugins = {} for plugin in initialized_plugins(): path = getattr(plugin, 'plugin_path', None) if path is not None: name = getattr(plugin, 'name', None) if name == self.parent.name: continue author = getattr(plugin, 'author', None) version = getattr(plugin, 'version', None) user_installed_plugins[name] = {'author': author, 'version': "{0}.{1}.{2}".format(*version)} device_profile['user_installed_plugins'] = user_installed_plugins
def print_basic_debug_info(out=None): if out is None: out = sys.stdout out = functools.partial(prints, file=out) import platform from contextlib import suppress from calibre.constants import (__appname__, get_version, isportable, ismacos, isfrozen, is64bit) from calibre.utils.localization import set_translators out(__appname__, get_version(), 'Portable' if isportable else '', 'embedded-python:', isfrozen, 'is64bit:', is64bit) out(platform.platform(), platform.system(), platform.architecture()) if iswindows and not is64bit: from calibre_extensions.winutil import is_wow64_process with suppress(Exception): if is_wow64_process(): out('32bit process running on 64bit windows') out( platform.system_alias(platform.system(), platform.release(), platform.version())) out('Python', platform.python_version()) try: if iswindows: out('Windows:', platform.win32_ver()) elif ismacos: out('OSX:', platform.mac_ver()) else: out('Linux:', platform.linux_distribution()) except: pass out('Interface language:', str(set_translators.lang)) from calibre.customize.ui import has_external_plugins, initialized_plugins if has_external_plugins(): from calibre.customize import PluginInstallationType names = ('{} {}'.format(p.name, p.version) for p in initialized_plugins() if getattr(p, 'installation_type', None) is not PluginInstallationType.BUILTIN) out('Successfully initialized third party plugins:', ' && '.join(names))
def print_basic_debug_info(out=None): if out is None: out = sys.stdout out = functools.partial(prints, file=out) import platform from calibre.constants import (__appname__, get_version, isportable, isosx, isfrozen, is64bit) from calibre.utils.localization import set_translators out(__appname__, get_version(), 'Portable' if isportable else '', 'embedded-python:', isfrozen, 'is64bit:', is64bit) out(platform.platform(), platform.system(), platform.architecture()) if iswindows and not is64bit: try: import win32process if win32process.IsWow64Process(): out('32bit process running on 64bit windows') except: pass out( platform.system_alias(platform.system(), platform.release(), platform.version())) out('Python', platform.python_version()) try: if iswindows: out('Windows:', platform.win32_ver()) elif isosx: out('OSX:', platform.mac_ver()) else: out('Linux:', platform.linux_distribution()) except: pass out('Interface language:', unicode_type(set_translators.lang)) from calibre.customize.ui import has_external_plugins, initialized_plugins if has_external_plugins(): names = ('{0} {1}'.format(p.name, p.version) for p in initialized_plugins() if getattr(p, 'plugin_path', None) is not None) out('Successfully initialized third party plugins:', ' && '.join(names))