1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
U
¬ý°dð ã@s¬dZddlmZddlZddlmZddlmZddl    m
Z
m Z m Z ddl mZddlmZdd    lmZmZmZmZmZmZmZmZdd
d d œd d„Zddddœdd„ZdS)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_valuesz Dtype | Noner
)ÚdtypeÚreturncCsÜ|dk    rt|ƒ}t|||ƒ\}}|tkr6t|jƒr6d}|dkrR|pF|j}t|ƒ}n |tkrrt|jƒsrtj    ||d}t
|t ƒs„t |ƒ}t |||ƒ}t|jƒs¤t|jƒrºt |dd}t||ƒ}t|||ƒt|ƒ}||||d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)rT)Z extract_numpy)ÚndimÚ    placement)rrr rrrr rrZ _simple_newÚ
isinstancerÚmaybe_infer_ndimr    rr r)ÚvaluesrÚklassrr©rúPd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/internals/api.pyÚ
make_block$s&
 
 
 
 rrz
int | NoneÚint)rrrcCs8|dkr4t|jtjƒs.t|ƒdkr(d}q4d}n|j}|S)zH
    If `ndim` is not provided, infer it from placement and values.
    Néé)rrÚnpÚlenr)rrrrrrrTs r)NNN)Ú__doc__Ú
__future__rÚnumpyr Zpandas._libs.internalsrZpandas._typingrZpandas.core.dtypes.commonrrrZpandas.core.arraysrZpandas.core.constructionr    Zpandas.core.internals.blocksr
r r r rrrrrrrrrrÚ<module>s     ( ÿ0