Ë
    *�£jÐƒ  ã                  ó<  — 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 ddlmZmZmZmZmZ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&m'Z( ddl)m*Z* ddl+m,Z, ddl-m.Z/m0Z0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@mAZA ddlBmCZCmDZD erddlEmFZFmGZG ddlHmIZImJZJmKZKmLZL ddddœ	 	 	 	 	 	 	 	 	 d1d„ZM	 	 	 	 	 	 	 	 d2d„ZN	 	 	 	 	 	 d3d„ZO	 	 	 	 	 	 	 	 d4d„ZPdddœ	 	 	 	 	 	 	 d5d„ZQ	 	 	 	 	 	 	 	 	 	 d6d „ZRd7d!„ZSd8d9d"„ZTd:d#„ZU	 	 	 	 	 	 d;d$„ZVd<d%„ZW	 	 	 	 	 	 	 	 	 	 d=d&„ZXd<d'„ZY	 	 	 	 	 	 	 	 	 	 d>d(„ZZd)„ Z[	 d?	 	 	 	 	 d@d*„Z\dAd+„Z]	 	 	 	 	 	 dBd,„Z^	 	 	 	 	 	 dCd-„Z_	 	 	 	 	 	 	 	 dDd.„Z`	 	 	 	 	 	 dEd/„Za	 	 dF	 	 	 	 	 	 	 	 	 dGd0„Zby)Hz~
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_string_dtype)Úlib)Úastype_is_view)Ú"construct_1d_arraylike_from_scalarÚdict_compatÚmaybe_cast_to_datetimeÚmaybe_convert_platform)Úis_1d_only_ea_dtypeÚis_integer_dtypeÚis_list_likeÚis_named_tupleÚis_object_dtypeÚ	is_scalar)ÚBaseMaskedDtypeÚExtensionDtype)ÚABCDataFrameÚ	ABCSeries)Úisna)Ú
algorithmsÚcommon)ÚExtensionArray)ÚStringDtype)ÚarrayÚextract_arrayÚrange_to_ndarrayÚsanitize_array)	ÚDatetimeIndexÚIndexÚ
MultiIndexÚTimedeltaIndexÚdefault_indexÚensure_indexÚget_objs_combined_axisÚmaybe_sequence_to_rangeÚunion_indexes)ÚBlockPlacementÚensure_block_shapeÚ	new_blockÚnew_block_2d)Ú create_block_manager_from_blocksÚ'create_block_manager_from_column_arrays)ÚHashableÚSequence)Ú	ArrayLikeÚDtypeObjÚManagerÚnptT)ÚdtypeÚverify_integrityÚconsolidatec               óü  — |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}	t        | |	||¬«      S 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))r9   Úrefs)Ú_extract_indexr'   Ú_homogenizer   ÚlenÚ
isinstanceÚnpÚndarrayr   ÚndimÚ
ValueErrorr0   )
ÚarraysÚcolumnsÚindexr7   r8   r9   r>   ÚxÚarrÚaxess
             úDC:\FundamentalWorkbench\vendor\pandas\core\internals\construction.pyÚarrays_to_mgrrN   `   s  € ñ àˆ=Ü" 6Ó*‰Eä  Ó'ˆEô # 6¨5°%Ó8‰ˆ‘ô ˜UÓ#ˆÙ@FÓGÁ¸1”- °Ö6ÀˆÐ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ä2Ø� +°Dôð ùò/ Hs   ¼C9c                ó.  — t        j                  | «      }|€t        t        |«      «      }nt	        |«      }|�t	        |«      }t        ||«      \  }}t        |||t        |«      «      \  }}|€|}t        ||||¬«      }|r|j                  d¬«      }|S )zA
    Extract from a masked rec array and create the manager.
    ©r7   T©Údeep)	r   Úgetdatar&   rA   r'   Ú	to_arraysÚreorder_arraysrN   Úcopy)	ÚdatarI   rH   r7   rV   ÚfdatarG   Úarr_columnsÚmgrs	            rM   Ú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Ô
