Mercurial > public > mercurial-scm > hg
diff mercurial/posix.py @ 52364:7ac7d5f20cb0
posix: (mostly) stop using the `pycompat.open()` shim
We still need it for the `posixfile` alias, because fixing all of those callers
is outside of the scope of this, and spills into the Windows implementation of
`posixfile`. But the other direct uses of `open()` can be dropped.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 04 Dec 2024 20:52:05 -0500 |
parents | f4733654f144 |
children | dd052842fc8e |
line wrap: on
line diff
--- a/mercurial/posix.py Wed Dec 04 20:46:30 2024 -0500 +++ b/mercurial/posix.py Wed Dec 04 20:52:05 2024 -0500 @@ -37,9 +37,6 @@ ) from .i18n import _ -from .pycompat import ( - open, -) from . import ( encoding, error, @@ -100,7 +97,7 @@ umask: int = os.umask(0) os.umask(umask) -posixfile = open +posixfile = pycompat.open def split(p: bytes) -> Tuple[bytes, bytes]: @@ -174,14 +171,14 @@ if l: if not stat.S_ISLNK(s): # switch file to link - with open(f, b'rb') as fp: + with open(f, 'rb') as fp: data = fp.read() unlink(f) try: os.symlink(data, f) except OSError: # failed to make a link, rewrite file - with open(f, b"wb") as fp: + with open(f, "wb") as fp: fp.write(data) # no chmod needed at this point @@ -190,17 +187,17 @@ # switch link to file data = os.readlink(f) unlink(f) - with open(f, b"wb") as fp: + with open(f, "wb") as fp: fp.write(data) s = 0o666 & ~umask # avoid restatting for chmod sx = s & 0o100 if st.st_nlink > 1 and bool(x) != bool(sx): # the file is a hardlink, break it - with open(f, b"rb") as fp: + with open(f, "rb") as fp: data = fp.read() unlink(f) - with open(f, b"wb") as fp: + with open(f, "wb") as fp: fp.write(data) if x and not sx: @@ -282,7 +279,7 @@ try: m = os.stat(checknoexec).st_mode except FileNotFoundError: - open(checknoexec, b'w').close() # might fail + open(checknoexec, 'w').close() # might fail m = os.stat(checknoexec).st_mode if m & EXECFLAGS == 0: # check-exec is exec and check-no-exec is not exec @@ -349,7 +346,7 @@ target = b'checklink-target' try: fullpath = os.path.join(cachedir, target) - open(fullpath, b'w').close() + open(fullpath, 'w').close() except PermissionError: # If we can't write to cachedir, just pretend # that the fs is readonly and by association