Skip to content

Iterable Helpers

pdum.plumbum.iterops

Attributes

K module-attribute

K = TypeVar('K')

T module-attribute

T = TypeVar('T')

U module-attribute

U = TypeVar('U')

__all__ module-attribute

__all__ = [
    "take",
    "tail",
    "skip",
    "dedup",
    "uniq",
    "permutations",
    "netcat",
    "traverse",
    "tee",
    "select",
    "where",
    "take_while",
    "skip_while",
    "groupby",
    "sort",
    "reverse",
    "t",
    "transpose",
    "batched",
    "enumerate",
    "map",
    "filter",
    "chain",
    "chain_with",
    "islice",
    "izip",
]

chain module-attribute

chain = pb(from_iterable)

chain_with module-attribute

chain_with = pb(chain)

enumerate module-attribute

enumerate = pb(enumerate)

filter module-attribute

filter = where

islice module-attribute

islice = pb(islice)

izip module-attribute

izip = pb(zip)

map module-attribute

map = select

Functions

_traverse_impl

_traverse_impl(obj)

batched

batched(iterable, size)

Yield fixed-size batches from iterable.

dedup

dedup(iterable, key=lambda x: x)

Yield only unique items from iterable by tracking seen keys.

Parameters:

Name Type Description Default
iterable Iterable[T]

Source iterable to deduplicate.

required
key

Callable returning the deduplication key for each item.

lambda x: x

Returns:

Type Description
Iterator[T]

Iterator yielding unique items.

groupby

groupby(iterable, keyfunc)

Group items by keyfunc using itertools.groupby on sorted data.

netcat

netcat(to_send, host, port)

Send bytes to host/port and yield responses.

Parameters:

Name Type Description Default
to_send Iterable[bytes]

Iterable of byte chunks to transmit.

required
host str

Target hostname.

required
port int

Target port.

required

Returns:

Type Description
Iterator[bytes]

Iterator yielding response chunks.

pb

pb(function)

permutations

permutations(iterable, r=None)

Yield permutations of iterable.

Parameters:

Name Type Description Default
iterable Iterable[T]

Source iterable to permute.

required
r int | None

Length of each permutation.

None

Returns:

Type Description
Iterator[tuple[T, ...]]

Iterator over permutations.

reverse

reverse(iterable)

Yield items from iterable in reverse order.

select

select(iterable, mapper)

Apply mapper to each item in iterable.

skip

skip(iterable, count)

Skip count items in iterable before yielding the remainder.

Parameters:

Name Type Description Default
iterable Iterable[T]

Source iterable to consume.

required
count int

Number of items to drop from the front.

required

Returns:

Type Description
Iterator[T]

Iterator yielding the remaining values.

skip_while

skip_while(iterable, predicate)

Skip items in iterable while predicate stays true.

sort

sort(iterable, key=None, reverse=False)

Return a new list with items sorted.

t

t(iterable, value)

Append value to iterable (if possible) and return the result.

tail

tail(iterable, count)

Return a deque containing the last count items of iterable.

Parameters:

Name Type Description Default
iterable Iterable[T]

Source iterable to inspect.

required
count int

Number of items to retain.

required

Returns:

Type Description
deque[T]

Deque containing the most recent items.

take

take(iterable, count)

Yield the first count items from iterable.

Parameters:

Name Type Description Default
iterable Iterable[T]

Source iterable to consume.

required
count int

Maximum number of items to yield.

required

Returns:

Type Description
Iterator[T]

Iterator of the first count items.

take_while

take_while(iterable, predicate)

Yield items from iterable while predicate stays true.

tee

tee(iterable)

Echo items to stdout while yielding them unchanged.

Parameters:

Name Type Description Default
iterable Iterable[T]

Source iterable to observe.

required

Returns:

Type Description
Iterator[T]

Iterator yielding the original items.

transpose

transpose(iterable)

Transpose rows and columns within iterable.

traverse

traverse(obj)

Traverse nested iterables yielding leaf values.

Parameters:

Name Type Description Default
obj Iterable[T] | T

A potentially nested iterable structure.

required

Returns:

Type Description
Iterator[T]

Iterator yielding flattened values.

uniq

uniq(iterable, key=lambda x: x)

Yield items from iterable removing consecutive duplicates.

Parameters:

Name Type Description Default
iterable Iterable[T]

Source iterable to deduplicate.

required
key

Callable returning the comparison key for each item.

lambda x: x

Returns:

Type Description
Iterator[T]

Iterator yielding items without consecutive duplicates.

where

where(iterable, predicate)

Yield items for which predicate returns True.