<€CáØ�h‰h˜DˆhÓ!ˆØ€Jó    c                ó   — t        | t        t        t        f«       }t        | t        «      rw|€"| j                  �t        | j                  g«      }|€| j
                  }n| j                  |«      } t        | «      s(|�&t        |«      rt        j                  dt        ¬«      } 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} |rq| D �	cg c]f  }	t        |	t        t        t        f«      rGt        |	j"                  «      r2t        |	t        «      r|	j%                  d¬«      n|	j%                  «       n|	‘Œh } }	|€t        t        t        | «      «      «      }nt'        |«      }t)        | ||||¬«      S t        | t        t        f«      r&|s$|�t+        | j"                  |«      r| j,                  }t        |t.        «      rAt1        | d¬«      } |r| j%                  «       } | j                  dk(  rß| j3                  d	d«      } nÌt        | t        t        f«      r5|r| j4                  j%                  «       } n| j4                  } t7        | «      } n�t        | t        j                  t        f«      rT|r1|�t+        | j"                  |«      rt        j8                  | dd
¬«      } nt        j:                  | «      } t7        | «      } nt=        | |¬«      } |�| j"                  |k7  rt?        | d ||d¬«      } tA        | j                   d   | j                   d   ||¬«      \  }}tC        | ||«       | jD                  } |€æ|rätG        | j"                  «      rÏtI        | «      }
|
D �	cg c]/  }	tK        jL                  |	dddt        j"                  d«      ¬«      ‘Œ1 }}	tO        d„ tQ        |
|d¬«      D «       «      r=tS        |«      D ��cg c]%  \  }}tU        tW        |d«      tY        |«      ¬«      ‘Œ' }}}�ntY        t[        t        |«      «      «      }tU        | ||¬«      }|g}n×|€§| j"                  j\                  dk(  rŽt_        «       r„ta        t        jb                  ¬«      }tI        | «      }
tS        |
«      D ��cg c]H  \  }}te        |jg                  «       ji                  ||¬«      tY        t[        ||dz   «      «      d¬«      ‘ŒJ }}}n.tY        t[        t        |«      «      «      }tU        | ||¬«      }|g}t        |«      dk(  rg }tk        |||gd¬«      S c c}w c c}	w c c}	w c c}}w c c}}w )N)r   r=   rP   r7   r=   TrQ   ©r7   r9   r;   éÿÿÿÿÚF)rV   Úorder©rV   )r7   rV   Úallow_2dr   )rI   rH   FúM8[s]©Úconvert_numericÚconvert_non_numericÚconvert_to_nullable_dtypeÚdtype_if_all_natc              3  ó*   K  — | ]  \  }}||u–— Œ y ­w©N© )Ú.0rJ   Úys      rM   Ú	<genexpr>z!ndarray_to_mgr.<locals>.<genexpr>A  s   è ø€ ÐTÑ&S™d˜a ˆq˜ŒzÑ&Sùs   ‚)Ústricté   )Ú	placement)rr   r>   ÚU)Úna_value)rE   )r8   )6rB   r   r#   r   ÚnamerI   ÚreindexrA   rC   ÚemptyÚobjectÚgetattrr   rD   rE   ÚrangeÚshaper7   rV   r'   rN   r
   Ú_referencesr   r   ÚreshapeÚ_valuesÚ
