o
    _~#g                     @   s   d dl Z d dlmZ d dlZd dlZd dlZd dlm	Z
 d dlmZ edZejdejdejddd	 egd
d Zejdejddd Zejdejddd Zejdejddd Zdd Zdd Zdd Zejdejddd ZdS )    N)Path)Version
pyreadstatz,ignore::pandas.errors.ChainedAssignmentErrorz+ignore:ChainedAssignmentError:FutureWarning
path_klassc                 C   s   | S )N )pr   r   ~/var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/io/test_spss.py<lambda>   s    r	   c                 C   s   | |dddd}t j|dd}t jddid	gd
}t |d |d< t|| t j|dd}t jddid	gd
}t|| d S )Niodataspsslabelled-num.savTconvert_categoricalsVAR00002This is oner   )indexF      ?pd	read_spss	DataFrameCategoricaltmassert_frame_equal)r   datapathfnamedfexpectedr   r   r   test_spss_labelled_num   s   r   c                 C   s~   | dddd}t j|dd}t ddd gi}t |d |d< t|| t j|d	d}t dd
tjgi}t|| d S )Nr
   r   r   zlabelled-num-na.savTr   r   r   Fr   )r   r   r   r   r   r   npnanr   r   r   r   r   r   r   test_spss_labelled_num_na"   s   r#   c                 C   s|   | dddd}t j|dd}t ddd	gi}t |d |d< t|| t j|d
d}t dddgi}t|| d S )Nr
   r   r   zlabelled-str.savTr   genderMaleFemaleFMFr   r"   r   r   r   test_spss_labelled_str3   s   r)   c                 C   s|   | dddd}t j|dd}t dg di}t |d |d< t|| t j|d	d}t dg d
i}t|| d S )Nr
   r   r   umlauts.savTr   var1)   the ä umlautu   the ü umlautr,   u   the ö umlautFr   g       @r   g      @r   r"   r   r   r   test_spss_umlautsD   s   
r.   c                 C   sP   | dddd}t jtdd tj|dd W d    d S 1 s!w   Y  d S )	Nr
   r   r   r   zusecols must be list-like.matchr   )usecols)pytestraises	TypeErrorr   r   )r   r   r   r   r   test_spss_usecolsW   s   "r5   c                    s   | dddd}t j|d|d}t jdg did	d
|dkr8tdddlm  t  fddjD t	| d S )Nr
   r   r   r*   F)r   dtype_backendr+   r-   Int64)dtypepyarrowr   )ArrowExtensionArrayc                    s$   i | ]}| j | d dqS )T)from_pandas)array).0colr:   r   par   r   
<dictcomp>m   s    z3test_spss_umlauts_dtype_backend.<locals>.<dictcomp>)
r   r   r   r2   importorskippandas.arraysr:   columnsr   r   )r   r6   r   r   r   r?   r   test_spss_umlauts_dtype_backend_   s   
rE   c                  C   sF   d} t jt| d tjddd W d    d S 1 sw   Y  d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r/   testnumpy)r6   )r2   r3   
ValueErrorr   r   )msgr   r   r   test_invalid_dtype_backendv   s
   "rJ   c                 C   s  | dddd}t |}i ddgdd gddd id	d
ddddddddiiddddiidddidg dddidddidd di di dddidddiddiddid d d!}ttjtd"kr|td#d$d%d&d'd(td#d$d%d&d'd(d) |j|ksJ d S )*Nr
   r   r   r   column_namesr   column_labelscolumn_names_to_labelsfile_encodingzUTF-8number_columns   number_rowsvariable_value_labelsr   r   value_labelslabels0variable_to_labelnotesoriginal_variable_typeszF8.0readstat_variable_typesdouble
table_namemissing_rangesmissing_user_valuesvariable_storage_width   variable_display_widthunknownzsav/zsav)variable_alignmentvariable_measure
file_labelfile_formatz1.2.4i           !   $   )creation_timemodification_time)r   r   r   r   __version__updatedatetimeattrs)r   r   r   metadatar   r   r   test_spss_metadata   sb   
	
rq   )rn   pathlibr   rG   r    r2   pandasr   pandas._testing_testingr   pandas.util.versionr   rB   r   markfilterwarningsparametrizer   r#   r)   r.   r5   rE   rJ   rq   r   r   r   r   <module>   s6    









	
