o
    Ti                     @  s,  d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z G dd dZG dd deZG d	d
 d
eZG dd deZG dd deZG dd deZejdd Zejdd ZeZeZeZeZegZeegZejeejjdgZg eeeZdgZ ddgZ!dgZ"g e!e e"Z#ejee#ddd Z$ejee!ddd Z%ejee ddd  Z&ejee"dd!d" Z'd#d$ Z(eje( d% e( d& dd'd( Z)g d)Z*g d*Z+d+d,gZ,d-d. e+D Z-eje*d/d0d1 Z.eje-d/d2d3 Z/ejg d4d/d5d6 Z0ejd7d8 Z1ejd9d: Z2dS );    )annotationsN)VERSIONS)read_csv
read_tablec                   @  sV   e Zd ZU dZded< dZg Zded< dd Zd	d
 ZdddZ	dd Z
dddZdS )
BaseParserNz
str | NoneengineTzlist[str | None]float_precision_choicesc                 C  s    |  }|| j| jd |S )N)r   
low_memory)copyupdater   r	   )selfkwargs r   _/var/www/html/evchargy.com/venv/lib/python3.10/site-packages/pandas/tests/io/parser/conftest.pyupdate_kwargs   s   zBaseParser.update_kwargsc                 O     |  |}t|i |S N)r   r   r   argsr   r   r   r   r         
zBaseParser.read_csv	warn_typetype[Warning]warn_msgstrc                 O  J   |  |}tj||d t|i |W  d    S 1 sw   Y  d S N)match)r   tmassert_produces_warningr   r   r   r   r   r   r   r   r   read_csv_check_warnings      
$z"BaseParser.read_csv_check_warningsc                 O  r   r   )r   r   r   r   r   r   r   )   r   zBaseParser.read_tablec                 O  r   r   )r   r   r   r   r   r   r   r   read_table_check_warnings-   r!   z$BaseParser.read_table_check_warnings)r   r   r   r   )__name__
__module____qualname__r   __annotations__r	   r   r   r   r    r   r"   r   r   r   r   r      s   
 

r   c                   @  s   e Zd ZdZg dZdS )CParserc)NhighZ
round_tripNr#   r$   r%   r   r   r   r   r   r   r'   8   s    r'   c                   @     e Zd ZdZdS )CParserHighMemoryFNr#   r$   r%   r	   r   r   r   r   r,   =       r,   c                   @  r+   )CParserLowMemoryTNr-   r   r   r   r   r/   A   r.   r/   c                   @     e Zd ZdZdgZdS )PythonParserpythonNr*   r   r   r   r   r1   E       
r1   c                   @  r0   )PyArrowParserpyarrowNr*   r   r   r   r   r4   J   r3   r4   c                 C  s   | dddS )zG
    The directory path to the data files needed for parser tests.
    ioparserdatar   datapathr   r   r   csv_dir_pathO   s   r;   c                 C  s   t j| ddddS )zH
    The path to the data file "test1.csv" needed for parser tests.
    r6   r8   csvz	test1.csv)ospathjoinr9   r   r   r   csv1W   s   r@   Zmarksr2   Zc_highZc_lowr5   paramsidsc                 C  s8   |   }|jdkrtdtd  ddl}|d |S )z)
    Fixture all of the CSV parsers.
    r5   r   N   )paramr   pytestZimportorskipr   r5   Zset_cpu_count)requestr7   r5   r   r   r   all_parsersq   s   

rI   c                 C     |   S )z<
    Fixture all of the CSV parsers using the C engine.
    rF   rH   r   r   r   c_parser_only      rM   c                 C  rJ   )zA
    Fixture all of the CSV parsers using the Python engine.
    rK   rL   r   r   r   python_parser_only   rN   rO   c                 C  rJ   )zB
    Fixture all of the CSV parsers using the Pyarrow engine.
    rK   rL   r   r   r   pyarrow_parser_only   rN   rP   c                  C  s   g } g }t ttD ]8\}}t|dr|jd }|jD ]&}|jdkr%tjj	nd}tj
| |f|d}| | || d|  qq	| |dS )za
    Return all allowable parser and float precision
    combinations and corresponding ids.
    valuesr   r5   r   rA   -rB   )zip_all_parsers_all_parser_idshasattrrQ   r   r   rG   mark
single_cpurF   append)rC   rD   r7   Z	parser_id	precisionrW   rF   r   r   r   ,_get_all_parser_float_precision_combinations   s   




r[   rC   rD   c                 C     | j S )zR
    Fixture for all allowable combinations of parser
    and float precision
    rK   rL   r   r   r   all_parsers_all_precisions   s   	r]   )          ) rR   _utfZUTFc                 C  s$   g | ]}t D ]	}| | d qqS )z{0})_encoding_prefixes).0sepprefixr   r   r   
<listcomp>   s
    rh   )rC   c                 C  r\   )zE
    Fixture for all possible integer values for a UTF encoding.
    rK   rL   r   r   r   	utf_value      ri   c                 C  r\   )zD
    Fixture for all possible string formats of a UTF encoding.
    rK   rL   r   r   r   encoding_fmt   rj   rk   )*)z-1,0      )z-1,2e0g333333)z-1e0rl   )z+1e0      ?)z+1e+0rm   )z+1e-1皙?)z+,1e1rm   )z+1,e0rm   )z-,1e1rl   )z-1,e0rl   )z0,1rn   )z1,rm   )z,1rn   )z-,1g)z1_,rm   )z1_234,56
ףp=J@)z
1_234,56e0ro   )rb   rb   )-_rp   )-_1rq   )-_1e0rr   )_1rs   )_1,rt   )_1,_ru   )_1e0rv   )1,2e_1rw   )1,2e1_0rx   )1,_2ry   ),1__2rz   ),1er{   )-,1er|   )1_000,000_000r}   )1,e1_2r~   )e11,2r   )1e11,2r   )1,2,2r   )1,2_1r   )	1,2e-10e1r   )--1,2r   )1a_2,1r   )z1,2E-1gQ?)z1,2E1g      (@c                 C  r\   )z
    Fixture for all numeric formats which should get recognized. The first entry
    represents the value to read while the second represents the expected result.
    rK   rL   r   r   r   numeric_decimal   s   4r   c                 C  s`   d| j v r| d}nd| j v r| dd }ndS |jdkr.tjjdd}| j| dS dS )z>
    Fixture that xfails a test if the engine is pyarrow.
    rI   r]   r   Nr5   pyarrow doesn't support this.)reason)fixturenamesgetfixturevaluer   rG   rW   ZxfailnodeZ
add_marker)rH   r7   rW   r   r   r   pyarrow_xfail  s   


r   c                 C  sP   d| j v r| d}nd| j v r| dd }ndS |jdkr&td dS dS )z=
    Fixture that skips a test if the engine is pyarrow.
    rI   r]   r   Nr5   r   )r   r   r   rG   skip)rH   r7   r   r   r   pyarrow_skip  s   


r   )3
__future__r   r=   rG   Zpandas.compat._optionalr   Zpandasr   r   Zpandas._testingZ_testingr   r   r'   r,   r/   r1   r4   Zfixturer;   r@   Z_cParserHighMemoryZ_cParserLowMemoryZ_pythonParserZ_pyarrowParserZ_py_parsers_onlyZ_c_parsers_onlyrF   rW   rX   Z_pyarrow_parsers_onlyrT   Z_py_parser_idsZ_c_parser_idsZ_pyarrow_parsers_idsrU   rI   rM   rO   rP   r[   r]   Z_utf_valuesZ_encoding_sepsrd   Z_encoding_fmtsri   rk   r   r   r   r   r   r   r   <module>   sx    (











/