_ensure_2dr   ÚasarrayÚ_prep_ndarrayliker!   Ú	_get_axesÚ!_check_values_indices_shape_matchÚTr   Úlistr	   Úmaybe_convert_objectsÚanyÚzipÚ	enumerater.   r,   r+   ÚsliceÚkindr   r   Únanr-   Úconstruct_array_typeÚ_from_sequencer/   )ÚvaluesrI   rH   r7   rV   Úinfer_objectÚvdtyper>   ÚnrJ   Úobj_columnsÚmaybe_datetimeÚdvalÚblock_valuesÚbpÚnbÚirW   s                     rM   Úndarray_to_mgrrš   Á   s  € ô
 " &¬9´e¼^Ð*LÓMÐM€Lä�&œ)Ô$Øˆ?Ø�{‰{Ð&Ü §¡ Ó.�Øˆ=Ø—L‘L‰Eà—^‘^ EÓ*ˆFô �6Œ{˜wÐ2´s¸7´|Ü—X‘X˜f¬FÔ3ˆFä�V˜W dÓ+€FØ€DÜ˜6Ô"Ô&9¸%Õ&@ô �fœrŸz™z¬>Ð:Ô;ÀÇÁÈaÂô ˜vŸ|™|¨A™Ô/óá/�Að ’q˜!�t“Ø/ð ñ ð
 �XˆFñ ñ  óñ
  �Aô ˜a¤.´%¼Ð!CÔDÜ'¨¯©Ô0ô '1°´EÔ&:�—‘˜T�Ô"ÀÇÁÄð ñð  ð ð ð ˆ?ÜœE¤# f£+Ó.Ó/‰Gä" 7Ó+ˆGä˜V W¨e¸5ÈdÔSÐSä�&œ9¤eÐ,Ô-Ù˜˜¬.¸¿¹ÀuÔ*MØ×%Ñ%ˆDä�&œ.Ô)ô ˜v°TÔ:ˆÙØ—[‘[“]ˆFØ�;‰;˜!ÒØ—^‘^ B¨Ó*‰Fä	�FœY¬Ð.Ô	/ÙØ—^‘^×(Ñ(Ó*‰Fà—^‘^ˆFä˜FÓ#‰ä	�FœRŸZ™Z¬Ð8Ô	9á�U�]¤n°V·\±\À5Ô&Iô —X‘X˜f¨4°sÔ;‰Fä—Z‘Z Ó'ˆFÜ˜FÓ#‰ô
 # 6°Ô5ˆàÐ˜VŸ\™\¨UÒ2äØØØØØô
ˆô Ø�‰�Q‰˜Ÿ™ a™°¸wô�N€Eˆ7ô & f¨e°WÔ=à�X‰X€Fð
 €}™¬/¸&¿,¹,Ô*GÜ˜6“lˆñ !ó
ñ !�ô ×%Ñ%Øð !&Ø$(Ø*/Ü!#§¡¨'Ó!2öð !ð 	ð 
ô ÑT¤c¨+°~ÈdÕ&SÓTÔTô  )¨Ô8ôá8‘G�A�tô Ô/°°aÓ8ÄNÐSTÓDUÖVØ8ð ó ô
  ¤¤c¨'£lÓ 3Ó4ˆBÜ˜f°¸Ô>ˆBØ˜4‰LØ	ˆ˜6Ÿ<™<×,Ñ,°Ò3Ô8JÔ8LÜ¤R§V¡VÔ,ˆä˜6“lˆô % [Ô1ô
ñ 2‘��4ô Ø×*Ñ*Ó,×;Ñ;¸DÈÐ;ÓNÜœu Q¨¨A©›Ó/Øöð
 2ð 	ò 
ô œE¤# g£,Ó/Ó0ˆÜ˜&¨B°TÔ:ˆØ�tˆä
ˆ7ƒ|�qÒàˆä+Ø�w Ð&¸ôð ùòCùòùòV
ùóùó
s    ÄU5Ä/A+U:Î>4U?Ð *VÓAV
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{   rA   rF   )r�   rI   rH   ÚpassedÚimplieds        rM   rƒ   rƒ   e  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\   ©r7   rV   c               ó@  — |��„t        |«      }|�4t        |t        j                  «      s|j                  gt        |«      z  }nt        j                  gt        |«      z  }t        «       }t        | j                  «       «      }t        | j                  «       «      }t        |«      D ]J  \  }	}
	 |j                  |
