插件#

插件允许扩展Polars的功能。有关更多信息和资源,请参阅用户指南

可用的插件实用函数有:

register_plugin_function(*, plugin_path, ...)

注册一个插件函数。

polars.plugins.register_plugin_function(
*,
plugin_path: Path | str,
function_name: str,
args: IntoExpr | Iterable[IntoExpr],
kwargs: dict[str, Any] | None = None,
is_elementwise: bool = False,
changes_length: bool = False,
returns_scalar: bool = False,
cast_to_supertype: bool = False,
input_wildcard_expansion: bool = False,
pass_name_to_apply: bool = False,
) Expr[source]#

注册一个插件函数。

查看用户指南以获取更多关于插件的信息。

Parameters:
plugin_path

插件包的路径。接受动态库文件的文件路径或包含它的目录路径。

function_name

要注册的Rust函数的名称。

args

传递给此函数的参数。这些参数会被传递给Rust端的input参数,并且必须是表达式(或可转换为表达式)。

kwargs

插件函数的非表达式参数。这些必须是可JSON序列化的。

is_elementwise

表示该函数仅对标量进行操作。这可能会触发快速路径。

changes_length

表示该函数将改变表达式的长度。 例如,uniqueslice 操作。

returns_scalar

如果函数作为最终聚合运行,则在单位长度上自动展开。 这是像summincovariance等聚合的情况。

cast_to_supertype

将输入表达式转换为其超类型。

input_wildcard_expansion

在执行函数之前展开通配符表达式。

pass_name_to_apply

如果设置为True,在分组操作中传递给函数的Series将确保名称被设置。这是每个组的额外堆分配。

Returns:
Expr

警告

这是非常不安全的,因为这将调用由 plugin::function_name加载的C函数。

您设置的参数决定了Polars将如何处理该函数。 请确保它们是正确的!