
    >ie^                       d dl mZ d dlZd dlZd dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZ 	 d dlZn# e$ r dZY nw xY wej                            edu d          Zd	 Zd
 Zd Zd Zd Zd Zed             Zed             Zed             Zed             Zd Zeej                            dg d          ej                            dedg          d                                     Zeej                            dedg          d                         Z ej                            dg d          d             Z!ed             Z"ed             Z#d Z$d Z%d Z&dS )     )annotationsN)array)get_context)sizeof)funcnamezrequires pandas)reasonc                 T    t          d          t          j        d          k    sJ d S )N   r   sys	getsizeof     6lib/python3.11/site-packages/dask/tests/test_sizeof.py	test_baser      s)    !99a((((((((r   c                 :    t          t                    dk    sJ d S )Nr   )r   r   r   r   r   	test_namer      s!    Fx''''''r   c                     t          dddgg          t          j        d          dz  t          j        g           z   k    sJ d S )Nr
         r   r   r   r   test_containersr      sG    1a!+#-"2"2Q"6r9J9J"JKKKKKKr   c            	        dt          t          d                    cxk    rdk    sn J dt          t          d                    cxk    rdk    sn J dt          t          t          d                              cxk    rdk    sn J dt          t	          dt          d                              cxk    rdk    sn J d S )N  i  @  d(#  )r   bytes	bytearray
memoryviewr   ranger   r   r   test_bytes_liker!   !   s    6%++&&....$......6)D//**2222d2222226*U4[[1122::::d::::::6%U4[[1122::::d::::::::r   c                    t          j        d          } dt          |                     dd                    cxk    rdk    sn J |                     d          }t          |          t          j        |          k    sJ d S )Nnumpyr   r   f8dtyper   )pytestimportorskipr   emptyr&   r   r   )npdts     r   
test_numpyr,   (   s    		W	%	%B6"((4t(4455==========	$B"::r********r   c                     t          j        d          } |                     dd          }t          |          dk    sJ d S )Nr#   r
   )d   r.   r.      )r'   r(   broadcast_tor   )r*   xs     r   test_numpy_0_stridedr2   /   s<    		W	%	%B
?++A!99>>>>>>r   c                    t          j        g dg ddg d          } t          |           t          | j                  t          | j                  z   t          | j                  z
  k    sJ t          | j                  t          | j                  k    sJ t          | j                  dk    sJ t          | j                  dk    sJ t          t          |           t                    sJ t          t          | j                  t                    sJ t          t          | j                  t                    sJ d S )Nr
   r   r   daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccr1   y
         indexi,  r=   )pd	DataFramer   r1   r:   r@   
isinstanceint)dfs    r   test_pandasrF   5   s(   	ii???@@
 
 
B "::rt4vbh7G7GGGGGG"$<<6"(++++++"$<<7"""""(r!!!!fRjj#&&&&&fRTllC(((((fRX&&,,,,,,,r   c                     t          j        ddgddgg          } t          j        ddgddgg          }t          |          t          |           k     sJ dS )zv2+ contiguous columns of the same dtype in the same DataFrame share the same
    surface thus have lower overhead
    r
   g@r   g@g?gffffff
@NrA   rB   r   )df1df2s     r   test_pandas_contiguous_dtypesrK   E   s_    
 ,C1c(+
,
,C
,c
S#J/
0
0C#;;$$$$$$r   c                    t           j                            t          d          g dg          } t	          j        |           }d|z  t          |           cxk     r	d|z  k     sn J t          t          |           t                    sJ d S )N   )abcr   eg      ?r   )	rA   
MultiIndexfrom_productr    r   r   r   rC   rD   )r@   actual_sizes     r   test_pandas_multiindexrU   O   s    M&&a2K2K2K'LMME-&&Kve}}>>>>q;>>>>>>fUmmS)))))))r   c                    t          j        dt          t          d                    i          } | g d         }t          j        t          t          d                    t          t          d                    d          }dt	          |           cxk     rdk     sn J dt	          |          cxk     rdk     sn J dt	          |          cxk     rdk     sn J d S )	Nr1   '  )r1   r1   r1   r9   i8 iL i q i )rA   rB   listr    r   )rE   rJ   df3s      r   test_pandas_repeated_columnrZ   X   s    	sDv//0	1	1B
___
C
,T%--00tE&MM7J7JKK
L
LCF2JJ''''''''''F3KK((((&((((((VC[[****7********r   c                 z   t          j        d          } |                     d          }t          |                                          dk    sJ t          |                                          dk    sJ t          |                                          dk    sJ t          |                                          dk    sJ t          |                                          dk    sJ t          |	                                          dk    sJ t          |
                                          dk    sJ d S )Nzscipy.sparser<                  )r'   r(   eyer   todiatobsrtocootocsctocsrtodoktolil)sparsesps     r   test_sparse_matrixrk   b   s    00F	BB"((**$$$$"((**$$$$"((**$$$$"((**$$$$"((**$$$$"((**$$$$"((**$$$$$$r   cls_name)SeriesrB   Indexr&   zstring[python]c                \   t          t          |          } |d t          d          D             |           }t          d          dz  t          |          cxk     rdt          d          z  dz  k     sn J ddz  }ddz  }d	dz  }d
dz  } |||||gdz  |           }dt          |          cxk     rdk     sn J  |||||g|           }	 |||||g|           }
 |||||g|           }t          |          t          |
          cxk     rt          |	          k     sn J d S )Nc                    g | ]}d |d	S )r1   3dr   ).0is     r   
<listcomp>z,test_pandas_object_dtype.<locals>.<listcomp>t   s     ...Qj!jjj...r   r   r%   x000r   r1   順 r:   zw i  )getattrrA   r    r   )r&   rl   clss1r1   r:   rw   rx   s2s3s4s5s               r   test_pandas_object_dtyper   o   s    "h

C	..%++...e	<	<	<B&>>D 6"::IIIIF6NN0BT0IIIIIIIgAgAgAgA 
aAq\D 	.	.	.BVBZZ))))')))))) 
aAq\	'	'	'B	aAq\	'	'	'B	aAq\	'	'	'B"::r

////VBZZ////////r   c                   ddz  }ddz  }ddz  }ddz  }||||g}t          j        |dz  gdz  |           }d	t          |          cxk     rd
k     sn J t          j        ||g||gg|           }t          j        ||g||gg|           }t          j        ||g||gg|           }	t          |	          t          |          cxk     rt          |          k     sn J d S )Nr1   rv   r:   rw   rx   r   r   r%   ry   ipd rH   )
r&   r1   r:   rw   rx   objsrI   rJ   rY   df4s
             r   test_dataframe_object_dtyper      s#    	gAgAgAgA q!Q<D
,qzD(
6
6
6CVC[[****7****** ,AA'u
5
5
5C
,AA'u
5
5
5C
,AA'u
5
5
5C#;;2222vc{{22222222r   c                    t          j        d           t          t          |           } |ddz  ddz  gd          }dt	          |          cxk     rd	k     sn J d S )
Npyarrowr1   rv   r:   iP  zstring[pyarrow]r%   iI ix] )r'   r(   rz   rA   r   )rl   r{   ss      r   test_pandas_string_arrow_dtyper      su    
	"""
"h

CS7]C&L)1BCCCAVAYY((((((((((((r   c                 4   t          j        g dg ddg d          } |                     d          }t          |          dk    sJ t          |j                  dk    sJ t          |j                  dk    sJ t          |j                  dk    sJ d S )Nr4   r5   r9   r;   r?   r   )rA   rB   headr   r1   r:   r@   )rE   r)   s     r   test_pandas_emptyr      s    	ii???@@
 
 
B GGAJJE%==1%'??Q%'??Q%+""""""r   c                    t          j        d          } t          j        g dg ddg d          }| j                            |          }t          |          t          |j        j                  k    sJ t          t          |          t                    sJ t          t          |j        d                   t                    sJ t          t          |j        d                   t                    sJ t          t          |j        d	                   t                    sJ | j                            |                    d                    }t          |          t          |j        j                  k    sJ t          |j        d                   dk    sJ t          |j        d                   dk    sJ t          |j        d	                   dk    sJ d S )
Nr   r4   r5   r9   r;   r?   r   r
   r   )r'   r(   rA   rB   Tablefrom_pandasr   schemametadatarC   rD   columnsr   )parE   tabler)   s       r   test_pyarrow_tabler      s   		Y	'	'B	ii???@@
 
 
