--- a/mercurial/localrepo.py Sat Nov 05 00:38:02 2022 -0400
+++ b/mercurial/localrepo.py Wed Nov 02 16:43:01 2022 -0400
@@ -15,6 +15,10 @@
import weakref
from concurrent import futures
+from typing import (
+ Optional,
+)
+
from .i18n import _
from .node import (
bin,
@@ -526,7 +530,7 @@
return set(read(b'requires').splitlines())
-def makelocalrepository(baseui, path, intents=None):
+def makelocalrepository(baseui, path: bytes, intents=None):
"""Create a local repository object.
Given arguments needed to construct a local repository, this function
@@ -845,7 +849,13 @@
)
-def loadhgrc(ui, wdirvfs, hgvfs, requirements, sharedvfs=None):
+def loadhgrc(
+ ui,
+ wdirvfs: vfsmod.vfs,
+ hgvfs: vfsmod.vfs,
+ requirements,
+ sharedvfs: Optional[vfsmod.vfs] = None,
+):
"""Load hgrc files/content into a ui instance.
This is called during repository opening to load any additional
@@ -1323,15 +1333,15 @@
self,
baseui,
ui,
- origroot,
- wdirvfs,
- hgvfs,
+ origroot: bytes,
+ wdirvfs: vfsmod.vfs,
+ hgvfs: vfsmod.vfs,
requirements,
supportedrequirements,
- sharedpath,
+ sharedpath: bytes,
store,
- cachevfs,
- wcachevfs,
+ cachevfs: vfsmod.vfs,
+ wcachevfs: vfsmod.vfs,
features,
intents=None,
):
@@ -1977,7 +1987,7 @@
def __iter__(self):
return iter(self.changelog)
- def revs(self, expr, *args):
+ def revs(self, expr: bytes, *args):
"""Find revisions matching a revset.
The revset is specified as a string ``expr`` that may contain
@@ -1993,7 +2003,7 @@
tree = revsetlang.spectree(expr, *args)
return revset.makematcher(tree)(self)
- def set(self, expr, *args):
+ def set(self, expr: bytes, *args):
"""Find revisions matching a revset and emit changectx instances.
This is a convenience wrapper around ``revs()`` that iterates the
@@ -2005,7 +2015,7 @@
for r in self.revs(expr, *args):
yield self[r]
- def anyrevs(self, specs, user=False, localalias=None):
+ def anyrevs(self, specs: bytes, user=False, localalias=None):
"""Find revisions matching one of the given revsets.
Revset aliases from the configuration are not expanded by default. To
@@ -2030,7 +2040,7 @@
m = revset.matchany(None, specs, localalias=localalias)
return m(self)
- def url(self):
+ def url(self) -> bytes:
return b'file:' + self.root
def hook(self, name, throw=False, **args):
@@ -2229,7 +2239,7 @@
return b'store'
return None
- def wjoin(self, f, *insidef):
+ def wjoin(self, f: bytes, *insidef: bytes) -> bytes:
return self.vfs.reljoin(self.root, f, *insidef)
def setparents(self, p1, p2=None):
@@ -2238,17 +2248,17 @@
self[None].setparents(p1, p2)
self._quick_access_changeid_invalidate()
- def filectx(self, path, changeid=None, fileid=None, changectx=None):
+ def filectx(self, path: bytes, changeid=None, fileid=None, changectx=None):
"""changeid must be a changeset revision, if specified.
fileid can be a file revision or node."""
return context.filectx(
self, path, changeid, fileid, changectx=changectx
)
- def getcwd(self):
+ def getcwd(self) -> bytes:
return self.dirstate.getcwd()
- def pathto(self, f, cwd=None):
+ def pathto(self, f: bytes, cwd: Optional[bytes] = None) -> bytes:
return self.dirstate.pathto(f, cwd)
def _loadfilter(self, filter):
@@ -2300,14 +2310,21 @@
def adddatafilter(self, name, filter):
self._datafilters[name] = filter
- def wread(self, filename):
+ def wread(self, filename: bytes) -> bytes:
if self.wvfs.islink(filename):
data = self.wvfs.readlink(filename)
else:
data = self.wvfs.read(filename)
return self._filter(self._encodefilterpats, filename, data)
- def wwrite(self, filename, data, flags, backgroundclose=False, **kwargs):
+ def wwrite(
+ self,
+ filename: bytes,
+ data: bytes,
+ flags: bytes,
+ backgroundclose=False,
+ **kwargs
+ ) -> int:
"""write ``data`` into ``filename`` in the working directory
This returns length of written (maybe decoded) data.
@@ -2325,7 +2342,7 @@
self.wvfs.setflags(filename, False, False)
return len(data)
- def wwritedata(self, filename, data):
+ def wwritedata(self, filename: bytes, data: bytes) -> bytes:
return self._filter(self._decodefilterpats, filename, data)
def currenttransaction(self):
@@ -3520,13 +3537,13 @@
return a
-def undoname(fn):
+def undoname(fn: bytes) -> bytes:
base, name = os.path.split(fn)
assert name.startswith(b'journal')
return os.path.join(base, name.replace(b'journal', b'undo', 1))
-def instance(ui, path, create, intents=None, createopts=None):
+def instance(ui, path: bytes, create, intents=None, createopts=None):
# prevent cyclic import localrepo -> upgrade -> localrepo
from . import upgrade
@@ -3543,7 +3560,7 @@
return repo
-def islocal(path):
+def islocal(path: bytes) -> bool:
return True
@@ -3801,7 +3818,7 @@
return {k: v for k, v in createopts.items() if k not in known}
-def createrepository(ui, path, createopts=None, requirements=None):
+def createrepository(ui, path: bytes, createopts=None, requirements=None):
"""Create a new repository in a vfs.
``path`` path to the new repo's working directory.