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"):
|
||||
message = self.__dsm.serializeObject(request)
|
||||
|
||||
#message = message.decode('cp437')
|
||||
self.__httpConn.connect()
|
||||
self.__httpConn.request("POST", self.__uri + uri, message)
|
||||
|
||||
response = self.__httpConn.getresponse()
|
||||
if (response.status != 200):
|
||||
raise ThriftRequestException("Unable to post request to server")
|
||||
|
||||
rval = self.__dsm.deserializeBytes(response.read())
|
||||
self.__httpConn.close()
|
||||
|
||||
|
|
|
@ -75,6 +75,7 @@ pythonToThriftMap = {
|
|||
#types.FloatType: TType.DOUBLE,
|
||||
bool: TType.BOOL,
|
||||
object: TType.STRUCT,
|
||||
str: TType.STRING,
|
||||
type(None): TType.VOID,
|
||||
numpy.float32: SelfDescribingBinaryProtocol.FLOAT,
|
||||
numpy.int32: TType.I32,
|
||||
|
@ -151,13 +152,15 @@ class ThriftSerializationContext(object):
|
|||
|
||||
def deserializeMessage(self):
|
||||
name = self.protocol.readStructBegin()
|
||||
name = name.replace('_', '.')
|
||||
#print(name)
|
||||
name = name.replace(b'_', b'.')
|
||||
bytes(name)
|
||||
if name.isdigit():
|
||||
obj = self._deserializeType(int(name))
|
||||
return obj
|
||||
elif name in adapters.classAdapterRegistry:
|
||||
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
|
||||
fieldName, fieldType, fieldId = self.protocol.readFieldBegin()
|
||||
if fieldName != '__enumValue__':
|
||||
|
@ -166,7 +169,7 @@ class ThriftSerializationContext(object):
|
|||
self.protocol.readFieldEnd()
|
||||
return obj
|
||||
else:
|
||||
clz = dsObjTypes[name]
|
||||
clz = dsObjTypes[bytes.decode(name)]
|
||||
obj = clz()
|
||||
|
||||
while self._deserializeField(name, obj):
|
||||
|
@ -191,7 +194,8 @@ class ThriftSerializationContext(object):
|
|||
# result = adapters.fieldAdapterRegistry[structname][fieldName].deserialize(self)
|
||||
# else:
|
||||
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:
|
||||
setMethod = getattr(obj, lookingFor)
|
||||
|
@ -244,13 +248,13 @@ class ThriftSerializationContext(object):
|
|||
if pyt in pythonToThriftMap:
|
||||
return pythonToThriftMap[pyt]
|
||||
elif pyt.__module__.startswith('dynamicserialize.dstypes'):
|
||||
return pythonToThriftMap[types.InstanceType]
|
||||
return pythonToThriftMap[object]
|
||||
else:
|
||||
raise dynamicserialize.SerializationException("Don't know how to serialize object of type: " + str(pyt))
|
||||
|
||||
def serializeMessage(self, obj):
|
||||
tt = self._lookupType(obj)
|
||||
|
||||
tt = self._lookupType(obj)
|
||||
if tt == TType.STRUCT:
|
||||
fqn = obj.__module__.replace('dynamicserialize.dstypes.', '')
|
||||
if fqn in adapters.classAdapterRegistry:
|
||||
|
@ -288,9 +292,11 @@ class ThriftSerializationContext(object):
|
|||
self.protocol.writeStructEnd()
|
||||
|
||||
def _serializeField(self, fieldName, fieldType, fieldId, fieldValue):
|
||||
#print("SERFIELD", fieldName, fieldType, fieldId, fieldValue)
|
||||
self.protocol.writeFieldBegin(fieldName, fieldType, fieldId)
|
||||
self._serializeType(fieldValue, fieldType)
|
||||
self.protocol.writeFieldEnd()
|
||||
#print(self.protocol)
|
||||
|
||||
def _serializeType(self, fieldValue, fieldType):
|
||||
if fieldType in self.typeSerializationMethod:
|
||||
|
|
|
@ -55,7 +55,7 @@ class Level(object):
|
|||
matcher = LEVEL_NAMING_REGEX.match(str(levelString))
|
||||
if matcher is not None:
|
||||
self.levelonevalue = numpy.float64(matcher.group(1))
|
||||
self.masterLevel = MasterLevel.MasterLevel(matcher.group(3))
|
||||
self.masterLevel = MasterLevel(matcher.group(3))
|
||||
levelTwo = matcher.group(2)
|
||||
if levelTwo:
|
||||
self.leveltwovalue = numpy.float64(levelTwo)
|
||||
|
|
|
@ -40,7 +40,7 @@ import calendar
|
|||
import datetime
|
||||
import numpy
|
||||
import time
|
||||
import io
|
||||
from six.moves import cStringIO as StringIO
|
||||
|
||||
from dynamicserialize.dstypes.java.util import Date
|
||||
from dynamicserialize.dstypes.java.util import EnumSet
|
||||
|
@ -114,7 +114,7 @@ class DataTime(object):
|
|||
self.levelValue = numpy.float64(levelValue)
|
||||
|
||||
def __str__(self):
|
||||
buffer = io.StringIO()
|
||||
buffer = StringIO()
|
||||
|
||||
if self.refTime is not None:
|
||||
refTimeInSecs = self.refTime.getTime() / 1000
|
||||
|
|
|
@ -204,6 +204,10 @@ class TBinaryProtocol(TProtocolBase):
|
|||
|
||||
def readI32(self):
|
||||
buff = self.trans.readAll(4)
|
||||
try:
|
||||
val, = unpack('!i', buff)
|
||||
except TypeError:
|
||||
#str does not support the buffer interface
|
||||
val, = unpack('!i', buff)
|
||||
return val
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
# under the License.
|
||||
#
|
||||
|
||||
from io import StringIO
|
||||
from six import BytesIO
|
||||
from struct import pack, unpack
|
||||
from thrift.Thrift import TException
|
||||
|
||||
|
@ -52,9 +52,10 @@ class TTransportBase:
|
|||
pass
|
||||
|
||||
def readAll(self, sz):
|
||||
buff = ''
|
||||
buff = b''
|
||||
have = 0
|
||||
while (have < sz):
|
||||
#print(self)
|
||||
chunk = self.read(sz - have)
|
||||
have += len(chunk)
|
||||
buff += chunk
|
||||
|
@ -138,8 +139,8 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
|||
|
||||
def __init__(self, trans, rbuf_size=DEFAULT_BUFFER):
|
||||
self.__trans = trans
|
||||
self.__wbuf = StringIO()
|
||||
self.__rbuf = StringIO("")
|
||||
self.__wbuf = BytesIO()
|
||||
self.__rbuf = BytesIO("")
|
||||
self.__rbuf_size = rbuf_size
|
||||
|
||||
def isOpen(self):
|
||||
|
@ -156,7 +157,7 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
|||
if len(ret) != 0:
|
||||
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)
|
||||
|
||||
def write(self, buf):
|
||||
|
@ -165,7 +166,7 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
|||
def flush(self):
|
||||
out = self.__wbuf.getvalue()
|
||||
# reset wbuf before write/flush to preserve state on underlying failure
|
||||
self.__wbuf = StringIO()
|
||||
self.__wbuf = BytesIO()
|
||||
self.__trans.write(out)
|
||||
self.__trans.flush()
|
||||
|
||||
|
@ -184,7 +185,7 @@ class TBufferedTransport(TTransportBase, CReadableTransport):
|
|||
if len(retstring) < reqlen:
|
||||
retstring += self.__trans.readAll(reqlen - len(retstring))
|
||||
|
||||
self.__rbuf = StringIO(retstring)
|
||||
self.__rbuf = BytesIO(retstring)
|
||||
return self.__rbuf
|
||||
|
||||
|
||||
|
@ -203,9 +204,9 @@ class TMemoryBuffer(TTransportBase, CReadableTransport):
|
|||
If value is set, this will be a transport for reading,
|
||||
otherwise, it is for writing"""
|
||||
if value is not None:
|
||||
self._buffer = StringIO(value)
|
||||
self._buffer = BytesIO(value)
|
||||
else:
|
||||
self._buffer = StringIO()
|
||||
self._buffer = BytesIO()
|
||||
|
||||
def isOpen(self):
|
||||
return not self._buffer.closed
|
||||
|
@ -220,7 +221,10 @@ class TMemoryBuffer(TTransportBase, CReadableTransport):
|
|||
return self._buffer.read(sz)
|
||||
|
||||
def write(self, buf):
|
||||
try:
|
||||
self._buffer.write(buf)
|
||||
except TypeError:
|
||||
self._buffer.write(buf.encode('cp437'))
|
||||
|
||||
def flush(self):
|
||||
pass
|
||||
|
@ -251,8 +255,8 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
|||
|
||||
def __init__(self, trans,):
|
||||
self.__trans = trans
|
||||
self.__rbuf = StringIO()
|
||||
self.__wbuf = StringIO()
|
||||
self.__rbuf = BytesIO()
|
||||
self.__wbuf = BytesIO()
|
||||
|
||||
def isOpen(self):
|
||||
return self.__trans.isOpen()
|
||||
|
@ -274,7 +278,7 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
|||
def readFrame(self):
|
||||
buff = self.__trans.readAll(4)
|
||||
sz, = unpack('!i', buff)
|
||||
self.__rbuf = StringIO(self.__trans.readAll(sz))
|
||||
self.__rbuf = BytesIO(self.__trans.readAll(sz))
|
||||
|
||||
def write(self, buf):
|
||||
self.__wbuf.write(buf)
|
||||
|
@ -283,7 +287,7 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
|||
wout = self.__wbuf.getvalue()
|
||||
wsz = len(wout)
|
||||
# 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
|
||||
# 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
|
||||
|
@ -304,7 +308,7 @@ class TFramedTransport(TTransportBase, CReadableTransport):
|
|||
while len(prefix) < reqlen:
|
||||
self.readFrame()
|
||||
prefix += self.__rbuf.getvalue()
|
||||
self.__rbuf = StringIO(prefix)
|
||||
self.__rbuf = BytesIO(prefix)
|
||||
return self.__rbuf
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue