mercurial/posix.py
changeset 49816 ae93ada06454
parent 49815 464fe8b8f474
child 49818 3fd5824f1177
--- a/mercurial/posix.py	Fri Dec 16 18:14:54 2022 -0500
+++ b/mercurial/posix.py	Fri Dec 16 18:27:15 2022 -0500
@@ -24,9 +24,11 @@
     Iterable,
     Iterator,
     List,
+    Match,
     NoReturn,
     Optional,
     Sequence,
+    Tuple,
     Union,
 )
 
@@ -65,15 +67,15 @@
 unlink = os.unlink
 rename = os.rename
 removedirs = os.removedirs
-expandglobs = False
+expandglobs: bool = False
 
-umask = os.umask(0)
+umask: int = os.umask(0)
 os.umask(umask)
 
 posixfile = open
 
 
-def split(p):
+def split(p: bytes) -> Tuple[bytes, bytes]:
     """Same as posixpath.split, but faster
 
     >>> import posixpath
@@ -352,13 +354,13 @@
             return False
 
 
-def checkosfilename(path):
+def checkosfilename(path: bytes) -> Optional[bytes]:
     """Check that the base-relative path is a valid filename on this platform.
     Returns None if the path is ok, or a UI string describing the problem."""
     return None  # on posix platforms, every path is ok
 
 
-def getfsmountpoint(dirpath):
+def getfsmountpoint(dirpath: bytes) -> Optional[bytes]:
     """Get the filesystem mount point from a directory (best-effort)
 
     Returns None if we are unsure. Raises OSError on ENOENT, EPERM, etc.
@@ -410,7 +412,7 @@
 
 
 # what normcase does to ASCII strings
-normcasespec = encoding.normcasespecs.lower
+normcasespec: int = encoding.normcasespecs.lower
 # fallback normcase function for non-ASCII strings
 normcasefallback = normcase
 
@@ -518,7 +520,7 @@
         return False
 
 
-_needsshellquote = None
+_needsshellquote: Optional[Match[bytes]] = None
 
 
 def shellquote(s: bytes) -> bytes:
@@ -647,7 +649,7 @@
     return os.spawnvp(os.P_NOWAIT | getattr(os, 'P_DETACH', 0), args[0], args)
 
 
-def gethgcmd():
+def gethgcmd():  # TODO: convert to bytes, like on Windows?
     return sys.argv[:1]