
    MhW                        S r SSKJr  SSKJr  SSKrSSKJr  SSK	J
r
  SSKJrJr  SSKJr  SS	KJr  SS
KJrJrJrJrJr  \(       a  SSKJr  SSKJr   S   SS jjrSS jrSS jrg)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)

    )annotations)TYPE_CHECKINGN)BlockPlacement)pandas_dtype)DatetimeTZDtypePeriodDtype)DatetimeArray)extract_array)
check_ndimensure_block_shapeextract_pandas_arrayget_block_typemaybe_coerce_values)DtypeBlockc                T   Ub  [        U5      n[        XU5      u  pSSKJnJn  X&L a!  [        U R                  [        5      (       a  SnUc!  U=(       d    U R                  n[        U5      nO8X%L a4  [        U R                  [        5      (       d  [        R                  " U US9n [        U[        5      (       d  [        U5      n[        XU5      n[        U R                  [        [        45      (       a  [        U SS9n [        X5      n [!        XU5        [#        U 5      n U" XUS9$ )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__
Nr   )DatetimeTZBlockExtensionBlock)dtypeT)extract_numpy)ndim	placement)r   r   pandas.core.internals.blocksr   r   
isinstancer   r   r   r   r	   _simple_newr   maybe_infer_ndimr
   r   r   r   )valuesr   klassr   r   r   r   s          K/var/www/html/env/lib/python3.13/site-packages/pandas/core/internals/api.py
make_blockr!   '   s    U#(=MF
 :fllK#H#H }%u%		!*V\\?*S*S** 
 i00"9-	Ft4D&,,o >?? vT:#F1v$' (Fi88    c                    UcM  [        U R                  [        R                  5      (       d  [        U5      S:w  a  SnU$ Sn U$ U R                  nU$ )z@
If `ndim` is not provided, infer it from placement and values.
      )r   r   nplenr   )r   r   r   s      r    r   r   b   sT     |&,,119~"
 K  K ;;DKr"   c                    SS K nU S;   aP  UR                  U  S3[        SS9  U S:X  a  SSKJn  U$ U S:X  a  SS	KJn  U$ U S
:X  a  SSKJn  U$ U S:X  a  SSKJn  U$ [        SU  S35      e)Nr   )r   r   r    create_block_manager_from_blockszP is deprecated and will be removed in a future version. Use public APIs instead.r%   )
stacklevelr)   )r)   r   r   r   )r   r   )r   z5module 'pandas.core.internals.api' has no attribute '')
warningswarnDeprecationWarningpandas.core.internals.managersr)   r   r   r   r   AttributeError)namer,   r)   r   r   r   s         r    __getattr__r2   r   s       	f ' '  	 	
 55W33W_:L&&D""%%C!!

?vQG r"   )NNN)r   zDtype | Nonereturnr   )r   r   r   z
int | Noner3   int)r1   str)__doc__
__future__r   typingr   numpyr&   pandas._libs.internalsr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   pandas.core.arraysr	   pandas.core.constructionr
   r   r   r   r   r   r   pandas._typingr   r   r!   r   r2    r"   r    <module>rA      sd    #    1 2
 - 2  $2 EI895A89
89v *r"   