use isinstance() rather than type()

This commit is contained in:
Michael James 2018-10-14 16:28:05 -06:00
parent 817f9ccd9b
commit 9f55c3d0ef
9 changed files with 40 additions and 52 deletions

View file

@ -15,6 +15,7 @@
from awips.dataaccess import IData from awips.dataaccess import IData
import six import six
class PyData(IData): class PyData(IData):
def __init__(self, dataRecord): def __init__(self, dataRecord):
@ -36,7 +37,7 @@ class PyData(IData):
def getLevel(self): def getLevel(self):
if six.PY2: if six.PY2:
return self.__level return self.__level
if type(self.__level) is not str: if not isinstance(self.__level, str):
return self.__level.decode('utf-8') return self.__level.decode('utf-8')
return self.__level return self.__level

View file

@ -46,7 +46,7 @@ class PyGridData(IGridData, PyData.PyData):
def getUnit(self): def getUnit(self):
if six.PY2: if six.PY2:
return self.__unit return self.__unit
if self.__unit is not None and type(self.__unit) is not str: if self.__unit is not None and not isinstance(self.__unit, str):
return self.__unit.decode('utf-8') return self.__unit.decode('utf-8')
return self.__unit return self.__unit

View file

@ -1,17 +1,3 @@
from awips import ThriftClient
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import DatabaseID
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import ParmID
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import CommitGridsRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetGridInventoryRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetParmListRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetSelectTimeRangeRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.request import CommitGridRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.message import WsId
from dynamicserialize.dstypes.com.raytheon.uf.common.site.requests import GetActiveSitesRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.message import ServerResponse
# #
# Provides a Python-based interface for executing GFE requests. # Provides a Python-based interface for executing GFE requests.
# #
@ -26,6 +12,18 @@ from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.messa
# #
# #
from awips import ThriftClient
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import DatabaseID
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import ParmID
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import CommitGridsRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetGridInventoryRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetParmListRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetSelectTimeRangeRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.request import CommitGridRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.message import WsId
from dynamicserialize.dstypes.com.raytheon.uf.common.site.requests import GetActiveSitesRequest
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.message import ServerResponse
class IFPClient(object): class IFPClient(object):
def __init__(self, host, port, user, site=None, progName=None): def __init__(self, host, port, user, site=None, progName=None):
@ -39,7 +37,7 @@ class IFPClient(object):
self.__siteId = site self.__siteId = site
def commitGrid(self, request): def commitGrid(self, request):
if type(request) is CommitGridRequest: if isinstance(request, CommitGridRequest):
return self.__commitGrid([request]) return self.__commitGrid([request])
elif self.__isHomogenousIterable(request, CommitGridRequest): elif self.__isHomogenousIterable(request, CommitGridRequest):
return self.__commitGrid([cgr for cgr in request]) return self.__commitGrid([cgr for cgr in request])
@ -82,7 +80,7 @@ class IFPClient(object):
return True return True
def getGridInventory(self, parmID): def getGridInventory(self, parmID):
if type(parmID) is ParmID: if isinstance(parmID, ParmID):
sr = self.__getGridInventory([parmID]) sr = self.__getGridInventory([parmID])
list = [] list = []
try: try:

View file

@ -1,6 +1,3 @@
##
##
# File auto-generated against equivalent DynamicSerialize Java class # File auto-generated against equivalent DynamicSerialize Java class
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import ParmID from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import ParmID
@ -20,12 +17,12 @@ class GFERecord(object):
self.dataTime = None self.dataTime = None
self.parmId = None self.parmId = None
if timeRange is not None: if timeRange is not None:
if type(timeRange) is TimeRange: if isinstance(timeRange, TimeRange):
self.dataTime = DataTime(refTime=timeRange.getStart(), validPeriod=timeRange) self.dataTime = DataTime(refTime=timeRange.getStart(), validPeriod=timeRange)
else: else:
raise TypeError("Invalid TimeRange object specified.") raise TypeError("Invalid TimeRange object specified.")
if parmId is not None: if parmId is not None:
if type(parmId) is ParmID.ParmID: if isinstance(parmId, ParmID.ParmID):
self.parmId = parmId self.parmId = parmId
self.parmName = parmId.getParmName() self.parmName = parmId.getParmName()
self.parmLevel = parmId.getParmLevel() self.parmLevel = parmId.getParmLevel()

