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

Side by Side Diff: grit/format/data_pack.py

Issue 246623004: List removed (non-whitelisted) resources when repacking. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Support for formatting a data pack file used for platform agnostic resource 6 """Support for formatting a data pack file used for platform agnostic resource
7 files. 7 files.
8 """ 8 """
9 9
10 import collections 10 import collections
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 whitelist = map(int, whitelist) 130 whitelist = map(int, whitelist)
131 resources, encoding = RePackFromDataPackStrings(input_data_packs, whitelist) 131 resources, encoding = RePackFromDataPackStrings(input_data_packs, whitelist)
132 WriteDataPack(resources, output_file, encoding) 132 WriteDataPack(resources, output_file, encoding)
133 133
134 134
135 def RePackFromDataPackStrings(inputs, whitelist): 135 def RePackFromDataPackStrings(inputs, whitelist):
136 """Returns a data pack string that combines the resources from inputs. 136 """Returns a data pack string that combines the resources from inputs.
137 137
138 Args: 138 Args:
139 inputs: a list of data pack strings that need to be combined. 139 inputs: a list of data pack strings that need to be combined.
140 whitelist: a list of resource IDs that should be kep in the output string 140 whitelist: a list of resource IDs that should be kept in the output string
141 or None to include all resources. 141 or None to include all resources.
142 142
143 Returns: 143 Returns:
144 DataPackContents: a tuple containing the new combined data pack and its 144 DataPackContents: a tuple containing the new combined data pack and its
145 encoding. 145 encoding.
146 146
147 Raises: 147 Raises:
148 KeyError: if there are duplicate keys or resource encoding is 148 KeyError: if there are duplicate keys or resource encoding is
149 inconsistent. 149 inconsistent.
150 """ 150 """
(...skipping 10 matching lines...) Expand all
161 encoding = content.encoding 161 encoding = content.encoding
162 elif content.encoding not in (BINARY, encoding): 162 elif content.encoding not in (BINARY, encoding):
163 raise exceptions.KeyError('Inconsistent encodings: ' + str(encoding) + 163 raise exceptions.KeyError('Inconsistent encodings: ' + str(encoding) +
164 ' vs ' + str(content.encoding)) 164 ' vs ' + str(content.encoding))
165 165
166 if whitelist: 166 if whitelist:
167 whitelisted_resources = dict([(key, content.resources[key]) 167 whitelisted_resources = dict([(key, content.resources[key])
168 for key in content.resources.keys() 168 for key in content.resources.keys()
169 if key in whitelist]) 169 if key in whitelist])
170 resources.update(whitelisted_resources) 170 resources.update(whitelisted_resources)
171 removed_keys = [key for key in content.resources.keys()
172 if key not in whitelist]
173 for key in removed_keys:
174 print 'RePackFromDataPackStrings Removed Key:', key
171 else: 175 else:
172 resources.update(content.resources) 176 resources.update(content.resources)
173 177
174 # Encoding is 0 for BINARY, 1 for UTF8 and 2 for UTF16 178 # Encoding is 0 for BINARY, 1 for UTF8 and 2 for UTF16
175 if encoding is None: 179 if encoding is None:
176 encoding = BINARY 180 encoding = BINARY
177 return DataPackContents(resources, encoding) 181 return DataPackContents(resources, encoding)
178 182
179 183
180 # Temporary hack for external programs that import data_pack. 184 # Temporary hack for external programs that import data_pack.
(...skipping 18 matching lines...) Expand all
199 # Just write a simple file. 203 # Just write a simple file.
200 data = {1: '', 4: 'this is id 4', 6: 'this is id 6', 10: ''} 204 data = {1: '', 4: 'this is id 4', 6: 'this is id 6', 10: ''}
201 WriteDataPack(data, 'datapack1.pak', UTF8) 205 WriteDataPack(data, 'datapack1.pak', UTF8)
202 data2 = {1000: 'test', 5: 'five'} 206 data2 = {1000: 'test', 5: 'five'}
203 WriteDataPack(data2, 'datapack2.pak', UTF8) 207 WriteDataPack(data2, 'datapack2.pak', UTF8)
204 print 'wrote datapack1 and datapack2 to current directory.' 208 print 'wrote datapack1 and datapack2 to current directory.'
205 209
206 210
207 if __name__ == '__main__': 211 if __name__ == '__main__':
208 main() 212 main()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698