Module plume.rdf.widgetkey#

Clés des dictionnaires de widgets.

La classe WidgetKey produit les clés des dictionnaires de widgets (classe plume.rdf.widgetsdict.WidgetsDict).

Dans le contexte d’un dictionnaire, ces clés forment un arbre :

  • à la base, la clé racine, de classe RootKey, est la seule qui n’ait pas de clé « parente ». Elle est référencée dans l’attribut root du dictionnaire de widgets ;

  • toutes les autres clés descendent d’une clé parente, référencée dans leur attribut WidgetKey.parent. Réciproquement, les filles d’une clé sont référencées dans son attribut GroupKey.children.

La clé est porteuse de toutes les informations nécessaires au maintien de l’intégrité du dictionnaire de widgets, au paramétrage des widgets et à la sérialisation en graphe de métadonnées (classe plume.rdf.metagraph.Metagraph).

Les clés ne sont pas indépendantes les unes des autres. La création ou la modification d’une clé entraîne la modification (automatique) de son parent et parfois de ses soeurs.

class plume.rdf.widgetkey.ChildrenList(iterable=(), /)#

Bases : list

Liste des enfants d’une clé.

Notes

Cette classe redéfinit les méthodes append et remove des listes, pour que leur utilisation s’accompagne du calcul automatique des lignes, des enfants uniques et des langues autorisées.

Methods

append(value)

Append object to the end of the list.

clear(/)

Remove all items from list.

copy(/)

Return a shallow copy of the list.

count(value, /)

Return number of occurrences of value.

extend(iterable, /)

Extend list by appending elements from the iterable.

index(value[, start, stop])

Return first index of value.

insert(index, object, /)

Insert object before index.

pop([index])

Remove and return item at index (default last).

remove(value)

Remove first occurrence of value.

reverse(/)

Reverse IN PLACE.

sort(*[, key, reverse])

Sort the list in ascending order and return None.

append(value)#

Append object to the end of the list.

remove(value)#

Remove first occurrence of value.

Raises ValueError if the value is not present.

class plume.rdf.widgetkey.GroupKey(**kwargs)#

Bases : WidgetKey

Clé de groupe.

Une clé de groupe est une clé de dictionnaire de widgets qui pourra être désignée comme parent d’autres clés, dites « clés filles ».

Outre ses attributs propres listés ci-après, GroupKey hérite de tous les attributs et propriétés de la classe WidgetKey.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None, sauf dans le cas d’un objet de la classe RootKey (groupe racine).

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières. Cet argument sera ignoré si le groupe parent est un groupe de valeurs (GroupOfvaluesKey).

Avertissement

Cette classe ne doit pas être utilisée directement pour créer de nouvelles clés. On préfèrera toujours les classes filles qui héritent de ses méthodes et attributs :

Attributes:
childrenlist of WidgetKey

Liste des clés filles.

Methods

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

compute_rows()

Actualise les indices de ligne des filles du groupe.

copy([parent, empty])

Renvoie une copie de la clé.

is_empty(**kwargs)

Le groupe est-il vide ?

kill()

Efface une clé de la mémoire de son parent.

real_children([reverse])

Générateur sur les clés filles qui ne sont pas des fantômes (ni des boutons).

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

search_tab([label])

Cherche parmi les filles du groupe et renvoie l'onglet d'étiquette donnée.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

compute_single_children

property columnspan#

int: Nombre de colonnes de la grille occupées par le widget principal de la clé.

Vaut toujours 0 pour une clé fantôme.

Notes

Réécriture de la propriété WidgetKey.columnspan.

compute_rows()#

Actualise les indices de ligne des filles du groupe.

Cette méthode n’a pas d’effet dans un groupe fantôme, ou si l’attribut de classe WidgetKey.no_computation vaut True.

Returns:
int

L’indice de la prochaine ligne disponible.

Notes

Hormis dans les groupes de valeurs, où elle respecte l’ordre d’initialisation des clés filles, la méthode trie la liste GroupKey.children en fonction de l’attribut WidgetKey.order_idx. Les indices des clés sont définis par leur ordre dans la liste et les valeurs de WidgetKey.rowspan des clés qui les précèdent.

compute_single_children()#
copy(parent=None, empty=True)#

Renvoie une copie de la clé.

La branche descendante est également dupliquée.

Parameters:
parentGroupKey, optional

La clé parente. Si elle n’est pas spécifiée, il sera considéré que le parent de la copie est le même que celui de l’original.

emptybool, default True

Crée-t-on une copie vide (cas d’un nouvel enregistrement dans un groupe de valeurs ou de traduction) - True - ou souhaite-t-on dupliquer une branche de l’arbre de clés en préservant son contenu - False ?

Returns:
GroupKey
Raises:
ForbiddenOperation

Lorsque la méthode est explicitement appliquée à une clé fantôme. Il est possible de copier des branches contenant des fantômes, ceux-ci ne seront simplement pas copiés.

Notes

Redéfinit la méthode WidgetKey.copy() en gérant la copie des filles de la clé.

property has_real_children#

bool: Y a-t-il au moins un enfant dans ce groupe qui ne soit pas un fantôme ?

is_empty(**kwargs)#

Le groupe est-il vide ?

Un groupe est considéré comme vide quand il ne contient que des groupes vides ou des clés-valeurs sans valeur. Les fantômes sont pris en compte.

Notes

Cette méthode admet des paramètres arbitraires pour qu’elle puisse être appelée dans les mêmes conditions que les méthodes de même nom définies sur d’autres classes de clés. En pratique, elle n’en utilise aucun.

real_children(reverse=False)#

Générateur sur les clés filles qui ne sont pas des fantômes (ni des boutons).

Parameters:
reversebool, default False

Prend les derniers enfants en premier.

Yields:
ValueKey or GroupKey
search_tab(label=None)#

Cherche parmi les filles du groupe et renvoie l’onglet d’étiquette donnée.

Parameters:
labelstr or rdflib.term.Literal, optional

L’étiquette de l’onglet recherché. Si label n’est pas spécifié, le premier onglet du groupe est renvoyé (sous réserve qu’il y en ait un).

Returns:
TabKey

Notes

Les clés fantômes sont exclues de la recherche. Si plusieurs onglets s’avérait porter le même nom, l’un est renvoyé arbitrairement.

class plume.rdf.widgetkey.GroupOfPropertiesKey(**kwargs)#

Bases : GroupKey, ObjectKey

Groupe de propriétés.

Un groupe de propriétés est une clé de dictionnaire de widgets qui représente un couple prédicat / noeud anonyme. Ses filles représentent les triplets dont le noeud anonyme est le sujet.

Outre ses attributs propres listés ci-après, la classe GroupOfPropertiesKey hérite de tous les attributs et méthodes des classes GroupKey et ObjectKey.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières. Cet argument sera ignoré si le groupe parent est un groupe de valeurs (GroupOfvaluesKey).

predicaterdflib.term.URIRef

Prédicat représenté par la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information. Sinon, elle est obligatoire. Pour des clés jumelles, le prédicat déclaré sur la jumelle de référence prévaut, sauf s’il vaut None.

labelstr or rdflib.term.Literal, optional

Etiquette de la clé (libellé de la catégorie de métadonnée représentée par la clé). Cet argument est ignoré si la clé appartient à un groupe de valeurs. Pour des clés jumelles, l’étiquette déclarée sur la jumelle de référence prévaut, sauf si elle vaut None.

descriptionstr or rdflib.term.Literal, optional

Définition de la catégorie de métadonnée représentée par la clé. Cet argument est ignoré si la clé appartient à un groupe de valeurs. Pour des clés jumelles, le descriptif déclaré sur la jumelle de référence prévaut, sauf s’il vaut None.

m_twinValueKey, optional

Clé jumelle, le cas échéant. Un couple de jumelle ne se déclare qu’une fois, sur la seconde clé créée.

is_hidden_mbool, default False

La clé est-elle la clé masquée du couple de jumelles ? Ce paramètre n’est pris en compte que pour une clé qui a une jumelle.

nodeBNode, optional

Le noeud anonyme objet du prédicat, qui est également le sujet des triplets des enfants du groupe. Si non fourni, un nouveau noeud anonyme est généré.

rdfclassrdflib.term.URIRef

La classe RDF du noeud. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information. Sinon, elle est obligatoire.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str) : Liste des attributs et propriétés pouvant être redéfinis post initialisation.

columnspan

int: Nombre de colonnes de la grille occupées par le widget principal de la clé.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

description

str: Descriptif de la métadonnée représentée par la clé.

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_real_children

bool: Y a-t-il au moins un enfant dans ce groupe qui ne soit pas un fantôme ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_main_twin

bool: La clé est-elle la jumelle référente du couple ?

is_read_only

bool: La clé est-elle en lecture seule ?

is_single_child

bool: La clé est-elle un enfant unique ?

key_object

str: Transcription littérale du type de clé.

label

str: Etiquette de la clé.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

m_twin

ObjectKey: Clé jumelle.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

node

rdflib.term.BNode: Le noeud anonyme objet du prédicat et sujet des filles du groupe.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin représenté par la clé.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

predicate

rdflib.term.URIRef: Prédicat représenté par la clé.

rdfclass

rdflib.term.URIRef: La classe RDF du noeud.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

sources

list(rdflib.term.URIRef): Le cas échéant, la liste des sources de la clé-valeur jumelle.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

Methods

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

compute_rows()

Actualise les indices de ligne des filles du groupe.

copy([parent, empty])

Renvoie une copie de la clé.

drop([append_book, drop_single_children])

Supprime une clé-objet.

is_empty(**kwargs)

Le groupe est-il vide ?

kill(**kwargs)

Efface une clé de la mémoire de son parent.

paste_from_rdfclass(widgetkey)

Remplace la branche par une branche de même type.

real_children([reverse])

Générateur sur les clés filles qui ne sont pas des fantômes (ni des boutons).

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

search_tab([label])

Cherche parmi les filles du groupe et renvoie l'onglet d'étiquette donnée.

switch_twin([value_source, append_book])

Intervertit la visibilité d'un couple de jumelles.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

compute_single_children

property attr_to_copy#

dict: Attributs de la classe à prendre en compte pour la copie des clés.

Cette propriété est un dictionnaire dont les clés sont les noms des attributs contenant les informations nécessaires pour dupliquer la clé, et les valeurs sont des booléens qui indiquent si l’attribut est à prendre en compte lorsqu’il s’agit de créer une copie vide de la clé.

Certains attributs sont volontairement exclus de cette liste, car ils requièrent un traitement spécifique.

Notes

Réécriture de la propriété WidgetKey.attr_to_copy.

property attr_to_update#

list(str) : Liste des attributs et propriétés pouvant être redéfinis post initialisation.

Notes

Réécriture de la propriété WidgetKey.attr_to_update.

copy(parent=None, empty=True)#

Renvoie une copie de la clé.

La branche descendante est également dupliquée, ainsi que la clé jumelle, le cas échéant.

Parameters:
parentGroupKey, optional

La clé parente. Si elle n’est pas spécifiée, il sera considéré que le parent de la copie est le même que celui de l’original.

emptybool, default True

Crée-t-on une copie vide (cas d’un nouvel enregistrement dans un groupe de valeurs ou de traduction) - True - ou souhaite-t-on dupliquer une branche de l’arbre de clés en préservant son contenu - False ?

Returns:
WidgetKey
Raises:
ForbiddenOperation

Lorsque la méthode est explicitement appliquée à une clé fantôme. Il est possible de copier des branches contenant des fantômes, ceux-ci ne seront simplement pas copiés.

property has_source_button#

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

Notes

Réécriture de la propriété WidgetKey.has_source_button.

property is_ghost#

bool: La clé est-elle une clé fantôme non matérialisée ?

Notes

Réécriture de la propriété WidgetKey.is_ghost.

Cette propriété n’est modifiable post initialisation que pour transformer en fantôme une clé qui ne l’était pas, si les conditions suivantes sont réunies : * le groupe de propriétés a au moins un enfant ; * tous les enfants du groupe sont des fantômes ; * la clé n’a pas de jumelle ou est la jumelle principale.

Dans ce cas, la clé-valeur jumelle sera supprimée.

is_ghost définit la valeur booléenne de la clé : bool(widgetkey) vaut False si widgetkey est une clé fantôme.

property key_object#

str: Transcription littérale du type de clé.

kill(**kwargs)#

Efface une clé de la mémoire de son parent.

Notes

Cette méthode réoriente simplement la commande vers la méthode ObjectKey.kill() de la classe ObjectKey (sinon c’est WidgetKey.kill() qui serait utilisée).

property node#

rdflib.term.BNode: Le noeud anonyme objet du prédicat et sujet des filles du groupe.

Avertissement

Aucun contrôle n’est réalisé pour vérifier que le nouveau noeud anonyme n’est pas déjà utilisé par une autre clé. En cas de doute sur l’unicité des valeurs disponibles, il est préférable de ne pas en donner, un nouveau noeud anonyme est alors automatiquement généré (idem si la valeur fournie n’était pas véritablement un noeud anonyme).

paste_from_rdfclass(widgetkey)#

Remplace la branche par une branche de même type.

Cette méthode n’a pas d’effet si elle est appliquée à une clé fantôme ou masquée.

Parameters:
widgetkeyGroupOfPropertiesKey

La clé mère de la branche à copier.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de matérialiser les opérations réalisées.

Raises:
ForbiddenOperation

Si la clé à copier est un fantôme, est masquée, n’est pas un groupe de propriétés, ou si sa classe RDF n’est pas celle de self.

