Mercurial > public > mercurial-scm > hg-stable
changeset 52890:7ca9c05ec335
typing: make `mercurial.util.sortdict` a generic class
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 20 Dec 2024 20:31:15 -0500 |
parents | 9a8815128679 |
children | b1daf3064362 |
files | mercurial/util.py |
diffstat | 1 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/util.py Sat Feb 08 00:14:20 2025 -0500 +++ b/mercurial/util.py Fri Dec 20 20:31:15 2024 -0500 @@ -95,6 +95,12 @@ _Tcow = TypeVar('_Tcow', bound="cow") +_KT = TypeVar("_KT") +"""An unconstrained key type for container classes (see typing.KT).""" + +_VT = TypeVar("_VT") +"""An unconstrained value type for container classes (see typing.VT).""" + base85: intmod.Base85 = policy.importmod('base85') osutil = policy.importmod('osutil') @@ -1351,7 +1357,7 @@ return self -class sortdict(collections.OrderedDict): +class sortdict(collections.OrderedDict[_KT, _VT]): """a simple sorted dictionary >>> d1 = sortdict([(b'a', 0), (b'b', 1)]) @@ -1366,7 +1372,7 @@ [('a', 0), ('a.5', 0.5), ('b', 1)] """ - def __setitem__(self, key, value): + def __setitem__(self, key: _KT, value: _VT) -> None: if key in self: del self[key] super().__setitem__(key, value) @@ -1381,7 +1387,7 @@ for k in f: self[k] = f[k] - def insert(self, position, key, value): + def insert(self, position: int, key: _KT, value: _VT): for i, (k, v) in enumerate(list(self.items())): if i == position: self[key] = value