# HG changeset patch # User Matt Harbison # Date 1635023637 14400 # Node ID 9de0823705b416a709314da377703247c31a567c # Parent ebac1873314223bba9ec4d83bb8d36afdbd8079a typing: add more type hints to the errors module These were found by looking for `Any` types in the generated `*.pyi` file after running the tests. There are some more complicated types that I'm not sure of, and am leaving untyped. I also can't figure out how to get `self.hint` to be anything other than `Any` in most classes. Differential Revision: https://phab.mercurial-scm.org/D11719 diff -r ebac18733142 -r 9de0823705b4 mercurial/error.py --- a/mercurial/error.py Sat Oct 23 16:04:05 2021 -0400 +++ b/mercurial/error.py Sat Oct 23 17:13:57 2021 -0400 @@ -31,6 +31,7 @@ def _tobytes(exc): + # type: (...) -> bytes """Byte-stringify exception in the same way as BaseException_str()""" if not exc.args: return b'' @@ -47,7 +48,7 @@ """ def __init__(self, *args, **kw): - self.hint = kw.pop('hint', None) + self.hint = kw.pop('hint', None) # type: Optional[bytes] super(Hint, self).__init__(*args, **kw) @@ -71,6 +72,7 @@ if pycompat.ispy3: def __str__(self): + # type: () -> str # the output would be unreadable if the message was translated, # but do not replace it with encoding.strfromlocal(), which # may raise another exception. @@ -105,6 +107,7 @@ class SidedataHashError(RevlogError): def __init__(self, key, expected, got): + # type: (int, bytes, bytes) -> None self.hint = None self.sidedatakey = key self.expecteddigest = expected @@ -117,6 +120,7 @@ class LookupError(RevlogError, KeyError): def __init__(self, name, index, message): + # type: (bytes, bytes, bytes) -> None self.name = name self.index = index # this can't be called 'message' because at least some installs of @@ -343,6 +347,7 @@ """Exception raised when a remote repo reports failure""" def __init__(self, message=None, hint=None): + # type: (Optional[bytes], Optional[bytes]) -> None from .i18n import _ if message: