code: def inasafe_fields_for_the_layer(self):
          
          if (self.parent.get_layer_geometry_key()
                  == layer_geometry_raster['key']):
              return []
          # Get hazard or exposure value
          layer_purpose_key = self.parent.step_kw_purpose.selected_purpose()[
              'key']
          if layer_purpose_key != layer_purpose_aggregation['key']:
              subcategory_key = self.parent.step_kw_subcategory.\
                  selected_subcategory()['key']
          else:
              subcategory_key = None
          # Get all fields with replace_null = False
          inasafe_fields = get_fields(
              layer_purpose_key,
              subcategory_key,
              replace_null=False,
              in_group=False)
          # remove compulsory field since it has been set in previous step
          try:
              inasafe_fields.remove(get_compulsory_fields(
                  layer_purpose_key, subcategory_key))
          except ValueError:
              pass
          return inasafe_fields
docs: Return a list of inasafe fields the current layer.
  
          :returns: A list where each value represents inasafe field.
          :rtype: list