Add type annotations to LocaleKeySorter

Task-number: QTBUG-128634
Change-Id: I9a4261746cac029b0abf26fbd03b1915a0035147
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
(cherry picked from commit bd475ddf47e33535c2b79367c8850cd611089e3c)
This commit is contained in:
Mate Barany 2024-09-13 17:23:37 +02:00
parent bbf819dd23
commit d8128041e0
2 changed files with 10 additions and 8 deletions

View File

@ -19,6 +19,7 @@ You can download jing from https://relaxng.org/jclark/jing.html if your
package manager lacks the jing package.
"""
from typing import Iterator
from xml.sax.saxutils import escape
from localetools import Error
@ -137,7 +138,7 @@ class QLocaleXmlReader (object):
yield ('_'.join(tag(have)), ids(have),
'_'.join(tag(give)), ids(give))
def defaultMap(self):
def defaultMap(self) -> Iterator[tuple[tuple[int, int], int]]:
"""Map language and script to their default territory by ID.
Yields ((language, script), territory) wherever the likely

View File

@ -17,7 +17,7 @@ The ISO 639-3 data file can be downloaded from the SIL website:
import datetime
import argparse
from pathlib import Path
from typing import Optional
from typing import Iterator, Optional
from qlocalexml import QLocaleXmlReader
from localetools import *
@ -55,12 +55,12 @@ class LocaleKeySorter:
# QLocale's likely sub-tag matching algorithms. Make sure this is
# sorting in an order compatible with those algorithms.
def __init__(self, defaults):
self.map = dict(defaults)
def foreign(self, key):
default = self.map.get(key[:2])
def __init__(self, defaults: Iterator[tuple[tuple[int, int], int]]) -> None:
self.map: dict[tuple[int, int], int] = dict(defaults)
def foreign(self, key: tuple[int, int, int]) -> bool:
default: int | None = self.map.get(key[:2])
return default is None or default != key[2]
def __call__(self, key):
def __call__(self, key: tuple[int, int, int]) -> tuple[int, bool, int, int]:
# TODO: should we compare territory before or after script ?
return (key[0], self.foreign(key)) + key[1:]
@ -697,7 +697,8 @@ def main(argv, out, err):
reader = QLocaleXmlReader(qlocalexml)
locale_map = dict(reader.loadLocaleMap(calendars, err.write))
locale_keys = sorted(locale_map.keys(), key=LocaleKeySorter(reader.defaultMap()))
locale_keys: list[tuple[int, int, int]] = sorted(locale_map.keys(),
key=LocaleKeySorter(reader.defaultMap()))
code_data = LanguageCodeData(args.iso_path)