comparison mercurial/windows.py @ 31644:f80d9ddc40f3

py3: abuse r'' to preserve str-ness of literals passed to __setattr__()
author Yuya Nishihara <yuya@tcha.org>
date Sun, 26 Mar 2017 16:33:12 +0900
parents 52361c4f4dac
children 87f293edabb6
comparison
equal deleted inserted replaced
31643:6ceb3c4c3ab6 31644:f80d9ddc40f3
59 OPNONE = 0 59 OPNONE = 0
60 OPREAD = 1 60 OPREAD = 1
61 OPWRITE = 2 61 OPWRITE = 2
62 62
63 def __init__(self, fp): 63 def __init__(self, fp):
64 object.__setattr__(self, '_fp', fp) 64 object.__setattr__(self, r'_fp', fp)
65 object.__setattr__(self, '_lastop', 0) 65 object.__setattr__(self, r'_lastop', 0)
66 66
67 def __getattr__(self, name): 67 def __getattr__(self, name):
68 return getattr(self._fp, name) 68 return getattr(self._fp, name)
69 69
70 def __setattr__(self, name, value): 70 def __setattr__(self, name, value):
72 72
73 def _noopseek(self): 73 def _noopseek(self):
74 self._fp.seek(0, os.SEEK_CUR) 74 self._fp.seek(0, os.SEEK_CUR)
75 75
76 def seek(self, *args, **kwargs): 76 def seek(self, *args, **kwargs):
77 object.__setattr__(self, '_lastop', self.OPNONE) 77 object.__setattr__(self, r'_lastop', self.OPNONE)
78 return self._fp.seek(*args, **kwargs) 78 return self._fp.seek(*args, **kwargs)
79 79
80 def write(self, d): 80 def write(self, d):
81 if self._lastop == self.OPREAD: 81 if self._lastop == self.OPREAD:
82 self._noopseek() 82 self._noopseek()
83 83
84 object.__setattr__(self, '_lastop', self.OPWRITE) 84 object.__setattr__(self, r'_lastop', self.OPWRITE)
85 return self._fp.write(d) 85 return self._fp.write(d)
86 86
87 def writelines(self, *args, **kwargs): 87 def writelines(self, *args, **kwargs):
88 if self._lastop == self.OPREAD: 88 if self._lastop == self.OPREAD:
89 self._noopeseek() 89 self._noopeseek()
90 90
91 object.__setattr__(self, '_lastop', self.OPWRITE) 91 object.__setattr__(self, r'_lastop', self.OPWRITE)
92 return self._fp.writelines(*args, **kwargs) 92 return self._fp.writelines(*args, **kwargs)
93 93
94 def read(self, *args, **kwargs): 94 def read(self, *args, **kwargs):
95 if self._lastop == self.OPWRITE: 95 if self._lastop == self.OPWRITE:
96 self._noopseek() 96 self._noopseek()
97 97
98 object.__setattr__(self, '_lastop', self.OPREAD) 98 object.__setattr__(self, r'_lastop', self.OPREAD)
99 return self._fp.read(*args, **kwargs) 99 return self._fp.read(*args, **kwargs)
100 100
101 def readline(self, *args, **kwargs): 101 def readline(self, *args, **kwargs):
102 if self._lastop == self.OPWRITE: 102 if self._lastop == self.OPWRITE:
103 self._noopseek() 103 self._noopseek()
104 104
105 object.__setattr__(self, '_lastop', self.OPREAD) 105 object.__setattr__(self, r'_lastop', self.OPREAD)
106 return self._fp.readline(*args, **kwargs) 106 return self._fp.readline(*args, **kwargs)
107 107
108 def readlines(self, *args, **kwargs): 108 def readlines(self, *args, **kwargs):
109 if self._lastop == self.OPWRITE: 109 if self._lastop == self.OPWRITE:
110 self._noopseek() 110 self._noopseek()
111 111
112 object.__setattr__(self, '_lastop', self.OPREAD) 112 object.__setattr__(self, r'_lastop', self.OPREAD)
113 return self._fp.readlines(*args, **kwargs) 113 return self._fp.readlines(*args, **kwargs)
114 114
115 def posixfile(name, mode='r', buffering=-1): 115 def posixfile(name, mode='r', buffering=-1):
116 '''Open a file with even more POSIX-like semantics''' 116 '''Open a file with even more POSIX-like semantics'''
117 try: 117 try: