def _map_requirement(self, pkg: ArchPackage, context: UpdateRequirementsContext, installed_sizes: Dict[str, int] = None, to_install: bool = False, to_sync: Set[str] = None) -> UpgradeRequirement: requirement = UpgradeRequirement(pkg) if pkg.repository != 'aur': pkgdata = context.pkgs_data.get(pkg.name) if pkgdata: requirement.required_size = pkgdata['ds'] requirement.extra_size = pkgdata['s'] current_size = installed_sizes.get( pkg.name) if installed_sizes else None if current_size is not None and pkgdata['s'] is not None: requirement.extra_size = pkgdata['s'] - current_size required_by = set() if to_install and to_sync and context.pkgs_data: names = pkgdata.get('p', {pkg.name}) if pkgdata else {pkg.name} to_sync_deps_cache = {} for p in to_sync: if p != pkg.name and p in context.pkgs_data: deps = to_sync_deps_cache.get(p) if deps is None: deps = context.pkgs_data[p]['d'] if deps is None: deps = set() else: deps = { RE_DEP_OPERATORS.split(d)[0] for d in deps } to_sync_deps_cache[p] = deps if deps: for n in names: if n in deps: required_by.add(p) break requirement.reason = '{}: {}'.format( self.i18n['arch.info.required by'].capitalize(), ','.join(required_by) if required_by else '?') return requirement
def _map_requirement(self, pkg: ArchPackage, context: UpdateRequirementsContext, installed_sizes: Dict[str, int] = None) -> UpgradeRequirement: requirement = UpgradeRequirement(pkg) if pkg.repository != 'aur': data = context.pkgs_data[pkg.name] requirement.required_size = data['ds'] requirement.extra_size = data['s'] current_size = installed_sizes.get(pkg.name) if installed_sizes else None if current_size is not None and data['s']: requirement.extra_size = data['s'] - current_size return requirement
def get_upgrade_requirements(self, pkgs: List[AppImage], root_password: Optional[str], watcher: ProcessWatcher) -> UpgradeRequirements: to_update = [] for pkg in pkgs: requirement = UpgradeRequirement(pkg) installed_size = self.http_client.get_content_length_in_bytes(pkg.url_download) upgrade_size = self.http_client.get_content_length_in_bytes(pkg.url_download_latest_version) requirement.required_size = upgrade_size if upgrade_size and installed_size: requirement.extra_size = upgrade_size - installed_size to_update.append(requirement) return UpgradeRequirements([], [], to_update, [])