Skip to content

semlib.apply

apply async

apply[T, U: BaseModel](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: type[U],
    model: str | None = None,
) -> U
apply[T, U](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: Bare[U],
    model: str | None = None,
) -> U
apply[T](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: None = None,
    model: str | None = None,
) -> str

Standalone version of apply.

Source code in src/semlib/apply.py
async def apply[T, U: BaseModel, V](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: type[U] | Bare[V] | None = None,
    model: str | None = None,
) -> U | V | str:
    """Standalone version of [apply][semlib.apply.Apply.apply]."""
    applier = Apply(model=model)
    return await applier.apply(item, template, return_type=return_type)

apply_sync

apply_sync[T, U: BaseModel](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: type[U],
    model: str | None = None,
) -> U
apply_sync[T, U](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: Bare[U],
    model: str | None = None,
) -> U
apply_sync[T](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: None = None,
    model: str | None = None,
) -> str

Standalone synchronous version of apply.

Source code in src/semlib/apply.py
def apply_sync[T, U: BaseModel, V](
    item: T,
    /,
    template: str | Callable[[T], str],
    *,
    return_type: type[U] | Bare[V] | None = None,
    model: str | None = None,
) -> U | V | str:
    """Standalone synchronous version of [apply][semlib.apply.Apply.apply]."""
    applier = Apply(model=model)
    return asyncio.run(applier.apply(item, template, return_type=return_type))  # type: ignore[return-value]

:::