##// END OF EJS Templates
restore master behavior...
restore master behavior up arrow at the top line first goes to char 0, and only goes to the cell above if already on char 0. Same with down arrow on the bottom line: transition cursor to the end of the line, and only go down a cell if already at the end of the last line. this makes for an unhappy experience in code-mirror's vim mode for j and k keys, but we'll fix that in the next commit

File last commit:

r13356:0a3c3bee
r15835:dc3c98b8
Show More
data.py
37 lines | 1.2 KiB | text/x-python | PythonLexer
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 # encoding: utf-8
"""Utilities for working with data structures like lists, dicts and tuples.
"""
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2008-2011 The IPython Development Team
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
Thomas Kluyver
Fix references to xrange
r13356 from .py3compat import xrange
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 def uniq_stable(elems):
"""uniq_stable(elems) -> list
Return from an iterable, a list of all the unique elements in the input,
but maintaining the order in which they first appear.
W. Trevor King
utils.data: Use list comprehension for uniq_stable()...
r9249 Note: All elements in the input must be hashable for this routine
to work, as it internally uses a set for efficiency reasons.
"""
seen = set()
return [x for x in elems if x not in seen and not seen.add(x)]
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
def flatten(seq):
"""Flatten a list of lists (NOT recursive, only works for 2d lists)."""
return [x for subseq in seq for x in subseq]
Thomas Kluyver
Remove dead code in utils.data
r9471
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
def chop(seq, size):
"""Chop a sequence into chunks of the given size."""
Thomas Kluyver
Remove dead code in utils.data
r9471 return [seq[i:i+size] for i in xrange(0,len(seq),size)]
Brian Granger
Work to address the review comments on Fernando's branch....
r2498