def new( repository: object, package_manager_name: str, custom_args: List=None # noqa: E252 ): name_map = { 'zypper': ['zypper', 'Zypper'], 'dnf': ['dnf', 'Dnf'], 'microdnf': ['microdnf', 'MicroDnf'], 'pacman': ['pacman', 'Pacman'], 'apt': ['apt', 'Apt'] } try: (module_namespace, module_name) = name_map[package_manager_name] package_manager = importlib.import_module( 'kiwi.package_manager.{0}'.format(module_namespace) ) module_name = 'PackageManager{0}'.format(module_name) manager = package_manager.__dict__[module_name]( repository, custom_args ) except Exception as issue: raise KiwiPackageManagerSetupError( 'Support for package manager {0} not implemented {1}'.format( package_manager_name, issue ) ) log.info( 'Using package manager backend: {0}'.format(package_manager_name) ) return manager
def __new__(self, repository, package_manager, custom_args=None): if package_manager == 'zypper': manager = PackageManagerZypper(repository, custom_args) elif package_manager == 'dnf' or package_manager == 'yum': manager = PackageManagerDnf(repository, custom_args) elif package_manager == 'apt-get': manager = PackageManagerApt(repository, custom_args) else: raise KiwiPackageManagerSetupError( 'Support for package manager %s not implemented' % package_manager) log.info('Using package manager backend: %s', package_manager) return manager