From 1a10fe3f51f7555bf8c29046c707719d7dccb33c Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Sun, 18 Oct 2020 09:58:33 +0200 Subject: Implementing error handling for #50. So that the errors do not come at the very end, but in the beginning right after the user inputted something (quicker feedback to the user). --- archinstall/lib/packages.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'archinstall/lib/packages.py') diff --git a/archinstall/lib/packages.py b/archinstall/lib/packages.py index 3a671784..29728abc 100644 --- a/archinstall/lib/packages.py +++ b/archinstall/lib/packages.py @@ -1,5 +1,6 @@ import urllib.request, urllib.parse import ssl, json +from .lib.exceptions import * BASE_URL = 'https://www.archlinux.org/packages/search/json/?name={package}' @@ -24,4 +25,19 @@ def find_packages(*names): result = {} for package in names: result[package] = find_package(package) - return result \ No newline at end of file + return result + +def validate_package_list(packages :list): + """ + Validates a list of given packages. + Raises `RequirementError` if one or more packages are not found. + """ + invalid_packages = [] + for package in packages: + if not find_package(package)['results']: + invalid_packages.append(package) + + if invalid_packages: + raise RequirementError(f"Invalid package names: {invalid_packages}") + + return True \ No newline at end of file -- cgit v1.2.3-54-g00ecf