Module plume.pg.computer#

Référencement des méthodes de calcul de métadonnées côté serveur.

class plume.pg.computer.ComputationMethod(query_builder, dependances=None, parser=None, sources=None, description=None)#

Bases : object

Méthode de calcul de métadonnées côté serveur.

Parameters:
query_builderfunction

Une fonction de création de requête, en principe rattachée au module plume.pg.queries. Cette fonction doit accepter des paramètres arbitraires et renvoyer un tuple dont le premier élément est la requête et, s’il y a lieu, le second est un tuple contenant ses paramètres. Si le nom du schéma est un de ses paramètres, ce paramètre devra s’appeler schema_name. Si le nom de la table est un de ses paramètres, il devra s’appeler table_name. Seuls ces deux paramètres peuvent être obligatoires. Les noms des autres paramètres (optionnels, donc) sont à la discrétion de la fonction.

dependanceslist(str), optional

Liste d’extensions PostgreSQL devant être installées sur la base cible pour que la méthode soit valable.

parserfunction, default default_parser

Une fonction qui servira à retraiter le résultat retourné par le serveur avant de le passer aux clés du dictionnaire de widgets. Elle doit prendre pour argument les éléments des tuples résultant de la requête et renvoyer un objet ComputationResult ou une liste de tels objets.

sourceslist(rdflib.term.URIRef), optional

Pour les métadonnées prenant leurs valeurs dans plusieurs sources de vocabulaire contrôlé, les sources concernées par le calcul. Concrètement, les clés-valeurs dont la source courante fait partie de cette liste seront remplacées par les valeurs calculées tandis que les autres seront préservées. Si ce paramètre est None, toutes les clés (clés-valeurs et groupes de propriétés) seront remplacées, quelle que soit leur source. Si c’est une liste vide, toutes les clés sont préservées. Cette information n’est considérée que dans un groupe de valeurs.

descriptionstr, optional

Description de l’effet de la méthode de calcul. Si non spécifié, une description générique est renvoyée.

Attributes:
query_builderfunction

Fonction de création de la requête. Elle prend pour argument le nom du schéma et le nom de la table et renvoie un tuple dont le premier élément est la requête et, s’il y a lieu, le second est un tuple contenant ses paramètres.

dependances: list(str)

Liste d’extensions PostgreSQL devant être installées sur la base cible pour que la méthode soit valable.

parser: function

Fonction qui servira à retraiter le résultat retourné par le serveur avant de le passer aux clés du dictionnaire de widgets. Elle prend pour argument les éléments des tuples résultant de la requête et renvoie un objet ComputationResult.

sourceslist(rdflib.term.URIRef)

Pour les métadonnées prenant leurs valeurs dans plusieurs sources de vocabulaire contrôlé, les sources concernées par le calcul.

descriptionstr

Description de l’effet de la méthode de calcul.

class plume.pg.computer.ComputationResult(value=None, str_value=None, unit=None, language=None, source=None)#

Bases : object

Résultat d’un calcul de métadonnées, sous une forme adaptée pour l’alimentation du dictionnaire de widgets.

Un objet ComputationResult a une valeur booléenne positive si son attribut ComputationResult.value n’est pas nul ou si son attribut ComputationResult.str_value n’est pas nul et n’est pas une chaîne de caractères vide.

Parameters:
valuerdflib.term.URIRef or rdflib.term.Literal, optional

La nouvelle valeur sous forme d’IRI ou de littéral RDF. Ces valeurs ont vocation à être directement intégrées à l’arbre de clés du dictionnaire de widgets.

str_valuestr, optional

La nouvelle valeur sous forme de chaîne de caractères. Ces valeurs seront désérialisées via plume.rdf.widgetsdict.WidgetsDict.prepare_value() avant intégration dans l’arbre de clés du dictionnaire de widgets. Si value est renseigné, str_value n’est pas pris en compte.

unitstr, optional

L’unité de la valeur, s’il y a lieu. Cette information ne sera considérée que si la valeur est fournie via str_value.

languagestr, optional

La langue de la valeur, s’il y a lieu. Cette information ne sera considérée que si la valeur est fournie via str_value.

sourcerdflib.term.URIRef, optional

La source de la valeur, le cas échéant. Elle sera déduite de value si non renseignée et que value est présent, et il est généralement préférable de ne pas fournir manuellement cette information dans ce cas, sauf à être certain que la valeur est bien l’un des concepts de la source considérée. Si seul str_value est disponible, il est souhaitable de fournir la source, sans quoi c’est la source courante du widget qui sera utilisée.

