[R-pkg-devel] visible binding for '<<-' assignment

Dan Zigmond djz @end|ng |rom @hmonk@com
Thu Sep 3 23:25:36 CEST 2020


Thanks, Gabor. I want these to be easily available to package users though
– that's why they are in the package. So I would rather not "hide" them in
a local environment. This is fundamentally a data package, so access to
this data is the primary point of installing it.

Is there any other solution?

     Dan

.
--------------------------
Dan Zigmond
djz using shmonk.com



On Thu, Sep 3, 2020 at 1:40 PM Gábor Csárdi <csardi.gabor using gmail.com> wrote:

> Store the cached data in an environment within the package:
>
> pali_data <- new.env(parent = emptyenv())
>
> pali_string_fix <- function() {
>   pali_data$alphabet <-
>      stringi::stri_unescape_unicode(pali_alphabet)
> ...
> }
>
> Gabor
>
> On Thu, Sep 3, 2020 at 9:33 PM Dan Zigmond <djz using shmonk.com> wrote:
> >
> > Hi, all. I am developing a package that includes some global variables.
> > Because these are non-ASCII, I have escaped them. But then because these
> > are difficult to read, I want to provide an easy way for users to
> unescape
> > all of them up front. Thus I have code like to create and save the data
> in
> > global variables in one file:
> >
> > pali_vowels <-
> >   c("a", "\u0101", "i", "\u012b", "u", "\u016b", "e", "o")
> > pali_consonants <-
> >   c("k", "kh", "g", "gh", "\u1e45",
> >     "c", "ch", "j", "jh", "\u00f1",
> >     "\u1e6d", "\u1e6dh", "\u1e0d", "\u1e0dh", "\u1e47",
> >     "t", "th", "d", "dh", "n",
> >     "p", "ph", "b", "bh", "m",
> >     "y", "r", "l", "v", "s", "h", "\u1e37", "\u1e43")
> > pali_alphabet <-c(pali_vowels, pali_consonants)
> > use_data(pali_alphabet, overwrite = TRUE)
> >
> > and then I try to export a function like this in another file:
> >
> > pali_string_fix <- function() {
> >   pali_alphabet <<-
> >      stringi::stri_unescape_unicode(pali_alphabet)
> >   # Several more of these...
> >   }
> >
> > The idea is that users can run pali_string_fix() once when they load the
> > package and then they won't need to deal with all the Unicode escape
> > sequences after that.
> >
> > However, this is getting rejected by the CRAN checks with the message:
> >
> > * checking R code for possible problems ... [4s] NOTE
> > pali_string_fix: no visible binding for '<<-' assignment to
> >   'pali_alphabet'
> >
> > I'm guessing this is because the data and the function are defined in
> > different files, so even though those globals are defined by my package,
> > that isn't obvious when the check is run on this code.
> >
> > Does anyone have advice for how to fix this?
> >
> >      Dan
> >
> > .
> > -------------------------
> > Dan Zigmond
> > djz using shmonk.com
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-package-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-package-devel
>

	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list