«      }||   }|||	<   t        |«      sŒ.t!        |«      sŒ:|j                  |	«       ŒL |€;|r-t#        t        |«      D �	�cg c]  \  }	}|	|vsŒ|‘Œ c}}	«      }nt#        |«      }nt        |«      }|r§t%        |«      sœ|D ]7  }	t'        ||	   t        |«      |�|nt        j                  d«      «      }|||	<   Œ9 n_t)        t        | j                  «       «      «      }|rt+        |«      n
t-        d«      }|D �cg c]  }t/        j0                  | |   «      ‘Œ }}|rv|D �cg c]k  }t        |t2        «      r|j5                  «       nHt        |t*        «      s%t        |t6        «      r't9        |j                  «      r|j5                  d¬«      n|‘Œm }}t;        |||||¬«      S # t        $ r |j                  |	«       Y �Œãw xY 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__
    rx   r   TrQ   r^   )r'   rB   rC   r7   rt   rA   rŒ   ÚsetÚkeysr…   r�   r‰   Úget_locÚKeyErrorÚaddr   r   r?   r   r   r)   r#   r&   ÚcomÚmaybe_iterable_to_listr   rV   r   r   rN   )rW   rI   rH   r7   rV   rG   ÚmidxsÚ	data_keysÚdata_valuesr™   ÚcolumnÚidxr   rK   r¡   ÚkrJ   s                    rM   Údict_to_mgrr­   w  sq  € ð  ÑÜ˜wÓ'ˆØÐ¤Z°´r·x±xÔ%@à—n‘nÐ%¬¨G«Ñ4‰Fä—f‘f�X¤ G£Ñ,ˆFÜ“ˆÜ  §¡£Ó-ˆ	Ü˜4Ÿ;™;›=Ó)ˆä" 7Ö+‰IˆAˆvðØ×'Ñ'¨Ó/�ð   Ñ$ˆEØˆF�1‰IÜ˜Õ¤D¨¥KØ—	‘	˜!•ð ,ð ˆ=ñ Ü&Ü+4°VÔ+<ÔOÑ+<™x˜q %ÀÈÂ’UÐ+<ÒOó‘ô ' vÓ.‘ä  Ó'ˆEñ Ô)¨%Ô0ã�Ü8Ø˜1‘IÜ˜“JØ"Ð.‘E´B·H±H¸XÓ4Fó�ð
  ��q’	ñ ô '¤t¨D¯I©I«KÓ'8Ó9ˆÙ!%”%˜”+¬=¸Ó+;ˆÙ?CÓD¹t¸!”#×,Ñ,¨T°!©WÕ5¸tˆÐDáñ  ó
ñ �ô ˜a¤Ô0ð —‘”ô
 # 1¤eÔ,Ü& q¬)Ô4Ô9LÈQÏWÉWÔ9Uð —F‘F �FÔ%ð
 ñ	ð ð 	ð 
ô  ˜ ¨%°uÈ$ÔOÐOøôo ò Ø—	‘	˜!”Úðüó Pùò* Eùò

