
    EgW                        d Z ddlm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 ddlmZ dd	lmZ dd
lmZmZmZmZmZ erddlmZ ddlmZ 	 dddZddZddZdS )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BlockdtypeDtype | Nonereturnr   c                   |t          |          }t          | ||          \  } }ddlm}m} ||u rt          | j        t                    rd}||p| j        }t          |          }n4||u r0t          | j        t                    st          j        | |          } t          |t                    st          |          }t          | ||          }t          | j        t          t          f          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__
    Nr   )DatetimeTZBlockExtensionBlock)r   T)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          N/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/core/internals/api.py
make_blockr#   '   sx    U##(==MFE       
 :flK#H#H }%u%%	/	!	!*V\?*S*S	!* 
 
 
 i00 ."9--	FIt44D&,o >?? 2 vT:::#FD11vy$''' ((F5di8888    r   r   r   
int | Noneintc                    |?t          | j        t          j                  st          |          dk    rd}n
d}n| j        }|S )zH
    If `ndim` is not provided, infer it from placement and values.
    N      )r   r   nplenr   )r    r   r   s      r"   r   r   b   sJ     |&,11 	9~~"";DKr$   namestrc                    dd l }| dv rX|                    |  dt          d           | dk    rddlm} |S | dk    rdd	lm} |S | d
k    rddlm} |S | dk    rddlm} |S t          d|  d          )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)r,   r2   r/   r   r   r   s         r"   __getattr__r7   r   s   OOO    	 ' ' '  	 	
 	
 	
 555WWWWWW33W__::::::L&&&DDDDDD""%%%CCCCCC!!
GGGG  r$   )NNN)r   r   r   r   )r   r   r   r%   r   r&   )r,   r-   )__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   r7    r$   r"   <module>rC      sz    # " " " " "                 1 1 1 1 1 1 2 2 2 2 2 2       
 - , , , , , 2 2 2 2 2 2               3$$$$$$222222 EI89 89 89 89 89v    * * * * * *r$   