<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_data_source(self):
 """The method determines data source from product ID. :return: Data source of the product :rtype: DataSource :raises: ValueError """

        product_type = self.product_id.split('_')[1]
        if product_type.endswith('L1C') or product_type == 'OPER':
            return DataSource.SENTINEL2_L1C
        if product_type.endswith('L2A') or product_type == 'USER':
            return DataSource.SENTINEL2_L2A
        raise ValueError('Unknown data source of product {}'.format(self.product_id))