s+   Â0I/ÄJ
ÄJ
ÇJÇ-A0JÉ/JÊJ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   rP   )	r   r'   Ú_fieldsrT   rB   r   Ú_get_names_from_indexr&   rA   )rW   rH   rI   r7   rG   s        rM   Ú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   rE   r=   rq   )rA   r   ry   rB   r   rE   )rW   s    rM   Ú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   rP   .c                óp   — t        | «      rt        | t        «      r| S t        | d¬«      } t	        | «      }|S )NTr;   )r   rB   r   r   r   )ÚvÚress     rM   Úconvertz"_prep_ndarraylike.<locals>.convert  s4   € Ü˜AŒ¤*¨Q´Ô"=ØˆHä˜!¨4Ô0ˆÜ$ QÓ'ˆð ˆ
r\   )rA   rC   rw   rx   rB   rz   r    Únewaxisr   r   rD   rE   r   )r�   rV   rK   r¸   r¶   s        rM   r�   r�   ø  sü   € ô ˆ6ƒ{�aÒô �x‰x˜¤fÔ-Ð-Ü	�FœEÔ	"Ü˜vÓ&ˆØ�3œŸ
™
�?Ñ#Ð#òô �F˜1‘IÔÜ—‘©vÓ6©v¨!™7 1�:¨vÑ6Ó7ˆô �fÓÐô 
�F˜1‘IœrŸz™zÔ	*¨v°a©y¯~©~ÀÒ/Bä—‘©vÓ6©v¨!™7 1�:¨vÑ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   rq   zMust pass 2-d input. shape=)rE   r}   r{   rF   )r�   s    rM   r   r     s\   € ð ‡{�{�aÒØ—‘ §¡¨a¡°!Ð 4Ó5ˆð €Mð 
�‰˜Ò	ÜÐ6°v·|±|°nÐEÓFÐFØ€Mr\   c                ó>  — d }g }g }| D �]Ž  }t        |t        t        f«      rj|�|j                  |«      }t        |t        «      r|j                  |ur|j                  |«      }|j                  |j                  «       |j                  }nút        |t        «      r´|€|j                  d«      }t        |t        t        f«      rt        |«      }nt        |«      }t        |t        «      s4|j                  r(ddlm}  ||«      j                  |«      j                  }n0t#        j$                  ||j                  t&        j(                  ¬«      }t+        |||d¬«      }t-        j.                  ||«       |j                  d «       |j                  |«       �Œ‘ ||fS )NÚOr   )ÚSeries)ÚdefaultFrž   )rB   r   r#   ÚastyperI   rv   Úappendr|   r~   Údictr"   r%   r   r$   ÚhasnansÚpandasr½   r	   Úfast_multigetrC   rŒ   r!   r¥   Úrequire_length_match)rW   rI   r7   ÚoindexÚhomogenizedr>   Úvalr½   s           rM   r@   r@   )  sW  € ð €FØ€Kà€DäˆÜ�cœI¤uÐ-Ô.ØÐ Ø—j‘j Ó'�Ü˜#œyÔ)¨c¯i©i¸uÑ.Dð —k‘k %Ó(�Ø�K‰K˜Ÿ™Ô(Ø—+‘+‰Cä˜#œtÔ$ð �>Ø"Ÿ\™\¨#Ó.�Fä˜e¤m´^Ð%DÔEä% cÓ*‘Cô ˜s›)�Cä! %¬Ô4¸¿ºõ .á  ›+×-Ñ-¨eÓ4×<Ñ<‘Cô ×+Ñ+¨C°·±ÌÏÉÔP�Cä   e°5¸uÔEˆCÜ×$Ñ$ S¨%Ô0Ø�K‰K˜Ôà×Ñ˜3ÖðO ðR ˜ÐÐr\   c                ó^  — t        | «      dk(  rt        d«      S t        «       }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¬«      }|rmt        |«      dkD  rt!        d	«      ‚|rt!        d
«      ‚|j%                  «       }|r*|t        «      k7  r'd|› dt        |«      › �}	t!        |	«      ‚t        |«      }t'        «      S )zR
    Try to infer an Index from the passed data, raise ValueError on failure.
    r   FTrE   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 )rA   r&   r    rB   r   rÀ   rI   rÁ   r…   r¡   r   ry   r¤   rC   rD   rE   rF   r*   Úpopr'   )
rW   Úraw_lengthsÚindexesÚhave_raw_arraysÚhave_seriesÚ
have_dictsrÈ   rI   Ú
raw_lengthÚmsgs
             rM   r?   r?   ]  s�  € ô
 ˆ4ƒy�A‚~Ü˜QÓÐä“%€KØ,.€Gà€OØ€KØ€JãˆÜ�cœ9Ô%ØˆKØ�N‰N˜3Ÿ9™9Õ%Ü˜œTÔ"ØˆJØ�N‰Nœ4 §¡£
