Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Side by Side Diff: gm/rebaseline_server/imagediffdb.py

Issue 379563005: rebaseline_server: cache results in long-running ImageDiffDB instance (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Ravi comment Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gm/rebaseline_server/compare_to_expectations_test.py ('k') | gm/rebaseline_server/server.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 """ 3 """
4 Copyright 2013 Google Inc. 4 Copyright 2013 Google Inc.
5 5
6 Use of this source code is governed by a BSD-style license that can be 6 Use of this source code is governed by a BSD-style license that can be
7 found in the LICENSE file. 7 found in the LICENSE file.
8 8
9 Calulate differences between image pairs, and store them in a database. 9 Calulate differences between image pairs, and store them in a database.
10 """ 10 """
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 # write the image files into, rather than having to move them around 168 # write the image files into, rather than having to move them around
169 # after skpdiff writes them out. 169 # after skpdiff writes them out.
170 shutil.copyfile(rgb_diff_path, 170 shutil.copyfile(rgb_diff_path,
171 os.path.join(storage_root, RGBDIFFS_SUBDIR, basename)) 171 os.path.join(storage_root, RGBDIFFS_SUBDIR, basename))
172 shutil.copyfile(white_diff_path, 172 shutil.copyfile(white_diff_path,
173 os.path.join(storage_root, WHITEDIFFS_SUBDIR, basename)) 173 os.path.join(storage_root, WHITEDIFFS_SUBDIR, basename))
174 174
175 finally: 175 finally:
176 shutil.rmtree(skpdiff_output_dir) 176 shutil.rmtree(skpdiff_output_dir)
177 177
178 # TODO(epoger): Use properties instead of getters throughout.
179 # See http://stackoverflow.com/a/6618176
178 def get_num_pixels_differing(self): 180 def get_num_pixels_differing(self):
179 """Returns the absolute number of pixels that differ.""" 181 """Returns the absolute number of pixels that differ."""
180 return self._num_pixels_differing 182 return self._num_pixels_differing
181 183
182 def get_percent_pixels_differing(self): 184 def get_percent_pixels_differing(self):
183 """Returns the percentage of pixels that differ, as a float between 185 """Returns the percentage of pixels that differ, as a float between
184 0 and 100 (inclusive).""" 186 0 and 100 (inclusive)."""
185 return ((float(self._num_pixels_differing) * 100) / 187 return ((float(self._num_pixels_differing) * 100) /
186 (self._width * self._height)) 188 (self._width * self._height))
187 189
(...skipping 26 matching lines...) Expand all
214 """ 216 """
215 Args: 217 Args:
216 storage_root: string; root path within the DB will store all of its stuff 218 storage_root: string; root path within the DB will store all of its stuff
217 """ 219 """
218 self._storage_root = storage_root 220 self._storage_root = storage_root
219 221
220 # Dictionary of DiffRecords, keyed by (expected_image_locator, 222 # Dictionary of DiffRecords, keyed by (expected_image_locator,
221 # actual_image_locator) tuples. 223 # actual_image_locator) tuples.
222 self._diff_dict = {} 224 self._diff_dict = {}
223 225
226 @property
227 def storage_root(self):
228 return self._storage_root
229
224 def add_image_pair(self, 230 def add_image_pair(self,
225 expected_image_url, expected_image_locator, 231 expected_image_url, expected_image_locator,
226 actual_image_url, actual_image_locator): 232 actual_image_url, actual_image_locator):
227 """Download this pair of images (unless we already have them on local disk), 233 """Download this pair of images (unless we already have them on local disk),
228 and prepare a DiffRecord for them. 234 and prepare a DiffRecord for them.
229 235
230 TODO(epoger): Make this asynchronously download images, rather than blocking 236 TODO(epoger): Make this asynchronously download images, rather than blocking
231 until the images have been downloaded and processed. 237 until the images have been downloaded and processed.
232 When we do that, we should probably add a new method that will block 238 When we do that, we should probably add a new method that will block
233 until all of the images have been downloaded and processed. Otherwise, 239 until all of the images have been downloaded and processed. Otherwise,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 330
325 Args: 331 Args:
326 expected_image_locator: locator string pointing at expected image 332 expected_image_locator: locator string pointing at expected image
327 actual_image_locator: locator string pointing at actual image 333 actual_image_locator: locator string pointing at actual image
328 334
329 Returns: already-sanitized locator where the diffs between expected and 335 Returns: already-sanitized locator where the diffs between expected and
330 actual images can be found 336 actual images can be found
331 """ 337 """
332 return "%s-vs-%s" % (_sanitize_locator(expected_image_locator), 338 return "%s-vs-%s" % (_sanitize_locator(expected_image_locator),
333 _sanitize_locator(actual_image_locator)) 339 _sanitize_locator(actual_image_locator))
OLDNEW
« no previous file with comments | « gm/rebaseline_server/compare_to_expectations_test.py ('k') | gm/rebaseline_server/server.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698