
    \j                        S r SSKrSSKrSSKJr  SSKrSSKrSSKr\" \	5      R                  5       R                  R                  r\S-  S-  S-  rS\R                  4S jrS\4S	 jr\S
:X  a  \R&                  " \" 5       5        gg)u  
Importa il nome dell'arbitro nella tabella matches, dalle colonne Referee dei
CSV football-data già scaricati (disponibile solo per la Premier League).

Aggiunge la colonna matches.referee se manca. Idempotente.

Uso:
    python scripts/import_referees.py
    N)Pathdatarawzfootball-datareturnc            	      
   / n [        [        R                  S5      5       GHJ  nUR                  5       S S S:X  a  SOSn[        R
                  " XSS9nUR                  R                  R                  5       Ul        SUR                  ;  a  [        S	UR                   S
35        M  UR                  / SQS9nU/ SQ   R                  5       n[        R                  " US   SSSS9US'   UR                  S/S9nUS   R                  R                  SSSS9R                  R                  5       US'   U R                  U5        [        SUR                   S[!        U5       S35        GMM     [        R"                  " U SS9$ )Nz*_E0.csv   s   ﻿z	utf-8-sigzlatin-1skip)encodingon_bad_linesRefereez
  [salto] z: nessuna colonna Referee)DateHomeTeamAwayTeamr   )subsetr   Tmixedcoerce)dayfirstformaterrorsz\s+ )regexz  [ok] z: z partite con arbitro)ignore_index)sortedRAW_DIRglob
read_bytespdread_csvcolumnsstrstripprintnamedropnacopyto_datetimereplaceappendlenconcat)framespathr
   dfouts        2C:\wamp64\www\Tigertips\scripts\import_referees.pyload_referee_rowsr0      sS   Fw||J/0"&//"3BQ"7?"J;PY[[vFZZ^^))+
BJJ&Jtyyk)BCDYYIYJ<=BBDnnS[4,3HFFjjj)Y++33FCt3LPPVVXIc		{"SXJ.BCD 1  99V$//    c            
         [         R                  " SS9n [        R                  " U 5        U R	                  5       n[        5       n[        S[        U5       SUS   R                  5        S35        [        R                  " UR                  UR                  UR                  UR                  SS9nUR                  5       nUR!                  S	5        UR#                  5       S
   S
:X  a,  UR!                  S5        UR%                  5         [        S5        UR!                  S5        UR'                  5        VVVVs0 s H  u  pVpxXgU4U_M     n	nnnn/ S
pUR)                  SS9 Hj  nU	R+                  UR,                  R/                  5       UR0                  UR2                  45      nUc  US-  nMM  U
R5                  UR6                  U45        Ml     [9        S
[        U
5      S5       H*  nUR;                  SXUS-    5        UR%                  5         M,     UR!                  S5        [        SUR#                  5       S
    SU S35        UR=                  5         g
s  snnnnf )Nz'Importa arbitri (Premier League) nel DB)descriptionzTotale: z
 partite, r   z arbitri distinti	tigertips)hostportuserpassworddatabasez
        SELECT COUNT(*) FROM information_schema.columns
        WHERE table_schema = 'tigertips' AND table_name = 'matches'
          AND column_name = 'referee'
    r   zEALTER TABLE matches ADD COLUMN referee VARCHAR(50) NULL AFTER away_xgz Colonna matches.referee aggiuntaz
        SELECT m.id, m.match_date, h.name, a.name
        FROM matches m
        JOIN leagues l ON l.id = m.league_id
        JOIN teams h ON h.id = m.home_team_id
        JOIN teams a ON a.id = m.away_team_id
        WHERE l.code = 'E0'
    F)index   i  z-UPDATE matches SET referee = %s WHERE id = %sz6SELECT COUNT(*) FROM matches WHERE referee IS NOT NULLzPartite con arbitro nel DB: z (non abbinate: ))argparseArgumentParserconfigadd_db_args
parse_argsr0   r"   r)   nuniquepymysqlconnectr5   r6   r7   r8   cursorexecutefetchonecommitfetchall
itertuplesgetr   dater   r   r(   r   rangeexecutemanyclose)parserargsrefsconncurmiddhnan	match_idsrows	unmatchedrstarts                 r/   mainr^   -   s   $$1Z[F
vDD	HSYKz$y/*A*A*C)DDU
VW??						$(MMKID
++-CKK  	
 ||~aA[\01KK  	 9<Gncb!c!IG!)__5_)mmQVV[[]AJJ

CD;NIQYY$% * q#d)T*G54<0	2 +
 KKHI	():(; <%;a) *JJL' Hs   ;I
__main__)__doc__r=   syspathlibr   pandasr   rC   r?   __file__resolveparentPROJECT_ROOTr   	DataFramer0   intr^   __name__exit r1   r/   <module>rm      s     
    H~%%'..55

%
'/
902<< 0*0c 0f zHHTV r1   