Tue, 08 Nov 2022 16:57:46 +0100
Changed bookmark importer imports to use importlib.import_module().
# -*- coding: utf-8 -*- # Copyright (c) 2012 - 2022 Detlev Offenbach <detlev@die-offenbachs.de> # """ Package implementing bookmarks importers for various sources. """ import importlib from PyQt6.QtCore import QCoreApplication from eric7 import Globals from eric7.EricGui import EricPixmapCache def getImporters(): """ Module function to get a list of supported importers. @return list of tuples with an icon (QIcon), readable name (string) and internal name (string) """ importers = [] importers.append( (EricPixmapCache.getIcon("ericWeb48"), "eric Web Browser", "e5browser") ) importers.append((EricPixmapCache.getIcon("firefox"), "Mozilla Firefox", "firefox")) importers.append((EricPixmapCache.getIcon("chrome"), "Google Chrome", "chrome")) if Globals.isLinuxPlatform(): importers.append((EricPixmapCache.getIcon("chromium"), "Chromium", "chromium")) importers.append( (EricPixmapCache.getIcon("konqueror"), "Konqueror", "konqueror") ) importers.append((EricPixmapCache.getIcon("opera"), "Opera", "opera")) importers.append((EricPixmapCache.getIcon("safari"), "Apple Safari", "safari")) if Globals.isWindowsPlatform(): importers.append( (EricPixmapCache.getIcon("internet_explorer"), "Internet Explorer", "ie") ) importers.append( ( EricPixmapCache.getIcon("xbel"), QCoreApplication.translate("BookmarksImporters", "XBEL File"), "xbel", ) ) importers.append( ( EricPixmapCache.getIcon("html"), QCoreApplication.translate("BookmarksImporters", "HTML File"), "html", ) ) return importers def getImporterInfo(sourceId): """ Module function to get information for the given source id. @param sourceId source id to get info for @type str @return tuple with an icon, readable name, name of the default bookmarks file, an info text, a prompt and the default directory of the bookmarks file @rtype tuple of (QPixmap, str, str, str, str, str) @exception ValueError raised to indicate an unsupported importer """ mod = getImporterModule(sourceId) return mod.getImporterInfo(sourceId) def getImporter(sourceId, parent=None): """ Module function to get an importer for the given source id. @param sourceId source id to get an importer for @type str @param parent reference to the parent object @type QObject @return bookmarks importer @rtype BookmarksImporter @exception ValueError raised to indicate an unsupported importer """ mod = getImporterModule(sourceId) return mod.createImporter(sourceId=sourceId, parent=parent) def getImporterModule(sourceId): """ Function @param sourceId source id to get an importer module for @type str @return reference to the imported module @rtype module @exception ValueError raised to indicate an unsupported importer """ importerMapping = { "chrome": "ChromeImporter", "chromium": "ChromeImporter", "e5browser": "XbelImporter", "firefox": "FirefoxImporter", "html": "HtmlImporter", "ie": "IExplorerImporter", "konqueror": "XbelImporter", "opera": "OperaImporter", "safari": "SafariImporter", "xbel": "XbelImporter", } if sourceId in importerMapping: return importlib.import_module( "eric7.WebBrowser.Bookmarks.BookmarksImporters.{0}".format( importerMapping[sourceId] ) ) raise ValueError("Invalid importer ID given ({0}).".format(sourceId))