Add type annotations to LocaleKeySorter
Task-number: QTBUG-128634 Pick-to: 6.8 Change-Id: I9a4261746cac029b0abf26fbd03b1915a0035147 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
This commit is contained in:
parent
93136f7c55
commit
bd475ddf47
@ -19,6 +19,7 @@ You can download jing from https://relaxng.org/jclark/jing.html if your
|
|||||||
package manager lacks the jing package.
|
package manager lacks the jing package.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from typing import Iterator
|
||||||
from xml.sax.saxutils import escape
|
from xml.sax.saxutils import escape
|
||||||
|
|
||||||
from localetools import Error, qtVersion
|
from localetools import Error, qtVersion
|
||||||
@ -261,7 +262,7 @@ class QLocaleXmlReader (object):
|
|||||||
what.args += (have, give)
|
what.args += (have, give)
|
||||||
raise
|
raise
|
||||||
|
|
||||||
def defaultMap(self):
|
def defaultMap(self) -> Iterator[tuple[tuple[int, int], int]]:
|
||||||
"""Map language and script to their default territory by ID.
|
"""Map language and script to their default territory by ID.
|
||||||
|
|
||||||
Yields ((language, script), territory) wherever the likely
|
Yields ((language, script), territory) wherever the likely
|
||||||
|
@ -17,7 +17,7 @@ The ISO 639-3 data file can be downloaded from the SIL website:
|
|||||||
import datetime
|
import datetime
|
||||||
import argparse
|
import argparse
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional
|
from typing import Iterator, Optional
|
||||||
|
|
||||||
from qlocalexml import QLocaleXmlReader
|
from qlocalexml import QLocaleXmlReader
|
||||||
from localetools import *
|
from localetools import *
|
||||||
@ -55,12 +55,12 @@ class LocaleKeySorter:
|
|||||||
# QLocale's likely sub-tag matching algorithms. Make sure this is
|
# QLocale's likely sub-tag matching algorithms. Make sure this is
|
||||||
# sorting in an order compatible with those algorithms.
|
# sorting in an order compatible with those algorithms.
|
||||||
|
|
||||||
def __init__(self, defaults):
|
def __init__(self, defaults: Iterator[tuple[tuple[int, int], int]]) -> None:
|
||||||
self.map = dict(defaults)
|
self.map: dict[tuple[int, int], int] = dict(defaults)
|
||||||
def foreign(self, key):
|
def foreign(self, key: tuple[int, int, int]) -> bool:
|
||||||
default = self.map.get(key[:2])
|
default: int | None = self.map.get(key[:2])
|
||||||
return default is None or default != 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 ?
|
# TODO: should we compare territory before or after script ?
|
||||||
return (key[0], self.foreign(key)) + key[1:]
|
return (key[0], self.foreign(key)) + key[1:]
|
||||||
|
|
||||||
@ -1010,7 +1010,8 @@ def main(argv, out, err):
|
|||||||
reader = QLocaleXmlReader(qlocalexml)
|
reader = QLocaleXmlReader(qlocalexml)
|
||||||
locale_map = dict(reader.loadLocaleMap(calendars, err.write))
|
locale_map = dict(reader.loadLocaleMap(calendars, err.write))
|
||||||
reader.pruneZoneNaming(locale_map, mutter)
|
reader.pruneZoneNaming(locale_map, mutter)
|
||||||
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)
|
code_data = LanguageCodeData(args.iso_path)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user