Skip to content

semlib.filter

filter async

filter[T](
    iterable: Iterable[T],
    /,
    *,
    by: str | None = None,
    to_str: Callable[[T], str] | None = None,
    template: str | Callable[[T], str] | None = None,
    negate: bool = False,
    model: str | None = None,
    max_concurrency: int | None = None,
) -> list[T]

Standalone version of filter.

Source code in src/semlib/filter.py
async def filter[T](  # noqa: A001
    iterable: Iterable[T],
    /,
    *,
    by: str | None = None,
    to_str: Callable[[T], str] | None = None,
    template: str | Callable[[T], str] | None = None,
    negate: bool = False,
    model: str | None = None,
    max_concurrency: int | None = None,
) -> list[T]:
    """Standalone version of [filter][semlib.filter.Filter.filter]."""
    filterer = Filter(model=model, max_concurrency=max_concurrency)
    return await filterer.filter(iterable, by=by, to_str=to_str, template=template, negate=negate)

filter_sync

filter_sync[T](
    iterable: Iterable[T],
    /,
    *,
    by: str | None = None,
    to_str: Callable[[T], str] | None = None,
    template: str | Callable[[T], str] | None = None,
    negate: bool = False,
    model: str | None = None,
    max_concurrency: int | None = None,
) -> list[T]

Standalone synchronous version of filter.

Source code in src/semlib/filter.py
def filter_sync[T](
    iterable: Iterable[T],
    /,
    *,
    by: str | None = None,
    to_str: Callable[[T], str] | None = None,
    template: str | Callable[[T], str] | None = None,
    negate: bool = False,
    model: str | None = None,
    max_concurrency: int | None = None,
) -> list[T]:
    """Standalone synchronous version of [filter][semlib.filter.Filter.filter]."""
    filterer = Filter(model=model, max_concurrency=max_concurrency)
    return asyncio.run(filterer.filter(iterable, by=by, to_str=to_str, template=template, negate=negate))

:::