def __init__(self, data_provider, output, set_name=None): self.data_provider = data_provider self.output = output self.products = self.data_provider[Data.ALL_PRODUCTS] self.k_engine = BaseCalculationsGroup(data_provider, output) self.project_name = data_provider.project_name self.session_uid = self.data_provider.session_uid self.products = self.data_provider[Data.ALL_PRODUCTS] self.match_product_in_scene = self.data_provider[Data.MATCHES] self.visit_date = self.data_provider[Data.VISIT_DATE] self.session_info = SessionInfo(data_provider) self.scif = self.data_provider[Data.SCENE_ITEM_FACTS] if not self.scif.empty: self.kpi_fetcher = CARREFOUR_ARKPIFetcher(self.project_name, self.scif, self.match_product_in_scene) self.store_number = self.kpi_fetcher.get_store_number() self.session_fk = self.data_provider[Data.SESSION_INFO]['pk'].iloc[0] self.set_name = set_name self.results_columns = ['session_id', 'product_fk', 'qty_in_store_stock', 'qty_in_dc', 'on_shelf', 'oos_but_in_store_stock', 'oos_but_in_dc', 'full_oos', 'sales_price'] self.results = pd.DataFrame([], columns=self.results_columns) self.results_list = []