diff --git a/awips/AlertVizHandler.py b/awips/AlertVizHandler.py index 9ecabf4..b20f911 100644 --- a/awips/AlertVizHandler.py +++ b/awips/AlertVizHandler.py @@ -35,7 +35,7 @@ # import logging -import NotificationMessage +from . import NotificationMessage class AlertVizHandler(logging.Handler): diff --git a/awips/DateTimeConverter.py b/awips/DateTimeConverter.py index db9d2a1..6f40eeb 100644 --- a/awips/DateTimeConverter.py +++ b/awips/DateTimeConverter.py @@ -63,10 +63,10 @@ def convertToDateTime(timeArg): return datetime.datetime(*timeArg[:6]) elif isinstance(timeArg, float): # seconds as float, should be avoided due to floating point errors - totalSecs = long(timeArg) + totalSecs = int(timeArg) micros = int((timeArg - totalSecs) * MICROS_IN_SECOND) return _convertSecsAndMicros(totalSecs, micros) - elif isinstance(timeArg, (int, long)): + elif isinstance(timeArg, int): # seconds as integer totalSecs = timeArg return _convertSecsAndMicros(totalSecs, 0) diff --git a/awips/NotificationMessage.py b/awips/NotificationMessage.py index 47cd4c8..9d0b7ce 100644 --- a/awips/NotificationMessage.py +++ b/awips/NotificationMessage.py @@ -1,19 +1,19 @@ ## # This software was developed and / or modified by Raytheon Company, -# pursuant to Contract DG133W-05-CQ-1067 with the US Government. -# -# U.S. EXPORT CONTROLLED TECHNICAL DATA +# pursuant to Contract DG133W-05-CQ-1067 with the US Government. +# +# U.S. EXPORT CONTROLLED TECHNICAL DATA # This software product contains export-restricted data whose # export/transfer/disclosure is restricted by U.S. law. Dissemination # to non-U.S. persons whether in the United States or abroad requires # an export license or other authorization. # -# Contractor Name: Raytheon Company -# Contractor Address: 6825 Pine Street, Suite 340 -# Mail Stop B8 -# Omaha, NE 68106 -# 402.291.0100 -# +# Contractor Name: Raytheon Company +# Contractor Address: 6825 Pine Street, Suite 340 +# Mail Stop B8 +# Omaha, NE 68106 +# 402.291.0100 +# # See the AWIPS II Master Rights File ("Master Rights File.pdf") for # further licensing information. ## @@ -21,14 +21,14 @@ from string import Template import ctypes -import stomp +from . import stomp import socket import sys import time import threading import xml.etree.ElementTree as ET -import ThriftClient +from . import ThriftClient from dynamicserialize.dstypes.com.raytheon.uf.common.alertviz import AlertVizRequest from dynamicserialize import DynamicSerializationManager @@ -89,8 +89,8 @@ class NotificationMessage: priorityInt = int(5) if (priorityInt < 0 or priorityInt > 5): - print "Error occurred, supplied an invalid Priority value: " + str(priorityInt) - print "Priority values are 0, 1, 2, 3, 4 and 5." + print("Error occurred, supplied an invalid Priority value: " + str(priorityInt)) + print("Priority values are 0, 1, 2, 3, 4 and 5.") sys.exit(1) if priorityInt is not None: @@ -100,8 +100,8 @@ class NotificationMessage: def connection_timeout(self, connection): if (connection is not None and not connection.is_connected()): - print "Connection Retry Timeout" - for tid, tobj in threading._active.items(): + print("Connection Retry Timeout") + for tid, tobj in list(threading._active.items()): if tobj.name is "MainThread": res = ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(SystemExit)) if res != 0 and res != 1: @@ -150,14 +150,14 @@ class NotificationMessage: serverResponse = None try: serverResponse = thriftClient.sendRequest(alertVizRequest) - except Exception, ex: - print "Caught exception submitting AlertVizRequest: ", str(ex) + except Exception as ex: + print("Caught exception submitting AlertVizRequest: ", str(ex)) if (serverResponse != "None"): - print "Error occurred submitting Notification Message to AlertViz receiver: ", serverResponse + print("Error occurred submitting Notification Message to AlertViz receiver: ", serverResponse) sys.exit(1) else: - print "Response: " + str(serverResponse) + print("Response: " + str(serverResponse)) def createRequest(message, priority, source, category, audioFile): obj = AlertVizRequest() diff --git a/awips/QpidSubscriber.py b/awips/QpidSubscriber.py index 9a3d5c7..6a9c78c 100644 --- a/awips/QpidSubscriber.py +++ b/awips/QpidSubscriber.py @@ -35,7 +35,7 @@ import qpid import zlib -from Queue import Empty +from queue import Empty from qpid.exceptions import Closed class QpidSubscriber: @@ -56,7 +56,7 @@ class QpidSubscriber: if (topicName == 'edex.alerts'): self.decompress = True - print "Establishing connection to broker on", self.host + print("Establishing connection to broker on", self.host) queueName = topicName + self.__session.name self.__session.queue_declare(queue=queueName, exclusive=True, auto_delete=True, arguments={'qpid.max_count':100, 'qpid.policy_type':'ring'}) self.__session.exchange_bind(exchange='amq.topic', queue=queueName, binding_key=topicName) @@ -67,7 +67,7 @@ class QpidSubscriber: queue = self.__session.incoming(local_queue_name) self.__session.message_subscribe(serverQueueName, destination=local_queue_name) queue.start() - print "Connection complete to broker on", self.host + print("Connection complete to broker on", self.host) while self.subscribed: try: @@ -75,7 +75,7 @@ class QpidSubscriber: content = message.body self.__session.message_accept(qpid.datatypes.RangedSet(message.id)) if (self.decompress): - print "Decompressing received content" + print("Decompressing received content") try: # http://stackoverflow.com/questions/2423866/python-decompressing-gzip-chunk-by-chunk d = zlib.decompressobj(16+zlib.MAX_WBITS) diff --git a/awips/RadarCommon.py b/awips/RadarCommon.py index c0f592a..a4fe0b4 100644 --- a/awips/RadarCommon.py +++ b/awips/RadarCommon.py @@ -60,14 +60,14 @@ def get_hdf5_data(idra): threshVals = [] if len(idra) > 0: for ii in range(len(idra)): - if idra[ii].getName() == "Data": + if idra[ii].getName() == b"Data": rdat = idra[ii] - elif idra[ii].getName() == "Angles": + elif idra[ii].getName() == b"Angles": azdat = idra[ii] dattyp = "radial" - elif idra[ii].getName() == "DependentValues": + elif idra[ii].getName() == b"DependentValues": depVals = idra[ii].getShortData() - elif idra[ii].getName() == "Thresholds": + elif idra[ii].getName() == b"Thresholds": threshVals = idra[ii].getShortData() return rdat,azdat,depVals,threshVals diff --git a/awips/ThriftClient.py b/awips/ThriftClient.py index 93dd762..87f584d 100644 --- a/awips/ThriftClient.py +++ b/awips/ThriftClient.py @@ -17,8 +17,10 @@ # See the AWIPS II Master Rights File ("Master Rights File.pdf") for # further licensing information. ## - -import httplib +try: + import http.client as httpcl +except ImportError: + import httplib as httpcl from dynamicserialize import DynamicSerializationManager from dynamicserialize.dstypes.com.raytheon.uf.common.serialization.comm.response import ServerErrorResponse from dynamicserialize.dstypes.com.raytheon.uf.common.serialization import SerializableExceptionWrapper @@ -54,12 +56,12 @@ class ThriftClient: if (len(hostParts) > 1): hostString = hostParts[0] self.__uri = "/" + hostParts[1] - self.__httpConn = httplib.HTTPConnection(hostString) + self.__httpConn = httpcl.HTTPConnection(hostString) else: if (port is None): - self.__httpConn = httplib.HTTPConnection(host) + self.__httpConn = httpcl.HTTPConnection(host) else: - self.__httpConn = httplib.HTTPConnection(host, port) + self.__httpConn = httpcl.HTTPConnection(host, port) self.__uri = uri @@ -67,17 +69,17 @@ 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() + # let's verify we have an instance of ServerErrorResponse # IF we do, through an exception up to the caller along # with the original Java stack trace diff --git a/awips/TimeUtil.py b/awips/TimeUtil.py index 13b3a5c..db50bba 100644 --- a/awips/TimeUtil.py +++ b/awips/TimeUtil.py @@ -87,7 +87,7 @@ def determineDrtOffset(timeStr): #print "gmtime", gm if synch: cur_t = time.mktime((gm[0], gm[1], gm[2], gm[3], 0, 0, 0, 0, 0)) - curStr = '%4s%2s%2s_%2s00\n' % (`gm[0]`,`gm[1]`,`gm[2]`,`gm[3]`) + curStr = '%4s%2s%2s_%2s00\n' % (repr(gm[0]),repr(gm[1]),repr(gm[2]),repr(gm[3])) curStr = curStr.replace(' ','0') launchStr = timeStr + "," + curStr diff --git a/awips/dataaccess/DataAccessLayer.py b/awips/dataaccess/DataAccessLayer.py index 4ab02b7..b6d7b59 100644 --- a/awips/dataaccess/DataAccessLayer.py +++ b/awips/dataaccess/DataAccessLayer.py @@ -47,7 +47,7 @@ import subprocess THRIFT_HOST = "edex" USING_NATIVE_THRIFT = False -if sys.modules.has_key('jep'): +if 'jep' in sys.modules: # intentionally do not catch if this fails to import, we want it to # be obvious that something is configured wrong when running from within # Java instead of allowing false confidence and fallback behavior diff --git a/awips/dataaccess/PyData.py b/awips/dataaccess/PyData.py index 2ccd767..47a36e9 100644 --- a/awips/dataaccess/PyData.py +++ b/awips/dataaccess/PyData.py @@ -45,7 +45,7 @@ class PyData(IData): return self.__attributes[key] def getAttributes(self): - return self.__attributes.keys() + return list(self.__attributes.keys()) def getDataTime(self): return self.__time diff --git a/awips/dataaccess/PyGeometryData.py b/awips/dataaccess/PyGeometryData.py index 1692867..6debd3d 100644 --- a/awips/dataaccess/PyGeometryData.py +++ b/awips/dataaccess/PyGeometryData.py @@ -45,14 +45,14 @@ class PyGeometryData(IGeometryData, PyData.PyData): self.__geometry = geometry self.__dataMap = {} tempDataMap = geoDataRecord.getDataMap() - for key, value in tempDataMap.items(): + for key, value in list(tempDataMap.items()): self.__dataMap[key] = (value[0], value[1], value[2]) def getGeometry(self): return self.__geometry def getParameters(self): - return self.__dataMap.keys() + return list(self.__dataMap.keys()) def getString(self, param): value = self.__dataMap[param][0] @@ -64,7 +64,7 @@ class PyGeometryData(IGeometryData, PyData.PyData): if t == 'INT': return int(value) elif t == 'LONG': - return long(value) + return int(value) elif t == 'FLOAT': return float(value) elif t == 'DOUBLE': diff --git a/awips/dataaccess/SoundingsSupport.py b/awips/dataaccess/SoundingsSupport.py index 7e043c5..15ea14f 100644 --- a/awips/dataaccess/SoundingsSupport.py +++ b/awips/dataaccess/SoundingsSupport.py @@ -128,7 +128,7 @@ def __buildStringList(param): return [str(param)] def __notStringIter(iterable): - if not isinstance(iterable, basestring): + if not isinstance(iterable, str): try: iter(iterable) return True @@ -226,7 +226,7 @@ class _SoundingTimeLayer(object): A list containing the valid levels for this sounding in order of closest to surface to highest from surface. """ - sortedLevels = [Level(level) for level in self._dataDict.keys()] + sortedLevels = [Level(level) for level in list(self._dataDict.keys())] sortedLevels.sort() return [str(level) for level in sortedLevels] diff --git a/awips/dataaccess/ThriftClientRouter.py b/awips/dataaccess/ThriftClientRouter.py index b568b56..da10421 100644 --- a/awips/dataaccess/ThriftClientRouter.py +++ b/awips/dataaccess/ThriftClientRouter.py @@ -83,7 +83,7 @@ class ThriftClientRouter(object): response = self._client.sendRequest(gridDataRequest) locSpecificData = {} - locNames = response.getSiteNxValues().keys() + locNames = list(response.getSiteNxValues().keys()) for location in locNames: nx = response.getSiteNxValues()[location] ny = response.getSiteNyValues()[location] @@ -114,7 +114,7 @@ class ThriftClientRouter(object): geometries = [] for wkb in response.getGeometryWKBs(): # convert the wkb to a bytearray with only positive values - byteArrWKB = bytearray(map(lambda x: x % 256,wkb.tolist())) + byteArrWKB = bytearray([x % 256 for x in wkb.tolist()]) # convert the bytearray to a byte string and load it. geometries.append(shapely.wkb.loads(str(byteArrWKB))) diff --git a/awips/dataaccess/__init__.py b/awips/dataaccess/__init__.py index 1b39e77..c84c076 100644 --- a/awips/dataaccess/__init__.py +++ b/awips/dataaccess/__init__.py @@ -41,12 +41,11 @@ __all__ = [ ] import abc - -class IDataRequest(object): +from six import with_metaclass +class IDataRequest(with_metaclass(abc.ABCMeta, object)): """ An IDataRequest to be submitted to the DataAccessLayer to retrieve data. """ - __metaclass__ = abc.ABCMeta @abc.abstractmethod def setDatatype(self, datatype): @@ -164,11 +163,10 @@ class IDataRequest(object): -class IData(object): +class IData(with_metaclass(abc.ABCMeta, object)): """ An IData representing data returned from the DataAccessLayer. """ - __metaclass__ = abc.ABCMeta @abc.abstractmethod def getAttribute(self, key): diff --git a/awips/qpidingest.py b/awips/qpidingest.py index f5aa83f..1b876c5 100644 --- a/awips/qpidingest.py +++ b/awips/qpidingest.py @@ -85,9 +85,9 @@ class IngestViaQPID: self.connection.start() self.session = self.connection.session(str(uuid4())) self.session.exchange_bind(exchange='amq.direct', queue='external.dropbox', binding_key='external.dropbox') - print 'Connected to Qpid' + print('Connected to Qpid') except: - print 'Unable to connect to Qpid' + print('Unable to connect to Qpid') def sendmessage(self, filepath, header): ''' @@ -108,4 +108,4 @@ class IngestViaQPID: there are no threads left open ''' self.session.close(timeout=10) - print 'Connection to Qpid closed' + print('Connection to Qpid closed') diff --git a/awips/stomp.py b/awips/stomp.py index d5f94ec..219c369 100644 --- a/awips/stomp.py +++ b/awips/stomp.py @@ -87,12 +87,13 @@ import random import re import socket import sys -import thread +import _thread import threading import time import types import xml.dom.minidom -from cStringIO import StringIO +from io import StringIO +from functools import reduce # # stomp.py version number @@ -106,14 +107,14 @@ def _uuid( *args ): (http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/213761) """ - t = long( time.time() * 1000 ) - r = long( random.random() * 100000000000000000L ) + t = int( time.time() * 1000 ) + r = int( random.random() * 100000000000000000 ) try: a = socket.gethostbyname( socket.gethostname() ) except: # if we can't get a network address, just imagine one - a = random.random() * 100000000000000000L + a = random.random() * 100000000000000000 data = str(t) + ' ' + str(r) + ' ' + str(a) + ' ' + str(args) md5 = hashlib.md5() md5.update(data) @@ -126,7 +127,7 @@ class DevNullLogger(object): dummy logging class for environments without the logging module """ def log(self, msg): - print msg + print(msg) def devnull(self, msg): pass @@ -371,7 +372,7 @@ class Connection(object): """ self.__running = True self.__attempt_connection() - thread.start_new_thread(self.__receiver_loop, ()) + _thread.start_new_thread(self.__receiver_loop, ()) def stop(self): """ @@ -434,7 +435,7 @@ class Connection(object): def begin(self, headers={}, **keyword_headers): use_headers = self.__merge_headers([headers, keyword_headers]) - if not 'transaction' in use_headers.keys(): + if not 'transaction' in list(use_headers.keys()): use_headers['transaction'] = _uuid() self.__send_frame_helper('BEGIN', '', use_headers, [ 'transaction' ]) return use_headers['transaction'] @@ -446,7 +447,7 @@ class Connection(object): self.__send_frame_helper('COMMIT', '', self.__merge_headers([headers, keyword_headers]), [ 'transaction' ]) def connect(self, headers={}, **keyword_headers): - if keyword_headers.has_key('wait') and keyword_headers['wait']: + if 'wait' in keyword_headers and keyword_headers['wait']: while not self.is_connected(): time.sleep(0.1) del keyword_headers['wait'] self.__send_frame_helper('CONNECT', '', self.__merge_headers([self.__connect_headers, headers, keyword_headers]), [ ]) @@ -490,7 +491,7 @@ class Connection(object): """ headers = {} for header_map in header_map_list: - for header_key in header_map.keys(): + for header_key in list(header_map.keys()): headers[header_key] = header_map[header_key] return headers @@ -532,11 +533,11 @@ class Connection(object): if type(required_header_key) == tuple: found_alternative = False for alternative in required_header_key: - if alternative in headers.keys(): + if alternative in list(headers.keys()): found_alternative = True if not found_alternative: raise KeyError("Command %s requires one of the following headers: %s" % (command, str(required_header_key))) - elif not required_header_key in headers.keys(): + elif not required_header_key in list(headers.keys()): raise KeyError("Command %s requires header %r" % (command, required_header_key)) self.__send_frame(command, headers, payload) @@ -550,7 +551,7 @@ class Connection(object): if self.__socket is not None: frame = '%s\n%s\n%s\x00' % (command, - reduce(lambda accu, key: accu + ('%s:%s\n' % (key, headers[key])), headers.keys(), ''), + reduce(lambda accu, key: accu + ('%s:%s\n' % (key, headers[key])), list(headers.keys()), ''), payload) self.__socket.sendall(frame) log.debug("Sent frame: type=%s, headers=%r, body=%r" % (command, headers, payload)) @@ -707,7 +708,7 @@ class Connection(object): assert len(pair) == 2 entries[pair[0]] = pair[1] return entries - except Exception, ex: + except Exception as ex: # unable to parse message. return original return body @@ -762,7 +763,7 @@ class Connection(object): break except socket.error: self.__socket = None - if type(sys.exc_info()[1]) == types.TupleType: + if type(sys.exc_info()[1]) == tuple: exc = sys.exc_info()[1][1] else: exc = sys.exc_info()[1] @@ -813,20 +814,20 @@ if __name__ == '__main__': self.c.start() def __print_async(self, frame_type, headers, body): - print "\r \r", - print frame_type - for header_key in headers.keys(): - print '%s: %s' % (header_key, headers[header_key]) - print - print body - print '> ', + print("\r \r", end=' ') + print(frame_type) + for header_key in list(headers.keys()): + print('%s: %s' % (header_key, headers[header_key])) + print() + print(body) + print('> ', end=' ') sys.stdout.flush() def on_connecting(self, host_and_port): self.c.connect(wait=True) def on_disconnected(self): - print "lost connection" + print("lost connection") def on_message(self, headers, body): self.__print_async("MESSAGE", headers, body) @@ -850,13 +851,13 @@ if __name__ == '__main__': self.c.abort(transaction=args[1]) def begin(self, args): - print 'transaction id: %s' % self.c.begin() + print('transaction id: %s' % self.c.begin()) def commit(self, args): if len(args) < 2: - print 'expecting: commit ' + print('expecting: commit ') else: - print 'committing %s' % args[1] + print('committing %s' % args[1]) self.c.commit(transaction=args[1]) def disconnect(self, args): @@ -867,35 +868,35 @@ if __name__ == '__main__': def send(self, args): if len(args) < 3: - print 'expecting: send ' + print('expecting: send ') else: self.c.send(destination=args[1], message=' '.join(args[2:])) def sendtrans(self, args): if len(args) < 3: - print 'expecting: sendtrans ' + print('expecting: sendtrans ') else: self.c.send(destination=args[1], message="%s\n" % ' '.join(args[3:]), transaction=args[2]) def subscribe(self, args): if len(args) < 2: - print 'expecting: subscribe [ack]' + print('expecting: subscribe [ack]') elif len(args) > 2: - print 'subscribing to "%s" with acknowledge set to "%s"' % (args[1], args[2]) + print('subscribing to "%s" with acknowledge set to "%s"' % (args[1], args[2])) self.c.subscribe(destination=args[1], ack=args[2]) else: - print 'subscribing to "%s" with auto acknowledge' % args[1] + print('subscribing to "%s" with auto acknowledge' % args[1]) self.c.subscribe(destination=args[1], ack='auto') def unsubscribe(self, args): if len(args) < 2: - print 'expecting: unsubscribe ' + print('expecting: unsubscribe ') else: - print 'unsubscribing from "%s"' % args[1] + print('unsubscribing from "%s"' % args[1]) self.c.unsubscribe(destination=args[1]) if len(sys.argv) > 5: - print 'USAGE: stomp.py [host] [port] [user] [passcode]' + print('USAGE: stomp.py [host] [port] [user] [passcode]') sys.exit(1) if len(sys.argv) >= 2: @@ -917,7 +918,7 @@ if __name__ == '__main__': st = StompTester(host, port, user, passcode) try: while True: - line = raw_input("\r> ") + line = input("\r> ") if not line or line.lstrip().rstrip() == '': continue elif 'quit' in line or 'disconnect' in line: @@ -927,7 +928,7 @@ if __name__ == '__main__': if not command.startswith("on_") and hasattr(st, command): getattr(st, command)(split) else: - print 'unrecognized command' + print('unrecognized command') finally: st.disconnect(None) diff --git a/awips/test/testQpidTimeToLive.py b/awips/test/testQpidTimeToLive.py index 7176324..a8de041 100644 --- a/awips/test/testQpidTimeToLive.py +++ b/awips/test/testQpidTimeToLive.py @@ -57,7 +57,7 @@ class ListenThread(threading.Thread): self.qs.topicSubscribe(self.topicName, self.receivedMessage) def receivedMessage(self, msg): - print "Received message" + print("Received message") self.nMessagesReceived += 1 if self.waitSecond == 0: fmsg = open('/tmp/rawMessage', 'w') @@ -66,20 +66,20 @@ class ListenThread(threading.Thread): while self.waitSecond < TIME_TO_SLEEP and not self.stopped: if self.waitSecond % 60 == 0: - print time.strftime('%H:%M:%S'), "Sleeping and stuck in not so infinite while loop" + print(time.strftime('%H:%M:%S'), "Sleeping and stuck in not so infinite while loop") self.waitSecond += 1 time.sleep(1) - print time.strftime('%H:%M:%S'), "Received", self.nMessagesReceived, "messages" + print(time.strftime('%H:%M:%S'), "Received", self.nMessagesReceived, "messages") def stop(self): - print "Stopping" + print("Stopping") self.stopped = True self.qs.close() def main(): - print "Starting up at", time.strftime('%H:%M:%S') + print("Starting up at", time.strftime('%H:%M:%S')) topic = 'edex.alerts' host = 'localhost' diff --git a/docs/source/conf.py b/docs/source/conf.py index 4797b6b..e1a610f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -56,16 +56,16 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'python-awips' -copyright = u'2016, Unidata' -author = u'Unidata' +project = 'python-awips' +copyright = '2016, Unidata' +author = 'Unidata' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = u'0.9.3' +version = '0.9.3' # The full version, including alpha/beta/rc tags. # The language for content autogenerated by Sphinx. Refer to documentation @@ -231,8 +231,8 @@ latex_elements = { # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'python-awips.tex', u'python-awips Documentation', - u'Unidata', 'manual'), + (master_doc, 'python-awips.tex', 'python-awips Documentation', + 'Unidata', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of @@ -261,7 +261,7 @@ latex_documents = [ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - (master_doc, 'python-awips', u'python-awips Documentation', + (master_doc, 'python-awips', 'python-awips Documentation', [author], 1) ] @@ -275,7 +275,7 @@ man_pages = [ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'python-awips', u'python-awips Documentation', + (master_doc, 'python-awips', 'python-awips Documentation', author, 'python-awips', 'One line description of project.', 'Miscellaneous'), ] diff --git a/dynamicserialize/DynamicSerializationManager.py b/dynamicserialize/DynamicSerializationManager.py index 60d8512..dbfd0bf 100644 --- a/dynamicserialize/DynamicSerializationManager.py +++ b/dynamicserialize/DynamicSerializationManager.py @@ -36,7 +36,7 @@ # from thrift.transport import TTransport -import SelfDescribingBinaryProtocol, ThriftSerializationContext +from . import SelfDescribingBinaryProtocol, ThriftSerializationContext class DynamicSerializationManager: diff --git a/dynamicserialize/ThriftSerializationContext.py b/dynamicserialize/ThriftSerializationContext.py index 0ed39d2..a2992c4 100644 --- a/dynamicserialize/ThriftSerializationContext.py +++ b/dynamicserialize/ThriftSerializationContext.py @@ -44,13 +44,13 @@ from thrift.Thrift import TType import inspect, sys, types import dynamicserialize from dynamicserialize import dstypes, adapters -import SelfDescribingBinaryProtocol +from dynamicserialize import SelfDescribingBinaryProtocol import numpy +import collections dsObjTypes = {} - def buildObjMap(module): - if module.__dict__.has_key('__all__'): + if '__all__' in module.__dict__: for i in module.__all__: name = module.__name__ + '.' + i __import__(name) @@ -65,17 +65,18 @@ def buildObjMap(module): buildObjMap(dstypes) pythonToThriftMap = { - types.StringType: TType.STRING, - types.IntType: TType.I32, - types.LongType: TType.I64, - types.ListType: TType.LIST, - types.DictionaryType: TType.MAP, + bytes: TType.STRING, + int: TType.I32, + int: TType.I64, + list: TType.LIST, + dict: TType.MAP, type(set([])): TType.SET, - types.FloatType: SelfDescribingBinaryProtocol.FLOAT, + float: SelfDescribingBinaryProtocol.FLOAT, #types.FloatType: TType.DOUBLE, - types.BooleanType: TType.BOOL, - types.InstanceType: TType.STRUCT, - types.NoneType: TType.VOID, + bool: TType.BOOL, + object: TType.STRUCT, + str: TType.STRING, + type(None): TType.VOID, numpy.float32: SelfDescribingBinaryProtocol.FLOAT, numpy.int32: TType.I32, numpy.ndarray: TType.LIST, @@ -151,17 +152,18 @@ class ThriftSerializationContext(object): def deserializeMessage(self): name = self.protocol.readStructBegin() + name = name.decode('cp437') name = name.replace('_', '.') if name.isdigit(): obj = self._deserializeType(int(name)) return obj - elif adapters.classAdapterRegistry.has_key(name): + elif name in adapters.classAdapterRegistry: return adapters.classAdapterRegistry[name].deserialize(self) elif name.find('$') > -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__': - raise dynamiceserialize.SerializationException("Expected to find enum payload. Found: " + fieldName) + raise dynamiceserialize.SerializationException(b"Expected to find enum payload. Found: " + fieldName) obj = self.protocol.readString() self.protocol.readFieldEnd() return obj @@ -176,10 +178,10 @@ class ThriftSerializationContext(object): return obj def _deserializeType(self, b): - if self.typeDeserializationMethod.has_key(b): + if b in self.typeDeserializationMethod: return self.typeDeserializationMethod[b]() else: - raise dynamicserialize.SerializationException("Unsupported type value " + str(b)) + raise dynamiceserialize.SerializationException("Unsupported type value " + str(b)) def _deserializeField(self, structname, obj): @@ -191,17 +193,18 @@ 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) - if callable(setMethod): + if isinstance(setMethod, collections.Callable): setMethod(result) else: - raise dynamicserialize.SerializationException("Couldn't find setter method " + lookingFor) + raise SerializationException("Couldn't find setter method " + lookingFor) except: - raise dynamicserialize.SerializationException("Couldn't find setter method " + lookingFor) + raise SerializationException("Couldn't find setter method " + lookingFor) self.protocol.readFieldEnd() return True @@ -213,7 +216,7 @@ class ThriftSerializationContext(object): if size: if listType not in primitiveSupport: m = self.typeDeserializationMethod[listType] - result = [m() for n in xrange(size)] + result = [m() for n in range(size)] else: result = self.listDeserializationMethod[listType](size) self.protocol.readListEnd() @@ -222,7 +225,7 @@ class ThriftSerializationContext(object): def _deserializeMap(self): keyType, valueType, size = self.protocol.readMapBegin() result = {} - for n in xrange(size): + for n in range(size): # can't go off the type, due to java generics limitations dynamic serialize is # serializing keys and values as void key = self.typeDeserializationMethod[TType.STRUCT]() @@ -234,26 +237,26 @@ class ThriftSerializationContext(object): def _deserializeSet(self): setType, setSize = self.protocol.readSetBegin() result = set([]) - for n in xrange(setSize): + for n in range(setSize): result.add(self.typeDeserializationMethod[TType.STRUCT]()) self.protocol.readSetEnd() return result def _lookupType(self, obj): pyt = type(obj) - if pythonToThriftMap.has_key(pyt): + 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) - if tt == TType.STRUCT: fqn = obj.__module__.replace('dynamicserialize.dstypes.', '') - if adapters.classAdapterRegistry.has_key(fqn): + if fqn in adapters.classAdapterRegistry: # get proper class name when writing class name to serialization stream # in case we have a special inner-class case m = sys.modules[adapters.classAdapterRegistry[fqn].__name__] @@ -288,12 +291,14 @@ 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 self.typeSerializationMethod.has_key(fieldType): + if fieldType in self.typeSerializationMethod: return self.typeSerializationMethod[fieldType](fieldValue) else: raise dynamicserialize.SerializationException("Unsupported type value " + str(fieldType)) @@ -335,7 +340,7 @@ class ThriftSerializationContext(object): def _serializeMap(self, obj): size = len(obj) self.protocol.writeMapBegin(TType.VOID, TType.VOID, size) - for k in obj.keys(): + for k in list(obj.keys()): self.typeSerializationMethod[TType.STRUCT](k) self.typeSerializationMethod[TType.STRUCT](obj[k]) self.protocol.writeMapEnd() diff --git a/dynamicserialize/__init__.py b/dynamicserialize/__init__.py index c7a94fd..ac73ed7 100644 --- a/dynamicserialize/__init__.py +++ b/dynamicserialize/__init__.py @@ -35,8 +35,8 @@ __all__ = [ ] -import dstypes, adapters -import DynamicSerializationManager +from . import dstypes, adapters +from . import DynamicSerializationManager class SerializationException(Exception): diff --git a/dynamicserialize/adapters/EnumSetAdapter.py b/dynamicserialize/adapters/EnumSetAdapter.py index 9603401..c813f5b 100644 --- a/dynamicserialize/adapters/EnumSetAdapter.py +++ b/dynamicserialize/adapters/EnumSetAdapter.py @@ -52,6 +52,6 @@ def deserialize(context): setSize = context.readI32() enumClassName = context.readString() valList = [] - for i in xrange(setSize): + for i in range(setSize): valList.append(context.readString()) return EnumSet(enumClassName, valList) diff --git a/dynamicserialize/adapters/LockTableAdapter.py b/dynamicserialize/adapters/LockTableAdapter.py index 254b275..d88b103 100644 --- a/dynamicserialize/adapters/LockTableAdapter.py +++ b/dynamicserialize/adapters/LockTableAdapter.py @@ -45,7 +45,7 @@ def serialize(context, lockTable): for lock in locks: wsIdString = lock.getWsId().toString() - if wsIds.has_key(wsIdString): + if wsIdString in wsIds: lockWsIdIndex.append(wsIds[wsIdString]) else: lockWsIdIndex.append(index) @@ -68,12 +68,12 @@ def deserialize(context): parmId = context.readObject() numWsIds = context.readI32() wsIds = [] - for x in xrange(numWsIds): + for x in range(numWsIds): wsIds.append(context.readObject()) numLocks = context.readI32() locks = [] - for x in xrange(numLocks): + for x in range(numLocks): startTime = context.readI64() endTime = context.readI64() wsId = wsIds[context.readI32()] diff --git a/dynamicserialize/adapters/WsIdAdapter.py b/dynamicserialize/adapters/WsIdAdapter.py index 9cb0153..ceb34b7 100644 --- a/dynamicserialize/adapters/WsIdAdapter.py +++ b/dynamicserialize/adapters/WsIdAdapter.py @@ -52,7 +52,7 @@ def deserialize(context): wsId.setUserName(wsIdParts[1]) wsId.setProgName(wsIdParts[2]) wsId.setPid(wsIdParts[3]) - wsId.setThreadId(long(wsIdParts[4])) + wsId.setThreadId(int(wsIdParts[4])) return wsId diff --git a/dynamicserialize/adapters/__init__.py b/dynamicserialize/adapters/__init__.py index 26cbdcd..aa0e0f1 100644 --- a/dynamicserialize/adapters/__init__.py +++ b/dynamicserialize/adapters/__init__.py @@ -66,10 +66,10 @@ classAdapterRegistry = {} def getAdapterRegistry(): import sys for x in __all__: - exec 'import ' + x + exec('import dynamicserialize.adapters.' + x ) m = sys.modules['dynamicserialize.adapters.' + x] d = m.__dict__ - if d.has_key('ClassAdapter'): + if 'ClassAdapter' in d: if isinstance(m.ClassAdapter, list): for clz in m.ClassAdapter: classAdapterRegistry[clz] = m diff --git a/dynamicserialize/dstypes/__init__.py b/dynamicserialize/dstypes/__init__.py index 6a8f2da..2757246 100644 --- a/dynamicserialize/dstypes/__init__.py +++ b/dynamicserialize/dstypes/__init__.py @@ -26,4 +26,3 @@ __all__ = [ 'java' ] - diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/ActiveTableRecord.py b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/ActiveTableRecord.py index 25c19fc..a1e3106 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/ActiveTableRecord.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/ActiveTableRecord.py @@ -26,12 +26,10 @@ # ## -import ActiveTableKey +from . import ActiveTableKey import abc - -class ActiveTableRecord(object): - __metaclass__ = abc.ABCMeta - +from six import with_metaclass +class ActiveTableRecord(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.key = ActiveTableKey.ActiveTableKey() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/OperationalActiveTableRecord.py b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/OperationalActiveTableRecord.py index 86a959c..1c191e3 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/OperationalActiveTableRecord.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/OperationalActiveTableRecord.py @@ -26,9 +26,9 @@ # ## -import ActiveTableRecord +from . import ActiveTableRecord -class OperationalActiveTableRecord(ActiveTableRecord.ActiveTableRecord): +class OperationalActiveTableRecord(ActiveTableRecord): def __init__(self): super(OperationalActiveTableRecord, self).__init__() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/PracticeActiveTableRecord.py b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/PracticeActiveTableRecord.py index d60e78a..ca49cba 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/PracticeActiveTableRecord.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/PracticeActiveTableRecord.py @@ -26,9 +26,9 @@ # ## -import ActiveTableRecord +from . import ActiveTableRecord -class PracticeActiveTableRecord(ActiveTableRecord.ActiveTableRecord): +class PracticeActiveTableRecord(ActiveTableRecord): def __init__(self): super(PracticeActiveTableRecord, self).__init__() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/__init__.py index 6dce1e6..a209f1f 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/__init__.py @@ -41,20 +41,20 @@ __all__ = [ 'response' ] -from ActiveTableKey import ActiveTableKey -from ActiveTableRecord import ActiveTableRecord -from ActiveTableMode import ActiveTableMode -from DumpActiveTableRequest import DumpActiveTableRequest -from DumpActiveTableResponse import DumpActiveTableResponse -from GetActiveTableDictRequest import GetActiveTableDictRequest -from GetActiveTableDictResponse import GetActiveTableDictResponse -from GetFourCharSitesRequest import GetFourCharSitesRequest -from GetFourCharSitesResponse import GetFourCharSitesResponse -from GetVtecAttributeRequest import GetVtecAttributeRequest -from GetVtecAttributeResponse import GetVtecAttributeResponse -from OperationalActiveTableRecord import OperationalActiveTableRecord -from PracticeActiveTableRecord import PracticeActiveTableRecord -from SendPracticeProductRequest import SendPracticeProductRequest -from VTECChange import VTECChange -from VTECTableChangeNotification import VTECTableChangeNotification +from .ActiveTableKey import ActiveTableKey +from .ActiveTableRecord import ActiveTableRecord +from .ActiveTableMode import ActiveTableMode +from .DumpActiveTableRequest import DumpActiveTableRequest +from .DumpActiveTableResponse import DumpActiveTableResponse +from .GetActiveTableDictRequest import GetActiveTableDictRequest +from .GetActiveTableDictResponse import GetActiveTableDictResponse +from .GetFourCharSitesRequest import GetFourCharSitesRequest +from .GetFourCharSitesResponse import GetFourCharSitesResponse +from .GetVtecAttributeRequest import GetVtecAttributeRequest +from .GetVtecAttributeResponse import GetVtecAttributeResponse +from .OperationalActiveTableRecord import OperationalActiveTableRecord +from .PracticeActiveTableRecord import PracticeActiveTableRecord +from .SendPracticeProductRequest import SendPracticeProductRequest +from .VTECChange import VTECChange +from .VTECTableChangeNotification import VTECTableChangeNotification diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/request/__init__.py index d025668..7636aeb 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/request/__init__.py @@ -27,8 +27,8 @@ __all__ = [ 'SendActiveTableRequest' ] -from ClearPracticeVTECTableRequest import ClearPracticeVTECTableRequest -from MergeActiveTableRequest import MergeActiveTableRequest -from RetrieveRemoteActiveTableRequest import RetrieveRemoteActiveTableRequest -from SendActiveTableRequest import SendActiveTableRequest +from .ClearPracticeVTECTableRequest import ClearPracticeVTECTableRequest +from .MergeActiveTableRequest import MergeActiveTableRequest +from .RetrieveRemoteActiveTableRequest import RetrieveRemoteActiveTableRequest +from .SendActiveTableRequest import SendActiveTableRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/response/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/response/__init__.py index 85a8994..32ad861 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/response/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/activetable/response/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'ActiveTableSharingResponse' ] -from ActiveTableSharingResponse import ActiveTableSharingResponse +from .ActiveTableSharingResponse import ActiveTableSharingResponse diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/alertviz/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/alertviz/__init__.py index 91d253d..45db355 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/alertviz/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/alertviz/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'AlertVizRequest' ] -from AlertVizRequest import AlertVizRequest +from .AlertVizRequest import AlertVizRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/AbstractFailedResponse.py b/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/AbstractFailedResponse.py index 36d417f..2d6e991 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/AbstractFailedResponse.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/AbstractFailedResponse.py @@ -22,10 +22,9 @@ import abc +from six import with_metaclass -class AbstractFailedResponse(object): - __metaclass__ = abc.ABCMeta - +class AbstractFailedResponse(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.request = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/__init__.py index d974289..ee77bf9 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/auth/resp/__init__.py @@ -27,8 +27,8 @@ __all__ = [ 'UserNotAuthorized' ] -from AbstractFailedResponse import AbstractFailedResponse -from AuthServerErrorResponse import AuthServerErrorResponse -from SuccessfulExecution import SuccessfulExecution -from UserNotAuthorized import UserNotAuthorized +from .AbstractFailedResponse import AbstractFailedResponse +from .AuthServerErrorResponse import AuthServerErrorResponse +from .SuccessfulExecution import SuccessfulExecution +from .UserNotAuthorized import UserNotAuthorized diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/auth/user/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/auth/user/__init__.py index 81425bf..f570434 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/auth/user/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/auth/user/__init__.py @@ -24,4 +24,4 @@ __all__ = [ 'AuthenticationData' ] -from AuthenticationData import AuthenticationData +from .AuthenticationData import AuthenticationData diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/DefaultDataRequest.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/DefaultDataRequest.py index 7fbf286..bf1a6d3 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/DefaultDataRequest.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/DefaultDataRequest.py @@ -56,10 +56,10 @@ class DefaultDataRequest(IDataRequest): del self.identifiers[key] def setParameters(self, *params): - self.parameters = map(str, params) + self.parameters = list(map(str, params)) def setLevels(self, *levels): - self.levels = map(self.__makeLevel, levels) + self.levels = list(map(self.__makeLevel, levels)) def __makeLevel(self, level): if type(level) is Level: @@ -73,7 +73,7 @@ class DefaultDataRequest(IDataRequest): self.envelope = Envelope(env.envelope) def setLocationNames(self, *locationNames): - self.locationNames = map(str, locationNames) + self.locationNames = list(map(str, locationNames)) def getDatatype(self): return self.datatype diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/__init__.py index f9a76ac..5d57bfb 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/impl/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'DefaultDataRequest' ] -from DefaultDataRequest import DefaultDataRequest +from .DefaultDataRequest import DefaultDataRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractDataAccessRequest.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractDataAccessRequest.py index 1d64796..9ce388e 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractDataAccessRequest.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractDataAccessRequest.py @@ -31,10 +31,8 @@ import abc - -class AbstractDataAccessRequest(object): - __metaclass__ = abc.ABCMeta - +from six import with_metaclass +class AbstractDataAccessRequest(with_metaclass(abc.ABCMeta, object)): def __init__(self): self.requestParameters = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractIdentifierRequest.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractIdentifierRequest.py index 0288580..eeca6ca 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractIdentifierRequest.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/AbstractIdentifierRequest.py @@ -30,10 +30,9 @@ # import abc +from six import with_metaclass -class AbstractIdentifierRequest(object): - __metaclass__ = abc.ABCMeta - +class AbstractIdentifierRequest(with_metaclass(abc.ABCMeta, object)): def __init__(self): self.datatype = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/__init__.py index 75a770d..f85be8b 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/request/__init__.py @@ -34,15 +34,15 @@ __all__ = [ 'GetOptionalIdentifiersRequest' ] -from AbstractDataAccessRequest import AbstractDataAccessRequest -from AbstractIdentifierRequest import AbstractIdentifierRequest -from GetAvailableLevelsRequest import GetAvailableLevelsRequest -from GetAvailableLocationNamesRequest import GetAvailableLocationNamesRequest -from GetAvailableParametersRequest import GetAvailableParametersRequest -from GetAvailableTimesRequest import GetAvailableTimesRequest -from GetGeometryDataRequest import GetGeometryDataRequest -from GetGridDataRequest import GetGridDataRequest -from GetRequiredIdentifiersRequest import GetRequiredIdentifiersRequest -from GetSupportedDatatypesRequest import GetSupportedDatatypesRequest -from GetOptionalIdentifiersRequest import GetOptionalIdentifiersRequest +from .AbstractDataAccessRequest import AbstractDataAccessRequest +from .AbstractIdentifierRequest import AbstractIdentifierRequest +from .GetAvailableLevelsRequest import GetAvailableLevelsRequest +from .GetAvailableLocationNamesRequest import GetAvailableLocationNamesRequest +from .GetAvailableParametersRequest import GetAvailableParametersRequest +from .GetAvailableTimesRequest import GetAvailableTimesRequest +from .GetGeometryDataRequest import GetGeometryDataRequest +from .GetGridDataRequest import GetGridDataRequest +from .GetRequiredIdentifiersRequest import GetRequiredIdentifiersRequest +from .GetSupportedDatatypesRequest import GetSupportedDatatypesRequest +from .GetOptionalIdentifiersRequest import GetOptionalIdentifiersRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/AbstractResponseData.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/AbstractResponseData.py index 801763a..6482ec5 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/AbstractResponseData.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/AbstractResponseData.py @@ -21,11 +21,10 @@ # File auto-generated against equivalent DynamicSerialize Java class import abc +from six import with_metaclass -class AbstractResponseData(object): - __metaclass__ = abc.ABCMeta - +class AbstractResponseData(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.time = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/__init__.py index 9b88d47..491d3f3 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataaccess/response/__init__.py @@ -28,9 +28,9 @@ __all__ = [ 'GridResponseData' ] -from AbstractResponseData import AbstractResponseData -from GeometryResponseData import GeometryResponseData -from GetGeometryDataResponse import GetGeometryDataResponse -from GetGridDataResponse import GetGridDataResponse -from GridResponseData import GridResponseData +from .AbstractResponseData import AbstractResponseData +from .GeometryResponseData import GeometryResponseData +from .GetGeometryDataResponse import GetGeometryDataResponse +from .GetGridDataResponse import GetGridDataResponse +from .GridResponseData import GridResponseData diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/events/hazards/requests/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/events/hazards/requests/__init__.py index e9e81a9..1cf5210 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/events/hazards/requests/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/events/hazards/requests/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'RegionLookupRequest' ] -from RegionLookupRequest import RegionLookupRequest +from .RegionLookupRequest import RegionLookupRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/__init__.py index 3cce4f9..f8dcfce 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/__init__.py @@ -39,5 +39,5 @@ __all__ = [ 'weather' ] -from GridDataHistory import GridDataHistory +from .GridDataHistory import GridDataHistory diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/config/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/config/__init__.py index 2b663f3..485645a 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/config/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/config/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'ProjectionData' ] -from ProjectionData import ProjectionData +from .ProjectionData import ProjectionData diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/db/objects/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/db/objects/__init__.py index 8ff9bb9..7de4112 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/db/objects/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/db/objects/__init__.py @@ -29,10 +29,10 @@ __all__ = [ 'TimeConstraints' ] -from DatabaseID import DatabaseID -from GFERecord import GFERecord -from GridLocation import GridLocation -from GridParmInfo import GridParmInfo -from ParmID import ParmID -from TimeConstraints import TimeConstraints +from .DatabaseID import DatabaseID +from .GFERecord import GFERecord +from .GridLocation import GridLocation +from .GridParmInfo import GridParmInfo +from .ParmID import ParmID +from .TimeConstraints import TimeConstraints diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/discrete/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/discrete/__init__.py index 7e837ea..1c34157 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/discrete/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/discrete/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'DiscreteKey' ] -from DiscreteKey import DiscreteKey +from .DiscreteKey import DiscreteKey diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/grid/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/grid/__init__.py index fbe02f5..f59fd07 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/grid/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/grid/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'Grid2DFloat' ] -from Grid2DByte import Grid2DByte -from Grid2DFloat import Grid2DFloat +from .Grid2DByte import Grid2DByte +from .Grid2DFloat import Grid2DFloat diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/AbstractGfeRequest.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/AbstractGfeRequest.py index a6ab957..b31ba16 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/AbstractGfeRequest.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/AbstractGfeRequest.py @@ -21,11 +21,10 @@ # File auto-generated against equivalent DynamicSerialize Java class import abc +from six import with_metaclass -class AbstractGfeRequest(object): - __metaclass__ = abc.ABCMeta - +class AbstractGfeRequest(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.siteID = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/GetGridDataRequest.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/GetGridDataRequest.py index 43be6e0..725c3a3 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/GetGridDataRequest.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/GetGridDataRequest.py @@ -23,11 +23,10 @@ import abc from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.request import GetGridRequest +from six import with_metaclass -class GetGridDataRequest(object): - __metaclass__ = abc.ABCMeta - +class GetGridDataRequest(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.requests = [] diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/__init__.py index 8cea5cd..eedcac5 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/request/__init__.py @@ -54,30 +54,30 @@ __all__ = [ 'RsyncGridsToCWFRequest', ] -from AbstractGfeRequest import AbstractGfeRequest -from CommitGridsRequest import CommitGridsRequest -from ConfigureTextProductsRequest import ConfigureTextProductsRequest -from ExecuteIfpNetCDFGridRequest import ExecuteIfpNetCDFGridRequest -from ExecuteIscMosaicRequest import ExecuteIscMosaicRequest -from ExportGridsRequest import ExportGridsRequest -from GetASCIIGridsRequest import GetASCIIGridsRequest -from GetGridDataRequest import GetGridDataRequest -from GetGridInventoryRequest import GetGridInventoryRequest -from GetLatestDbTimeRequest import GetLatestDbTimeRequest -from GetLatestModelDbIdRequest import GetLatestModelDbIdRequest -from GetLockTablesRequest import GetLockTablesRequest -from GetOfficialDbNameRequest import GetOfficialDbNameRequest -from GetParmListRequest import GetParmListRequest -from GetSelectTimeRangeRequest import GetSelectTimeRangeRequest -from GetSingletonDbIdsRequest import GetSingletonDbIdsRequest -from GetSiteTimeZoneInfoRequest import GetSiteTimeZoneInfoRequest -from GridLocRequest import GridLocRequest -from IscDataRecRequest import IscDataRecRequest -from LockChangeRequest import LockChangeRequest -from ProcessReceivedConfRequest import ProcessReceivedConfRequest -from ProcessReceivedDigitalDataRequest import ProcessReceivedDigitalDataRequest -from PurgeGfeGridsRequest import PurgeGfeGridsRequest -from SaveASCIIGridsRequest import SaveASCIIGridsRequest -from SmartInitRequest import SmartInitRequest -from RsyncGridsToCWFRequest import RsyncGridsToCWFRequest +from .AbstractGfeRequest import AbstractGfeRequest +from .CommitGridsRequest import CommitGridsRequest +from .ConfigureTextProductsRequest import ConfigureTextProductsRequest +from .ExecuteIfpNetCDFGridRequest import ExecuteIfpNetCDFGridRequest +from .ExecuteIscMosaicRequest import ExecuteIscMosaicRequest +from .ExportGridsRequest import ExportGridsRequest +from .GetASCIIGridsRequest import GetASCIIGridsRequest +from .GetGridDataRequest import GetGridDataRequest +from .GetGridInventoryRequest import GetGridInventoryRequest +from .GetLatestDbTimeRequest import GetLatestDbTimeRequest +from .GetLatestModelDbIdRequest import GetLatestModelDbIdRequest +from .GetLockTablesRequest import GetLockTablesRequest +from .GetOfficialDbNameRequest import GetOfficialDbNameRequest +from .GetParmListRequest import GetParmListRequest +from .GetSelectTimeRangeRequest import GetSelectTimeRangeRequest +from .GetSingletonDbIdsRequest import GetSingletonDbIdsRequest +from .GetSiteTimeZoneInfoRequest import GetSiteTimeZoneInfoRequest +from .GridLocRequest import GridLocRequest +from .IscDataRecRequest import IscDataRecRequest +from .LockChangeRequest import LockChangeRequest +from .ProcessReceivedConfRequest import ProcessReceivedConfRequest +from .ProcessReceivedDigitalDataRequest import ProcessReceivedDigitalDataRequest +from .PurgeGfeGridsRequest import PurgeGfeGridsRequest +from .SaveASCIIGridsRequest import SaveASCIIGridsRequest +from .SmartInitRequest import SmartInitRequest +from .RsyncGridsToCWFRequest import RsyncGridsToCWFRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/lock/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/lock/__init__.py index aa2715f..ea63b44 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/lock/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/lock/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'LockTable' ] -from Lock import Lock -from LockTable import LockTable +from .Lock import Lock +from .LockTable import LockTable diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/ServerResponse.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/ServerResponse.py index 36635f9..a476ddb 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/ServerResponse.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/ServerResponse.py @@ -61,5 +61,5 @@ class ServerResponse(object): def __str__(self): return self.message() - def __nonzero__(self): + def __bool__(self): return self.isOkay() \ No newline at end of file diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/__init__.py index 868bbc0..0f8839d 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/message/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'ServerResponse' ] -from ServerMsg import ServerMsg -from ServerResponse import ServerResponse +from .ServerMsg import ServerMsg +from .ServerResponse import ServerResponse diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/CombinationsFileChangedNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/CombinationsFileChangedNotification.py index 6c55f30..8b69723 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/CombinationsFileChangedNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/CombinationsFileChangedNotification.py @@ -26,7 +26,7 @@ # ## -import GfeNotification +from . import GfeNotification class CombinationsFileChangedNotification(GfeNotification.GfeNotification): diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/DBInvChangeNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/DBInvChangeNotification.py index 090fd97..c687e38 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/DBInvChangeNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/DBInvChangeNotification.py @@ -28,7 +28,7 @@ # ## -import GfeNotification +from . import GfeNotification class DBInvChangeNotification(GfeNotification.GfeNotification): diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GfeNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GfeNotification.py index 4da53d1..d0f0ad8 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GfeNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GfeNotification.py @@ -25,10 +25,9 @@ # ## import abc +from six import with_metaclass -class GfeNotification(object): - __metaclass__ = abc.ABCMeta - +class GfeNotification(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.siteID = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridHistoryUpdateNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridHistoryUpdateNotification.py index f989fde..2bf448c 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridHistoryUpdateNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridHistoryUpdateNotification.py @@ -26,9 +26,9 @@ # ## -import GfeNotification +from . import GfeNotification -class GridHistoryUpdateNotification(GfeNotification.GfeNotification): +class GridHistoryUpdateNotification(GfeNotification): def __init__(self): super(GridHistoryUpdateNotification, self).__init__() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridUpdateNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridUpdateNotification.py index 2bc1f16..b0dcef6 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridUpdateNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/GridUpdateNotification.py @@ -27,9 +27,9 @@ # ## -import GfeNotification +from . import GfeNotification -class GridUpdateNotification(GfeNotification.GfeNotification): +class GridUpdateNotification(GfeNotification): def __init__(self): super(GridUpdateNotification, self).__init__() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/LockNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/LockNotification.py index a86a507..abed54e 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/LockNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/LockNotification.py @@ -27,9 +27,9 @@ # ## -import GfeNotification +from . import GfeNotification -class LockNotification(GfeNotification.GfeNotification): +class LockNotification(GfeNotification): def __init__(self): super(LockNotification, self).__init__() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/ServiceBackupJobStatusNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/ServiceBackupJobStatusNotification.py index 0081481..78b1283 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/ServiceBackupJobStatusNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/ServiceBackupJobStatusNotification.py @@ -26,9 +26,9 @@ # ## -import GfeNotification +from . import GfeNotification -class ServiceBackupJobStatusNotification(GfeNotification.GfeNotification): +class ServiceBackupJobStatusNotification(GfeNotification): def __init__(self): super(ServiceBackupJobStatusNotification, self).__init__() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/UserMessageNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/UserMessageNotification.py index 06ba5cd..8c6bcba 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/UserMessageNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/UserMessageNotification.py @@ -26,9 +26,8 @@ # ## -import GfeNotification - -class UserMessageNotification(GfeNotification.GfeNotification): +from . import GfeNotification +class UserMessageNotification(GfeNotification): def __init__(self): super(UserMessageNotification, self).__init__() diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/__init__.py index f58c70b..9cac95d 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/notify/__init__.py @@ -31,12 +31,12 @@ __all__ = [ 'UserMessageNotification' ] -from CombinationsFileChangedNotification import CombinationsFileChangedNotification -from DBInvChangeNotification import DBInvChangeNotification -from GfeNotification import GfeNotification -from GridHistoryUpdateNotification import GridHistoryUpdateNotification -from GridUpdateNotification import GridUpdateNotification -from LockNotification import LockNotification -from ServiceBackupJobStatusNotification import ServiceBackupJobStatusNotification -from UserMessageNotification import UserMessageNotification +from .CombinationsFileChangedNotification import CombinationsFileChangedNotification +from .DBInvChangeNotification import DBInvChangeNotification +from .GfeNotification import GfeNotification +from .GridHistoryUpdateNotification import GridHistoryUpdateNotification +from .GridUpdateNotification import GridUpdateNotification +from .LockNotification import LockNotification +from .ServiceBackupJobStatusNotification import ServiceBackupJobStatusNotification +from .UserMessageNotification import UserMessageNotification diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/request/__init__.py index aca4b9d..d710e66 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/server/request/__init__.py @@ -27,8 +27,8 @@ __all__ = [ 'LockTableRequest' ] -from CommitGridRequest import CommitGridRequest -from GetGridRequest import GetGridRequest -from LockRequest import LockRequest -from LockTableRequest import LockTableRequest +from .CommitGridRequest import CommitGridRequest +from .GetGridRequest import GetGridRequest +from .LockRequest import LockRequest +from .LockTableRequest import LockTableRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/AbstractGridSlice.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/AbstractGridSlice.py index d1bb11b..65832cd 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/AbstractGridSlice.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/AbstractGridSlice.py @@ -19,11 +19,9 @@ ## import abc +from six import with_metaclass - -class AbstractGridSlice(object): - __metaclass__ = abc.ABCMeta - +class AbstractGridSlice(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.validTime = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/__init__.py index c2140d8..f3430ba 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/slice/__init__.py @@ -28,9 +28,9 @@ __all__ = [ 'WeatherGridSlice' ] -from AbstractGridSlice import AbstractGridSlice -from DiscreteGridSlice import DiscreteGridSlice -from ScalarGridSlice import ScalarGridSlice -from VectorGridSlice import VectorGridSlice -from WeatherGridSlice import WeatherGridSlice +from .AbstractGridSlice import AbstractGridSlice +from .DiscreteGridSlice import DiscreteGridSlice +from .ScalarGridSlice import ScalarGridSlice +from .VectorGridSlice import VectorGridSlice +from .WeatherGridSlice import WeatherGridSlice diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/svcbu/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/svcbu/__init__.py index 5413785..f2af1fc 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/svcbu/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/svcbu/__init__.py @@ -30,4 +30,4 @@ __all__ = [ 'JobProgress', ] -from JobProgress import JobProgress +from .JobProgress import JobProgress diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/weather/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/weather/__init__.py index b241dd9..9efb235 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/weather/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/gfe/weather/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'WeatherSubKey' ] -from WeatherKey import WeatherKey -from WeatherSubKey import WeatherSubKey +from .WeatherKey import WeatherKey +from .WeatherSubKey import WeatherSubKey diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/grid/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/grid/request/__init__.py index dcbe795..dcb199f 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/grid/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/grid/request/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'DeleteAllGridDataRequest' ] -from DeleteAllGridDataRequest import DeleteAllGridDataRequest +from .DeleteAllGridDataRequest import DeleteAllGridDataRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/Level.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/Level.py index e5b56c0..32bc996 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/Level.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/Level.py @@ -36,7 +36,7 @@ import numpy import re -from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.level import MasterLevel +from .MasterLevel import MasterLevel LEVEL_NAMING_REGEX = re.compile("^(\d*(?:\.\d*)?)(?:_(\d*(?:\.\d*)?))?([a-zA-Z]+)$") @@ -45,7 +45,7 @@ INVALID_VALUE = numpy.float64(-999999) class Level(object): def __init__(self, levelString=None): - self.id = 0L + self.id = 0 self.identifier = None self.masterLevel = None self.levelonevalue = INVALID_VALUE @@ -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) diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/__init__.py index 9e5a9fb..97b4729 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/level/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'MasterLevel' ] -from Level import Level -from MasterLevel import MasterLevel +from .Level import Level +from .MasterLevel import MasterLevel diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/message/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/message/__init__.py index 95d6060..cf5a62b 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/message/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/message/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'DataURINotificationMessage' ] -from DataURINotificationMessage import DataURINotificationMessage +from .DataURINotificationMessage import DataURINotificationMessage diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/request/__init__.py index e8c9e13..0231869 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/request/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'GetRadarDataRecordRequest' ] -from GetRadarDataRecordRequest import GetRadarDataRecordRequest +from .GetRadarDataRecordRequest import GetRadarDataRecordRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/response/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/response/__init__.py index 914b29b..54c07d1 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/response/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/radar/response/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'RadarDataRecord' ] -from GetRadarDataRecordResponse import GetRadarDataRecordResponse -from RadarDataRecord import RadarDataRecord +from .GetRadarDataRecordResponse import GetRadarDataRecordResponse +from .RadarDataRecord import RadarDataRecord diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/dbsrv/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/dbsrv/__init__.py index c9568bf..2f94fc0 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/dbsrv/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/dbsrv/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'TextDBRequest' ] -from TextDBRequest import TextDBRequest +from .TextDBRequest import TextDBRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/request/__init__.py index 93b51c5..7bf5ac4 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/dataplugin/text/request/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'SubscriptionRequest' ] -from SubscriptionRequest import SubscriptionRequest +from .SubscriptionRequest import SubscriptionRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/__init__.py index 5d2f79c..78a3093 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/__init__.py @@ -40,6 +40,6 @@ __all__ = [ 'StorageStatus', ] -from Request import Request -from StorageProperties import StorageProperties -from StorageStatus import StorageStatus +from .Request import Request +from .StorageProperties import StorageProperties +from .StorageStatus import StorageStatus diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/records/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/records/__init__.py index 9fa7b23..1798841 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/records/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/datastorage/records/__init__.py @@ -43,11 +43,11 @@ __all__ = [ 'StringDataRecord' ] -from ByteDataRecord import ByteDataRecord -from DoubleDataRecord import DoubleDataRecord -from FloatDataRecord import FloatDataRecord -from IntegerDataRecord import IntegerDataRecord -from LongDataRecord import LongDataRecord -from ShortDataRecord import ShortDataRecord -from StringDataRecord import StringDataRecord +from .ByteDataRecord import ByteDataRecord +from .DoubleDataRecord import DoubleDataRecord +from .FloatDataRecord import FloatDataRecord +from .IntegerDataRecord import IntegerDataRecord +from .LongDataRecord import LongDataRecord +from .ShortDataRecord import ShortDataRecord +from .StringDataRecord import StringDataRecord diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/LocalizationLevel.py b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/LocalizationLevel.py index f8cd2af..7731873 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/LocalizationLevel.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/LocalizationLevel.py @@ -43,7 +43,7 @@ knownLevels = {"BASE": {"text" : "BASE", class LocalizationLevel(object): def __init__(self, level, order=750, systemLevel=False): - if knownLevels.has_key(level.upper()): + if level.upper() in knownLevels: self.text = level.upper() self.order = knownLevels[self.text]["order"] self.systemLevel = knownLevels[self.text]["systemLevel"] diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/__init__.py index d2f66b4..3a13605 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/__init__.py @@ -28,7 +28,7 @@ __all__ = [ 'stream' ] -from LocalizationContext import LocalizationContext -from LocalizationLevel import LocalizationLevel -from LocalizationType import LocalizationType +from .LocalizationContext import LocalizationContext +from .LocalizationLevel import LocalizationLevel +from .LocalizationType import LocalizationType diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/msgs/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/msgs/__init__.py index 16698ec..e52d13a 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/msgs/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/msgs/__init__.py @@ -31,12 +31,12 @@ __all__ = [ 'UtilityResponseMessage' ] -from DeleteUtilityCommand import DeleteUtilityCommand -from DeleteUtilityResponse import DeleteUtilityResponse -from ListResponseEntry import ListResponseEntry -from ListUtilityCommand import ListUtilityCommand -from ListUtilityResponse import ListUtilityResponse -from PrivilegedUtilityRequestMessage import PrivilegedUtilityRequestMessage -from UtilityRequestMessage import UtilityRequestMessage -from UtilityResponseMessage import UtilityResponseMessage +from .DeleteUtilityCommand import DeleteUtilityCommand +from .DeleteUtilityResponse import DeleteUtilityResponse +from .ListResponseEntry import ListResponseEntry +from .ListUtilityCommand import ListUtilityCommand +from .ListUtilityResponse import ListUtilityResponse +from .PrivilegedUtilityRequestMessage import PrivilegedUtilityRequestMessage +from .UtilityRequestMessage import UtilityRequestMessage +from .UtilityResponseMessage import UtilityResponseMessage diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/AbstractLocalizationStreamRequest.py b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/AbstractLocalizationStreamRequest.py index 2d5fd3d..c0a61e9 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/AbstractLocalizationStreamRequest.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/AbstractLocalizationStreamRequest.py @@ -23,10 +23,9 @@ import abc import os from dynamicserialize.dstypes.com.raytheon.uf.common.plugin.nwsauth.user import User +from six import with_metaclass -class AbstractLocalizationStreamRequest(object): - __metaclass__ = abc.ABCMeta - +class AbstractLocalizationStreamRequest(with_metaclass(abc.ABCMeta, object)): @abc.abstractmethod def __init__(self): self.context = None diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/__init__.py index adf43bb..6034e57 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/localization/stream/__init__.py @@ -26,7 +26,7 @@ __all__ = [ 'LocalizationStreamPutRequest' ] -from AbstractLocalizationStreamRequest import AbstractLocalizationStreamRequest -from LocalizationStreamGetRequest import LocalizationStreamGetRequest -from LocalizationStreamPutRequest import LocalizationStreamPutRequest +from .AbstractLocalizationStreamRequest import AbstractLocalizationStreamRequest +from .LocalizationStreamGetRequest import LocalizationStreamGetRequest +from .LocalizationStreamPutRequest import LocalizationStreamPutRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/__init__.py index fe82ea9..7cb4f82 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/__init__.py @@ -26,6 +26,6 @@ __all__ = [ 'diagnostic' ] -from ChangeContextRequest import ChangeContextRequest -from PassThroughRequest import PassThroughRequest +from .ChangeContextRequest import ChangeContextRequest +from .PassThroughRequest import PassThroughRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/diagnostic/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/diagnostic/__init__.py index 8a60ea5..2b41204 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/diagnostic/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/management/request/diagnostic/__init__.py @@ -26,7 +26,7 @@ __all__ = [ 'StatusRequest' ] -from GetClusterMembersRequest import GetClusterMembersRequest -from GetContextsRequest import GetContextsRequest -from StatusRequest import StatusRequest +from .GetClusterMembersRequest import GetClusterMembersRequest +from .GetContextsRequest import GetContextsRequest +from .StatusRequest import StatusRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/management/response/diagnostic/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/management/response/diagnostic/__init__.py index b32f23f..8e2140d 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/management/response/diagnostic/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/management/response/diagnostic/__init__.py @@ -26,7 +26,7 @@ __all__ = [ 'StatusResponse' ] -from ClusterMembersResponse import ClusterMembersResponse -from ContextsResponse import ContextsResponse -from StatusResponse import StatusResponse +from .ClusterMembersResponse import ClusterMembersResponse +from .ContextsResponse import ContextsResponse +from .StatusResponse import StatusResponse diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/message/Header.py b/dynamicserialize/dstypes/com/raytheon/uf/common/message/Header.py index 04f3163..43b5de6 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/message/Header.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/message/Header.py @@ -20,7 +20,7 @@ # File auto-generated against equivalent DynamicSerialize Java class -from Property import Property +from .Property import Property class Header(object): @@ -31,7 +31,7 @@ class Header(object): self.properties = properties if multimap is not None: - for k, l in multimap.iteritems(): + for k, l in multimap.items(): for v in l: self.properties.append(Property(k, v)) diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/message/WsId.py b/dynamicserialize/dstypes/com/raytheon/uf/common/message/WsId.py index 15930ea..7a73d09 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/message/WsId.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/message/WsId.py @@ -31,7 +31,10 @@ import struct import socket import os import pwd -import thread +try: + import _thread +except ImportError: + import thread as _thread class WsId(object): @@ -50,7 +53,7 @@ class WsId(object): self.pid = os.getpid() - self.threadId = long(thread.get_ident()) + self.threadId = int(_thread.get_ident()) def getNetworkId(self): return self.networkId diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/message/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/message/__init__.py index 02c3271..7f0ab80 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/message/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/message/__init__.py @@ -40,8 +40,8 @@ __all__ = [ # -from Body import Body -from Header import Header -from Message import Message -from Property import Property -from WsId import WsId +from .Body import Body +from .Header import Header +from .Message import Message +from .Property import Property +from .WsId import WsId diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/plugin/nwsauth/user/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/plugin/nwsauth/user/__init__.py index 6e75df2..d5300b1 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/plugin/nwsauth/user/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/plugin/nwsauth/user/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'UserId' ] -from User import User -from UserId import UserId +from .User import User +from .UserId import UserId diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/pointdata/requests/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/pointdata/requests/__init__.py index 04b0504..4b4b827 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/pointdata/requests/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/pointdata/requests/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'NewAdaptivePlotRequest' ] -from NewAdaptivePlotRequest import NewAdaptivePlotRequest +from .NewAdaptivePlotRequest import NewAdaptivePlotRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/__init__.py index 5ccac6e..255d8d5 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/__init__.py @@ -26,5 +26,5 @@ __all__ = [ 'response' ] -from PointTest import PointTest +from .PointTest import PointTest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/request/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/request/__init__.py index 648ea66..bcfdcd9 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/request/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/request/__init__.py @@ -33,13 +33,13 @@ __all__ = [ 'StoreRequest' ] -from CopyRequest import CopyRequest -from CreateDatasetRequest import CreateDatasetRequest -from DatasetDataRequest import DatasetDataRequest -from DatasetNamesRequest import DatasetNamesRequest -from DeleteFilesRequest import DeleteFilesRequest -from DeleteRequest import DeleteRequest -from GroupsRequest import GroupsRequest -from RepackRequest import RepackRequest -from RetrieveRequest import RetrieveRequest -from StoreRequest import StoreRequest +from .CopyRequest import CopyRequest +from .CreateDatasetRequest import CreateDatasetRequest +from .DatasetDataRequest import DatasetDataRequest +from .DatasetNamesRequest import DatasetNamesRequest +from .DeleteFilesRequest import DeleteFilesRequest +from .DeleteRequest import DeleteRequest +from .GroupsRequest import GroupsRequest +from .RepackRequest import RepackRequest +from .RetrieveRequest import RetrieveRequest +from .StoreRequest import StoreRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/response/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/response/__init__.py index e5087b4..f661cde 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/response/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/pypies/response/__init__.py @@ -28,8 +28,8 @@ __all__ = [ 'StoreResponse' ] -from DeleteResponse import DeleteResponse -from ErrorResponse import ErrorResponse -from FileActionResponse import FileActionResponse -from RetrieveResponse import RetrieveResponse -from StoreResponse import StoreResponse +from .DeleteResponse import DeleteResponse +from .ErrorResponse import ErrorResponse +from .FileActionResponse import FileActionResponse +from .RetrieveResponse import RetrieveResponse +from .StoreResponse import StoreResponse diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/SerializableExceptionWrapper.py b/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/SerializableExceptionWrapper.py index 1ebdbff..d26712e 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/SerializableExceptionWrapper.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/SerializableExceptionWrapper.py @@ -39,8 +39,8 @@ class SerializableExceptionWrapper(object): def __repr__(self): if not self.message: - self.message = '' - retVal = "" + self.exceptionClass + " exception thrown: " + self.message + "\n" + self.message = b'' + retVal = b"" + self.exceptionClass + b" exception thrown: " + self.message + b"\n" for element in self.stackTrace: retVal += "\tat " + str(element) + "\n" diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/__init__.py index 8ef58ba..ddb4f94 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/__init__.py @@ -38,4 +38,4 @@ __all__ = [ 'SerializableExceptionWrapper', ] -from SerializableExceptionWrapper import SerializableExceptionWrapper +from .SerializableExceptionWrapper import SerializableExceptionWrapper diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/comm/response/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/comm/response/__init__.py index 01fb829..847d1c0 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/comm/response/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/serialization/comm/response/__init__.py @@ -37,4 +37,4 @@ __all__ = [ 'ServerErrorResponse', ] -from ServerErrorResponse import ServerErrorResponse +from .ServerErrorResponse import ServerErrorResponse diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/ClusterActivationNotification.py b/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/ClusterActivationNotification.py index 7fc0686..f2997a8 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/ClusterActivationNotification.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/ClusterActivationNotification.py @@ -27,7 +27,7 @@ ## # File auto-generated against equivalent DynamicSerialize Java class -from SiteActivationNotification import SiteActivationNotification +from .SiteActivationNotification import SiteActivationNotification class ClusterActivationNotification(SiteActivationNotification): def __init__(self): diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/__init__.py index f51b08a..d86bc94 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/site/notify/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'SiteActivationNotification', ] -from ClusterActivationNotification import ClusterActivationNotification -from SiteActivationNotification import SiteActivationNotification +from .ClusterActivationNotification import ClusterActivationNotification +from .SiteActivationNotification import SiteActivationNotification diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/site/requests/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/site/requests/__init__.py index 429423f..c5ca4b9 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/site/requests/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/site/requests/__init__.py @@ -26,7 +26,7 @@ __all__ = [ 'GetActiveSitesRequest', ] -from ActivateSiteRequest import ActivateSiteRequest -from DeactivateSiteRequest import DeactivateSiteRequest -from GetActiveSitesRequest import GetActiveSitesRequest +from .ActivateSiteRequest import ActivateSiteRequest +from .DeactivateSiteRequest import DeactivateSiteRequest +from .GetActiveSitesRequest import GetActiveSitesRequest diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/time/DataTime.py b/dynamicserialize/dstypes/com/raytheon/uf/common/time/DataTime.py index 7b20af8..6dc4088 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/time/DataTime.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/time/DataTime.py @@ -40,12 +40,12 @@ import calendar import datetime import numpy import time -import StringIO +from six.moves import cStringIO as StringIO from dynamicserialize.dstypes.java.util import Date from dynamicserialize.dstypes.java.util import EnumSet -from TimeRange import TimeRange +from .TimeRange import TimeRange class DataTime(object): @@ -60,19 +60,19 @@ class DataTime(object): if self.refTime is not None: if isinstance(self.refTime, datetime.datetime): - self.refTime = long(calendar.timegm(self.refTime.utctimetuple()) * 1000) + self.refTime = int(calendar.timegm(self.refTime.utctimetuple()) * 1000) elif isinstance(self.refTime, time.struct_time): - self.refTime = long(calendar.timegm(self.refTime) * 1000) + self.refTime = int(calendar.timegm(self.refTime) * 1000) elif hasattr(self.refTime, 'getTime'): # getTime should be returning ms, there is no way to check this # This is expected for java Date - self.refTime = long(self.refTime.getTime()) + self.refTime = int(self.refTime.getTime()) else: - self.refTime = long(refTime) + self.refTime = int(refTime) self.refTime = Date(self.refTime) if self.validPeriod is None: - validTimeMillis = self.refTime.getTime() + long(self.fcstTime * 1000) + validTimeMillis = self.refTime.getTime() + int(self.fcstTime * 1000) self.validPeriod = TimeRange() self.validPeriod.setStart(validTimeMillis / 1000) self.validPeriod.setEnd(validTimeMillis / 1000) @@ -114,7 +114,7 @@ class DataTime(object): self.levelValue = numpy.float64(levelValue) def __str__(self): - buffer = StringIO.StringIO() + buffer = StringIO() if self.refTime is not None: refTimeInSecs = self.refTime.getTime() / 1000 diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/time/TimeRange.py b/dynamicserialize/dstypes/com/raytheon/uf/common/time/TimeRange.py index 329bb74..34b2c52 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/time/TimeRange.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/time/TimeRange.py @@ -80,10 +80,10 @@ class TimeRange(object): return datetime.datetime(*timeArg[:6]) elif isinstance(timeArg, float): # seconds as float, should be avoided due to floating point errors - totalSecs = long(timeArg) + totalSecs = int(timeArg) micros = int((timeArg - totalSecs) * MICROS_IN_SECOND) return self.__convertSecsAndMicros(totalSecs, micros) - elif isinstance(timeArg, (int, long)): + elif isinstance(timeArg, int): # seconds as integer totalSecs = timeArg return self.__convertSecsAndMicros(totalSecs, 0) @@ -114,7 +114,7 @@ class TimeRange(object): return self._getInMillis(self.end) def _getInMillis(self, time): - rval = long(calendar.timegm(time.utctimetuple()) * 1000) + rval = int(calendar.timegm(time.utctimetuple()) * 1000) rval += time.microsecond // 1000 return rval @@ -123,7 +123,7 @@ class TimeRange(object): def duration(self): delta = self.end - self.start - return long(delta.total_seconds()) + return int(delta.total_seconds()) def contains(self, timeArg): if isinstance(timeArg, TimeRange): diff --git a/dynamicserialize/dstypes/com/raytheon/uf/common/time/__init__.py b/dynamicserialize/dstypes/com/raytheon/uf/common/time/__init__.py index a31aacc..5f570f5 100644 --- a/dynamicserialize/dstypes/com/raytheon/uf/common/time/__init__.py +++ b/dynamicserialize/dstypes/com/raytheon/uf/common/time/__init__.py @@ -25,6 +25,6 @@ __all__ = [ 'TimeRange' ] -from DataTime import DataTime -from TimeRange import TimeRange +from .DataTime import DataTime +from .TimeRange import TimeRange diff --git a/dynamicserialize/dstypes/com/vividsolutions/jts/geom/__init__.py b/dynamicserialize/dstypes/com/vividsolutions/jts/geom/__init__.py index 95449c8..18d2f36 100644 --- a/dynamicserialize/dstypes/com/vividsolutions/jts/geom/__init__.py +++ b/dynamicserialize/dstypes/com/vividsolutions/jts/geom/__init__.py @@ -26,7 +26,7 @@ __all__ = [ 'Geometry' ] -from Coordinate import Coordinate -from Envelope import Envelope -from Geometry import Geometry +from .Coordinate import Coordinate +from .Envelope import Envelope +from .Geometry import Geometry diff --git a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gempak/request/__init__.py b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gempak/request/__init__.py index 615510b..7f426a7 100644 --- a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gempak/request/__init__.py +++ b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gempak/request/__init__.py @@ -12,11 +12,11 @@ __all__ = [ 'GetGridNavRequest' ] -from GetTimesRequest import GetTimesRequest -from GetStationsRequest import GetStationsRequest -from GetTimesResponse import GetTimesResponse -from Station import Station -from StationDataRequest import StationDataRequest -from GetGridDataRequest import GetGridDataRequest -from GetGridInfoRequest import GetGridInfoRequest -from GetGridNavRequest import GetGridNavRequest +from .GetTimesRequest import GetTimesRequest +from .GetStationsRequest import GetStationsRequest +from .GetTimesResponse import GetTimesResponse +from .Station import Station +from .StationDataRequest import StationDataRequest +from .GetGridDataRequest import GetGridDataRequest +from .GetGridInfoRequest import GetGridInfoRequest +from .GetGridNavRequest import GetGridNavRequest diff --git a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gpd/query/__init__.py b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gpd/query/__init__.py index bfec6fc..6a24ef2 100644 --- a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gpd/query/__init__.py +++ b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/gpd/query/__init__.py @@ -5,4 +5,4 @@ __all__ = [ 'GenericPointDataReqMsg' ] -from GenericPointDataReqMsg import GenericPointDataReqMsg +from .GenericPointDataReqMsg import GenericPointDataReqMsg diff --git a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/__init__.py b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/__init__.py index 479ce8a..1bdf45b 100644 --- a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/__init__.py +++ b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/__init__.py @@ -8,7 +8,7 @@ __all__ = [ 'request' ] -from ActivityInfo import ActivityInfo -from DerivedProduct import DerivedProduct -from ResponseMessageValidate import ResponseMessageValidate +from .ActivityInfo import ActivityInfo +from .DerivedProduct import DerivedProduct +from .ResponseMessageValidate import ResponseMessageValidate diff --git a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/request/__init__.py b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/request/__init__.py index c5c872b..68ac523 100644 --- a/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/request/__init__.py +++ b/dynamicserialize/dstypes/gov/noaa/nws/ncep/common/dataplugin/pgen/request/__init__.py @@ -7,7 +7,7 @@ __all__ = [ 'StoreDerivedProductRequest' ] -from RetrieveAllProductsRequest import RetrieveAllProductsRequest -from StoreActivityRequest import StoreActivityRequest -from StoreDerivedProductRequest import StoreDerivedProductRequest +from .RetrieveAllProductsRequest import RetrieveAllProductsRequest +from .StoreActivityRequest import StoreActivityRequest +from .StoreDerivedProductRequest import StoreDerivedProductRequest diff --git a/dynamicserialize/dstypes/java/awt/__init__.py b/dynamicserialize/dstypes/java/awt/__init__.py index 1a2a8b5..7fd9f01 100644 --- a/dynamicserialize/dstypes/java/awt/__init__.py +++ b/dynamicserialize/dstypes/java/awt/__init__.py @@ -37,4 +37,4 @@ __all__ = [ 'Point', ] -from Point import Point +from .Point import Point diff --git a/dynamicserialize/dstypes/java/lang/StackTraceElement.py b/dynamicserialize/dstypes/java/lang/StackTraceElement.py index 26236fb..352d2eb 100644 --- a/dynamicserialize/dstypes/java/lang/StackTraceElement.py +++ b/dynamicserialize/dstypes/java/lang/StackTraceElement.py @@ -59,13 +59,13 @@ class StackTraceElement(object): return self.__repr__() def __repr__(self): - msg = self.declaringClass + "." + self.methodName + msg = self.declaringClass.decode('cp437') + "." + self.methodName.decode('cp437') if self.isNativeMethod(): msg += "(Native Method)" elif self.fileName is not None and self.lineNumber >= 0: - msg += "(" + self.fileName + ":" + str(self.lineNumber) + ")" + msg += "(" + self.fileName.decode('cp437') + ":" + str(self.lineNumber) + ")" elif self.fileName is not None: - msg += "(" + self.fileName + ")" + msg += "(" + self.fileName.decode('cp437') + ")" else: msg += "(Unknown Source)" return msg diff --git a/dynamicserialize/dstypes/java/lang/__init__.py b/dynamicserialize/dstypes/java/lang/__init__.py index ffa213f..47f0e2e 100644 --- a/dynamicserialize/dstypes/java/lang/__init__.py +++ b/dynamicserialize/dstypes/java/lang/__init__.py @@ -24,5 +24,5 @@ __all__ = [ 'StackTraceElement' ] -from StackTraceElement import StackTraceElement +from .StackTraceElement import StackTraceElement diff --git a/dynamicserialize/dstypes/java/sql/__init__.py b/dynamicserialize/dstypes/java/sql/__init__.py index 2c312f6..bec9fe8 100644 --- a/dynamicserialize/dstypes/java/sql/__init__.py +++ b/dynamicserialize/dstypes/java/sql/__init__.py @@ -24,4 +24,4 @@ __all__ = [ 'Timestamp' ] -from Timestamp import Timestamp +from .Timestamp import Timestamp diff --git a/dynamicserialize/dstypes/java/util/__init__.py b/dynamicserialize/dstypes/java/util/__init__.py index 2126103..9068645 100644 --- a/dynamicserialize/dstypes/java/util/__init__.py +++ b/dynamicserialize/dstypes/java/util/__init__.py @@ -27,8 +27,8 @@ __all__ = [ 'GregorianCalendar' ] -from Calendar import Calendar -from Date import Date -from EnumSet import EnumSet -from GregorianCalendar import GregorianCalendar +from .Calendar import Calendar +from .Date import Date +from .EnumSet import EnumSet +from .GregorianCalendar import GregorianCalendar diff --git a/setup.py b/setup.py index 1b9169a..fe6c986 100644 --- a/setup.py +++ b/setup.py @@ -11,6 +11,6 @@ setup( download_url='https://github.com/Unidata/python-awips/tarball/0.9.3', author='Unidata', author_email='mjames@ucar.edu', - requires=['argparse','shapely','numpy'] + requires=['argparse','shapely','numpy','six'] ) diff --git a/thrift/TSCons.py b/thrift/TSCons.py index da8d283..d3176ed 100644 --- a/thrift/TSCons.py +++ b/thrift/TSCons.py @@ -31,5 +31,5 @@ def scons_env(env, add=''): def gen_cpp(env, dir, file): scons_env(env) suffixes = ['_types.h', '_types.cpp'] - targets = map(lambda s: 'gen-cpp/' + file + s, suffixes) + targets = ['gen-cpp/' + file + s for s in suffixes] return env.ThriftCpp(targets, dir + file + '.thrift') diff --git a/thrift/TSerialization.py b/thrift/TSerialization.py index 8a58d89..fbbe768 100644 --- a/thrift/TSerialization.py +++ b/thrift/TSerialization.py @@ -17,8 +17,8 @@ # under the License. # -from protocol import TBinaryProtocol -from transport import TTransport +from .protocol import TBinaryProtocol +from .transport import TTransport def serialize(thrift_object, diff --git a/thrift/protocol/TBase.py b/thrift/protocol/TBase.py index 6cbd5f3..6cd6c28 100644 --- a/thrift/protocol/TBase.py +++ b/thrift/protocol/TBase.py @@ -74,8 +74,8 @@ class TExceptionBase(Exception): # This can't inherit from TBase because of that limitation. __slots__ = [] - __repr__ = TBase.__repr__.im_func - __eq__ = TBase.__eq__.im_func - __ne__ = TBase.__ne__.im_func - read = TBase.read.im_func - write = TBase.write.im_func + __repr__ = TBase.__repr__.__func__ + __eq__ = TBase.__eq__.__func__ + __ne__ = TBase.__ne__.__func__ + read = TBase.read.__func__ + write = TBase.write.__func__ diff --git a/thrift/protocol/TBinaryProtocol.py b/thrift/protocol/TBinaryProtocol.py index 6fdd08c..dbcb1e9 100644 --- a/thrift/protocol/TBinaryProtocol.py +++ b/thrift/protocol/TBinaryProtocol.py @@ -17,7 +17,7 @@ # under the License. # -from TProtocol import * +from .TProtocol import * from struct import pack, unpack @@ -204,7 +204,11 @@ class TBinaryProtocol(TProtocolBase): def readI32(self): 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 def readI64(self): diff --git a/thrift/protocol/TCompactProtocol.py b/thrift/protocol/TCompactProtocol.py index cdec607..a3385e1 100644 --- a/thrift/protocol/TCompactProtocol.py +++ b/thrift/protocol/TCompactProtocol.py @@ -17,7 +17,7 @@ # under the License. # -from TProtocol import * +from .TProtocol import * from struct import pack, unpack __all__ = ['TCompactProtocol', 'TCompactProtocolFactory'] @@ -106,7 +106,7 @@ CTYPES = {TType.STOP: CompactType.STOP, } TTYPES = {} -for k, v in CTYPES.items(): +for k, v in list(CTYPES.items()): TTYPES[v] = k TTYPES[CompactType.FALSE] = TType.BOOL del k diff --git a/thrift/protocol/TProtocol.py b/thrift/protocol/TProtocol.py index 5177229..56d323a 100644 --- a/thrift/protocol/TProtocol.py +++ b/thrift/protocol/TProtocol.py @@ -244,13 +244,13 @@ class TProtocolBase: (list_type, list_len) = self.readListBegin() if tspec is None: # list values are simple types - for idx in xrange(list_len): + for idx in range(list_len): results.append(reader()) else: # this is like an inlined readFieldByTType container_reader = self._TTYPE_HANDLERS[list_type][0] val_reader = getattr(self, container_reader) - for idx in xrange(list_len): + for idx in range(list_len): val = val_reader(tspec) results.append(val) self.readListEnd() @@ -264,12 +264,12 @@ class TProtocolBase: (set_type, set_len) = self.readSetBegin() if tspec is None: # set members are simple types - for idx in xrange(set_len): + for idx in range(set_len): results.add(reader()) else: container_reader = self._TTYPE_HANDLERS[set_type][0] val_reader = getattr(self, container_reader) - for idx in xrange(set_len): + for idx in range(set_len): results.add(val_reader(tspec)) self.readSetEnd() return results @@ -290,7 +290,7 @@ class TProtocolBase: key_reader = getattr(self, self._TTYPE_HANDLERS[key_ttype][0]) val_reader = getattr(self, self._TTYPE_HANDLERS[val_ttype][0]) # list values are simple types - for idx in xrange(map_len): + for idx in range(map_len): if key_spec is None: k_val = key_reader() else: @@ -361,7 +361,7 @@ class TProtocolBase: k_writer = getattr(self, ktype_name) v_writer = getattr(self, vtype_name) self.writeMapBegin(k_type, v_type, len(val)) - for m_key, m_val in val.iteritems(): + for m_key, m_val in val.items(): if not k_is_container: k_writer(m_key) else: diff --git a/thrift/server/THttpServer.py b/thrift/server/THttpServer.py index 6f92173..f6d1ff5 100644 --- a/thrift/server/THttpServer.py +++ b/thrift/server/THttpServer.py @@ -17,7 +17,7 @@ # under the License. # -import BaseHTTPServer +import http.server from thrift.server import TServer from thrift.transport import TTransport @@ -47,7 +47,7 @@ class THttpServer(TServer.TServer): server_address, inputProtocolFactory, outputProtocolFactory=None, - server_class=BaseHTTPServer.HTTPServer): + server_class=http.server.HTTPServer): """Set up protocol factories and HTTP server. See BaseHTTPServer for server_address. @@ -61,7 +61,7 @@ class THttpServer(TServer.TServer): thttpserver = self - class RequestHander(BaseHTTPServer.BaseHTTPRequestHandler): + class RequestHander(http.server.BaseHTTPRequestHandler): def do_POST(self): # Don't care about the request path. itrans = TTransport.TFileObjectTransport(self.rfile) diff --git a/thrift/server/TNonblockingServer.py b/thrift/server/TNonblockingServer.py index fa478d0..764c9ae 100644 --- a/thrift/server/TNonblockingServer.py +++ b/thrift/server/TNonblockingServer.py @@ -26,7 +26,7 @@ maximum connections """ import threading import socket -import Queue +import queue import select import struct import logging @@ -234,7 +234,7 @@ class TNonblockingServer: self.out_protocol = outputProtocolFactory or self.in_protocol self.threads = int(threads) self.clients = {} - self.tasks = Queue.Queue() + self.tasks = queue.Queue() self._read, self._write = socket.socketpair() self.prepared = False self._stop = False @@ -250,7 +250,7 @@ class TNonblockingServer: if self.prepared: return self.socket.listen() - for _ in xrange(self.threads): + for _ in range(self.threads): thread = Worker(self.tasks) thread.setDaemon(True) thread.start() @@ -288,7 +288,7 @@ class TNonblockingServer: """Does select on open connections.""" readable = [self.socket.handle.fileno(), self._read.fileno()] writable = [] - for i, connection in self.clients.items(): + for i, connection in list(self.clients.items()): if connection.is_readable(): readable.append(connection.fileno()) if connection.is_writeable(): @@ -330,7 +330,7 @@ class TNonblockingServer: def close(self): """Closes the server.""" - for _ in xrange(self.threads): + for _ in range(self.threads): self.tasks.put([None, None, None, None, None]) self.socket.close() self.prepared = False diff --git a/thrift/server/TProcessPoolServer.py b/thrift/server/TProcessPoolServer.py index 86c4312..3714ead 100644 --- a/thrift/server/TProcessPoolServer.py +++ b/thrift/server/TProcessPoolServer.py @@ -21,8 +21,9 @@ import logging from multiprocessing import Process, Value, Condition, reduction -from TServer import TServer +from .TServer import TServer from thrift.transport.TTransport import TTransportException +import collections class TProcessPoolServer(TServer): @@ -40,7 +41,7 @@ class TProcessPoolServer(TServer): self.postForkCallback = None def setPostForkCallback(self, callback): - if not callable(callback): + if not isinstance(callback, collections.Callable): raise TypeError("This is not a callback!") self.postForkCallback = callback @@ -72,7 +73,7 @@ class TProcessPoolServer(TServer): try: while True: self.processor.process(iprot, oprot) - except TTransportException, tx: + except TTransportException as tx: pass except Exception as x: logging.exception(x) @@ -95,7 +96,7 @@ class TProcessPoolServer(TServer): w.daemon = True w.start() self.workers.append(w) - except Exception, x: + except Exception as x: logging.exception(x) # wait until the condition is set by stop() diff --git a/thrift/server/TServer.py b/thrift/server/TServer.py index 97097cc..9e340f4 100644 --- a/thrift/server/TServer.py +++ b/thrift/server/TServer.py @@ -17,7 +17,7 @@ # under the License. # -import Queue +import queue import logging import os import sys @@ -82,7 +82,7 @@ class TSimpleServer(TServer): try: while True: self.processor.process(iprot, oprot) - except TTransport.TTransportException, tx: + except TTransport.TTransportException as tx: pass except Exception as x: logging.exception(x) @@ -119,7 +119,7 @@ class TThreadedServer(TServer): try: while True: self.processor.process(iprot, oprot) - except TTransport.TTransportException, tx: + except TTransport.TTransportException as tx: pass except Exception as x: logging.exception(x) @@ -133,7 +133,7 @@ class TThreadPoolServer(TServer): def __init__(self, *args, **kwargs): TServer.__init__(self, *args) - self.clients = Queue.Queue() + self.clients = queue.Queue() self.threads = 10 self.daemon = kwargs.get("daemon", False) @@ -147,7 +147,7 @@ class TThreadPoolServer(TServer): try: client = self.clients.get() self.serveClient(client) - except Exception, x: + except Exception as x: logging.exception(x) def serveClient(self, client): @@ -159,7 +159,7 @@ class TThreadPoolServer(TServer): try: while True: self.processor.process(iprot, oprot) - except TTransport.TTransportException, tx: + except TTransport.TTransportException as tx: pass except Exception as x: logging.exception(x) @@ -240,7 +240,7 @@ class TForkingServer(TServer): try: while True: self.processor.process(iprot, oprot) - except TTransport.TTransportException, tx: + except TTransport.TTransportException as tx: pass except Exception as e: logging.exception(e) @@ -251,7 +251,7 @@ class TForkingServer(TServer): os._exit(ecode) - except TTransport.TTransportException, tx: + except TTransport.TTransportException as tx: pass except Exception as x: logging.exception(x) diff --git a/thrift/transport/THttpClient.py b/thrift/transport/THttpClient.py index ea80a1a..20be338 100644 --- a/thrift/transport/THttpClient.py +++ b/thrift/transport/THttpClient.py @@ -17,17 +17,17 @@ # under the License. # -import httplib +import http.client import os import socket import sys -import urllib -import urlparse +import urllib.request, urllib.parse, urllib.error +import urllib.parse import warnings -from cStringIO import StringIO +from io import StringIO -from TTransport import * +from .TTransport import * class THttpClient(TTransportBase): @@ -52,13 +52,13 @@ class THttpClient(TTransportBase): self.path = path self.scheme = 'http' else: - parsed = urlparse.urlparse(uri_or_host) + parsed = urllib.parse.urlparse(uri_or_host) self.scheme = parsed.scheme assert self.scheme in ('http', 'https') if self.scheme == 'http': - self.port = parsed.port or httplib.HTTP_PORT + self.port = parsed.port or http.client.HTTP_PORT elif self.scheme == 'https': - self.port = parsed.port or httplib.HTTPS_PORT + self.port = parsed.port or http.client.HTTPS_PORT self.host = parsed.hostname self.path = parsed.path if parsed.query: @@ -70,9 +70,9 @@ class THttpClient(TTransportBase): def open(self): if self.scheme == 'http': - self.__http = httplib.HTTP(self.host, self.port) + self.__http = http.client.HTTP(self.host, self.port) else: - self.__http = httplib.HTTPS(self.host, self.port) + self.__http = http.client.HTTPS(self.host, self.port) def close(self): self.__http.close() @@ -129,11 +129,11 @@ class THttpClient(TTransportBase): user_agent = 'Python/THttpClient' script = os.path.basename(sys.argv[0]) if script: - user_agent = '%s (%s)' % (user_agent, urllib.quote(script)) + user_agent = '%s (%s)' % (user_agent, urllib.parse.quote(script)) self.__http.putheader('User-Agent', user_agent) if self.__custom_headers: - for key, val in self.__custom_headers.iteritems(): + for key, val in self.__custom_headers.items(): self.__http.putheader(key, val) self.__http.endheaders() diff --git a/thrift/transport/TSocket.py b/thrift/transport/TSocket.py index 9e2b384..82ce568 100644 --- a/thrift/transport/TSocket.py +++ b/thrift/transport/TSocket.py @@ -22,7 +22,7 @@ import os import socket import sys -from TTransport import * +from .TTransport import * class TSocketBase(TTransportBase): @@ -84,13 +84,13 @@ class TSocket(TSocketBase): self.handle.settimeout(self._timeout) try: self.handle.connect(res[4]) - except socket.error, e: + except socket.error as e: if res is not res0[-1]: continue else: raise e break - except socket.error, e: + except socket.error as e: if self._unix_socket: message = 'Could not connect to socket %s' % self._unix_socket else: @@ -101,7 +101,7 @@ class TSocket(TSocketBase): def read(self, sz): try: buff = self.handle.recv(sz) - except socket.error, e: + except socket.error as e: if (e.args[0] == errno.ECONNRESET and (sys.platform == 'darwin' or sys.platform.startswith('freebsd'))): # freebsd and Mach don't follow POSIX semantic of recv @@ -157,7 +157,7 @@ class TServerSocket(TSocketBase, TServerTransportBase): tmp = socket.socket(res[0], res[1]) try: tmp.connect(res[4]) - except socket.error, err: + except socket.error as err: eno, message = err.args if eno == errno.ECONNREFUSED: os.unlink(res[4]) diff --git a/thrift/transport/TTransport.py b/thrift/transport/TTransport.py index 4481371..dcedd3d 100644 --- a/thrift/transport/TTransport.py +++ b/thrift/transport/TTransport.py @@ -17,7 +17,7 @@ # under the License. # -from cStringIO import StringIO +from six import BytesIO from struct import pack, unpack from thrift.Thrift import TException @@ -52,7 +52,7 @@ class TTransportBase: pass def readAll(self, sz): - buff = '' + buff = b'' have = 0 while (have < sz): chunk = self.read(sz - have) @@ -138,8 +138,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 +156,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 +165,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 +184,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 +203,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 +220,10 @@ class TMemoryBuffer(TTransportBase, CReadableTransport): return self._buffer.read(sz) def write(self, buf): - self._buffer.write(buf) + try: + self._buffer.write(buf) + except TypeError: + self._buffer.write(buf.encode('cp437')) def flush(self): pass @@ -251,8 +254,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 +277,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 +286,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 +307,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 diff --git a/thrift/transport/TTwisted.py b/thrift/transport/TTwisted.py index 3ce3eb2..ffe5494 100644 --- a/thrift/transport/TTwisted.py +++ b/thrift/transport/TTwisted.py @@ -17,7 +17,7 @@ # under the License. # -from cStringIO import StringIO +from io import StringIO from zope.interface import implements, Interface, Attribute from twisted.internet.protocol import Protocol, ServerFactory, ClientFactory, \ @@ -81,7 +81,7 @@ class ThriftClientProtocol(basic.Int32StringReceiver): self.started.callback(self.client) def connectionLost(self, reason=connectionDone): - for k, v in self.client._reqs.iteritems(): + for k, v in self.client._reqs.items(): tex = TTransport.TTransportException( type=TTransport.TTransportException.END_OF_FILE, message='Connection closed') diff --git a/thrift/transport/TZlibTransport.py b/thrift/transport/TZlibTransport.py index a2f42a5..a21dc80 100644 --- a/thrift/transport/TZlibTransport.py +++ b/thrift/transport/TZlibTransport.py @@ -22,10 +22,10 @@ class, using the python standard library zlib module to implement data compression. """ -from __future__ import division + import zlib -from cStringIO import StringIO -from TTransport import TTransportBase, CReadableTransport +from io import StringIO +from .TTransport import TTransportBase, CReadableTransport class TZlibTransportFactory(object):