Skip to content

Commit fb75eda

Browse files
committed
#45 change message for terms outside WaterML 1.0 enums (schema issues addressed in WML 1.1)
1 parent c3e869f commit fb75eda

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

wof/core_1_0.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,17 @@ def config_from_file(self, file_name):
5757
self.default_unitid = config.default_unitid
5858
self.default_samplemedium = config.default_samplemedium
5959

60+
'''
61+
For WML 1.0 many terms were embedded in the Schemas, which made them not expandable.
62+
This provides a standard warning message
63+
'''
64+
def invalid_enum_message(self,name,value, default=None):
65+
message = "WaterML 1.0 schema enum issue '{}' not in {}. Use the cuashi_1_1 endpoint ".format(value,name)
66+
if default is not None:
67+
message = "Substituted '"+ default +"'. " + message
68+
return message
69+
70+
6071
def create_get_site_response(self, siteArg=None):
6172

6273
if siteArg == None or siteArg == '':
@@ -384,7 +395,9 @@ def check_censorCode(self, censorCode):
384395
if (censorCode in valueList):
385396
return censorCode
386397
else:
398+
logging.info(self.invalid_enum_message( 'censorCode', censorCode))
387399
return default
400+
388401
def check_QualityControlLevel(self, QualityControlLevel):
389402
default = "Unknown"
390403
valueList = [
@@ -398,6 +411,7 @@ def check_QualityControlLevel(self, QualityControlLevel):
398411
if (QualityControlLevel in valueList):
399412
return QualityControlLevel
400413
else:
414+
logging.info(self.invalid_enum_message( 'QualityControlLevel', QualityControlLevel))
401415
return default
402416

403417
#TODO: lots more stuff to fill out here
@@ -602,7 +616,7 @@ def check_dataTypeEnum(self, datatype):
602616
if (datatype in valueList):
603617
return datatype
604618
else:
605-
logging.warn('value outside of enum for datatype ' + datatype)
619+
logging.info(self.invalid_enum_message( 'datatype', datatype))
606620
return default
607621

608622
def check_UnitsType(self, UnitsType):
@@ -635,7 +649,7 @@ def check_UnitsType(self, UnitsType):
635649
if (UnitsType in valueList):
636650
return UnitsType
637651
else:
638-
logging.warn('value outside of enum for UnitsType ' + UnitsType)
652+
logging.info(self.invalid_enum_message( 'UnitsType', UnitsType, default=default))
639653
return default
640654

641655
def check_SampleMedium(self, SampleMedium):
@@ -659,7 +673,7 @@ def check_SampleMedium(self, SampleMedium):
659673
if (SampleMedium in valueList):
660674
return SampleMedium
661675
else:
662-
logging.warn('default returned: value outside of enum for SampleMedium ' + SampleMedium)
676+
logging.info(self.invalid_enum_message( 'SampleMedium', SampleMedium))
663677
return default
664678

665679
def check_generalCategory(self, generalCategory):
@@ -679,8 +693,8 @@ def check_generalCategory(self, generalCategory):
679693
if (generalCategory in valueList):
680694
return generalCategory
681695
else:
682-
logging.warn('default returned: value outside of enum for generalCategory ' + generalCategory)
683-
return default
696+
logging.info(self.invalid_enum_message( 'generalCategory', generalCategory))
697+
return default
684698

685699
def check_valueType(self, valueType):
686700
default = "Unknown"
@@ -697,8 +711,8 @@ def check_valueType(self, valueType):
697711
if (valueType in valueList):
698712
return valueType
699713
else:
700-
logging.warn('default returned: value outside of enum for valueType ' + valueType)
701-
return default
714+
logging.info(self.invalid_enum_message( 'valueType', valueType))
715+
return default
702716

703717
def create_variable_element(self, variableResult):
704718
clean_datatype = self.check_dataTypeEnum( variableResult.DataType)

0 commit comments

Comments
 (0)