Ó+Õ,Ü˜#Ô¤7¨3°¸Ó#:¸aÒ#?Ø"ˆOØ�O‰OœC ›HÕ%Ü˜œRŸZ™ZÕ(¨S¯X©X¸«\ÜÐKÓLÐLð ñ ™;ÜÐMÓNÐNáÜ˜gÓ&‰Ù	Ü˜g¨EÔ2ˆáÜˆ{Ó˜aÒÜÐDÓEÐEáÜØNóð ð !—_‘_Ó&ˆ
ÙØœS ›ZÒ'à# 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 )zA
    Preemptively (cheaply) reindex arrays with new columns.
    r_   rP   )	ÚequalsÚget_indexerr‰   rC   rw   rx   ÚfillrŒ   rÀ   )	rG   rY   rH   ÚlengthÚ
new_arraysÚindexerr™   r¬   rK   s	            rM   rU   rU   —  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)ru   N)ry   )rm   Úss     rM   ro   z(_get_names_from_index.<locals>.<genexpr>³  s   è ø€ ÐKÁdÀœ  6¨4Ó0¸Ô<Ádùs   ‚r   ru   zUnnamed r=   )r‡   r&   rA   r…   rz   r‰   ry   r#   )rW   Úhas_some_namerI   Úcountr™   rÝ   r’   s          rM   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 rk   )r&   r'   )ÚNÚKrI   rH   s       rM   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)rW   rä   s     rM   Ú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                  «      rM| j                  j
                  �7|€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   rq   )rA   rB   rC   rD   r7   Únamesr'   r‰   rE   r#   r…   ÚtupleÚ_list_to_arraysr   ÚMappingÚ_list_of_dict_to_arraysr   Ú_list_of_series_to_arraysÚ_finalize_columns_and_data)
rW   rH   r7   ru   rG   r™   rK   r¬   rJ   Úcontents
             rM   rT   rT   ÷  s²  € ô$ ˆtŒ9Ü�dœBŸJ™JÔ'Ø�z‰z×ÑÐ+ä& t§z¡z×'7Ñ'7Ó8�Ù18Ó9±¨˜$˜t›*°�Ð9ä�t“9 ’>ô #,¨FÖ"3™˜˜3ØŸ8™8 q›=Ø(+ªA¨q¨D©	˜F 1šIð #4ð ˜w�Ð&Ø”< Ó#Ð#Ð#ä	�Dœ"Ÿ*™*Ô	%¨$¯*©*×*:Ñ*:Ð*Fàˆ?Ü˜DŸJ™J×,Ñ,Ó-ˆGÙ#*Ó+¡7˜a�$�q“' 7ˆÐ+Ø�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   )rB   rê   r	   Úto_object_array_tuplesÚto_object_array)rW   rð   s     rM   rë   rë   0  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Ê   rI   Tr;   )rB   r   r   r(   ry   r&   rA   ÚidrÖ   r   rÀ   r   Útake_ndrC   Úvstack)rW   rH   rJ   Ú	pass_dataÚindexer_cacheÚaligned_valuesrÝ   rI   rÚ   r�   rð   s              rM   rî   rî   ;  sì   € ð €á $ÓQ¡˜1¬
°1´yÄ,Ð6OÕ(P’Q ˆ	ÐQÜ(¨¸Ô?ˆà+-€Mà€NÛˆÜ˜˜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ð ô �i‰i˜Ó'€GØ�GÐÐùò) Rs
   ‡C*£C*c                ó\  — | D �cg c]   }t        |«      t        u r|n
t        |«      ‘Œ" } }|€Xd„ | D «       }t        d„ | D «       «       }t        j                  ||¬«      }t        |«      }t        j                  | |«      }||fS 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rk   )r…   r¡   )rm   rJ   s     rM   ro   z*_list_of_dict_to_arrays.<locals>.<genexpr>v  s   è ø€ Ð,¡t !Œt�A—F‘F“H�~¡tùs   ‚#%c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrk   )rB   rÁ   )rm   Úds     rM   ro   z*_list_of_dict_to_arrays.<locals>.<genexpr>w  s   è ø€ Ð9±D¨q”z !¤T×*±Dùó   ‚rÊ   )ÚtyperÁ   r‡   r	   Úfast_unique_multiple_list_genr'   Údicts_to_arrayr…   )rW   rH   rþ   ÚgenrË   Úpre_colsrð   s          rM   rí   rí   Z  s²   € ñ2 8<Ó<±t°!”�a“œD‘‰A¤d¨1£gÑ-°t€DÐ<à€Ù,¡tÓ,ˆÜÑ9±DÓ9Ó9Ð9ˆÜ×4Ñ4°S¸tÔDˆÜ˜xÓ(ˆô ×$Ñ$ T¨8Ó4ˆð �GÐÐô ×$Ñ$ T¬4°«=Ó9ˆà�GÐÐùò =s   …%B)c                óæ   — t        | j                  «      }	 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   rP   )	r…   r„   Ú_validate_or_indexify_columnsÚAssertionErrorrF   r7   rC   Úobject_Úconvert_object_array)rð   rH   r7   ÚcontentsÚerrs        rM   rï   rï   „  sq   € ô �G—I‘I‹€Hð'Ü/°¸'ÓBˆñ
 �H˜Q‘K×%Ñ%¬¯©Ò3Ü'¨¸Ô>ˆà�WÐÐøô ò 'ä˜‹o 3Ð&ûð'ús   —A Á	A0ÁA+Á+A0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rk   )rB   r…   )rm   Úcols     rM   ro   z0_validate_or_indexify_columns.<locals>.<genexpr>¸  s   è ø€ ð 7
Ù-4 cŒJ�sœD×!©Wùrÿ   z! columns passed, passed data had z columnsr=   z<Length of columns passed for MultiIndex columns is differentr   )r&   rA   rB   r…   Úallr  rF   )rð   rH   Ú
is_mi_listr  s       rM   r  r  š  s  € ð4 €Ü¤ G£Ó-ˆð2 €Nô-   ¬Ó.ò 
´3ñ 7
Ù-4ó7
ó 4
ˆ
ñ œc '›l¬c°'«lÒ:ä Ü�w“<�.Ð AÄ#ÀgÃ,ÀÈxÐXóð ñ ä©Ó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  �rn‰dk7  xs t        ‰t        «      }t	        j
                  | ‰|¬«      } ‰€í| j                  t        j                  d«      k(  r…‰dk7  }t	        j
                  | dd|t        j                  d«      ¬«      } |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_floatrh   FTrd   re   rP   Úiufbrb   rž   ÚmM)rC   r7   rB   r   r	   r†   r   r�   rŽ   rD   r‹   Úpd_arrayr   r   )	rK   Úto_nullablerh   Ú	new_dtypeÚarr_clsÚclsÚcoerce_floatr7   Údtype_backends	         €€€rM   r¸   z%convert_object_array.<locals>.convertç  sr  ø€ Ø”B—H‘H˜S“MÓ!ð (¨7Ñ2ÒX´jÀÌÓ6XˆKÜ×+Ñ+ØØ&Ø*5ôˆCð ˆ}Ø—9‘9¤§¡¨£Ò-à0=ÀÑ0HÐ-Ü×3Ñ3Øð ).Ø,0Ø2KÜ)+¯©°'Ó):ô�Cñ 1°S·Y±YÄ"Ç(Á(È3Ã-Ò5OÜ$/£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\   rl   )rð   r7   r  r  r¸   rK   rG   s    ```   rM   r	  r	  Ñ  s-   ú€ ö,4ñl '.Ó.¡g˜s‰g�c�l g€FÐ.à€Mùò /s   �")
