diff --git a/licensecheck/packageinfo.py b/licensecheck/packageinfo.py index 4b3b391..9c6298e 100644 --- a/licensecheck/packageinfo.py +++ b/licensecheck/packageinfo.py @@ -3,6 +3,7 @@ from __future__ import annotations import configparser +from concurrent.futures import ThreadPoolExecutor import contextlib import re from collections.abc import Iterable @@ -76,13 +77,8 @@ def getPackages(self) -> set[PackageInfo]: :param set[ucstr] reqs: Set of dependency names to retrieve information for. :return set[PackageInfo]: A set of package information objects. """ - package_info_set = set() - - for package in self.reqs: - package_info = self.get_package_info(package) - package_info_set.add(package_info) - - return package_info_set + with ThreadPoolExecutor() as executor: + return set(executor.map(self.get_package_info, self.reqs)) def get_package_info(self, package: PackageInfo) -> PackageInfo: """Retrieve package information, preferring local data.