property rdfclass#

rdflib.term.URIRef: La classe RDF du noeud.

Raises:
MissingParameter

Pour toute tentative de mettre à None la valeur de cette propriété obligatoire.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Si la clé a une jumelle dont la classe est différente de la valeur fournie, c’est celle de la jumelle de référence qui prévaudra, sauf si elle vaut None. Autrement dit, pour changer la classe d’un couple de jumelles, il faut cibler la jumelle de référence, sans quoi l’opération n’aura pas d’effet.

property sources#

list(rdflib.term.URIRef): Le cas échéant, la liste des sources de la clé-valeur jumelle.

Notes

Cette propriété n’est pas modifiable. Elle vaut toujours None pour une clé sans jumelle.

class plume.rdf.widgetkey.GroupOfValuesKey(**kwargs)#

Bases : GroupKey

Groupe de valeurs.

Un groupe de valeurs est une clé de groupe dont les filles, qui peuvent être des GroupOfPropertiesKey ou des ValueKey, ont le même prédicat.

Outre ses attributs spécifiques listés ci-après, la classe GroupOfValuesKey hérite de tous les attributs de la classe GroupKey.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières.

with_minus_buttonsbool, default True

True si des boutons moins (non représentés par des clés) sont supposés être associés aux clés du groupe.

predicaterdflib.term.URIRef

Le prédicat commun à toutes les clés du groupe.

labelstr or rdflib.term.Literal, optional

Etiquette du groupe (libellé de la catégorie de métadonnée dont les filles du groupe sont les valeurs).

descriptionstr or rdflib.term.Literal, optional

Définition de la catégorie de métadonnée représentée par les clés du groupe.

rdfclassrdflib.term.URIRef, optional

La classe RDF commune à toutes les valeurs du groupe. Cette information est obligatoire dès lors qu’une des filles du groupe est de type GroupOfPropertiesKey.

sourceslist of rdflib.term.URIRef, optional

Liste des sources de vocabulaire contrôlé pour les valeurs du groupe.

transform{None, “email”, “phone”}, optional

Le cas échéant, la nature de la transformation appliquée aux objets du groupe.

datatyperdflib.term.URIRef, default xsd:string

Le cas échéant, le type des valeurs litérales du groupe. La valeur de ce paramètre est ignorée si GroupOfValuesKey.rdfclass est renseigné, sinon xsd:string fait office de valeur par défaut. Seuls les types suivants sont pris en charge, pour les autres xsd:string serait utilisé à la place : xsd:string, xsd:integer, xsd:decimal, xsd:boolean, xsd:date, xsd:time, xsd:dateTime, xsd:duration, gsp:wktLiteral, rdf:langString.

placeholderstr or rdflib.term.Literal, optional

Texte de substitution à utiliser pour les clés du groupe.

input_maskstr or rdflib.term.Literal, optional

Masque de saisie à utiliser pour les clés du groupe.

is_mandatorybool or rdflib.term.Literal, default False

Ce groupe doit-il obligatoirement avoir une clé avec une valeur ?

is_read_onlybool or rdflib.term.Literal, default False

Les valeurs des clés du groupe sont-elles en lecture seule ?

regex_validatorstr, optional

Expression rationnelle de validation à utiliser pour les clés du groupe.

regex_validator_flagsstr, optional

Paramètres associés à l’expression rationnelle de validation des clés du groupe.

geo_toolslist(str or rdflib.term.Literal)

Liste de fonctionnalités d’aide à la saisie des géométries disponibles pour les clés du groupe. Seules les valeurs suivantes seront prises en compte : 'show', 'point', 'linestring', 'rectangle', 'polygon', circle, 'bbox', 'centroid'.

computelist(str or rdflib.term.Literal), optional

Liste de modes de calcul disponibles pour le groupe. Seules les valeurs “manual”, “auto”, “empty” et “new” sont reconnues à ce stade.

compute_paramsdict, optional

Paramètres à fournir à la méthode de calcul.

Attributes:
buttonPlusButtonKey

Référence la clé qui représente le bouton plus du groupe.

Methods

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

compute_rows()

Actualise les indices de ligne des filles du groupe.

compute_single_children()

Détermine si les clés du groupe sont des filles uniques.

copy([parent, empty])

Renvoie une copie de la clé.

is_empty([sources])

Le groupe est-il vide ?

kill()

Efface une clé de la mémoire de son parent.

real_children([reverse])

Générateur sur les clés filles qui ne sont pas des fantômes (ni des boutons).

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

search_tab([label])

Cherche parmi les filles du groupe et renvoie l'onglet d'étiquette donnée.

shrink_expend(length[, sources])

Prépare les clés filles du groupe en vue d'une saisie massive des valeurs.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

property attr_to_copy#

dict: Attributs de la classe à prendre en compte pour la copie des clés.

Cette propriété est un dictionnaire dont les clés sont les noms des attributs contenant les informations nécessaires pour dupliquer la clé, et les valeurs sont des booléens qui indiquent si l’attribut est à prendre en compte lorsqu’il s’agit de créer une copie vide de la clé.

Certains attributs sont volontairement exclus de cette liste, car ils requièrent un traitement spécifique.

Notes

Réécriture de la propriété WidgetKey.attr_to_copy.

property attr_to_update#

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

Notes

Réécriture de la propriété WidgetKey.attr_to_update.

property compute#

list(str): Modes de calcul définis pour la clé.

Notes

Contrairement à beaucoup d’autre propriétés qui valent pour les clés du groupe et non pour le groupe lui-même, celle-ci porte bien sur le groupe de valeurs.

Il est permis de fournir en argument une liste de rdflib.term.Literal, qui seront alors automatiquement convertis.

property compute_params#

dict: Paramètres à fournir à la méthode de calcul.

Notes

Contrairement à beaucoup d’autre propriétés qui valent pour les clés du groupe et non pour le groupe lui-même, celle-ci porte bien sur le groupe de valeurs.

Les paramètres sont fournis sous la forme clé/valeur, où la clé est une chaîne de caractères correspondant au nom du paramètre.

compute_rows()#

Actualise les indices de ligne des filles du groupe.

Cette méthode n’a pas d’effet dans un groupe fantôme, ou si l’attribut de classe WidgetKey.no_computation vaut True.

Returns:
int

L’indice de la prochaine ligne disponible.

compute_single_children()#

Détermine si les clés du groupe sont des filles uniques.

Cette méthode n’a pas d’effet dans un groupe fantôme, ou si l’attribut de classe WidgetKey.no_computation vaut True.

copy(parent=None, empty=True)#

Renvoie une copie de la clé.

La branche descendante est également dupliquée, ainsi que le bouton du groupe, le cas échéant.

Parameters:
parentGroupKey, optional

La clé parente. Si elle n’est pas spécifiée, il sera considéré que le parent de la copie est le même que celui de l’original.

emptybool, default True

Crée-t-on une copie vide (cas d’un nouvel enregistrement dans un groupe de valeurs ou de traduction) - True - ou souhaite-t-on dupliquer une branche de l’arbre de clés en préservant son contenu - False ?

Returns:
WidgetKey
Raises:
ForbiddenOperation

Lorsque la méthode est explicitement appliquée à une clé fantôme. Il est possible de copier des branches contenant des fantômes, ceux-ci ne seront simplement pas copiés.

property datatype#

rdflib.term.URIRef: Type de valeur commun aux valeurs du groupe, le cas échéant.

Notes

GroupOfValuesKey.rdfclass prévaut sur GroupOfValuesKey.datatype : si le premier est renseigné, c’est que la valeur est un IRI ou un noeud anonyme, et le second ne peut qu’être nul. Sinon, xsd:string est utilisé comme valeur par défaut.

Seuls les types suivants sont pris en charge, pour les autres xsd:string serait utilisé à la place : xsd:string, xsd:integer, xsd:decimal, xsd:boolean, xsd:date, xsd:time, xsd:dateTime, xsd:duration, gsp:wktLiteral, rdf:langString.

Modifier cette propriété emporte la mise en cohérence de GroupOfValuesKey.geo_tools, ainsi que des propriétés ValueKey.value_language, ValueKey.is_long_text et ValueKey.value_unit pour toutes les clés-valeurs du groupe.

property description#

str: Descriptif de la métadonnée représentée par les clés du groupe.

Notes

Lorsqu’il n’y a ni étiquette, ni descriptif mémorisé, cette propriété renvoie le chemin - py:attr:GroupOfValuesKey.path.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property geo_tools#

list(str): Fonctionnalités d’aide à la saisie des géométries disponibles pour les clés-valeurs du groupe.

Notes

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

Cette propriété vaudra toujours None si GroupOfValues.datatype n’est pas gsp:wktLiteral. Pour le type gsp:wktLiteral, il s’agira toujours d’une liste, quitte à ce qu’elle soit vide.

Seules les valeurs suivantes sont acceptées (les autres seront silencieusement éliminées) : 'show', 'point', 'linestring', 'rectangle', 'polygon', 'circle', 'bbox', 'centroid'.

Lorsque la clé est en lecture seule, soit quand la propriété GroupOfValuesKey.is_read_only vaut True, la liste contiendra au plus “show”. C’est le getter de la propriété qui génère à la volée une liste tronquée à partir de la liste mémorisée, afin de préserver toutes les valeurs pour le cas où GroupOfValuesKey.is_read_only reviendrait à False.

Il est permis de fournir en argument une liste de rdflib.term.Literal, qui seront alors automatiquement convertis.

property has_compute_button#

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

Notes

Réécriture de la propriété WidgetKey.has_compute_button.

Contrairement à beaucoup d’autre propriétés qui valent pour les clés du groupe et non pour le groupe lui-même, celle-ci porte bien sur le groupe de valeurs.

property input_mask#

str: Masque de saisie à utiliser pour les clés-valeurs du groupe.

Notes

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

is_empty(sources=None)#

Le groupe est-il vide ?

Un groupe est considéré comme vide quand il ne contient que des groupes vides ou des clés-valeurs sans valeur. Les fantômes sont pris en compte.

Parameters:
sourceslist

Une liste de sources à prendre en compte. Si ce paramètre est renseigné, toutes les clés-valeurs dont la source ne fait pas partie de la liste seront ignorées, de même que les groupes de propriétés.

Notes

Réécriture de la méthode GroupKey.is_empty().

property is_ghost#

bool: La clé est-elle une clé fantôme non matérialisée ?

Notes

Réécriture de la propriété WidgetKey.is_ghost.

Cette propriété n’est modifiable post initialisation que pour transformer en fantôme une clé qui ne l’était pas, si les conditions suivantes sont réunies : * la clé n’est pas un groupe de traduction ; * le groupe de valeurs a au moins un enfant ; * tous les enfants du groupe sont des fantômes ; * le groupe n’a pas de bouton plus.

is_ghost définit la valeur booléenne de la clé : bool(widgetkey) vaut False si widgetkey est une clé fantôme.

property is_mandatory#

bool: Au moins une clé-valeur du groupe devra-t-elle obligatoirement recevoir une valeur ?

Notes

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

property is_read_only#

bool: Les valeurs des clés-valeurs du groupe sont-elles en lecture seule ?

Notes

Si la clé appartient à un groupe de propriétés, elle sera considérée comme étant en lecture seule si le groupe parent est en lecture seule ou si la clé elle-même est paramétrée comme telle.

Un bouton plus dans un groupe de valeurs en lecture seule sera toujours masqué.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property key_object#

str: Transcription littérale du type de clé.

property label#

str: Etiquette du groupe.

Il s’agit du libellé de la métadonnée représentée par les clés du groupe.

Notes

Si aucune étiquette n’est mémorisée, la propriété renvoie '???'` plutôt que None.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property node#

rdflib.term.URIRef or rdflib.term.BNode: Noeud sujet des filles du groupe.

Identique à celui du groupe parent.

property path#

rdflib.paths.SequencePath: Chemin commun à toutes les clés du groupe.

Notes

Cette propriété est en lecture seule. Elle est calculée dynamiquement à partir du chemin du parent et de la valeur de l’attribut GroupOfValuesKey.predicate.

property placeholder#

str: Texte de substitution à utiliser pour les clés-valeurs du groupe.

Notes

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

property predicate#

rdflib.term.URIRef: Prédicat commun à toutes les clés du groupe.

Raises:
MissingParameter

Pour toute tentative de mettre à None la valeur de cette propriété obligatoire.

property rdfclass#

rdflib.term.URIRef: Classe RDF commune à toutes les valeurs du groupe.

Raises:
MissingParameter

Pour toute tentative de mettre à None la valeur de cette propriété alors qu’il y a au moins un groupe de propriétés (représentant un noeud anonyme, qui doit avoir une classe associée) parmi les enfants du groupe.

Notes

Modifier cette propriété emporte la mise en cohérence de GroupOfValuesKey.datatype.

property regex_validator#

str: Expression rationnelle de validation à utiliser pour les clés-valeurs du groupe.

Notes

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

Modifier cette propriété emporte la mise en cohérence de la propriété GroupOfValuesKey.regex_validator_flags.

property regex_validator_flags#

str: Paramètres associés à l’expression rationnelle de validation des clés-valeurs du groupe.

Notes

Toute tentative pour définir une valeur pour cette propriété alors que GroupOfValuesKey.regex_validator vaut None sera silencieusement ignorée.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

shrink_expend(length, sources=None)#

Prépare les clés filles du groupe en vue d’une saisie massive des valeurs.

Cette méthode retire les valeurs des clés et, selon le nombre de clés demandées, supprime les clés excédentaires ou crée celles qui manquent.

Parameters:
lengthint

Nombre de clés attendues. Si length est inférieur à 1, il sera considéré qu’il vaut 1.

sourceslist(rdflib.term.URIRef), optional

Liste de sources de vocabulaire contrôlé concernées. Si des sources sont définies pour le groupe, les clés-valeurs dont la source courante fait partie de cette liste seront supprimées-recrées, tandis que les autres seront préservées (incluant les groupes de propriétés qui sont la jumelle principale, même si la source courante de la clé-valeur associée est dans la liste). Si ce paramètres est None, toutes les clés (clés-valeurs et groupes de propriétés) seront remplacées, quelle que soit leur source. Si ce paramètre est une liste vide, toutes les clés existantes sont préservées.

Returns:
list(ValueKey)

Une liste de longueur length contenant les clés-valeurs prêtes à recevoir de nouvelles valeurs.

Notes

Cette méthode renvoie une liste vide si elle est appliquée à un groupe de valeurs sans bouton, sauf si celui-ci avait au moins une clé-fille (ce qui est normalement toujours le cas, de tels groupes sont toujours créés parce qu’il y a plusieurs valeurs). Dans ce cas, la méthode se comporte comme avec un groupe de traduction, et permet l’insertion d’une et une seule valeur.

property sources#

list(rdflib.term.URIRef): Liste des sources de vocabulaire contrôlé commune à toutes les valeurs du groupe.

Notes

Modifier cette propriété emporte la mise en cohérence de la propriété ValueKey.value_source pour toutes les clés-valeurs du groupe.

property transform#

{None, “email”, “phone”}: Nature de la transformation appliquée aux clés-valeurs du groupe.

Notes

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties. Toute tentative pour définir une transformation autre que celles listées ci-avant sera silencieusement ignorée.

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

property with_minus_buttons#

bool: Les filles du groupe sont-elles accompagnées de boutons moins ?

Notes

Cette propriété vaudra toujours False pour un groupe fantôme.

class plume.rdf.widgetkey.ObjectKey(**kwargs)#

Bases : WidgetKey

Clé-objet.

Une clé-objet est une clé de dictionnaire de widgets représentant un couple prédicat/objet d’un graphe RDF. Le sujet du triplet est alors sa clé parente.

Outre ses propriétés propres listées ci-après, ObjectKey hérite des attributs et méthodes de la classe WidgetKey.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières. Cet argument sera ignoré si le groupe parent est un groupe de valeurs (GroupOfvaluesKey).

predicaterdflib.term.URIRef

Prédicat représenté par la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information. Sinon, elle est obligatoire. Pour des clés jumelles, le prédicat déclaré sur la jumelle de référence prévaut, sauf s’il vaut None.

labelstr or rdflib.term.Literal, optional

Etiquette de la clé (libellé de la catégorie de métadonnée représentée par la clé). Cet argument est ignoré si la clé appartient à un groupe de valeurs. Pour des clés jumelles, l’étiquette déclarée sur la jumelle de référence prévaut.

descriptionstr or rdflib.term.Literal, optional

Définition de la catégorie de métadonnée représentée par la clé. Cet argument est ignoré si la clé appartient à un groupe de valeurs. Pour des clés jumelles, le descriptif déclaré sur la jumelle de référence prévaut.

m_twinObjectKey, optional

Clé jumelle, le cas échéant. Un couple de jumelle ne se déclare qu’une fois, sur la seconde clé créée.

is_hidden_mbool, default False

La clé est-elle la clé masquée du couple de jumelles ? Ce paramètre n’est pris en compte que pour une clé qui a une jumelle.

is_read_onlybool or rdflib.term.Literal, default False

La clé est-elle en lecture seule ? Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information. Une clé appartenant à un groupe de propriétés en lecture seule sera elle-même considérée comme étant en lecture seule.

Avertissement

Cette classe ne doit pas être utilisée directement pour créer de nouvelles clés. On préfèrera toujours les classes filles qui héritent de ses méthodes et attributs :

  • GroupOfPropertiesKey pour les groupes de propriétés. C’est la classe à utiliser lorsque l’objet du triplet RDF est un noeud anonyme.

  • ValueKey pour les clés-valeurs (correspondent aux widgets de saisie). C’est la classe à utiliser lorsque l’objet du triplet RDF est un IRI ou une valeur litérale.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

description

str: Descriptif de la métadonnée représentée par la clé.

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_main_twin

bool: La clé est-elle la jumelle référente du couple ?

is_read_only

bool: La clé est-elle en lecture seule ?

is_single_child

bool: La clé est-elle un enfant unique ?

label

str: Etiquette de la clé.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

m_twin

ObjectKey: Clé jumelle.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin représenté par la clé.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

predicate

rdflib.term.URIRef: Prédicat représenté par la clé.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

Methods

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

copy([parent, empty])

Renvoie une copie de la clé.

drop([append_book, drop_single_children])

Supprime une clé-objet.

kill([preserve_twin])

Efface une clé de la mémoire de son parent.

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

switch_twin([value_source, append_book])

Intervertit la visibilité d'un couple de jumelles.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

property attr_to_copy#

dict: Attributs de la classe à prendre en compte pour la copie des clés.

Cette propriété est un dictionnaire dont les clés sont les noms des attributs contenant les informations nécessaires pour dupliquer la clé, et les valeurs sont des booléens qui indiquent si l’attribut est à prendre en compte lorsqu’il s’agit de créer une copie vide de la clé.

Certains attributs sont volontairement exclus de cette liste, car ils requièrent un traitement spécifique.

Voir aussi

WidgetKey.copy

Notes

Réécriture de la propriété WidgetKey.attr_to_copy.

property attr_to_update#

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

Notes

Réécriture de la propriété WidgetKey.attr_to_update.

property description#

str: Descriptif de la métadonnée représentée par la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Lorsqu’il n’y a ni étiquette, ni descriptif mémorisé, cette propriété renvoie le chemin (ObjectKey.path).

Si la clé a une jumelle dont le descriptif est différent de la valeur fournie, c’est celui de la jumelle de référence qui prévaudra. Autrement dit, pour changer le descriptif d’un couple de jumelles, il faut cibler la jumelle de référence, sans quoi l’opération n’aura pas d’effet.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

drop(append_book=False, drop_single_children=False)#

Supprime une clé-objet.

Utiliser cette méthode sur une clé masquée n’a pas d’effet. Idem pour une clé qui n’est pas une clé-valeur en lecture seule et n’appartient pas non plus à un groupe de valeurs / groupe de traduction (ou qui, sauf paramétrage contraire, est la dernière clé de ce groupe).

Parameters:
append_bookbool, default False

Si True, le carnet d’action n’est pas réinitialisé ni avant ni après l’exécution, mais complété avec les nouvelles opérations réalisées.

drop_single_childrenbool, default False

Lorsque ce paramètre vaut False, la dernière clé du groupe est ignorée par cette méthode (sauf si elle est en lecture seule). La valeur de ce paramètre ne devrait être modifiée qu’à des fins de test ou dans des cas très spécifiques et finement testés.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de matérialiser la suppresssion de la clé.

Avertissement

Lorsque le paramètre append_book est utilisé pour enregistrer les actions de matérialisation d’un ensemble d’opérations réalisées successivement sur les clés, dans l’idée de pouvoir jouer ensuite ces actions en une seule fois, il importe de commencer par réinitialiser le carnet d’actions avec la méthode WidgetKey.clear_actionsbook(). À défaut, le carnet d’actions est susceptible de ne pas être vide au début du traitement. Quand append_book vaut False, la réinitialisation est systématique.

property has_minus_button#

bool: Un bouton moins est-il associé à la clé ?

Notes

Cette propriété est en lecture seule. Si la clé appartient à un groupe de valeurs ou de traduction, elle est déduite de la propriété GroupOfValuesKey.with_minus_buttons du groupe parent, sinon elle vaut False quoi qu’il arrive.

property is_hidden_m#

bool: La clé appartient-elle à une branche masquée ?

Cette propriété héréditaire vaut True pour la clé présentement masquée d’un couple de jumelles, ou toute clé descendant de celle-ci (branche masquée).

Sauf à ce que les deux jumelles appartiennent à une branche masquée en amont, une et une seule clé du couple est toujours masquée (ObjectKey.is_hidden_m vaut True). Cette cohérence est maintenue automatiquement.

Toute tentative pour rendre visible une partie d’une branche restant masquée en amont sera silencieusement ignorée.

Notes

Réécriture de la propriété WidgetKey.is_hidden_m.

Modifier cette propriété emporte la mise en cohérence de la propriété ObjectKey.is_main_twin de la clé et de sa jumelle.

property is_main_twin#

bool: La clé est-elle la jumelle référente du couple ?

Toujours False si la clé n’a pas de jumelle.

Notes

Cette propriété n’est pas supposée être modifiée manuellement. Elle ne peut d’ailleurs l’être que lorsque les deux jumelles appartiennent à une branche masquée, sinon elle est déduite de ObjectKey.is_hidden_m.

property is_read_only#

bool: La clé est-elle en lecture seule ?

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Si la clé appartient à un groupe de propriétés, elle sera considérée comme étant en lecture seule si le groupe parent est en lecture seule ou si la clé elle-même est paramétrée comme telle.

Les clés en lecture seule ne sont accompagnées d’aucun bouton.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

kill(preserve_twin=False)#

Efface une clé de la mémoire de son parent.

Parameters:
preserve_twinbool

True si la jumelle doit être conservée (généralement non souhaitable, sauf dans le cas très spécifique du nettoyage des groupes de propriétés vides).

Notes

Complète la méthode WidgetKey.kill() en effaçant aussi la clé jumelle, s’il y en a une.

property label#

str: Etiquette de la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, cette propriété vaudra None, car l’étiquette est portée par le groupe. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Hors d’un groupe de valeurs, si aucune étiquette n’est mémorisée, la propriété renvoie '???'` plutôt que None.

Si la clé a une jumelle dont l’étiquette est différente de la valeur fournie, c’est celle de la jumelle de référence qui prévaudra. Autrement dit, pour changer l’étiquette d’un couple de jumelles, il faut cibler la jumelle de référence, sans quoi l’opération n’aura pas d’effet.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property m_twin#

ObjectKey: Clé jumelle.

Deux clés jumelles sont une clé-valeur (classe ValueKey) et une clé groupe de propriétés (classe GroupOfPropertiesKey) représentant le même objet, la première sous forme d’IRI, la seconde sous la forme d’un ensemble de propriétés (définition « manuelle »). Les deux clés occupant le même emplacement dans la grille, l’une des deux doit toujours être masquée (ObjectKey.is_hidden_m valant True).

Les clés jumelles partagent certains attributs : ObjectKey.predicate (et par suite ObjectKey.path), ObjectKey.label, ObjectKey.description et ObjectKey.order_idx prennent toujours la même valeur pour les deux jumelles (mise à jour automatique).

Raises:
ForbiddenOperation

Si la clé cible est un fantôme, si la clé jumelle n’est pas du bon type (ValueKey pour une clé GroupOfPropertiesKey et inversement), ou si les deux clés n’ont pas le même parent.

Notes

Modifier cette propriété emporte la mise en cohérence des propriétés ObjectKey.is_hidden_m, ObjectKey.is_main_twin, ObjectKey.predicate, ObjectKey.label, ObjectKey.description et ObjectKey.order_idx de la clé et de sa jumelle, des propriétés ObjectKey.rowspan et ObjectKey.independant_label de la clé-valeur du couple, ainsi que de la propriété WidgetKey.is_single_child pour toutes les clés du groupe parent.

property order_idx#

tuple(int): Indice de classement de la clé parmi ses soeurs.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, modifier la valeur de cette propriété n’aura silencieusement aucun effet, car il n’y a pas de notion d’ordre dans ces groupes. WidgetKey.order_idx y vaut toujours None. Dans le cas contraire, None est silencieusement remplacé par (9999,), de manière ce que les clés sans indice soient classées après les autres.

Si la clé a une jumelle dont l’indice de classement est différent de la valeur fournie, c’est celui de la jumelle de référence qui prévaudra. Autrement dit, pour changer l’indice de classement d’un couple de jumelles, il faut cibler la jumelle de référence, sans quoi l’opération n’aura pas d’effet.

Modifier cette propriété emporte la mise en cohérence de la propriété WidgetKey.row pour toutes les clés du groupe parent.

property path#

rdflib.paths.SequencePath: Chemin représenté par la clé.

Notes

Cette propriété est en lecture seule. Si la clé appartient à un groupe de valeurs ou de traduction, le chemin est celui du groupe parent. Sinon, il est calculé dynamiquement à partir du chemin du parent et de la valeur de ObjectKey.predicate.

property predicate#

rdflib.term.URIRef: Prédicat représenté par la clé.

Raises:
MissingParameter

Pour toute tentative de mettre à None la valeur de cette propriété alors que la clé n’appartient pas à un groupe de valeurs, cette information étant alors obligatoire.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Si la clé a une jumelle dont le prédicat est différent de la valeur fournie, c’est celui de la jumelle de référence qui prévaudra, sauf s’il vaut None. Autrement dit, pour changer le prédicat d’un couple de jumelles, il faut cibler la jumelle de référence, sans quoi l’opération n’aura pas d’effet.

switch_twin(value_source=None, append_book=False)#

Intervertit la visibilité d’un couple de jumelles.

Utiliser cette méthode sur une clé non visible n’a pas d’effet, et le carnet d’actions renvoyé est vide : cette méthode est supposée être appliquée sur la jumelle visible du couple.

Parameters:
value_sourcerdflib.term.URIRef, optional

Si la clé qui redevient visible est la clé-valeur, la source à utiliser pour celle-ci. Si non fourni, la source antérieure est conservée.

append_bookbool, default False

Si True, le carnet d’action n’est pas réinitialisé avant et après exécution, mais complété avec les nouvelles opérations réalisées.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de répercuter le changement de source sur les widgets.

Avertissement

Lorsque le paramètre append_book est utilisé pour enregistrer les actions de matérialisation d’un ensemble d’opérations réalisées successivement sur les clés, dans l’idée de pouvoir jouer ensuite ces actions en une seule fois, il importe de commencer par réinitialiser le carnet d’actions avec la méthode WidgetKey.clear_actionsbook(). À défaut, le carnet d’actions est susceptible de ne pas être vide au début du traitement. Quand append_book vaut False, la réinitialisation est systématique.

class plume.rdf.widgetkey.PlusButtonKey(**kwargs)#

Bases : WidgetKey

Bouton plus.

Les boutons plus sont des clés de dictionnaire de widgets à visée utilitaire. Ils n’existent que dans les groupes de valeurs et leur présence signifie que l’utilisateur est autorisé à ajouter de nouveaux éléments au groupe.

Il ne peut pas y avoir de bouton plus fantôme, de bouton plus dans un groupe fantôme, de bouton plus sans parent, ou de bouton plus dont le parent n’est pas un groupe valeurs ou de traduction. Dans tous ces cas, rien ne sera créé.

Les boutons héritent des attributs et méthodes de la classe WidgetKey.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme. Tenter de créer un bouton plus fantôme ne produira rien.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

description

str: Texte d’aide.

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_single_child

bool: La clé est-elle un enfant unique ?

key_object

str: Transcription littérale du type de clé.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin du bouton.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

Methods

add([append_book, key_type])

Ajoute une clé vierge dans le groupe parent du bouton.

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

copy([parent, empty])

Renvoie une copie de la clé.

kill()

Efface une clé bouton de la mémoire de son parent.

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

add(append_book=False, key_type=None)#

Ajoute une clé vierge dans le groupe parent du bouton.

La nouvelle clé est une copie du dernier enfant non fantômatique du groupe.

Parameters:
append_bookbool, default False

Si True, le carnet d’action n’est pas réinitialisé avant exécution, mais complété avec les nouvelles opérations réalisées.

key_type{None, ValueKey, GroupOfPropertiesKey}, optional

Si renseigné, la méthode s’assurera d’ajouter une clé du type considéré.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de matérialiser la création de la clé.

Raises:
IntegrityBreach

Si key_type est renseigné et que le groupe ne contient aucune clé du type considéré, ou si aucune clé n’a pu être dupliquée.

Avertissement

Lorsque le paramètre append_book est utilisé pour enregistrer les actions de matérialisation d’un ensemble d’opérations réalisées successivement sur les clés, dans l’idée de pouvoir jouer ensuite ces actions en une seule fois, il importe de commencer par réinitialiser le carnet d’actions avec la méthode WidgetKey.clear_actionsbook(). À défaut, le carnet d’actions est susceptible de ne pas être vide au début du traitement. Quand append_book vaut False, la réinitialisation est systématique.

property description#

str: Texte d’aide.

property is_hidden_b#

bool: La clé est-elle un bouton masqué ?

Un bouton plus est toujours masqué dans un groupe de valeurs en lecture seule.

Voir aussi

TranslationButtonKey.is_hidden_b

Réécriture de la propriété pour un bouton de traduction.

Notes

Réécriture de la propriété WidgetKey.is_hidden_b.

property key_object#

str: Transcription littérale du type de clé.

kill()#

Efface une clé bouton de la mémoire de son parent.

Notes

Réécrit WidgetKey.kill() pour l’adapter au cas des boutons. Dans l’absolu, elle n’est pas supposée servir, car aucun mécanisme ne prévoit de supprimer le bouton d’un groupe sans supprimer également celui-ci.

property path#

rdflib.paths.SequencePath: Chemin du bouton.

Notes

Cette propriété est en lecture seule. Le chemin d’un bouton est simplement celui de son groupe parent.

property placement#

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme, un onglet ou une clé-racine.

Notes

Réécriture de la propriété WidgetKey.placement. Les boutons plus sont toujours placés en colonne 0 et occupent une seule colonne.

property tree_idx#

tuple: Représentation du placement de la clé dans l’arbre.

class plume.rdf.widgetkey.RootKey(**kwargs)#

Bases : GroupKey

Clé-racine du graphe RDF.

Une clé-racine est, comme son nom l’indique, l’origine d’un arbre de clés, et donc la seule clé de l’arbre qui n’ait pas de parent. Elle porte l’identifiant du jeu de données, dans son attribut RootKey.node.

Outre ses attributs propres listés ci-après, RootKey hérite des attributs de la classe GroupKey.

Parameters:
datasetidrdflib.term.URIRef, optional

L’identifiant du graphe de métadonnées. S’il n’est pas fourni un nouvel UUID est généré pour l’attribut RootKey.node.

Notes

Une clé-racine n’est jamais un fantôme, et toute tentative dans ce sens serait ignorée.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

columnspan

int: Nombre de colonnes de la grille occupées par le widget principal de la clé.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_real_children

bool: Y a-t-il au moins un enfant dans ce groupe qui ne soit pas un fantôme ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_single_child

bool: La clé est-elle un enfant unique ?

key_object

str: Transcription littérale du type de clé.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

node

rdflib.term.URIRef: Identifiant du jeu de données.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin de la clé.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

rdfclass

rdflib.term.URIRef: Classe RDF.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

Methods

build_metagraph()

Traduit l'arbre de clés en graphe de métadonnées.

clean([append_book])

Balaie l'arbre de clés et supprime tous les groupes sans fille.

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

compute_rows()

Actualise les indices de ligne des filles du groupe.

copy([parent, empty])

Renvoie une copie de la clé.

is_empty(**kwargs)

Le groupe est-il vide ?

kill()

Efface une clé de la mémoire de son parent.

paste_from_path(widgetkey)

Copie et colle une branche dans l'arbre de clés.

real_children([reverse])

Générateur sur les clés filles qui ne sont pas des fantômes (ni des boutons).

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

search_from_path(path[, allow_ghosts])

Renvoie la première clé de l'arbre dont le chemin correspond à celui recherché.

search_from_rdfclass(rdfclass)

Renvoie la liste des groupes de propriétés du type recherché.

search_from_uuid(uuid)

Renvoie la clé de l'arbre dont l'identifiant est l'UUID recherché.

search_tab([label])

Cherche parmi les filles du groupe et renvoie l'onglet d'étiquette donnée.

tree_keys()

Générateur sur les clés de l'arbre.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

compute_single_children

property attr_to_copy#

dict: Attributs de la classe à prendre en compte pour la copie des clés.

Cette propriété est un dictionnaire dont les clés sont les noms des attributs contenant les informations nécessaires pour dupliquer la clé, et les valeurs sont des booléens qui indiquent si l’attribut est à prendre en compte lorsqu’il s’agit de créer une copie vide de la clé.

Certains attributs sont volontairement exclus de cette liste, car ils requièrent un traitement spécifique.

Voir aussi

WidgetKey.copy

Notes

Plusieurs classes filles de WidgetKey redéfinissent cette propriété, en complétant le dictionnaire avec leurs propres attributs.

property attr_to_update#

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

Notes

Plusieurs des classes filles de WidgetKey redéfinissent cette propriété en ajoutant ou retirant des attributs à la liste.

build_metagraph()#

Traduit l’arbre de clés en graphe de métadonnées.

Returns:
plume.rdf.metagraph.Metagraph
clean(append_book=False)#

Balaie l’arbre de clés et supprime tous les groupes sans fille.

Les groupes qui ne contiennent que des fantômes sont transformés en fantômes, s’ils ne l’étaient pas déjà (sous réserve des contraintes exprimées dans les descriptifs des propriétés GroupOfPropertiesKey.is_ghost, TabKey.is_ghost et GroupOfValuesKey.is_ghost).

Cette méthode a la spécificité de pouvoir supprimer une clé tout en préservant sa jumelle clé-valeur (qui n’est alors plus une clé jumelle). Outre le cas des jumelles supprimées parce que ce sont des groupes de propriétés vides, la méthode élimine les clés qui ne sont pas la jumelle principale lorsqu’il n’y a pas de bouton de sélection de la source qui permettraient de les afficher.

Parameters:
append_bookbool, default False

Si True, le carnet d’action n’est pas réinitialisé avant et après exécution, mais complété avec les nouvelles opérations réalisées.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de matérialiser les opérations réalisées.

Avertissement

Lorsque le paramètre append_book est utilisé pour enregistrer les actions de matérialisation d’un ensemble d’opérations réalisées successivement sur les clés, dans l’idée de pouvoir jouer ensuite ces actions en une seule fois, il est nécessaire de commencer par réinitialiser le carnet d’actions avec la méthode WidgetKey.clear_actionsbook(), en spécifiant allow_ghosts=True en argument.

Notes

Les suppressions et les fantômisations se traduisent par des entrées dans la liste ActionsBook.drop du carnet d’actions.

property generation#

int: Génération à laquelle appartient la clé.

0 pour la clé-racine, 1 pour ses enfants, etc.

property is_ghost#

bool: La clé est-elle une clé fantôme non matérialisée ?

Voir aussi

GroupOfPropertiesKey.is_ghost

Réécriture de la propriété pour les groupes de propriétés.

GroupOfValuesKey.is_ghost

Réécriture de la propriété pour les groupes de valeurs.

TabKey.is_ghost

Réécriture de la propriété pour les onglets.

Notes

Cette propriété n’est plus modifiable une fois la clé initialisée, sauf pour les certains groupes dont, entre autres conditions, tous les enfants sont des fantômes.

is_ghost définit la valeur booléenne de la clé : bool(widgetkey) vaut False si widgetkey est une clé fantôme.

property key_object#

str: Transcription littérale du type de clé.

kill()#

Efface une clé de la mémoire de son parent.

Notes

Cette méthode n’est pas appliquée récursivement aux enfants de la clé effacée. Elle coupe simplement la branche de l’arbre. Pour autant tous les descendants de la clé sont enregistrés la liste plume.rdf.actionsbook.ActionsBook.drop du carnet d’actions.

La méthode est sans effet sur les clés-racine (RootKey).

property node#

rdflib.term.URIRef: Identifiant du jeu de données.

Notes

Si la valeur fournie n’est pas un IRI, un nouvel identifiant (UUID) est généré.

property parent#

GroupKey: Clé parente.

Raises:
MissingParameter

Quand aucune clé n’est fournie pour le parent.

ForbiddenOperation

En cas de tentative de modification du parent post initialisation de la clé.

ForbiddenOperation

Si la classe de l’enfant n’est pas cohérente avec celle du parent.

ForbiddenOperation

En cas de tentative pour mêler des onglets et des clés d’autres types dans un même groupe.

Notes

Cette propriété n’est plus modifiable après l’initialisation. Pour reproduire la clé avec un autre parent, on utilisera la méthode WidgetKey.copy(). WidgetKey.kill() permet d’effacer la clé d’origine si besoin.

paste_from_path(widgetkey)#

Copie et colle une branche dans l’arbre de clés.

La clé est positionnée en fonction de son type et de la valeur de son attribut WidgetKey.path. Si le chemin n’existe pas dans l’arbre dont self est la racine, la méthode n’a pas d’effet. Idem s’il pointe sur une branche masquée.

Si le chemin pointe sur un groupe de valeurs avec un bouton (donc dans lequel on présume que les ajouts sont autorisés) et que la clé à coller est de classe GroupOfPropertiesKey, elle est ajoutée au groupe. Sinon, la clé à coller remplace la clé de même chemin dans l’arbre cible, sous réserve qu’elles soient bien de même nature.

Parameters:
widgetkeyGroupOfPropertiesKey or GroupOfValuesKey

La clé correspondant à la base de la branche à copier.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de matérialiser les opérations réalisées.

Raises:
ForbiddenOperation

Si appliquée à une clé qui n’est pas un groupe de valeurs ou de propriétés, ou à une clé fantôme ou masquée.

property placement#

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme, un onglet ou une clé-racine.

property rdfclass#

rdflib.term.URIRef: Classe RDF.

Notes

Vaut toujours dcat:Dataset.

search_from_path(path, allow_ghosts=False)#

Renvoie la première clé de l’arbre dont le chemin correspond à celui recherché.

Si une clé et son parent ont le même chemin (cas d’un groupe de valeurs et ses clés filles, ou d’un groupe de propriétés et ses onglets), c’est toujours le groupe parent qui est renvoyé.

Si le chemin pointe sur un couple de jumelles, c’est la jumelle de référence (celle dont la propriété ObjectKey.is_main_twin vaut True) qui est renvoyée.

Si le chemin n’existe pas dans l’arbre, la méthode ne renvoie rien. Les clés fantômes ne sont pas prises en compte, sauf si le paramètre allow_ghosts est explicitement mis à True.

Parameters:
pathrdflib.paths.SequencePath

Le chemin à chercher.

allow_ghostsbool, default False

Si True, les clés fantômes seront prises en compte.

Returns:
WidgetKey
search_from_rdfclass(rdfclass)#

Renvoie la liste des groupes de propriétés du type recherché.

Les clés fantômes ne sont pas prises en compte.

Parameters:
rdfclassrdflib.term.URIRef

La classe RDF cible.

Returns:
list of GroupOfPropertiesKey
search_from_uuid(uuid)#

Renvoie la clé de l’arbre dont l’identifiant est l’UUID recherché.

Parameters:
uuidstr or uuid.UUID
property tree_idx#

tuple: Représentation du placement de la clé dans l’arbre.

tree_keys()#

Générateur sur les clés de l’arbre.

Les fantômes sont exclus, les boutons sont inclus.

Yields:
WidgetKey
class plume.rdf.widgetkey.TabKey(**kwargs)#

Bases : GroupKey

Onglet.

Les onglets sont des clés de dictionnaires de widgets qui doublent leur groupe de propriétés ou groupe racine parent sans porter aucune information sur la structure du graphe RDF.

TabKey hérite des attributs et méthodes de la classe GroupKey.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières.

labelstr or rdflib.term.Literal

Etiquette de l’onglet.

Notes

Il n’est pas permis de créer un onglet dans un groupe contenant autre chose que des onglets ni, réciproqument, une clé qui ne serait pas un onglet dans un groupe contenant un onglet. C’est le setter de la propriété WidgetKey.parent qui veille au respect de cette condition.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

columnspan

int: Nombre de colonnes de la grille occupées par le widget principal de la clé.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_real_children

bool: Y a-t-il au moins un enfant dans ce groupe qui ne soit pas un fantôme ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_single_child

bool: La clé est-elle un enfant unique ?

key_object

str: Transcription littérale du type de clé.

label

str: Etiquette de la clé.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

node

rdflib.term.URIRef or rdflib.term.BNode: Noeud sujet des filles de l’onglet.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin représenté par la clé.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

Methods

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

compute_rows()

Actualise les indices de ligne des filles du groupe.

copy([parent, empty])

Renvoie une copie de la clé.

is_empty(**kwargs)

Le groupe est-il vide ?

kill()

Efface une clé de la mémoire de son parent.

real_children([reverse])

Générateur sur les clés filles qui ne sont pas des fantômes (ni des boutons).

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

search_tab([label])

Cherche parmi les filles du groupe et renvoie l'onglet d'étiquette donnée.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

compute_single_children

property attr_to_update#

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

Notes

Réécriture de la propriété WidgetKey.attr_to_update.

property is_ghost#

bool: La clé est-elle une clé fantôme non matérialisée ?

Notes

Réécriture de la propriété WidgetKey.is_ghost.

Cette propriété n’est modifiable post initialisation que pour transformer en fantôme une clé qui ne l’était pas, si les conditions suivantes sont réunies : * le groupe a au moins un enfant ; * tous les enfants du groupe sont des fantômes.

is_ghost définit la valeur booléenne de la clé : bool(widgetkey) vaut False si widgetkey est une clé fantôme.

property key_object#

str: Transcription littérale du type de clé.

property label#

str: Etiquette de la clé.

Notes

