Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_aur_pkgs_info(self, aur_packages_names: List[str]) -> None:
local_pkgs = PackageDB.get_local_dict()
aur_pkg_list, not_found_aur_pkgs = find_aur_packages(aur_packages_names)
if not_found_aur_pkgs:
print_not_found_packages(sorted(not_found_aur_pkgs))
raise SysExit(6)
aur_pkgs = {
aur_pkg.name: aur_pkg
for aur_pkg in aur_pkg_list
}
aur_updates_install_info_by_name: Dict[str, InstallInfo] = {}
if self.args.sysupgrade:
aur_updates_list, not_found_aur_pkgs = find_aur_updates()
self.exclude_ignored_packages(not_found_aur_pkgs, print_packages=False)
if not_found_aur_pkgs:
print_not_found_packages(sorted(not_found_aur_pkgs))
aur_updates_install_info_by_name = {
upd.name: upd for upd in aur_updates_list
}
]
result_aur_deps: Dict[str, List[str]] = {
aur_pkg_name: []
for aur_pkg_name in package_names
}
initial_pkg_infos = aur_pkgs_infos[:]
iter_package_names: List[str] = []
while iter_package_names or initial_pkg_infos:
all_deps_for_aur_packages = {}
if initial_pkg_infos:
aur_pkgs_info = initial_pkg_infos
not_found_aur_pkgs: List[str] = []
initial_pkg_infos = []
else:
aur_pkgs_info, not_found_aur_pkgs = find_aur_packages(iter_package_names)
if not_found_aur_pkgs:
raise PackagesNotFoundInAUR(packages=not_found_aur_pkgs)
for aur_pkg in aur_pkgs_info:
aur_pkg_deps = get_aur_pkg_deps_and_version_matchers(aur_pkg)
if aur_pkg_deps:
all_deps_for_aur_packages[aur_pkg.name] = aur_pkg_deps
not_found_local_pkgs: List[str] = []
with ThreadPool() as pool:
all_requests = {}
for aur_pkg_name, deps_for_aur_package in all_deps_for_aur_packages.items():
all_requests[aur_pkg_name] = pool.apply_async(
find_missing_deps_for_aur_pkg, (
aur_pkg_name,
deps_for_aur_package,
aur_pkgs_info,
def get_remote_package(
new_pkg_name: str
) -> Optional[Union[pyalpm.Package, AURPackageInfo]]:
try:
repo_pkg = PackageDB.find_repo_package(new_pkg_name)
except PackagesNotFoundInRepo:
aur_packages, _not_found = find_aur_packages([new_pkg_name])
if aur_packages:
return aur_packages[0]
return None
else:
return repo_pkg
def get_new_aur_pkgs_conflicts(aur_packages_names: List[str]) -> Dict[str, List[str]]:
new_pkgs_conflicts_lists = {}
aur_pkgs_info, _not_founds_pkgs = find_aur_packages(aur_packages_names)
for aur_json in aur_pkgs_info:
conflicts: List[str] = []
conflicts += aur_json.conflicts or []
conflicts += aur_json.replaces or []
new_pkgs_conflicts_lists[aur_json.name] = list(set(conflicts))
return new_pkgs_conflicts_lists
def __init__( # pylint: disable=super-init-not-called
self,
package_names: Optional[List[str]] = None,
pkgbuild_path: Optional[str] = None
) -> None:
self.args = parse_args()
if package_names:
self.package_names = package_names
self.package_base = find_aur_packages([package_names[0]])[0][0].packagebase
self.repo_path = os.path.join(AUR_REPOS_CACHE_PATH, self.package_base)
self.pkgbuild_path = os.path.join(self.repo_path, 'PKGBUILD')
elif pkgbuild_path:
self.repo_path = dirname(pkgbuild_path)
self.pkgbuild_path = pkgbuild_path
srcinfo = SrcInfo(pkgbuild_path=pkgbuild_path)
pkgbase = srcinfo.get_value('pkgbase')
if pkgbase and srcinfo.pkgnames:
self.package_names = srcinfo.pkgnames
self.package_base = pkgbase
else:
raise BuildError(_("Can't get package name from PKGBUILD"))
else:
raise NotImplementedError('Either `package_names` or `pkgbuild_path` should be set')
self.build_dir = os.path.join(BUILD_CACHE_PATH, self.package_base)
def find_aur_updates(package_versions):
aur_pkgs_info, not_found_aur_pkgs = find_aur_packages(
package_versions.keys()
)
aur_updates = []
for result in aur_pkgs_info:
pkg_name = result.Name
aur_version = result.Version
current_version = package_versions[pkg_name]
if compare_versions(current_version, aur_version):
aur_update = PackageUpdate(
Name=pkg_name,
New_Version=aur_version,
Current_Version=current_version,
Description=result.Description
)
aur_updates.append(aur_update)
return aur_updates, not_found_aur_pkgs
raise exc
# if local package is too old
# let's see if a newer one can be found in AUR:
pkg_name = exc.depends_on
_aur_pkg_list, not_found_aur_pkgs = find_aur_packages([pkg_name, ])
if not_found_aur_pkgs:
raise exc
# start over computing deps and include just found AUR package:
self.install_package_names.append(pkg_name)
self.get_all_packages_info()
return
# prepare install info (InstallInfo objects)
# for all the AUR packages which gonna be built:
aur_pkgs = {
aur_pkg.name: aur_pkg
for aur_pkg in find_aur_packages(self.aur_deps_names)[0]
}
local_pkgs = PackageDB.get_local_dict()
for pkg_name in self.aur_deps_names:
aur_pkg = aur_pkgs[pkg_name]
local_pkg = local_pkgs.get(pkg_name)
self.aur_deps_install_info.append(InstallInfo(
name=pkg_name,
current_version=local_pkg.version if local_pkg else ' ',
new_version=aur_pkg.version,
description=aur_pkg.desc,
package=aur_pkg,
))