import os import sys import argparse from dotenv import load_dotenv import pandas as pd from loguru import logger from config import LogParams import data def main(): parser = argparse.ArgumentParser(description="Marketshare-CEA") parser.add_argument("--partner", "-p", type=str, default=None, help="Process only this partner") parser.add_argument("--force", "-f", action="store_true", help="Force update even if data already exists") parser.add_argument("--marketshare-date", "-d", type=str, default=None, help="Marketshare date (YYYY-MM-DD)") parser.add_argument("--max-date", "-m", type=str, default=None, help="Max date (YYYY-MM-DD)") args = parser.parse_args() marketshare_date = pd.to_datetime(args.marketshare_date).date() if args.marketshare_date else None max_date = pd.to_datetime(args.max_date).date() if args.max_date else None logger.add( f"{os.getenv('LOGDIR')}/{LogParams.log_file}", rotation=LogParams.log_rotation, retention=LogParams.log_retention, compression=LogParams.log_compression, level=LogParams.log_level ) logger.info("Starting Marketshare-CEA...") data.feed_marketshare_weekly( marketshare_date=marketshare_date, max_date=max_date, partner=args.partner, force=args.force ) logger.success("Marketshare-CEA completed successfully") if __name__ == "__main__": main()