
    ͬi	              
          d Z ddlZddlZddlZddlZddlZddlmZmZ ej                  j                  dej                  j                  ej                  j                  ej                  j                  e                         ddlmZmZ ddlmZ ddlmZ  ej(                  ed        ej*                  ej,                  d	 ej.                  e       ej0                  ej2                        g
        ej4                  d      Zej8                  ej:                  ej<                  ej>                  dZ d Z!e"dk(  r e!        yy)u^  
Publishing Integrity Runner — main entry point for scheduled runs.

Usage:
    python -m publishing_integrity.runner morning
    python -m publishing_integrity.runner midday
    python -m publishing_integrity.runner pregame
    python -m publishing_integrity.runner --dry-run morning
    python -m publishing_integrity.runner --league nba morning
    N)datetimetimezone)LOG_DIRLOG_FILE)RunType)run_validationT)exist_okz'%(asctime)s [%(levelname)s] %(message)s)levelformathandlerszpub-integritymorningmiddaypregamemanualc                     t        j                  d      } | j                  dg dd       | j                  ddd	
       | j                  dt        d d       | j	                         }t
        |j                     }|j                  r|j                  gnd }t        j                  d|j                   dt        j                  t        j                        j                  d              	 t        |||j                         }t        j                  dt#        j$                  |dt                      t'        j(                  d       y # t*        $ r- t        j-                  d       t'        j(                  d       Y y w xY w)Nz%Rainmaker Publishing Integrity Runner)descriptionrun_typer   zType of validation run)choiceshelpz	--dry-run
store_truez"Don't modify any data, just report)actionr   z--leaguezRun for a specific league only)typedefaultr   z	Starting z run at z%Y-%m-%d %H:%M:%S ET)r   leaguesdry_runzRun completed successfully:    )indentr   r   zRun failed with error   )argparseArgumentParseradd_argumentstr
parse_argsRUN_TYPE_MAPr   leagueloginfor   nowr   utcstrftimer   r   jsondumpssysexit	Exception	exception)parserargsr   r   results        F/var/www/html/rainmaker/backend/scripts/publishing_integrity/runner.pymainr6   0   s>   $$1XYF

,V5  7
LA  C

d=  ?DDMM*H#{{t{{mGHHyxX\\0J0S0STj0k/lmn
LL

 	/

6!UX0Y/Z[\ -.s   .AE 3FF__main__)#__doc__osr.   r    loggingr,   r   r   pathinsertdirnameabspath__file__publishing_integrity.configr   r   publishing_integrity.enumsr   publishing_integrity.schedulingr   makedirsbasicConfigINFOFileHandlerStreamHandlerstdout	getLoggerr'   MORNING_FULLMIDDAY_CONFIRMPRE_GAME_FINALMANUALr%   r6   __name__     r5   <module>rQ      s  	 
 
    ' 277??277??277??83L#MN O 9 . : Gd #   
,,4H%cjj) g( ##$$%%nn	8 zF rP   