Fonctions du module de messages

Le package protorpc.messages fournit la fonction utilitaire de position suivante :

find_definition(name, relative_to=None)

Recherche une définition par nom dans l'espace module.

L'algorithme recherche des définitions par nom en fonction de la définition d'un message ou par nom complet. Si aucune définition relative au paramètre relative_to n'est trouvée, l'algorithme effectue une recherche dans le conteneur de relative_to. Si relative_to est un message imbriqué, l'algorithme recherche message_definition(). En cas d'absence de message_definition(), il recherche son module. Si relative_to est un module, l'algorithme recherche le module qui le contient et effectue une recherche relative à celui-ci. Si le module est un module de premier niveau, l'algorithme recherche le message par nom complet. Si toujours aucun message n'est trouvé, la recherche échoue, et la méthode génère une erreur DefinitionNotFoundError.

Par exemple, lorsque vous recherchez une définition quelconque foo.bar.ADefinition relative à une définition de message réelle abc.xyz.SomeMessage, procédez comme suit :

find_definition('foo.bar.ADefinition', SomeMessage)

Les arguments de cette méthode suivent un modèle semblable à celui de la recherche de noms complets :

abc.xyz.SomeMessage. foo.bar.ADefinition
abc.xyz. foo.bar.ADefinition
abc. foo.bar.ADefinition
foo.bar.ADefinition

Lors de la résolution du nom par rapport aux modules et définitions de messages, l'algorithme recherche des messages ou sous-modules trouvés dans ce chemin, en ignorant les valeurs autres que celles liées aux messages.

Un nom commençant par '.' est considéré comme étant un nom complet. L'algorithme de recherche commence la recherche à partir du package de niveau supérieur. Par exemple, prenons deux types de messages :

abc.xyz.SomeMessage
xyz.SomeMessage

La recherche de .xyz.SomeMessage relatif à abc résout xyz.SomeMessage, et non abc.xyz.SomeMessage. Pour ce type de nom, le paramètre "relative_to" est effectivement ignoré et toujours défini sur "None".

Pour plus d'informations sur la résolution du nom du package, consultez le spécificateur de package Protocol Buffers.

Arguments

name
Nom de la définition à rechercher. Peut être complet ou relatif.
relative_to
Recherche une définition par rapport au module ou à la définition de message. Si défini sur "None", lance une recherche de noms complets.

Renvoie une définition de classe Enum ou Message associée au nom.

Génère une erreur DefinitionNotFoundError si aucune définition n'est trouvée dans un chemin de recherche.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Python