def get_daily_ranking_change()

in osci/postprocess/osci_change_report/process.py [0:0]


def get_daily_ranking_change(date: datetime):
    """Get daily Active Contributors and Total Community changes"""
    prev_date = get_prev_day(date)
    prev_ranking = OSCIRankingYTD(date=prev_date)
    prev_ranking_df = prev_ranking.read().reset_index().rename(columns={'index': prev_ranking.schema.position})

    ranking = OSCIRankingYTD(date=date)
    ranking_df = ranking.read().reset_index().rename(columns={'index': ranking.schema.position})

    report = OSCIChangeRankingDTD(date=date)
    change_report = get_osci_ranking_change_report(
        old_report=prev_ranking_df,
        new_report=ranking_df,
        company_field=ranking.schema.company,

        active_contributors_field=ranking.schema.active,
        active_contributors_change_field=report.schema.active_change,

        total_community_field=ranking.schema.total,
        total_community_change_field=report.schema.total_change,

        rank_field=ranking.schema.position,
        rank_change_field=report.schema.position_change)

    report.save(df=change_report)
    return change_report