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

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

Issue 424263005: teach rebaseline_server to generate diffs of rendered SKPs (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 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
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 ImagePairSet class; see its docstring below. 9 ImagePairSet class; see its docstring below.
10 """ 10 """
11 11
12 # System-level imports 12 # System-level imports
13 import posixpath 13 import posixpath
14 14
15 # Local imports 15 # Must fix up PYTHONPATH before importing from within Skia
16 import fix_pythonpath # pylint: disable=W0611
17
18 # Imports from within Skia
16 import column 19 import column
17 import imagediffdb 20 import imagediffdb
21 from py.utils import gs_utils
18 22
19 # Keys used within dictionary representation of ImagePairSet. 23 # Keys used within dictionary representation of ImagePairSet.
20 # NOTE: Keep these in sync with static/constants.js 24 # NOTE: Keep these in sync with static/constants.js
21 KEY__ROOT__EXTRACOLUMNHEADERS = 'extraColumnHeaders' 25 KEY__ROOT__EXTRACOLUMNHEADERS = 'extraColumnHeaders'
22 KEY__ROOT__EXTRACOLUMNORDER = 'extraColumnOrder' 26 KEY__ROOT__EXTRACOLUMNORDER = 'extraColumnOrder'
23 KEY__ROOT__HEADER = 'header' 27 KEY__ROOT__HEADER = 'header'
24 KEY__ROOT__IMAGEPAIRS = 'imagePairs' 28 KEY__ROOT__IMAGEPAIRS = 'imagePairs'
25 KEY__ROOT__IMAGESETS = 'imageSets' 29 KEY__ROOT__IMAGESETS = 'imageSets'
26 KEY__IMAGESETS__FIELD__BASE_URL = 'baseUrl' 30 KEY__IMAGESETS__FIELD__BASE_URL = 'baseUrl'
27 KEY__IMAGESETS__FIELD__DESCRIPTION = 'description' 31 KEY__IMAGESETS__FIELD__DESCRIPTION = 'description'
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 specified_column_ids = set(column_ids_in_order) 159 specified_column_ids = set(column_ids_in_order)
156 forgotten_column_ids = all_column_ids - specified_column_ids 160 forgotten_column_ids = all_column_ids - specified_column_ids
157 assert not forgotten_column_ids, ( 161 assert not forgotten_column_ids, (
158 'column_ids_in_order %s missing these column_ids: %s' % ( 162 'column_ids_in_order %s missing these column_ids: %s' % (
159 column_ids_in_order, forgotten_column_ids)) 163 column_ids_in_order, forgotten_column_ids))
160 column_ids_in_order = [c for c in column_ids_in_order 164 column_ids_in_order = [c for c in column_ids_in_order
161 if c in all_column_ids] 165 if c in all_column_ids]
162 166
163 key_description = KEY__IMAGESETS__FIELD__DESCRIPTION 167 key_description = KEY__IMAGESETS__FIELD__DESCRIPTION
164 key_base_url = KEY__IMAGESETS__FIELD__BASE_URL 168 key_base_url = KEY__IMAGESETS__FIELD__BASE_URL
169 # EPOGER: instead of this special handling for GS URLs vs HTTP URLs, maybe c ome up with an object than can represent either one? (or even a local file)
170 if gs_utils.GSUtils.is_gs_url(self._image_base_url):
171 value_base_url = imagediffdb.GSObject(
172 gs_url=self._image_base_url).as_http_url()
173 else:
174 value_base_url = self._image_base_url
175
165 return { 176 return {
166 KEY__ROOT__EXTRACOLUMNHEADERS: self._column_headers_as_dict(), 177 KEY__ROOT__EXTRACOLUMNHEADERS: self._column_headers_as_dict(),
167 KEY__ROOT__EXTRACOLUMNORDER: column_ids_in_order, 178 KEY__ROOT__EXTRACOLUMNORDER: column_ids_in_order,
168 KEY__ROOT__IMAGEPAIRS: self._image_pair_dicts, 179 KEY__ROOT__IMAGEPAIRS: self._image_pair_dicts,
169 KEY__ROOT__IMAGESETS: { 180 KEY__ROOT__IMAGESETS: {
170 KEY__IMAGESETS__SET__IMAGE_A: { 181 KEY__IMAGESETS__SET__IMAGE_A: {
171 key_description: self._descriptions[0], 182 key_description: self._descriptions[0],
172 key_base_url: self._image_base_url, 183 key_base_url: value_base_url,
173 }, 184 },
174 KEY__IMAGESETS__SET__IMAGE_B: { 185 KEY__IMAGESETS__SET__IMAGE_B: {
175 key_description: self._descriptions[1], 186 key_description: self._descriptions[1],
176 key_base_url: self._image_base_url, 187 key_base_url: value_base_url,
177 }, 188 },
178 KEY__IMAGESETS__SET__DIFFS: { 189 KEY__IMAGESETS__SET__DIFFS: {
179 key_description: 'color difference per channel', 190 key_description: 'color difference per channel',
180 key_base_url: posixpath.join( 191 key_base_url: posixpath.join(
181 self._diff_base_url, imagediffdb.RGBDIFFS_SUBDIR), 192 self._diff_base_url, imagediffdb.RGBDIFFS_SUBDIR),
182 }, 193 },
183 KEY__IMAGESETS__SET__WHITEDIFFS: { 194 KEY__IMAGESETS__SET__WHITEDIFFS: {
184 key_description: 'differing pixels in white', 195 key_description: 'differing pixels in white',
185 key_base_url: posixpath.join( 196 key_base_url: posixpath.join(
186 self._diff_base_url, imagediffdb.WHITEDIFFS_SUBDIR), 197 self._diff_base_url, imagediffdb.WHITEDIFFS_SUBDIR),
187 }, 198 },
188 }, 199 },
189 } 200 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698