Skip to content

reseau-constellation/client-r

Repository files navigation

constellationR

Lifecycle: stable R-CMD-check R-CMD-check codecov

constellationR est un paquet R pour interagir avec le logiciel Constellation pour le partage de données scientifiques distribuées.

Installation

Vous pouvez installer constellationR de GitHub ainsi :

# install.packages("devtools")
devtools::install_github("reseau-constellation/client-r")

Utilisation

Vous pouvez effectuer des actions ainsi :

library(constellationR)

constellationR::avecClientEtServeur(
  function (client) {
    # Accéder l'identifiant du compte
    idCompte <- client$appeler("obtIdCompte")
    
    # Créer une nouvelle base de données
    idBd <- client$appeler(
      "bds.créerBd", 
      list(licence="ODbl-1_0")
    )
  }
)

Vous pouvez également suivre des données du réseau Constellation :

library(constellationR)

constellationR::avecClientEtServeur(
  function (client) {
    oublier <- client$appeler(
      "bds.suivreNomsBd",
      list(
        idBd = idBd,
        f = print
      )
    )
    
    Sys.sleep(2)
    # Arrêter le suivi après 2 secondes
    oublier()
  }
)

Si vous ne voulez pas suivre les données, mais seulement obtenir leur valeur au moment que la fonction est invoquée, vous n'avez qu'à omettre le paramètre de fonction de suivi :

library(constellationR)

constellationR::avecClientEtServeur(
  function (client) {
    nomsBd <- client$appeler(
      "bds.suivreNomsBd",
      list(
        idBd = idBd
      )
    )
  }
)

C'est la même chose pour les fonctions de recherche :

library(constellationR)

constellationR::avecClientEtServeur(
  function (client) {
    variablesTrouvées <- NULL
    f <- function(résultats) {
      variablesTrouvées <<- sapply(résultats, (\(x) x$id))
    }
    retour <- client$rechercher(
      "recherche.rechercherVariablesSelonNom",
      list(nomVariable="oiseaux", nRésultatsDésirés = 10, f = f)
    )

    idVariableAudio <- client$action(
      "variables.créerVariable", list(catégorie="audio")
    )

    client$action(
      "variables.sauvegarderNomVariable",
      list(idVariable=idVariableAudio, langue="fr", nom="Audio oiseaux")
    )

    idVariableNom <- client$action(
      "variables.créerVariable", list(catégorie="chaîne")
    )

    client$action(
      "variables.sauvegarderNomVariable",
      list(idVariable=idVariableNom, langue="fr", nom="Nom oiseau")
    )
    
    retour$fChangerN(1)
    
    Sys.sleep(2)
    
    retour$fChangerN(4)
    
    Sys.sleep(2)
    
    retour$fOublier()
  }
)

Serveur existant

Si vous avez déjà lancé un serveur Constellation (p. ex., dans l'interface graphique ou bien à travers un autre processus), vous pouvez vous connecter directement à celui-ci.

library(constellationR)

// Le numéro du port sur lequel vous avez lancé Constellation
port <- 5003
codeSecret <- "le code secret que le serveur vous a donnée afin de vous connecter"

constellationR::avecClient(
  function(client) {
    // Faire quelque chose avec le client...
  },
  port = port,
  codeSecret = codeSecret
)