o
    [h
                     @   sl   d dl mZmZmZ dd Zdd Zdd Zdd	 Zd
d Zde	fddZ
G dd deZdefddZdS )    )stCurrencyTypeCurrencyc                 C   s   | dkrd S | dv S )N )TRUE1Truetrue    valr   r   u/home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/otree/read_csv.pyread_csv_bool      r   c                 C      | dkrd S t | S Nr   )intr   r   r   r   read_csv_int
   r   r   c                 C   r   r   )floatr   r   r   r   read_csv_float   r   r   c                 C   r   r   )r   r   r   r   r   read_csv_currency   r   r   c                 C   s   t | S )N)strr   r   r   r   read_csv_str   s   r   mappingc              	   C   s^   i }|   D ]&\}}|| }z||||< W q ty,   d| dt| }t|d w |S )Nz3CSV file contains an incompatible value in column 'z': )items	Exceptionrepr)dr   retkvZtype_conversion_functionmsgr   r   r   	map_types&   s   
r#   c                   @   s   e Zd ZdS )MissingFieldErrorN)__name__
__module____qualname__r   r   r   r   r$   2   s    r$   pathc                    s   dd l }tjttttjttjt	tj
ttjti}t| dddP}||}i  |jD ]4}zt|jj| j}W n  tyV } z|j}	d|jd  d|	 d}
t|
d d }~ww ||  |< q) fdd	|D W  d    S 1 sqw   Y  d S )
Nr   rz	utf-8-sig)encodingzCSV file contains column 'z', which is not found in model .c                    s   g | ]}t | qS r   )r#   ).0rowr   r   r   
<listcomp>Q   s    zread_csv.<locals>.<listcomp>)csvr   Booleanr   r   r   Floatr   Integerr   Stringr   Textopen
DictReader
fieldnamestypeZ	__table__columnsKeyErrorr%   argsr$   )r(   Z
type_modelr0   ZCONVERSION_FUNCTIONSfreader	fieldnameZ_coltypeexcZ
model_namer"   r   r.   r   read_csv6   s.   



$rA   N)Zotree.databaser   r   r   r   r   r   r   r   dictr#   r   r$   r   rA   r   r   r   r   <module>   s    
