mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-23 14:57:56 -05:00
Fixing more python 3 unicode errors
This commit is contained in:
parent
91f230b45a
commit
aae0d15bc0
6 changed files with 40 additions and 27 deletions
|
@ -69,14 +69,13 @@ class ThriftClient:
|
||||||
|
|
||||||
def sendRequest(self, request, uri="/thrift"):
|
def sendRequest(self, request, uri="/thrift"):
|
||||||
message = self.__dsm.serializeObject(request)
|
message = self.__dsm.serializeObject(request)
|
||||||
|
#message = message.decode('cp437')
|
||||||
self.__httpConn.connect()
|
self.__httpConn.connect()
|
||||||
self.__httpConn.request("POST", self.__uri + uri, message)
|
self.__httpConn.request("POST", self.__uri + uri, message)
|
||||||
|
|
||||||
response = self.__httpConn.getresponse()
|
response = self.__httpConn.getresponse()
|
||||||
if (response.status != 200):
|
if (response.status != 200):
|
||||||
raise ThriftRequestException("Unable to post request to server")
|
raise ThriftRequestException("Unable to post request to server")
|
||||||
|
|
||||||
rval = self.__dsm.deserializeBytes(response.read())
|
rval = self.__dsm.deserializeBytes(response.read())
|
||||||
self.__httpConn.close()
|
self.__httpConn.close()
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,7 @@ pythonToThriftMap = {
|
||||||
#types.FloatType: TType.DOUBLE,
|
#types.FloatType: TType.DOUBLE,
|
||||||
bool: TType.BOOL,
|
bool: TType.BOOL,
|
||||||
object: TType.STRUCT,
|
object: TType.STRUCT,
|
||||||
|
str: TType.STRING,
|
||||||
type(None): TType.VOID,
|
type(None): TType.VOID,
|
||||||
numpy.float32: SelfDescribingBinaryProtocol.FLOAT,
|
numpy.float32: SelfDescribingBinaryProtocol.FLOAT,
|
||||||
numpy.int32: TType.I32,
|
numpy.int32: TType.I32,
|
||||||
|
@ -151,13 +152,15 @@ class ThriftSerializationContext(object):
|
||||||
|
|
||||||
def deserializeMessage(self):
|
def deserializeMessage(self):
|
||||||
name = self.protocol.readStructBegin()
|
name = self.protocol.readStructBegin()
|
||||||
name = name.replace('_', '.')
|
#print(name)
|
||||||
|
name = name.replace(b'_', b'.')
|
||||||
|
bytes(name)
|
||||||
if name.isdigit():
|
if name.isdigit():
|
||||||
obj = self._deserializeType(int(name))
|
obj = self._deserializeType(int(name))
|
||||||
return obj
|
return obj
|
||||||
elif name in adapters.classAdapterRegistry:
|
elif name in adapters.classAdapterRegistry:
|
||||||
return adapters.classAdapterRegistry[name].deserialize(self)
|
return adapters.classAdapterRegistry[name].deserialize(self)
|
||||||
elif name.find('$') > -1:
|
elif name.find(b'$') > -1:
|
||||||
# it's an inner class, we're going to hope it's an enum, treat it special
|
# it's an inner class, we're going to hope it's an enum, treat it special
|
||||||
fieldName, fieldType, fieldId = self.protocol.readFieldBegin()
|
fieldName, fieldType, fieldId = self.protocol.readFieldBegin()
|
||||||
if fieldName != '__enumValue__':
|
if fieldName != '__enumValue__':
|
||||||
|
@ -166,7 +169,7 @@ class ThriftSerializationContext(object):
|
||||||
self.protocol.readFieldEnd()
|
self.protocol.readFieldEnd()
|
||||||
return obj
|
return obj
|
||||||
else:
|
else:
|
||||||
clz = dsObjTypes[name]
|
clz = dsObjTypes[bytes.decode(name)]
|
||||||
obj = clz()
|
obj = clz()
|
||||||
|
|
||||||
while self._deserializeField(name, obj):
|
while self._deserializeField(name, obj):
|
||||||
|
@ -191,7 +194,8 @@ class ThriftSerializationContext(object):
|
||||||
# result = adapters.fieldAdapterRegistry[structname][fieldName].deserialize(self)
|
# result = adapters.fieldAdapterRegistry[structname][fieldName].deserialize(self)
|
||||||
# else:
|
# else:
|
||||||
result = self._deserializeType(fieldType)
|
result = self._deserializeType(fieldType)
|
||||||
lookingFor = "set" + fieldName[0].upper() + fieldName[1:]
|
fn_str = bytes.decode(fieldName)
|
||||||
|
lookingFor = "set" + fn_str[0].upper() + fn_str[1:]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
setMethod = getattr(obj, lookingFor)
|
setMethod = getattr(obj, lookingFor)
|
||||||
|
@ -244,13 +248,13 @@ class ThriftSerializationContext(object):
|
||||||
if pyt in pythonToThriftMap:
|
if pyt in pythonToThriftMap:
|
||||||
return pythonToThriftMap[pyt]
|
return pythonToThriftMap[pyt]
|
||||||
elif pyt.__module__.startswith('dynamicserialize.dstypes'):
|
elif pyt.__module__.startswith('dynamicserialize.dstypes'):
|
||||||
return pythonToThriftMap[types.InstanceType]
|
return pythonToThriftMap[object]
|
||||||
else:
|
else:
|
||||||
raise dynamicserialize.SerializationException("Don't know how to serialize object of type: " + str(pyt))
|
raise dynamicserialize.SerializationException("Don't know how to serialize object of type: " + str(pyt))
|
||||||
|
|
||||||
def serializeMessage(self, obj):
|
def serializeMessage(self, obj):
|
||||||
|
|
||||||
tt = self._lookupType(obj)
|
tt = self._lookupType(obj)
|
||||||
|
|
||||||
if tt == TType.STRUCT:
|
if tt == TType.STRUCT:
|
||||||
fqn = obj.__module__.replace('dynamicserialize.dstypes.', '')
|
fqn = obj.__module__.replace('dynamicserialize.dstypes.', '')
|
||||||
if fqn in adapters.classAdapterRegistry:
|
if fqn in adapters.classAdapterRegistry:
|
||||||
|
@ -288,9 +292,11 @@ class ThriftSerializationContext(object):
|
||||||
self.protocol.writeStructEnd()
|
self.protocol.writeStructEnd()
|
||||||
|
|
||||||
def _serializeField(self, fieldName, fieldType, fieldId, fieldValue):
|
def _serializeField(self, fieldName, fieldType, fieldId, fieldValue):
|
||||||
|
#print("SERFIELD", fieldName, fieldType, fieldId, fieldValue)
|
||||||
self.protocol.writeFieldBegin(fieldName, fieldType, fieldId)
|
self.protocol.writeFieldBegin(fieldName, fieldType, fieldId)
|
||||||
self._serializeType(fieldValue, fieldType)
|
self._serializeType(fieldValue, fieldType)
|
||||||
self.protocol.writeFieldEnd()
|
self.protocol.writeFieldEnd()
|
||||||
|
#print(self.protocol)
|
||||||
|
|
||||||
def _serializeType(self, fieldValue, fieldType):
|
def _serializeType(self, fieldValue, fieldType):
|
||||||
if fieldType in self.typeSerializationMethod:
|
if fieldType in self.typeSerializationMethod:
|
||||||
|
|
|
@ -55,7 +55,7 @@ class Level(object):
|
||||||
matcher = LEVEL_NAMING_REGEX.match(str(levelString))
|
matcher = LEVEL_NAMING_REGEX.match(str(levelString))
|
||||||
if matcher is not None:
|
if matcher is not None:
|
||||||
self.levelonevalue = numpy.float64(matcher.group(1))
|
self.levelonevalue = numpy.float64(matcher.group(1))
|
||||||
self.masterLevel = MasterLevel.MasterLevel(matcher.group(3))
|
self.masterLevel = MasterLevel(matcher.group(3))
|
||||||
levelTwo = matcher.group(2)
|
levelTwo = matcher.group(2)
|
||||||
if levelTwo:
|
if levelTwo:
|
||||||
self.leveltwovalue = numpy.float64(levelTwo)
|
self.leveltwovalue = numpy.float64(levelTwo)
|
||||||
|
|
|
@ -40,7 +40,7 @@ import calendar
|
||||||
import datetime
|
import datetime
|
||||||
import numpy
|
import numpy
|
||||||
import time
|
import time
|
||||||
import io
|
from six.moves import cStringIO as StringIO
|
||||||
|
|
||||||
from dynamicserialize.dstypes.java.util import Date
|
from dynamicserialize.dstypes.java.util import Date
|
||||||
from dynamicserialize.dstypes.java.util import EnumSet
|
from dynamicserialize.dstypes.java.util import EnumSet
|
||||||
|
@ -114,7 +114,7 @@ class DataTime(object):
|
||||||
self.levelValue = numpy.float64(levelValue)
|
self.levelValue = numpy.float64(levelValue)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
buffer = io.StringIO()
|
buffer = StringIO()
|
||||||
|
|
||||||
if self.refTime is not None:
|
if self.refTime is not None:
|
||||||
refTimeInSecs = self.refTime.getTime() / 1000
|
refTimeInSecs = self.refTime.getTime() / 1000
|
||||||
|
|
|
@ -204,7 +204,11 @@ class TBinaryProtocol(TProtocolBase):
|
||||||
|
|
||||||
def readI32(self):
|
def readI32(self):
|
||||||
buff = self.trans.readAll(4)
|
buff = self.trans.readAll(4)
|
||||||
val, = unpack('!i', buff)
|
try:
|
||||||
|
val, = unpack('!i', buff)
|
||||||
|
except TypeError:
|
||||||
|
#str does not support the buffer interface
|
||||||
|
val, = unpack('!i', buff)
|
||||||
return val
|
return val
|
||||||
|
|
||||||
def readI64(self):
|
def readI64(self):
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
from io import StringIO
|
from six import BytesIO
|
||||||
from struct import pack, unpack
|
from struct import pack, unpack
|
||||||
from thrift.Thrift import TException
|
from thrift.Thrift import TException
|
||||||
|
|
||||||
|
@ -52,9 +52,10 @@ class TTransportBase:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def readAll(self, sz):
|
def readAll(self, sz):
|
||||||
buff = ''
|
buff = b''
|
||||||
have = 0
|
have = 0
|
||||||
while (have < sz):
|
while (have < sz):
|
||||||
|
#print(self)
|
||||||
chunk = self.read(sz - have)
|
chunk = self.read(sz - have)
|
||||||
have += len(chunk)
|
have += len(chunk)
|
||||||
buff += chunk
|
buff += chunk
|
||||||
|
@ -138,8 +139,8 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
||||||
|
|
||||||
def __init__(self, trans, rbuf_size=DEFAULT_BUFFER):
|
def __init__(self, trans, rbuf_size=DEFAULT_BUFFER):
|
||||||
self.__trans = trans
|
self.__trans = trans
|
||||||
self.__wbuf = StringIO()
|
self.__wbuf = BytesIO()
|
||||||
self.__rbuf = StringIO("")
|
self.__rbuf = BytesIO("")
|
||||||
self.__rbuf_size = rbuf_size
|
self.__rbuf_size = rbuf_size
|
||||||
|
|
||||||
def isOpen(self):
|
def isOpen(self):
|
||||||
|
@ -156,7 +157,7 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
||||||
if len(ret) != 0:
|
if len(ret) != 0:
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
self.__rbuf = StringIO(self.__trans.read(max(sz, self.__rbuf_size)))
|
self.__rbuf = BytesIO(self.__trans.read(max(sz, self.__rbuf_size)))
|
||||||
return self.__rbuf.read(sz)
|
return self.__rbuf.read(sz)
|
||||||
|
|
||||||
def write(self, buf):
|
def write(self, buf):
|
||||||
|
@ -165,7 +166,7 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
||||||
def flush(self):
|
def flush(self):
|
||||||
out = self.__wbuf.getvalue()
|
out = self.__wbuf.getvalue()
|
||||||
# reset wbuf before write/flush to preserve state on underlying failure
|
# reset wbuf before write/flush to preserve state on underlying failure
|
||||||
self.__wbuf = StringIO()
|
self.__wbuf = BytesIO()
|
||||||
self.__trans.write(out)
|
self.__trans.write(out)
|
||||||
self.__trans.flush()
|
self.__trans.flush()
|
||||||
|
|
||||||
|
@ -184,7 +185,7 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
||||||
if len(retstring) < reqlen:
|
if len(retstring) < reqlen:
|
||||||
retstring += self.__trans.readAll(reqlen - len(retstring))
|
retstring += self.__trans.readAll(reqlen - len(retstring))
|
||||||
|
|
||||||
self.__rbuf = StringIO(retstring)
|
self.__rbuf = BytesIO(retstring)
|
||||||
return self.__rbuf
|
return self.__rbuf
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,9 +204,9 @@ class TMemoryBuffer(TTransportBase, CReadableTransport):
|
||||||
If value is set, this will be a transport for reading,
|
If value is set, this will be a transport for reading,
|
||||||
otherwise, it is for writing"""
|
otherwise, it is for writing"""
|
||||||
if value is not None:
|
if value is not None:
|
||||||
self._buffer = StringIO(value)
|
self._buffer = BytesIO(value)
|
||||||
else:
|
else:
|
||||||
self._buffer = StringIO()
|
self._buffer = BytesIO()
|
||||||
|
|
||||||
def isOpen(self):
|
def isOpen(self):
|
||||||
return not self._buffer.closed
|
return not self._buffer.closed
|
||||||
|
@ -220,7 +221,10 @@ class TMemoryBuffer(TTransportBase, CReadableTransport):
|
||||||
return self._buffer.read(sz)
|
return self._buffer.read(sz)
|
||||||
|
|
||||||
def write(self, buf):
|
def write(self, buf):
|
||||||
self._buffer.write(buf)
|
try:
|
||||||
|
self._buffer.write(buf)
|
||||||
|
except TypeError:
|
||||||
|
self._buffer.write(buf.encode('cp437'))
|
||||||
|
|
||||||
def flush(self):
|
def flush(self):
|
||||||
pass
|
pass
|
||||||
|
@ -251,8 +255,8 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
||||||
|
|
||||||
def __init__(self, trans,):
|
def __init__(self, trans,):
|
||||||
self.__trans = trans
|
self.__trans = trans
|
||||||
self.__rbuf = StringIO()
|
self.__rbuf = BytesIO()
|
||||||
self.__wbuf = StringIO()
|
self.__wbuf = BytesIO()
|
||||||
|
|
||||||
def isOpen(self):
|
def isOpen(self):
|
||||||
return self.__trans.isOpen()
|
return self.__trans.isOpen()
|
||||||
|
@ -274,7 +278,7 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
||||||
def readFrame(self):
|
def readFrame(self):
|
||||||
buff = self.__trans.readAll(4)
|
buff = self.__trans.readAll(4)
|
||||||
sz, = unpack('!i', buff)
|
sz, = unpack('!i', buff)
|
||||||
self.__rbuf = StringIO(self.__trans.readAll(sz))
|
self.__rbuf = BytesIO(self.__trans.readAll(sz))
|
||||||
|
|
||||||
def write(self, buf):
|
def write(self, buf):
|
||||||
self.__wbuf.write(buf)
|
self.__wbuf.write(buf)
|
||||||
|
@ -283,7 +287,7 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
||||||
wout = self.__wbuf.getvalue()
|
wout = self.__wbuf.getvalue()
|
||||||
wsz = len(wout)
|
wsz = len(wout)
|
||||||
# reset wbuf before write/flush to preserve state on underlying failure
|
# reset wbuf before write/flush to preserve state on underlying failure
|
||||||
self.__wbuf = StringIO()
|
self.__wbuf = BytesIO()
|
||||||
# N.B.: Doing this string concatenation is WAY cheaper than making
|
# N.B.: Doing this string concatenation is WAY cheaper than making
|
||||||
# two separate calls to the underlying socket object. Socket writes in
|
# two separate calls to the underlying socket object. Socket writes in
|
||||||
# Python turn out to be REALLY expensive, but it seems to do a pretty
|
# Python turn out to be REALLY expensive, but it seems to do a pretty
|
||||||
|
@ -304,7 +308,7 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
||||||
while len(prefix) < reqlen:
|
while len(prefix) < reqlen:
|
||||||
self.readFrame()
|
self.readFrame()
|
||||||
prefix += self.__rbuf.getvalue()
|
prefix += self.__rbuf.getvalue()
|
||||||
self.__rbuf = StringIO(prefix)
|
self.__rbuf = BytesIO(prefix)
|
||||||
return self.__rbuf
|
return self.__rbuf
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue