
    4i                        S SK r S SKrS SKrS SKJrJrJrJrJ	r	J
r  S SKJr  SS\R                  S/4SS\R                  S	/4S
\R                  \R                  \R                  /4S
/ 4SS\R                  S/4/r\" \SS06u  rr\R&                  " \\S9S 5       rS rS rS r\R0                  R3                  S\S/5      S 5       r\R0                  R3                  S\S/5      S 5       rS rg)    N)CategoricalDtype	DataFrameIndex
MultiIndexSeries_testing)StringMethodsstringacbytes   a   cemptymixed-integer   strictT)paramsidsc                 V    U R                   u  p[        R                  " U[        S9nX4$ )a  
Fixture for all (inferred) dtypes allowed in StringMethods.__init__

The covered (inferred) types are:
* 'string'
* 'empty'
* 'bytes'
* 'mixed'
* 'mixed-integer'

Returns
-------
inferred_dtype : str
    The string for the inferred dtype from _libs.lib.infer_dtype
values : np.ndarray
    An array of object dtype that will be inferred to have
    `inferred_dtype`

Examples
--------
>>> from pandas._libs import lib
>>>
>>> def test_something(any_allowed_skipna_inferred_dtype):
...     inferred_dtype, values = any_allowed_skipna_inferred_dtype
...     # will pass
...     assert lib.infer_dtype(values, skipna=True) == inferred_dtype
...
...     # constructor for .str-accessor will also pass
...     Series(values).str
dtype)paramnparrayobject)requestinferred_dtypevaluess      _/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/strings/test_api.py!any_allowed_skipna_inferred_dtyper!      s,    @ %]]NXXfF+F !!    c                     [         R                  [        L d   e[        [        S/U S9R                  [        5      (       d   eg N r   )r   strr	   
isinstance)any_string_dtypes    r    test_apir)   D   s7    ::&&&fbT)9:>>NNNNr"   c                 t    [        S/U S9n[        R                  " U5      nUR                    AU" 5       b   eg r$   )r   weakrefrefr&   )r(   serr,   s      r    test_no_circular_referencer.   J   s5    
"-
.C
++c
CGG5==r"   c                      [         R                  " / SQ/5      n Sn[        R                  " [        US9   U R
                    S S S 5        [        U S5      (       a   eg ! , (       d  f       N"= f)N)r   br   z5Can only use .str accessor with Index, not MultiIndexmatchr&   )r   from_arrayspytestraisesAttributeErrorr&   hasattr)mimsgs     r    test_api_mi_raisesr:   S   sS    			 1	2B
AC	~S	1
 
2r5!!!!! 
2	1s   A
A,r   categoryc                    U nUu  pEU" XQS9n/ SQnXG;   a"  [        UR                  [        5      (       d   eg Sn[        R                  " [
        US9   UR                    S S S 5        [        US5      (       a   eg ! , (       d  f       N"= f)Nr   )r
   unicoder   r   mixedr   z/Can only use .str accessor with string values.*r1   r&   )r'   r&   r	   r4   r5   r6   r7   )	index_or_seriesr   any_skipna_inferred_dtypeboxr   r   ttypes_passing_constructorr9   s	            r    test_api_per_dtyperD   \   s     C6NF A! 2!%%//// @]]>5EE 61e$$$$$ 65s   A<<
B
c                 
   U nUu  pxUu  pnS nU[         L ak  UR                  S:X  a[  U	S;   a   UR                  SS5      (       a	  [        nSnO\U	S:X  a   UR                  SS 5      (       a	  [        nSnO6U	S:X  a  [        nS	nO'U[         L a  US
:X  a  U[
        :X  a  U	S:X  a  [        nS	nUb/  [        R                  R                  WUS9nUR                  U5        U" XS9n[        UR                  U	5      nU(       a  US:X  a  U	S;  nOSnU	S;   nU	S;  nS
/SS/U-  -   S/U-  -   SS/U-  -   nUU;   a	  U" U
0 UD6  g SU	 SU< S3n[        R                  " [        US9   U" U
0 UD6  S S S 5        g ! , (       d  f       g = f)Nr   )	partition
rpartitionexpandTz#Method cannot deal with empty Indexsplitz,Split fails on empty Series when expand=Trueget_dummiesz(Need to fortify get_dummies corner casesr   )r5   reasonr   r;   )decode)rL   getlenslice)catr
   r=   r   r>   r   zCannot use .str.z with values of inferred dtype z,.|a bytes-like object is required, not 'str'r1   )r   sizerM   	TypeError
ValueErrorr   r4   markxfailapplymarkergetattrr&   r5   )r?   r   r!   any_string_methodr   using_infer_stringrA   r   r   method_nameargskwargsrK   r5   rT   rB   methodstring_allowedbytes_allowedmixed_allowedallowed_typesr9   s                         r    test_api_per_methodrb   w   s    C ?N 1KvF
e|q(55&**Xt:T:TF:FG#

8T(B(BFCFM)F?F 	ug%VO=(;{{  v >D!F AQUUK(Fez1$J6#DDM
  w.M 
	Y
.
0	1)m
#	$ O
$}
4	5  & {m ,,/ 0:: 	
 ]]9C0D#F# 100s   "	E44
Fc                 n   [        [        S5      US9nUS-   U-   nUR                  S5      nUR                  [        UR                  R
                  R                  S5      5      5      n[        UR                  [        5      (       d   eU u  pEn[        UR                  U5      " U0 UD6n[        UR                  S5      R                  U5      " U0 UD6n[        U[        5      (       a  [        R                  " Xx5        g [        U[         5      (       a  [        R                  " Xx5        g Xx:X  d   eg )Naabbr    r;   r   )r   listastyper   r   
categoriesr'   r&   r	   rW   r   tmassert_frame_equalassert_series_equal)	rX   r(   sr   rZ   r[   r\   resultexpecteds	            r    test_api_for_categoricalro      s    tF|#34A	C!A	A	!!''"4"4";";H"EFGAaee]++++ 1KvQUUK($9&9Fqxx)--{;TLVLH&)$$
f/	FF	#	#
v0 !!!r"   )r+   numpyr   r4   pandasr   r   r   r   r   r   ri   pandas.core.strings.accessorr	   nan"_any_allowed_skipna_inferred_dtypezipr   _fixturer!   r)   r.   r:   rT   parametrizer   rD   rb   ro    r"   r    <module>rz      s+       7 RVVS!"tRVVT"#rvvrvvrvv&'bMsBFFA&'& " 
'
04
Q
 9sC#" D#"LO" 6:"67% 8%4 6:"67J$ 8J$Z"r"   