View file

@ -1,11 +1,9 @@
##
##
# File auto-generated against equivalent DynamicSerialize Java class # File auto-generated against equivalent DynamicSerialize Java class
# Modified by njensen to add __repr__ # Modified by njensen to add __repr__
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import DatabaseID from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import DatabaseID
class ParmID(object): class ParmID(object):
def __init__(self, parmIdentifier=None, dbId=None, level=None): def __init__(self, parmIdentifier=None, dbId=None, level=None):
@ -19,9 +17,9 @@ class ParmID(object):
if (parmIdentifier is not None) and (dbId is not None): if (parmIdentifier is not None) and (dbId is not None):
self.parmName = parmIdentifier self.parmName = parmIdentifier
if type(dbId) is DatabaseID: if isinstance(dbId, DatabaseID):
self.dbId = dbId self.dbId = dbId
elif type(dbId) is str: elif isinstance(dbId, str):
self.dbId = DatabaseID(dbId) self.dbId = DatabaseID(dbId)
else: else:
raise TypeError("Invalid database ID specified.") raise TypeError("Invalid database ID specified.")

View file

@ -1,6 +1,3 @@
##
##
# File auto-generated against equivalent DynamicSerialize Java class # File auto-generated against equivalent DynamicSerialize Java class
# and then modified post-generation to add additional features to better # and then modified post-generation to add additional features to better
# match Java implementation. # match Java implementation.
@ -21,10 +18,10 @@ import re
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.level import MasterLevel from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.level import MasterLevel
LEVEL_NAMING_REGEX = re.compile("^(\d*(?:\.\d*)?)(?:_(\d*(?:\.\d*)?))?([a-zA-Z]+)$") LEVEL_NAMING_REGEX = re.compile("^(\d*(?:\.\d*)?)(?:_(\d*(?:\.\d*)?))?([a-zA-Z]+)$")
INVALID_VALUE = numpy.float64(-999999) INVALID_VALUE = numpy.float64(-999999)
class Level(object): class Level(object):
def __init__(self, levelString=None): def __init__(self, levelString=None):
@ -51,7 +48,7 @@ class Level(object):
return hashCode return hashCode
def __eq__(self, other): def __eq__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return False return False
else: else:
return (self.masterLevel, self.levelonevalue, self.leveltwovalue) == \ return (self.masterLevel, self.levelonevalue, self.leveltwovalue) == \
@ -61,7 +58,7 @@ class Level(object):
return not self.__eq__(other) return not self.__eq__(other)
def __lt__(self, other): def __lt__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
elif self.masterLevel.getName() != other.masterLevel.getName(): elif self.masterLevel.getName() != other.masterLevel.getName():
return NotImplemented return NotImplemented
@ -93,7 +90,7 @@ class Level(object):
return False return False
def __le__(self, other): def __le__(self, other):
if not isinstance(self, other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
elif self.masterLevel.getName() != other.masterLevel.getName(): elif self.masterLevel.getName() != other.masterLevel.getName():
return NotImplemented return NotImplemented
@ -101,7 +98,7 @@ class Level(object):
return self.__lt__(other) or self.__eq__(other) return self.__lt__(other) or self.__eq__(other)
def __gt__(self, other): def __gt__(self, other):
if not isinstance(self, other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
elif self.masterLevel.getName() != other.masterLevel.getName(): elif self.masterLevel.getName() != other.masterLevel.getName():
return NotImplemented return NotImplemented
@ -128,12 +125,11 @@ class Level(object):
elif otherLevel2 != INVALID_VALUE: elif otherLevel2 != INVALID_VALUE:
level2Cmp = self.__compareLevelValues(compareType, myLevel1, otherLevel2) level2Cmp = self.__compareLevelValues(compareType, myLevel1, otherLevel2)
return level2Cmp == 1 return level2Cmp == 1
else:
return True return True
return False return False
def __ge__(self, other): def __ge__(self, other):
if not isinstance(self, other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
elif self.masterLevel.getName() != other.masterLevel.getName(): elif self.masterLevel.getName() != other.masterLevel.getName():
return NotImplemented return NotImplemented

View file

@ -28,7 +28,7 @@ class MasterLevel(object):
return hash(self.name) return hash(self.name)
def __eq__(self, other): def __eq__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return False return False
else: else:
return self.name == other.name return self.name == other.name
@ -56,7 +56,7 @@ class MasterLevel(object):
def getName(self): def getName(self):
if six.PY2: if six.PY2:
return self.name return self.name
if self.name is not None and type(self.name) is not str: if (self.name is not None) and (not isinstance(self.name, str)):
return self.name.decode('utf-8') return self.name.decode('utf-8')
return self.name return self.name

View file

@ -62,7 +62,7 @@ class DataTime(object):
else: else:
self.fcstTime = 0 self.fcstTime = 0
self.refTime = refTime self.refTime = refTime
if validPeriod is not None and type(validPeriod) is not TimeRange: if validPeriod is not None and not isinstance(validPeriod, TimeRange):
raise ValueError("Invalid validPeriod object specified for DataTime.") raise ValueError("Invalid validPeriod object specified for DataTime.")
self.validPeriod = validPeriod self.validPeriod = validPeriod
self.utilityFlags = EnumSet('com.raytheon.uf.common.time.DataTime$FLAG') self.utilityFlags = EnumSet('com.raytheon.uf.common.time.DataTime$FLAG')
@ -193,7 +193,7 @@ class DataTime(object):
return hashCode return hashCode
def __eq__(self, other): def __eq__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return False return False
if other.getRefTime() is None: if other.getRefTime() is None:
@ -207,7 +207,7 @@ class DataTime(object):
return not self.__eq__(other) return not self.__eq__(other)
def __lt__(self, other): def __lt__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
myValidTime = self.getRefTime().getTime() + self.getFcstTime() myValidTime = self.getRefTime().getTime() + self.getFcstTime()
@ -230,13 +230,13 @@ class DataTime(object):
return False return False
def __le__(self, other): def __le__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
return self.__lt__(other) or self.__eq__(other) return self.__lt__(other) or self.__eq__(other)
def __gt__(self, other): def __gt__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
myValidTime = self.getRefTime().getTime() + self.getFcstTime() myValidTime = self.getRefTime().getTime() + self.getFcstTime()
@ -259,7 +259,7 @@ class DataTime(object):
return False return False
def __ge__(self, other): def __ge__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return NotImplemented return NotImplemented
return self.__gt__(other) or self.__eq__(other) return self.__gt__(other) or self.__eq__(other)

View file

@ -1,6 +1,3 @@
##
##
# File auto-generated against equivalent DynamicSerialize Java class. Then modified to add functionality # File auto-generated against equivalent DynamicSerialize Java class. Then modified to add functionality
# #
# #
@ -23,6 +20,7 @@ import time
MAX_TIME = 2147483647 MAX_TIME = 2147483647
MICROS_IN_SECOND = 1000000 MICROS_IN_SECOND = 1000000
class TimeRange(object): class TimeRange(object):
def __init__(self, start=None, end=None, startExtraMicros=None, endExtraMicros=None): def __init__(self, start=None, end=None, startExtraMicros=None, endExtraMicros=None):
self.start = self.__convertToDateTimeWithExtra(start, startExtraMicros) self.start = self.__convertToDateTimeWithExtra(start, startExtraMicros)
@ -35,7 +33,7 @@ class TimeRange(object):
return "(" + self.start.strftime("%b %d %y %H:%M:%S %Z") + ", " + self.end.strftime("%b %d %y %H:%M:%S %Z") + ")" 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): def __eq__(self, other):
if type(self) != type(other): if not isinstance(self, type(other)):
return False return False
if self.isValid() and other.isValid(): if self.isValid() and other.isValid():
@ -117,7 +115,7 @@ class TimeRange(object):
return (timeArg.start >= self.start and timeArg.end <= self.end) return (timeArg.start >= self.start and timeArg.end <= self.end)
else: else:
convTime = self.__convertToDateTime(timeArg) convTime = self.__convertToDateTime(timeArg)
if type(convTime) is not datetime.datetime: if not isinstance(convTime, datetime.datetime):
raise TypeError("Invalid type for argument time specified to TimeRange.contains().") raise TypeError("Invalid type for argument time specified to TimeRange.contains().")
if self.duration() != 0: if self.duration() != 0:
return (convTime >= self.start and convTime < self.end) return (convTime >= self.start and convTime < self.end)