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.
- number
- 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 especifiquesrepeated
si usasrequired
. - repeated=False
- Si el campo se repite o no. Es mutuamente exclusivo con el argumento
required
; no especifiquesrequired=True
si usasrepeated=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:
- InvalidVariantError cuando se aprovisiona una variante de campo no válida.
- InvalidDefaultError cuando se aprovisiona un valor predeterminado de campo no válido.
- FieldDefinitionError cuando se aprovisiona un número no válido o se usan campos mutuamente exclusivos.
- InvalidNumberError cuando el número de campo está fuera de rango o reservado.
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.