typing: make the manifest classes known to pytype
These are the same changes as
c1d7ac70980b and
45270e286bdc made to dirstate,
for the same reasons. The migration away from decorating the classes with
`@interfaceutil.implementer` was started back in
3e9a660b074a, but missed one.
--- a/mercurial/manifest.py Mon Aug 19 22:21:16 2024 -0400
+++ b/mercurial/manifest.py Mon Aug 19 22:27:43 2024 -0400
@@ -9,6 +9,7 @@
import heapq
import itertools
import struct
+import typing
import weakref
from typing import (
@@ -753,6 +754,9 @@
manifestdict = interfaceutil.implementer(repository.imanifestdict)(ManifestDict)
+if typing.TYPE_CHECKING:
+ manifestdict = ManifestDict
+
def _msearch(
m: ByteString, s: bytes, lo: int = 0, hi: Optional[int] = None
@@ -1535,6 +1539,9 @@
treemanifest = interfaceutil.implementer(repository.imanifestdict)(TreeManifest)
+if typing.TYPE_CHECKING:
+ treemanifest = TreeManifest
+
class manifestfulltextcache(util.lrucachedict):
"""File-backed LRU cache for the manifest cache
@@ -2047,13 +2054,14 @@
ManifestRevlog
)
+if typing.TYPE_CHECKING:
+ manifestrevlog = ManifestRevlog
AnyManifestCtx = Union['ManifestCtx', 'TreeManifestCtx']
AnyManifestDict = Union[ManifestDict, TreeManifest]
-@interfaceutil.implementer(repository.imanifestlog)
-class manifestlog:
+class ManifestLog:
"""A collection class representing the collection of manifest snapshots
referenced by commits in the repository.
@@ -2157,6 +2165,12 @@
return self._rootstore._revlog.update_caches(transaction=transaction)
+manifestlog = interfaceutil.implementer(repository.imanifestlog)(ManifestLog)
+
+if typing.TYPE_CHECKING:
+ manifestlog = ManifestLog
+
+
class MemManifestCtx:
def __init__(self, manifestlog):
self._manifestlog = manifestlog
@@ -2190,6 +2204,9 @@
repository.imanifestrevisionwritable
)(MemManifestCtx)
+if typing.TYPE_CHECKING:
+ memmanifestctx = MemManifestCtx
+
class ManifestCtx:
"""A class representing a single revision of a manifest, including its
@@ -2353,6 +2370,9 @@
ManifestCtx
)
+if typing.TYPE_CHECKING:
+ manifestctx = ManifestCtx
+
class MemTreeManifestCtx:
def __init__(self, manifestlog, dir=b''):
@@ -2392,6 +2412,9 @@
repository.imanifestrevisionwritable
)(MemTreeManifestCtx)
+if typing.TYPE_CHECKING:
+ memtreemanifestctx = MemTreeManifestCtx
+
class TreeManifestCtx:
def __init__(self, manifestlog, dir, node):
@@ -2660,6 +2683,9 @@
TreeManifestCtx
)
+if typing.TYPE_CHECKING:
+ treemanifestctx = TreeManifestCtx
+
class excludeddir(treemanifest):
"""Stand-in for a directory that is excluded from the repository.