def get_available_packages(): """Get available packages and update packages list if it is not done Returns: list(package.AvailablePackage): The list of available packages """ try: available_packages = package.get_available_packages() except: update_index() available_packages = package.get_available_packages() return available_packages
def get_packages(self): if self.table_content == self.TableContent.AVAILABLE: return package.get_available_packages() elif self.table_content == self.TableContent.INSTALLED: return package.get_installed_packages() else: raise Exception("Invalid table content")
def search_packages(args): """Display packages from remote index.""" available_packages = package.get_available_packages() for pkg in available_packages: if args.from_lang and args.from_lang != pkg.from_code: continue if args.to_lang and args.to_lang != pkg.to_code: continue print("{0}: {1.from_code} -> {1.to_code}".format( package.argospm_package_name(pkg), pkg))
def main(): commands = ['update', 'install', 'list', 'remove'] # Parse args parser = argparse.ArgumentParser() parser.add_argument('command', help=', '.join(commands)) parser.add_argument('argument', nargs='?', help='Argument for command') args = parser.parse_args() # Parse command command = args.command if command not in commands: print(f'Unrecognized command {args.command}') print(f'Valid commands {commands}') exit(1) if command == 'update': package.update_package_index() elif command == 'install': available_packages = package.get_available_packages() package_name = args.argument package_found = False for available_package in available_packages: name = name_of_package(available_package) if name == package_name: download_path = available_package.download() package.install_from_path(download_path) print(f'Installed package to path {download_path}') package_found = True break if not package_found: print('Package not found') elif command == 'list': installed_packages = package.get_installed_packages() for installed_package in installed_packages: print(name_of_package(installed_package)) elif command == 'remove': installed_packages = package.get_installed_packages() package_name = args.argument package_found = False for installed_package in installed_packages: name = name_of_package(installed_package) if name == package_name: installed_package.remove() print(f'Removed package {name}') package_found = True break if not package_found: print('Package not found')
def install_package(args): """Install package.""" available_packages = package.get_available_packages() package_name = args.name for available_package in available_packages: name = package.argospm_package_name(available_package) if name == package_name: download_path = available_package.download() package.install_from_path(download_path) print(f"Installed package to path {download_path}") break else: print("Package not found")
def __init__(self): super().__init__() # Update package definitions from remote package.update_package_index() # Load available packages from local package index available_packages = package.get_available_packages() # Packages table self.packages_table = PackagesTable( PackagesTable.TableContent.AVAILABLE, [PackagesTable.AvailableActions.INSTALL], ) self.packages_table.packages_changed.connect(self.packages_changed.emit) self.packages_table.populate() self.packages_layout = QVBoxLayout() self.packages_layout.addWidget(self.packages_table) # Layout self.layout = QVBoxLayout() self.layout.addLayout(self.packages_layout) self.layout.addStretch() self.setLayout(self.layout)