ó
    Ñ]j9*  ã                  ó  • S r SSKJr  SSKJrJrJrJr  SSKr	SSK
r
SSKJrJrJr  SSKrSSKJr  SSKJr  SSKJr  SS	KJrJrJrJr  SS
KJr  SSKJ r   SSK!J"r"  \(       a  SSKJ#r#J$r$J%r%J&r&J'r'J(r(J)r)  SSK*J+r+  Sr, " S S5      r-g)z3
Module for formatting output data into CSV files.
é    )Úannotations)ÚHashableÚIterableÚIteratorÚSequenceN)ÚTYPE_CHECKINGÚAnyÚcast)Úwriters)ÚSequenceNotStr)Úcache_readonly)ÚABCDatetimeIndexÚABCIndexÚABCMultiIndexÚABCPeriodIndex)Únotna)ÚIndex)Ú
get_handle)ÚCompressionOptionsÚFilePathÚFloatFormatTypeÚ
IndexLabelÚStorageOptionsÚWriteBufferÚnpt)ÚDataFrameFormatteri † c                  ó"  • \ rS rSr% S\S'                   S!                                   S"S jjr\S#S j5       r\S$S j5       r\S#S j5       r	\S%S	 j5       r
\S&S
 j5       rS'S jrS(S jrS(S jrS(S jrS)S jr\S&S j5       r    S*S jrS+S jr\S,S j5       r\S-S j5       r\S.S j5       r\S&S j5       r\S&S j5       r\S/S j5       r\S0S j5       rS1S jrS1S jrS1S jrS2S jrS1S jr S3S jr!S r"g)4ÚCSVFormatteré8   únpt.NDArray[np.object_]ÚcolsNc                óê  • Xl         U R                   R                  U l        X l        Xpl        X�l        X`l        UU l        X0l        U R                  U5      U l
        X€l        U
