equal
deleted
inserted
replaced
153 __slots__ = ( |
153 __slots__ = ( |
154 'date', |
154 'date', |
155 '_rawdesc', |
155 '_rawdesc', |
156 'extra', |
156 'extra', |
157 'files', |
157 'files', |
158 'manifest', |
158 '_rawmanifest', |
159 'user', |
159 'user', |
160 ) |
160 ) |
161 |
161 |
162 def __new__(cls, text): |
162 def __new__(cls, text): |
163 if not text: |
163 if not text: |
186 # changelog v0 doesn't use extra |
186 # changelog v0 doesn't use extra |
187 |
187 |
188 doublenl = text.index('\n\n') |
188 doublenl = text.index('\n\n') |
189 self._rawdesc = text[doublenl + 2:] |
189 self._rawdesc = text[doublenl + 2:] |
190 |
190 |
|
191 nl1 = text.index('\n') |
|
192 self._rawmanifest = text[0:nl1] |
|
193 |
191 l = text[:doublenl].split('\n') |
194 l = text[:doublenl].split('\n') |
192 self.manifest = bin(l[0]) |
|
193 self.user = encoding.tolocal(l[1]) |
195 self.user = encoding.tolocal(l[1]) |
194 |
196 |
195 tdata = l[2].split(' ', 2) |
197 tdata = l[2].split(' ', 2) |
196 if len(tdata) != 3: |
198 if len(tdata) != 3: |
197 time = float(tdata[0]) |
199 time = float(tdata[0]) |
207 |
209 |
208 self.date = (time, timezone) |
210 self.date = (time, timezone) |
209 self.files = l[3:] |
211 self.files = l[3:] |
210 |
212 |
211 return self |
213 return self |
|
214 |
|
215 @property |
|
216 def manifest(self): |
|
217 return bin(self._rawmanifest) |
212 |
218 |
213 @property |
219 @property |
214 def description(self): |
220 def description(self): |
215 return encoding.tolocal(self._rawdesc) |
221 return encoding.tolocal(self._rawdesc) |
216 |
222 |