
    ^b$
                     6    d dl mZ d dlZd dlmZ ddZd	dZdS )
    )
accumulateN)prodTc              #     K   ddl }ddlm | j        j        }t          d |D                       }dg|z  |D ]}|j        }|j        j        |j	        k    rM|
                    fd|                                D                       }|                    |j                  }|                                }t          |j        |          D ]
\  }	}
|
|	<   |r| j        j        dk    rt'          | j        |          }nt)          | j        j                  g}|D ]Y}g }|D ]7}t+          ||j	                  r |          }|                    |           8|}|rdg| j        j        z  |z   }|V  Z|r| j        j        V  d | j        D             }| j        j        dk    rt'          | j                  }t3          |          D ],\  }fdt5          |          D             }|r||z   }|V  -dS )	a>  
    Convert a Pandas dataframe into something suitable for passing into a worksheet.
    If index is True then the index will be included, starting one row below the header.
    If header is True then column headers will be included starting one column to the right.
    Formatting should be done by client code.
    r   N)	Timestampc              3   0   K   | ]}|j         d          V  dS )r   N)shape).0bs     8lib/python3.11/site-packages/openpyxl/utils/dataframe.py	<genexpr>z$dataframe_to_rows.<locals>.<genexpr>   s(      ++q
++++++    c                 &    g | ]} |          S  r   )r	   vr   s     r   
<listcomp>z%dataframe_to_rows.<locals>.<listcomp>   s!    !G!G!G1))A,,!G!G!Gr      c              3      K   | ]}|gV  d S )Nr   )r	   r   s     r   r   z$dataframe_to_rows.<locals>.<genexpr>5   s$      &&&&&&&&r   c                 ,    g | ]}|                  S r   r   )r	   jdataidxs     r   r   z%dataframe_to_rows.<locals>.<listcomp>:   s!    222tAws|222r   )numpypandasr   _datablockssumvaluesdtypetype
datetime64arrayravelreshaper   tolistzipmgr_locscolumnsnlevelsexpand_indexlist
isinstanceappendindexnames	enumeraterange)dfr-   headerr   r   ncolsr
   r   resultcol_loccolrowsrownr   expandedr   r   r   s                   @@@r   dataframe_to_rowsr;   	   sv      LLL      X_F++F+++++E6E>D 
  
 7<5++ 	-[[!G!G!G!G!G!G!GHHF^^AG,,F
F33 	  	 LGSDMM	   :! 	-
F33DD*++,D 		 		CA  a!122 %!	!AC 4fRX--3IIII hn&&RX&&&H	x! *))H%%  Q22222U5\\222 	c'C					 r   Fc              #     K   | j         }t          |          dg| j        z  }fdt          |t          j                  D             }d | j        D             }t          |           D ]\\  }}dg| j        z  }t          |          D ]6\  }}	||         }
||
z  rd}	|	||<   |r||                             |	           7|s|V  ]|r	|D ]}|V  dS dS )zv
    Expand axis or column Multiindex
    For columns use header = True
    For axes use header = False (default)
    Nc                     g | ]}|z  S r   r   )r	   sizedepths     r   r   z expand_index.<locals>.<listcomp>J   s    HHHut|HHHr   c                     g | ]}g S r   r   )r	   ls     r   r   z expand_index.<locals>.<listcomp>K   s    (((q(((r   )	levshaper   r(   r   operatormulr.   r/   r,   )r-   r2   r   r8   lengthsr'   r   entrylevelr   lengthr?   s              @r   r)   r)   @   s3      NEKKE&5=
 CHHHH
5(,(G(GHHHG((EK(((G&&  
Ufu}$!%(( 	) 	)HE1U^FV| CJ )%%a((( 	III  	 	CIIII 	 	r   )TT)F)	itertoolsr   rC   openpyxl.compat.productr   r;   r)   r   r   r   <module>rK      sg    !            ( ( ( ( ( (4 4 4 4n     r   