
    Mh)                       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CSVFormatter8   npt.NDArray[np.object_]colsNc                   Xl         U R                   R                  U l        X l        Xpl        Xl        X`l        UU l        X0l        U R                  U5      U l
        Xl        U
=(       d    [        R                  U l        U R                  U5      U l        Xl        UU l        U=(       d    [&        R(                  U l        Xl        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_initialize_quotechar	quotechardoublequote
escapecharoslineseplineterminatordate_format_initialize_columnsr!   _initialize_chunksize	chunksize)self	formatterpath_or_bufr,   r!   r.   r*   r(   r/   r)   r2   r9   r=   r4   r:   r5   r6   r+   s                     H/var/www/html/env/lib/python3.13/site-packages/pandas/io/formats/csvs.py__init__CSVFormatter.__init__;   s    ( 88>>"- /:	.77D6&"6"633I>&$,:

&,,T2	33I>    c                .    U R                   R                  $ r#   )r$   na_repr>   s    rA   rF   CSVFormatter.na_repe       xxrD   c                .    U R                   R                  $ r#   )r$   float_formatrG   s    rA   rK   CSVFormatter.float_formati   s    xx$$$rD   c                .    U R                   R                  $ r#   )r$   decimalrG   s    rA   rN   CSVFormatter.decimalm   s    xx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    xx~~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dE2::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    dhhnnm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.    '+xx~~';';<';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)    hhnn))"*t==rD   c                D    U R                   [        R                  :w  a  U$ g r#   )r2   r0   
QUOTE_NONE)r>   r4   s     rA   r3   "CSVFormatter._initialize_quotechar   s    <<6,,,rD   c                \    [        [        U R                  R                  [        5      5      $ r#   )boolrX   r&   columnsr   rG   s    rA   has_mi_columnsCSVFormatter.has_mi_columns   s    Jtxx//?@@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$2E2EFDzxx||AtG,DH 88##++Bd.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/    ,TYY1D1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     kk --++||||
 	
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    XX^^
z$4n#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??Iq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     $++tRZZ'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;;3tyy>1 s499~.nS=M<Nh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3N""d&7&7d4??33N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   r5   r6   r4   N)r   r'   r*   r(   r/   r)   r+   r0   writerhandler9   r,   r2   r5   r6   r4   _save)r>   handless     rA   saveCSVFormatter.save   s    
 ##II]];;(( 00
  --#22(( ,,??..DK JJL'
 
 
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KK  !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zza 01d..55#d>N>N:ORS:SOORDC0@0@,AA,E$FGOOG55a89N (  3t':':#;t#C%%s7|(;;; $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_body1  se    DOO$>>)Q.vA..(G..0%8EW, rD   c                x   [        X5      nU R                  R                  U   nUR                  " S0 U R                  D6n[        UR                  5       5      nU R                  U   R                  " S0 U R                  D6n[        R                  " UUU R                  U R                  U R                  5        g )Nrt   )slicer&   ilocrv   rw   rY   _iter_column_arraysr   
libwriterswrite_csv_rowsr   r!   r   )r>   r   r   slicerdfresdataixs           rA   r   CSVFormatter._save_chunk;  s    w&XX]]6"$$;t':':;C++-.__V$88O4;N;NO!!LLIIKK	
rD   )r=   r!   r)   r:   r5   r(   r/   r6   r'   r$   r.   r9   r*   r&   r4   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   r4   r   r:   r   r5   ro   r6   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])r4   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   r3   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 = = 
 
4
*<*-
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  - ) '   < # R
 R
rD   