Python google.protobuf.descriptor.FieldDescriptor.TYPE_BOOL Examples
The following are 2
code examples of google.protobuf.descriptor.FieldDescriptor.TYPE_BOOL().
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: pburl_decoder.py From pbtk with GNU General Public License v3.0 | 6 votes |
def produce(obj, pb, sep): for ds, val in pb.ListFields(): for val in (val if ds.label == ds.LABEL_REPEATED else [val]): if ds.cpp_type == ds.CPPTYPE_MESSAGE: origlen = len(obj) produce(obj, val, sep) obj.insert(origlen, '%dm%d' % (ds.number, len(obj) - origlen)) continue elif ds.type == ds.TYPE_STRING: if sep == '!': val = val.replace('*', '*2A').replace('!', '*21') else: val = quote(val, safe='~()*!.\'') elif ds.type == ds.TYPE_BYTES: val = urlsafe_b64encode(val).decode('ascii').strip('=') elif ds.type == ds.TYPE_BOOL: val = int(val) obj.append('%d%s%s' % (ds.number, types_enc[ds.type], val)) return obj
Example #2
Source File: pburl_decoder.py From pbtk with GNU General Public License v3.0 | 4 votes |
def consume(obj, pb, sep): while obj: field = obj.pop(0) index, type_, val = match('(\d+)(\w)(.*)', field).groups() type_ = types_dec[type_] if int(index) not in pb.DESCRIPTOR.fields_by_number: warn('Unknown index: !' + field) if type_ == fd.TYPE_MESSAGE: del obj[:int(val)] continue field = pb.DESCRIPTOR.fields_by_number[int(index)] repeated = field.label == field.LABEL_REPEATED field = field.name if type_ == fd.TYPE_MESSAGE: if not repeated: getattr(pb, field).SetInParent() consume(obj[:int(val)], getattr(pb, field), sep) else: consume(obj[:int(val)], getattr(pb, field).add(), sep) del obj[:int(val)] continue elif type_ == fd.TYPE_STRING: if sep == '!': val = val.replace('*21', '!').replace('*2A', '*') else: val = unquote(val) elif type_ == fd.TYPE_BYTES: val = urlsafe_b64decode(val + '=' * (-len(val) % 4)) elif type_ == "base64_string": val = urlsafe_b64decode(val + '=' * (-len(val) % 4)).decode('utf8') elif type_ == fd.TYPE_BOOL: val = bool(int(val)) elif type_ in (fd.TYPE_DOUBLE, fd.TYPE_FLOAT): val = float(val) else: val = int(val) if not repeated: setattr(pb, field, val) else: getattr(pb, field).append(val)