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

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

Issue 139343018: rebaseline_server: create ImagePairSet-- holds a number of ImagePairs to examine (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: oneliners Created 6 years, 10 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/column.py ('k') | gm/rebaseline_server/imagepair_test.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 2014 Google Inc. 4 Copyright 2014 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 ImagePair class (see class docstring for details) 9 ImagePair class (see class docstring for details)
10 """ 10 """
11 11
12 import posixpath 12 import posixpath
13 13
14 # Keys used within ImagePair dictionary representations. 14 # Keys used within ImagePair dictionary representations.
15 KEY_DIFFERENCE_DATA = 'differenceData' 15 KEY__DIFFERENCE_DATA = 'differenceData'
16 KEY_EXPECTATIONS_DATA = 'expectationsData' 16 KEY__EXPECTATIONS_DATA = 'expectations'
17 KEY_EXTRA_COLUMN_VALUES = 'extraColumnValues' 17 KEY__EXTRA_COLUMN_VALUES = 'extraColumns'
18 KEY_IMAGE_A_URL = 'imageAUrl' 18 KEY__IMAGE_A_URL = 'imageAUrl'
19 KEY_IMAGE_B_URL = 'imageBUrl' 19 KEY__IMAGE_B_URL = 'imageBUrl'
20 KEY_IS_DIFFERENT = 'isDifferent' 20 KEY__IS_DIFFERENT = 'isDifferent'
21 21
22 22
23 class ImagePair(object): 23 class ImagePair(object):
24 """ 24 """Describes a pair of images, pixel difference info, and optional metadata.
25 Describes a pair of images, along with optional metadata (pixel difference
26 metrics, whether to ignore mismatches, etc.)
27 """ 25 """
28 26
29 def __init__(self, image_diff_db, 27 def __init__(self, image_diff_db,
30 base_url, imageA_relative_url, imageB_relative_url, 28 base_url, imageA_relative_url, imageB_relative_url,
31 expectations=None, extra_columns=None): 29 expectations=None, extra_columns=None):
32 """ 30 """
33 Args: 31 Args:
34 image_diff_db: ImageDiffDB instance we use to generate/store image diffs 32 image_diff_db: ImageDiffDB instance we use to generate/store image diffs
35 base_url: base of all image URLs 33 base_url: base of all image URLs
36 imageA_relative_url: URL pointing at an image, relative to base_url 34 imageA_relative_url: URL pointing at an image, relative to base_url
(...skipping 19 matching lines...) Expand all
56 image_diff_db.add_image_pair( 54 image_diff_db.add_image_pair(
57 expected_image_locator=imageA_relative_url, 55 expected_image_locator=imageA_relative_url,
58 expected_image_url=posixpath.join(base_url, imageA_relative_url), 56 expected_image_url=posixpath.join(base_url, imageA_relative_url),
59 actual_image_locator=imageB_relative_url, 57 actual_image_locator=imageB_relative_url,
60 actual_image_url=posixpath.join(base_url, imageB_relative_url)) 58 actual_image_url=posixpath.join(base_url, imageB_relative_url))
61 self.diff_record = image_diff_db.get_diff_record( 59 self.diff_record = image_diff_db.get_diff_record(
62 expected_image_locator=imageA_relative_url, 60 expected_image_locator=imageA_relative_url,
63 actual_image_locator=imageB_relative_url) 61 actual_image_locator=imageB_relative_url)
64 62
65 def as_dict(self): 63 def as_dict(self):
66 """ 64 """Returns a dictionary describing this ImagePair.
67 Return a dictionary describing this ImagePair, as needed when constructing 65
68 the JSON representation. Uses the KEY_* constants as keys. 66 Uses the KEY__* constants as keys.
69 """ 67 """
70 asdict = { 68 asdict = {
71 KEY_IMAGE_A_URL: self.imageA_relative_url, 69 KEY__IMAGE_A_URL: self.imageA_relative_url,
72 KEY_IMAGE_B_URL: self.imageB_relative_url, 70 KEY__IMAGE_B_URL: self.imageB_relative_url,
73 } 71 }
74 if self.expectations_dict: 72 if self.expectations_dict:
75 asdict[KEY_EXPECTATIONS_DATA] = self.expectations_dict 73 asdict[KEY__EXPECTATIONS_DATA] = self.expectations_dict
76 if self.extra_columns_dict: 74 if self.extra_columns_dict:
77 asdict[KEY_EXTRA_COLUMN_VALUES] = self.extra_columns_dict 75 asdict[KEY__EXTRA_COLUMN_VALUES] = self.extra_columns_dict
78 if self.diff_record and (self.diff_record.get_num_pixels_differing() > 0): 76 if self.diff_record and (self.diff_record.get_num_pixels_differing() > 0):
79 asdict[KEY_IS_DIFFERENT] = True 77 asdict[KEY__IS_DIFFERENT] = True
80 asdict[KEY_DIFFERENCE_DATA] = self.diff_record.as_dict() 78 asdict[KEY__DIFFERENCE_DATA] = self.diff_record.as_dict()
81 else: 79 else:
82 asdict[KEY_IS_DIFFERENT] = False 80 asdict[KEY__IS_DIFFERENT] = False
83 return asdict 81 return asdict
OLDNEW
« no previous file with comments | « gm/rebaseline_server/column.py ('k') | gm/rebaseline_server/imagepair_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698