
    `Vg                        d 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
mZmZ ddlmZ ddlmZ dd	lmZmZmZmZmZmZmZmZ 	 d	 	 	 dd
ZddZy)z
This is a pseudo-public API for downstream libraries.  We ask that downstream
authors

1) Try to avoid using internals directly altogether, and failing that,
2) Use only functions exposed here (or in core.internals)

    )annotationsN)BlockPlacement)Dtype)is_datetime64tz_dtypeis_period_dtypepandas_dtype)DatetimeArray)extract_array)BlockDatetimeTZBlockExtensionBlock
check_ndimensure_block_shapeextract_pandas_arrayget_block_typemaybe_coerce_valuesc                :   |t        |      }t        | ||      \  } }|t        u rt        | j                        rd}||xs | j                  }t        |      }n4|t        u r,t        | j                        st        j                  | |      } t        |t              st        |      }t        | ||      }t        | j                        st        | j                        rt        | d      } t        | |      } t        | ||       t!        |       }  || ||      S )a+  
    This is a pseudo-public analogue to blocks.new_block.

    We ask that downstream libraries use this rather than any fully-internal
    APIs, including but not limited to:

    - core.internals.blocks.make_block
    - Block.make_block
    - Block.make_block_same_class
    - Block.__init__
    N)dtypeT)extract_numpy)ndim	placement)r   r   r   r   r   r   r   r   r	   _simple_new
isinstancer   maybe_infer_ndimr
   r   r   r   )valuesr   klassr   r   s        Z/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/pandas/core/internals/api.py
make_blockr   $   s     U#(=MFE?6<<#@ }%u%	/	!*?*M**6?i0"9-	FIt4DV\\*ofll.K vT:#FD1vy$' (Fdi88    c                    |Ft        | j                  t        j                        st        |      dk7  rd}|S d}|S | j                  }|S )zG
    If `ndim` is not provided, infer it from placment and values.
          )r   r   nplenr   )r   r   r   s      r   r   r   T   sQ     |&,,19~"
 K  K ;;DKr   )NNN)r   zDtype | Nonereturnr   )r   r   r   z
int | Noner%   int)__doc__
__future__r   numpyr#   pandas._libs.internalsr   pandas._typingr   pandas.core.dtypes.commonr   r   r   pandas.core.arraysr	   pandas.core.constructionr
   pandas.core.internals.blocksr   r   r   r   r   r   r   r   r   r    r   r   <module>r1      s[    #  1    - 2	 	 	 EI-95A-9
-9`r   