@@ -458,13 +458,9 @@ def _get_key_value(self, key):
458458        elif  key  in  ('typeOfFirstFixedSurface' , 'typeOfSecondFixedSurface' ):
459459            # By default these values are returned as unhelpful strings but 
460460            # we can use int representation to compare against instead. 
461-             res  =  gribapi .grib_get (self ._message_id , key , int )
462-             if  gribapi .grib_is_missing (self ._message_id , key ) ==  1 :
463-                 res  =  None 
461+             res  =  _get_value_or_missing (self ._message_id , key )
464462        else :
465-             res  =  gribapi .grib_get (self ._message_id , key )
466-             if  gribapi .grib_is_missing (self ._message_id , key ) ==  1 :
467-                 res  =  None 
463+             res  =  _get_value_or_missing (self ._message_id , key )
468464        return  res 
469465
470466    def  get_computed_key (self , key ):
@@ -485,11 +481,21 @@ def get_computed_key(self, key):
485481        if  key  in  vector_keys :
486482            res  =  gribapi .grib_get_array (self ._message_id , key )
487483        else :
488-             res  =  gribapi .grib_get (self ._message_id , key )
489-             if  gribapi .grib_is_missing (self ._message_id , key ) ==  1 :
490-                 res  =  None 
484+             res  =  _get_value_or_missing (self ._message_id , key )
491485        return  res 
492486
493487    def  keys (self ):
494488        """Return coded keys available in this Section.""" 
495489        return  self ._keys 
490+ 
491+     def  _get_value_or_missing (message_id , key ):
492+         """ 
493+         Return value of header element, or None if value is encoded as missing. 
494+         Implementation of Regulations 92.1.4 and 92.1.5 via ECCodes. 
495+ 
496+         """ 
497+         if  gribapi .grib_is_missing (self ._message_id , key ) ==  1 :
498+             res  =  None 
499+         else :
500+             res  =  gribapi .grib_get (self ._message_id , key )
501+         return  result 
0 commit comments