Field クラス

Field クラスは、メッセージに対して定義するすべてのフィールドの基本クラスです。開発者はこのクラスを拡張できません。

Fieldprotorpc.messages モジュールによって提供されます。

コンストラクタ

Field クラスのコンストラクタは次のように定義されます。

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

Field インスタンスを初期化します。Field の各サブクラスでは、次の項目を定義する必要があります:

VARIANTS
該当のフィールドで使用可能な一連のバリアント型。
DEFAULT_VARIANT
コンストラクタで指定されていない場合は、デフォルトのバリアント型。
引数
number
フィールドの番号。メッセージ クラスごとに一意でなければなりません。
required=False
このフィールドが必須かどうかを指定します。repeated 引数と同時に指定することはできません。required を使用する場合は repeated を指定しないでください。
repeated=False
このフィールドが反復フィールドかどうかを指定します。required 引数と同時に指定することはできません。repeated=True も使用する場合、required=True は指定しないでください。
variant=None
主にプロトコル バッファによって使用される追加のエンコード情報を指定します。これらのバリアントは、descriptor.proto で Type 値にマッピングされます。デフォルト値を使用することをおすすめしますが、32 ビット、64 ビット、符号なしなどの値を指定できます。
default=None
基となるリクエストに値が見つからない場合の、フィールドのデフォルト値。

注: デフォルト値は、反復フィールドやメッセージ フィールドには使用できません。

次の例外を送出します:

  • InvalidVariantError: フィールドに無効なバリアントが指定された場合
  • InvalidDefaultError: フィールドに無効なデフォルト値が指定された場合
  • FieldDefinitionError: 無効な番号が指定された場合、または同時に指定できないフィールドが使用されている場合
  • InvalidNumberError: フィールド番号が範囲外であるか、予約済みである場合

クラスのプロパティ

FieldList クラスにはプロパティが 1 つあります。

default()
フィールドのデフォルト値。

インスタンス メソッド

FieldList インスタンスには、次のメソッドがあります。

validate(value)
フィールドに割り当てられた値を検証します。 引数
value
検証する値。

値が想定される型でない場合、ValidationError を送出します。

validate_default_element(value)

デフォルト フィールドに割り当てられた値を検証します。要素ごとに固有です。

一部のフィールドでは、循環定義の参照の場合に必要な、デフォルト型の遅延解決が可能です。この場合、デフォルト値をプレースホルダとすることができ、すべてのメッセージ クラスが定義された後に必要に応じて解決されます。

引数
value
検証するデフォルト値。

値が想定される型でない場合、ValidationError を送出します。

validate_default(value)

フィールドのデフォルト値を検証します。

引数
value
検証するデフォルト値。

値が想定される型でない場合、ValidationError を送出します。

message_definition()

この Field 定義を含むメッセージ定義を取得します。Field を含む Message オブジェクトの定義を返します。Field がメッセージ クラスの外部で定義されている場合は、None を返します。

値が想定される型でない場合、ValidationError を送出します。