La classe Field è la classe base per tutti i campi definiti nei messaggi. Questa classe non può essere estesa dagli sviluppatori.
Field è fornito dal modulo protorpc.messages.
Costruttore
Il costruttore della classe Field è definito come segue:
- class Field (message_type, number, [required=False | repeated=False], variant=None, default=None)
-
Inizializza un'istanza di Field. Ogni sottoclasse di Field deve definire quanto segue:
VARIANTS- Insieme di tipi di varianti accettati da questo campo.
DEFAULT_VARIANT- Tipo di variante predefinito se non specificato nel costruttore.
- number
- Numero del campo. Deve essere univoco per classe di messaggi.
- required=False
- Indica se questo campo è obbligatorio o meno. Si esclude a vicenda con l'argomento
repeated; non specificarerepeatedse utilizzirequired. - repeated=False
- Indica se questo campo è ripetuto o meno. Si esclude a vicenda con l'argomento
required; non specificarerequired=Truese utilizzi ancherepeated=True. - variant=None
- Fornisce informazioni di codifica aggiuntive utilizzate principalmente dai buffer di protocollo. Queste varianti corrispondono ai valori di Tipo in
descriptor.proto. La best practice è utilizzare i valori predefiniti, ma puoi specificare i valori come 32 bit, 64 bit, senza segno e così via. - default=None
- Valore predefinito per il campo se non viene trovato nella richiesta sottostante.
Nota:i valori predefiniti non sono consentiti per i campi ripetuti o i campi dei messaggi.
Genera le seguenti eccezioni:
- InvalidVariantError quando viene fornita una variante non valida per il campo.
- InvalidDefaultError quando viene fornito un valore predefinito non valido per il campo.
- FieldDefinitionError quando viene fornito un numero non valido o vengono utilizzati campi reciprocamente esclusivi.
- InvalidNumberError quando il numero del campo non rientra nell'intervallo o è riservato.
Proprietà della classe
La classe FieldList ha una proprietà:
- default()
- Il valore predefinito del campo.
Metodi dell'istanza
Le istanze FieldList hanno i seguenti metodi:
- validate(value)
- Valida un valore assegnato a un campo.
Argomenti
- valore
- Il valore da valutare.
Genera un ValidationError se il valore non è un tipo previsto.
- validate_default_element(value)
-
Valida un valore assegnato a un campo predefinito. Specifico per un singolo elemento.
Alcuni campi potrebbero consentire la risoluzione ritardata dei tipi predefiniti necessari in caso di riferimenti a definizioni circolari. In questo caso, il valore predefinito potrebbe essere un segnaposto che viene risolto quando necessario dopo che sono state definite tutte le classi di messaggi.
Argomenti- valore
- Valore predefinito da convalidare.
Genera un ValidationError se il valore non è un tipo previsto.
- validate_default(value)
-
Valida il valore predefinito di un campo.
Argomenti- valore
- Valore predefinito da convalidare.
Genera un ValidationError se il valore non è un tipo previsto.
- message_definition()
-
Recupera una definizione del messaggio che contiene questa definizione del campo. Restituisce una definizione per l'oggetto Message che contiene il campo. Restituisce None se Field è definito al di fuori di una classe di messaggio.
Genera un ValidationError se il valore non è un tipo previsto.