Mercurial > public > mercurial-scm > hg-stable
diff mercurial/manifest.py @ 52503:048c11993d6a
typing: (mostly) align the signatures of `imanifestrevisionstored` overrides
When we change the implementations to subclass this explicitly, pytype complains
that the signatures mismatch for various methods. It seems hung up on ones in
`mercurial.manifest` that have type hints on the return value, but lacked it in
the Protocol class (which it thinks returns `None` if there's no annotation).
The tricky part is that a lot of the return types in the `mercurial.manifest`
module are custom types specific to that module (e.g. `'manifestctx' | 'treemanifestctx'`).
Those should probably be replaced with Protocol classes.
I was going to avoid making a long series longer by disabling that check for now
by putting `Any` as the return type on the Protocol class methods, and then
realized the problem is the class isn't marked as a Protocol (that property isn't
inherited). For now, lock in the synchronized signatures.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 23 Oct 2024 12:44:09 -0400 |
parents | 0851d94bfdaa |
children | d37d8dfe65bd |
line wrap: on
line diff
--- a/mercurial/manifest.py Tue Oct 22 22:28:10 2024 -0400 +++ b/mercurial/manifest.py Wed Oct 23 12:44:09 2024 -0400 @@ -2332,7 +2332,7 @@ md.set(f, new_node, new_flag) return md - def read_delta_new_entries(self, *, shallow=False) -> manifestdict: + def read_delta_new_entries(self, *, shallow: bool = False) -> manifestdict: """see `interface.imanifestrevisionbase` documentations""" # If we are using narrow, returning a delta against an arbitrary # changeset might return file outside the narrowspec. This can create @@ -2621,7 +2621,7 @@ bases = (store.deltaparent(r),) return self.read_any_fast_delta(bases, shallow=shallow)[1] - def readfast(self, shallow=False) -> AnyManifestDict: + def readfast(self, shallow: bool = False) -> AnyManifestDict: """Calls either readdelta or read, based on which would be less work. readdelta is called if the delta is against the p1, and therefore can be read quickly. @@ -2694,7 +2694,7 @@ def read(self): return excludeddir(self.nodeconstants, self._dir, self._node) - def readfast(self, shallow=False): + def readfast(self, shallow: bool = False): # special version of readfast since we don't have underlying storage return self.read()