From 1d528c205f433850f7c7889c7d5750ef5ec4b732 Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:00:03 -0700 Subject: [PATCH] look for modules in extensions directory. --- aqt/archives.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/aqt/archives.py b/aqt/archives.py index 29c6b0d0..e94b051d 100644 --- a/aqt/archives.py +++ b/aqt/archives.py @@ -31,6 +31,10 @@ from aqt.helper import Settings, get_hash, getUrl, ssplit from aqt.metadata import QtRepoProperty, Version +@dataclass +class UpdateXmls: + target_folder: str + xml_text: str @dataclass class TargetConfig: @@ -354,6 +358,7 @@ def _target_packages(self) -> ModuleToPackage: package_names = [ f"qt.qt{self.version.major}.{self._version_str()}.{suffix}", f"qt.{self._version_str()}.{suffix}", + f"extensions.{module}.{self._version_str()}.{self.arch}", ] if not module.startswith("addons."): package_names.append(f"qt.qt{self.version.major}.{self._version_str()}.addons.{suffix}") @@ -399,7 +404,24 @@ def _get_archives_base(self, name, target_packages): ) update_xml_url = posixpath.join(os_target_folder, "Updates.xml") update_xml_text = self._download_update_xml(update_xml_url) - self._parse_update_xml(os_target_folder, update_xml_text, target_packages) + arch = self.arch + if self.os_name == "windows": + arch = self.arch.replace("win64_", "", 1) + elif self.os_name == "linux": + arch = "x86_64" + elif self.os_name == "linux_arm64": + arch = "arm64" + extensions_target_folder = posixpath.join( + "online/qtsdkrepository", + os_name, + "extensions/qtwebengine", + self._version_str(), + arch + ) + extensions_xml_url = posixpath.join(extensions_target_folder, "Updates.xml") + extensions_xml_text = self._download_update_xml(extensions_xml_url) + update_xmls = [UpdateXmls(os_target_folder, update_xml_text), UpdateXmls(extensions_target_folder, extensions_xml_text) ] + self._parse_update_xmls(update_xmls, target_packages) def _download_update_xml(self, update_xml_path): """Hook for unit test.""" @@ -451,6 +473,10 @@ def _parse_update_xml(self, os_target_folder, update_xml_text, target_packages: pkg_update_name=packageupdate.name, # For testing purposes ) ) + + def _parse_update_xmls(self, update_xmls, target_packages: Optional[ModuleToPackage]): + for update_xml in update_xmls: + self._parse_update_xml(update_xml.target_folder, update_xml.xml_text, target_packages) # if we have located every requested package, then target_packages will be empty if not self.all_extra and len(target_packages) > 0: message = f"The packages {target_packages} were not found while parsing XML of package information!"