'Split a list into two lists. The first list contains the first N items
of the original list, in their original order,  where 0 < N <=
len(original list). The second list contains the remaining items of the
original list, in their original order.
The index, N, at which the original list is split is the index of the
first item in the list that does not satisfy the given condition. Note
that the original list should be appropriately sorted if the second
list is to contain no items that satisfy the given condition.
:param original_list: the list to be split.
:param condition: a single argument function that will be used to test
for the list item to split on.
:return: a tuple of two lists.'

def _split_list(self, original_list, condition):

    for (i, item) in enumerate(original_list):
        if (not condition(item)):
            return (original_list[:i], original_list[i:])
    return (original_list, [])
