o
    h                     @   st   d dl Z d dlZd dlZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )    Nc                 C   s$   g }|   D ]	\}}||g7 }q|S )z Extracts all the names of the statistics

    Args:
        dict_of_stats (dict): Dictionary containing key-alue pair of stats
    )items)dict_of_stats
stat_nameskeyval r   5/var/www/html/fpl_model_app/scripts/utills/parsers.pyextract_stat_names   s   r	   c           
      C   s   g }| d D ]#}|d }|d }|d d }i }||d< ||d< ||d< ||g7 }qt tj|dd	d
d}t|g d}	|	  |D ]}|	| qDd S )Neventsidtop_elementtop_element_infopointsgw	player_idzbest_players.csvw+ )newline)r   r   r   )openospathjoincsv
DictWriterwriteheaderwriterow)
database_filenamerowseventr   r   r   rowfwr   r   r   parse_top_players   s    r#   c                 C   sx   t | d }|d }tjtj|dd t|dddd}t|t|}|	  | D ]}|
d	d
 | D  q+d S )Nr   zplayers_raw.csvTexist_okr   utf8r   encodingr   c                 S   s&   i | ]\}}|t |d d qS )zutf-8)strencodedecode).0kvr   r   r   
<dictcomp>)   s   & z!parse_players.<locals>.<dictcomp>)r	   r   makedirsr   dirnamer   r   r   sortedr   r   r   )list_of_playersr   r   filenamer!   r"   playerr   r   r   parse_players!   s   r6   c           	      C      t | dkrAt| d }|| d t| d }tjtj|dd t|dddd	}t	|t
|}|  | D ]	}|| q9d S d S )
Nr   _z/history.csvTr$   r   r&   r   r'   lenr	   r)   r   r0   r   r1   r   r   r   r2   r   r   )	list_of_historiesr   player_nameIdr   r4   r!   r"   historyr   r   r   parse_player_history+      r?   c           	      C   r7   )
Nr   r8   z/gw.csvTr$   r   r&   r   r'   r9   )	
list_of_gwr   r<   r=   r   r4   r!   r"   r   r   r   r   parse_player_gw_history6   r@   rB   c                 C   sV   | D ]&}|d }|d d }dt | d }tj|}|jtj||dd qd S )Npicksentry_historyr   picks_z.csvFindex)r)   pd	DataFramefrom_recordsto_csvr   r   r   )r   outfile_baser   rC   r   r4   picks_dfr   r   r   parse_gw_entry_historyA   s   rN   c                 C   s|   t j| d }|jtj|ddd t j| d }|jtj|ddd t j| d }|jtj|ddd d S )	Nchipsz	chips.csvFrF   pastzhistory.csvcurrentzgws.csvrH   rI   rJ   rK   r   r   r   )r   rL   chips_df	season_dfgw_history_dfr   r   r   parse_entry_historyI   s   rV   c                 C   s   t j| d d }|jtj|ddd zt j| d d d }|jtj|ddd W n ty=   td	 Y nw t j| d d
 }|jtj|ddd d S )Nleaguesclassiczclassic_leagues.csvFrF   cupmatcheszcup_leagues.csvzNo cups yeth2hzh2h_leagues.csv)	rH   rI   rJ   rK   r   r   r   KeyErrorprint)r   rL   classic_leagues_dfcup_leagues_dfh2h_leagues_dfr   r   r   parse_entry_leaguesT   s   ra   c                 C   (   t j| }|jtj|ddd d S )Nztransfers.csvFrF   rR   )r   rL   wildcards_dfr   r   r   parse_transfer_history_      rd   c                 C   rb   )Nzfixtures.csvFrF   rR   )r   rL   fixtures_dfr   r   r   parse_fixturesc   re   rg   c                 C   rb   )Nz	teams.csvFrF   rR   )r   rL   teams_dfr   r   r   parse_team_datag   re   ri   )r   r   pandasrH   r	   r#   r6   r?   rB   rN   rV   ra   rd   rg   ri   r   r   r   r   <module>   s    