=(       d    [        R                  U l        Xðl        UU l        U R#                  U5      U l        U=(       d    [&        R(                  U l        Xàl        U R/                  U5      U l        U R3                  U5      U l        g ©N)ÚfmtÚframeÚobjÚfilepath_or_bufferÚencodingÚcompressionÚmodeÚstorage_optionsÚsepÚ_initialize_index_labelÚindex_labelÚerrorsÚcsvlibÚQUOTE_MINIMALÚquotingÚdoublequoteÚ
escapecharÚ_initialize_quotecharÚ	quotecharÚosÚlinesepÚlineterminatorÚdate_formatÚ_initialize_columnsr!   Ú_initialize_chunksizeÚ	chunksize)ÚselfÚ	formatterÚpath_or_bufr,   r!   r.   r*   r(   r/   r)   r2   r9   r=   r6   r:   r3   r4   r+   s                     ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/io/formats/csvs.pyÚ__init__ÚCSVFormatter.__init__;   s¿   € ð( Œà—8‘8—>‘>ˆŒà"-ÔØ ŒØ/:ÔØŒ	Ø.ˆÔàŒØ×7Ñ7¸ÓDˆÔØŒØ×6¤&×"6Ñ"6ˆŒØ&ÔØ$ˆŒØ×3Ñ3°IÓ>ˆŒØ,×:´·
±
ˆÔØ&ÔØ×,Ñ,¨TÓ2ˆŒ	Ø×3Ñ3°IÓ>ˆ�ó    c                ó.   • U R                   R                  $ r#   )r$   Úna_rep©r>   s    rA   rF   ÚCSVFormatter.na_repe   ó   € à�x‰x�‰ÐrD   c                ó.   • U R                   R                  $ r#   )r$   Úfloat_formatrG   s    rA   rK   ÚCSVFormatter.float_formati   s   € à�x‰x×$Ñ$Ð$rD   c                ó.   • U R                   R                  $ r#   )r$   ÚdecimalrG   s    rA   rN   ÚCSVFormatter.decimalm   s   € à�x‰x×ÑÐrD   c                ó.   • U R                   R                  $ r#   )r$   ÚheaderrG   s    rA   rQ   ÚCSVFormatter.headerq   rI   rD   c                ó.   • U R                   R                  $ r#   )r$   ÚindexrG   s    rA   rT   ÚCSVFormatter.indexu   s   € à�x‰x�~‰~ÐrD   c                óš   • USLaE  Uc  U R                  5       $ [        U[        [        [        R
                  [        45      (       d  U/$ U$ )NF)Ú_get_index_label_from_objÚ
isinstanceÚlistÚtupleÚnpÚndarrayr   ©r>   r.   s     rA   r-   Ú$CSVFormatter._initialize_index_labely   sG   € Ø˜eÒ#ØÑ"Ø×5Ñ5Ó7Ð7Ü ¬d´E¼2¿:¹:ÄxÐ-P×QÑQà#�}Ð$ØÐrD   c                ó”   • [        U R                  R                  [        5      (       a  U R	                  5       $ U R                  5       $ r#   )rX   r&   rT   r   Ú_get_index_label_multiindexÚ_get_index_label_flatrG   s    rA   rW   Ú&CSVFormatter._get_index_label_from_obj‚   s5   € Ü�d—h‘h—n‘n¤m×4Ñ4Ø×3Ñ3Ó5Ð5à×-Ñ-Ó/Ð/rD   c                ó~   • U R                   R                  R                   Vs/ s H  o=(       d    SPM     sn$ s  snf ©NÚ )r&   rT   Únames)r>   Únames     rA   r`   Ú(CSVFormatter._get_index_label_multiindexˆ   s.   € Ø'+§x¡x§~¡~×';Ò';Ó<Ò';˜t—
˜’
Ñ';Ñ<Ð<ùÒ<s   £:c                óT   • U R                   R                  R                  nUc  S/$ U/$ rd   )r&   rT   rg   r]   s     rA   ra   Ú"CSVFormatter._get_index_label_flat‹   s)   € Ø—h‘h—n‘n×)Ñ)ˆØ"Ñ*�ˆtÐ=°°Ð=rD   c                ó^   • U R                   [        R                  :w  d  U R                  b  U$ g r#   )r2   r0   Ú
QUOTE_NONEr4   )r>   r6   s     rA   r5   Ú"CSVFormatter._initialize_quotechar�   s&   € Ø�<‰<œ6×,Ñ,Ó,°·±Ñ0KàÐØrD   c                ó\   • [        [        U R                  R                  [        5      5      $ r#   )ÚboolrX   r&   Úcolumnsr   rG   s    rA   Úhas_mi_columnsÚCSVFormatter.has_mi_columns•   s   € ä”J˜tŸx™x×/Ñ/´Ó?Ó@Ð@rD   c                ól  • U R                   (       a  Ub  Sn[        U5      eUb_  [        U[        5      (       a  UR                  " S0 U R
                  D6nO[        U5      nU R                  R                  S S 2U4   U l        U R                  R                  nUR                  " S0 U R
                  D6$ )Nz4cannot specify cols with a MultiIndex on the columns© )
