Show More
@@ -589,7 +589,14 b' class PlainTextFormatter(BaseFormatter):' | |||
|
589 | 589 | # This subclass ignores this attribute as it always need to return |
|
590 | 590 | # something. |
|
591 | 591 | enabled = Bool(True, config=False) |
|
592 | ||
|
592 | ||
|
593 | max_seq_length = Integer(pretty.MAX_SEQ_LENGTH, config=True, | |
|
594 | help="""Truncate large collections (lists, dicts, tuples, sets) to this size. | |
|
595 | ||
|
596 | Set to 0 to disable truncation. | |
|
597 | """ | |
|
598 | ) | |
|
599 | ||
|
593 | 600 | # Look for a _repr_pretty_ methods to use for pretty printing. |
|
594 | 601 | print_method = ObjectName('_repr_pretty_') |
|
595 | 602 | |
@@ -682,6 +689,7 b' class PlainTextFormatter(BaseFormatter):' | |||
|
682 | 689 | # or it will cause trouble. |
|
683 | 690 | printer = pretty.RepresentationPrinter(stream, self.verbose, |
|
684 | 691 | self.max_width, unicode_to_str(self.newline), |
|
692 | max_seq_length=self.max_seq_length, | |
|
685 | 693 | singleton_pprinters=self.singleton_printers, |
|
686 | 694 | type_pprinters=self.type_printers, |
|
687 | 695 | deferred_pprinters=self.deferred_printers) |
@@ -338,3 +338,15 b' def test_format_config():' | |||
|
338 | 338 | result = f(Config) |
|
339 | 339 | nt.assert_is(result, None) |
|
340 | 340 | nt.assert_equal(captured.stderr, "") |
|
341 | ||
|
342 | def test_pretty_max_seq_length(): | |
|
343 | f = PlainTextFormatter(max_seq_length=1) | |
|
344 | lis = list(range(3)) | |
|
345 | text = f(lis) | |
|
346 | nt.assert_equal(text, '[0, ...]') | |
|
347 | f.max_seq_length = 0 | |
|
348 | text = f(lis) | |
|
349 | nt.assert_equal(text, '[0, 1, 2]') | |
|
350 | text = f(list(range(1024))) | |
|
351 | lines = text.splitlines() | |
|
352 | nt.assert_equal(len(lines), 1024) |
@@ -123,9 +123,9 b" __all__ = ['pretty', 'pprint', 'PrettyPrinter', 'RepresentationPrinter'," | |||
|
123 | 123 | 'for_type', 'for_type_by_name'] |
|
124 | 124 | |
|
125 | 125 | |
|
126 | MAX_SEQ_LENGTH = 1000 | |
|
126 | 127 | _re_pattern_type = type(re.compile('')) |
|
127 | 128 | |
|
128 | ||
|
129 | 129 | def _safe_getattr(obj, attr, default=None): |
|
130 | 130 | """Safe version of getattr. |
|
131 | 131 | |
@@ -137,22 +137,22 b' def _safe_getattr(obj, attr, default=None):' | |||
|
137 | 137 | except Exception: |
|
138 | 138 | return default |
|
139 | 139 | |
|
140 | def pretty(obj, verbose=False, max_width=79, newline='\n'): | |
|
140 | def pretty(obj, verbose=False, max_width=79, newline='\n', max_seq_length=MAX_SEQ_LENGTH): | |
|
141 | 141 | """ |
|
142 | 142 | Pretty print the object's representation. |
|
143 | 143 | """ |
|
144 | 144 | stream = StringIO() |
|
145 | printer = RepresentationPrinter(stream, verbose, max_width, newline) | |
|
145 | printer = RepresentationPrinter(stream, verbose, max_width, newline, max_seq_length) | |
|
146 | 146 | printer.pretty(obj) |
|
147 | 147 | printer.flush() |
|
148 | 148 | return stream.getvalue() |
|
149 | 149 | |
|
150 | 150 | |
|
151 | def pprint(obj, verbose=False, max_width=79, newline='\n'): | |
|
151 | def pprint(obj, verbose=False, max_width=79, newline='\n', max_seq_length=MAX_SEQ_LENGTH): | |
|
152 | 152 | """ |
|
153 | 153 | Like `pretty` but print to stdout. |
|
154 | 154 | """ |
|
155 | printer = RepresentationPrinter(sys.stdout, verbose, max_width, newline) | |
|
155 | printer = RepresentationPrinter(sys.stdout, verbose, max_width, newline, max_seq_length) | |
|
156 | 156 | printer.pretty(obj) |
|
157 | 157 | printer.flush() |
|
158 | 158 | sys.stdout.write(newline) |
@@ -186,7 +186,7 b' class PrettyPrinter(_PrettyPrinterBase):' | |||
|
186 | 186 | callback method. |
|
187 | 187 | """ |
|
188 | 188 | |
|
189 |
def __init__(self, output, max_width=79, newline='\n', max_seq_length= |
|
|
189 | def __init__(self, output, max_width=79, newline='\n', max_seq_length=MAX_SEQ_LENGTH): | |
|
190 | 190 | self.output = output |
|
191 | 191 | self.max_width = max_width |
|
192 | 192 | self.newline = newline |
@@ -346,9 +346,10 b' class RepresentationPrinter(PrettyPrinter):' | |||
|
346 | 346 | """ |
|
347 | 347 | |
|
348 | 348 | def __init__(self, output, verbose=False, max_width=79, newline='\n', |
|
349 |
singleton_pprinters=None, type_pprinters=None, deferred_pprinters=None |
|
|
349 | singleton_pprinters=None, type_pprinters=None, deferred_pprinters=None, | |
|
350 | max_seq_length=MAX_SEQ_LENGTH): | |
|
350 | 351 | |
|
351 | PrettyPrinter.__init__(self, output, max_width, newline) | |
|
352 | PrettyPrinter.__init__(self, output, max_width, newline, max_seq_length=max_seq_length) | |
|
352 | 353 | self.verbose = verbose |
|
353 | 354 | self.stack = [] |
|
354 | 355 | if singleton_pprinters is None: |
General Comments 0
You need to be logged in to leave comments.
Login now