code: def get_safe_type(self):
          
          product_type = self.product_id.split('_')[1]
          if product_type.startswith('MSI'):
              return EsaSafeType.COMPACT_TYPE
          if product_type in ['OPER', 'USER']:
              return EsaSafeType.OLD_TYPE
          raise ValueError('Unrecognized product type of product id {}'.format(self.product_id))
docs: Determines the type of ESA product.
  
          In 2016 ESA changed structure and naming of data. Therefore the class must
          distinguish between old product type and compact (new) product type.
  
          :return: type of ESA product
          :rtype: constants.EsaSafeType
          :raises: ValueError