def _get_meaning(value_pb, is_list=False):
 meaning = None
 if is_list:
  if (len(value_pb.array_value.values) == 0):
   return None
  all_meanings = [_get_meaning(sub_value_pb) for sub_value_pb in value_pb.array_value.values]
  unique_meanings = set(all_meanings)
  if (len(unique_meanings) == 1):
   meaning = unique_meanings.pop()
  else:
   meaning = all_meanings
 elif value_pb.meaning:
  meaning = value_pb.meaning
 return meaning

def _get_meaning ( value_pb , is_list = False ) : meaning = None if is_list : if ( len ( value_pb . array_value . values ) == 0 ) : return None all_meanings = [ _get_meaning ( sub_value_pb ) for sub_value_pb in value_pb . array_value . values ] unique_meanings = set ( all_meanings ) if ( len ( unique_meanings ) == 1 ) : meaning = unique_meanings . pop ( ) else : meaning = all_meanings elif value_pb . meaning : meaning = value_pb . meaning return meaning
get the meaning from a protobuf value .