AsyncEnumerable¶
pydantic_linq.AsyncEnumerable ¶
AsyncEnumerable(source: AnyIterable[T] = ())
Bases: Generation[T], Filtering[T], Projection[T], Partitioning[T], Concatenation[T], Sets[T], Sorting[T], GroupingOps[T], Joining[T], Element[T], Quantifiers[T], Equality[T], Aggregation[T], Conversion[T]
IAsyncEnumerable
Wraps any sync or async iterable. Sequence operators are deferred; terminal operators are awaitable.
Selectors may be plain functions or async def.
aggregate
async
¶
aggregate(func: Fn[[T, T], T]) -> T
aggregate(seed: A, func: Fn[[A, T], A]) -> A
aggregate(seed: A, func: Fn[[A, T], A], result_selector: Fn[[A], R]) -> R
aggregate(*args: Any) -> Any
aggregate_by ¶
aggregate_by(key_selector: Fn[[T], K], seed: A, func: Fn[[A, T], A]) -> AsyncEnumerable[tuple[K, A]]
cast
async
¶
cast(type_: type[U], *, strict: bool = False) -> AsyncIterator[U]
Cast
element_at_or_default
async
¶
element_at_or_default(index: int, default: T | None = None) -> T | None
except_ ¶
except_(second: AnyIterable[T]) -> AsyncEnumerable[T]
Except (trailing underscore: except is a keyword).
first_or_default
async
¶
first_or_default(predicate: Fn[[T], bool] | None = None, default: T | None = None) -> T | None
group_by ¶
group_by(key_selector: Fn[[T], K]) -> AsyncEnumerable[AsyncGrouping[K, T]]
group_by(key_selector: Fn[[T], K], element_selector: Fn[[T], E]) -> AsyncEnumerable[AsyncGrouping[K, E]]
group_by(key_selector: Fn[[T], K], element_selector: Fn[[T], E] | None = None, *, result_selector: Fn[[K, AsyncEnumerable[E]], R]) -> AsyncEnumerable[R]
group_by(key_selector: Fn[[T], Any], element_selector: Fn[[T], Any] | None = None, *, result_selector: Fn[[Any, AsyncEnumerable[Any]], Any] | None = None) -> AsyncEnumerable[Any]
group_join
async
¶
group_join(inner: AnyIterable[I], outer_key_selector: Fn[[T], K], inner_key_selector: Fn[[I], K], result_selector: Fn[[T, AsyncEnumerable[I]], R]) -> AsyncIterator[R]
intersect_by
async
¶
intersect_by(second: AnyIterable[K], key_selector: Fn[[T], K]) -> AsyncIterator[T]
join
async
¶
join(inner: AnyIterable[I], outer_key_selector: Fn[[T], K], inner_key_selector: Fn[[I], K], result_selector: Fn[[T, I], R]) -> AsyncIterator[R]
last_or_default
async
¶
last_or_default(predicate: Fn[[T], bool] | None = None, default: T | None = None) -> T | None
left_join
async
¶
left_join(inner: AnyIterable[I], outer_key_selector: Fn[[T], K], inner_key_selector: Fn[[I], K], result_selector: Fn[[T, I | None], R]) -> AsyncIterator[R]
Unmatched outer elements pair with None.
order_by ¶
order_by(key_selector: Fn[[T], Any], comparer: Comparer | None = None) -> OrderedAsyncEnumerable[T]
order_by_descending ¶
order_by_descending(key_selector: Fn[[T], Any], comparer: Comparer | None = None) -> OrderedAsyncEnumerable[T]
right_join
async
¶
right_join(inner: AnyIterable[I], outer_key_selector: Fn[[T], K], inner_key_selector: Fn[[I], K], result_selector: Fn[[T | None, I], R]) -> AsyncIterator[R]
Unmatched inner elements pair with None.
select_many ¶
select_many(selector: Fn[[T], AnyIterable[U]]) -> AsyncEnumerable[U]
select_many(selector: Fn[[T], AnyIterable[C]], result_selector: Fn[[T, C], U]) -> AsyncEnumerable[U]
select_many(selector: Fn[[T], AnyIterable[Any]], result_selector: Fn[[T, Any], Any] | None = None) -> AsyncEnumerable[Any]
single_or_default
async
¶
single_or_default(predicate: Fn[[T], bool] | None = None, default: T | None = None) -> T | None
take ¶
take(count: int | slice) -> AsyncEnumerable[T]
Take(int) or Take(Range): pass a slice for ranges; negative bounds count from the end (^n).
to_dictionary
async
¶
to_dictionary(key_selector: Fn[[T], K]) -> dict[K, T]
to_dictionary(key_selector: Fn[[T], K], element_selector: Fn[[T], E]) -> dict[K, E]
to_dictionary(key_selector: Fn[[T], Any], element_selector: Fn[[T], Any] | None = None) -> dict[Any, Any]
to_lookup
async
¶
to_lookup(key_selector: Fn[[T], K]) -> Lookup[K, T]
to_lookup(key_selector: Fn[[T], K], element_selector: Fn[[T], E]) -> Lookup[K, E]
to_lookup(key_selector: Fn[[T], Any], element_selector: Fn[[T], Any] | None = None) -> Lookup[Any, Any]
zip ¶
zip(second: AnyIterable[S]) -> AsyncEnumerable[tuple[T, S]]
zip(second: AnyIterable[S], third: AnyIterable[U]) -> AsyncEnumerable[tuple[T, S, U]]
zip(*others: AnyIterable[Any]) -> AsyncEnumerable[tuple[Any, ...]]
zip_with
async
¶
zip_with(second: AnyIterable[S], result_selector: Fn[[T, S], R]) -> AsyncIterator[R]
pydantic_linq.OrderedAsyncEnumerable ¶
OrderedAsyncEnumerable(source: AnyIterable[T], keys: tuple[AsyncSortKey[T], ...])
Bases: AsyncEnumerable[T]
IOrderedAsyncEnumerable