Seq Helpers

basic_utils.seq_helpers.first(seq)[source]

Returns first element in a sequence.

>>> first([1, 2, 3])
1
Return type:Any
basic_utils.seq_helpers.last(seq)[source]

Returns the last item in a Sequence

>>> last([1, 2, 3])
3
Return type:Any
basic_utils.seq_helpers.butlast(seq)[source]

Returns all but the last item in sequence

>>> butlast([1, 2, 3])
[1, 2]
Return type:Sequence[+T_co]
basic_utils.seq_helpers.rest(seq)[source]

Returns remaining elements in a sequence

>>> rest([1, 2, 3])
[2, 3]
Return type:Any
basic_utils.seq_helpers.reverse(seq)[source]

Returns sequence in reverse order

>>> reverse([1, 2, 3])
[3, 2, 1]
Return type:Sequence[+T_co]
basic_utils.seq_helpers.cons(item, seq)[source]

Adds item to beginning of sequence.

>>> list(cons(1, [2, 3]))
[1, 2, 3]
Return type:chain
basic_utils.seq_helpers.flatten(seq)[source]

Returns a flatten version of sequence.

>>> flatten([1, [2, [3, [4, 5], 6], 7]])
[1, 2, 3, 4, 5, 6, 7]
Return type:Iterable[+T_co]
basic_utils.seq_helpers.partial_flatten(seq)[source]

Returns partially flattened version of sequence.

>>> partial_flatten(((1,), [2, 3], (4, [5, 6])))
(1, 2, 3, 4, [5, 6])
Return type:Iterable[+T_co]
basic_utils.seq_helpers.sorted_index(seq, item, key=None)[source]
>>> sorted_index([10, 20, 30, 40, 50], 35)
3
Return type:int
basic_utils.seq_helpers.dedupe(seq, key=None)[source]

Removes duplicates from a sequence while maintaining order

>>> dedupe([1, 5, 2, 1, 9, 1, 5, 10])
[1, 5, 2, 9, 10]
Return type:Iterable[+T_co]
basic_utils.seq_helpers.concat(seqX, seqY)[source]

Joins two sequences together, returning a single combined sequence. Preserves the type of passed arguments.

>>> concat((1, 2, 3), (4, 5, 6))
(1, 2, 3, 4, 5, 6)
Return type:Sequence[+T_co]
basic_utils.seq_helpers.take(n, iterable)[source]

Return first n items of the iterable as a list.

>>> take(2, range(1, 10))
[1, 2]
Return type:Iterable[+T_co]
basic_utils.seq_helpers.nth(iterable, n, default=None)[source]

Returns the nth item or a default value.

>>> nth([1, 2, 3], 1)
2
Return type:Any
basic_utils.seq_helpers.all_equal(iterable)[source]

Returns True if all the elements are equal to each other.

>>> all_equal([True, True])
True
Return type:bool
basic_utils.seq_helpers.quantify(iterable, pred=<class 'bool'>)[source]

Returns count of how many times the predicate is true.

>>> quantify([True, False, True])
2
Return type:int
basic_utils.seq_helpers.head(seq)

Returns first element in a sequence.

>>> first([1, 2, 3])
1
Return type:Any
basic_utils.seq_helpers.tail(seq)

Returns remaining elements in a sequence

>>> rest([1, 2, 3])
[2, 3]
Return type:Any
basic_utils.seq_helpers.init(seq)

Returns all but the last item in sequence

>>> butlast([1, 2, 3])
[1, 2]
Return type:Sequence[+T_co]