comparison mercurial/unionrepo.py @ 51822:0338fb200a30

typing: lock in new pytype gains from making revlog related classes typeable These were pretty clean changes in the pyi files from earlier in this series, so add them to the code to make it more understandable. There's one more trivial hint that can be added to the return of `mercurial.revlogutils.rewrite._filelog_from_filename()`, however it needs to be imported from '..' under the conditional of `typing.TYPE_CHECKING`, and that seems to confuse the import checker- possibly because there's already an import block from that level. (I would have expected a message about multiple import statements in this case, but got one about higher level imports should come first, no matter where I put the import statement.)
author Matt Harbison <matt_harbison@yahoo.com>
date Wed, 21 Aug 2024 22:15:05 -0400
parents 861fe9273d57
children f4733654f144
comparison
equal deleted inserted replaced
51821:766c55492258 51822:0338fb200a30
202 changelog2 = changelog.changelog(opener2) 202 changelog2 = changelog.changelog(opener2)
203 unionrevlog.__init__(self, opener, self.radix, changelog2, linkmapper) 203 unionrevlog.__init__(self, opener, self.radix, changelog2, linkmapper)
204 204
205 205
206 class unionmanifest(unionrevlog, manifest.manifestrevlog): 206 class unionmanifest(unionrevlog, manifest.manifestrevlog):
207 repotiprev: int
208 revlog2: manifest.ManifestRevlog
209
207 def __init__(self, nodeconstants, opener, opener2, linkmapper): 210 def __init__(self, nodeconstants, opener, opener2, linkmapper):
208 # XXX manifestrevlog is not actually a revlog , so mixing it with 211 # XXX manifestrevlog is not actually a revlog , so mixing it with
209 # bundlerevlog is not a good idea. 212 # bundlerevlog is not a good idea.
210 manifest.manifestrevlog.__init__(self, nodeconstants, opener) 213 manifest.manifestrevlog.__init__(self, nodeconstants, opener)
211 manifest2 = manifest.manifestrevlog(nodeconstants, opener2) 214 manifest2 = manifest.manifestrevlog(nodeconstants, opener2)
213 self, opener, self._revlog.radix, manifest2, linkmapper 216 self, opener, self._revlog.radix, manifest2, linkmapper
214 ) 217 )
215 218
216 219
217 class unionfilelog(filelog.filelog): 220 class unionfilelog(filelog.filelog):
221 _revlog: unionrevlog
222 repotiprev: int
223 revlog2: revlog.revlog
224
218 def __init__(self, opener, path, opener2, linkmapper, repo): 225 def __init__(self, opener, path, opener2, linkmapper, repo):
219 filelog.filelog.__init__(self, opener, path) 226 filelog.filelog.__init__(self, opener, path)
220 filelog2 = filelog.filelog(opener2, path) 227 filelog2 = filelog.filelog(opener2, path)
221 self._revlog = unionrevlog( 228 self._revlog = unionrevlog(
222 opener, self._revlog.radix, filelog2._revlog, linkmapper 229 opener, self._revlog.radix, filelog2._revlog, linkmapper