rq   Ú	TypeErrorrX   r   Ú_get_values_for_csvÚ_number_formatrY   r&   Úlocrp   )r>   r!   ÚmsgÚnew_colss       rA   r;   Ú CSVFormatter._initialize_columns™   sš   € ð ××ØÑØL�Ü “nÐ$àÑÜ˜$¤×)Ñ)Ø×/Ò/ÑF°$×2EÑ2EÑF‘ä˜D“z�Ø—x‘x—|‘|¢A t GÑ,ˆDŒHð —8‘8×#Ñ#ˆØ×+Ò+ÑB¨d×.AÑ.AÑBÐBrD   c                óz   • Uc.  [         [        U R                  5      =(       d    S-  =(       d    S$ [        U5      $ ©Né   )Ú_DEFAULT_CHUNKSIZE_CELLSÚlenr!   Úint)r>   r=   s     rA   r<   Ú"CSVFormatter._initialize_chunksize®   s/   € ØÑÜ,´°T·Y±Y³×1DÀ1ÑE×KÈ!ÐKÜ�9‹~ÐrD   c                óv   • U R                   U R                  U R                  U R                  U R                  S.$ )z7Dictionary used for storing number formatting settings.©rF   rK   r:   r2   rN   r„   rG   s    rA   rw   ÚCSVFormatter._number_format³   s5   € ð —k‘kØ ×-Ñ-Ø×+Ñ+Ø—|‘|Ø—|‘|ñ
ð 	
rD   c                óh  • U R                   R                  n[        U[        [        45      (       aV  U R
                  bI  [        U Vs/ s H0  n[        U5      (       a  UR                  U R
                  5      OSPM2     sn5      nU$ [        U[        5      (       a  UR                  5       nU$ s  snf rd   )r&   rT   rX   r   r   r:   r   r   Ústrftimer   Úremove_unused_levels)r>   Ú
data_indexÚxs      rA   r‰   ÚCSVFormatter.data_index¾   s—   € à—X‘X—^‘^ˆ
ä�zÔ$4´nÐ#E×FÑFØ× Ñ Ñ,äÙKUÓVÊ:Àa´°q·±�—‘˜D×,Ñ,Ô-¸rÒAÉ:ÑVóˆJð
 Ðô ˜
¤M×2Ñ2Ø#×8Ñ8Ó:ˆJØÐùò	 Ws   Á7B/c                óT   • U R                   (       a  [        U R                  SS5      $ g)NÚnlevelsr~   r   )rT   Úgetattrr‰   rG   s    rA   r�   ÚCSVFormatter.nlevelsÌ   s   € à�:�:Ü˜4Ÿ?™?¨I°qÓ9Ð9àrD   c                ój   • [        U R                  [        [        [        R
                  [        45      $ r#   )rX   rQ   rZ   rY   r[   r\   r   rG   s    rA   Ú_has_aliasesÚCSVFormatter._has_aliasesÓ   s    € ä˜$Ÿ+™+¬¬t´R·Z±ZÄÐ'JÓKÐKrD   c                óR   • [        U R                  =(       d    U R                  5      $ r#   )ro   r‘   rQ   rG   s    rA   Ú_need_to_save_headerÚ!CSVFormatter._need_to_save_header×   s   € ä�D×%Ñ%×4¨¯©Ó5Ð5rD   c                óˆ  • U R                   (       a‘  [        U R                  [        5      (       a   e[	        U R                  5      [	        U R
                  5      :w  a8  [        S[	        U R
                  5       S[	        U R                  5       S35      eU R                  $ [        [        [           U R
                  5      $ )NzWriting z cols but got z aliases)
r‘   rX   rQ   ro   r€   r!   Ú
ValueErrorr
   r   r   rG   s    rA   Ú
write_colsÚCSVFormatter.write_colsÛ   s‘   € à××Ü! $§+¡+¬t×4Ñ4Ð4Ð4Ü�4—;‘;Ó¤3 t§y¡y£>Ó1Ü Øœs 4§9¡9›~Ð.¨n¼SÀÇÁÓ=MÐ<NÈhÐWóð ð —;‘;Ðô œ¤xÑ0°$·)±)Ó<Ð<rD   c                ó.  • / nU R                   (       aG  U R                  (       a6  [        U R                  [        5      (       d   e[	        U R                  5      nU R
                  (       a  U R                  (       a  U[	        U R                  5      -  nU$ r#   )rT   r.   rX   r   rY   rq   r‘   r˜   )r>   Úencoded_labelss     rA   r›   ÚCSVFormatter.encoded_labelsé   si   € à)+ˆà�:�:˜$×*×*Ü˜d×.Ñ.´×9Ñ9Ð9Ð9Ü! $×"2Ñ"2Ó3ˆNà×"×" d×&7×&7Øœd 4§?¡?Ó3Ñ3ˆNàÐrD   c                ó¶  • [        U R                  U R                  U R                  U R                  U R
                  U R                  S9 n[        R                  " UR                  U R                  U R                  U R                  U R                  U R                  U R                  S9U l        U R!                  5         SSS5        g! , (       d  f       g= f)z
Create the writer & save.
)r(   r/   r)   r+   )r9   Ú	delimiterr2   r3   r4   r6   N)r   r'   r*   r(   r/   r)   r+   r0   ÚwriterÚhandler9   r,   r2   r3   r4   r6   Ú_save)r>   Úhandless     rA   ÚsaveÚCSVFormatter.saveö   s£   € ô
 Ø×#Ñ#Ø�I‰IØ—]‘]Ø—;‘;Ø×(Ñ(Ø ×0Ñ0ò
ð ô !Ÿ-š-Ø—‘Ø#×2Ñ2ØŸ(™(ØŸ™Ø ×,Ñ,ØŸ?™?ØŸ.™.ñˆDŒKð �J‰JŒL÷+
÷ 
ö 
ús   ÁA6C
Ã

Cc                óf   • U R                   (       a  U R                  5         U R                  5         g r#   )r”   Ú_save_headerÚ
_save_bodyrG   s    rA   r¡   ÚCSVFormatter._save  s!   € Ø×$×$Ø×ÑÔØ�‰ÕrD   c                óø   • U R                   (       a  U R                  (       a&  U R                  R                  U R                  5        g U R                  5        H  nU R                  R                  U5        M      g r#   )rq   r‘   rŸ   Úwriterowr›   Ú _generate_multiindex_header_rows)r>   Úrows     rA   r¦   ÚCSVFormatter._save_header  sP   € Ø×"×" d×&7×&7Ø�K‰K× Ñ  ×!4Ñ!4Õ5à×<Ñ<Ö>�Ø—‘×$Ñ$ SÖ)ò ?rD   c              #  óv  #   • U R                   R                  n[        UR                  5       H»  n/ nU R                  (       a�  UR                  UR                  U   5        [        U R                  [        5      (       aD  [        U R                  5      S:”  a+  UR                  S/[        U R                  5      S-
  -  5        UR                  UR                  U5      5        Uv •  M½     U R                  (       a:  [        U R                  5      S1:w  a  U R                  S/[        U5      -  -   v •  g g g 7f)Nr~   re   )r&   rp   Úranger�   rT   Úappendrf   rX   r.   rY   r€   ÚextendÚ_get_level_valuesr›   Úset)r>   rp   ÚiÚcol_lines       rA   r«   Ú-CSVFormatter._generate_multiindex_header_rows  sñ   é € Ø—(‘(×"Ñ"ˆÜ�w—‘Ö'ˆAàˆHØ�z�zà—‘ §¡¨aÑ 0Ô1ä˜d×.Ñ.´×5Ñ5¼#¸d×>NÑ>NÓ:OÐRSÓ:SØ—O‘O R D¬C°×0@Ñ0@Ó,AÀAÑ,EÑ$FÔGà�O‰O˜G×5Ñ5°aÓ8Ô9ØŒNñ (ð  ××¤3 t×':Ñ':Ó#;À¸tÓ#CØ×%Ñ%¨¨¬s°7«|Ñ(;Ñ;Ó;ð $DÐùs   ‚D7D9c                óð   • [        U R                  5      nXR                  -  S-   n[        U5       HA  nX0R                  -  n[	        X@R                  -   U5      nXE:¼  a    g U R                  XE5        MC     g r}   )r€   r‰   r=   r¯   ÚminÚ_save_chunk)r>   ÚnrowsÚchunksr´   Ústart_iÚend_is         rA   r§   ÚCSVFormatter._save_body3  se   € Ü�D—O‘OÓ$ˆØŸ>™>Ñ)¨QÑ.ˆÜ�v–ˆAØŸ.™.Ñ(ˆGÜ˜§.¡.Ñ0°%Ó8ˆEØÓÙØ×Ñ˜WÖ,ò rD   c                óÈ  • [        X5      nU R                  R                  U   nUR                  " S0 U R                  D6n[        UR                  5       5      nU R                  S:w  a)  U R                  U   R                  " S0 U R                  D6O[        R                  " X!-
  5      n[        R                  " UUU R                  U R                  U R                  5        g )Nr   rt   )Úslicer&   Úilocrv   rw   rY   Ú_iter_column_arraysr�   r‰   r[   ÚemptyÚ
libwritersÚwrite_csv_rowsr!   rŸ   )r>   r¼   r½   ÚslicerÚdfÚresÚdataÚixs           rA   r¹   ÚCSVFormatter._save_chunk=  s¸   € ä�wÓ&ˆØ�X‰X�]‰]˜6Ñ"ˆà×$Ò$Ñ; t×':Ñ':Ñ;ˆÜ�C×+Ñ+Ó-Ó.ˆð �|‰|˜qÓ ð �O‰O˜FÑ#×7Ò7ÑN¸$×:MÑ:MÒNä—’˜%™/Ó*ð 	ô
 	×!Ò!ØØØ�L‰LØ�I‰IØ�K‰Kõ	
rD   )r=   r!   r)   r:   r3   r(   r/   r4   r'   r$   r.   r9   r*   r&   r6   r2   r,   r+   rŸ   )re   Ú,NNÚwNÚstrictÚinferNÚ
NÚ"NTNN)$r?   r   r@   z0FilePath | WriteBuffer[str] | WriteBuffer[bytes]r,   Ústrr!   zSequence[Hashable] | Noner.   úIndexLabel | Noner*   rÒ   r(   ú
str | Noner/   rÒ   r)   r   r2   ú
int | Noner9   rÔ   r=   rÕ   r6   rÔ   r:   rÔ   r3   ro   r4   rÔ   r+   zStorageOptions | NoneÚreturnÚNone)rÖ   rÒ   )rÖ   zFloatFormatType | None)rÖ   zbool | SequenceNotStr[str])rÖ   ro   )r.   rÓ   rÖ   r   )rÖ   zSequence[Hashable])r6   rÔ   rÖ   rÔ   )r!   zIterable[Hashable] | NonerÖ   r    )r=   rÕ   rÖ   r�   )rÖ   zdict[str, Any])rÖ   r   )rÖ   r�   )rÖ   zSequenceNotStr[Hashable])rÖ   zlist[Hashable])rÖ   r×   )rÖ   zIterator[list[Hashable]])r¼   r�   r½   r�   rÖ   r×   )#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__rB   ÚpropertyrF   rK   rN   rQ   rT   r-   rW   r`   ra   r5   rq   r;   r<   rw   r   r‰   r�   r‘   r”   r˜   r›   r£   r¡   r¦   r«   r§   r¹   Ú__static_attributes__rt   rD   rA   r   r   8   sQ  ‡ Ø
!Ó!ð
 IKØØ*.Ø)-ØØ#ØØ*1Ø"Ø%)Ø $Ø #Ø"&Ø Ø!%Ø15ð%(?à%ð(?ð Fð(?ð ð	(?ð
 (ð(?ð 'ð(?ð ð(?ð ð(?ð ð(?ð (ð(?ð ð(?ð #ð(?ð ð(?ð ð(?ð  ð(?ð  ð!(?ð" ð#(?ð$ /ð%(?ð& 
õ'(?ðT óó ðð ó%ó ð%ð ó ó ð ð óó ðð óó ðôô0ô=ô>ôð óAó ðAðCØ-ðCà	 ôCô*ð
 ó
ó ð
ð óó ðð óó ðð óLó ðLð ó6ó ð6ð ó=ó ð=ð ó
ó ð
ôô8ô
*ô<ô*-÷
rD   r   ).Ú__doc__Ú
__future__r   Úcollections.abcr   r   r   r   Úcsvr0   r7   Útypingr   r	   r
   Únumpyr[   Úpandas._libsr   rÄ   Úpandas._typingr   Úpandas.util._decoratorsr   Úpandas.core.dtypes.genericr   r   r   r   Úpandas.core.dtypes.missingr   Úpandas.core.indexes.apir   Úpandas.io.commonr   r   r   r   r   r   r   r   Úpandas.io.formats.formatr   r   r   rt   rD   rA   Ú<module>rí      sy   ðñõ #÷ó ó Û 	÷ñ ó å .Ý )Ý 2÷ó õ -å )å 'æ÷÷ ñ õ <ð #Ð ÷X
ò X
rD   