| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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)) |
| OLD | NEW |