@@ -261,7 +261,7 @@ DatasetConnector <- R6::R6Class( #nolint
261
261
# ' @return (`self`) invisibly for chaining.
262
262
mutate = function (code , vars = list ()) {
263
263
private $ set_staged_mutate_vars(vars )
264
- private $ set_staged_mutate_code (code )
264
+ private $ set_mutate_code (code , stage = TRUE )
265
265
if (self $ is_pulled()) {
266
266
private $ mutate_eager(is_re_pull = FALSE )
267
267
} else {
@@ -464,18 +464,16 @@ DatasetConnector <- R6::R6Class( #nolint
464
464
},
465
465
466
466
mutate_eager = function (is_re_pull = FALSE ) {
467
- code_obj <- ifelse(is_re_pull , " get_mutate_code_class" , " get_staged_mutate_code_class" )
468
- vars_list <- ifelse(is_re_pull , " mutate_vars" , " staged_mutate_vars" )
469
- if (! is_empty(private [[code_obj ]]()$ code )) {
470
- mutate_code <- private [[code_obj ]]()$ get_code(deparse = TRUE )
471
- if (inherits(private [[code_obj ]](), " PythonCodeClass" )) {
472
- mutate_code <- private [[code_obj ]]()
467
+ if (! is_empty(private $ get_mutate_code_class(staged = ! is_re_pull )$ code )) {
468
+ mutate_code <- private $ get_mutate_code_class(staged = ! is_re_pull )$ get_code(deparse = TRUE )
469
+ if (inherits(private $ get_mutate_code_class(staged = ! is_re_pull ), " PythonCodeClass" )) {
470
+ mutate_code <- private $ get_mutate_code_class(staged = ! is_re_pull )
473
471
}
474
472
475
473
private $ dataset <- mutate_dataset(
476
474
x = private $ dataset ,
477
475
code = mutate_code ,
478
- vars = private [[vars_list ]]
476
+ vars = private [[ifelse( is_re_pull , " mutate_vars " , " staged_mutate_vars " ) ]]
479
477
)
480
478
481
479
private $ is_mutate_delayed_flag <- private $ dataset $ is_mutate_delayed()
@@ -588,63 +586,37 @@ DatasetConnector <- R6::R6Class( #nolint
588
586
return (NULL )
589
587
},
590
588
591
- get_mutate_code_class = function () {
592
- res <- CodeClass $ new()
593
- if (inherits(private $ mutate_code , " PythonCodeClass" )) {
594
- res <- PythonCodeClass $ new()
595
- }
589
+ get_mutate_code_class = function (staged = FALSE ) {
590
+ code_obj <- ifelse(staged , " staged_mutate_code" , " mutate_code" )
591
+ vars_list <- ifelse(staged , " staged_mutate_vars" , " mutate_vars" )
596
592
597
- res $ append(list_to_code_class(private $ mutate_vars ))
598
- res $ append(private $ mutate_code )
599
- return (res )
600
- },
601
- get_staged_mutate_code_class = function () {
602
593
res <- CodeClass $ new()
603
- if (inherits(private $ staged_mutate_code , " PythonCodeClass" )) {
594
+ if (inherits(private [[ code_obj ]] , " PythonCodeClass" )) {
604
595
res <- PythonCodeClass $ new()
605
596
}
606
597
607
- res $ append(list_to_code_class(private $ staged_mutate_vars ))
608
- res $ append(private $ staged_mutate_code )
598
+ res $ append(list_to_code_class(private [[ vars_list ]] ))
599
+ res $ append(private [[ code_obj ]] )
609
600
return (res )
610
601
},
611
- set_staged_mutate_code = function (code ) {
612
- stopifnot(is_character_vector(code , 0 , 1 ) || inherits(code , " PythonCodeClass" ))
613
-
614
- if (inherits(code , " PythonCodeClass" )) {
615
- r <- PythonCodeClass $ new()
616
- r $ append(private $ staged_mutate_code )
617
- private $ staged_mutate_code <- r
618
-
619
- code <- code $ get_code()
620
- }
621
-
622
- if (length(code ) > 0 && code != " " ) {
623
- private $ staged_mutate_code $ set_code(
624
- code = code ,
625
- dataname = private $ dataname ,
626
- deps = names(private $ staged_mutate_vars )
627
- )
628
- }
629
-
630
- return (invisible (self ))
631
- },
632
- set_mutate_code = function (code ) {
602
+ set_mutate_code = function (code , staged = FALSE ) {
633
603
stopifnot(is_character_vector(code , 0 , 1 ) || inherits(code , " PythonCodeClass" ))
604
+ code_obj <- ifelse(staged , " staged_mutate_code" , " mutate_code" )
605
+ vars_list <- ifelse(staged , " staged_mutate_vars" , " mutate_vars" )
634
606
635
607
if (inherits(code , " PythonCodeClass" )) {
636
608
r <- PythonCodeClass $ new()
637
- r $ append(private $ mutate_code )
638
- private $ mutate_code <- r
609
+ r $ append(private [[ code_obj ]] )
610
+ private [[ code_obj ]] <- r
639
611
640
612
code <- code $ get_code()
641
613
}
642
614
643
615
if (length(code ) > 0 && code != " " ) {
644
- private $ mutate_code $ set_code(
616
+ private [[ code_obj ]] $ set_code(
645
617
code = code ,
646
618
dataname = private $ dataname ,
647
- deps = names(private $ mutate_vars )
619
+ deps = names(private [[ vars_list ]] )
648
620
)
649
621
}
650
622
0 commit comments