La clase Field

La clase Field es la clase básica para todos los campos definidos en mensajes. Los desarrolladores no pueden ampliar esta clase.

El módulo protorpc.messages proporciona Field.

Constructor

El constructor de la clase Field se define de la siguiente manera:

clase Campo (message_type, número, [obligatorio=Falso | repetido=Falso], variante=Ninguna, predeterminado=Ninguna)

Inicializa una instancia de Field. Cada subclase de Field se debe definir de esta forma:

VARIANTS
Conjunto de tipos de variantes que acepte ese campo.
DEFAULT_VARIANT
Tipo de variante predeterminada si no se especifica en el constructor.
Argumentos
número
Número del campo. Debe ser único por cada clase de mensaje.
required=False
Si el campo es obligatorio o no. Es mutuamente exclusivo con el argumento repeated; no especifiques repeated si usas required.
repeated=False
Si el campo se repite o no. Es mutuamente exclusivo con el argumento required; no especifiques required=True si usas repeated=True.
variant=None
Proporciona información de codificación adicional que usan principalmente los búferes de protocolo. Estas variantes se asignan a los valores de tipo en descriptor.proto. La práctica recomendada es usar valores predeterminados, pero puedes especificar valores como 32 bits, 64 bits, sin firmar, etcétera.
default=None
No se encontró el valor predeterminado del campo en la solicitud subyacente.

Nota: No se permiten valores predeterminados para los mensajes o campos repetidos.

Se generan las excepciones siguientes:

Propiedad de clase

La clase FieldList tiene una propiedad:

predeterminada()
El valor predeterminado para el campo.

Métodos de instancia

Las instancias de FieldList tienen los métodos siguientes:

validate(value)
Valida un valor asignado a un campo. Argumentos
value
El valor que se evaluará.

Genera un ValidationError si el valor no es un tipo esperado.

validate_default_element(value)

Valida un valor asignado a un campo predeterminado. Específico para un solo elemento.

Algunos campos pueden permitir una resolución retrasada de tipos predeterminados necesarios en caso de referencias de definición circular. En este caso, el valor predeterminado podría ser un marcador de posición que se resuelve cuando es necesario después de que se definan las clases de mensaje.

Argumentos
value
Valor predeterminado que se debe validar.

Genera un ValidationError si el valor no es un tipo esperado.

validate_default(value)

Valida un valor predeterminado del campo.

Argumentos
value
Valor predeterminado que se debe validar.

Genera un ValidationError si el valor no es un tipo esperado.

message_definition()

Obtiene una definición de mensaje que contiene esta definición de Field. Muestra una definición para el objeto Mensaje que contiene el Field. Devuelve None si Field está definido fuera de una clase de mensaje.

Genera un ValidationError si el valor no es un tipo esperado.