feat: support list Qt 6.8.0

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
This commit is contained in:
Hiroshi Miura
2024-06-20 20:03:23 +09:00
parent 196cf2b495
commit 6f2f085fdb

View File

@@ -237,7 +237,15 @@ class ArchiveId:
target=self.target, target=self.target,
) )
def to_folder(self, qt_version_no_dots: str, extension: Optional[str] = None) -> str: def to_folder(self, version: Version, qt_version_no_dots: str, extension: Optional[str] = None) -> str:
if version >= Version("6.8.0"):
return "{category}{major}_{ver}/{category}{major}_{ver}{ext}".format(
category=self.category,
major=qt_version_no_dots[0],
ver=qt_version_no_dots,
ext="_" + extension if extension else "",
)
else:
return "{category}{major}_{ver}{ext}".format( return "{category}{major}_{ver}{ext}".format(
category=self.category, category=self.category,
major=qt_version_no_dots[0], major=qt_version_no_dots[0],
@@ -611,8 +619,9 @@ class MetadataFactory:
qt_ver_str = self._get_qt_version_str(version) qt_ver_str = self._get_qt_version_str(version)
for extension in self.archive_id.all_extensions(version): for extension in self.archive_id.all_extensions(version):
modules: Dict[str, Dict[str, str]] = {} modules: Dict[str, Dict[str, str]] = {}
folder = self.archive_id.to_folder(version, qt_ver_str, extension)
try: try:
modules = self._fetch_module_metadata(self.archive_id.to_folder(qt_ver_str, extension)) modules = self._fetch_module_metadata(folder)
except ArchiveDownloadError as e: except ArchiveDownloadError as e:
if extension == "": if extension == "":
raise raise
@@ -810,7 +819,7 @@ class MetadataFactory:
qt_ver_str = self._get_qt_version_str(version) qt_ver_str = self._get_qt_version_str(version)
# Example: re.compile(r"^(preview\.)?qt\.(qt5\.)?590\.(.+)$") # Example: re.compile(r"^(preview\.)?qt\.(qt5\.)?590\.(.+)$")
pattern = re.compile(r"^(preview\.)?qt\.(qt" + str(version.major) + r"\.)?" + qt_ver_str + r"\.(.+)$") pattern = re.compile(r"^(preview\.)?qt\.(qt" + str(version.major) + r"\.)?" + qt_ver_str + r"\.(.+)$")
modules_meta = self._fetch_module_metadata(self.archive_id.to_folder(qt_ver_str, extension)) modules_meta = self._fetch_module_metadata(self.archive_id.to_folder(version, qt_ver_str, extension))
def to_module_arch(name: str) -> Tuple[Optional[str], Optional[str]]: def to_module_arch(name: str) -> Tuple[Optional[str], Optional[str]]:
_match = pattern.match(name) _match = pattern.match(name)
@@ -856,7 +865,7 @@ class MetadataFactory:
def matches_arch(element: Element) -> bool: def matches_arch(element: Element) -> bool:
return bool(pattern.match(MetadataFactory.require_text(element, "Name"))) return bool(pattern.match(MetadataFactory.require_text(element, "Name")))
modules_meta = self._fetch_module_metadata(self.archive_id.to_folder(qt_ver_str, extension), matches_arch) modules_meta = self._fetch_module_metadata(self.archive_id.to_folder(version, qt_ver_str, extension), matches_arch)
m: Dict[str, Dict[str, str]] = {} m: Dict[str, Dict[str, str]] = {}
for key, value in modules_meta.items(): for key, value in modules_meta.items():
match = pattern.match(key) match = pattern.match(key)
@@ -874,7 +883,7 @@ class MetadataFactory:
"qt", "qt",
), "Internal misuse of fetch_modules_sde" ), "Internal misuse of fetch_modules_sde"
qt_ver_str = self._get_qt_version_str(version) qt_ver_str = self._get_qt_version_str(version)
modules_meta = self._fetch_module_metadata(self.archive_id.to_folder(qt_ver_str, "src_doc_examples")) modules_meta = self._fetch_module_metadata(self.archive_id.to_folder(version, qt_ver_str, "src_doc_examples"))
# pattern: Match all names "qt.qt5.12345.doc.(\w+) # pattern: Match all names "qt.qt5.12345.doc.(\w+)
pattern = re.compile(r"^qt\.(qt" + str(version.major) + r"\.)?" + qt_ver_str + r"\." + cmd_type + r"\.(.+)$") pattern = re.compile(r"^qt\.(qt" + str(version.major) + r"\.)?" + qt_ver_str + r"\." + cmd_type + r"\.(.+)$")
@@ -913,7 +922,7 @@ class MetadataFactory:
predicate = no_modules if not modules else all_modules if "all" in modules else specify_modules predicate = no_modules if not modules else all_modules if "all" in modules else specify_modules
try: try:
mod_metadata = self._fetch_module_metadata( mod_metadata = self._fetch_module_metadata(
self.archive_id.to_folder(qt_version_str, extension), predicate=predicate self.archive_id.to_folder(version, qt_version_str, extension), predicate=predicate
) )
except (AttributeError, ValueError) as e: except (AttributeError, ValueError) as e:
raise ArchiveListError(f"Downloaded metadata is corrupted. {e}") from e raise ArchiveListError(f"Downloaded metadata is corrupted. {e}") from e