Show More
@@ -229,10 +229,11 b' class PrettyPrinter(_PrettyPrinterBase):' | |||
|
229 | 229 | callback method. |
|
230 | 230 | """ |
|
231 | 231 | |
|
232 | def __init__(self, output, max_width=79, newline='\n'): | |
|
232 | def __init__(self, output, max_width=79, newline='\n', max_seq_length=1000): | |
|
233 | 233 | self.output = output |
|
234 | 234 | self.max_width = max_width |
|
235 | 235 | self.newline = newline |
|
236 | self.max_seq_length = max_seq_length | |
|
236 | 237 | self.output_width = 0 |
|
237 | 238 | self.buffer_width = 0 |
|
238 | 239 | self.buffer = deque() |
@@ -326,6 +327,16 b' class PrettyPrinter(_PrettyPrinterBase):' | |||
|
326 | 327 | self.group_queue.enq(group) |
|
327 | 328 | self.indentation += indent |
|
328 | 329 | |
|
330 | def _enumerate(self, seq): | |
|
331 | """like enumerate, but with an upper limit on the number of items""" | |
|
332 | for idx, x in enumerate(seq): | |
|
333 | if self.max_seq_length and idx >= self.max_seq_length: | |
|
334 | self.text(',') | |
|
335 | self.breakable() | |
|
336 | self.text('...') | |
|
337 | raise StopIteration | |
|
338 | yield idx, x | |
|
339 | ||
|
329 | 340 | def end_group(self, dedent=0, close=''): |
|
330 | 341 | """End a group. See `begin_group` for more details.""" |
|
331 | 342 | self.indentation -= dedent |
@@ -598,7 +609,7 b' def _seq_pprinter_factory(start, end, basetype):' | |||
|
598 | 609 | return p.text(start + '...' + end) |
|
599 | 610 | step = len(start) |
|
600 | 611 | p.begin_group(step, start) |
|
601 | for idx, x in enumerate(obj): | |
|
612 | for idx, x in p._enumerate(obj): | |
|
602 | 613 | if idx: |
|
603 | 614 | p.text(',') |
|
604 | 615 | p.breakable() |
@@ -635,7 +646,7 b' def _set_pprinter_factory(start, end, basetype):' | |||
|
635 | 646 | except Exception: |
|
636 | 647 | # Sometimes the items don't sort. |
|
637 | 648 | pass |
|
638 | for idx, x in enumerate(items): | |
|
649 | for idx, x in p._enumerate(items): | |
|
639 | 650 | if idx: |
|
640 | 651 | p.text(',') |
|
641 | 652 | p.breakable() |
@@ -664,7 +675,7 b' def _dict_pprinter_factory(start, end, basetype=None):' | |||
|
664 | 675 | except Exception as e: |
|
665 | 676 | # Sometimes the keys don't sort. |
|
666 | 677 | pass |
|
667 | for idx, key in enumerate(keys): | |
|
678 | for idx, key in p._enumerate(keys): | |
|
668 | 679 | if idx: |
|
669 | 680 | p.text(',') |
|
670 | 681 | p.breakable() |
@@ -197,3 +197,28 b' def test_super_repr():' | |||
|
197 | 197 | output = pretty.pretty(super(SA, sb)) |
|
198 | 198 | nt.assert_in("SA", output) |
|
199 | 199 | |
|
200 | ||
|
201 | def test_long_list(): | |
|
202 | lis = list(range(10000)) | |
|
203 | p = pretty.pretty(lis) | |
|
204 | last2 = p.rsplit('\n', 2)[-2:] | |
|
205 | nt.assert_equal(last2, [' 999,', ' ...]']) | |
|
206 | ||
|
207 | def test_long_set(): | |
|
208 | s = set(range(10000)) | |
|
209 | p = pretty.pretty(s) | |
|
210 | last2 = p.rsplit('\n', 2)[-2:] | |
|
211 | nt.assert_equal(last2, [' 999,', ' ...}']) | |
|
212 | ||
|
213 | def test_long_tuple(): | |
|
214 | tup = tuple(range(10000)) | |
|
215 | p = pretty.pretty(tup) | |
|
216 | last2 = p.rsplit('\n', 2)[-2:] | |
|
217 | nt.assert_equal(last2, [' 999,', ' ...)']) | |
|
218 | ||
|
219 | def test_long_dict(): | |
|
220 | d = { n:n for n in range(10000) } | |
|
221 | p = pretty.pretty(d) | |
|
222 | last2 = p.rsplit('\n', 2)[-2:] | |
|
223 | nt.assert_equal(last2, [' 999: 999,', ' ...}']) | |
|
224 |
General Comments 0
You need to be logged in to leave comments.
Login now