
    A>i0                     B   S SK r S SKJr  S SKrS SKrS SKrS SKJ	r
  \R                  " S5      r\R                  R                  S5      \R                  R                  SS \/5      S 5       5       r\R                  R                  S5      S 5       r\R                  R                  S5      S	 5       r\R                  R                  S5      S
 5       r\R                  R                  S5      S 5       rS rS rS r\R                  R                  S5      S 5       rg)    N)Path
pyreadstatz,ignore::pandas.errors.ChainedAssignmentError
path_klassc                     U $ )N )ps    X/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/test_spss.py<lambda>r
      s    !    c                 j   U " U" SSSS5      5      n[         R                  " USS9n[         R                  " SS0S	/S
9n[         R                  " US   5      US'   [        R
                  " X45        [         R                  " USS9n[         R                  " SS0S	/S
9n[        R
                  " X45        g )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expecteds        r	   test_spss_labelled_numr"      s    
 xff6HIJE	e$	7B||Z7sCH>>(:*>?HZ"'	e%	8B||Z-aS9H"'r   c                    U " SSSS5      n[         R                  " USS9n[         R                  " SSS /05      n[         R                  " US   5      US'   [        R
                  " X#5        [         R                  " US	S9n[         R                  " SS
[        R                  /05      n[        R
                  " X#5        g )Nr   r   r   zlabelled-num-na.savTr   r   r   Fr   )r   r   r   r   r   r   npnanr   r   r    r!   s       r	   test_spss_labelled_num_nar'       s     T66+@AE	e$	7B||Z-)>?@H>>(:*>?HZ"'	e%	8B||Z#rvv78H"'r   c                 f   U " SSSS5      n[         R                  " USS9n[         R                  " SSS	/05      n[         R                  " US   5      US'   [        R
                  " X#5        [         R                  " US
S9n[         R                  " SSS/05      n[        R
                  " X#5        g )Nr   r   r   labelled-str.savTr   genderMaleFemaleFMFr   r&   s       r	   test_spss_labelled_strr/   0   s     T66+=>E	e$	7B||X'9:;H(:;HX"'	e%	8B||XSz23H"'r   c                 ,   U " SSSS5      n[         R                  " USSS9n[         R                  " SS	/0S
S9n[        R                  " X#5        [         R                  " USSS9n[         R                  " SS/05      n[        R                  " X#5        g )Nr   r   r   r)   T   )r   	row_limitr*   r+   categorydtypeF)r   
row_offsetr.   )r   r   r   r   r   r&   s       r	   test_spss_kwargsr7   @   s     T66+=>E	e$!	DB||Xx0
CH"'	e%A	FB||Xu-.H"'r   c                 f   U " SSSS5      n[         R                  " USS9n[         R                  " S/ SQ05      n[         R                  " US   5      US'   [        R
                  " X#5        [         R                  " US	S9n[         R                  " S/ S
Q05      n[        R
                  " X#5        g )Nr   r   r   umlauts.savTr   var1)   the ä umlautu   the ü umlautr;   u   the ö umlautFr   g       @r   g      @r   r&   s       r	   test_spss_umlautsr=   O   s     T66=9E	e$	7B||	UVH ~~hv&67HV"'	e%	8B||V%9:;H"'r   c                     U " SSSS5      n[         R                  " [        SS9   [        R                  " USS9  S S S 5        g ! , (       d  f       g = f)	Nr   r   r   r   zusecols must be list-like.matchr   )usecols)pytestraises	TypeErrorr   r   )r   r   s     r	   test_spss_usecolsrE   a   s=    T66+=>E	y(D	E
UJ/ 
F	E	Es   A
Ac                    U " SSSS5      n[         R                  " USUS9n[         R                  " S/ SQ0S	S
9nUS:X  ac  [        R                  " S5      nSSKJn  [         R                  " UR                   Vs0 s H  nXv" UR                  XG   SS95      _M     sn5      n[        R                  " X45        g s  snf )Nr   r   r   r9   F)r   dtype_backendr:   r<   Int64r4   pyarrowr   )ArrowExtensionArrayT)from_pandas)r   r   r   rB   importorskippandas.arraysrJ   columnsarrayr   r   )r   rG   r   r    r!   parJ   cols           r	   test_spss_umlauts_dtype_backendrR   i   s     T66=9E	e%}	UB||V%9:'JH	!  +5<< $+++C ((-T)RSS+
 "'s   ;"B;c                      Sn [         R                  " [        U S9   [        R                  " SSS9  S S S 5        g ! , (       d  f       g = f)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r?   testnumpy)rG   )rB   rC   
ValueErrorr   r   )msgs    r	   test_invalid_dtype_backendrX      s6    	!  
z	-
V73 
.	-	-s	   ;
A	c                    U " SSSS5      n[         R                  " U5      n0 SS/_SS /_SSS 0_S	S
_SS_SS_SSSS00_SSSS00_SSS0_S/ _SSS0_SSS0_SS _S0 _S0 _SSS0_SSS0_SS0SS0S S [        R                  " S!S"S#S$S%S&5      [        R                  " S!S"S#S$S%S&5      0 S'.En[        R                  " UR
                  U5        g )(Nr   r   r   r   column_namesr   column_labelscolumn_names_to_labelsfile_encodingzUTF-8number_columnsr1   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/zsavi           !   $   )variable_alignmentvariable_measure
file_labelfile_formatcreation_timemodification_timemr_sets)r   r   datetimer   assert_dict_equalattrs)r   r   r    metadatas       r	   test_spss_metadatar      s    T66+=>E	e	B$ 	!:t"4 		
 	! 	q 	 *sM.B!C 	S-$89 	j)4 	 	"J#7 	"J#9 	d 	" 	r  	!:q/!" 	!:q/#$  *95'3!!**4Ar2rB%..tQ2r2F1H4 8,r   )r{   pathlibr   rU   r$   rB   pandasr   pandas._testing_testingr   rL   r   markfilterwarningsparametrizer"   r'   r/   r7   r=   rE   rR   rX   r   r   r   r	   <module>r      s2          .

 JKT':;( < L( JK( L( JK( L( JK( L( JK( L("0(.4 JK- L-r   