A classe Field é a classe base para todos os campos definidos nas mensagens. Esta classe não pode ser expandida por programadores.
O Field
é fornecido pelo módulo protorpc.messages
.
Construtor
O construtor da classe Field é definido da seguinte forma:
- class Field (message_type, number, [required=False | repeated=False], variant=None, default=None)
-
Inicializa uma instância Field. Cada subclasse de Field tem de definir o seguinte:
VARIANTS
- Conjunto de tipos de variantes aceites por esse campo.
DEFAULT_VARIANT
- Tipo de variante predefinido se não for especificado no construtor.
- number
- Número do campo. Tem de ser único por classe de mensagem.
- required=False
- Se este campo é obrigatório ou não. Exclusivo com o argumento
repeated
; não especifiquerepeated
se usarrequired
. - repeated=Falso
- Se este campo é repetido ou não. Exclusivo com o argumento
required
; não especifiquerequired=True
se também usarrepeated=True
. - variant=None
- Fornece informações de codificação adicionais que são usadas principalmente por buffers de protocolo. Estas variantes são mapeadas para os valores de tipo em
descriptor.proto
. A prática recomendada é usar os valores predefinidos, mas pode especificar valores como 32 bits, 64 bits, não assinados, etc. - default=Nenhum
- Valor predefinido para o campo se não for encontrado no pedido subjacente.
Nota: os valores predefinidos não são permitidos para campos repetidos nem campos de mensagens.
Gera as seguintes exceções:
- InvalidVariantError quando é fornecida uma variante inválida para o campo.
- InvalidDefaultError quando é fornecido um valor predefinido inválido para o campo.
- FieldDefinitionError quando é fornecido um número inválido ou são usados campos mutuamente exclusivos.
- InvalidNumberError quando o número do campo está fora do intervalo ou reservado.
Propriedade da classe
A classe FieldList tem uma propriedade:
- default()
- O valor predefinido do campo.
Métodos de instância
As instâncias de FieldList têm os seguintes métodos:
- validate(value)
- Valida um valor atribuído a um campo.
Argumentos
- valor
- O valor a avaliar.
Gera um ValidationError se o valor não for um tipo esperado.
- validate_default_element(value)
-
Valida um valor atribuído a um campo predefinido. Específico de um único elemento.
Alguns campos podem permitir a resolução atrasada de tipos predefinidos necessários no caso de referências de definições circulares. Neste caso, o valor predefinido pode ser um marcador de posição que é resolvido quando necessário depois de todas as classes de mensagens serem definidas.
Argumentos- valor
- Valor predefinido a validar.
Gera um ValidationError se o valor não for um tipo esperado.
- validate_default(value)
-
Valida o valor predefinido de um campo.
Argumentos- valor
- Valor predefinido a validar.
Gera um ValidationError se o valor não for um tipo esperado.
- message_definition()
-
Obtém uma definição de mensagem que contém esta definição de campo. Devolve uma definição para o objeto Message que contém o campo. Devolve None se Field estiver definido fora de uma classe de mensagem.
Gera um ValidationError se o valor não for um tipo esperado.