@@ -349,32 +349,33 @@ def _get_value_from_value_pb(value_pb):
349
349
:returns: The value provided by the Protobuf.
350
350
"""
351
351
result = None
352
- # Message field (google.protobuf.Timestamp)
353
- if value_pb .HasField ('timestamp_value' ):
352
+ value_type = value_pb .WhichOneof ('value_type' )
353
+
354
+ if value_type == 'timestamp_value' :
354
355
result = _pb_timestamp_to_datetime (value_pb .timestamp_value )
355
356
356
- elif value_pb . HasField ( 'key_value' ): # Message field (Key)
357
+ elif value_type == 'key_value' :
357
358
result = key_from_protobuf (value_pb .key_value )
358
359
359
- elif value_pb . HasField ( 'boolean_value' ): # Simple field (bool)
360
+ elif value_type == 'boolean_value' :
360
361
result = value_pb .boolean_value
361
362
362
- elif value_pb . HasField ( 'double_value' ): # Simple field (double)
363
+ elif value_type == 'double_value' :
363
364
result = value_pb .double_value
364
365
365
- elif value_pb . HasField ( 'integer_value' ): # Simple field (int64)
366
+ elif value_type == 'integer_value' :
366
367
result = value_pb .integer_value
367
368
368
- elif value_pb . HasField ( 'string_value' ): # Simple field (string)
369
+ elif value_type == 'string_value' :
369
370
result = value_pb .string_value
370
371
371
- elif value_pb . HasField ( 'blob_value' ): # Simple field (bytes)
372
+ elif value_type == 'blob_value' :
372
373
result = value_pb .blob_value
373
374
374
- elif value_pb . HasField ( 'entity_value' ): # Message field (Entity)
375
+ elif value_type == 'entity_value' :
375
376
result = entity_from_protobuf (value_pb .entity_value )
376
377
377
- elif value_pb . array_value . values :
378
+ elif value_type == ' array_value' :
378
379
result = [_get_value_from_value_pb (value )
379
380
for value in value_pb .array_value .values ]
380
381
0 commit comments