Python google.protobuf.descriptor.FieldDescriptor.TYPE_INT64 Examples
The following are 2
code examples of google.protobuf.descriptor.FieldDescriptor.TYPE_INT64().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
google.protobuf.descriptor.FieldDescriptor
, or try the search function
.
Example #1
Source File: pbjson.py From futuquant with Apache License 2.0 | 4 votes |
def dict2pb(cls, adict, strict=False): """ Takes a class representing the ProtoBuf Message and fills it with data from the dict. """ obj = cls() for field in obj.DESCRIPTOR.fields: if not field.label == field.LABEL_REQUIRED: continue if not field.has_default_value: continue if not field.name in adict: raise ConvertException('Field "%s" missing from descriptor dictionary.' % field.name) field_names = set([field.name for field in obj.DESCRIPTOR.fields]) if strict: for key in adict.keys(): if key not in field_names: raise ConvertException( 'Key "%s" can not be mapped to field in %s class.' % (key, type(obj))) for field in obj.DESCRIPTOR.fields: if not field.name in adict: continue msg_type = field.message_type if field.label == FD.LABEL_REPEATED: if field.type == FD.TYPE_MESSAGE: for sub_dict in adict[field.name]: item = getattr(obj, field.name).add() item.CopyFrom(dict2pb(msg_type._concrete_class, sub_dict)) else: # fix python3 map用法变更 list(map(getattr(obj, field.name).append, adict[field.name])) else: if field.type == FD.TYPE_MESSAGE: value = dict2pb(msg_type._concrete_class, adict[field.name]) getattr(obj, field.name).CopyFrom(value) elif field.type in [FD.TYPE_UINT64, FD.TYPE_INT64, FD.TYPE_SINT64]: setattr(obj, field.name, int(adict[field.name])) else: setattr(obj, field.name, adict[field.name]) return obj
Example #2
Source File: pbjson.py From py-futu-api with Apache License 2.0 | 4 votes |
def dict2pb(cls, adict, strict=False): """ Takes a class representing the ProtoBuf Message and fills it with data from the dict. """ obj = cls() for field in obj.DESCRIPTOR.fields: if not field.label == field.LABEL_REQUIRED: continue if not field.has_default_value: continue if not field.name in adict: raise ConvertException('Field "%s" missing from descriptor dictionary.' % field.name) field_names = set([field.name for field in obj.DESCRIPTOR.fields]) if strict: for key in adict.keys(): if key not in field_names: raise ConvertException( 'Key "%s" can not be mapped to field in %s class.' % (key, type(obj))) for field in obj.DESCRIPTOR.fields: if not field.name in adict: continue msg_type = field.message_type if field.label == FD.LABEL_REPEATED: if field.type == FD.TYPE_MESSAGE: for sub_dict in adict[field.name]: item = getattr(obj, field.name).add() item.CopyFrom(dict2pb(msg_type._concrete_class, sub_dict)) else: # fix python3 map用法变更 list(map(getattr(obj, field.name).append, adict[field.name])) else: if field.type == FD.TYPE_MESSAGE: value = dict2pb(msg_type._concrete_class, adict[field.name]) getattr(obj, field.name).CopyFrom(value) elif field.type in [FD.TYPE_UINT64, FD.TYPE_INT64, FD.TYPE_SINT64]: setattr(obj, field.name, int(adict[field.name])) else: setattr(obj, field.name, adict[field.name]) return obj