[PATCH 6 of 7] py3: abuse r'' to preserve str-ness of literals passed to __setattr__()
Augie Fackler
raf at durin42.com
Mon Mar 27 08:51:03 EDT 2017
On Sun, Mar 26, 2017 at 08:59:49PM +0900, Yuya Nishihara wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # Date 1490513592 -32400
> # Sun Mar 26 16:33:12 2017 +0900
> # Node ID c00753c42a0b04dc72ed831a87945f1eb41c84c1
> # Parent 5e8e48cb4f83a583515b4caaf97045b86747c499
> py3: abuse r'' to preserve str-ness of literals passed to __setattr__()
I've taken patches 1-4 and 6. Looking at 5 now and going to compare to
my version (I did less work, it looks lik you might have managed to
save some perf)
>
> diff --git a/mercurial/demandimport.py b/mercurial/demandimport.py
> --- a/mercurial/demandimport.py
> +++ b/mercurial/demandimport.py
> @@ -76,9 +76,9 @@ class _demandmod(object):
> else:
> head = name
> after = []
> - object.__setattr__(self, "_data",
> + object.__setattr__(self, r"_data",
> (head, globals, locals, after, level, set()))
> - object.__setattr__(self, "_module", None)
> + object.__setattr__(self, r"_module", None)
> def _extend(self, name):
> """add to the list of submodules to load"""
> self._data[3].append(name)
> @@ -138,7 +138,7 @@ class _demandmod(object):
> if modref and getattr(modref, head, None) == self:
> setattr(modref, head, mod)
>
> - object.__setattr__(self, "_module", mod)
> + object.__setattr__(self, r"_module", mod)
>
> def __repr__(self):
> if self._module:
> diff --git a/mercurial/pure/osutil.py b/mercurial/pure/osutil.py
> --- a/mercurial/pure/osutil.py
> +++ b/mercurial/pure/osutil.py
> @@ -342,8 +342,8 @@ else:
> # unfortunately, f.name is '<fdopen>' at this point -- so we store
> # the name on this wrapper. We cannot just assign to f.name,
> # because that attribute is read-only.
> - object.__setattr__(self, 'name', name)
> - object.__setattr__(self, '_file', f)
> + object.__setattr__(self, r'name', name)
> + object.__setattr__(self, r'_file', f)
>
> def __iter__(self):
> return self._file
> diff --git a/mercurial/vfs.py b/mercurial/vfs.py
> --- a/mercurial/vfs.py
> +++ b/mercurial/vfs.py
> @@ -480,7 +480,7 @@ class closewrapbase(object):
> Do not instantiate outside of the vfs layer.
> """
> def __init__(self, fh):
> - object.__setattr__(self, '_origfh', fh)
> + object.__setattr__(self, r'_origfh', fh)
>
> def __getattr__(self, attr):
> return getattr(self._origfh, attr)
> @@ -507,7 +507,7 @@ class delayclosedfile(closewrapbase):
> """
> def __init__(self, fh, closer):
> super(delayclosedfile, self).__init__(fh)
> - object.__setattr__(self, '_closer', closer)
> + object.__setattr__(self, r'_closer', closer)
>
> def __exit__(self, exc_type, exc_value, exc_tb):
> self._closer.close(self._origfh)
> @@ -618,7 +618,7 @@ class checkambigatclosing(closewrapbase)
> """
> def __init__(self, fh):
> super(checkambigatclosing, self).__init__(fh)
> - object.__setattr__(self, '_oldstat', util.filestat(fh.name))
> + object.__setattr__(self, r'_oldstat', util.filestat(fh.name))
>
> def _checkambig(self):
> oldstat = self._oldstat
> diff --git a/mercurial/windows.py b/mercurial/windows.py
> --- a/mercurial/windows.py
> +++ b/mercurial/windows.py
> @@ -61,8 +61,8 @@ class mixedfilemodewrapper(object):
> OPWRITE = 2
>
> def __init__(self, fp):
> - object.__setattr__(self, '_fp', fp)
> - object.__setattr__(self, '_lastop', 0)
> + object.__setattr__(self, r'_fp', fp)
> + object.__setattr__(self, r'_lastop', 0)
>
> def __getattr__(self, name):
> return getattr(self._fp, name)
> @@ -74,42 +74,42 @@ class mixedfilemodewrapper(object):
> self._fp.seek(0, os.SEEK_CUR)
>
> def seek(self, *args, **kwargs):
> - object.__setattr__(self, '_lastop', self.OPNONE)
> + object.__setattr__(self, r'_lastop', self.OPNONE)
> return self._fp.seek(*args, **kwargs)
>
> def write(self, d):
> if self._lastop == self.OPREAD:
> self._noopseek()
>
> - object.__setattr__(self, '_lastop', self.OPWRITE)
> + object.__setattr__(self, r'_lastop', self.OPWRITE)
> return self._fp.write(d)
>
> def writelines(self, *args, **kwargs):
> if self._lastop == self.OPREAD:
> self._noopeseek()
>
> - object.__setattr__(self, '_lastop', self.OPWRITE)
> + object.__setattr__(self, r'_lastop', self.OPWRITE)
> return self._fp.writelines(*args, **kwargs)
>
> def read(self, *args, **kwargs):
> if self._lastop == self.OPWRITE:
> self._noopseek()
>
> - object.__setattr__(self, '_lastop', self.OPREAD)
> + object.__setattr__(self, r'_lastop', self.OPREAD)
> return self._fp.read(*args, **kwargs)
>
> def readline(self, *args, **kwargs):
> if self._lastop == self.OPWRITE:
> self._noopseek()
>
> - object.__setattr__(self, '_lastop', self.OPREAD)
> + object.__setattr__(self, r'_lastop', self.OPREAD)
> return self._fp.readline(*args, **kwargs)
>
> def readlines(self, *args, **kwargs):
> if self._lastop == self.OPWRITE:
> self._noopseek()
>
> - object.__setattr__(self, '_lastop', self.OPREAD)
> + object.__setattr__(self, r'_lastop', self.OPREAD)
> return self._fp.readlines(*args, **kwargs)
>
> def posixfile(name, mode='r', buffering=-1):
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list