Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/pandas/core/internals/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/pandas/core/internals/__pycache__/concat.cpython-312.pyc

�

Mٜg�J���ddlmZddlmZmZddlZddlZddlm	Z	m
ZmZ
mZddlmZddlmZddlmZddlmZmZdd	lmZmZmZdd
lmZddlmZm Z ddl!m"Z"m#Z#m$Z$dd
l%m&Z&ddl'm(Z(ddl)m*Z*m+Z+ddl,m-Z-m.Z.er"ddl/m0Z0ddl1m2Z2m3Z3m4Z4m5Z5m6Z6ddl7m8Z8ddl)m9Z9m:Z:								d"d�Z;								d#d�Z<								d$d�Z=d%d�Z>						d&d�Z?				d'd�Z@										d(d�ZAGd�d�ZBd)d�ZCd*d�ZDd+d �ZEd,d!�ZFy)-�)�annotations)�
TYPE_CHECKING�castN)�NaT�algos�	internals�lib)�NA)�cache_readonly)�find_stack_level)�ensure_dtype_can_hold_na�find_common_type)�is_1d_only_ea_dtype�	is_scalar�needs_i8_conversion)�
concat_compat)�ExtensionDtype�SparseDtype)�is_valid_na_for_dtype�isna�isna_all)�ensure_wrapped_if_datetimelike)�ArrayManager)�ensure_block_shape�new_block_2d)�BlockManager�
make_na_array)�Sequence)�	ArrayLike�AxisInt�DtypeObj�	Manager2D�Shape)�Index)�Block�BlockPlacementc�n�|dk(r|dj||�S|dk(sJ�|dj||�S)z�
    Concatenate array managers into one.

    Parameters
    ----------
    mgrs_indexers : list of (ArrayManager, {axis: indexer,...}) tuples
    axes : list of Index
    concat_axis : int

    Returns
    -------
    ArrayManager
    �r)�concat_vertical�concat_horizontal)�mgrs�axes�concat_axiss   �G/usr/local/lib/python3.12/site-packages/pandas/core/internals/concat.py�_concatenate_array_managersr/FsJ�� �a���A�w�&�&�t�T�2�2��a�����A�w�(�(��t�4�4�c�*��|xr|dk(}t|ddt�rt|||�}t|||�S|dk(r"t|||�}|dj	||�St|�dkDr�|ddjdkDr�|ddjdj��tjtjfvrNt�fd�|D��r:t|�dkDr,td�|D��}t||��}t|f|�St|||�}t|�dk(r |d}|j!d��}	||	_|	St%|�}
g}|
D�]\}}
|
d}|j&}t)|
�r�|
D�cgc]}|j&j*��}}|j,stj.|d��}n>t1|j�rt3|dd�	�}t5|d
��}n
t3|d��}t7|�}|j*j|jk(}nt9|
|��}d}|r|j;||�
�}n
t=||�
�}|j?|���tt|�|�Scc}w)z�
    Concatenate block managers into one.

    Parameters
    ----------
    mgrs_indexers : list of (BlockManager, {axis: indexer,...}) tuples
    axes : list of Index
    concat_axis : int
    copy : bool

    Returns
    -------
    BlockManager
    rc3�<�K�|]\}}t|�����y�w�N)�_is_homogeneous_mgr)�.0�mgr�_�first_dtypes   �r.�	<genexpr>z'concatenate_managers.<locals>.<genexpr>�s�����V�
�f�c�1�'��[�9�
�s�r(c3�2K�|]}t|����y�wr3)�len)r5�xs  r.r9z'concatenate_managers.<locals>.<genexpr>�s����3�d��c�!�f�d���F)�deep��axisT�r@�ea_compat_axis�)�ndim)�copy)�	placement) �
isinstancer�_maybe_reindex_columns_na_proxyr/r*r;�nblocks�blocks�dtype�np�float64�float32�all�tuple�_concat_homogeneous_fastpathrrEr,�_get_combined_plan�block�_is_uniform_join_units�values�is_extension�concatenaterrrr�_concatenate_join_units�make_block_same_classr�append)�
mgrs_indexersr,r-rE�
needs_copyr+�shape�nbr6�out�concat_planrJrF�
join_units�unit�blk�ju�valsrU�fastpath�br8s                     @r.�concatenate_managersrh^s����$�*�+��*�J��-��"�1�%�|�4�.�t�]�J�O��+��$��
�	
��a��.�t�]�J�O���A�w�(�(��t�4�4�
�=��A��-��"2�1�"5�"=�"=��"A�#�A�&�q�)�0�0��3�9�9���2�:�:�r�z�z�2�2��V�
�V�V��
�&��*��3�d�3�3��1�-���T��#�R�E�4�0�0�*�4��
�K�D�
�4�y�A�~��1�g���h�h�E�h�"������
�$�T�*�K�
�F�"-��	�:��!�}���j�j��!�*�-�.8�9�j��B�H�H�O�O�j�D�9��#�#�����1�5��$�S�Y�Y�/�&�t�!�D�I��+�F��;��&�t�!�4��3�F�;�F��z�z�'�'�6�<�<�7�H�,�Z�d�C�F��H���)�)�&�I�)�F�A��V�y�9�A��
�
�a��G"-�J��f�
�t�,�,��A:s�Jc���g}|D]`\}}|j�D]#\}}|j|||||dddd��}�%|r|s|j�}|j|��b|S)z�
    Reindex along columns so that all of the BlockManagers being concatenated
    have matching columns.

    Columns added in this reindexing have dtype=np.void, indicating they
    should be ignored when choosing a column's final dtype.
    FT)r@rE�
only_slice�
allow_dups�use_na_proxy)�items�reindex_indexerrErZ)r,r[r\�new_mgrsr6�indexers�i�indexers        r.rHrH�s����H�&�
��X�#�.�.�*�J�A�w��%�%��Q���������!�&��C�+��h��(�(�*�C������!'�"�Or0c���|jdk7ry|jd}|jjr#|jjj
dk(sy|j|k(S)zC
    Check if this Manager can be treated as a single ndarray.
    r(Fr)rIrJ�mgr_locs�
is_slice_like�as_slice�steprK)r6r8rcs   r.r4r4�sV���{�{�a���

�*�*�Q�-�C��L�L�&�&�3�<�<�+@�+@�+E�+E��+J���9�9��#�#r0c	��td�|D��r�|D��cgc](\}}|jdjj��*}}}t	j
|�j}t
jt|d��}t||�}|St	j||��}|tjk(rtj}	ntj}	d}
|D]r\}}|jd}|
|z}
d|vr.|	|jdj|d|dd�|
|
�f�n"|jdj|dd�|
|
�f<|
|z
}
�tt
jt|d��}t||�}|Scc}}w)zl
    With single-Block managers with homogeneous dtypes (that can already hold nan),
    we avoid [...]
    c3�(K�|]
\}}|���y�wr3�)r5r7rps   r.r9z/_concat_homogeneous_fastpath.<locals>.<genexpr>s����
9�=�K�A�x�x�<�=�s�r)rKr(N)rOrJrU�TrLrW�libinternalsr&�slicer�emptyrM�libalgos�take_2d_axis0_float64_float64�take_2d_axis0_float32_float32r])r[r]r8r6r7�arrs�arr�bpr^�	take_func�startrp�mgr_len�ends              r.rQrQ�sk���
9�=�
9�9�5B�C�]�6�3���
�
�1�
�$�$�&�&�]��C��n�n�T�"�$�$��
�
(�
(��u�Q�x��
9��
�#�r�
"���	�
�(�(�5��
,�C��b�j�j� ��:�:�	��:�:�	�
�E�&�
��X��)�)�A�,���g�o����=���
�
�1�
�$�$�����A�u�S�y�L�!�
�!$�
�
�1�
� 4� 4�C��5��9���
����'� 
�	$�	$�U�5��8�_�	5�B�	�c�2�	�B�
�I��ADs�-F	c�p�g}|djd}|D�cgc]}|j��}}tj|�}t	|�D]`\}\}}g}	t	|�D]5\}
}||
}t||||��}t
|�}
|	j|
��7|j||	f��b|Scc}w)Nr)�max_len)r]�blknosr|�get_concat_blkno_indexers�	enumerate�_get_block_for_concat_plan�JoinUnitrZ)r+�planr�r6�blknos_list�pairs�indr�r��units_for_bp�k�blknor^rbs              r.rRrR(s����D��1�g�m�m�A��G�)-�.��#�3�:�:��K�.��2�2�;�?�E�&�u�-���\�f�b�����o�F�A�s��1�I�E�+�C��U�G�L�B��B�<�D�����%�&�	
���R��&�'�.��K��!/s�B3c��|j|}t|�t|j�k(r=|jjr'|jjj
dk(r|}|S|j|j}tj||�}t|t�r|j|�}|S|j|�}|S)Nr()rJr;rtrurvrw�blklocsrrr	�maybe_indices_to_slicerGr}�slice_block_columns�take_block_columns)r6r�r�r�rcr^�ax0_blk_indexer�slcs        r.r�r�Bs����*�*�U�
�C��2�w�#�c�l�l�#�#����"�"�s�|�|�'<�'<�'A�'A�Q�'F�
���I��+�+�b�j�j�1���(�(��'�B���c�5�!��(�(��-�B�
�I��'�'��,�B��Ir0c�P�eZdZdd�Zd	d�Zd
d�Zedd��Zedd��Zdd�Z	y)
r�c��||_yr3)rS)�selfrSs  r.�__init__zJoinUnit.__init___s	����
r0c�^�t|�j�dt|j��d�S)N�(�))�type�__name__�reprrS)r�s r.�__repr__zJoinUnit.__repr__bs*���t�*�%�%�&�a��T�Z�Z�(8�'9��;�;r0c�x��|jsy|j}|jjdk(ry|jtk(r0|j
}t
�fd�|jd��D��S|j}|tur|j�k7ry|turt��ryt|��S)z�
        Check that we are all-NA of a type/dtype that is compatible with this dtype.
        Augments `self.is_na` with an additional check of the type of NA values.
        F�VTc3�6�K�|]}t|�����y�wr3)r)r5r<rKs  �r.r9z,JoinUnit._is_valid_na_for.<locals>.<genexpr>ss�����X�@W�1�,�Q��6�@W�s��K)�order)
�is_narSrK�kind�objectrUrO�ravel�
fill_valuerr
rr)r�rKrcrU�na_values `   r.�_is_valid_na_forzJoinUnit._is_valid_na_fores����
�z�z���j�j���9�9�>�>�S� ���9�9����Z�Z�F��X����SV��@W�X�X�X��>�>���s�?�s�y�y�E�1���r�>�1�%�8��%�X�u�5�5r0c��|j}|jjdk(ry|jsy|j}|j
dk(ryt
|jt�ry|jdk(r'|d}t|�rt|�syt|�S|dd}t|�rt|�sytd�|D��S)Nr�TFrr(c3�2K�|]}t|����y�wr3)r)r5�rows  r.r9z!JoinUnit.is_na.<locals>.<genexpr>�s����7���x��}��r=)
rSrKr��_can_hold_narU�sizerGrrDrrrrO)r�rcrU�vals    r.r�zJoinUnit.is_na�s����j�j���9�9�>�>�S� �����������;�;�!����f�l�l�K�0���;�;�!����)�C��S�>��c����F�#�#���)�A�,�C��S�>��c����7��7�7�7r0c�P�|j}|jjdk(ryy)z{
        Will self.is_na be True after values.size == 0 deprecation and isna_all
        deprecation are enforced?
        r�TF�rSrKr�)r�rcs  r.�)is_na_after_size_and_isna_all_deprecationz2JoinUnit.is_na_after_size_and_isna_all_deprecation�s#���j�j���9�9�>�>�S� ��r0c���|�9|jjjdk7r|jjS|}|j	|�r�|jj}|tjd�k(rAt
t
j|jj�}|jr|d�d}t||jj|�S|jjS)Nr�r�)rr)rSrKr�rUr�rLr�ndarrayr�rr])r��empty_dtype�upcasted_nar��	blk_dtyperUs      r.�get_reindexed_valueszJoinUnit.get_reindexed_values�s�����4�:�:�#3�#3�#8�#8�C�#?��:�:�$�$�$�$�J��$�$�[�1� �J�J�,�,�	������ 2�2�"�"�*�*�d�j�j�.?�.?�@�F��{�{�v�d�|�';�%)�
�$�[�$�*�*�2B�2B�J�O�O��:�:�$�$�$r0N)rSr%�return�None)r��str)rKr!r��bool)r�r�)r�r!r�r)
r��
__module__�__qualname__r�r�r�rr�r�r�rzr0r.r�r�^s?���<�6�@�8��8�<����%r0r�c���t|�\}}td�|D��}t||�}|D�cgc]}|j||����}}td�|D��rH|D�cgc]"}t	|j
�r|n|ddd�f��$}}t
|dd��}	t|	d�}	n
t
|d	�
�}	||k7r3||	j
k(r$tjdtt���|	Scc}wcc}w)
zB
    Concatenate values from several join units along axis=1.
    c3�bK�|]'}|jjjdk(���)y�w�r�Nr��r5rbs  r.r9z*_concatenate_join_units.<locals>.<genexpr>��&����N�:�4�$�*�*�*�*�/�/�3�6�:���-/)r�r�c3�FK�|]}t|j����y�wr3)rrK)r5�ts  r.r9z*_concatenate_join_units.<locals>.<genexpr>�s����
;��A��q�w�w�'��s�!rNTrArCr(r?aThe behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.)�
stacklevel)�_get_empty_dtype�any�_dtype_to_na_valuer�rrKrr�warnings�warn�
FutureWarningr)
rarEr��empty_dtype_future�has_none_blocksr�rd�	to_concatr��
concat_valuess
          r.rXrX�s&��'7�z�&B�#�K�#��N�:�N�N�O�$�[�/�B�K����B�	���K�[��Q����
�
;��
;�;��	
���#�1�7�7�+�
��1�a�4��
��		�
�&�i�a��M�
�*�=�!�<�
�&�i�a�8�
��(�(��-�-�-�-��M�M�(�
�+�-�
����E��
s�C.�#'C3c�b�t|t�r|jS|jdvr|j	d�S|jdvr|j	d�S|jdk(ry|jdvr|syt
jS|jdk(rt
jSt�)	z2
    Find the NA value to go with this dtype.
    �mMr�fc�NaNrgN�iu�O)rGrr�r�r�rL�nan�NotImplementedError)rKr�s  r.r�r��s����%��(��~�~��	���t�	��z�z�%� � �	���t�	��z�z�%� � �	���s�	��	���t�	����v�v�
�	���s�	��v�v�
�
�r0c���tj|D�cgc]}|jj��c}�r|djj}||fSt	d�|D��}|D�cgc]%}|j
r�|jj��'}}t
|�sG|D�cgc]<}|jjjdk7s�'|jj��>}}t|�}|rt|�}|}t
|�t
|�k7r�|D�cgc]$}|js|jj��&}}t
|�sG|D�cgc]<}|jjjdk7s�'|jj��>}}t
|�t
|�k7rt|�}|rt|�}||fScc}wcc}wcc}wcc}wcc}w)z�
    Return dtype and N/A values to use when concatenating specified units.

    Returned N/A value may be None which means there was no casting involved.

    Returns
    -------
    dtype
    rc3�bK�|]'}|jjjdk(���)y�wr�r�r�s  r.r9z#_get_empty_dtype.<locals>.<genexpr>r�r�r�)r	�dtypes_all_equalrSrKr�r�r;r�rr
r�)	rardr�r�rb�dtypesrK�dtype_future�
dtypes_futures	         r.r�r�s������j�A�j��R�X�X�^�^�j�A�B� ��m�)�)�/�/���K�'�'��N�:�N�N�O�+5�
H�:�4�T�Z�Z�d�j�j���:�F�
H��v�;�)3�
�)3��t�z�z�7G�7G�7L�7L�PS�7S�D�J�J����	�
�
�V�$�E��(��/���L�
�6�{�c�*�o�%�#�
�"���A�A�
�J�J���"�	�
�
�=�!�-7��-7�T�4�:�:�;K�;K�;P�;P�TW�;W��
�
� � �Z�
���v�;�#�m�,�,�+�M�:�L��7��E���,����CB��I��
��
��s/�G�+G�=G�&(G�G�)G�(G"�G"c����|dj��jjdk(ryt�fd�|D��xr(t�fd�|D��xrtd�|D��S)z�
    Check if the join units consist of blocks of uniform type that can
    be concatenated using Block.concat_same_type instead of the generic
    _concatenate_join_units (which uses `concat_compat`).

    rr�Fc3�^�K�|]$}t|j�t��u���&y�wr3)r�rS�r5rd�firsts  �r.r9z)_is_uniform_join_units.<locals>.<genexpr>Hs#�����?�J�b�D����N�d�5�k�)�J�s�*-c3��K�|]K}|jj�jk(xs"|jjjdv���My�w)�iubNr�r�s  �r.r9z)_is_uniform_join_units.<locals>.<genexpr>KsP�����
�
!��	
�H�H�N�N�e�k�k�)�
,��x�x�~�~�"�"�e�+�
,�!�s�AAc3�fK�|])}|jxs|jj���+y�wr3)r�rSrV)r5rds  r.r9z)_is_uniform_join_units.<locals>.<genexpr>Us)����G�J�b����L�1�B�H�H�1�1�1�J�s�/1)rSrKr�rO)rar�s @r.rTrT<ss���
�q�M���E��{�{���3���	�?�J�?�?�
	H�	�
�
!�
�	
�
	H�	�G�J�G�G�r0)r+zlist[ArrayManager]r,�list[Index]r-r r�r")r,r�r-r rEr�r�r")r,r�r[z0list[tuple[BlockManager, dict[int, np.ndarray]]]r\r�r��list[BlockManager])r6rr8r!r�r�)r]r#r8znp.dtyper�r%)r+r�r�z+list[tuple[BlockPlacement, list[JoinUnit]]])
r6rr�r&r��intr�r�r�r%)ra�list[JoinUnit]rEr�r�r)rKr!r�r�)razSequence[JoinUnit]r�ztuple[DtypeObj, DtypeObj])rar�r�r�)G�
__future__r�typingrrr��numpyrL�pandas._libsrrrrr|r	�pandas._libs.missingr
�pandas.util._decoratorsr�pandas.util._exceptionsr�pandas.core.dtypes.castr
r�pandas.core.dtypes.commonrrr�pandas.core.dtypes.concatr�pandas.core.dtypes.dtypesrr�pandas.core.dtypes.missingrrr�pandas.core.constructionr�#pandas.core.internals.array_managerr�pandas.core.internals.blocksrr�pandas.core.internals.managersrr�collections.abcr�pandas._typingrr r!r"r#�pandasr$r%r&r/rhrHr4rQrRr�r�rXr�r�rTrzr0r.�<module>r	s~��"������$�2�4����
4����D�<���
�(�����5�
�5�$/�5�>E�5��5�0i-�$�i-�3:�i-�BF�i-��i-�X�
��C�����	�D
$�,��,�.6�,�
�,�^�
��0��4�	��)��25��CF��
��8h%�h%�V+�\�.+�\r0

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists