예제 #1
0
파일: encoder.py 프로젝트: dewiniaid/krpc
 def encode_float(cls, value):
     data = []
     def write(x):
         data.append(x)
     encoder = protobuf_encoder.FloatEncoder(1, False, False)
     encoder(write, value)
     return b''.join(data[1:]) # strips the tag value
예제 #2
0
파일: encoder.py 프로젝트: key50/My_kRPC
# pylint: disable=import-error,no-name-in-module
from google.protobuf.internal import wire_format as protobuf_wire_format
from krpc.error import EncodingError
from krpc.platform import bytelength
import krpc.schema.KRPC_pb2 as KRPC
from krpc.types import \
    Types, ValueType, ClassType, EnumerationType, MessageType, TupleType, \
    ListType, SetType, DictionaryType

# The following unpacks the internal protobuf decoders, whose signature
# depends on the version of protobuf installed
# pylint: disable=invalid-name
_pb_VarintEncoder = protobuf_encoder._VarintEncoder()
_pb_SignedVarintEncoder = protobuf_encoder._SignedVarintEncoder()
_pb_DoubleEncoder = protobuf_encoder.DoubleEncoder(1, False, False)
_pb_FloatEncoder = protobuf_encoder.FloatEncoder(1, False, False)
_pb_version = google.protobuf.__version__.split('.')
if int(_pb_version[0]) >= 3 and int(_pb_version[1]) >= 4:
    # protobuf v3.4.0 and above
    def _VarintEncoder(write, value):
        return _pb_VarintEncoder(write, value, True)

    def _SignedVarintEncoder(write, value):
        return _pb_SignedVarintEncoder(write, value, True)

    def _DoubleEncoder(write, value):
        return _pb_DoubleEncoder(write, value, True)

    def _FloatEncoder(write, value):
        return _pb_FloatEncoder(write, value, True)
else: