Ë
    ¤ehÃ„  ã                  ó^  — d Z ddlmZ ddlmZ ddlmZmZ ddlZ	ddlm
Z
 ddl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 ddlmZmZmZmZmZ ddlmZ ddlm Z 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/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZE erddlFmGZGmHZH ddlImJZJmKZKmLZLmMZM dddddœ	 	 	 	 	 	 	 	 	 	 	 d3d„ZN	 	 	 	 	 	 	 	 	 	 d4d„ZOd5d6d„ZP	 	 	 	 	 	 	 	 d7d„ZQ	 	 	 	 	 	 	 	 d8d„ZRdddd œ	 	 	 	 	 	 	 	 	 d9d!„ZS	 	 	 	 	 	 	 	 	 	 d:d"„ZTd;d#„ZUd5d<d$„ZVd=d%„ZW	 	 	 	 	 	 d>d&„ZXd?d'„ZY	 	 	 	 	 	 	 	 	 	 d@d(„ZZd?d)„Z[	 	 	 	 	 	 	 	 	 	 dAd*„Z\d+„ Z]	 dB	 	 	 	 	 dCd,„Z^dDd-„Z_	 	 	 	 	 	 dEd.„Z`	 	 	 	 	 	 dFd/„Za	 	 	 	 	 	 	 	 dGd0„Zb	 	 	 	 	 	 dHd1„Zc	 	 dI	 	 	 	 	 	 	 	 	 dJd2„Zdy)Kz~
Functions for preparing various inputs passed to the DataFrame or Series
constructors before passing them to a BlockManager.
é    )Úannotations)Úabc)ÚTYPE_CHECKINGÚAnyN)Úma)Úusing_pyarrow_string_dtype)Úlib)Úastype_is_view)Ú"construct_1d_arraylike_from_scalarÚdict_compatÚmaybe_cast_to_datetimeÚmaybe_convert_platformÚmaybe_infer_to_datetimelike)Úis_1d_only_ea_dtypeÚis_integer_dtypeÚis_list_likeÚis_named_tupleÚis_object_dtype)ÚExtensionDtype)ÚABCDataFrameÚ	ABCSeries)Ú
algorithmsÚcommon)ÚExtensionArray)ÚStringDtype)ÚarrayÚensure_wrapped_if_datetimelikeÚextract_arrayÚrange_to_ndarrayÚsanitize_array)ÚDatetimeIndexÚIndexÚTimedeltaIndexÚdefault_indexÚensure_indexÚget_objs_combined_axisÚunion_indexes)ÚArrayManagerÚSingleArrayManager)ÚBlockPlacementÚensure_block_shapeÚ	new_blockÚnew_block_2d)ÚBlockManagerÚSingleBlockManagerÚ create_block_manager_from_blocksÚ'create_block_manager_from_column_arrays)ÚHashableÚSequence)Ú	ArrayLikeÚDtypeObjÚManagerÚnptT)ÚdtypeÚverify_integrityÚtypÚconsolidatec               óJ  — |r*|€t        | «      }nt        |«      }t        | ||«      \  } }nŒt        |«      }| D �cg c]  }t        |d¬«      ‘Œ } }dgt	        | «      z  }| D ]S  }	t        |	t        j                  t        f«      r'|	j                  dk7  st	        |	«      t	        |«      k7  sŒJt        d«      ‚ t        |«      }t	        |«      t	        | «      k7  rt        d«      ‚||g}
|dk(  rt        | |
||¬«      S |d	k(  rt        | ||g«      S t        d
|› d�«      ‚c c}w )zs
    Segregate Series based on type and coerce into matrices.

    Needs to handle a lot of exceptional cases.
    NT©Úextract_numpyé   zYArrays must be 1-dimensional np.ndarray or ExtensionArray with length matching len(index)z#len(arrays) must match len(columns)Úblock)r;   Úrefsr   ú2'typ' needs to be one of {'block', 'array'}, got 'ú')Ú_extract_indexr%   Ú_homogenizer   ÚlenÚ
isinstanceÚnpÚndarrayr   ÚndimÚ
ValueErrorr1   r(   )ÚarraysÚcolumnsÚindexr8   r9   r:   r;   rA   ÚxÚarrÚaxess              ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/core/internals/construction.pyÚarrays_to_mgrrS   `   sD  € ñ àˆ=Ü" 6Ó*‰Eä  Ó'ˆEô # 6¨5°%Ó8‰ˆ‘ô ˜UÓ#ˆØ@FÖG¸1”- °Ö6ÐGˆÐGàˆvœ˜F›Ñ#ˆð ò 		ˆCä˜s¤R§Z¡Z´Ð$@ÔAØ—8‘8˜q’=Ü�s“8œs 5›zÓ)ä ð6óð ð		ô ˜7Ó#€GÜ
ˆ7ƒ|”s˜6“{Ò"ÜÐ>Ó?Ð?ð �UÐ€Dà
ˆg‚~Ü6Ø�D k¸ô
ð 	
ð 
�ŠÜ˜F U¨GÐ$4Ó5Ð5äÐOÐPSÈuÐTUÐVÓWÐWùò= Hs   ¼D c                ó,  — t        j                  | «      }|€t        t        |«      «      }nt	        |«      }|�t	        |«      }t        ||«      \  }}t        |||t        |«      «      \  }}|€|}t        |||||¬«      }	|r|	j                  «       }	|	S )zA
    Extract from a masked rec array and create the manager.
    ©r8   r:   )	r   Úgetdatar$   rF   r%   Ú	to_arraysÚreorder_arraysrS   Úcopy)
ÚdatarN   rM   r8   rY   r:   ÚfdatarL   Úarr_columnsÚmgrs
             rR   Úrec_array_to_mgrr^   ¡   sš   € ô �J‰J�tÓ€EØ€}Üœc %›jÓ)‰ä˜UÓ#ˆàÐÜ˜wÓ'ˆÜ# E¨7Ó3Ñ€FˆKô )¨°¸gÄsÈ5ÃzÓRÑ€FˆKØ€Øˆä
˜ ¨°eÀÔ
E€CáØ�h‰h‹jˆØ€Jó    c                ó   — |dk(  r‡t        | t        «      r| }|S | j                  dk(  r5t        | j                  | j
                  d   | j
                  d   d¬«      }|S t        j                  | j                  d   | j                  «      }|S |dk(  råt        | t        «      r| }|S | j                  dk(  r†t        t        | j
                  d   «      «      D �cg c]  }| j                  |«      ‘Œ }}|r|D �cg c]  }|j                  «       ‘Œ }}t        || j
                  d   | j
                  d   g«      }|S | j                  «       }|r|j                  «       }t        |g| j                  g«      }|S t!        d|› d�«      ‚c c}w c c}w )	zè
    Convert to specific type of Manager. Does not copy if the type is already
    correct. Does not guarantee a copy otherwise. `copy` keyword only controls
    whether conversion from Block->ArrayManager copies the 1D arrays.
    r@   é   r   r?   )r:   r   rB   rC   )rG   r.   rJ   rS   rL   rQ   r/   Ú
from_arrayrN   r(   ÚrangerF   Úiget_valuesrY   Úinternal_valuesr)   rK   )r]   r:   rY   Únew_mgrÚirL   rP   r   s           rR   Ú
mgr_to_mgrrh   Ä   s|  € ð ˆg‚~Ü�cœ<Ô(ØˆGð0 €Nð- �x‰x˜1Š}Ü'Ø—J‘J §¡¨¡¨S¯X©X°a©[¸gô�ð* €Nô# -×7Ñ7¸¿
¹
À1¹ÀsÇyÁyÓQ�ð" €Nð! 
�ŠÜ�cœ<Ô(ØˆGð €Nð �x‰x˜1Š}Ü6;¼CÀÇÁÈÁÓ<LÓ6MÖN°˜#Ÿ/™/¨!Õ,ÐN�ÐNÙØ4:Ö;¨S˜cŸh™h�jÐ;�FÐ;Ü& v°·±¸±¸S¿X¹XÀa¹[Ð/IÓJ�ð €Nð ×+Ñ+Ó-�ÙØ!ŸJ™J›L�EÜ,¨e¨W°s·y±y°kÓB�ð €Nô ÐOÐPSÈuÐTUÐVÓWÐWùò Oùâ;s   ÃFÃ8Fc                óÜ  — t        | t        «      rw|€"| j                  �t        | j                  g«      }|€| j                  }n| j                  |«      } t        | «      s(|�&t        |«      rt        j                  dt        ¬«      } |dk(  rdn|}t        | dd «      }d }t        |«      st        |«      ršt        | t        j                  t        f«      r<| j                  dkD  r-t        | j                   d   «      D �	cg c]  }	| d d …|	f   ‘Œ } }	n| g} |€t        t        t        | «      «      «      }nt#        |«      }t%        | ||||¬«      S t        |t&        «      rAt)        | d¬	«      } |r| j+                  «       } | j                  dk(  rð| j-                  d
d«      } nÝt        | t        t        f«      r[|s$|�t/        | j0                  |«      r| j2                  }|r| j4                  j+                  «       } n| j4                  } t7        | «      } nlt        | t        j                  t        f«      r?|�t/        | j0                  |«      r|nd}
t        j8                  | |
¬«      } t7        | «      } nt;        | |¬«      } |�| j0                  |k7  rt=        | d ||d¬«      } t?        | j                   d   | j                   d   ||¬«      \  }}tA        | ||«       |dk(  �rtC        | j0                  jD                  tF        «      rt        j8                  | t        ¬«      } |€TtI        | j0                  «      r?t        | j                   d   «      D �cg c]  }tK        tM        | d d …|f   «      «      ‘Œ }}nWtO        jP                  | j0                  d«      rtK        | «      } t        | j                   d   «      D �cg c]  }| d d …|f   ‘Œ }}|r|D �cg c]  }|j+                  «       ‘Œ }}tS        |||gd¬«      S | jT                  } |€ÕtI        | j0                  «      rÀtW        | «      }|D �cg c]  }tM        |«      ‘Œ }}tY        d„ t[        ||«      D «       «      rR|D �cg c]  }t]        |d«      ‘Œ }}t        t        |«      «      D �	cg c]  }	t_        ||	   ta        |	«      ¬«      ‘Œ }}	nøta        tc        t        |«      «      «      }t_        | ||¬«      }|g}nÉ|€™| j0                  jd                  dk(  r€tg        «       rvti        d¬«      }tW        | «      }tk        |«      D ��cg c]H  \  }}tm        |jo                  «       jq                  ||¬«      ta        tc        ||dz   «      «      d¬«      ‘ŒJ }}}n.ta        tc        t        |«      «      «      }t_        | ||¬«      }|g}t        |«      dk(  rg }ts        |||gd¬«      S c c}	w c c}w c c}w c c}w c c}w c c}w c c}	w c c}}w )N)r   r?   ©r8   r   Fr8   r?   rU   Tr=   éÿÿÿÿ©rY   )r8   rY   Úallow_2dr   )rN   rM   ÚmM)r9   c              3  ó*   K  — | ]  \  }}||u–— Œ y ­w©N© )Ú.0rO   Úys      rR   ú	<genexpr>z!ndarray_to_mgr.<locals>.<genexpr>p  s   è ø€ ÒG™d˜a ˆq˜ŒzÑGùs   ‚ra   )Ú	placement)ru   rA   ÚUÚpyarrow_numpy)Ústorage)rJ   ):rG   r   Únamer"   rN   ÚreindexrF   rH   ÚemptyÚobjectÚgetattrr   rI   r   rJ   rc   Úshaper%   rS   r   r   rY   Úreshaper
   r8   Ú_referencesÚ_valuesÚ
_ensure_2dr   Ú_prep_ndarrayliker    Ú	_get_axesÚ!_check_values_indices_shape_matchÚ
issubclassÚtypeÚstrr   r   r   r	   Úis_np_dtyper(   ÚTÚlistÚanyÚzipr+   r-   r*   ÚsliceÚkindr   r   Ú	enumerater,   Úconstruct_array_typeÚ_from_sequencer0   )ÚvaluesrN   rM   r8   rY   r:   Úcopy_on_sanitizeÚvdtyperA   ÚnÚ_copyrg   rL   rP   Úobj_columnsrO   Úmaybe_datetimeÚdvalÚ
dvals_listÚblock_valuesÚbpÚnbrZ   s                          rR   Úndarray_to_mgrrŸ   í   s]  € ô �&œ)Ô$Øˆ?Ø�{‰{Ð&Ü §¡ Ó.�Øˆ=Ø—L‘L‰Eà—^‘^ EÓ*ˆFô �6Œ{˜wÐ2´s¸7´|Ü—X‘X˜f¬FÔ3ˆFð !$ w¢‘u°DÐä�V˜W dÓ+€FØ€DÜ˜6Ô"Ô&9¸%Ô&@ô �fœrŸz™z¬>Ð:Ô;ÀÇÁÈaÂô ˜vŸ|™|¨A™Ó/öàð ’q˜!�t“ðˆFñ ð
 �XˆFàˆ?ÜœE¤# f£+Ó.Ó/‰Gä" 7Ó+ˆGä˜V W¨e¸5ÀcÔJÐJä	�FœNÔ	+ô ˜v°TÔ:ˆÙØ—[‘[“]ˆFØ�;‰;˜!ÒØ—^‘^ B¨Ó*‰Fä	�FœY¬Ð.Ô	/ÙØˆMœ^¨F¯L©L¸%Ô@à×%Ñ%ˆDáØ—^‘^×(Ñ(Ó*‰Fà—^‘^ˆFä˜FÓ#‰ä	�FœRŸZ™Z¬Ð8Ô	9ð �¤°·±¸eÔ!Dñ àð 	ô
 —‘˜& uÔ-ˆÜ˜FÓ#‰ô
 # 6Ð0@ÔAˆàÐ˜VŸ\™\¨UÒ2äØØØØ!Øô
ˆô Ø�‰�Q‰˜Ÿ™ a™°¸wô�N€Eˆ7ô & f¨e°WÔ=à
ˆgƒ~Ü�f—l‘l×'Ñ'¬Ô-Ü—X‘X˜f¬FÔ3ˆFàˆ=œ_¨V¯\©\Ô:ô
 ˜vŸ|™|¨A™Ó/ö	ð ô /Ü/°²q¸!°t±Ó=õðˆFñ ô �‰˜vŸ|™|¨TÔ2Ü7¸Ó?�Ü,1°&·,±,¸q±/Ó,BÖC q�fšQ ˜T“lÐCˆFÐCáØ,2Ö3 S�c—h‘h•jÐ3ˆFÐ3ä˜F U¨GÐ$4ÀuÔMÐMà�X‰X€Fð
 €}œ¨¯©Ô6Ü˜6“lˆØBMÖN¸QÔ5°aÕ8ÐNˆÐNäÑG¤c¨+°~Ó&FÔGÔGØBPÖQ¸$Ô,¨T°1Õ5ÐQˆJÐQô œs :›Ó/öàô ˜Z¨™]´nÀQÓ6GÖHðˆLñ ô
  ¤¤c¨'£lÓ 3Ó4ˆBÜ˜f°¸Ô>ˆBØ˜4‰LØ	ˆ˜6Ÿ<™<×,Ñ,°Ò3Ô8RÔ8TÜ OÔ4ˆä˜6“lˆô % [Ó1÷
ñ ��4ô Ø×*Ñ*Ó,×;Ñ;¸DÈÐ;ÓNÜœu Q¨¨A©›Ó/Øöð
ˆò 
ô œE¤# g£,Ó/Ó0ˆÜ˜&¨B°TÔ:ˆØ�tˆä
ˆ7ƒ|�qÒàˆä+Ø�w Ð&¸ôð ùòEùòRùò Dùò 4ùò Oùò Rùòùó
s1   Ã?WÍ"W
Î8WÏWÐ+WÑWÒ
 W#Ô&AW(c                ó0  — | j                   d   t        |«      k7  s| j                   d   t        |«      k7  r`| j                   d   dcxk(  rt        |«      k  rt        d«      ‚ | j                   }t        |«      t        |«      f}t        d|› d|› �«      ‚y)z\
    Check that the shape implied by our axes matches the actual shape of the
    data.
    r?   r   z)Empty data passed with indices specified.zShape of passed values is z, indices imply N)r~   rF   rK   )r“   rN   rM   ÚpassedÚimplieds        rR   r…   r…   •  s”   € ð ‡|�|�A�œ#˜g›,Ò&¨&¯,©,°q©/¼SÀ»ZÒ*Gð �<‰<˜‰?˜aÔ,¤# e£*Ò,ÜÐHÓIÐIð -ð —‘ˆÜ�u“:œs 7›|Ð,ˆÜÐ5°f°XÐ=MÈgÈYÐWÓXÐXð +Hr_   r@   )r8   r:   rY   c               óè  — |��Lddl m}  || |t        ¬«      }|j                  «       }|€t	        ||    «      }nt        |«      }|j                  «       rãt        |«      sØ|�O|j                  j                  «       d   }	|	D ],  }
t        |j                  |
   ||¬«      }||j                  |
<   Œ. n‡t        j                  d«      }t        t        j                  t!        |«      |«      }|j#                  «       }|r|g|z  }n&t%        |«      D �cg c]  }|j'                  «       ‘Œ }}||j(                  |<   t+        |«      }t        |«      }nVt+        | j-                  «       «      }|rt/        |«      n
t1        d«      }|D �cg c]  }t3        j4                  | |   «      ‘Œ }}|r§|dk(  rw|D �cg c]k  }t7        |t8        «      r|j'                  «       nHt7        |t.        «      s%t7        |t:        «      r't=        |j                  «      r|j'                  d¬«      n|‘Œm }}n+|D �cg c]   }t?        |d	«      r|j'                  «       n|‘Œ" }}tA        ||||||¬
«      S c c}w c c}w c c}w c c}w )z’
    Segregate Series based on type and coerce into matrices.
    Needs to handle a lot of exceptional cases.

    Used in DataFrame.__init__
    r   )ÚSeries)rN   r8   rj   r|   r@   T)Údeepr8   )r8   r:   r;   )!Úpandas.core.seriesr¤   r|   ÚisnarD   r%   rŒ   r   r“   Únonzeror    ÚiatrH   r8   r   ÚnanrF   Úsumrc   rY   Úlocr‹   Úkeysr"   r$   ÚcomÚmaybe_iterable_to_listrG   r   r   r   ÚhasattrrS   )rZ   rN   rM   r8   r:   rY   r¤   rL   ÚmissingÚmidxsrg   rP   Ú	nan_dtypeÚvalÚnmissingÚrhsÚ_r­   ÚkrO   s                       rR   Údict_to_mgrr¹   §  sE  € ð" ÑÝ-á˜ G´6Ô:ˆØ—+‘+“-ˆØˆ=ô # 6¨7¨(Ñ#3Ó4‰Eä  Ó'ˆEð �;‰;Œ=Ô!1°%Ô!8ð Ð ð  Ÿ™×.Ñ.Ó0°Ñ3�Øò (�AÜ(¨¯©°A©¸ÀUÔK�CØ$'�F—J‘J˜q’Mñ(ô
 ŸH™H XÓ.�	Ü8¼¿¹ÄÀUÃÈYÓW�Ø"Ÿ;™;›=�ÙØ˜% (Ñ*‘Cô 05°X«Ö?¨!˜3Ÿ8™8�:Ð?�CÐ?Ø&)�—
‘
˜7Ñ#ä�f“ˆÜ˜wÓ'‰ô �D—I‘I“KÓ ˆÙ!%”%˜”+¬=¸Ó+;ˆØ?CÖD¸!”#×,Ñ,¨T°!©WÕ5ÐDˆÐDáØ�'Š>ð  öð ô ˜a¤Ô0ð —‘”ô ˜q¤%Ô(Ü! !¤YÔ/Ü+¨A¯G©GÔ4ð	 —V‘V �VÔ&ð ñðˆFñ ð GMÖMÀ¤'¨!¨WÔ"5�a—f‘f”h¸1Ñ<ÐMˆFÐMä˜ ¨%°uÀ#ÐSWÔXÐXùò? @ùò Eùòùò Ns   ÄI ÆI%Æ1A0I*È(%I/c                óþ   — t        | d   «      r|€t        | d   j                  «      }t        | ||¬«      \  }}t        |«      }|€3t	        | d   t
        «      rt        | «      }nt        t        | «      «      }|||fS )zA
    Convert a single sequence of arrays to multiple arrays.
    r   rj   )	r   r%   Ú_fieldsrW   rG   r   Ú_get_names_from_indexr$   rF   )rZ   rM   rN   r8   rL   s        rR   Únested_data_to_arraysr½   ú  sz   € ô �d˜1‘gÔ 7 ?Ü˜t A™wŸ™Ó/ˆä  g°UÔ;�O€FˆGÜ˜7Ó#€Gà€}Ü�d˜1‘gœyÔ)Ü)¨$Ó/‰Eä!¤# d£)Ó,ˆEà�7˜EÐ!Ð!r_   c                ó°   — t        | «      dkD  xrG t        | d   «      xr7 t        | d   dd«      dk(  xr" t        | t        «      xr | j
                  dk(   S )z7
    Check if we should use nested_data_to_arrays.
    r   rJ   r?   ra   )rF   r   r}   rG   r   rJ   )rZ   s    rR   Útreat_as_nestedr¿     sc   € ô
 	ˆD‹	�A‰ò 	FÜ˜˜a™Ó!ò	Fä�D˜‘G˜V QÓ'¨1Ñ,ò	Fô ˜D¤.Ó1ÒD°d·i±iÀ1±nÐEð	r_   c                ó>  — t        | «      dk(  rt        j                  dt        ¬«      S t	        | t
        «      r t        | «      }|dt        j                  f   S d„ }t        | d   «      r4t        j                  | D �cg c]
  } ||«      ‘Œ c}«      } t        | «      S t	        | d   t        j                  «      rF| d   j                  dk(  r4t        j                  | D �cg c]
  } ||«      ‘Œ c}«      } t        | «      S  || «      } t        | «      S c c}w c c}w )Nr   )r   r   rj   .c                óp   — t        | «      rt        | t        «      r| S t        | d¬«      } t	        | «      }|S )NTr=   )r   rG   r   r   r   )ÚvÚress     rR   Úconvertz"_prep_ndarraylike.<locals>.convert/  s4   € Ü˜AŒ¤*¨Q´Ô"=ØˆHä˜!¨4Ô0ˆÜ$ QÓ'ˆð ˆ
r_   )rF   rH   r{   r|   rG   rc   r   Únewaxisr   r   rI   rJ   r‚   )r“   rY   rP   rÄ   rÂ   s        rR   rƒ   rƒ   #  sô   € ô ˆ6ƒ{�aÒô �x‰x˜¤fÔ-Ð-Ü	�FœEÔ	"Ü˜vÓ&ˆØ�3œŸ
™
�?Ñ#Ð#òô �F˜1‘IÔÜ—‘¨vÖ6¨!™7 1�:Ò6Ó7ˆô �fÓÐô 
�F˜1‘IœrŸz™zÔ	*¨v°a©y¯~©~ÀÒ/Bä—‘¨vÖ6¨!™7 1�:Ò6Ó7ˆô �fÓÐñ ˜“ˆä�fÓÐùò 7ùò 7s   Á>DÃ!Dc                ó¶   — | j                   dk(  r"| j                  | j                  d   df«      } | S | j                   dk7  rt        d| j                  › �«      ‚| S )zB
    Reshape 1D values, raise on anything else other than 2D.
    r?   r   ra   zMust pass 2-d input. shape=)rJ   r   r~   rK   )r“   s    rR   r‚   r‚   I  s\   € ð ‡{�{�aÒØ—‘ §¡¨a¡°!Ð 4Ó5ˆð €Mð 
�‰˜Ò	ÜÐ6°v·|±|°nÐEÓFÐFØ€Mr_   c                ó¾  — d }g }g }| D �]N  }t        |t        t        f«      rn|�|j                  |d¬«      }t        |t        «      r!|j                  |ur|j                  |d¬«      }|j                  |j                  «       |j                  }n¶t        |t        «      rp|€|j                  d«      }t        |t        t        f«      rt        |«      }nt        |«      }t        j                  ||j                  t        j                   ¬«      }t#        |||d¬«      }t%        j&                  ||«       |j                  d «       |j                  |«       �ŒQ ||fS )NFrl   ÚO)Údefault©r8   rY   )rG   r   r"   ÚastyperN   rz   Úappendr€   r�   Údictr!   r#   r   r	   Úfast_multigetrH   rª   r    r®   Úrequire_length_match)rZ   rN   r8   ÚoindexÚhomogenizedrA   r´   s          rR   rE   rE   T  s1  € ð €FØ€Kà€Dàó  ˆÜ�cœI¤uÐ-Ô.ØÐ Ø—j‘j ¨U�jÓ3�Ü˜#œyÔ)¨c¯i©i¸uÑ.Dð —k‘k %¨e�kÓ4�Ø�K‰K˜Ÿ™Ô(Ø—+‘+‰Cä˜#œtÔ$ð �>Ø"Ÿ\™\¨#Ó.�Fä˜e¤m´^Ð%DÔEä% cÓ*‘Cô ˜s›)�CÜ×'Ñ'¨¨V¯^©^ÄRÇVÁVÔL�ä   e°5¸uÔEˆCÜ×$Ñ$ S¨%Ô0Ø�K‰K˜Ôà×Ñ˜3Öð; ð> ˜ÐÐr_   c                óh  — t        | «      dk(  rt        d«      S g }g }d}d}d}| D ]Ø  }t        |t        «      rd}|j	                  |j
                  «       Œ1t        |t        «      r+d}|j	                  t        |j                  «       «      «       Œlt        |«      r-t        |dd«      dk(  rd}|j	                  t        |«      «       Œ¤t        |t        j                  «      sŒ¿|j                  dkD  sŒÏt        d«      ‚ |s|st        d«      ‚|rt        |«      }n|rt        |d¬«      }|rzt        t!        |«      «      }t        |«      dkD  rt        d	«      ‚|rt        d
«      ‚|r0|d   t        «      k7  r-d|d   › dt        |«      › �}	t        |	«      ‚t        |d   «      }t#        «      S )zR
    Try to infer an Index from the passed data, raise ValueError on failure.
    r   FTrJ   r?   z,Per-column arrays must each be 1-dimensionalz2If using all scalar values, you must pass an index©Úsortz%All arrays must be of the same lengthz<Mixing dicts with non-Series may lead to ambiguous ordering.zarray length z does not match index length )rF   r$   rG   r   rÌ   rN   rÍ   r‹   r­   r   r}   rH   rI   rJ   rK   r'   Úsetr%   )
rZ   Úraw_lengthsÚindexesÚhave_raw_arraysÚhave_seriesÚ
have_dictsr´   rN   ÚlengthsÚmsgs
             rR   rD   rD   ~  s¥  € ô
 ˆ4ƒy�A‚~Ü˜QÓÐà€KØ,.€Gà€OØ€KØ€Jàò MˆÜ�cœ9Ô%ØˆKØ�N‰N˜3Ÿ9™9Õ%Ü˜œTÔ"ØˆJØ�N‰Nœ4 §¡£
Ó+Õ,Ü˜#Ô¤7¨3°¸Ó#:¸aÒ#?Ø"ˆOØ×Ñœs 3›xÕ(Ü˜œRŸZ™ZÕ(¨S¯X©X¸«\ÜÐKÓLÐLðMñ ™;ÜÐMÓNÐNáÜ˜gÓ&‰Ù	Ü˜g¨EÔ2ˆáÜ”s˜;Ó'Ó(ˆÜˆw‹<˜!ÒÜÐDÓEÐEáÜØNóð ñ Ø�q‰zœS ›ZÒ'à# G¨A¡J <ð 0Ü! %›j˜\ð+ð ô ! “oÐ%ä! '¨!¡*Ó-ˆEä˜ÓÐr_   c                ó0  — |�‘|j                  |«      s€g }|j                  |«      }t        |«      D ][  \  }}|dk(  r;t        j                  |t
        ¬«      }|j                  t        j                  «       n| |   }|j                  |«       Œ] |} |}| |fS )zB
    Pre-emptively (cheaply) reindex arrays with new columns.
    rk   rj   )	ÚequalsÚget_indexerr�   rH   r{   r|   Úfillrª   rÌ   )	rL   r\   rM   ÚlengthÚ
new_arraysÚindexerrg   r¸   rP   s	            rR   rX   rX   ¹  s˜   € ð ÐØ�~‰~˜kÔ*à*,ˆJØ!×-Ñ-¨gÓ6ˆGÜ! 'Ó*ò '‘��1Ø˜’7äŸ(™( 6´Ô8�CØ—H‘HœRŸV™VÕ$à  ™)�CØ×!Ñ! #Õ&ð'ð  ˆFØ!ˆKà�;ÐÐr_   c                ó  — t        d„ | D «       «      }|st        t        | «      «      S t        t	        t        | «      «      «      }d}t        | «      D ]'  \  }}t        |dd «      }|�|||<   Œd|› �||<   |dz  }Œ) t        |«      S )Nc              3  ó:   K  — | ]  }t        |d d«      du–— Œ y­w)ry   N)r}   )rr   Úss     rR   rt   z(_get_names_from_index.<locals>.<genexpr>Õ  s   è ø€ ÒKÀœ  6¨4Ó0¸Ô<ÑKùs   ‚r   ry   zUnnamed r?   )rŒ   r$   rF   r‹   rc   r�   r}   r"   )rZ   Úhas_some_namerN   Úcountrg   ræ   r–   s          rR   r¼   r¼   Ô  s”   € ÜÑKÀdÔKÓK€MÙÜœS ›YÓ'Ð'ä ¤¤s¨4£yÓ!1Ó2€EØ€EÜ˜$“ò ‰ˆˆ1Ü�A�v˜tÓ$ˆØˆ=ØˆE�!ŠHà! % Ð)ˆE�!‰HØ�Q‰J‰Eðô �‹<Ðr_   c                ót   — |€t        | «      }nt        |«      }|€t        |«      }||fS t        |«      }||fS rp   )r$   r%   )ÚNÚKrN   rM   s       rR   r„   r„   æ  sN   € ð €}Ü˜aÓ ‰ä˜UÓ#ˆà€Ü Ó"ˆð �'ˆ>Ðô ˜wÓ'ˆØ�'ˆ>Ðr_   c                ó8   — ddl m} t        t        || «      «      S )a·  
    Converts a list of dataclass instances to a list of dictionaries.

    Parameters
    ----------
    data : List[Type[dataclass]]

    Returns
    --------
    list_dict : List[dict]

    Examples
    --------
    >>> from dataclasses import dataclass
    >>> @dataclass
    ... class Point:
    ...     x: int
    ...     y: int

    >>> dataclasses_to_dicts([Point(1, 2), Point(2, 3)])
    [{'x': 1, 'y': 2}, {'x': 2, 'y': 3}]

    r   )Úasdict)Údataclassesrí   r‹   Úmap)rZ   rí   s     rR   Údataclasses_to_dictsrð   ø  s   € õ0 #ä”�F˜DÓ!Ó"Ð"r_   c                óÈ  — t        | «      s¯t        | t        j                  «      rˆ| j                  j
                  �rt        | j                  j
                  «      }|D �cg c]  }| |   ‘Œ	 }}t        | «      dk(  r/t        |«      D ]!  \  }}|j                  dk(  sŒ|dd…df   ||<   Œ# ||fS g t        g «      fS t        | t        j                  «      rT| j                  j
                  �>t        t        | j                  j
                  «      «      }|D �cg c]  }| |   ‘Œ	 }}||fS t        | d   t        t        f«      rt        | «      }nst        | d   t        j                  «      rt        | |«      \  }}nFt        | d   t         «      rt#        | |«      \  }}n#| D �cg c]  }t        |«      ‘Œ } }t        | «      }t%        |||«      \  }	}|	|fS c c}w c c}w c c}w )a	  
    Return list of arrays, columns.

    Returns
    -------
    list[ArrayLike]
        These will become columns in a DataFrame.
    Index
        This will become frame.columns.

    Notes
    -----
    Ensures that len(result_arrays) == len(result_index).
    Nr   ra   )rF   rG   rH   rI   r8   Únamesr%   r�   rJ   r"   r‹   ÚtupleÚ_list_to_arraysr   ÚMappingÚ_list_of_dict_to_arraysr   Ú_list_of_series_to_arraysÚ_finalize_columns_and_data)
rZ   rM   r8   ry   rL   rg   rP   r¸   rO   Úcontents
             rR   rW   rW     s´  € ô$ ˆtŒ9Ü�dœBŸJ™JÔ'Ø�z‰z×ÑÐ+ä& t§z¡z×'7Ñ'7Ó8�Ø18Ö9¨˜$˜t›*Ð9�Ð9ä�t“9 ’>ô #,¨FÓ"3ò 2™˜˜3ØŸ8™8 q›=Ø(+ªA¨q¨D©	˜F 1šIð2ð ˜w�Ð&Ø”< Ó#Ð#Ð#ä	�Dœ"Ÿ*™*Ô	%¨$¯*©*×*:Ñ*:Ð*Fäœ˜TŸZ™Z×-Ñ-Ó.Ó/ˆØ#*Ö+˜a�$�q“'Ð+ˆÐ+Ø�wˆÐä�$�q‘'œD¤%˜=Ô)Ü˜dÓ#‰Ü	�D˜‘GœSŸ[™[Ô	)Ü.¨t°WÓ=‰ˆ‰WÜ	�D˜‘GœYÔ	'Ü0°°wÓ?‰ˆ‰Wð #'Ö'˜Q”�a•Ð'ˆÐ'Ü˜dÓ#ˆä1°#°wÀÓFÑ€GˆWØ�GÐÐùò= :ùò ,ùò (s   ÁGÄGÆ"Gc                ó„   — t        | d   t        «      rt        j                  | «      }|S t        j                  | «      }|S )Nr   )rG   ró   r	   Úto_object_array_tuplesÚto_object_array)rZ   rù   s     rR   rô   rô   Q  s@   € ô �$�q‘'œ5Ô!Ü×,Ñ,¨TÓ2ˆð €Nô ×%Ñ% dÓ+ˆØ€Nr_   c                óÞ  — |€3| D �cg c]  }t        |t        t        f«      sŒ|‘Œ }}t        |d¬«      }i }g }| D ]’  }t	        |dd «      }|€t        t        |«      «      }t        |«      |v r|t        |«         }n|j                  |«      x}|t        |«      <   t        |d¬«      }	|j                  t        j                  |	|«      «       Œ” t        j                  |«      }
|
|fS c c}w )NFrÓ   rN   Tr=   )rG   r   r   r&   r}   r$   rF   Úidrß   r   rÌ   r   Útake_ndrH   Úvstack)rZ   rM   rO   Ú	pass_dataÚindexer_cacheÚaligned_valuesræ   rN   rã   r“   rù   s              rR   r÷   r÷   \  sò   € ð €à $ÖQ˜1¬
°1´yÄ,Ð6OÕ(P’QÐQˆ	ÐQÜ(¨¸Ô?ˆà+-€Mà€NØò CˆÜ˜˜7 DÓ)ˆØˆ=Ü!¤# a£&Ó)ˆEäˆe‹9˜Ñ%Ø#¤B u£IÑ.‰Gà16×1BÑ1BÀ7Ó1KÐKˆG�m¤B u£IÑ.ä˜q°Ô5ˆØ×Ñœj×0Ñ0°¸ÓAÕBðCô �i‰i˜Ó'€GØ�GÐÐùò) Rs
   ‡C*£C*c                ó(  — |€>d„ | D «       }t        d„ | D «       «       }t        j                  ||¬«      }t        |«      }| D �cg c]   }t	        |«      t
        u r|n
t        |«      ‘Œ" } }t        j                  | t        |«      «      }||fS c c}w )a  
    Convert list of dicts to numpy arrays

    if `columns` is not passed, column names are inferred from the records
    - for OrderedDict and dicts, the column names match
      the key insertion-order from the first record to the last.
    - For other kinds of dict-likes, the keys are lexically sorted.

    Parameters
    ----------
    data : iterable
        collection of records (OrderedDict, dict)
    columns: iterables or None

    Returns
    -------
    content : np.ndarray[object, ndim=2]
    columns : Index
    c              3  óN   K  — | ]  }t        |j                  «       «      –— Œ y ­wrp   )r‹   r­   )rr   rO   s     rR   rt   z*_list_of_dict_to_arrays.<locals>.<genexpr>“  s   è ø€ Ò, !Œt�A—F‘F“H�~Ñ,ùs   ‚#%c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrp   )rG   rÍ   )rr   Úds     rR   rt   z*_list_of_dict_to_arrays.<locals>.<genexpr>”  s   è ø€ Ò9¨q”z !¤T×*Ñ9ùó   ‚rÓ   )rŒ   r	   Úfast_unique_multiple_list_genr%   r‡   rÍ   Údicts_to_arrayr‹   )rZ   rM   ÚgenrÔ   Úpre_colsr  rù   s          rR   rö   rö   {  s�   € ð. €Ù, tÔ,ˆÜÑ9°DÔ9Ó9Ð9ˆÜ×4Ñ4°S¸tÔDˆÜ˜xÓ(ˆð 8<Ö<°!”�a“œD‘‰A¤d¨1£gÑ-Ð<€DÐ<ä× Ñ  ¤t¨G£}Ó5€GØ�GÐÐùò =s   Á%Bc                óø   — t        | j                  «      }	 t        ||«      }t        |«      r-|d   j                  t        j                  k(  rt        ||¬«      }||fS # t        $ r}t	        |«      |‚d}~ww xY w)zG
    Ensure we have valid columns, cast object dtypes if possible.
    Nr   rj   )
r‹   rŠ   Ú_validate_or_indexify_columnsÚAssertionErrorrK   rF   r8   rH   Úobject_Úconvert_object_array)rù   rM   r8   ÚcontentsÚerrs        rR   rø   rø      su   € ô �G—I‘I‹€Hð'Ü/°¸'ÓBˆô
 ˆ8„}˜ !™×*Ñ*¬b¯j©jÒ8Ü'¨¸Ô>ˆà�WÐÐøô ò 'ä˜‹o 3Ð&ûð'ús   —A Á	A9Á(A4Á4A9c                óè  — |€t        t        | «      «      }|S t        |t        «      xr t	        d„ |D «       «      }|s:t        |«      t        | «      k7  r#t        t        |«      › dt        | «      › d�«      ‚|rrt        |D �ch c]  }t        |«      ’Œ c}«      dkD  rt        d«      ‚|r@t        |d   «      t        | «      k7  r&t        t        |d   «      › dt        | «      › d�«      ‚|S c c}w )a´  
    If columns is None, make numbers as column names; Otherwise, validate that
    columns have valid length.

    Parameters
    ----------
    content : list of np.ndarrays
    columns : Index or None

    Returns
    -------
    Index
        If columns is None, assign positional column index value as columns.

    Raises
    ------
    1. AssertionError when content is not composed of list of lists, and if
        length of columns is not equal to length of content.
    2. ValueError when content is list of lists, but length of each sub-list
        is not equal
    3. ValueError when content is list of lists, but length of sub-list is
        not equal to length of content
    c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrp   )rG   r‹   )rr   Úcols     rR   rt   z0_validate_or_indexify_columns.<locals>.<genexpr>Ô  s   è ø€ ò 7
Ø&)ŒJ�sœD×!ñ7
ùr  z! columns passed, passed data had z columnsr?   z<Length of columns passed for MultiIndex columns is differentr   )r$   rF   rG   r‹   Úallr  rK   )rù   rM   Ú
is_mi_listr  s       rR   r  r  ¶  s  € ð4 €Ü¤ G£Ó-ˆð4 €Nô/   ¬Ó.ò 
´3ñ 7
Ø-4ô7
ó 4
ˆ
ñ œc '›l¬c°'«lÒ:ä Ü�w“<�.Ð AÜ�w“<�. ð*óð ñ ä¨Ö0 ”C˜•HÒ0Ó1°AÒ5Ü ØRóð ñ
 œ3˜w q™z›?¬c°'«lÒ:Ü Ü˜7 1™:“Ð'Ð'HÜ˜7“|�n Hð.óð ð €Nùò 1s   ÂC/c                óN   ‡‡‡— ˆˆˆfd„}| D �cg c]
  } ||«      ‘Œ }}|S c c}w )aA  
    Internal function to convert object array.

    Parameters
    ----------
    content: List[np.ndarray]
    dtype: np.dtype or ExtensionDtype
    dtype_backend: Controls if nullable/pyarrow dtypes are returned.
    coerce_float: Cast floats that are integers to int.

    Returns
    -------
    List[ArrayLike]
    c                ó¦  •— ‰t        j                  d«      k7  �r6t        j                  | ‰‰dk7  ¬«      } ‰€É| j                  t        j                  d«      k(  rat	        | «      } ‰dk7  r•| j                  t        j                  d«      k(  rst        «       }|j                  «       }|j                  | |¬«      } | S ‰dk7  r?t        | t         j                  «      r%| j                  j                  dv rt        | d¬«      } | S t        ‰t        «      r&‰j                  «       }|j                  | ‰d¬«      } | S ‰j                  d	v rt        | ‰«      } | S )
NrÈ   Únumpy)Ú	try_floatÚconvert_to_nullable_dtyperj   ÚiufbFrl   rÊ   rn   )rH   r8   r	   Úmaybe_convert_objectsr   r   r‘   r’   rG   rI   r�   Úpd_arrayr   r   )rP   Ú	new_dtypeÚarr_clsÚclsÚcoerce_floatr8   Údtype_backends       €€€rR   rÄ   z%convert_object_array.<locals>.convert  s7  ø€ Ø”B—H‘H˜S“MÓ!Ü×+Ñ+ØØ&Ø*7¸7Ñ*BôˆCð ˆ}Ø—9‘9¤§¡¨£Ò-ä5°cÓ:�CØ$¨Ò/°C·I±IÄÇÁÈ#ÃÒ4NÜ$/£M˜	Ø"+×"@Ñ"@Ó"B˜Ø%×4Ñ4°SÀ	Ð4ÓJ˜ð& ˆ
ð% # gÒ-´*¸SÄ"Ç*Á*Ô2MØ—y‘y—~‘~¨Ñ/Ü& s°Ô7˜ð  ˆ
ô ˜E¤>Ô2ð ×0Ñ0Ó2�Ø×(Ñ(¨°EÀÐ(ÓF�ð ˆ
ð —‘˜tÑ#ô -¨S°%Ó8�àˆ
r_   rq   )rù   r8   r%  r$  rÄ   rP   rL   s    ```   rR   r  r  î  s,   ú€ ö,(ðT '.Ö.˜s‰g�c�lÐ.€FÐ.à€Mùò /s   �")rM   r"   r8   úDtypeObj | Noner9   Úboolr:   z
str | Noner;   r'  Úreturnr6   )
rZ   znp.rec.recarray | np.ndarrayr8   r&  rY   r'  r:   rˆ   r(  r6   )T)r:   rˆ   rY   r'  r(  r6   )r8   r&  rY   r'  r:   rˆ   r(  r6   )r“   ú
np.ndarrayrN   r"   rM   r"   r(  ÚNone)
rZ   rÍ   r8   r&  r:   rˆ   rY   r'  r(  r6   )
rZ   r3   rM   úIndex | NonerN   r+  r8   r&  r(  z$tuple[list[ArrayLike], Index, Index])r(  r'  )rY   r'  r(  r)  )r“   r)  r(  r)  )rN   r"   r8   r&  r(  z!tuple[list[ArrayLike], list[Any]])r(  r"   )
rL   úlist[ArrayLike]r\   r"   rM   r+  rá   Úintr(  útuple[list[ArrayLike], Index])
rê   r-  rë   r-  rN   r+  rM   r+  r(  ztuple[Index, Index]rp   )rM   r+  r8   r&  r(  r.  )rZ   zlist[tuple | list]r(  r)  )rZ   r‹   rM   r+  r(  útuple[np.ndarray, Index])rZ   z
list[dict]rM   r+  r(  r/  )rù   r)  rM   r+  r8   r&  r(  r.  )rù   zlist[np.ndarray]rM   r+  r(  r"   )r  F)
rù   zlist[npt.NDArray[np.object_]]r8   r&  r%  rˆ   r$  r'  r(  r,  )eÚ__doc__Ú
__future__r   Úcollectionsr   Útypingr   r   r  rH   r   Úpandas._configr   Úpandas._libsr	   Úpandas.core.dtypes.astyper
   Úpandas.core.dtypes.castr   r   r   r   r   Úpandas.core.dtypes.commonr   r   r   r   r   Úpandas.core.dtypes.dtypesr   Úpandas.core.dtypes.genericr   r   Úpandas.corer   r   r®   Úpandas.core.arraysr   Úpandas.core.arrays.string_r   Úpandas.core.constructionr   r   r   r   r   r    Úpandas.core.indexes.apir!   r"   r#   r$   r%   r&   r'   Ú#pandas.core.internals.array_managerr(   r)   Úpandas.core.internals.blocksr*   r+   r,   r-   Úpandas.core.internals.managersr.   r/   r0   r1   Úcollections.abcr2   r3   Úpandas._typingr4   r5   r6   r7   rS   r^   rh   rŸ   r…   r¹   r½   r¿   rƒ   r‚   rE   rD   rX   r¼   r„   rð   rW   rô   r÷   rö   rø   r  r  rq   r_   rR   ú<module>rE     s‡  ðñõ #å ÷ó
 Ý å 5å å 4÷õ ÷õ õ 5÷÷
õ .Ý 2÷õ ÷÷ ñ ÷÷ó ÷ó ñ ÷÷
ó ð "Ø!ØØñ>Xàð>Xð
 ð>Xð ð>Xð 
ð>Xð ð>Xð ó>XðB Ø
&ð ð ð	 ð
 ð ð 
ð ð ó ôF"ðReØ#2ðeØ:>ðeØEHðeàóeðPYØðYØ$ðYØ/4ðYà	óYð. "ØØñPYØ
ðPYð
 ðPYð 
ðPYð ðPYð óPYðf"Ø
ð"àð"ð ð"ð ð	"ð
 *ó"ó4	ô#óLð'Øð'Ø.ð'à&ó'óT8ðvØðØ*/ðØ:FðØPSðà"óó6ð$Ø
ðØðØ'ðØ2>ðàóò$#ðD ;?ð5Øð5Ø(7ð5à"ó5ópðØ
ðàðð óð>"Ø
ð"àð"ð ó"ðJØðàðð ðð #ó	ð,5Øð5Ø(4ð5à
ó5ðv !Øð	BØ*ðBàðBð ðBð ð	Bð
 ôBr_   