Python google.protobuf.descriptor.FieldDescriptor.TYPE_UINT64 Examples
The following are 4
code examples of google.protobuf.descriptor.FieldDescriptor.TYPE_UINT64().
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: zwift_offline.py From zwift-offline with GNU General Public License v3.0 | 6 votes |
def update_protobuf_in_db(table_name, msg, id): try: # If protobuf has an id field and it's uint64, make it a string id_field = msg.DESCRIPTOR.fields_by_name['id'] if id_field.type == id_field.TYPE_UINT64: id = str(id) except AttributeError: pass cur = g.db.cursor() msg_dict = protobuf_to_dict(msg, type_callable_map=type_callable_map) columns = ', '.join(list(msg_dict.keys())) placeholders = ':'+', :'.join(list(msg_dict.keys())) setters = ', '.join('{}=:{}'.format(key, key) for key in msg_dict) query = 'UPDATE %s SET %s WHERE id=%s' % (table_name, setters, id) cur.execute(query, msg_dict) g.db.commit()
Example #2
Source File: zwift_offline.py From zwift-offline with GNU General Public License v3.0 | 5 votes |
def row_to_protobuf(row, msg, exclude_fields=[]): for key in list(msg.DESCRIPTOR.fields_by_name.keys()): if key in exclude_fields: continue if row[key] is None: continue field = msg.DESCRIPTOR.fields_by_name[key] if field.type == field.TYPE_UINT64: setattr(msg, key, int(row[key])) else: setattr(msg, key, row[key]) return msg # FIXME: I should really do this properly...
Example #3
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 #4
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