mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-23 22:57:56 -05:00
dynamicserialize ncep_15.1.1-n -> ncep_16.1.4-n
This commit is contained in:
parent
4491987304
commit
fe36f7d43f
30 changed files with 852 additions and 196 deletions
|
@ -39,6 +39,7 @@ from struct import pack, unpack
|
|||
# ------------ ---------- ----------- --------------------------
|
||||
# 11/11/09 chammack Initial Creation.
|
||||
# 06/09/10 njensen Added float, list methods
|
||||
# Apr 24, 2015 4425 nabowle Add F64List support.
|
||||
#
|
||||
#
|
||||
#
|
||||
|
@ -52,6 +53,7 @@ floatList = numpy.dtype(numpy.float32).newbyteorder('>')
|
|||
longList = numpy.dtype(numpy.int64).newbyteorder('>')
|
||||
shortList = numpy.dtype(numpy.int16).newbyteorder('>')
|
||||
byteList = numpy.dtype(numpy.int8).newbyteorder('>')
|
||||
doubleList = numpy.dtype(numpy.float64).newbyteorder('>')
|
||||
|
||||
class SelfDescribingBinaryProtocol(TBinaryProtocol):
|
||||
|
||||
|
@ -95,6 +97,11 @@ class SelfDescribingBinaryProtocol(TBinaryProtocol):
|
|||
val = numpy.frombuffer(buff, dtype=floatList, count=sz)
|
||||
return val
|
||||
|
||||
def readF64List(self, sz):
|
||||
buff = self.trans.readAll(8*sz)
|
||||
val = numpy.frombuffer(buff, dtype=doubleList, count=sz)
|
||||
return val
|
||||
|
||||
def readI64List(self, sz):
|
||||
buff = self.trans.readAll(8*sz)
|
||||
val = numpy.frombuffer(buff, dtype=longList, count=sz)
|
||||
|
@ -118,6 +125,10 @@ class SelfDescribingBinaryProtocol(TBinaryProtocol):
|
|||
b = numpy.asarray(buff, floatList)
|
||||
self.trans.write(numpy.getbuffer(b))
|
||||
|
||||
def writeF64List(self, buff):
|
||||
b = numpy.asarray(buff, doubleList)
|
||||
self.trans.write(numpy.getbuffer(b))
|
||||
|
||||
def writeI64List(self, buff):
|
||||
b = numpy.asarray(buff, longList)
|
||||
self.trans.write(numpy.getbuffer(b))
|
||||
|
@ -129,4 +140,3 @@ class SelfDescribingBinaryProtocol(TBinaryProtocol):
|
|||
def writeI8List(self, buff):
|
||||
b = numpy.asarray(buff, byteList)
|
||||
self.trans.write(numpy.getbuffer(b))
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
# 06/09/10 njensen Initial Creation.
|
||||
# 06/12/13 #2099 dgilling Implement readObject() and
|
||||
# writeObject().
|
||||
# 03/18/16 mjames@ucar Add types.UnicodeType
|
||||
# Apr 24, 2015 4425 nabowle Add Double support
|
||||
#
|
||||
#
|
||||
|
||||
|
@ -66,7 +66,6 @@ buildObjMap(dstypes)
|
|||
|
||||
pythonToThriftMap = {
|
||||
types.StringType: TType.STRING,
|
||||
types.UnicodeType: TType.STRING,
|
||||
types.IntType: TType.I32,
|
||||
types.LongType: TType.I64,
|
||||
types.ListType: TType.LIST,
|
||||
|
@ -88,7 +87,7 @@ pythonToThriftMap = {
|
|||
numpy.int64: TType.I64
|
||||
}
|
||||
|
||||
primitiveSupport = (TType.BYTE, TType.I16, TType.I32, TType.I64, SelfDescribingBinaryProtocol.FLOAT)
|
||||
primitiveSupport = (TType.BYTE, TType.I16, TType.I32, TType.I64, SelfDescribingBinaryProtocol.FLOAT, TType.DOUBLE)
|
||||
|
||||
class ThriftSerializationContext(object):
|
||||
|
||||
|
@ -130,14 +129,16 @@ class ThriftSerializationContext(object):
|
|||
TType.I16: self.protocol.readI16List,
|
||||
TType.I32: self.protocol.readI32List,
|
||||
TType.I64: self.protocol.readI64List,
|
||||
SelfDescribingBinaryProtocol.FLOAT: self.protocol.readF32List
|
||||
SelfDescribingBinaryProtocol.FLOAT: self.protocol.readF32List,
|
||||
TType.DOUBLE: self.protocol.readF64List
|
||||
}
|
||||
self.listSerializationMethod = {
|
||||
TType.BYTE: self.protocol.writeI8List,
|
||||
TType.I16: self.protocol.writeI16List,
|
||||
TType.I32: self.protocol.writeI32List,
|
||||
TType.I64: self.protocol.writeI64List,
|
||||
SelfDescribingBinaryProtocol.FLOAT: self.protocol.writeF32List
|
||||
SelfDescribingBinaryProtocol.FLOAT: self.protocol.writeF32List,
|
||||
TType.DOUBLE: self.protocol.writeF64List
|
||||
}
|
||||
|
||||
|
||||
|
@ -239,7 +240,7 @@ class ThriftSerializationContext(object):
|
|||
return result
|
||||
|
||||
def _lookupType(self, obj):
|
||||
pyt = type(obj) # <type 'unicode'> for h5py 2.0+
|
||||
pyt = type(obj)
|
||||
if pythonToThriftMap.has_key(pyt):
|
||||
return pythonToThriftMap[pyt]
|
||||
elif pyt.__module__.startswith('dynamicserialize.dstypes'):
|
||||
|
|
51
dynamicserialize/adapters/JobProgressAdapter.py
Normal file
51
dynamicserialize/adapters/JobProgressAdapter.py
Normal file
|
@ -0,0 +1,51 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
|
||||
#
|
||||
# Adapter for com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress
|
||||
#
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Initial creation
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
from thrift.Thrift import TType
|
||||
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.svcbu import JobProgress
|
||||
|
||||
ClassAdapter = 'com.raytheon.uf.common.dataplugin.gfe.svcbu.JobProgress'
|
||||
|
||||
def serialize(context, mode):
|
||||
context.protocol.writeFieldBegin('__enumValue__', TType.STRING, 0)
|
||||
context.writeString(mode.value)
|
||||
|
||||
def deserialize(context):
|
||||
result = JobProgress()
|
||||
# Read the TType.STRING, "__enumValue__", and id.
|
||||
# We're not interested in any of those, so just discard them.
|
||||
context.protocol.readFieldBegin()
|
||||
# now get the actual enum value
|
||||
result.value = context.readString()
|
||||
return result
|
|
@ -31,7 +31,7 @@
|
|||
# 03/20/13 #1774 randerso Added TimeConstraintsAdapter
|
||||
# 04/22/13 #1949 rjpeter Added LockTableAdapter
|
||||
# 02/06/14 #2672 bsteffen Added JTSEnvelopeAdapter
|
||||
|
||||
# 06/22/2015 #4573 randerso Added JobProgressAdapter
|
||||
#
|
||||
#
|
||||
|
||||
|
@ -56,8 +56,8 @@ __all__ = [
|
|||
'ByteBufferAdapter',
|
||||
'TimeConstraintsAdapter',
|
||||
'LockTableAdapter',
|
||||
'JTSEnvelopeAdapter'
|
||||
# 'GridDataHistoryAdapter',
|
||||
'JTSEnvelopeAdapter',
|
||||
'JobProgressAdapter',
|
||||
]
|
||||
|
||||
classAdapterRegistry = {}
|
||||
|
@ -80,5 +80,6 @@ def getAdapterRegistry():
|
|||
raise LookupError('Adapter class ' + x + ' has no ClassAdapter field ' + \
|
||||
'and cannot be registered.')
|
||||
|
||||
|
||||
getAdapterRegistry()
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/04/13 #2023 dgilling Initial Creation.
|
||||
# 01/06/14 #2537 bsteffen Store geometry index instead of WKT.
|
||||
# 06/30/15 #4569 nabowle Rename *WKT* to *WKB*.
|
||||
#
|
||||
#
|
||||
|
||||
|
@ -38,7 +39,7 @@ class GeometryResponseData(AbstractResponseData):
|
|||
def __init__(self):
|
||||
super(GeometryResponseData, self).__init__()
|
||||
self.dataMap = None
|
||||
self.geometryWKTindex = None
|
||||
self.geometryWKBindex = None
|
||||
|
||||
def getDataMap(self):
|
||||
return self.dataMap
|
||||
|
@ -46,8 +47,8 @@ class GeometryResponseData(AbstractResponseData):
|
|||
def setDataMap(self, dataMap):
|
||||
self.dataMap = dataMap
|
||||
|
||||
def getGeometryWKTindex(self):
|
||||
return self.geometryWKTindex
|
||||
def getGeometryWKBindex(self):
|
||||
return self.geometryWKBindex
|
||||
|
||||
def setGeometryWKTindex(self, geometryWKTindex):
|
||||
self.geometryWKTindex = geometryWKTindex
|
||||
def setGeometryWKBindex(self, geometryWKBindex):
|
||||
self.geometryWKBindex = geometryWKBindex
|
||||
|
|
|
@ -23,14 +23,14 @@
|
|||
class GetGeometryDataResponse(object):
|
||||
|
||||
def __init__(self):
|
||||
self.geometryWKTs = None
|
||||
self.geometryWKBs = None
|
||||
self.geoData = None
|
||||
|
||||
def getGeometryWKTs(self):
|
||||
return self.geometryWKTs
|
||||
def getGeometryWKBs(self):
|
||||
return self.geometryWKBs
|
||||
|
||||
def setGeometryWKTs(self, geometryWKTs):
|
||||
self.geometryWKTs = geometryWKTs
|
||||
def setGeometryWKBs(self, geometryWKBs):
|
||||
self.geometryWKBs = geometryWKBs
|
||||
|
||||
def getGeoData(self):
|
||||
return self.geoData
|
||||
|
|
|
@ -17,8 +17,14 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# File auto-generated by PythonFileGenerator
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Added svcbu package
|
||||
#
|
||||
##
|
||||
|
||||
__all__ = [
|
||||
'GridDataHistory',
|
||||
|
@ -29,6 +35,7 @@ __all__ = [
|
|||
'request',
|
||||
'server',
|
||||
'slice',
|
||||
'svcbu',
|
||||
'weather'
|
||||
]
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
# ------------ ---------- ----------- --------------------------
|
||||
# xx/xx/?? dgilling Initial Creation.
|
||||
# 03/13/13 1759 dgilling Add software history header.
|
||||
#
|
||||
# 05/13/15 4427 dgilling Add siteIdOverride field.
|
||||
#
|
||||
#
|
||||
|
||||
|
@ -40,7 +40,7 @@ class ExecuteIfpNetCDFGridRequest(AbstractGfeRequest):
|
|||
def __init__(self, outputFilename=None, parmList=[], databaseID=None,
|
||||
startTime=None, endTime=None, mask=None, geoInfo=False,
|
||||
compressFile=False, configFileName=None, compressFileFactor=0,
|
||||
trim=False, krunch=False, userID=None, logFileName=None):
|
||||
trim=False, krunch=False, userID=None, logFileName=None, siteIdOverride=None):
|
||||
super(ExecuteIfpNetCDFGridRequest, self).__init__()
|
||||
self.outputFilename = outputFilename
|
||||
self.parmList = parmList
|
||||
|
@ -56,6 +56,7 @@ class ExecuteIfpNetCDFGridRequest(AbstractGfeRequest):
|
|||
self.krunch = krunch
|
||||
self.userID = userID
|
||||
self.logFileName = logFileName
|
||||
self.siteIdOverride = siteIdOverride
|
||||
if self.userID is not None:
|
||||
self.workstationID = WsId(progName='ifpnetCDF', userName=self.userID)
|
||||
if self.databaseID is not None:
|
||||
|
@ -78,7 +79,9 @@ class ExecuteIfpNetCDFGridRequest(AbstractGfeRequest):
|
|||
retVal += "trim: " + str(self.trim) + ", "
|
||||
retVal += "krunch: " + str(self.krunch) + ", "
|
||||
retVal += "userID: " + str(self.userID) + ", "
|
||||
retVal += "logFileName: " + str(self.logFileName) + "]"
|
||||
retVal += "logFileName: " + str(self.logFileName) + ", "
|
||||
retVal += "siteIdOverride: " + str(self.siteIdOverride)
|
||||
retVal += "]"
|
||||
return retVal
|
||||
|
||||
def __repr__(self):
|
||||
|
@ -98,7 +101,9 @@ class ExecuteIfpNetCDFGridRequest(AbstractGfeRequest):
|
|||
retVal += "trim=" + repr(self.trim) + ", "
|
||||
retVal += "krunch=" + repr(self.krunch) + ", "
|
||||
retVal += "userID=" + repr(self.userID) + ", "
|
||||
retVal += "logFileName=" + repr(self.logFileName) + ")"
|
||||
retVal += "logFileName=" + repr(self.logFileName) + ", "
|
||||
retVal += "siteIdOverride: " + str(self.siteIdOverride)
|
||||
retVal += ")"
|
||||
return retVal
|
||||
|
||||
def getOutputFilename(self):
|
||||
|
@ -185,3 +190,8 @@ class ExecuteIfpNetCDFGridRequest(AbstractGfeRequest):
|
|||
def setLogFileName(self, logFileName):
|
||||
self.logFileName = logFileName
|
||||
|
||||
def getSiteIdOverride(self):
|
||||
return self.siteIdOverride
|
||||
|
||||
def setSiteIdOverride(self, siteIdOverride):
|
||||
self.siteIdOverride = siteIdOverride
|
||||
|
|
|
@ -17,33 +17,21 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Jul 15, 2015 #4013 randerso Initial creation (hand generated)
|
||||
#
|
||||
#
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
|
||||
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.slice import AbstractGridSlice
|
||||
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.weather import WeatherKey
|
||||
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import AbstractGfeRequest
|
||||
|
||||
|
||||
class PythonWeatherGridSlice(AbstractGridSlice):
|
||||
class RsyncGridsToCWFRequest(AbstractGfeRequest):
|
||||
|
||||
def __init__(self):
|
||||
super(PythonWeatherGridSlice, self).__init__()
|
||||
self.weatherGrid = None
|
||||
self.keys = []
|
||||
|
||||
def getNumPyGrid(self):
|
||||
return (self.weatherGrid.getNumPyGrid(), self.keys)
|
||||
|
||||
def getWeatherGrid(self):
|
||||
return self.weatherGrid
|
||||
|
||||
def setWeatherGrid(self, weatherGrid):
|
||||
self.weatherGrid = weatherGrid
|
||||
|
||||
def getKeys(self):
|
||||
return self.keys
|
||||
|
||||
def setKeys(self, keys):
|
||||
del self.keys[:]
|
||||
for key in keys:
|
||||
self.keys.append(WeatherKey(subKeys=key))
|
||||
def __init__(self, siteId=None):
|
||||
super(RsyncGridsToCWFRequest, self).__init__()
|
||||
if siteId is not None:
|
||||
self.siteID = str(siteId)
|
|
@ -17,8 +17,13 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# File auto-generated by PythonFileGenerator
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Jul 15, 2015 #4013 randerso Added RsyncGridsToCWFRequest
|
||||
#
|
||||
|
||||
__all__ = [
|
||||
'AbstractGfeRequest',
|
||||
|
@ -45,8 +50,8 @@ __all__ = [
|
|||
'ProcessReceivedDigitalDataRequest',
|
||||
'PurgeGfeGridsRequest',
|
||||
'SaveASCIIGridsRequest',
|
||||
'ServiceBackupStatusUpdateRequest',
|
||||
'SmartInitRequest'
|
||||
'SmartInitRequest',
|
||||
'RsyncGridsToCWFRequest',
|
||||
]
|
||||
|
||||
from AbstractGfeRequest import AbstractGfeRequest
|
||||
|
@ -73,6 +78,6 @@ from ProcessReceivedConfRequest import ProcessReceivedConfRequest
|
|||
from ProcessReceivedDigitalDataRequest import ProcessReceivedDigitalDataRequest
|
||||
from PurgeGfeGridsRequest import PurgeGfeGridsRequest
|
||||
from SaveASCIIGridsRequest import SaveASCIIGridsRequest
|
||||
from ServiceBackupStatusUpdateRequest import ServiceBackupStatusUpdateRequest
|
||||
from SmartInitRequest import SmartInitRequest
|
||||
from RsyncGridsToCWFRequest import RsyncGridsToCWFRequest
|
||||
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Initial creation (hand generated)
|
||||
#
|
||||
##
|
||||
|
||||
import GfeNotification
|
||||
|
||||
class CombinationsFileChangedNotification(GfeNotification.GfeNotification):
|
||||
|
||||
def __init__(self):
|
||||
super(CombinationsFileChangedNotification, self).__init__()
|
||||
self.combinationsFileName = None
|
||||
self.whoChanged = None
|
||||
|
||||
def __str__(self):
|
||||
msg = "fileName: " + str(self.combinationsFileName)
|
||||
msg += '\n' + "whoChanged: " + str(self.whoChanged)
|
||||
return msg
|
||||
|
||||
def getCombinationsFileName(self):
|
||||
return self.combinationsFileName
|
||||
|
||||
def setCombinationsFileName(self, combinationsFileName):
|
||||
self.combinationsFileName = combinationsFileName
|
||||
|
||||
def getWhoChanged(self):
|
||||
return self.whoChanged
|
||||
|
||||
def setWhoChanged(self, whoChanged):
|
||||
self.whoChanged = whoChanged
|
|
@ -17,23 +17,25 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# ??/??/???? ???? njensen Modified to add __repr__
|
||||
# 06/22/2015 4573 randerso Change to extend GfeNotification
|
||||
# removed inventory methods
|
||||
#
|
||||
##
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
# Modified by njensen to add __repr__
|
||||
import GfeNotification
|
||||
|
||||
class DBInvChangeNotification(object):
|
||||
class DBInvChangeNotification(GfeNotification.GfeNotification):
|
||||
|
||||
def __init__(self):
|
||||
self.inventory = None
|
||||
super(DBInvChangeNotification, self).__init__()
|
||||
self.additions = None
|
||||
self.deletions = None
|
||||
self.siteID = None
|
||||
|
||||
def getInventory(self):
|
||||
return self.inventory
|
||||
|
||||
def setInventory(self, inventory):
|
||||
self.inventory = inventory
|
||||
|
||||
def getAdditions(self):
|
||||
return self.additions
|
||||
|
@ -47,15 +49,8 @@ class DBInvChangeNotification(object):
|
|||
def setDeletions(self, deletions):
|
||||
self.deletions = deletions
|
||||
|
||||
def getSiteID(self):
|
||||
return self.siteID
|
||||
|
||||
def setSiteID(self, siteID):
|
||||
self.siteID = siteID
|
||||
|
||||
def __repr__(self):
|
||||
msg = 'Inventory' + str(self.inventory) + '\n'
|
||||
msg += 'Additions' + str(self.additions) + '\n'
|
||||
def __str__(self):
|
||||
msg = 'Additions' + str(self.additions) + '\n'
|
||||
msg += 'Deletions' + str(self.deletions)
|
||||
return msg
|
||||
|
||||
|
|
|
@ -15,11 +15,21 @@
|
|||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 10/07/2014 3684 randerso Manually updated to add sourceID
|
||||
#
|
||||
##
|
||||
import abc
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
|
||||
class GfeNotification:
|
||||
class GfeNotification(object):
|
||||
__metaclass__ = abc.ABCMeta
|
||||
|
||||
@abc.abstractmethod
|
||||
def __init__(self):
|
||||
self.siteID = None
|
||||
self.sourceID = None
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Initial creation (hand generated)
|
||||
#
|
||||
##
|
||||
|
||||
import GfeNotification
|
||||
|
||||
class GridHistoryUpdateNotification(GfeNotification.GfeNotification):
|
||||
|
||||
def __init__(self):
|
||||
super(GridHistoryUpdateNotification, self).__init__()
|
||||
self.parmId = None
|
||||
self.workstationID = None
|
||||
self.histories = None
|
||||
|
||||
def getParmId(self):
|
||||
return self.parmId
|
||||
|
||||
def setParmId(self, parmId):
|
||||
self.parmId = parmId
|
||||
|
||||
def getWorkstationID(self):
|
||||
return self.workstationID
|
||||
|
||||
def setWorkstationID(self, workstationID):
|
||||
self.workstationID = workstationID
|
||||
|
||||
def getHistories(self):
|
||||
return self.histories
|
||||
|
||||
def setHistories(self, histories):
|
||||
self.histories = histories
|
||||
|
||||
def __str__(self):
|
||||
msg = "ParmID: " + str(self.parmId)
|
||||
msg += '\n' + "Histories: " + str(self.histories)
|
||||
return msg
|
||||
|
|
@ -17,17 +17,25 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# ??/??/???? ???? njensen Modified to add __repr__
|
||||
# 06/22/2015 4573 randerso Change to extend GfeNotification
|
||||
#
|
||||
##
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
# Modified by njensen to add __repr__
|
||||
import GfeNotification
|
||||
|
||||
class GridUpdateNotification(object):
|
||||
class GridUpdateNotification(GfeNotification.GfeNotification):
|
||||
|
||||
def __init__(self):
|
||||
super(GridUpdateNotification, self).__init__()
|
||||
self.parmId = None
|
||||
self.replacementTimeRange = None
|
||||
self.workstationID = None
|
||||
self.siteID = None
|
||||
self.histories = None
|
||||
|
||||
def getParmId(self):
|
||||
|
@ -48,12 +56,6 @@ class GridUpdateNotification(object):
|
|||
def setWorkstationID(self, workstationID):
|
||||
self.workstationID = workstationID
|
||||
|
||||
def getSiteID(self):
|
||||
return self.siteID
|
||||
|
||||
def setSiteID(self, siteID):
|
||||
self.siteID = siteID
|
||||
|
||||
def getHistories(self):
|
||||
return self.histories
|
||||
|
||||
|
@ -61,9 +63,6 @@ class GridUpdateNotification(object):
|
|||
self.histories = histories
|
||||
|
||||
def __str__(self):
|
||||
return self.__repr__()
|
||||
|
||||
def __repr__(self):
|
||||
msg = "ParmID: " + str(self.parmId)
|
||||
msg += '\n' + "Replacement TimeRange: " + str(self.replacementTimeRange)
|
||||
msg += '\n' + "Histories: " + str(self.histories)
|
||||
|
|
|
@ -17,15 +17,23 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# ??/??/???? ???? njensen Modified to add __repr__
|
||||
# 06/22/2015 4573 randerso Change to extend GfeNotification
|
||||
#
|
||||
##
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
# Modified by njensen to add __repr__
|
||||
import GfeNotification
|
||||
|
||||
class LockNotification(object):
|
||||
class LockNotification(GfeNotification.GfeNotification):
|
||||
|
||||
def __init__(self):
|
||||
super(LockNotification, self).__init__()
|
||||
self.lockTable = None
|
||||
self.siteID = None
|
||||
|
||||
def getLockTable(self):
|
||||
return self.lockTable
|
||||
|
@ -33,12 +41,6 @@ class LockNotification(object):
|
|||
def setLockTable(self, lockTable):
|
||||
self.lockTable = lockTable
|
||||
|
||||
def getSiteID(self):
|
||||
return self.siteID
|
||||
|
||||
def setSiteID(self, siteID):
|
||||
self.siteID = siteID
|
||||
|
||||
def __repr__(self):
|
||||
def __str__(self):
|
||||
return str(self.lockTable)
|
||||
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Initial creation (hand generated)
|
||||
#
|
||||
##
|
||||
|
||||
import GfeNotification
|
||||
|
||||
class ServiceBackupJobStatusNotification(GfeNotification.GfeNotification):
|
||||
|
||||
def __init__(self):
|
||||
super(ServiceBackupJobStatusNotification, self).__init__()
|
||||
self.name = None
|
||||
self.state = "UNKNOWN"
|
||||
|
||||
def __str__(self):
|
||||
msg = "name: " + str(self.name)
|
||||
msg += '\n' + "state: " + str(self.state)
|
||||
return msg
|
||||
|
||||
def getName(self):
|
||||
return self.name
|
||||
|
||||
def setName(self, name):
|
||||
self.name = name
|
||||
|
||||
def getState(self):
|
||||
return self.state
|
||||
|
||||
def setState(self, state):
|
||||
self.state = state
|
|
@ -17,16 +17,24 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Change to extend GfeNotification
|
||||
#
|
||||
##
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
import GfeNotification
|
||||
|
||||
class UserMessageNotification(object):
|
||||
class UserMessageNotification(GfeNotification.GfeNotification):
|
||||
|
||||
def __init__(self):
|
||||
super(UserMessageNotification, self).__init__()
|
||||
self.category = None
|
||||
self.priority = None
|
||||
self.message = None
|
||||
self.siteID = None
|
||||
|
||||
def getCategory(self):
|
||||
return self.category
|
||||
|
@ -46,13 +54,7 @@ class UserMessageNotification(object):
|
|||
def setMessage(self, message):
|
||||
self.message = message
|
||||
|
||||
def getSiteID(self):
|
||||
return self.siteID
|
||||
|
||||
def setSiteID(self, siteID):
|
||||
self.siteID = siteID
|
||||
|
||||
def __repr__(self):
|
||||
def __str__(self):
|
||||
msg = 'Message: ' + str(self.message) + '\n'
|
||||
msg += 'Priority: ' + str(self.priority) + '\n'
|
||||
msg += 'Category: ' + str(self.category) + '\n'
|
||||
|
|
|
@ -21,16 +21,22 @@
|
|||
# File auto-generated by PythonFileGenerator
|
||||
|
||||
__all__ = [
|
||||
'CombinationsFileChangedNotification',
|
||||
'DBInvChangeNotification',
|
||||
'GfeNotification',
|
||||
'GridHistoryUpdateNotification',
|
||||
'GridUpdateNotification',
|
||||
'LockNotification',
|
||||
'ServiceBackupJobStatusNotification',
|
||||
'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
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
__all__ = [
|
||||
'AbstractGridSlice',
|
||||
'DiscreteGridSlice',
|
||||
'PythonWeatherGridSlice',
|
||||
'ScalarGridSlice',
|
||||
'VectorGridSlice',
|
||||
'WeatherGridSlice'
|
||||
|
@ -32,7 +31,6 @@ __all__ = [
|
|||
from AbstractGridSlice import AbstractGridSlice
|
||||
from DiscreteGridSlice import DiscreteGridSlice
|
||||
from ScalarGridSlice import ScalarGridSlice
|
||||
from PythonWeatherGridSlice import PythonWeatherGridSlice
|
||||
from VectorGridSlice import VectorGridSlice
|
||||
from WeatherGridSlice import WeatherGridSlice
|
||||
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Initial creation (hand generated)
|
||||
# 08/27/2015 4812 randerso Change __str__ to return the self.value
|
||||
# instead of __repr__(self.value) to eliminate
|
||||
# ''s around string.
|
||||
#
|
||||
##
|
||||
|
||||
class JobProgress(object):
|
||||
def __init__(self):
|
||||
self.value = None
|
||||
|
||||
def __str__(self):
|
||||
return self.value
|
|
@ -0,0 +1,33 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 06/22/2015 4573 randerso Initial creation (hand generated)
|
||||
#
|
||||
##
|
||||
|
||||
__all__ = [
|
||||
'JobProgress',
|
||||
]
|
||||
|
||||
from JobProgress import JobProgress
|
|
@ -28,6 +28,8 @@
|
|||
# ------------ ---------- ----------- --------------------------
|
||||
# 05/29/13 2023 dgilling Initial Creation.
|
||||
# 02/12/14 2672 bsteffen Allow String constructor to parse floats.
|
||||
# 06/29/15 4480 dgilling Implement __hash__, __eq__,
|
||||
# __str__ and rich comparison operators.
|
||||
#
|
||||
|
||||
|
||||
|
@ -58,6 +60,120 @@ class Level(object):
|
|||
if levelTwo:
|
||||
self.leveltwovalue = numpy.float64(levelTwo)
|
||||
|
||||
def __hash__(self):
|
||||
# XOR-ing the 3 items in a tuple ensures that order of the
|
||||
# values matters
|
||||
hashCode = hash(self.masterLevel) ^ hash(self.levelonevalue) ^ hash(self.leveltwovalue)
|
||||
hashCode ^= hash((self.masterLevel, self.levelonevalue, self.leveltwovalue))
|
||||
return hashCode
|
||||
|
||||
def __eq__(self, other):
|
||||
if type(self) != type(other):
|
||||
return False
|
||||
else:
|
||||
return (self.masterLevel, self.levelonevalue, self.leveltwovalue) == \
|
||||
(other.masterLevel, other.levelonevalue, other.leveltwovalue)
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __lt__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
elif self.masterLevel.getName() != other.masterLevel.getName():
|
||||
return NotImplemented
|
||||
|
||||
myLevel1 = self.levelonevalue
|
||||
myLevel2 = self.leveltwovalue
|
||||
otherLevel1 = other.levelonevalue
|
||||
otherLevel2 = other.leveltwovalue
|
||||
if myLevel1 == INVALID_VALUE and myLevel2 != INVALID_VALUE:
|
||||
myLevel1 = myLevel2
|
||||
myLevel2 = INVALID_VALUE
|
||||
if otherLevel1 == INVALID_VALUE and otherLevel2 != INVALID_VALUE:
|
||||
otherLevel1 = otherLevel2
|
||||
otherLevel2 = INVALID_VALUE
|
||||
|
||||
# We default to descending order to make sorting levels from the DAF easier
|
||||
compareType = self.masterLevel.getType() if self.masterLevel.getType() else "DEC"
|
||||
if myLevel1 != INVALID_VALUE and otherLevel1 != INVALID_VALUE:
|
||||
level1Cmp = self.__compareLevelValues(compareType, myLevel1, otherLevel1)
|
||||
if level1Cmp == -1:
|
||||
if myLevel2 != INVALID_VALUE and otherLevel2 != INVALID_VALUE:
|
||||
level2Cmp = self.__compareLevelValues(compareType, myLevel2, otherLevel2)
|
||||
return level2Cmp == -1
|
||||
elif myLevel2 != INVALID_VALUE:
|
||||
level2Cmp = self.__compareLevelValues(compareType, myLevel2, otherLevel1)
|
||||
return level2Cmp == -1
|
||||
else:
|
||||
return True
|
||||
return False
|
||||
|
||||
def __le__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
elif self.masterLevel.getName() != other.masterLevel.getName():
|
||||
return NotImplemented
|
||||
|
||||
return self.__lt__(other) or self.__eq__(other)
|
||||
|
||||
def __gt__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
elif self.masterLevel.getName() != other.masterLevel.getName():
|
||||
return NotImplemented
|
||||
|
||||
myLevel1 = self.levelonevalue
|
||||
myLevel2 = self.leveltwovalue
|
||||
otherLevel1 = other.levelonevalue
|
||||
otherLevel2 = other.leveltwovalue
|
||||
if myLevel1 == INVALID_VALUE and myLevel2 != INVALID_VALUE:
|
||||
myLevel1 = myLevel2
|
||||
myLevel2 = INVALID_VALUE
|
||||
if otherLevel1 == INVALID_VALUE and otherLevel2 != INVALID_VALUE:
|
||||
otherLevel1 = otherLevel2
|
||||
otherLevel2 = INVALID_VALUE
|
||||
|
||||
# We default to descending order to make sorting levels from the DAF easier
|
||||
compareType = self.masterLevel.getType() if self.masterLevel.getType() else "DEC"
|
||||
if myLevel1 != INVALID_VALUE and otherLevel1 != INVALID_VALUE:
|
||||
level1Cmp = self.__compareLevelValues(compareType, myLevel1, otherLevel1)
|
||||
if level1Cmp == 1:
|
||||
if myLevel2 != INVALID_VALUE and otherLevel2 != INVALID_VALUE:
|
||||
level2Cmp = self.__compareLevelValues(compareType, myLevel2, otherLevel2)
|
||||
return level2Cmp == 1
|
||||
elif otherLevel2 != INVALID_VALUE:
|
||||
level2Cmp = self.__compareLevelValues(compareType, myLevel1, otherLevel2)
|
||||
return level2Cmp == 1
|
||||
else:
|
||||
return True
|
||||
return False
|
||||
|
||||
def __ge__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
elif self.masterLevel.getName() != other.masterLevel.getName():
|
||||
return NotImplemented
|
||||
|
||||
return self.__gt__(other) or self.__eq__(other)
|
||||
|
||||
def __compareLevelValues(self, compareType, val1, val2):
|
||||
returnVal = 0
|
||||
if val1 < val2:
|
||||
returnVal = -1 if compareType == 'INC' else 1
|
||||
elif val2 < val1:
|
||||
returnVal = 1 if compareType == 'INC' else -1
|
||||
return returnVal
|
||||
|
||||
def __str__(self):
|
||||
retVal = ""
|
||||
if INVALID_VALUE != self.levelonevalue:
|
||||
retVal += str(self.levelonevalue)
|
||||
if INVALID_VALUE != self.leveltwovalue:
|
||||
retVal += "_" + str(self.leveltwovalue)
|
||||
retVal += str(self.masterLevel.getName())
|
||||
return retVal
|
||||
|
||||
def getId(self):
|
||||
return self.id
|
||||
|
||||
|
@ -87,4 +203,3 @@ class Level(object):
|
|||
|
||||
def setIdentifier(self, identifier):
|
||||
self.identifier = identifier
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 05/29/13 2023 dgilling Initial Creation.
|
||||
# 06/29/15 4480 dgilling Implement __hash__, __eq__
|
||||
# and __str__.
|
||||
#
|
||||
#
|
||||
|
||||
|
@ -39,6 +41,27 @@ class MasterLevel(object):
|
|||
self.type = None
|
||||
self.identifier = None
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.name)
|
||||
|
||||
def __eq__(self, other):
|
||||
if type(self) != type(other):
|
||||
return False
|
||||
else:
|
||||
return self.name == other.name
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __str__(self):
|
||||
retVal = "MasterLevel["
|
||||
retVal += "name=" + str(self.name) + ","
|
||||
retVal += "type=" + str(self.type) + ","
|
||||
retVal += "unit=" + str(self.unitString) + ","
|
||||
retVal += "description=" + str(self.description)
|
||||
retVal += "]"
|
||||
return retVal
|
||||
|
||||
def getName(self):
|
||||
return self.name
|
||||
|
||||
|
|
|
@ -0,0 +1,116 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class and
|
||||
# modified.
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Sep 8, 2014 kustert Initial Creation
|
||||
# Apr 24, 2015 4425 nabowle Bring in.
|
||||
|
||||
class DoubleDataRecord(object):
|
||||
|
||||
def __init__(self):
|
||||
self.sizes = None
|
||||
self.dimension = None
|
||||
self.maxChunkSize = None
|
||||
self.name = None
|
||||
self.fillValue = None
|
||||
self.dataAttributes = None
|
||||
self.group = None
|
||||
self.minIndex = None
|
||||
self.props = None
|
||||
self.doubleData = None
|
||||
self.maxSizes = None
|
||||
|
||||
def getSizes(self):
|
||||
return self.sizes
|
||||
|
||||
def setSizes(self, sizes):
|
||||
self.sizes = sizes
|
||||
|
||||
def getDimension(self):
|
||||
return self.dimension
|
||||
|
||||
def setDimension(self, dimension):
|
||||
self.dimension = dimension
|
||||
|
||||
def getMaxChunkSize(self):
|
||||
return self.maxChunkSize
|
||||
|
||||
def setMaxChunkSize(self, maxChunkSize):
|
||||
self.maxChunkSize = maxChunkSize
|
||||
|
||||
def getName(self):
|
||||
return self.name
|
||||
|
||||
def setName(self, name):
|
||||
self.name = name
|
||||
|
||||
def getFillValue(self):
|
||||
return self.fillValue
|
||||
|
||||
def setFillValue(self, fillValue):
|
||||
self.fillValue = fillValue
|
||||
|
||||
def getDataAttributes(self):
|
||||
return self.dataAttributes
|
||||
|
||||
def setDataAttributes(self, dataAttributes):
|
||||
self.dataAttributes = dataAttributes
|
||||
|
||||
def getGroup(self):
|
||||
return self.group
|
||||
|
||||
def setGroup(self, group):
|
||||
self.group = group
|
||||
|
||||
def getMinIndex(self):
|
||||
return self.minIndex
|
||||
|
||||
def setMinIndex(self, minIndex):
|
||||
self.minIndex = minIndex
|
||||
|
||||
def getProps(self):
|
||||
return self.props
|
||||
|
||||
def setProps(self, props):
|
||||
self.props = props
|
||||
|
||||
def getDoubleData(self):
|
||||
return self.doubleData
|
||||
|
||||
def setDoubleData(self, doubleData):
|
||||
self.doubleData = doubleData
|
||||
|
||||
def getMaxSizes(self):
|
||||
return self.maxSizes
|
||||
|
||||
def setMaxSizes(self, maxSizes):
|
||||
self.maxSizes = maxSizes
|
||||
|
||||
def retrieveDataObject(self):
|
||||
return self.getDoubleData()
|
||||
|
||||
def putDataObject(self, obj):
|
||||
self.setDoubleData(obj)
|
|
@ -18,7 +18,6 @@
|
|||
# further licensing information.
|
||||
##
|
||||
|
||||
|
||||
#
|
||||
# Package definition for com.raytheon.uf.common.datastorage.records
|
||||
#
|
||||
|
@ -28,6 +27,7 @@
|
|||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 08/31/10 njensen Initial Creation.
|
||||
# Apr 24, 2015 4425 nabowle Add DoubleDataRecord
|
||||
#
|
||||
#
|
||||
#
|
||||
|
@ -35,16 +35,19 @@
|
|||
|
||||
__all__ = [
|
||||
'ByteDataRecord',
|
||||
'DoubleDataRecord',
|
||||
'FloatDataRecord',
|
||||
'IntegerDataRecord',
|
||||
'LongDataRecord',
|
||||
'ShortDataRecord',
|
||||
'StringDataRecord',
|
||||
'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
|
||||
|
||||
|
|
|
@ -31,6 +31,9 @@
|
|||
# 01/22/14 2667 bclement preserved milliseconds in string representation
|
||||
# 03/03/14 2673 bsteffen allow construction using a Date for refTime
|
||||
# 06/24/14 3096 mnash implement __cmp__
|
||||
# 06/24/15 4480 dgilling implement __hash__ and __eq__,
|
||||
# replace __cmp__ with rich comparison
|
||||
# operators.
|
||||
#
|
||||
|
||||
import calendar
|
||||
|
@ -66,9 +69,7 @@ class DataTime(object):
|
|||
self.refTime = long(self.refTime.getTime())
|
||||
else:
|
||||
self.refTime = long(refTime)
|
||||
dateObj = Date()
|
||||
dateObj.setTime(self.refTime)
|
||||
self.refTime = dateObj
|
||||
self.refTime = Date(self.refTime)
|
||||
|
||||
if self.validPeriod is None:
|
||||
validTimeMillis = self.refTime.getTime() + long(self.fcstTime * 1000)
|
||||
|
@ -112,38 +113,6 @@ class DataTime(object):
|
|||
def setLevelValue(self, levelValue):
|
||||
self.levelValue = numpy.float64(levelValue)
|
||||
|
||||
def __cmp__(self, other):
|
||||
if other is None :
|
||||
return 1
|
||||
|
||||
# compare the valid times, which are the ref times + forecast times
|
||||
validTimeCmp = cmp(self.getRefTime().getTime() + self.getFcstTime(),
|
||||
other.getRefTime().getTime() + other.getFcstTime())
|
||||
if validTimeCmp != 0 :
|
||||
return validTimeCmp
|
||||
|
||||
# compare the forecast times
|
||||
fcstTimeCmp = cmp(self.getFcstTime(), other.getFcstTime())
|
||||
if fcstTimeCmp != 0 :
|
||||
return fcstTimeCmp
|
||||
|
||||
# compare the level values
|
||||
levelCmp = cmp(self.getLevelValue(), other.getLevelValue())
|
||||
if levelValue != 0 :
|
||||
return levelValue
|
||||
|
||||
# compare the valid periods
|
||||
period1 = self.getValidPeriod()
|
||||
period2 = other.getValidPerid()
|
||||
|
||||
if period1 is None :
|
||||
return -1
|
||||
elif period2 is None :
|
||||
return 1
|
||||
|
||||
return cmp(period1.getDuration(), period2.getDuration())
|
||||
|
||||
|
||||
def __str__(self):
|
||||
buffer = StringIO.StringIO()
|
||||
|
||||
|
@ -172,3 +141,86 @@ class DataTime(object):
|
|||
strVal = buffer.getvalue()
|
||||
buffer.close()
|
||||
return strVal
|
||||
|
||||
def __repr__(self):
|
||||
return "<DataTime instance: " + str(self) + " >"
|
||||
|
||||
def __hash__(self):
|
||||
hashCode = hash(self.refTime) ^ hash(self.fcstTime)
|
||||
if self.validPeriod is not None and self.validPeriod.isValid():
|
||||
hashCode ^= hash(self.validPeriod.getStart())
|
||||
hashCode ^= hash(self.validPeriod.getEnd())
|
||||
hashCode ^= hash(self.levelValue)
|
||||
return hashCode
|
||||
|
||||
def __eq__(self, other):
|
||||
if type(self) != type(other):
|
||||
return False
|
||||
|
||||
if other.getRefTime() is None:
|
||||
return self.fcstTime == other.fcstTime
|
||||
|
||||
dataTime1 = (self.refTime, self.fcstTime, self.validPeriod, self.levelValue)
|
||||
dataTime2 = (other.refTime, other.fcstTime, other.validPeriod, other.levelValue)
|
||||
return dataTime1 == dataTime2
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __lt__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
|
||||
myValidTime = self.getRefTime().getTime() + self.getFcstTime()
|
||||
otherValidTime = other.getRefTime().getTime() + other.getFcstTime()
|
||||
if myValidTime < otherValidTime:
|
||||
return True
|
||||
|
||||
if self.fcstTime < other.fcstTime:
|
||||
return True
|
||||
|
||||
if self.levelValue < other.levelValue:
|
||||
return True
|
||||
|
||||
myValidPeriod = self.validPeriod
|
||||
otherValidPeriod = other.validPeriod
|
||||
if myValidPeriod != otherValidPeriod:
|
||||
if myValidPeriod.duration() < otherValidPeriod.duration():
|
||||
return True
|
||||
return myValidPeriod.getStartInMillis() < otherValidPeriod.getStartInMillis()
|
||||
return False
|
||||
|
||||
def __le__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
|
||||
return self.__lt__(other) or self.__eq__(other)
|
||||
|
||||
def __gt__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
|
||||
myValidTime = self.getRefTime().getTime() + self.getFcstTime()
|
||||
otherValidTime = other.getRefTime().getTime() + other.getFcstTime()
|
||||
if myValidTime > otherValidTime:
|
||||
return True
|
||||
|
||||
if self.fcstTime > other.fcstTime:
|
||||
return True
|
||||
|
||||
if self.levelValue > other.levelValue:
|
||||
return True
|
||||
|
||||
myValidPeriod = self.validPeriod
|
||||
otherValidPeriod = other.validPeriod
|
||||
if myValidPeriod != otherValidPeriod:
|
||||
if myValidPeriod.duration() > otherValidPeriod.duration():
|
||||
return True
|
||||
return myValidPeriod.getStartInMillis() > otherValidPeriod.getStartInMillis()
|
||||
return False
|
||||
|
||||
def __ge__(self, other):
|
||||
if type(self) != type(other):
|
||||
return NotImplemented
|
||||
|
||||
return self.__gt__(other) or self.__eq__(other)
|
|
@ -28,6 +28,7 @@
|
|||
# ??/??/?? xxxxxxxx Initial Creation.
|
||||
# 01/22/14 2667 bclement fixed millisecond support
|
||||
# 02/28/14 2667 bclement constructor can take extra micros for start and end
|
||||
# 06/24/15 4480 dgilling fix __eq__.
|
||||
#
|
||||
#
|
||||
#
|
||||
|
@ -51,7 +52,15 @@ class TimeRange(object):
|
|||
return "(" + self.start.strftime("%b %d %y %H:%M:%S %Z") + ", " + self.end.strftime("%b %d %y %H:%M:%S %Z") + ")"
|
||||
|
||||
def __eq__(self, other):
|
||||
return ((self.start == other.start) and (self.end == other.end))
|
||||
if type(self) != type(other):
|
||||
return False
|
||||
|
||||
if self.isValid() and other.isValid():
|
||||
return self.getStart() == other.getStart() and self.getEnd() == other.getEnd()
|
||||
elif not self.isValid() and not other.isValid():
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def __ne__(self, other):
|
||||
return (not self.__eq__(other))
|
||||
|
@ -132,7 +141,7 @@ class TimeRange(object):
|
|||
return convTime == self.start
|
||||
|
||||
def isValid(self):
|
||||
return (self.start != self.end)
|
||||
return bool(self.start != self.end)
|
||||
|
||||
def overlaps(self, timeRange):
|
||||
return (timeRange.contains(self.start) or self.contains(timeRange.start))
|
||||
|
|
|
@ -18,25 +18,22 @@
|
|||
# further licensing information.
|
||||
##
|
||||
|
||||
## NOTE: This is a dummy class that is only used for deserialization
|
||||
## support. Further work required if it is need in the pure Python
|
||||
## environment.
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
# and then modified post-generation to add additional features to better
|
||||
# match Java implementation.
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# ??/??/?? xxxxxxxx Initial Creation.
|
||||
# 06/24/15 4480 dgilling implement based on Date class.
|
||||
#
|
||||
|
||||
class Timestamp(object):
|
||||
from dynamicserialize.dstypes.java.util import Date
|
||||
|
||||
|
||||
class Timestamp(Date):
|
||||
|
||||
def __init__(self, time=None):
|
||||
self.time = time
|
||||
|
||||
def getTime(self):
|
||||
return self.time
|
||||
|
||||
def setTime(self, timeInMillis):
|
||||
self.time = timeInMillis
|
||||
|
||||
def __str__(self):
|
||||
return self.__repr__()
|
||||
|
||||
def __repr__(self):
|
||||
from time import gmtime, strftime
|
||||
|
||||
return strftime("%b %d %y %H:%M:%S GMT", gmtime(self.time/1000.0))
|
||||
super(Timestamp, self).__init__(time)
|
||||
|
|
|
@ -17,13 +17,24 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 04/28/2015 4027 randerso Added optional construction parameter to set the time
|
||||
# 06/26/2015 4480 dgilling Implement __eq__ and __hash__.
|
||||
#
|
||||
##
|
||||
|
||||
from time import gmtime, strftime
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
|
||||
class Date(object):
|
||||
|
||||
def __init__(self):
|
||||
self.time = None
|
||||
def __init__(self, timeInMillis=None):
|
||||
self.time = timeInMillis
|
||||
|
||||
def getTime(self):
|
||||
return self.time
|
||||
|
@ -35,6 +46,13 @@ class Date(object):
|
|||
return self.__repr__()
|
||||
|
||||
def __repr__(self):
|
||||
from time import gmtime, strftime
|
||||
|
||||
return strftime("%b %d %y %H:%M:%S GMT", gmtime(self.time/1000.0))
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.time == other.time
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.time)
|
||||
|
|
Loading…
Add table
Reference in a new issue