gL i 8ddlZddlmZddlZddlZddlZddlm Z ddl m Z ejdZejj!dejj!dejj#ddegd Zejj!dejj!dd Zejj!dejj!dd Zejj!dejj!dd Zd ZdZdZejj!dejj!ddZy)N)Path)Version pyreadstatz,ignore::pandas.errors.ChainedAssignmentErrorz+ignore:ChainedAssignmentError:FutureWarning path_klassc|S)N)ps _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/io/test_spss.pyr s!cx||dddd}tj|d}tjddid g }tj|d|d<t j ||tj|d }tjdd id g }t j ||y) Niodataspsslabelled-num.savTconvert_categoricalsVAR00002 This is oner)indexF?pd read_spss DataFrame Categoricaltmassert_frame_equal)rdatapathfnamedfexpecteds r test_spss_labelled_numr#s xff6HI JE e$ 7B||Z7sCH>>(:*>?HZ"h' e% 8B||Z-aS9H"h'r c|dddd}tj|d}tjdddgi}tj|d|d<t j ||tj|d }tjdd t jgi}t j ||y) Nrrrzlabelled-num-na.savTrrrFr)rrrrrrnpnanrr r!r"s r test_spss_labelled_num_nar("s T66+@ AE e$ 7B||Z-)>?@H>>(:*>?HZ"h' e% 8B||Z#rvv78H"h'r ch|dddd}tj|d}tjddd gi}tj|d|d<t j ||tj|d }tjdd d gi}t j ||y) Nrrrzlabelled-str.savTrgenderMaleFemaleFMFrr's r test_spss_labelled_strr/3s T66+= >E e$ 7B||X'9:;H(:;HX"h' e% 8B||XSz23H"h'r ch|dddd}tj|d}tjdgdi}tj|d|d<t j ||tj|d }tjdgd i}t j ||y) Nrrr umlauts.savTrvar1) the ä umlautu the ü umlautr3u the ö umlautFrg@rg@rr's r test_spss_umlautsr5Ds T66= 9E e$ 7B|| UVH~~hv&67HV"h' e% 8B||V%9:;H"h'r c|dddd}tjtd5tj|ddddy#1swYyxYw) Nrrrrzusecols must be list-like.matchr)usecols)pytestraises TypeErrorrr)rr s r test_spss_usecolsr=WsE T66+= >E y(D E0 UJ/000s AAc |dddd}tj|d|}tjdgdid }|d k(rctjd }d d lm}tj|jDcic]}|||j||d!c}}tj||ycc}w)Nrrrr1F)r dtype_backendr2r4Int64)dtypepyarrowr)ArrowExtensionArrayT) from_pandas) rrrr: importorskip pandas.arraysrCcolumnsarrayrr)rr?r r!r"parCcols r test_spss_umlauts_dtype_backendrK_s T66= 9E e%} UB||V%9:'JH !   +5<<$++ ((3-T)RSS  "h'  s<$B>cd}tjt|5tjdddddy#1swYyxYw)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r7testnumpy)r?)r:r; ValueErrorrr)msgs r test_invalid_dtype_backendrQvs? ! z -4 V73444s ?Ac V|dddd}tj|}iddgddgdddid d d d d d ddddiiddddiidddidgdddidddidddididddidddiddiddidd d!}ttjtd"k\rD|j t j d#d$d%d&d'd(t j d#d$d%d&d'd(d)ttjtd*k\ri|d+<tj|j|y),Nrrrr column_namesr column_labelscolumn_names_to_labels file_encodingzUTF-8number_columns number_rowsvariable_value_labelsrr value_labelslabels0variable_to_labelnotesoriginal_variable_typeszF8.0readstat_variable_typesdouble table_namemissing_rangesmissing_user_valuesvariable_storage_widthvariable_display_widthunknownzsav/zsav)variable_alignmentvariable_measure file_label file_formatz1.2.4i!$) creation_timemodification_timez1.2.8mr_sets) rrrr __version__updatedatetimerassert_dict_equalattrs)rr r!metadatas r test_spss_metadatar{s T66+= >E e B $ !:t"4   !  q  *sM.B!C S-$89 j)4  "J#7 "J#9 d " r !:q/!" !:q/#$ *95'3!+H.z%%&''*::!)!2!24Ar2r!J%-%6%6tQ2r2%N  z%%&''*:: 8,r )rwpathlibrrNr%r:pandasrpandas._testing_testingrpandas.util.versionrrErmarkfilterwarnings parametrizer#r(r/r5r=rKrQr{rr r rs ' V  . JKIJ T':; (<KL (JKIJ (KL (JKIJ (KL (JKIJ(KL("0(.4JKIJ%-KL%-r