DoReMIFaSol icon indicating copy to clipboard operation
DoReMIFaSol copied to clipboard

Proposer par défaut une sauvegarde des données téléchargées entre sessions

Open RLesur opened this issue 4 years ago • 11 comments

Dans la version actuelle, lorsqu'on télécharge un jeu de données, il est nécessaire de spécifier l'argument telDir sans quoi il faut télécharger les données à chaque nouvelle session R.

Je me demandais s'il ne serait pas plus pratique pour l'utilisateur de modifier le comportement par défaut en sauvegardant de façon permanente les fichiers téléchargés, par exemple en utilisant le package rappdirs.

RLesur avatar Jul 10 '20 21:07 RLesur

En effet, on introduit une dépendance supplémentaire, mais la contrepartie c'est un confort accru pour l'utilisateur. Je vais créer une branche et proposer une mise en oeuvre pour évaluer le gain en termes d'ergonomie. Merci beaucoup @RLesur !

pierre-lamarche avatar Jul 11 '20 05:07 pierre-lamarche

Fait et intégré dans la branche via la pull request #19

pierre-lamarche avatar Jul 11 '20 21:07 pierre-lamarche

J'arrive un peu après la bataille, mais une solution alternative (et sans dépendance) serait d'utiliser le système d'options() de R ?

Si l'utilisateur a défini quelque part (script, Rprofile) options("doremifasol.telDir" = "C:/user/...") on l'utilise dans la fonction, sinon on télécharge dans tempdir().

py-b avatar Oct 03 '20 09:10 py-b

Merci, effectivement ça fait sens. On est d'accord que du coup on met par défaut teldir à getOption("doremifasol.teldir") ?

pierre-lamarche avatar Oct 04 '20 14:10 pierre-lamarche

Oui c'est ça. Si tu veux, j'initie un PR.

py-b avatar Oct 04 '20 17:10 py-b

Volontiers, je serai enchanté de te compter parmi les contributeurs !

pierre-lamarche avatar Oct 04 '20 18:10 pierre-lamarche

Ça correspond à ton idée initiale, @RLesur ?

py-b avatar Oct 13 '20 22:10 py-b

Presque, mais pas tout à fait.

En fait, le comportement par défaut de DoReMiFaSol (c'est-à-dire sans utilisation de l'option) est de télécharger dans tempdir(). Si j'ai un script qui commence par télécharger les données, à chaque fois que je le relance dans une nouvelle session, il télécharge les mêmes données. C'est ce comportement par défaut que je ne trouve pas très pratique au niveau de l'utilisation. En fait, ce comportement par défaut ne me semble pas correspondre au cas standard d'utilisation (en général, on ne télécharge les données qu'une fois et on les réutilise entre sessions).

L'avantage de #25 , c'est qu'il suffit de rajouter une option pour modifier le comportement par défaut (ce qui est déjà très bien).

Cependant, en tant qu'utilisateur, je sais que le comportement par défaut me dérangeant, je vais systématiquement devoir utiliser cette option dans tous mes scripts, ce qui n'est pas très commode. En tant qu'utilisateur du package, je plaide donc toujours pour une modification du comportement par défaut.

RLesur avatar Oct 27 '20 11:10 RLesur

Deux propositions :

  • suggérer d'ajouter l'option dans un Rprofile. Normalement, ce n'est pas recommandable pour la reproductibilité, mais ici le seul élément non reproductible serait un éventuel retéléchargement. La suggestion pourrait se faire au chargement du package, en regardant si getOption(doremifasol.telDir) n'est pas NULL.

  • sinon on repart sur rappdirs ? À noter qu'il y a une typo dans le README depuis 2015 et qu'elle n'a jamais été corrigée malgré plusieurs pull requests et issues. Mauvais signal quant à la maintenance du package...

py-b avatar Oct 27 '20 12:10 py-b

Autre option, ce serait d'enregistrer par défaut les données dans un répertoire situé sous system.file(package = "doremifasol"). Le CRAN déteste cette pratique, elle n'est donc pas à utiliser si on souhaite publier doremifasol sur le CRAN.

RLesur avatar Oct 28 '20 22:10 RLesur

Un article de Maëlle Salmon listant différentes techniques répondant à cette problématique : https://blog.r-hub.io/2020/03/12/user-preferences/

py-b avatar Nov 12 '20 17:11 py-b