Example #1
0
def generate_category_stats_export_file(stats):
    start_time = time.time()

    temp_file = tempfile.NamedTemporaryFile(suffix='.xlsx',
                                            prefix='wb_category_',
                                            mode='r+b',
                                            delete=True)

    writer = pd.ExcelWriter(temp_file.name)

    dataframe = stats.df
    dataframe = dataframe.drop([
        'turnover', 'sku', 'days_since_first_review', 'turnover_month',
        'purchases_month', 'bin'
    ],
                               axis=1)
    dataframe.to_excel(writer, sheet_name='Товары', index=None, header=True)

    distributions = calc_sales_distribution(stats)
    distributions.df.to_excel(writer,
                              sheet_name='Распределение продаж',
                              index=None,
                              header=True)
    writer.save()

    logger.info(
        f'Export file generated in {time.time() - start_time}s, {os.path.getsize(temp_file.name)} bytes'
    )

    return temp_file
Example #2
0
    def sales_distribution_turnover_chart(self):
        distributions_price = calc_sales_distribution(self.stats)

        df = distributions_price.df.loc[:, ['bin', 'turnover_month']]
        df['val'] = df['turnover_month']

        return IntervalBarChart(df, x_axis='Цена', y_axis='Оборот').to_dict()
Example #3
0
    def sales_distribution_skus_chart(self):
        distributions_price = calc_sales_distribution(self.stats)

        df = distributions_price.df.loc[:, ['bin', 'sku']]
        df['val'] = df['sku']

        return IntervalBarChart(df, x_axis='Цена', y_axis='Количество артикулов').to_dict()
Example #4
0
def generate_category_stats_export_file(stats):
    start_time = time.time()

    temp_file = tempfile.NamedTemporaryFile(suffix='.xlsx',
                                            prefix='wb_category_',
                                            mode='r+b',
                                            delete=True)

    writer = pd.ExcelWriter(temp_file.name)
    stats.df.to_excel(writer, sheet_name='Товары', index=None, header=True)

    distributions = calc_sales_distribution(stats)
    distributions.df.to_excel(writer,
                              sheet_name='Распределение продаж',
                              index=None,
                              header=True)
    writer.save()

    logger.info(
        f'Export file generated in {time.time() - start_time}s, {os.path.getsize(temp_file.name)} bytes'
    )

    return temp_file