Clase Field

La clase Field constituye la clase base de todos los campos definidos en los mensajes. Los desarrolladores no pueden ampliar esta clase.

Field lo proporciona el módulo protorpc.messages.

Constructor

El constructor de la clase Field se define a continuación:

class  Field (message_type, number, [required=False | repeated=False], variant=None, default=None)

Inicializa una instancia de Field. En cada subclase de Field debe definirse lo siguiente:

VARIANTS
Conjunto de tipos de variantes aceptados por ese campo.
DEFAULT_VARIANT
Tipo de variante predeterminado si no se especifica en el constructor.
Argumentos
number
Número del campo. Debe ser exclusivo en cada clase de mensaje.
required=False
Indica si este campo es obligatorio o no. Es mutuamente exclusivo con el argumento repeated. No especifiques repeated si usas required.
repeated=False
Indica si este campo se repite o no. Es mutuamente exclusivo con el argumento required. No especifiques required=True si también usas repeated=True.
variant=None
Proporciona información de codificación adicional que utilizan principalmente los búferes de protocolo. Estas variantes se corresponden con los valores de Type de descriptor.proto. Lo más recomendable es usar los valores predeterminados, pero puedes especificar valores de 32 o 64 bits, sin signo, etc.
default=None
Valor predeterminado del campo si no se encuentra en la solicitud subyacente.

Nota: No se permiten valores predeterminados en los campos repetidos ni en los campos de mensaje.

Genera las siguientes excepciones:

Clase Property

La clase FieldList tiene una propiedad:

default()
El valor predeterminado del campo.

Métodos de instancia

Las instancias de FieldList tienen los siguientes métodos:

validate(value)
Valida un valor asignado a un campo. Argumentos
value
Valor que se va a evaluar.

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

validate_default_element(value)

Valida un valor asignado a un campo predeterminado y es exclusivo para un único elemento.

Algunos campos permiten una resolución retrasada de los tipos predeterminados necesarios en caso de que haya referencias de definición circulares. En ese caso, el valor predeterminado puede ser un marcador que se resuelva cuando sea necesario después de que se definan todas las clases de mensaje.

Argumentos
value
Valor predeterminado que se va a validar.

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

validate_default(value)

Valida el valor predeterminado de un campo.

Argumentos
value
Valor predeterminado que se va a validar.

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

message_definition()

Obtiene una definición de mensaje que contiene esta definición de Field. Devuelve una definición del objeto Message que contiene el campo. Devuelve el valor None si se define Field fuera de la clase de un mensaje.

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