Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
b9d4342
chore!: Bump polars to unreleased pre py-1.32.0 version [skip ci]
eitsupi Jul 25, 2025
1521bfc
feat: implement PlRCategories [skip ci]
eitsupi Jul 25, 2025
ba01878
fix: rewrite `PlRDataType::new_categorical` [skip ci]
eitsupi Jul 25, 2025
3d82b44
chore: update `pl__Categorical` (wip) [skip ci]
eitsupi Jul 25, 2025
416cca7
fix: fix about cat dtype [skip ci]
eitsupi Jul 25, 2025
14a053a
fix: fix Enum dtype [skip ci]
eitsupi Jul 25, 2025
e3a9d5a
fix: chunked array conversion [skip ci]
eitsupi Jul 25, 2025
ae428f5
fix: update `PlRDataFrame::to_dummies`
eitsupi Jul 25, 2025
ac70034
fix: fix arr_to_struct and list_to_struct [skip ci]
eitsupi Jul 25, 2025
edde69c
chore: regen [skip ci]
eitsupi Jul 25, 2025
4eb9b97
style: formatting [skip ci]
eitsupi Jul 25, 2025
2e810a3
fix: fix around PlPath [skip ci]
eitsupi Jul 25, 2025
53b8c45
style: refactor [skip ci]
eitsupi Jul 25, 2025
be8684e
fix: fix `PlRLazyFrame::serialize_binary` and `str_to_integer` [skip ci]
eitsupi Jul 25, 2025
8230e6a
chore: bump lib version [skip ci]
eitsupi Jul 25, 2025
3b9d438
chore: bump polars to unreleased 2025-07-25 version [skip ci]
eitsupi Jul 26, 2025
712acce
feat: implement selectors on the rust side [skip ci]
eitsupi Jul 26, 2025
fedb483
chore: regen [skip ci]
eitsupi Jul 26, 2025
0a74e73
fix: fix arg_sort [skip ci]
eitsupi Jul 26, 2025
c46b510
feat: `<expr>$meta$as_selector()` [skip ci]
eitsupi Jul 26, 2025
11bb567
fix: remove functions no longer exist [skip ci]
eitsupi Jul 26, 2025
1e692aa
chore: regen [skip ci]
eitsupi Jul 26, 2025
c849a80
fix: str_pad_start/str_pad_end [skip ci]
eitsupi Jul 26, 2025
7a6bd54
fix: remove broken functions (dtype_cols, index_cols, first, last) [s…
eitsupi Jul 26, 2025
f9a421a
chore: regen [skip ci]
eitsupi Jul 26, 2025
6ecf31c
feat: `<lazyframe>$sink_csv`'s decimal_comma argument [skip ci]
eitsupi Jul 26, 2025
609c564
style: remove unused import [skip ci]
eitsupi Jul 26, 2025
e4935fc
fix: fix `PlRLazyFrame::drop` [skip ci]
eitsupi Jul 26, 2025
192b75e
fix: fix `PlRLazyFrame::join_asof` [skip ci]
eitsupi Jul 26, 2025
8a1c4d7
fix: `PlRLazyFrame::explode` [skip ci]
eitsupi Jul 26, 2025
0bbbfa3
fix: fix typo [skip ci]
eitsupi Jul 26, 2025
0e5912a
fix: PlRLazyFrame's `unique`, `drop_nulls`, `drop_nans`, `unnest` [sk…
eitsupi Jul 26, 2025
60eaa20
chore: regen [skip ci]
eitsupi Jul 26, 2025
a474fef
fix: `PlRLazyFrame::unpivot` [skip ci]
eitsupi Jul 26, 2025
bea86d7
style: make linter happy [skip ci]
eitsupi Jul 26, 2025
c9e5a17
fix: fix typo [skip ci]
eitsupi Jul 26, 2025
acaa45e
feat: start rewriting polars_selector class [skip ci]
eitsupi Jul 26, 2025
ce1c964
docs: regen [skip ci]
eitsupi Jul 26, 2025
fd9b7e1
Merge remote-tracking branch 'upstream/main' into py-1.32
eitsupi Jul 29, 2025
19dbaf6
chore: bump polars to 2025-07-29 unreleased version [skip ci]
eitsupi Jul 29, 2025
712c7e9
feat: rewrite `cs$by_index` [skip ci]
eitsupi Jul 29, 2025
144cd7d
fix: `cs$by_dtype` [skip ci]
eitsupi Jul 29, 2025
3e18341
feat: `cs$empty` and the new `cs$all` [skip ci]
eitsupi Jul 29, 2025
1bc0646
chore: add a comment [skip ci]
eitsupi Jul 29, 2025
de6cbff
fix: update selector's operations [skip ci]
eitsupi Jul 29, 2025
e965fb2
fix: `cs$alpha` and `cs$alphanumeric` [skip ci]
eitsupi Jul 29, 2025
42a9330
feat: `binary`, `boolean`, `enum`, `list`, `array`, `struct`, and `ne…
eitsupi Jul 29, 2025
f50a280
feat: rewrite `cs$contains` [skip ci]
eitsupi Jul 29, 2025
1729879
fix: finish rewriting all selectors [skip ci]
eitsupi Jul 29, 2025
746abc7
fix: `pl$col`, `pl$nth`, `pl$first`, `pl$last` [skip ci]
eitsupi Jul 29, 2025
375737a
docs: regen Rd files [skip ci]
eitsupi Jul 30, 2025
97babca
fix: fix `[` for dataframe [skip ci]
eitsupi Jul 30, 2025
85a8e6a
chore: regen [skip ci]
eitsupi Jul 30, 2025
bd407ff
fix: fix `pl$Categorical` [skip ci]
eitsupi Jul 30, 2025
8b6825c
feat: `<series>$is_empty()` [skip ci]
eitsupi Jul 30, 2025
0bcb70b
fix: `pl$Enum` [skip ci]
eitsupi Jul 30, 2025
79db99e
docs: regen [skip ci]
eitsupi Jul 30, 2025
6008463
test: update snapshots [skip ci]
eitsupi Jul 30, 2025
c59023d
fix: fix `cs$string(include_categorical = TRUE)` [skip ci]
eitsupi Jul 30, 2025
592faa2
fix: `$drop`, `$drop_nulls`, `$drop_nans`, `$unique`, `$unpivot`, `$e…
eitsupi Jul 30, 2025
29985fa
fix: `$drop_nulls` and `$drop_nans` for lazyframe [skip ci]
eitsupi Jul 31, 2025
a4975c8
fix: fix wasm build error
eitsupi Jul 31, 2025
2ef9452
fix: `<expr>$exclude`
eitsupi Jul 31, 2025
b832d3e
test: fix some tests
eitsupi Jul 31, 2025
8204c45
fix: deprecate `POLARS_AUTO_STRUCTIFY=1` and specifying `structify` o…
eitsupi Jul 31, 2025
012dec2
fix: avoiding specify the argument of `pl$Categorical`
eitsupi Jul 31, 2025
89d4531
fix: fix around Categorical dtype
eitsupi Jul 31, 2025
6ed397d
test: fix tests around selector or sample
eitsupi Jul 31, 2025
ee3f4f6
fix: `$str$pad_end` and `$str$pad_start` for expr
eitsupi Jul 31, 2025
8c18788
feat: fix and update `<dataframe>$to_dummies` to support selectors
eitsupi Jul 31, 2025
dea6ac0
Merge remote-tracking branch 'upstream/main' into py-1.32
eitsupi Jul 31, 2025
5559109
docs(altdoc): update index
eitsupi Jul 31, 2025
6c91f42
refactor: make linter happy
eitsupi Jul 31, 2025
1a73bb3
chore: fix rust-version to match msrv
eitsupi Jul 31, 2025
2f4f884
style: make linter happy
eitsupi Jul 31, 2025
7c6dcf9
docs: add description of `drop_nulls` of dataframe__to_dummies
eitsupi Jul 31, 2025
4b0710f
docs: add the `dtype` param description to expr_str_to_integer
eitsupi Jul 31, 2025
46ddbe6
chore: tweak warn message
eitsupi Jul 31, 2025
5127d18
docs(news): add items [skip ci]
eitsupi Jul 31, 2025
4725ab2
feat: `<dataframe>$pivot` supports selectors
eitsupi Jul 31, 2025
ba17b98
test: add some tests around selectors
eitsupi Jul 31, 2025
9b8d158
feat: `<dataframe>$unpivot()` supports selector
eitsupi Jul 31, 2025
e7240d1
feat: `<dataframe>$partition_by` suuports selector
eitsupi Jul 31, 2025
ffa2fc9
docs: fix examples
eitsupi Jul 31, 2025
8110ef8
test: update snapshot
eitsupi Jul 31, 2025
06ed43e
docs(news): add more items
eitsupi Jul 31, 2025
8583af4
refactor: remove the function no longer used
eitsupi Jul 31, 2025
e74446c
docs(news): polish [skip ci]
eitsupi Jul 31, 2025
601fd16
chore: bump polars to Python Polars 1.32.0 released version
eitsupi Aug 2, 2025
7a2c42a
chore: update deps by `cargo update`
eitsupi Aug 2, 2025
66b0c04
test: update error messages
eitsupi Aug 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 102 additions & 6 deletions R/000-wrappers.R
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,99 @@ NULL
.savvy_wrap_PlRWhen(.Call(savvy_when__impl, `condition`))
}

### wrapper functions for PlRCategories

`PlRCategories_cat_to_str` <- function(self) {
function(`cat`) {
.Call(savvy_PlRCategories_cat_to_str__impl, `self`, `cat`)
}
}

`PlRCategories_eq` <- function(self) {
function(`other`) {
`other` <- .savvy_extract_ptr(`other`, "PlRCategories")
.Call(savvy_PlRCategories_eq__impl, `self`, `other`)
}
}

`PlRCategories_get_cat` <- function(self) {
function(`s`) {
.Call(savvy_PlRCategories_get_cat__impl, `self`, `s`)
}
}

`PlRCategories_hash` <- function(self) {
function() {
.Call(savvy_PlRCategories_hash__impl, `self`)
}
}

`PlRCategories_is_global` <- function(self) {
function() {
.Call(savvy_PlRCategories_is_global__impl, `self`)
}
}

`PlRCategories_name` <- function(self) {
function() {
.Call(savvy_PlRCategories_name__impl, `self`)
}
}

`PlRCategories_namespace` <- function(self) {
function() {
.Call(savvy_PlRCategories_namespace__impl, `self`)
}
}

`PlRCategories_physical` <- function(self) {
function() {
.Call(savvy_PlRCategories_physical__impl, `self`)
}
}

`.savvy_wrap_PlRCategories` <- function(ptr) {
e <- new.env(parent = emptyenv())
e$.ptr <- ptr
e$`cat_to_str` <- `PlRCategories_cat_to_str`(ptr)
e$`eq` <- `PlRCategories_eq`(ptr)
e$`get_cat` <- `PlRCategories_get_cat`(ptr)
e$`hash` <- `PlRCategories_hash`(ptr)
e$`is_global` <- `PlRCategories_is_global`(ptr)
e$`name` <- `PlRCategories_name`(ptr)
e$`namespace` <- `PlRCategories_namespace`(ptr)
e$`physical` <- `PlRCategories_physical`(ptr)

class(e) <- c("PlRCategories", "savvy_polars__sealed")
e
}



`PlRCategories` <- new.env(parent = emptyenv())

### associated functions for PlRCategories

`PlRCategories`$`global_categories` <- function() {
.savvy_wrap_PlRCategories(.Call(savvy_PlRCategories_global_categories__impl))
}

`PlRCategories`$`init` <- function(`name`, `namespace`, `physical`) {
.savvy_wrap_PlRCategories(.Call(savvy_PlRCategories_init__impl, `name`, `namespace`, `physical`))
}

`PlRCategories`$`random` <- function(`namespace`, `physical`) {
.savvy_wrap_PlRCategories(.Call(savvy_PlRCategories_random__impl, `namespace`, `physical`))
}


class(`PlRCategories`) <- c("PlRCategories__bundle", "savvy_polars__sealed")

#' @export
`print.PlRCategories__bundle` <- function(x, ...) {
cat('PlRCategories\n')
}

### wrapper functions for PlRChainedThen

`PlRChainedThen_otherwise` <- function(self) {
Expand Down Expand Up @@ -559,8 +652,8 @@ class(`PlRChainedWhen`) <- c("PlRChainedWhen__bundle", "savvy_polars__sealed")
}

`PlRDataFrame_to_dummies` <- function(self) {
function(`drop_first`, `columns` = NULL, `separator` = NULL) {
.savvy_wrap_PlRDataFrame(.Call(savvy_PlRDataFrame_to_dummies__impl, `self`, `drop_first`, `columns`, `separator`))
function(`drop_first`, `drop_nulls`, `columns` = NULL, `separator` = NULL) {
.savvy_wrap_PlRDataFrame(.Call(savvy_PlRDataFrame_to_dummies__impl, `self`, `drop_first`, `drop_nulls`, `columns`, `separator`))
}
}

Expand Down Expand Up @@ -752,8 +845,9 @@ class(`PlRDataFrame`) <- c("PlRDataFrame__bundle", "savvy_polars__sealed")
.savvy_wrap_PlRDataType(.Call(savvy_PlRDataType_new_array__impl, `inner`, `shape`))
}

`PlRDataType`$`new_categorical` <- function(`ordering`) {
.savvy_wrap_PlRDataType(.Call(savvy_PlRDataType_new_categorical__impl, `ordering`))
`PlRDataType`$`new_categorical` <- function(`categories`) {
`categories` <- .savvy_extract_ptr(`categories`, "PlRCategories")
.savvy_wrap_PlRDataType(.Call(savvy_PlRDataType_new_categorical__impl, `categories`))
}

`PlRDataType`$`new_datetime` <- function(`time_unit`, `time_zone` = NULL) {
Expand All @@ -769,6 +863,7 @@ class(`PlRDataFrame`) <- c("PlRDataFrame__bundle", "savvy_polars__sealed")
}

`PlRDataType`$`new_enum` <- function(`categories`) {
`categories` <- .savvy_extract_ptr(`categories`, "PlRSeries")
.savvy_wrap_PlRDataType(.Call(savvy_PlRDataType_new_enum__impl, `categories`))
}

Expand Down Expand Up @@ -2975,9 +3070,10 @@ class(`PlRDataType`) <- c("PlRDataType__bundle", "savvy_polars__sealed")
}

`PlRExpr_str_to_integer` <- function(self) {
function(`base`, `strict`) {
function(`base`, `strict`, `dtype` = NULL) {
`base` <- .savvy_extract_ptr(`base`, "PlRExpr")
.savvy_wrap_PlRExpr(.Call(savvy_PlRExpr_str_to_integer__impl, `self`, `base`, `strict`))
`dtype` <- .savvy_extract_ptr(`dtype`, "PlRDataType")
.savvy_wrap_PlRExpr(.Call(savvy_PlRExpr_str_to_integer__impl, `self`, `base`, `strict`, `dtype`))
}
}

Expand Down
28 changes: 23 additions & 5 deletions R/datatypes-classes.R
Original file line number Diff line number Diff line change
Expand Up @@ -172,12 +172,30 @@ pl__Duration <- function(time_unit = c("us", "ns", "ms")) {
}

#' @rdname polars_dtype
#' @param ordering One of `"physical"` (default) or `"lexical"`.
#' Ordering by order of appearance (`"physical"`) or string value (`"lexical"`).
pl__Categorical <- function(ordering = c("physical", "lexical")) {
#' @param ordering `r lifecycle::badge("deprecated")`
#' One of `"lexical"` or `"physical"`.
#' This argument is deprecated and ignored.
#' Always behaves as if `"lexical"` was passed.
pl__Categorical <- function(ordering = NULL) {
wrap({
ordering <- arg_match0(ordering, c("physical", "lexical"))
PlRDataType$new_categorical(ordering)
categories <- if (is_character(ordering)) {
ordering <- arg_match0(ordering, c("lexical", "physical"))
deprecate_warn(
format_warning(
sprintf(
"Specifying %s is deprecated.",
format_arg("ordering")
)
)
)
# TODO: should return `Categories()`
NULL
} else {
# Hidden pattern, Categories object is passed
ordering
}

PlRDataType$new_categorical(categories)
})
}

Expand Down
4 changes: 2 additions & 2 deletions R/expr-string.R
Original file line number Diff line number Diff line change
Expand Up @@ -1025,10 +1025,10 @@ expr_str_slice <- function(offset, length = NULL) {
#' df$with_columns(
#' parsed = pl$col("hex")$str$to_integer(base = 16, strict = TRUE)
#' )
expr_str_to_integer <- function(..., base = 10L, strict = TRUE) {
expr_str_to_integer <- function(..., base = 10L, dtype = pl$Int64, strict = TRUE) {
wrap({
check_dots_empty0(...)
self$`_rexpr`$str_to_integer(as_polars_expr(base)$`_rexpr`, strict)
self$`_rexpr`$str_to_integer(as_polars_expr(base)$`_rexpr`, strict, dtype$`_dt`)
})
}

Expand Down
82 changes: 74 additions & 8 deletions src/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,61 @@ SEXP savvy_when__impl(SEXP c_arg__condition) {
return handle_result(res);
}

SEXP savvy_PlRCategories_cat_to_str__impl(SEXP self__, SEXP c_arg__cat) {
SEXP res = savvy_PlRCategories_cat_to_str__ffi(self__, c_arg__cat);
return handle_result(res);
}

SEXP savvy_PlRCategories_eq__impl(SEXP self__, SEXP c_arg__other) {
SEXP res = savvy_PlRCategories_eq__ffi(self__, c_arg__other);
return handle_result(res);
}

SEXP savvy_PlRCategories_get_cat__impl(SEXP self__, SEXP c_arg__s) {
SEXP res = savvy_PlRCategories_get_cat__ffi(self__, c_arg__s);
return handle_result(res);
}

SEXP savvy_PlRCategories_global_categories__impl(void) {
SEXP res = savvy_PlRCategories_global_categories__ffi();
return handle_result(res);
}

SEXP savvy_PlRCategories_hash__impl(SEXP self__) {
SEXP res = savvy_PlRCategories_hash__ffi(self__);
return handle_result(res);
}

SEXP savvy_PlRCategories_init__impl(SEXP c_arg__name, SEXP c_arg__namespace, SEXP c_arg__physical) {
SEXP res = savvy_PlRCategories_init__ffi(c_arg__name, c_arg__namespace, c_arg__physical);
return handle_result(res);
}

SEXP savvy_PlRCategories_is_global__impl(SEXP self__) {
SEXP res = savvy_PlRCategories_is_global__ffi(self__);
return handle_result(res);
}

SEXP savvy_PlRCategories_name__impl(SEXP self__) {
SEXP res = savvy_PlRCategories_name__ffi(self__);
return handle_result(res);
}

SEXP savvy_PlRCategories_namespace__impl(SEXP self__) {
SEXP res = savvy_PlRCategories_namespace__ffi(self__);
return handle_result(res);
}

SEXP savvy_PlRCategories_physical__impl(SEXP self__) {
SEXP res = savvy_PlRCategories_physical__ffi(self__);
return handle_result(res);
}

SEXP savvy_PlRCategories_random__impl(SEXP c_arg__namespace, SEXP c_arg__physical) {
SEXP res = savvy_PlRCategories_random__ffi(c_arg__namespace, c_arg__physical);
return handle_result(res);
}

SEXP savvy_PlRChainedThen_otherwise__impl(SEXP self__, SEXP c_arg__statement) {
SEXP res = savvy_PlRChainedThen_otherwise__ffi(self__, c_arg__statement);
return handle_result(res);
Expand Down Expand Up @@ -434,8 +489,8 @@ SEXP savvy_PlRDataFrame_tail__impl(SEXP self__, SEXP c_arg__n) {
return handle_result(res);
}

SEXP savvy_PlRDataFrame_to_dummies__impl(SEXP self__, SEXP c_arg__drop_first, SEXP c_arg__columns, SEXP c_arg__separator) {
SEXP res = savvy_PlRDataFrame_to_dummies__ffi(self__, c_arg__drop_first, c_arg__columns, c_arg__separator);
SEXP savvy_PlRDataFrame_to_dummies__impl(SEXP self__, SEXP c_arg__drop_first, SEXP c_arg__drop_nulls, SEXP c_arg__columns, SEXP c_arg__separator) {
SEXP res = savvy_PlRDataFrame_to_dummies__ffi(self__, c_arg__drop_first, c_arg__drop_nulls, c_arg__columns, c_arg__separator);
return handle_result(res);
}

Expand Down Expand Up @@ -519,8 +574,8 @@ SEXP savvy_PlRDataType_new_array__impl(SEXP c_arg__inner, SEXP c_arg__shape) {
return handle_result(res);
}

SEXP savvy_PlRDataType_new_categorical__impl(SEXP c_arg__ordering) {
SEXP res = savvy_PlRDataType_new_categorical__ffi(c_arg__ordering);
SEXP savvy_PlRDataType_new_categorical__impl(SEXP c_arg__categories) {
SEXP res = savvy_PlRDataType_new_categorical__ffi(c_arg__categories);
return handle_result(res);
}

Expand Down Expand Up @@ -2279,8 +2334,8 @@ SEXP savvy_PlRExpr_str_to_decimal__impl(SEXP self__, SEXP c_arg__infer_len) {
return handle_result(res);
}

SEXP savvy_PlRExpr_str_to_integer__impl(SEXP self__, SEXP c_arg__base, SEXP c_arg__strict) {
SEXP res = savvy_PlRExpr_str_to_integer__ffi(self__, c_arg__base, c_arg__strict);
SEXP savvy_PlRExpr_str_to_integer__impl(SEXP self__, SEXP c_arg__base, SEXP c_arg__strict, SEXP c_arg__dtype) {
SEXP res = savvy_PlRExpr_str_to_integer__ffi(self__, c_arg__base, c_arg__strict, c_arg__dtype);
return handle_result(res);
}

Expand Down Expand Up @@ -3067,6 +3122,17 @@ static const R_CallMethodDef CallEntries[] = {
{"savvy_time_range__impl", (DL_FUNC) &savvy_time_range__impl, 4},
{"savvy_time_ranges__impl", (DL_FUNC) &savvy_time_ranges__impl, 4},
{"savvy_when__impl", (DL_FUNC) &savvy_when__impl, 1},
{"savvy_PlRCategories_cat_to_str__impl", (DL_FUNC) &savvy_PlRCategories_cat_to_str__impl, 2},
{"savvy_PlRCategories_eq__impl", (DL_FUNC) &savvy_PlRCategories_eq__impl, 2},
{"savvy_PlRCategories_get_cat__impl", (DL_FUNC) &savvy_PlRCategories_get_cat__impl, 2},
{"savvy_PlRCategories_global_categories__impl", (DL_FUNC) &savvy_PlRCategories_global_categories__impl, 0},
{"savvy_PlRCategories_hash__impl", (DL_FUNC) &savvy_PlRCategories_hash__impl, 1},
{"savvy_PlRCategories_init__impl", (DL_FUNC) &savvy_PlRCategories_init__impl, 3},
{"savvy_PlRCategories_is_global__impl", (DL_FUNC) &savvy_PlRCategories_is_global__impl, 1},
{"savvy_PlRCategories_name__impl", (DL_FUNC) &savvy_PlRCategories_name__impl, 1},
{"savvy_PlRCategories_namespace__impl", (DL_FUNC) &savvy_PlRCategories_namespace__impl, 1},
{"savvy_PlRCategories_physical__impl", (DL_FUNC) &savvy_PlRCategories_physical__impl, 1},
{"savvy_PlRCategories_random__impl", (DL_FUNC) &savvy_PlRCategories_random__impl, 2},
{"savvy_PlRChainedThen_otherwise__impl", (DL_FUNC) &savvy_PlRChainedThen_otherwise__impl, 2},
{"savvy_PlRChainedThen_when__impl", (DL_FUNC) &savvy_PlRChainedThen_when__impl, 2},
{"savvy_PlRChainedWhen_then__impl", (DL_FUNC) &savvy_PlRChainedWhen_then__impl, 2},
Expand Down Expand Up @@ -3101,7 +3167,7 @@ static const R_CallMethodDef CallEntries[] = {
{"savvy_PlRDataFrame_shape__impl", (DL_FUNC) &savvy_PlRDataFrame_shape__impl, 1},
{"savvy_PlRDataFrame_slice__impl", (DL_FUNC) &savvy_PlRDataFrame_slice__impl, 3},
{"savvy_PlRDataFrame_tail__impl", (DL_FUNC) &savvy_PlRDataFrame_tail__impl, 2},
{"savvy_PlRDataFrame_to_dummies__impl", (DL_FUNC) &savvy_PlRDataFrame_to_dummies__impl, 4},
{"savvy_PlRDataFrame_to_dummies__impl", (DL_FUNC) &savvy_PlRDataFrame_to_dummies__impl, 5},
{"savvy_PlRDataFrame_to_series__impl", (DL_FUNC) &savvy_PlRDataFrame_to_series__impl, 2},
{"savvy_PlRDataFrame_to_struct__impl", (DL_FUNC) &savvy_PlRDataFrame_to_struct__impl, 2},
{"savvy_PlRDataFrame_transpose__impl", (DL_FUNC) &savvy_PlRDataFrame_transpose__impl, 3},
Expand Down Expand Up @@ -3470,7 +3536,7 @@ static const R_CallMethodDef CallEntries[] = {
{"savvy_PlRExpr_str_to_date__impl", (DL_FUNC) &savvy_PlRExpr_str_to_date__impl, 5},
{"savvy_PlRExpr_str_to_datetime__impl", (DL_FUNC) &savvy_PlRExpr_str_to_datetime__impl, 8},
{"savvy_PlRExpr_str_to_decimal__impl", (DL_FUNC) &savvy_PlRExpr_str_to_decimal__impl, 2},
{"savvy_PlRExpr_str_to_integer__impl", (DL_FUNC) &savvy_PlRExpr_str_to_integer__impl, 3},
{"savvy_PlRExpr_str_to_integer__impl", (DL_FUNC) &savvy_PlRExpr_str_to_integer__impl, 4},
{"savvy_PlRExpr_str_to_lowercase__impl", (DL_FUNC) &savvy_PlRExpr_str_to_lowercase__impl, 1},
{"savvy_PlRExpr_str_to_time__impl", (DL_FUNC) &savvy_PlRExpr_str_to_time__impl, 4},
{"savvy_PlRExpr_str_to_titlecase__impl", (DL_FUNC) &savvy_PlRExpr_str_to_titlecase__impl, 1},
Expand Down
Loading