OLD | NEW |
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 | 4 |
5 """An interactive console for looking analyzing .size files.""" | 5 """An interactive console for looking analyzing .size files.""" |
6 | 6 |
7 import argparse | 7 import argparse |
8 import atexit | 8 import atexit |
9 import code | 9 import code |
10 import contextlib | 10 import contextlib |
11 import itertools | 11 import itertools |
12 import logging | 12 import logging |
13 import os | 13 import os |
14 import readline | 14 import readline |
15 import subprocess | 15 import subprocess |
16 import sys | 16 import sys |
17 | 17 |
18 import archive | 18 import archive |
19 import describe | 19 import describe |
| 20 import diff |
20 import file_format | 21 import file_format |
21 import match_util | 22 import match_util |
22 import models | 23 import models |
23 import paths | 24 import paths |
24 | 25 |
25 | 26 |
26 # Number of lines before using less for Print(). | 27 # Number of lines before using less for Print(). |
27 _THRESHOLD_FOR_PAGER = 30 | 28 _THRESHOLD_FOR_PAGER = 30 |
28 | 29 |
29 | 30 |
(...skipping 30 matching lines...) Expand all Loading... |
60 else: | 61 else: |
61 describe.WriteLines(lines, sys.stdout.write) | 62 describe.WriteLines(lines, sys.stdout.write) |
62 | 63 |
63 | 64 |
64 class _Session(object): | 65 class _Session(object): |
65 _readline_initialized = False | 66 _readline_initialized = False |
66 | 67 |
67 def __init__(self, size_infos, lazy_paths): | 68 def __init__(self, size_infos, lazy_paths): |
68 self._variables = { | 69 self._variables = { |
69 'Print': self._PrintFunc, | 70 'Print': self._PrintFunc, |
70 'Diff': models.Diff, | 71 'Diff': diff.Diff, |
71 'Disassemble': self._DisassembleFunc, | 72 'Disassemble': self._DisassembleFunc, |
72 'ExpandRegex': match_util.ExpandRegexIdentifierPlaceholder, | 73 'ExpandRegex': match_util.ExpandRegexIdentifierPlaceholder, |
73 'ShowExamples': self._ShowExamplesFunc, | 74 'ShowExamples': self._ShowExamplesFunc, |
74 } | 75 } |
75 self._lazy_paths = lazy_paths | 76 self._lazy_paths = lazy_paths |
76 self._size_infos = size_infos | 77 self._size_infos = size_infos |
77 | 78 |
78 if len(size_infos) == 1: | 79 if len(size_infos) == 1: |
79 self._variables['size_info'] = size_infos[0] | 80 self._variables['size_info'] = size_infos[0] |
80 else: | 81 else: |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 output_directory=args.output_directory, | 241 output_directory=args.output_directory, |
241 any_path_within_output_directory=args.inputs[0]) | 242 any_path_within_output_directory=args.inputs[0]) |
242 session = _Session(size_infos, lazy_paths) | 243 session = _Session(size_infos, lazy_paths) |
243 | 244 |
244 if args.query: | 245 if args.query: |
245 logging.info('Running query from command-line.') | 246 logging.info('Running query from command-line.') |
246 session.Eval(args.query) | 247 session.Eval(args.query) |
247 else: | 248 else: |
248 logging.info('Entering interactive console.') | 249 logging.info('Entering interactive console.') |
249 session.GoInteractive() | 250 session.GoInteractive() |
OLD | NEW |