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

Side by Side Diff: tools/binary_size/libsupersize/describe.py

Issue 2924343004: supersize: Fix path counts, missing section in clusters (Closed)
Patch Set: Created 3 years, 6 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 | « no previous file | tools/binary_size/libsupersize/diff.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 # Copyright 2017 The Chromium Authors. All rights reserved. 1 # Copyright 2017 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 """Methods for converting model objects to human-readable formats.""" 4 """Methods for converting model objects to human-readable formats."""
5 5
6 import datetime 6 import datetime
7 import itertools 7 import itertools
8 import time 8 import time
9 9
10 import models 10 import models
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 children_desc = self._DescribeSymbolGroupChildren(group) 193 children_desc = self._DescribeSymbolGroupChildren(group)
194 return itertools.chain(header_desc, children_desc) 194 return itertools.chain(header_desc, children_desc)
195 195
196 def _DescribeDiffObjectPaths(self, diff): 196 def _DescribeDiffObjectPaths(self, diff):
197 paths_by_status = [set(), set(), set(), set()] 197 paths_by_status = [set(), set(), set(), set()]
198 def helper(group): 198 def helper(group):
199 for s in group: 199 for s in group:
200 if s.IsGroup(): 200 if s.IsGroup():
201 helper(s) 201 helper(s)
202 else: 202 else:
203 status = group.DiffStatus(s) 203 path = s.source_path or s.object_path
204 paths_by_status[status].add(s.source_path or s.object_path) 204 # Ignore paths like foo/{shared}/2
205 if '{' not in path:
206 paths_by_status[group.DiffStatus(s)].add(path)
205 helper(diff) 207 helper(diff)
206 # Show only paths that have no changed symbols (pure adds / removes). 208 # Show only paths that have no changed symbols (pure adds / removes).
207 unchanged, changed, added, removed = paths_by_status 209 unchanged, changed, added, removed = paths_by_status
210 changed.update(added.intersection(removed))
estevenson 2017/06/09 22:30:19 nit: can you maybe add a comment above all the upd
agrieve 2017/06/12 14:37:17 Done.
208 added.difference_update(unchanged) 211 added.difference_update(unchanged)
209 added.difference_update(changed) 212 added.difference_update(changed)
213 added.difference_update(removed)
210 removed.difference_update(unchanged) 214 removed.difference_update(unchanged)
211 removed.difference_update(changed) 215 removed.difference_update(changed)
216 removed.difference_update(added)
212 yield '{} paths added, {} removed, {} changed'.format( 217 yield '{} paths added, {} removed, {} changed'.format(
213 len(added), len(removed), len(changed)) 218 len(added), len(removed), len(changed))
214 219
215 if self.verbose and len(added): 220 if self.verbose and len(added):
216 yield 'Added files:' 221 yield 'Added files:'
217 for p in sorted(added): 222 for p in sorted(added):
218 yield ' ' + p 223 yield ' ' + p
219 if self.verbose and len(removed): 224 if self.verbose and len(removed):
220 yield 'Removed files:' 225 yield 'Removed files:'
221 for p in sorted(removed): 226 for p in sorted(removed):
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 362
358 def GenerateLines(obj, verbose=False, recursive=False): 363 def GenerateLines(obj, verbose=False, recursive=False):
359 """Returns an iterable of lines (without \n) that describes |obj|.""" 364 """Returns an iterable of lines (without \n) that describes |obj|."""
360 return Describer(verbose=verbose, recursive=recursive).GenerateLines(obj) 365 return Describer(verbose=verbose, recursive=recursive).GenerateLines(obj)
361 366
362 367
363 def WriteLines(lines, func): 368 def WriteLines(lines, func):
364 for l in lines: 369 for l in lines:
365 func(l) 370 func(l)
366 func('\n') 371 func('\n')
OLDNEW
« no previous file with comments | « no previous file | tools/binary_size/libsupersize/diff.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698