@@ -53,25 +53,32 @@ translate.default <- function(x, engine = x$engine, ...) {
53
53
if (is.null(engine ))
54
54
stop(" Please set an engine." , call. = FALSE )
55
55
56
+ mod_name <- specific_model(x )
57
+
56
58
x $ engine <- engine
57
59
x <- check_engine(x )
58
60
61
+ # TODOS
62
+ # what to do with unknown mode?
63
+ if (x $ mode == " unknown" ) {
64
+ stop(" Model code depends on the mode; please specify one." , call. = FALSE )
65
+ }
66
+ # set the classes. Is a constructor not being used?
59
67
if (is.null(x $ method ))
60
- x <- get_method( x , engine , ... )
68
+ x $ method <- get_model_spec( mod_name , x $ mode , engine )
61
69
62
- arg_key <- get_module(specific_model( x ) )
70
+ arg_key <- get_args( mod_name , engine )
63
71
64
72
# deharmonize primary arguments
65
- actual_args <- deharmonize (x $ args , arg_key , x $ engine )
73
+ actual_args <- unionize (x $ args , arg_key )
66
74
67
75
# check secondary arguments to see if they are in the final
68
76
# expression unless there are dots, warn if protected args are
69
77
# being altered
70
- eng_arg_key <- arg_key [[x $ engine ]]
71
- x $ eng_args <- check_eng_args(x $ eng_args , x $ method $ fit , eng_arg_key )
78
+ x $ eng_args <- check_eng_args(x $ eng_args , x $ method $ fit , arg_key $ original )
72
79
73
80
# keep only modified args
74
- modifed_args <- ! vapply (actual_args , null_value , lgl( 1 ) )
81
+ modifed_args <- purrr :: map_lgl (actual_args , null_value )
75
82
actual_args <- actual_args [modifed_args ]
76
83
77
84
# look for defaults if not modified in other
@@ -150,23 +157,23 @@ check_mode <- function(object, lvl) {
150
157
151
158
get_model_spec <- function (model , mode , engine ) {
152
159
m_env <- get_model_env()
153
- env_obj <- env_names(m_env )
160
+ env_obj <- rlang :: env_names(m_env )
154
161
env_obj <- grep(model , env_obj , value = TRUE )
155
162
156
163
res <- list ()
157
164
res $ libs <-
158
- env_get(m_env , paste0(model , " _pkgs" )) %> %
165
+ rlang :: env_get(m_env , paste0(model , " _pkgs" )) %> %
159
166
purrr :: pluck(" pkg" ) %> %
160
167
purrr :: pluck(1 )
161
168
162
169
res $ fit <-
163
- env_get(m_env , paste0(model , " _fit" )) %> %
170
+ rlang :: env_get(m_env , paste0(model , " _fit" )) %> %
164
171
dplyr :: filter(mode == !! mode & engine == !! engine ) %> %
165
172
dplyr :: pull(value ) %> %
166
173
purrr ::: pluck(1 )
167
174
168
175
pred_code <-
169
- env_get(m_env , paste0(model , " _predict" )) %> %
176
+ rlang :: env_get(m_env , paste0(model , " _predict" )) %> %
170
177
dplyr :: filter(mode == !! mode & engine == !! engine ) %> %
171
178
dplyr :: select(- engine , - mode )
172
179
@@ -178,7 +185,7 @@ get_model_spec <- function(model, mode, engine) {
178
185
179
186
get_args <- function (model , engine ) {
180
187
m_env <- get_model_env()
181
- env_get(m_env , paste0(model , " _args" )) %> %
188
+ rlang :: env_get(m_env , paste0(model , " _args" )) %> %
182
189
dplyr :: select(- engine )
183
190
}
184
191
0 commit comments