rH   r#   r7   úDtypeObj | Noner8   Úboolr9   r  Úreturnr5   )rW   znp.rec.recarray | np.ndarrayr7   r  rV   r  r   r5   )r7   r  rV   r  r   r5   )r�   ú
np.ndarrayrI   r#   rH   r#   r   ÚNone)rW   rÁ   r7   r  rV   r  r   r5   )
rW   r2   rH   úIndex | NonerI   r#  r7   r  r   z$tuple[list[ArrayLike], Index, Index])r   r  )T)rV   r  r   r!  )r�   r!  r   r!  )rI   r#   r7   r  r   z!tuple[list[ArrayLike], list[Any]])r   r#   )
rG   úlist[ArrayLike]rY   r#   rH   r#  rØ   Úintr   útuple[list[ArrayLike], Index])
rá   r%  râ   r%  rI   r#  rH   r#  r   ztuple[Index, Index]rk   )rH   r#  r7   r  r   r&  )rW   zlist[tuple | list]r   r!  )rW   r…   rH   r#  r   útuple[np.ndarray, Index])rW   z
list[dict]rH   r#  r   r'  )rð   r!  rH   r#  r7   r  r   r&  )rð   zlist[np.ndarray]rH   r#  r   r#   )r  F)
rð   zlist[npt.NDArray[np.object_]]r7   r  r  Ústrr  r  r   r$  )cÚ__doc__Ú
__future__r   Úcollectionsr   Útypingr   r   r  rC   r   Úpandas._configr   Úpandas._libsr	   Úpandas.core.dtypes.astyper
   Úpandas.core.dtypes.castr   r   r   r   Úpandas.core.dtypes.commonr   r   r   r   r   r   Úpandas.core.dtypes.dtypesr   r   Úpandas.core.dtypes.genericr   r   Úpandas.core.dtypes.missingr   Úpandas.corer   r   r¥   Úpandas.core.arraysr   Úpandas.core.arrays.string_r   Úpandas.core.constructionr   r  r   r    r!   Úpandas.core.indexes.apir"   r#   r$   r%   r&   r'   r(   r)   r*   Úpandas.core.internals.blocksr+   r,   r-   r.   Úpandas.core.internals.managersr/   r0   Úcollections.abcr1   r2   Úpandas._typingr3   r4   r5   r6   rN   r[   rš   rƒ   r­   r±   r³   r�   r   r@   r?   rU   r°   r‚   rç   rT   rë   rî   rí   rï   r  r	  rl   r\   rM   Ú<module>r>     sF  ðñõ
 #å ÷ó
 Ý å -å å 4÷ó ÷÷ ÷÷õ ,÷õ .Ý 2÷ó ÷
÷ 
õ 
÷ó ÷ñ
 ÷÷
ó ð "Ø!Øñ8àð8ð
 ð8ð ð8ð ð8ð ó8ðvØ
&ðð ð	ð
 ðð óðLaØ#2ðaØ:>ðaàóaðHYØðYØ$ðYØ/4ðYà	óYð. "ØñUPØ
ðUPð
 ðUPð ðUPð óUPðp"Ø
ð"àð"ð ð"ð ð	"ð
 *ó"ó4	ô#óLð1Øð1Ø.ð1à&ó1óh7ðtØðØ*/ðØ:FðØPSðà"óó6ð$Ø
ðØðØ'ðØ2>ðàóò$#ðD ;?ð6Øð6Ø(7ð6à"ó6órðØ
ðàðð óð>'Ø
ð'àð'ð ó'ðTØðàðð ðð #ó	ð,4Øð4Ø(4ð4à
ó4ðt !Øð	NØ*ðNàðNð ðNð ð	Nð
 ôNr\   