Add type annotations to Locale
Task-number: QTBUG-129564 Change-Id: I6fe00162251ffa56c86ba2af98b8f066c9b5f09b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit bb32299e75c1eb4c4125455d184dd633733b3fb0)
This commit is contained in:
parent
fd27727e26
commit
4f2c976b7e
@ -495,18 +495,19 @@ class Locale (object):
|
|||||||
same signatures as those of a dict, acting on the instance's
|
same signatures as those of a dict, acting on the instance's
|
||||||
__dict__, so the results are accessed as attributes rather than
|
__dict__, so the results are accessed as attributes rather than
|
||||||
mapping keys."""
|
mapping keys."""
|
||||||
def __init__(self, data=None, **kw):
|
def __init__(self, data: dict[str, Any]|None = None, **kw: Any) -> None:
|
||||||
self.update(data, **kw)
|
self.update(data, **kw)
|
||||||
|
|
||||||
def update(self, data=None, **kw):
|
def update(self, data: dict[str, Any]|None = None, **kw: Any) -> None:
|
||||||
if data: self.__dict__.update(data)
|
if data: self.__dict__.update(data)
|
||||||
if kw: self.__dict__.update(kw)
|
if kw: self.__dict__.update(kw)
|
||||||
|
|
||||||
def __len__(self): # Used when testing as a boolean
|
def __len__(self) -> int: # Used when testing as a boolean
|
||||||
return len(self.__dict__)
|
return len(self.__dict__)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def propsMonthDay(scale, lengths=('long', 'short', 'narrow')):
|
def propsMonthDay(scale: str, lengths: tuple[str, str, str] = ('long', 'short', 'narrow')
|
||||||
|
) -> Iterator[str]:
|
||||||
for L in lengths:
|
for L in lengths:
|
||||||
yield camelCase((L, scale))
|
yield camelCase((L, scale))
|
||||||
yield camelCase(('standalone', L, scale))
|
yield camelCase(('standalone', L, scale))
|
||||||
@ -534,7 +535,8 @@ class Locale (object):
|
|||||||
__qDoW = {"mon": 1, "tue": 2, "wed": 3, "thu": 4, "fri": 5, "sat": 6, "sun": 7}
|
__qDoW = {"mon": 1, "tue": 2, "wed": 3, "thu": 4, "fri": 5, "sat": 6, "sun": 7}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def fromXmlData(cls, lookup, calendars=('gregorian',)):
|
def fromXmlData(cls, lookup: Callable[[str], str], calendars: Iterable[str]=('gregorian',)
|
||||||
|
) -> "Locale":
|
||||||
"""Constructor from the contents of XML elements.
|
"""Constructor from the contents of XML elements.
|
||||||
|
|
||||||
First parameter, lookup, is called with the names of XML elements that
|
First parameter, lookup, is called with the names of XML elements that
|
||||||
@ -546,7 +548,7 @@ class Locale (object):
|
|||||||
|
|
||||||
Optional second parameter, calendars, is a sequence of calendars for
|
Optional second parameter, calendars, is a sequence of calendars for
|
||||||
which data is to be retrieved."""
|
which data is to be retrieved."""
|
||||||
data = {}
|
data: dict[str, int|str|dict[str, str]] = {}
|
||||||
for k in cls.__asint:
|
for k in cls.__asint:
|
||||||
data[k] = int(lookup(k))
|
data[k] = int(lookup(k))
|
||||||
|
|
||||||
@ -566,7 +568,8 @@ class Locale (object):
|
|||||||
|
|
||||||
return cls(data)
|
return cls(data)
|
||||||
|
|
||||||
def toXml(self, write, calendars=('gregorian',)):
|
def toXml(self, write: Callable[[str, str], None], calendars: Iterable[str]=('gregorian',)
|
||||||
|
) -> None:
|
||||||
"""Writes its data as QLocale XML.
|
"""Writes its data as QLocale XML.
|
||||||
|
|
||||||
First argument, write, is a callable taking the name and
|
First argument, write, is a callable taking the name and
|
||||||
@ -576,7 +579,7 @@ class Locale (object):
|
|||||||
Optional second argument is a list of calendar names, in the
|
Optional second argument is a list of calendar names, in the
|
||||||
form used by CLDR; its default is ('gregorian',).
|
form used by CLDR; its default is ('gregorian',).
|
||||||
"""
|
"""
|
||||||
get = lambda k: getattr(self, k)
|
get: Callable[[str], str | Iterable[int]] = lambda k: getattr(self, k)
|
||||||
for key in ('language', 'script', 'territory'):
|
for key in ('language', 'script', 'territory'):
|
||||||
write(key, get(key))
|
write(key, get(key))
|
||||||
write(f'{key}code', get(f'{key}_code'))
|
write(f'{key}code', get(f'{key}_code'))
|
||||||
@ -608,7 +611,7 @@ class Locale (object):
|
|||||||
write(key, get(key))
|
write(key, get(key))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def C(cls, en_US):
|
def C(cls, en_US: "Locale") -> "Locale": # return type should be Self from Python 3.11
|
||||||
"""Returns an object representing the C locale.
|
"""Returns an object representing the C locale.
|
||||||
|
|
||||||
Required argument, en_US, is the corresponding object for the
|
Required argument, en_US, is the corresponding object for the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user