# Path: ish_parser/Observation.py
# class Observation(object):
#   ''' base class to hold observational data '''
# 
#   def __init__(self, obs_value, obs_units='', obs_quality='', obs_index=None):
#     self._obs_value = obs_value
#     self._obs_units = obs_units
#     self._obs_quality = obs_quality
#     self._obs_index = obs_index
# 
#   def __repr__(self):
#     return str(self._obs_value)
# 
#   def __eq__(self, other_value):
#     if self._obs_value == other_value:
#       return True
#     else:
#       return False
# 
#   def get_numeric(self):
#       if isinstance(self.MISSING, list):
#           return self._get_numeric(self.MISSING)
#       else:
#           return self._get_numeric([self.MISSING])
# 
#   def _get_numeric(self, missing):
#       if self._obs_value in missing:
#           return float('NaN')
#       elif int(self._obs_value) in missing:
#           return float('NaN')
#       else:
#           return float(self._obs_value)


from .Observation import Observation
         'MEXIC': 'Dataset from Mexico',
         'NSRDB': 'National Solar Radiation Data Base',
         'PCP15': 'US 15-minute precipitation network report',
         'PCP60': 'US 60-minute precipitation network report',
         'S-S-A': 'Synoptic, airways, and auto merged report',
         'SA-AU': 'Airways and auto merged report',
         'SAO': 'Airways report (includes record specials)',
         'SAOSP': 'Airways special report (excluding record specials)',
         'SHEF': 'Standard Hydrologic Exchange Format', 
         'SMARS': 'Supplementary airways station report', 
         'SOD': 'Summary of day report from U.S. ASOS or AWOS station',
         'SOM': 'Summary of month report from U.S. ASOS or AWOS station', 
         'SURF': 'Surface Radiation Network report',
         'SY-AE': 'Synoptic and aero merged report',
         'SY-AU': 'Synoptic and auto merged report',
         'SY-MT': 'Synoptic and METAR merged report',
         'SY-SA': 'Synoptic and airways merged report', 
         'WBO': 'Weather Bureau Office',
         'WNO': 'Washington Naval Observatory',
         '99999': 'Missing'}

  def __str__(self):
    return self.MAP[self._obs_value]

  def __repr__(self):
    return self.__str__()

  def __eq__(self, other_value):
    if self._obs_value == other_value:
      return True

# Path: ish_parser/Observation.py
# class Observation(object):
#   ''' base class to hold observational data '''
# 
#   def __init__(self, obs_value, obs_units='', obs_quality='', obs_index=None):
#     self._obs_value = obs_value
#     self._obs_units = obs_units
#     self._obs_quality = obs_quality
#     self._obs_index = obs_index
# 
#   def __repr__(self):
#     return str(self._obs_value)
# 
#   def __eq__(self, other_value):
#     if self._obs_value == other_value:
#       return True
#     else:
#       return False
# 
#   def get_numeric(self):
#       if isinstance(self.MISSING, list):
#           return self._get_numeric(self.MISSING)
#       else:
#           return self._get_numeric([self.MISSING])
# 
#   def _get_numeric(self, missing):
#       if self._obs_value in missing:
#           return float('NaN')
#       elif int(self._obs_value) in missing:
#           return float('NaN')
#       else:
#           return float(self._obs_value)


# Path: ish_parser/ReportType.py
from .Observation import Observation

         'MEXIC': 'Dataset from Mexico',
         'NSRDB': 'National Solar Radiation Data Base',
         'PCP15': 'US 15-minute precipitation network report',
         'PCP60': 'US 60-minute precipitation network report',
         'S-S-A': 'Synoptic, airways, and auto merged report',
         'SA-AU': 'Airways and auto merged report',
         'SAO': 'Airways report (includes record specials)',
         'SAOSP': 'Airways special report (excluding record specials)',
         'SHEF': 'Standard Hydrologic Exchange Format', 
         'SMARS': 'Supplementary airways station report', 
         'SOD': 'Summary of day report from U.S. ASOS or AWOS station',
         'SOM': 'Summary of month report from U.S. ASOS or AWOS station', 
         'SURF': 'Surface Radiation Network report',
         'SY-AE': 'Synoptic and aero merged report',
         'SY-AU': 'Synoptic and auto merged report',
         'SY-MT': 'Synoptic and METAR merged report',
         'SY-SA': 'Synoptic and airways merged report', 
         'WBO': 'Weather Bureau Office',
         'WNO': 'Washington Naval Observatory',
         '99999': 'Missing'}

  def __str__(self):
    return self.MAP[self._obs_value]

  def __repr__(self):
    return self.__str__()

  def __eq__(self, other_value):
    if self._obs_value == other_value:
      return True

    elif self.MAP[self._obs_value] == other_value: