The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
construct_reprex()
function, is introduced. It can be called in any function and will construct all variables and arguments where it’s called.construct_multi()
now constructs promises, in practice this is useful so we can construct the evaluation environment of a function, including the uneavaluated and potentially NSE args of a functionoptions(constructive_print_mode = <character>)
where <character>
is a vector of strings among "console"
, script
, "clipboard"
and "reprex"
. The default behavior is “console”. See `?
constructive-global_options`opts_atomic(escape = FALSE)
(the default) now correctly uses surrounding single quotes for strings that contain double quotes and no single quotes.deparse_call()
is more robusts and gains the arguments escape
and unicode_representation
that were already present in opts_atomic()
data.frame()
methodone_liner
argumentlength
, [
, [[
etc are handled better.env()
doesn’t crash anymore when provided a wrong or obsolete memory address.Machine$integer.max
slot
argument rather than the representation
arg%>%
for R versions that don’t support |>
NA
levels are supported for the classes “factor” and “ordered”constructive::
in the ...
before opts_*
functions, for instance we can call constructive::construct(cars, opts_data.frame("read.table"))
.quote({})
is now constructed as "{ }"
rather than "`{`()"
construct()
generates the code to build an object using idiomatic code, it wraps the lower level .cstr_construct()
S3 generic.opts_
can be used to choose various constructors and apply parameters to tweak the output..cstr_construct()
method. This is useful to explore objects at a level one step lower than the idiomatic constructor..cstr_
, a vignette describes how to proceed.construct_issues()
is used without arguments to check what were the issues encountered with the last reconstructed object, it can also be provided a specific constructive object.construct_diff()
highlights the differences in the code used to produce 2 objects.construct_multi()
constructs several objects from a named list,construct_dump()
is similar to base::dump()
, it’s a wrapper around construct_multi()
that writes to a file.construct_signature()
constructs a function signature such as the one we see in the “usage” section of a function’s help file. outputs the code produceddeparse_call()
is an alternative to base::deparse()
and rlang::expr_deparse()
that handles additional corner cases and fails when encountering tokens other than symbols and syntactic literals .base::dput()
or base::deparse()
but {constructive} strives to use “natural” constructors (factor
for factors, as.Date()
for dates, data.frame()
for data frames etc), in order to get output readable by humans.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.