Lines Matching refs:self
135 def __init__(self, old_metadata, new_metadata, force, missing_outputs): argument
136 self.old_metadata = old_metadata
137 self.new_metadata = new_metadata
138 self.force = force
139 self.missing_outputs = missing_outputs
141 def has_changes(self): argument
144 self.force or not self.old_metadata or
145 self.old_metadata.strings_md5() != self.new_metadata.strings_md5()
146 or self.old_metadata.files_md5() != self.new_metadata.files_md5())
148 def added_or_modified_only(self): argument
153 if (self.force or not self.old_metadata
154 or self.old_metadata.strings_md5() !=
155 self.new_metadata.strings_md5()):
157 if any(self.iter_removed_paths()):
159 for path in self.iter_modified_paths():
160 if any(self.iter_removed_subpaths(path)):
164 def iter_all_paths(self): argument
166 return self.new_metadata.iter_paths()
168 def iter_all_subpaths(self, path): argument
170 return self.new_metadata.iter_subpaths(path)
172 def iter_added_paths(self): argument
174 for path in self.new_metadata.iter_paths():
175 if self._get_old_tag(path) is None:
178 def iter_added_subpaths(self, path): argument
180 for subpath in self.new_metadata.iter_subpaths(path):
181 if self._get_old_tag(path, subpath) is None:
184 def iter_removed_paths(self): argument
186 if self.old_metadata:
187 for path in self.old_metadata.iter_paths():
188 if self.new_metadata.get_tag(path) is None:
191 def iter_removed_subpaths(self, path): argument
193 if self.old_metadata:
194 for subpath in self.old_metadata.iter_subpaths(path):
195 if self.new_metadata.get_tag(path, subpath) is None:
198 def iter_modified_paths(self): argument
200 for path in self.new_metadata.iter_paths():
201 old_tag = self._get_old_tag(path)
202 new_tag = self.new_metadata.get_tag(path)
206 def iter_modified_subpaths(self, path): argument
208 for subpath in self.new_metadata.iter_subpaths(path):
209 old_tag = self._get_old_tag(path, subpath)
210 new_tag = self.new_metadata.get_tag(path, subpath)
214 def iter_changed_paths(self): argument
216 return itertools.chain(self.iter_removed_paths(),
217 self.iter_modified_paths(),
218 self.iter_added_paths())
220 def iter_changed_subpaths(self, path): argument
222 return itertools.chain(self.iter_removed_subpaths(path),
223 self.iter_modified_subpaths(path),
224 self.iter_added_subpaths(path))
226 def describe_difference(self): argument
228 if self.force:
230 elif self.old_metadata is None:
233 if self.old_metadata.strings_md5() != self.new_metadata.strings_md5():
234 ndiff = difflib.ndiff(self.old_metadata.get_strings(),
235 self.new_metadata.get_strings())
239 if self.old_metadata.files_md5() == self.new_metadata.files_md5():
243 lines.extend('Added: {}'.format(p for p in self.iter_added_paths()))
245 for p in self.iter_removed_paths()))
246 for path in self.iter_modified_paths():
249 p for p in self.iter_added_subpaths(path)))
251 p for p in self.iter_removed_subpaths(path)))
253 p for p in self.iter_modified_subpaths(path)))
257 if self.missing_outputs:
259 self.missing_outputs))
263 def _get_old_tag(self, path, subpath=None): argument
264 return self.old_metadata and self.old_metadata.get_tag(path, subpath)
269 def __init__(self): argument
270 self._files_md5 = None
271 self._strings_md5 = None
272 self._files = []
273 self._strings = []
275 self._file_map = None
288 def to_file(self, fileobj): argument
291 "files-md5": self.files_md5(),
292 "strings-md5": self.strings_md5(),
293 "input-files": self._files,
294 "input-strings": self._strings,
298 def add_strings(self, values): argument
299 self._assert_not_queried()
300 self._strings.extend(str(v) for v in values)
302 def add_file(self, path, tag): argument
309 self._assert_not_queried()
310 self._files.append({
315 def add_zip_file(self, path, entries): argument
322 self._assert_not_queried()
325 self._files.append({
336 def get_strings(self): argument
338 return self._strings
340 def files_md5(self): argument
342 if self._files_md5 is None:
344 self._files_md5 = _compute_inline_md5(
345 self.get_tag(p) for p in sorted(self.iter_paths()))
346 return self._files_md5
348 def strings_md5(self): argument
350 if self._strings_md5 is None:
351 self._strings_md5 = _compute_inline_md5(self._strings)
352 return self._strings_md5
354 def get_tag(self, path, subpath=None): argument
356 ret = self._get_entry(path, subpath)
359 def iter_paths(self): argument
361 return (e['path'] for e in self._files)
363 def iter_subpaths(self, path): argument
369 outer_entry = self._get_entry(path)
375 def _assert_not_queried(self): argument
376 assert self._files_md5 is None
377 assert self._strings_md5 is None
378 assert self._file_map is None
380 def _get_entry(self, path, subpath=None): argument
382 if self._file_map is None:
383 self._file_map = {}
384 for entry in self._files:
385 self._file_map[(entry['path'], None)] = entry
387 self._file_map[(entry['path'],
389 return self._file_map.get((path, subpath))