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.
- 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 especifiquesrepeated
si usasrequired
. - repeated=False
- Indica si este campo se repite o no. Es mutuamente exclusivo con el argumento
required
. No especifiquesrequired=True
si también usasrepeated=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:
- InvalidVariantError cuando se proporciona una variante no válida para el campo.
- InvalidDefaultError cuando se proporciona un valor predeterminado no válido para el campo.
- FieldDefinitionError cuando se proporciona un número no válido o se usan campos mutuamente excluyentes.
- InvalidNumberError cuando el número de campo está fuera del intervalo o reservado.
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.