Attributes:
valuerdflib.term.URIRef or rdflib.term.Literal, optional

La nouvelle valeur sous forme d’IRI ou de littéral RDF.

str_valuestr, optional

La nouvelle valeur sous forme de chaîne de caractères.

unitstr

L’unité éventuelle de str_value.

languagestr, optional

La langue éventuelle de str_value.

sourcerdflib.term.URIRef

La source éventuelle de value.

plume.pg.computer.METHODS = {rdflib.term.URIRef('http://purl.org/dc/terms/conformsTo'): <plume.pg.computer.ComputationMethod object>, rdflib.term.URIRef('http://purl.org/dc/terms/created'): <plume.pg.computer.ComputationMethod object>, rdflib.term.URIRef('http://purl.org/dc/terms/description'): <plume.pg.computer.ComputationMethod object>, rdflib.term.URIRef('http://purl.org/dc/terms/modified'): <plume.pg.computer.ComputationMethod object>, rdflib.term.URIRef('http://purl.org/dc/terms/title'): <plume.pg.computer.ComputationMethod object>, rdflib.term.URIRef('http://www.w3.org/ns/dcat#theme'): <plume.pg.computer.ComputationMethod object>}#

Dictionnaire des méthodes de calcul associées aux catégories de métadonnées.

Les clés du dictionnaire sont les chemins (rdflib.paths.SequencePath) des catégories de métadonnées. Les valeurs sont des objets ComputationMethod décrivant la méthode de calcul disponible pour la catégorie. N’apparaissent dans ce dictionnaire que les catégories qui ont effectivement une méthode de calcul associée.

plume.pg.computer.computation_method(path)#

Renvoie l’éventuelle méthode de calcul définie pour la catégorie de métadonnées.

Parameters:
pathrdflib.paths.SequencePath

Chemin de la catégorie.

Returns:
ComputationMethod or None
plume.pg.computer.crs_parser(crs_auth, crs_code, **kwargs)#

Renvoie l’URI complet d’un référentiel de coordonnées.

Parameters:
crs_authstr

Identifiant de l’autorité qui répertorie le référentiel.

crs_codestr

Code du référentiel dans le registre de l’autorité.

**kwargsdict, optional

Paramètres supplémentaires ignorés.

Returns:
ComputationResult
plume.pg.computer.datetime_parser(timestamp, **kwargs)#

Désérialisation d’un tampon de date et heure.

Parameters:
timestampdatetime.datetime

Une date avec heure.

**kwargsdict, optional

Paramètres supplémentaires ignorés.

Returns:
ComputationResult
plume.pg.computer.default_parser(*result, **kwargs)#

Fonction qui fera office de dé-sérialiseur par défaut.

Parameters:
*resulttuple

Un enregistrement du résultat d’une requête sur le serveur PostgreSQL.

**kwargsdict, optional

Paramètres supplémentaires ignorés.

Returns:
ComputationResult

Notes

Cette fonction basique suppose :

  • que la métadonnée considérée n’a ni langue, ni source, ni unité. Elle ne touche donc pas à ces attributs.

  • que le résultat ne comportait qu’un seul champ, ou du moins que la valeur à utiliser pour la mise à jour se trouvait dans le premier champ.

  • que les valeurs sont sérialisées de la même manière que pour leur présentation dans le formulaire de Plume. Ceci sous-entend qu’il sera possible d’obtenir leurs équivalents RDF en appliquant la méthode plume.rdf.widgetsdict.WidgetsDict.prepare_value().

plume.pg.computer.ecospheres_themes_parser(schema_name, level_one=True, level_two=True, **kwargs)#

Renvoie les thèmes Ecosphères associés à un schéma de la nomenclature nationale.

Parameters:
schema_namestr

Nom du schéma.

level_onebool, default True

Si True, le ou les thèmes de premier niveau associés au nom du schéma sont ajoutés (les plus génériques).

level_twobool, default True

Si True, le ou les thèmes de second niveau, associés au nom du schéma sont ajoutés (les plus spécifiques).

**kwargsdict, optional

Paramètres supplémentaires ignorés.

Returns:
list(ComputationResult)
plume.pg.computer.has_computation_method(path)#

Détermine si une méthode de calcul est disponible pour la catégorie de métadonnées considérée.

Parameters:
pathrdflib.paths.SequencePath

Le chemin de la catégorie. Les clés de dictionnaire de widget (plume.rdf.widgetkey.WidgetKey) et les propriétés (plume.rdf.properties.PlumeProperty) sont également acceptées.

Returns:
bool