mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-23 22:57:56 -05:00
logic cleanup
This commit is contained in:
parent
82ea15b5f1
commit
69aa0a28c7
3 changed files with 19 additions and 13 deletions
|
@ -1,5 +1,4 @@
|
|||
##
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
|
@ -18,6 +17,7 @@ from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects i
|
|||
|
||||
TIME_FORMAT = "%Y%m%d_%H%M"
|
||||
|
||||
|
||||
class UsageArgumentParser(argparse.ArgumentParser):
|
||||
"""
|
||||
A subclass of ArgumentParser that overrides error() to print the
|
||||
|
@ -28,6 +28,7 @@ class UsageArgumentParser(argparse.ArgumentParser):
|
|||
self.print_help()
|
||||
sys.exit(2)
|
||||
|
||||
|
||||
## Custom actions for ArgumentParser objects ##
|
||||
class StoreDatabaseIDAction(argparse.Action):
|
||||
def __call__(self, parser, namespace, values, option_string=None):
|
||||
|
@ -37,6 +38,7 @@ class StoreDatabaseIDAction(argparse.Action):
|
|||
else:
|
||||
parser.error("DatabaseID [" + values + "] not a valid identifier")
|
||||
|
||||
|
||||
class AppendParmNameAndLevelAction(argparse.Action):
|
||||
def __call__(self, parser, namespace, values, option_string=None):
|
||||
tx = ParmID.parmNameAndLevel(values)
|
||||
|
@ -49,6 +51,7 @@ class AppendParmNameAndLevelAction(argparse.Action):
|
|||
else:
|
||||
setattr(namespace, self.dest, [comp])
|
||||
|
||||
|
||||
class StoreTimeAction(argparse.Action):
|
||||
"""
|
||||
argparse.Action subclass to validate GFE formatted time strings
|
||||
|
|
|
@ -22,12 +22,7 @@ class TimeConstraints(object):
|
|||
if duration == 0 and repeatInterval == 0 and startTime == 0:
|
||||
self.valid = True;
|
||||
else:
|
||||
if repeatInterval <= 0 or repeatInterval > DAY \
|
||||
or DAY % repeatInterval != 0 \
|
||||
or repeatInterval < duration \
|
||||
or startTime < 0 or startTime > DAY \
|
||||
or duration < 0 or duration > DAY:
|
||||
|
||||
if self.isInvalidInterval(repeatInterval, duration, startTime):
|
||||
logging.warning("Bad init values for TimeConstraints: ", self);
|
||||
self.valid = False;
|
||||
duration = 0;
|
||||
|
@ -81,3 +76,14 @@ class TimeConstraints(object):
|
|||
|
||||
def getStartTime(self):
|
||||
return self.startTime
|
||||
|
||||
def isInvalidInterval(self, interval, duration, startTime):
|
||||
if interval <= 0 or interval > DAY or interval < duration:
|
||||
return False
|
||||
if startTime < 0 or startTime > DAY:
|
||||
return False
|
||||
if duration < 0 or duration > DAY:
|
||||
return False
|
||||
if DAY % interval != 0:
|
||||
return False
|
||||
return True
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# #
|
||||
# #
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
# and then modified post-generation to add additional features to better
|
||||
# match Java implementation.
|
||||
|
@ -20,6 +17,7 @@
|
|||
# 05/26/16 2416 rjpeter Added str based constructor.
|
||||
# 08/02/16 2416 tgurney Forecast time regex bug fix,
|
||||
# plus misc cleanup
|
||||
#
|
||||
|
||||
|
||||
import calendar
|
||||
|
@ -43,6 +41,7 @@ FORECAST_PATTERN_STR=r'(?:[ _]\((\d+)(?::(\d{1,2}))?\))?'
|
|||
VALID_PERIOD_PATTERN_STR=r'(?:\['+ REFTIME_PATTERN_STR + '--' + REFTIME_PATTERN_STR + r'\])?'
|
||||
STR_PATTERN=re.compile(REFTIME_PATTERN_STR + FORECAST_PATTERN_STR + VALID_PERIOD_PATTERN_STR)
|
||||
|
||||
|
||||
class DataTime(object):
|
||||
|
||||
def __init__(self, refTime=None, fcstTime=None, validPeriod=None):
|
||||
|
@ -89,14 +88,12 @@ class DataTime(object):
|
|||
+ str(refTime))
|
||||
|
||||
groups = match.groups()
|
||||
rDate = groups[0]
|
||||
rTime = groups[1]
|
||||
rMillis = groups[2] or 0
|
||||
fcstTimeHr = groups[3]
|
||||
fcstTimeMin = groups[4]
|
||||
periodStart = groups[5], groups[6], (groups[7] or 0)
|
||||
periodEnd = groups[8], groups[9], (groups[10] or 0)
|
||||
self.refTime = self._getTimeAsEpochMillis(rDate, rTime, rMillis)
|
||||
self.refTime = self._getTimeAsEpochMillis(groups[0], groups[1], rMillis)
|
||||
|
||||
if fcstTimeHr is not None:
|
||||
self.fcstTime = int(fcstTimeHr) * 3600
|
||||
|
|
Loading…
Add table
Reference in a new issue