Classe EnumField

La classe EnumField fournit les définitions des valeurs enum. Les champs enum peuvent présenter des valeurs par défaut retardées tant que le type d'enum associé n'est pas résolu. Cela est nécessaire pour reconnaître certaines références circulaires. Exemple :

from protorpc import messages

class Message1(messages.Message):

    class Color(messages.Enum):
        RED = 1
        GREEN = 2
        BLUE = 3

    # Validate this field's default value when default is accessed.
    animal = messages.EnumField('Message2.Animal', 1, default='HORSE')

class Message2(messages.Message):

    class Animal(messages.Enum):
        DOG = 1
        CAT = 2
        HORSE = 3

    # This fields default value will be validated right away since Color is
    # already fully resolved.
    color = messages.EnumField(Message1.Color, 1, default='RED')

La classe EnumField est fournie par le module protorpc.messages.

Constructeur

Le constructeur de la classe EnumField est défini comme suit :

class EnumField(enum_type, number, required, repeated, variant, default)

Fournit une définition de champ pour les valeurs enum.

Arguments
enum_type
Type d'enum d'un champ. Doit être une sous-classe d'Enum.
nombre
Numéro du champ. Doit être unique par classe de message.
obligatoire
Indique si le champ est obligatoire ou non. Exclusion mutuelle avec l'argument repeated. N'indiquez pas repeated si vous utilisez required.
repeated
Indique si le champ est répété ou non. Exclusion mutuelle avec l'argument required. N'indiquez pas required si vous utilisez repeated.
variant
Précise davantage le type du champ. Certains types de champs sont plus limités en fonction du format de transmission sous-jacent. Il est recommandé d'utiliser la valeur par défaut, mais les développeurs peuvent utiliser ce champ pour définir un champ d'entier de 32 bits au lieu de 64 bits par défaut.
default
Valeur par défaut à utiliser pour le champ si elle est introuvable dans le flux.

Déclenche une erreur FieldDefinitionError lorsque enum_type n'est pas valide.

Propriétés des classes

La classe EnumField fournit les propriétés de classes suivantes :

type()
Type d'enum utilisé pour le champ.
default()
Valeur par défaut du champ enum. Si la valeur par défaut n'est pas résolue, utilise le type Enum comme valeur par défaut.

Méthodes des instances

Les instances EnumField utilisent la méthode suivante :

validate_default_element(value)
Valide l'élément par défaut du champ enum. Les champs enum autorisent la résolution rétardée des valeurs par défaut lorsque le type du champ n'a pas été résolu. La valeur par défaut d'un champ peut être une chaîne ou un entier. Si le type enum du champ a été résolu, la valeur par défaut est validée par rapport à ce type.