Si aucune étiquette n’est mémorisée, la propriété renvoie '???'` plutôt que None.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property node#

rdflib.term.URIRef or rdflib.term.BNode: Noeud sujet des filles de l’onglet.

Identique à celui du groupe parent.

property path#

rdflib.paths.SequencePath: Chemin représenté par la clé.

Notes

Cette propriété est en lecture seule. Le chemin d’un onglet est identique à celui du groupe parent.

property placement#

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme, un onglet ou une clé-racine.

class plume.rdf.widgetkey.TranslationButtonKey(**kwargs)#

Bases : PlusButtonKey

Bouton de traduction.

Un bouton de traduction est l’équivalent d’un bouton plus, mais dont le parent est un groupe de traduction. Sa présence indique que l’utilisateur est autorisé à ajouter de nouvelles traductions.

En cas de tentative de création d’un bouton de traduction dans un groupe de valeurs, c’est un bouton plus qui est créé à la place.

Les boutons héritent des attributs et méthodes de la classe WidgetKey. Ils n’ont pas d’attributs propres.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme. Comme pour les boutons plus, tenter de créer un bouton de traduction fantôme ne produira rien.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

description

str: Texte d’aide.

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_single_child

bool: La clé est-elle un enfant unique ?

key_object

str: Transcription littérale du type de clé.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin du bouton.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

Methods

add([append_book, key_type])

Ajoute une clé vierge dans le groupe parent du bouton.

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

copy([parent, empty])

Renvoie une copie de la clé.

kill()

Efface une clé bouton de la mémoire de son parent.

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

property description#

str: Texte d’aide.

property is_hidden_b#

bool: La clé est-elle un bouton masqué ?

Un bouton de traduction est masqué lorsque le stock de langues disponibles pour les traductions est épuisé.

Notes

Réécriture de la propriété WidgetKey.is_hidden_b.

Cette propriété est en lecture seule. Elle est déduite dynamiquement de la propriété TranslationGroupKey.available_languages du groupe parent.

property key_object#

str: Transcription littérale du type de clé.

class plume.rdf.widgetkey.TranslationGroupKey(**kwargs)#

Bases : GroupOfValuesKey

Groupe de traduction.

Un groupe de traduction est une clé de groupe de valeurs spécifique, dont les filles représentent les traductions d’un objet. Chaque membre du groupe a donc une propriété ValueKey.value_language différente, et tout l’enjeu du groupe de traduction est de veiller à ce que les langues restent distinctes.

Outre ses attributs propres listés ci-après, TranslationGroupKey hérite de tous les attributs de la classe GroupOfValuesKey. La plupart présentent toutefois peu d’intérêt, valant soit None, soit une valeur fixe (par exemple rdf:langString pour TranslationGroupKey.xsd:type).

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme. Il n’est pas permis d’avoir un groupe de traduction fantôme, y compris par héritage. Le cas échéant, c’est un groupe de valeurs classique (:py:class:GroupOfValuesKey) qui sera automatiquement créé à la place.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières.

predicaterdflib.term.URIRef

Le prédicat commun à toutes les valeurs du groupe.

Avertissement

Il n’est possible de créer un groupe de traduction que si l’attribut partagé with_language_buttons vaut True. À défaut, c’est un groupe de valeurs qui sera créé à la place.

Notes

Dans un groupe de traduction, dont les enfants sont nécessairement des clés-valeurs (ValueKey) représentant des valeurs littérales, il n’y a jamais lieu de fournir des valeurs pour les propriétés GroupOfValuesKey.rdfclass et GroupOfValuesKey.sources. Elles n’apparaissent donc pas dans la liste de paramètres ci-avant, et - si valeurs il y avait - elles seraient silencieusement perdues. Ces propriétés renvoient toujours None.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

available_languages

list(str) : Liste des langues encore disponibles pour les traductions.

columnspan

int: Nombre de colonnes de la grille occupées par le widget principal de la clé.

compute

list(str): Modes de calcul définis pour la clé.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

compute_params

dict: Paramètres à fournir à la méthode de calcul.

datatype

rdflib.term.URIRef: Type de valeur commun à toutes les valeurs du groupe.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

description

str: Descriptif de la métadonnée représentée par les clés du groupe.

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

geo_tools

list(str): Fonctionnalités d’aide à la saisie des géométries disponibles pour les clés-valeurs du groupe.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_real_children

bool: Y a-t-il au moins un enfant dans ce groupe qui ne soit pas un fantôme ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

input_mask

str: Masque de saisie à utiliser pour les clés-valeurs du groupe.

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_mandatory

bool: Au moins une clé-valeur du groupe devra-t-elle obligatoirement recevoir une valeur ?

is_read_only

bool: Les valeurs des clés-valeurs du groupe sont-elles en lecture seule ?

is_single_child

bool: La clé est-elle un enfant unique ?

key_object

str: Transcription littérale du type de clé.

label

str: Etiquette du groupe.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

node

rdflib.term.URIRef or rdflib.term.BNode: Noeud sujet des filles du groupe.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin commun à toutes les clés du groupe.

placeholder

str: Texte de substitution à utiliser pour les clés-valeurs du groupe.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

predicate

rdflib.term.URIRef: Prédicat commun à toutes les clés du groupe.

rdfclass

rdflib.term.URIRef: Classe RDF commune à toutes les valeurs du groupe.

regex_validator

str: Expression rationnelle de validation à utiliser pour les clés-valeurs du groupe.

regex_validator_flags

str: Paramètres associés à l’expression rationnelle de validation des clés-valeurs du groupe.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

sources

list(rdflib.term.URIRef): Liste des sources de vocabulaire contrôlé commune à toutes les valeurs du groupe.

transform

{None, “email”, “phone”}: Nature de la transformation appliquée aux clés-valeurs du groupe.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

with_minus_buttons

bool: Les filles du groupe sont-elles accompagnées de boutons moins ?

Methods

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

compute_rows()

Actualise les indices de ligne des filles du groupe.

compute_single_children()

Détermine si les clés du groupe sont des filles uniques.

copy([parent, empty])

Renvoie une copie de la clé.

is_empty([sources])

Le groupe est-il vide ?

kill()

Efface une clé de la mémoire de son parent.

language_in(value_language)

Ajoute une langue à la liste des langues disponibles.

language_out(value_language)

Retire une langue de la liste des langues disponibles.

real_children([reverse])

Générateur sur les clés filles qui ne sont pas des fantômes (ni des boutons).

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

search_tab([label])

Cherche parmi les filles du groupe et renvoie l'onglet d'étiquette donnée.

shrink_expend(length[, sources])

Prépare les clés filles du groupe en vue d'une saisie massive des valeurs.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

property available_languages#

list(str) : Liste des langues encore disponibles pour les traductions.

Cette liste est initialisée avec la variable partagée WidgetKey.langlist, et mise à jour automatiquement au gré des ajouts et suppressions de traductions dans le groupe.

property datatype#

rdflib.term.URIRef: Type de valeur commun à toutes les valeurs du groupe.

Notes

Cette propriété vaut toujours rdf:langString pour un groupe de traduction. Toute tentative de modification sera silencieusement ignorée.

property key_object#

str: Transcription littérale du type de clé.

language_in(value_language)#

Ajoute une langue à la liste des langues disponibles.

Parameters:
value_languagestr

Langue redevenue disponible.

language_out(value_language)#

Retire une langue de la liste des langues disponibles.

Parameters:
value_languagestr

Langue désormais non disponible.

property rdfclass#

rdflib.term.URIRef: Classe RDF commune à toutes les valeurs du groupe.

Raises:
MissingParameter

Pour toute tentative de mettre à None la valeur de cette propriété alors qu’il y a au moins un groupe de propriétés (représentant un noeud anonyme, qui doit avoir une classe associée) parmi les enfants du groupe.

Notes

Modifier cette propriété emporte la mise en cohérence de GroupOfValuesKey.datatype.

property sources#

list(rdflib.term.URIRef): Liste des sources de vocabulaire contrôlé commune à toutes les valeurs du groupe.

Notes

Modifier cette propriété emporte la mise en cohérence de la propriété ValueKey.value_source pour toutes les clés-valeurs du groupe.

property transform#

{None, “email”, “phone”}: Nature de la transformation appliquée aux clés-valeurs du groupe.

Notes

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties. Toute tentative pour définir une transformation autre que celles listées ci-avant sera silencieusement ignorée.

Il n’est pas interdit de définir une valeur pour cette propriété lorsque le groupe de valeurs ne contient que des groupes de propriétés, mais cela ne présente aucun intérêt.

class plume.rdf.widgetkey.ValueKey(**kwargs)#

Bases : ObjectKey

Clé-valeur.

Une clé-valeur est une clé-objet représentant une valeur litérale ou un IRI. Elle a vocation a être matérialisée par un widget de saisie.

Outre ses méthodes et attributs propres listés ci-après, py:class:ValueKey hérite de toutes les méthodes et attributs de la classe py:class:ObjectKey.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None.

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières. Cet argument sera ignoré si le groupe parent est un groupe de valeurs (GroupOfvaluesKey).

predicaterdflib.term.URIRef

Prédicat représenté par la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information. Sinon, elle est obligatoire. Pour des clés jumelles, le prédicat déclaré sur la jumelle de référence prévaut, sauf s’il vaut None.

labelstr or rdflib.term.Literal, optional

Etiquette de la clé (libellé de la catégorie de métadonnée représentée par la clé). Cet argument est ignoré si la clé appartient à un groupe de valeurs. Pour des clés jumelles, l’étiquette déclarée sur la jumelle de référence prévaut.

descriptionstr or rdflib.term.Literal, optional

Définition de la catégorie de métadonnée représentée par la clé. Cet argument est ignoré si la clé appartient à un groupe de valeurs. Pour des clés jumelles, le descriptif déclaré sur la jumelle de référence prévaut.

m_twinObjectKey, optional

Clé jumelle, le cas échéant. Un couple de jumelle ne se déclare qu’une fois, sur la seconde clé créée.

is_hidden_mbool, default False

La clé est-elle la clé masquée du couple de jumelles ? Ce paramètre n’est pris en compte que pour une clé qui a une jumelle.

rowspanint, optional

Nombre de lignes occupées par le ou les widgets portés par la clé, étiquette séparée non comprise. rowspan vaudra toujours 0 pour une clé fantôme. Si aucune valeur n’est fournie, une valeur par défaut de 1 est appliquée.

independant_labelbool, default False

True si l’étiquette de la clé occupe une ligne séparée de la grille.

sourceslist of rdflib.term.URIRef, optional

Le cas échéant, liste des sources de vocabulaire contrôlé pour les valeurs de la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

transform{None, “email”, “phone”}, optional

Le cas échéant, la nature de la transformation appliquée à l’objet. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

placeholderstr or rdflib.term.Literal, optional

Le cas échéant, texte de substitution à utiliser pour la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

input_maskstr or rdflib.term.Literal, optional

Le cas échéant, masque de saisie à utiliser pour la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

is_mandatorybool or rdflib.term.Literal, default False

Cette clé devra-t-elle obligatoirement recevoir une valeur ? Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

regex_validatorstr, optional

Le cas échéant, expression rationnelle de validation à utiliser pour la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

regex_validator_flagsstr, optional

Le cas échéant, paramètres associés à l’expression rationnelle de validation de la clé. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

rdfclassrdflib.term.URIRef, optional

Classe RDF de la clé-valeur, s’il s’agit d’un IRI. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information.

datatyperdflib.term.URIRef, optional

Le type de la clé-valeur, le cas échéant. Doit impérativement valoir rdf:langString pour que les informations sur les langues soient prises en compte. Si la clé appartient à un groupe de valeurs, c’est lui qui porte cette information. Dans le cas contraire, si ValueKey.rdfclass n’est pas nul, il sera toujours considéré que ValueKey.datatype l’est. Sinon, xsd:string est utilisé comme valeur par défaut. Seuls les types suivants sont pris en charge, pour les autres xsd:string serait utilisé à la place : xsd:string, xsd:integer, xsd:decimal, xsd:boolean, xsd:date, xsd:time, xsd:dateTime, xsd:duration, gsp:wktLiteral, rdf:langString.

do_not_savebool, default False

True si la valeur de la clé (ValueKey.value) ne doit pas être sauvegardée.

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

La valeur mémorisée par la clé (objet du triplet RDF). Une clé fantôme ne sera effectivement créée que si une valeur est fournie pour ce paramètre ou si le paramètre delayed ci-après vaut True.

delayedbool, default False

Si True, autorise la création d’une clé-fantôme sans valeur, étant entendu que la valeur sera fournie ultérieurement. Ce paramètres est utile lorsque la valeur doit être dé-sérialisée en fonction des paramètres de la clé (par exemple avec la méthode plume.rdf.widgetsdict.WidgetsDict.update_value()), ce qui suppose que celle-ci soit préalablement initialisée.

value_languagestr, optional

La langue de l’objet. Obligatoire pour une valeur litérale de type rdf:langString et a fortiori dans un groupe de traduction, ignoré pour tous les autres types.

value_sourcerdflib.term.URIRef

La source utilisée par la valeur courante de la clé. Si la valeur fournie pour l’IRI ne fait pas partie des sources autorisées, elle sera silencieusement supprimée.

is_long_textbool, default False

Dans le cas d’une valeur de type xsd:string ou rdf:langString, indique si le texte est présumé long (True) ou court (False, valeur par défaut). Même dans un groupe de valeurs, cette propriété est définie indépendamment pour chaque clé, afin qu’il soit possible de l’adapter à la longueur effective des valeurs.

geo_toolslist(str or rdflib.term.Literal)

Liste de fonctionnalités d’aide à la saisie des géométries disponibles pour la clé. Seules les valeurs suivantes seront prises en compte : 'show', 'point', 'linestring', 'rectangle', 'polygon', circle, 'bbox', 'centroid'.

computelist(str or rdflib.term.Literal), optional

Liste de modes de calcul disponibles pour la clé. Seules les valeurs “manual”, “auto”, “empty” et “new” sont reconnues à ce stade.

compute_paramsdict, optional

Paramètres à fournir à la méthode de calcul.

Attributes:
attr_to_copy

dict: Attributs de la classe à prendre en compte pour la copie des clés.

attr_to_update

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

available_languages

list(str): Renvoie la liste des langues disponibles pour la clé.

compute

list(str): Modes de calcul définis pour la clé.

compute_button_placement

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

compute_params

dict: Paramètres à fournir à la méthode de calcul.

datatype

rdflib.term.URIRef: Renvoie le type de la valeur portée par la clé.

delayed

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

description

str: Descriptif de la métadonnée représentée par la clé.

do_not_save

bool: Faut-il ne pas sauvegarder la valeur renseignée sur la clé ?

generation

int: Génération à laquelle appartient la clé.

geo_button_placement

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

geo_tools

list(str): Fonctionnalités d’aide à la saisie des géométries disponibles pour la clé.

has_compute_button

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

has_geo_button

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

has_label

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

has_language_button

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

has_minus_button

bool: Un bouton moins est-il associé à la clé ?

has_source_button

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

has_unit_button

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

independant_label

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

input_mask

str: Masque de saisie à utiliser pour la clé.

is_ghost

bool: La clé est-elle une clé fantôme non matérialisée ?

is_hidden

bool: La clé est-elle masquée ?

is_hidden_b

bool: La clé est-elle un bouton masqué ?

is_hidden_m

bool: La clé appartient-elle à une branche masquée ?

is_long_text

bool: La valeur de la clé est-elle un long texte ?

is_main_twin

bool: La clé est-elle la jumelle référente du couple ?

is_mandatory

bool: Cette clé devra-t-elle obligatoirement recevoir une valeur ?

is_read_only

bool: La clé est-elle en lecture seule ?

is_single_child

bool: La clé est-elle un enfant unique ?

key_object

str: Transcription littérale du type de clé.

label

str: Etiquette de la clé.

label_placement

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

language_button_placement

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

m_twin

ObjectKey: Clé jumelle.

main_language

Langue principale de saisie des métadonnées.

minus_button_placement

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

order_idx

tuple(int): Indice de classement de la clé parmi ses soeurs.

parent

GroupKey: Clé parente.

path

rdflib.paths.SequencePath: Chemin représenté par la clé.

placeholder

str: Texte de substitution à utiliser pour la clé.

placement

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

predicate

rdflib.term.URIRef: Prédicat représenté par la clé.

rdfclass

rdflib.term.URIRef: La classe RDF de la clé-valeur.

regex_validator

str: Expression rationnelle de validation à utiliser pour la clé.

regex_validator_flags

str: Paramètres associés à l’expression rationnelle de validation de la clé.

row

int: Ligne de la clé dans la grille.

rowspan

int: Nombre de lignes de la grille occupées par la clé.

source_button_placement

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

sources

list(rdflib.term.URIRef): Liste de sources de la clé.

transform

{None, “email”, “phone”}: Nature de la transformation appliquée à l’objet.

tree_idx

tuple: Représentation du placement de la clé dans l’arbre.

unit_button_placement

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

units

list(str): Renvoie la liste des unités possibles pour la clé.

value

rdflib.term.URIRef or rdflib.term.Literal: Valeur portée par la clé (objet du triplet RDF).

value_language

str: Langue de la valeur portée par la clé.

value_source

rdflib.term.URIRef: Renvoie la source de la valeur portée par la clé.

value_unit

str: Unité de la valeur portée par la clé.

Methods

change_language(value_language[, append_book])

Change la langue d'une clé-valeur.

change_source(value_source[, append_book])

Change la source d'une clé-valeur.

change_unit(value_unit[, append_book])

Change l'unité d'une clé-valeur.

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

copy([parent, empty])

Renvoie une copie de la clé.

drop([append_book, drop_single_children])

Supprime une clé-objet.

is_empty(**kwargs)

La clé est-elle vide ?

kill([preserve_twin])

Efface une clé de la mémoire de son parent.

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

switch_twin([value_source, append_book])

Intervertit la visibilité d'un couple de jumelles.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

property attr_to_copy#

dict: Attributs de la classe à prendre en compte pour la copie des clés.

Cette propriété est un dictionnaire dont les clés sont les noms des attributs contenant les informations nécessaires pour dupliquer la clé, et les valeurs sont des booléens qui indiquent si l’attribut est à prendre en compte lorsqu’il s’agit de créer une copie vide de la clé.

Certains attributs sont volontairement exclus de cette liste, car ils requièrent un traitement spécifique.

Voir aussi

WidgetKey.copy

Notes

Réécriture de la propriété WidgetKey.attr_to_copy.

property attr_to_update#

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

Notes

Réécriture de la propriété WidgetKey.attr_to_update.

property available_languages#

list(str): Renvoie la liste des langues disponibles pour la clé.

Notes

Cette propriété est en lecture seule. Si la clé appartient à un groupe de traduction, la méthode va chercher la liste définie sur la clé parente. Sinon elle renvoie WdigetKey.langlist, ou None si le type de valeur ne suppose pas de langue.

change_language(value_language, append_book=False)#

Change la langue d’une clé-valeur.

Utiliser cette méthode sur une clé non visible n’a pas d’effet, et le carnet d’actions renvoyé est vide.

Parameters:
value_languagestr

La nouvelle langue à déclarer.

append_bookbool, default False

Si True, le carnet d’action n’est pas réinitialisé avant et après exécution, mais complété avec les nouvelles opérations réalisées.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de répercuter le changement de langue sur les widgets.

Avertissement

Lorsque le paramètre append_book est utilisé pour enregistrer les actions de matérialisation d’un ensemble d’opérations réalisées successivement sur les clés, dans l’idée de pouvoir jouer ensuite ces actions en une seule fois, il importe de commencer par réinitialiser le carnet d’actions avec la méthode WidgetKey.clear_actionsbook(). À défaut, le carnet d’actions est susceptible de ne pas être vide au début du traitement. Quand append_book vaut False, la réinitialisation est systématique.

change_source(value_source, append_book=False)#

Change la source d’une clé-valeur.

Utiliser cette méthode sur une clé non visible n’a pas d’effet, et le carnet d’actions renvoyé est vide.

Parameters:
value_sourcerdflib.term.URIRef

La nouvelle source à déclarer.

append_bookbool, default False

Si True, le carnet d’action n’est pas réinitialisé avant et après exécution, mais complété avec les nouvelles opérations réalisées.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de répercuter le changement de source sur les widgets.

Avertissement

Lorsque le paramètre append_book est utilisé pour enregistrer les actions de matérialisation d’un ensemble d’opérations réalisées successivement sur les clés, dans l’idée de pouvoir jouer ensuite ces actions en une seule fois, il importe de commencer par réinitialiser le carnet d’actions avec la méthode WidgetKey.clear_actionsbook(). À défaut, le carnet d’actions est susceptible de ne pas être vide au début du traitement. Quand append_book vaut False, la réinitialisation est systématique.

change_unit(value_unit, append_book=False)#

Change l’unité d’une clé-valeur.

Utiliser cette méthode sur une clé non visible n’a pas d’effet, et le carnet d’actions renvoyé est vide.

Parameters:
value_unitstr

La nouvelle unité à déclarer.

append_bookbool, default False

Si True, le carnet d’action n’est pas réinitialisé avant et après exécution, mais complété avec les nouvelles opérations réalisées.

Returns:
plume.rdf.actionsbook.ActionsBook

Le carnet d’actions qui permettra de répercuter le changement d’unité sur les widgets.

Avertissement

Lorsque le paramètre append_book est utilisé pour enregistrer les actions de matérialisation d’un ensemble d’opérations réalisées successivement sur les clés, dans l’idée de pouvoir jouer ensuite ces actions en une seule fois, il importe de commencer par réinitialiser le carnet d’actions avec la méthode WidgetKey.clear_actionsbook(). À défaut, le carnet d’actions est susceptible de ne pas être vide au début du traitement. Quand append_book vaut False, la réinitialisation est systématique.

property compute#

list(str): Modes de calcul définis pour la clé.

Notes

Si la clé appartient à un groupe de valeurs, cette propriété vaudra toujours None.

Il est permis de fournir en argument une liste de rdflib.term.Literal, qui seront alors automatiquement convertis.

property compute_params#

dict: Paramètres à fournir à la méthode de calcul.

Notes

Si la clé appartient à un groupe de valeurs, cette propriété vaudra toujours None.

Les paramètres sont fournis sous la forme clé/valeur, où la clé est une chaîne de caractères correspondant au nom du paramètre.

copy(parent=None, empty=True)#

Renvoie une copie de la clé.

Parameters:
parentGroupKey, optional

La clé parente. Si elle n’est pas spécifiée, il sera considéré que le parent de la copie est le même que celui de l’original.

emptybool, default True

Crée-t-on une copie vide (cas d’un nouvel enregistrement dans un groupe de valeurs ou de traduction) - True - ou souhaite-t-on dupliquer une branche de l’arbre de clés en préservant son contenu - False ?

Returns:
ValueKey
Raises:
ForbiddenOperation

Lorsque la méthode est explicitement appliquée à une clé fantôme. Il est possible de copier des branches contenant des fantômes, ceux-ci ne seront simplement pas copiés.

Notes

Complète la méthode WidgetKey.copy() en gérant le cas d’une clé jumelle. Concrètement, c’est alors la clé groupe de propriétés du couple qui est copiée (GroupOfPropertiesKey.copy() porte le mécanisme de copie des couples), et la méthode renvoie ensuite sa jumelle.

property datatype#

rdflib.term.URIRef: Renvoie le type de la valeur portée par la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

ValueKey.rdfclass prévaut sur ValueKey.datatype : si le premier est renseigné, c’est que la valeur est un IRI ou un noeud anonyme, et le second ne peut qu’être nul. Sinon, xsd:string est utilisé comme valeur par défaut.

Seuls les types suivants sont pris en charge, pour les autres xsd:string serait utilisé à la place : xsd:string, xsd:integer, xsd:decimal, xsd:boolean, xsd:date, xsd:time, xsd:dateTime, xsd:duration, gsp:wktLiteral, rdf:langString.

Modifier cette propriété emporte la mise en cohérence des propriétés ValueKey.value_language, ValueKey.is_long_text, ValueKey.value_unit, ValueKey.geo_tools. En particulier, si ValueKey.value_language contient une langue mais que ValueKey.datatype n’est plus rdf:langString, la langue sera silencieusement effacée. De même, la liste de fonctionnalités d’aide à la saisie contenue dans ValueKey.geo_tools sera définitivement perdue si ValueKey.datatype n’est plus gsp:wktLiteral.

property delayed#

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

Notes

Réécriture de la propriété WidgetKey.delayed.

property do_not_save#

bool: Faut-il ne pas sauvegarder la valeur renseignée sur la clé ?

Notes

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property geo_tools#

list(str): Fonctionnalités d’aide à la saisie des géométries disponibles pour la clé.

Notes

Si la clé appartient à un groupe de valeurs, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Cette propriété vaudra toujours None si ValueKey.datatype n’est pas gsp:wktLiteral. Pour le type gsp:wktLiteral, il s’agira toujours d’une liste, quitte à ce qu’elle soit vide.

Seules les valeurs suivantes sont acceptées (les autres seront silencieusement éliminées) : 'show', 'point', 'linestring', 'rectangle', 'polygon', 'circle', 'bbox', 'centroid'.

Lorsque la clé est en lecture seule, soit quand la propriété ValueKey.is_read_only vaut True, la liste contiendra au plus “show”. C’est le getter de la propriété qui génère à la volée une liste tronquée à partir de la liste mémorisée, afin de préserver toutes les valeurs pour le cas où ValueKey.is_read_only reviendrait à False.

Il est permis de fournir en argument une liste de rdflib.term.Literal, qui seront alors automatiquement convertis.

property has_compute_button#

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

Notes

Réécriture de la propriété WidgetKey.has_compute_button.

Il n’y a jamais de bouton de calcul quand un bouton d’aide à la saisie des géométries est présent, car les deux seraient redondants.

property has_geo_button#

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

Notes

Réécriture de la propriété WidgetKey.has_geo_button.

Pour l’heure, de tels boutons ne sont prévus que pour les valeurs de type gsp:wktLiteral.

Au contraire de la plupart des autres boutons, des boutons d’aide à la saisie des géométries peuvent accompagner des clés en lecture seule (c’est-à-dire pour lesquelles la propriété ValueKey.is_read_only vaut True), car ils portent aussi des fonctionnalités de visualisation. C’est la propriété ValueKey.geo_tools qui se charge d’éliminer les fonctionnalités d’édition.

property has_label#

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

property has_language_button#

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

Notes

Réécriture de la propriété WidgetKey.has_language_button.

property has_source_button#

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

Notes

Réécriture de la propriété WidgetKey.has_source_button.

property has_unit_button#

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

Notes

Réécriture de la propriété WidgetKey.has_unit_button.

Pour l’heure, de tels boutons ne sont prévus que pour les valeurs de type xsd:duration.

property independant_label#

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

Notes

Réécriture de la propriété WidgetKey.independant_label.

Cette propriété vaudra toujours False pour une clé fantôme ou qui n’a pas d’étiquette. Par défaut, il est également considéré qu’elle vaut False.

Il n’est pas permis à une clé jumelle d’avoir une étiquette indépendante, car les deux jumelles doivent occuper exactement le même nombre de lignes de la grille, et le groupe de propriétés n’en occupe qu’une. La valeur sera mise silencieusement à False dans ce cas.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Modifier cette propriété emporte la mise en cohérence de la propriété WidgetKey.row pour toutes les clés du groupe parent.

property input_mask#

str: Masque de saisie à utiliser pour la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

is_empty(**kwargs)#

La clé est-elle vide ?

Renvoie simplement True si l’attribut :py:attr:ValueKey.value de la clé vaut None.

Notes

Cette méthode admet des paramètres arbitraires pour qu’elle puisse être appelée dans les mêmes conditions que les méthodes de même nom définies sur d’autres classes de clés. En pratique, elle n’en utilise aucun.

property is_long_text#

bool: La valeur de la clé est-elle un long texte ?

Notes

Cette propriété ne peut valoir True que pour une valeur textuelle (rdf:langString, xsd:string, gsp:wktLiteral). Toute tentative dans d’autres circonstances serait silencieusement ignorée.

Elle vaut toujours True pour le type gsp:wktLiteral.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Modifier cette propriété emporte la mise en cohérence de la propriété WidgetKey.rowspan.

property is_mandatory#

bool: Cette clé devra-t-elle obligatoirement recevoir une valeur ?

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property key_object#

str: Transcription littérale du type de clé.

property placeholder#

str: Texte de substitution à utiliser pour la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property rdfclass#

rdflib.term.URIRef: La classe RDF de la clé-valeur.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Si la clé a une jumelle dont la classe est différente de la valeur fournie, c’est celle de la jumelle de référence qui prévaudra, sauf si elle vaut None. Autrement dit, pour changer la classe d’un couple de jumelles, il faut cibler la jumelle de référence, sans quoi l’opération n’aura pas d’effet.

Modifier cette propriété emporte la mise en cohérence de la propriété ValueKey.datatype.

property regex_validator#

str: Expression rationnelle de validation à utiliser pour la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Dans le cas d’une clé prenant pour valeur des IRI libres (non issues d’un thésaurus) et pour laquelle aucune expression rationnelle n’est explicitement définie, y compris par héritage, la propriété renvoie une expression rationnelle permettant

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

Modifier cette propriété emporte la mise en cohérence de la propriété ValueKey.regex_validator_flags.

property regex_validator_flags#

str: Paramètres associés à l’expression rationnelle de validation de la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Toute tentative pour définir une valeur pour cette propriété alors que ValueKey.regex_validator vaut None sera silencieusement ignorée.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties.

property rowspan#

int: Nombre de lignes de la grille occupées par la clé.

Notes

rowspan vaudra toujours 0 pour une clé fantôme. Si aucune valeur n’est fournie, une valeur par défaut de 1 est appliquée. rowspan vaut toujours 1 quand is_long_text vaut False ou pour une clé qui a une jumelle.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties. De même pour des valeurs qui se trouveraient être fournies sous forme de chaîne de caractères.

Modifier cette propriété emporte la mise en cohérence de la propriété WidgetKey.row pour toutes les clés du groupe parent, via GroupKey.compute_rows().

property sources#

list(rdflib.term.URIRef): Liste de sources de la clé.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Modifier cette propriété emporte la mise en cohérence de la propriété ValueKey.value_source.

property transform#

{None, “email”, “phone”}: Nature de la transformation appliquée à l’objet.

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, la propriété du groupe parent est renvoyée. Tenter d’en modifier la valeur n’aura silencieusement aucun effet.

Il est permis de fournir des valeurs de type rdflib.term.Literal, qui seront alors automatiquement converties. Toute tentative pour définir une transformation autre que celles listées ci-avant sera silencieusement ignorée.

property units#

list(str): Renvoie la liste des unités possibles pour la clé.

Notes

Les valeurs dépendent du type - ValueKey.datatype. Pour l’heure, seul xsd:duration suppose des unités, la propriété renverra None pour les valeurs non littérales ou de tout autre type.

property value#

rdflib.term.URIRef or rdflib.term.Literal: Valeur portée par la clé (objet du triplet RDF).

property value_language#

str: Langue de la valeur portée par la clé.

Tant qu’aucune langue n’a été explicitement définie, et s’il y a lieu de renvoyer une langue, c’est la langue principale de saisie des métadonnées qui est renvoyée.

Notes

Si ValueKey.datatype n’est pas rdf:langString, cette propriété vaudra toujours None.

À l’initialisation, si aucune langue n’est fournie, elle sera déduite de ValueKey.value si une valeur a été spécifiée. À défaut, dans un groupe de traduction, la première langue de la liste des langues disponibles sera utilisée.

property value_source#

rdflib.term.URIRef: Renvoie la source de la valeur portée par la clé.

Notes

ValueKey.value_source vaut toujours None quand la clé n’admet pas de sources de vocabulaire contrôlé. Elle peut valoir None alors que ValueKey.sources n’est pas nul, si la source fournie n’était pas référencée. Sinon, toute valeur prise par cette propriété est nécessairement une des valeurs de la liste de l’attribut ValueKey.sources.

Si aucune source n’est fournie et qu’il n’y a pas non plus de valeur (ValueKey.value est None), la première source de ValueKey.sources est utilisée.

Modifier la source post initialisation a pour effet d’effacer la valeur mémorisée (ValueKey.value), puisque l’ancienne valeur est présumée issue de l’ancienne source.

property value_unit#

str: Unité de la valeur portée par la clé.

Notes

Si ValueKey.datatype n’est pas xsd:duration, cette propriété vaudra toujours None.

Cette propriété est déduite de ValueKey.value (et mise à jour quand ValueKey.value est modifié). À défaut, il s’agira de la première valeur de la liste ValueKey.units.

Modifier cette propriété ne change pas ValueKey.value. Autrement dit, l’unité effectivement incluse dans la valeur prévaut toujours sur cette propriété, puisque c’est elle qui sera conservée lors de la transformation en graphe par RootKey.build_metagraph().

class plume.rdf.widgetkey.WidgetKey(**kwargs)#

Bases : object

Clé d’un dictionnaire de widgets.

Parameters:
parentGroupKey

La clé parente. Ne peut pas être None, sauf dans le cas d’un objet de la classe RootKey (groupe racine).

is_ghostbool, default False

True si la clé ne doit pas être matérialisée. À noter que quelle que soit la valeur fournie à l’initialisation, une fille de clé fantôme est toujours un fantôme.

order_idxtuple of int, default (999,)

Indice(s) permettant le classement de la clé parmi ses soeurs dans un groupe de propriétés. Les clés de plus petits indices seront les premières. Cet argument sera ignoré si le groupe parent est un groupe de valeurs (GroupOfvaluesKey).

Avertissement

Cette classe ne doit pas être utilisée directement pour créer de nouvelles clés. On préfèrera toujours les classes filles qui héritent de ses méthodes et attributs :

Attributes:
uuidUUID

Identifiant unique de la clé.

Methods

clear_actionsbook(**kwargs)

Remplace le carnet d'actions par un carnet vierge.

copy([parent, empty])

Renvoie une copie de la clé.

kill()

Efface une clé de la mémoire de son parent.

reinitiate_shared_attributes()

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

unload_actionsbook([preserve_book])

Renvoie le carnet d'actions et le remplace par un carnet vierge.

update([exclude_none])

Met à jour les attributs de la clé selon les valeurs fournies.

width(kind)

Renvoie le nombre de colonnes occupées par l'élément.

actionsbook = <plume.rdf.actionsbook.ActionsBook object>#

plume.rdf.actionsbook.ActionsBook: Carnet d’actions, qui trace les actions à réaliser sur les widgets suite aux modifications des clés.

Le carnet d’actions trace les actions à réaliser sur les widgets au fil des modifications des clés. Pour le réinitialiser, on utilisera la méthode de classe clear_actionsbook(), et unload_actionsbook() pour le récupérer.

Notes

Cet attribut est partagé par toutes les instances de la classe.

property attr_to_copy#

dict: Attributs de la classe à prendre en compte pour la copie des clés.

Cette propriété est un dictionnaire dont les clés sont les noms des attributs contenant les informations nécessaires pour dupliquer la clé, et les valeurs sont des booléens qui indiquent si l’attribut est à prendre en compte lorsqu’il s’agit de créer une copie vide de la clé.

Certains attributs sont volontairement exclus de cette liste, car ils requièrent un traitement spécifique.

Voir aussi

WidgetKey.copy

Notes

Plusieurs classes filles de WidgetKey redéfinissent cette propriété, en complétant le dictionnaire avec leurs propres attributs.

property attr_to_update#

list(str): Liste des attributs et propriétés pouvant être redéfinis post initialisation.

Notes

Plusieurs des classes filles de WidgetKey redéfinissent cette propriété en ajoutant ou retirant des attributs à la liste.

classmethod clear_actionsbook(**kwargs)#

Remplace le carnet d’actions par un carnet vierge.

Parameters:
**kwargsdict, optional

Paramètres à passer à la fonction d’initialisation de la classe plume.rdf.actionsbook.ActionsBook.

property compute_button_placement#

tuple(int): Placement du bouton de calcul dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme ou qui n’a pas de bouton de calcul.

Notes

Le bouton de calcul est placé à droite du widget principal et des éventuels boutons de sélection de l’unité, bouton de sélection la langue et bouton de sélection de la source et bouton d’aide à la saisie des géométries (en supposant qu’ils puissent apparaître ensemble).

copy(parent=None, empty=True)#

Renvoie une copie de la clé.

Parameters:
parentGroupKey, optional

La clé parente. Si elle n’est pas spécifiée, il sera considéré que le parent de la copie est le même que celui de l’original.

emptybool, default True

Crée-t-on une copie vide (cas d’un nouvel enregistrement dans un groupe de valeurs ou de traduction) - True - ou souhaite-t-on dupliquer une branche de l’arbre de clés en préservant son contenu - False ?

Returns:
WidgetKey
Raises:
ForbiddenOperation

Lorsque la méthode est explicitement appliquée à une clé fantôme. Il est possible de copier des branches contenant des fantômes, ceux-ci ne seront simplement pas copiés.

Notes

Cette méthode est complétée sur la classe GroupKey pour copier également la branche descendant de la clé, sur GroupOfValuesKey pour les boutons, et sur GroupOfPropertiesKey et ValueKey pour la jumelle éventuelle. Elle utilise la propriété attr_to_copy, qui liste les attributs non calculables de chaque classe.

property delayed#

bool: La valeur de la clé sera-t-elle remplie ultérieurement ?

Voir aussi

ValueKey.delayed

Réécriture de la propriété pour une clé-valeur.

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-valeur.

property generation#

int: Génération à laquelle appartient la clé.

0 pour la clé-racine, 1 pour ses enfants, etc.

property geo_button_placement#

tuple(int): Placement du bouton d’aide à la saisie des géométries dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme ou qui n’a pas de bouton de sélection d’aide à la saisie des géométries.

Notes

Le bouton d’aide à la saisie des géométries est placé à droite du widget principal et des éventuels boutons de sélection de l’unité, bouton de sélection la langue et bouton de sélection de la source (lesquels ne peuvent en pratique jamais apparaître en même temps qu’un bouton d’aide à la saisie des géométries).

property has_compute_button#

bool: Un bouton annexe de calcul de la métadonnée doit-il être créé pour la clé ?

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-valeur (ValueKey) ou un groupe de valeurs.

property has_geo_button#

bool: Un bouton annexe d’aide à la saisie des géométries doit-il être créé pour la clé ?

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-valeur (ValueKey).

property has_label#

bool: Une étiquette non intégrée au widget principal doit-elle être créée pour la clé ?

Voir aussi

ValueKey.has_label

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-valeur (ValueKey).

property has_language_button#

bool: Un bouton annexe de sélection de la langue doit-il être créé pour la clé ?

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-valeur (ValueKey).

property has_minus_button#

bool: Un bouton moins est-il associé à la clé ?

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-objet (ObjectKey).

property has_source_button#

bool: Un bouton annexe de sélection de la source doit-il être créé pour la clé ?

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-objet (ObjectKey).

property has_unit_button#

bool: Un bouton annexe de sélection de l’unité doit-il être créé pour la clé ?

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-valeur (ValueKey).

property independant_label#

bool: L’étiquette de la clé occupe-t-elle sa propre ligne de la grille ?

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests, mais elle vaut toujours False quand la clé n’est pas une clé-valeur (ValueKey).

property is_ghost#

bool: La clé est-elle une clé fantôme non matérialisée ?

Voir aussi

GroupOfPropertiesKey.is_ghost

Réécriture de la propriété pour les groupes de propriétés.

GroupOfValuesKey.is_ghost

Réécriture de la propriété pour les groupes de valeurs.

TabKey.is_ghost

Réécriture de la propriété pour les onglets.

Notes

Cette propriété n’est plus modifiable une fois la clé initialisée, sauf pour les certains groupes dont, entre autres conditions, tous les enfants sont des fantômes.

is_ghost définit la valeur booléenne de la clé : bool(widgetkey) vaut False si widgetkey est une clé fantôme.

property is_hidden#

bool: La clé est-elle masquée ?

Cette propriété, qui synthétise is_ghost, is_hidden_b et is_hidden_m, vaut True pour une clé masquée ou fantôme. Elle permet de filtrer les clés non matérialisées ou non visibles.

Notes

Cette propriété est en lecture seule.

property is_hidden_b#

bool: La clé est-elle un bouton masqué ?

Voir aussi

PlusButtonKey.is_hidden_b

Réécriture de la propriété pour un bouton plus.

TranslationButtonKey.is_hidden_b

Réécriture de la propriété pour un bouton de traduction.

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey pour simplifier les tests de visibilité, mais elle vaut toujours False quand la clé n’est pas un bouton.

property is_hidden_m#

bool: La clé appartient-elle à une branche masquée ?

Cette propriété héréditaire vaut True pour la clé présentement masquée d’un couple de jumelles, ou toute clé descendant de celle-ci (branche masquée).

Voir aussi

ObjectKey.is_hidden_m

Réécriture de la propriété pour les clés-objets.

Notes

Cette propriété est en lecture seule. Le setter est défini sur la classe ObjectKey.

property is_single_child#

bool: La clé est-elle un enfant unique ?

Notes

Propriété calculée par GroupOfValuesKey.compute_single_children(), accessible uniquement en lecture.

kill()#

Efface une clé de la mémoire de son parent.

Notes

Cette méthode n’est pas appliquée récursivement aux enfants de la clé effacée. Elle coupe simplement la branche de l’arbre. Pour autant tous les descendants de la clé sont enregistrés la liste plume.rdf.actionsbook.ActionsBook.drop du carnet d’actions.

La méthode est sans effet sur les clés-racine (RootKey).

property label_placement#

tuple(int): Placement de l’étiquette dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme, qui n’a pas d’étiquette ou dont l’étiquette est intégrée au widget principal.

langlist = ['fr', 'en']#

list(str): Liste des langues autorisées.

Avertissement

Cet attribut est partagé par toutes les instances de la classe. Il ne doit sous aucun prétexte être modifié après l’initialisation de l’arbre de clés.

property language_button_placement#

tuple(int): Placement du bouton de sélection de la langue dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme ou qui n’a pas de bouton de sélection de la langue.

Notes

Le bouton de sélection de la source est placé à droite du widget principal et de l’éventuel bouton de sélection de la langue. En pratique, les boutons de sélection d’unité et de sélection de la langue étant liés à des types différents, ils n’apparaissent jamais simultanément et le bouton de sélection de la langue sera placé immédiatement à droite du widget principal.

property main_language#

Langue principale de saisie des métadonnées.

Cette propriété est commune à toutes les clés. Concrètement, main_language est simplement la première valeur de langlist.

Returns:
str
Raises:
MissingParameter

Si langlist ne contient pas au moins une valeur.

max_rowspan = 30#

int: Nombre maximum de lignes pouvant être occupées par un widget.

Avertissement

Cet attribut est partagé par toutes les instances de la classe. Il ne doit sous aucun prétexte être modifié après l’initialisation de l’arbre de clés.

property minus_button_placement#

tuple(int): Placement du bouton moins dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme ou qui n’a pas de bouton moins.

Notes

Le bouton moins est placé à droite du widget principal et des éventuels boutons de sélection de l’unité, de sélection de la langue, de sélection de la source, d’aide à la saisie des géométries et de calcul.

no_computation = False#

bool: Si True, empêche l’exécution immédiate de certaines opérations.

Les opérations concernées sont les plus coûteuses en temps de calcul : le calcul des lignes et le calcul des langues disponibles dans les groupes de traduction. Il peut être préférable de réaliser ces opérations après avoir initialisé toutes les clés du groupe, plutôt qu’une fois pour chaque clé.

Notes

Cet attribut est partagé par toutes les instances de la classe.

property order_idx#

tuple(int): Indice de classement de la clé parmi ses soeurs.

Voir aussi

ObjectKey.order_idx

Notes

Si la clé appartient à un groupe de valeurs ou de traduction, modifier la valeur de cette propriété n’aura silencieusement aucun effet, car il n’y a pas de notion d’ordre dans ces groupes. WidgetKey.order_idx y vaut toujours None. Dans le cas contraire, None est silencieusement remplacé par (9999,), de manière ce que les clés sans indice soient classées après les autres.

Modifier cette propriété emporte la mise en cohérence de la propriété WidgetKey.row pour toutes les clés du groupe parent.

property parent#

GroupKey: Clé parente.

Raises:
MissingParameter

Quand aucune clé n’est fournie pour le parent.

ForbiddenOperation

En cas de tentative de modification du parent post initialisation de la clé.

ForbiddenOperation

Si la classe de l’enfant n’est pas cohérente avec celle du parent.

ForbiddenOperation

En cas de tentative pour mêler des onglets et des clés d’autres types dans un même groupe.

Notes

Cette propriété n’est plus modifiable après l’initialisation. Pour reproduire la clé avec un autre parent, on utilisera la méthode WidgetKey.copy(). WidgetKey.kill() permet d’effacer la clé d’origine si besoin.

property path#

rdflib.paths.SequencePath: Chemin de la clé.

Notes

Cette propriété est en lecture seule. Elle est définie sur la classe WidgetKey par commodité, mais elle vaut None si la clé n’appartient pas aux classes ObjectKey ou GroupOfValuesKey.

property placement#

tuple(int): Placement du widget principal de la clé dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme, un onglet ou une clé-racine.

classmethod reinitiate_shared_attributes()#

Rend leur valeur par défaut à toutes les variables partagées par les instances de la classe.

property row#

int: Ligne de la clé dans la grille.

Vaut toujours None pour une clé fantôme.

Notes

Propriété calculée par GroupKey.compute_rows(), accessible uniquement en lecture.

property rowspan#

int: Nombre de lignes de la grille occupées par la clé.

Notes

Cette propriété est en lecture seule. Dans le cas général, elle vaut 1 si la clé n’est pas un fantôme (cf. WidgetKey.is_ghost) et 0 sinon. Elle ne peut être modifiée et prendre d’autres valeurs que pour les clés-valeurs.

property source_button_placement#

tuple(int): Placement du bouton de sélection de la source dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme ou qui n’a pas de bouton de sélection de la source.

Notes

Le bouton de sélection de la source est placé à droite du widget principal et des éventuels boutons de sélection de l’unité et bouton de sélection la langue (lesquels ne peuvent en pratique jamais apparaître en même temps qu’un bouton de sélection de la source).

property tree_idx#

tuple: Représentation du placement de la clé dans l’arbre.

property unit_button_placement#

tuple(int): Placement du bouton de sélection de l’unité dans la grille, le cas échéant.

Cette propriété est un tuple formé de quatre éléments :

  • [0] est l’indice de ligne.

  • [1] est l’indice de colonne.

  • [2] est le nombre de lignes occupées.

  • [3] est le nombre de colonnes occupées.

Elle vaut None pour une clé fantôme ou qui n’a pas de bouton de sélection d’unité.

Notes

Le bouton de sélection d’unité est placé immédiatement à droite du widget principal.

classmethod unload_actionsbook(preserve_book=False)#

Renvoie le carnet d’actions et le remplace par un carnet vierge.

Parameters:
preserve_bookbool, default False

Si True le carnet d’actions n’est pas réinitialisé après récupération de son contenu.

Returns:
plume.rdf.actionsbook.ActionsBook
update(exclude_none=False, **kwargs)#

Met à jour les attributs de la clé selon les valeurs fournies.

Parameters:
exclude_nonebool

Si True, les attributs ne seront mis à jour que si la nouvelle valeur n’est pas None.

**kwargsdict

Les attributs à mettre à jour. Si un attribut n’est pas défini pour la classe de la clé ou s’il n’est pas modifiable, il sera silencieusement ignoré.

classmethod width(kind)#

Renvoie le nombre de colonnes occupées par l’élément.

Parameters:
kindstr

Une chaîne de caractère correspondant au nom de l’élément :

  • “grid” pour la largeur totale de la grille.

  • “label” pour une étiquette positionnée sur la même ligne que le widget de saisie. La largeur n’est pas fixe pour les étiquettes indépendantes (quand WidgetKey.independant_label vaut True), mais calée sur le nombre de colonnes occupées par le widget de saisie.

  • “unit button” pour un bouton de sélection de l’unité.

  • “language button” pour un bouton de sélection de la langue.

  • “source button” pour un bouton de sélection de la source.

  • “geo button” pour un bouton d’aide à la saisie des géométries.

  • “compute button” pour un bouton de calcul.

  • “minus button” pour un bouton moins.

  • “plus button” pour un bouton plus.

Returns:
int
with_compute_buttons = True#

bool: Faut-il créer des boutons de calcul des métadonnées ?

Mettre cet attribut à False permet d’inhiber la création des boutons de calcul, s’il y avait par ailleurs lieu d’en créer.

Avertissement

Cet attribut est partagé par toutes les instances de la classe. Il ne doit sous aucun prétexte être modifié après l’initialisation de l’arbre de clés.

with_geo_buttons = True#

bool: Faut-il créer des boutons d’aide à la saisie des géométries ?

Mettre cet attribut à False permet d’inhiber la création des boutons d’aide à la saisie des géométries, s’il y avait par ailleurs lieu d’en créer.

Avertissement

Cet attribut est partagé par toutes les instances de la classe. Il ne doit sous aucun prétexte être modifié après l’initialisation de l’arbre de clés.

with_language_buttons = True#

bool: Faut-il créer des boutons de sélection de la langue ?

Mettre cet attribut à False permet d’inhiber la création des boutons de choix de la langue, s’il y avait par ailleurs lieu d’en créer.

Avertissement

Cet attribut est partagé par toutes les instances de la classe. Il ne doit sous aucun prétexte être modifié après l’initialisation de l’arbre de clés.

with_source_buttons = True#

bool: Faut-il créer des boutons de sélection de la source ?

Mettre cet attribut à False permet d’inhiber la création des boutons de choix de la source, s’il y avait par ailleurs lieu d’en créer.

Avertissement

Cet attribut est partagé par toutes les instances de la classe. Il ne doit sous aucun prétexte être modifié après l’initialisation de l’arbre de clés.

with_unit_buttons = True#

bool: Faut-il créer des boutons de sélection d’unité ?

Mettre cet attribut à False permet d’inhiber la création des boutons de choix de l’unité, s’il y avait par ailleurs lieu d’en créer.

Avertissement

Cet attribut est partagé par toutes les instances de la classe. Il ne doit sous aucun prétexte être modifié après l’initialisation de l’arbre de clés.