B H  $$E%==6%,"7888888fUmmS)))))fU]1-..44444fU]1-..44444fU]1-..44444H  ,,E%==6%,"7888888%-"##a''''%-"##a''''%-"##a''''''r   c                    t          j        d          } |                     d          t          di          j        k    sJ t          dgi          j        k    sJ t          ddigi          j        k    sJ fdt          d          D             }t          |          j        dz  k    sJ t          t          |          t                    sJ d S )Nr#   rW   r1   r:   c                    i | ]}|S r   r   )rr   rs   r1   s     r   
<dictcomp>ztest_dict.<locals>.<dictcomp>   s    """!A"""r   r.   )r'   r(   onesr   nbytesr    rC   rD   )r*   r   r1   s     @r   	test_dictr      s    		W	%	%B
A3(ah&&&&3*((((3#q
#$$qx////""""uSzz"""A!99qx#~%%%%fQii%%%%%%%r   c                    t           j                            t          j        |                      dd l}|j                                         dd l}|	                    |          }t          |          S )Nr   )
r   pathappendosfsdecodedask.sizeofr   _register_entry_point_plugins
class_implImpl)r   sizedaskr   r{   s        r   _get_sizeof_on_pathr      sk    HOOBK%%&&& K--///
//$

C#;;r   c                   | dz                       d           | dz                       d           | dz  }|                                 |dz                       d           t                                          d          5 }|                    t
          | d	f
          d	k    sJ 	 d d d            n# 1 swxY w Y   |                                 d S )Nzimpl_sizeof.pys   def sizeof_plugin(sizeof):
    print("REG")
    @sizeof.register_lazy("class_impl")
    def register_impl():
        import class_impl
        @sizeof.register(class_impl.Impl)
        def sizeof_impl(obj):
            return obj.size 
zclass_impl.pysB   class Impl:
    def __init__(self, size):
        self.size = sizezimpl_sizeof-0.0.0.dist-infozentry_points.txts/   [dask.sizeof]
impl = impl_sizeof:sizeof_plugin
r
   i)args)write_bytesmkdirr   Poolapplyr   join)tmp_path	dist_infopools      r    test_register_backend_entrypointr      s.     --	*	 	 	 ,,O   88IOO##00<   
		A		 
$JJ*(J1GJHHJVVVVV
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 	IIKKKKKs   %B55B9<B9)'
__future__r   r   r   r   r'   dask.multiprocessingr   r   r   
dask.utilsr   pandasrA   ImportErrormarkskipifrequires_pandasr   r   r   r!   r,   r2   rF   rK   rU   rZ   rk   parametrizeobjectr   r   r   r   r   r   r   r   r   r   r   <module>r      s   " " " " " " 				 



        , , , , , ,               	BBB +$$R4Z8I$JJ) ) )( ( (L L L; ; ;+ + +   - - - % % % * * * + + +
% 
% 
% %E%E%EFF6+;"<==0 0 >= GF 0* 6+;"<==3 3 >= 3$ %E%E%EFF) ) GF) 	# 	# 	# ( ( (*	& 	& 	&      s   1 ;;