ó
    pÚjj
  ã                   ó   • S r SSKrSSKJr  SSKJr  SSKrSSKJrJ	r	  SSK
JrJrJrJrJrJr  S*S jrSS	S
SSSS.SS	SSSSS./rS r\" \" SS\" SS
\5      S9\" SS\" SS5      S9\" SSSSSS 0/ S!.S9\" S"S#S$S%9/5      rS& rS' rS( rS) rg)+a3  The export writers, asserted against the file read back. A cell's type
and number format are the thing under test and neither is visible in the
code that sets them, so the workbook is reopened and each cell inspected.
The text file is asserted on its raw lines, where quoting and prefixing are
the encoding.é    N)ÚDecimal)ÚBytesIO)ÚBatchRowÚRunState)ÚCOLUMNSÚNOT_IN_DOCUMENTÚ
build_rowsÚpercent_formatÚ	write_csvÚ
write_xlsxc                 ó*   • SU XSSS.U=(       d    / S.$ )NÚscalarÚpercentÚQ1)ÚvalueÚnumberÚunitÚperiod©ÚshapeÚanswerr   Ú
references© )Úprintedr   Úrefss      Ú6/home/mande/repo/quber/tests/playground/test_export.pyÚscalar_responser      s$   € àØØ"¸iÐSWÑXØ—j˜bñ	ð ó    zt1-2-3é   ú6.7Ú
reconciledF)Úref_idÚpageÚtextÚstatusÚnoteÚflaggedzt1-2-4z6.8Ú
unverifiedúcould not readTc                 óf   • [        SSS[        U 5      [        U 5      [        S U  5       5      SU S9$ )NÚjÚdocr   c              3   óJ   #   • U  H  oR                   (       d  M  S v •  M     g7f)é   N)Úerror©Ú.0Úrs     r   Ú	<genexpr>Úrun_state.<locals>.<genexpr>5   s   é € Ð.šd˜§g¥g—1‘1šdùs   ‚#š	#F)Újob_idÚslugÚwantÚtotalÚdoneÚfailedÚrunningÚrows)r   ÚlenÚsum)r<   s    r   Ú	run_stater?   .   s:   € ÜØØØÜ�$‹iÜ�‹YÜÑ.™dÓ.Ó.ØØñ	ð 	r   zcoupon?ú6.7 %)ÚindexÚquestionÚresponser.   zdistributions?ú
$ (10,550)ú-10550é   ú=SUM(A1:A9)?Úunanswerablezn/aÚreasonúnot printedr   é   zwhy?ú529 overloaded)rA   rB   r/   c                  ó"  • [        [        5      n U S   nUR                  S:X  a*  UR                  [	        S5      :X  a  UR
                  (       d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S	L d   eU S
   R                  [        :X  a  U S
   R                  S:X  d   eU S   R                  S:X  a  U S   R                  S:X  d   eg )Nr   r@   r    Ú21zt1-2-3; t1-2-4z6.7; 6.8zreconciled; unverifiedr)   TrF   rJ   rK   rL   Ú )r	   ÚSTATEr   r   r   r   ÚpagesÚ	cited_idsÚ	cell_textr%   r&   Úreviewr   r/   )r<   Úfirsts     r   Ú*test_rows_carry_provenance_and_review_flagrV   N   sù   € Ü”eÓ€DØ�‰G€EØ�=‰=˜GÓ#¨¯©¼À»Ó(FÈ5Ï=Ï=ÐXÐXØ�;‰;˜$ÓÐÐØ�?‰?Ð.Ó.Ð.Ð.Ø�?‰?˜jÓ(Ð(Ð(Ø�<‰<Ð3Ó3Ð3Ð3Ø�:‰:Ð)Ó)Ð)Ð)Ø�<‰<˜4ÒÐÐØ�‰7�?‰?œoÓ-°$°q±'·,±,À-Ó2OÐOÐOØ�‰7�=‰=Ð,Ó,°°a±·±ÀBÓ1FÐFÐFÐ1Fr   c                  ój   • [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   eg )Nr@   ú0.0%z7.84%z0.00%z65%z0%)r
   r   r   r   Ú-test_percent_format_mirrors_printed_precisionrY   \   s;   € Ü˜'Ó" fÓ,Ð,Ð,Ü˜'Ó" gÓ-Ð-Ð-Ü˜%Ó  DÓ(Ð(Ñ(r   c                  óÈ  • [         R                  " [        [        [        5      5      5      R
                  S   n U S    Vs/ s H  oR                  PM     nnU[        :X  d   e[        SS5       Vs/ s H  o0R                  USS9PM     nn[        S U 5       5      (       d   eUS   R                  S:X  d   eUS   R                  S:X  d   eU R                  SS	S9nUR                  [        S
5      :X  d   eUR                  S:X  d   eU R                  S	S	S9nUR                  [        S5      :X  d   eUR                  S:X  d   eU R                  SS	S9R                  b   eU R                  SSS9nUR                  S:X  a  UR                  S:X  d   eU R                  SSS9R                  S:X  d   eU R                  S	SS9R                  S:X  d   eg s  snf s  snf )Nr   r.   rF   é   )ÚrowÚcolumnc              3   ój   #   • U  H)  oR                   S :H  =(       a    UR                  S:H  v •  M+     g7f)ÚsÚ@N)Ú	data_typeÚnumber_format)r1   Úcs     r   r3   Ú&test_xlsx_read_back.<locals>.<genexpr>j   s(   é € ÐNÂgÀ�{‰{˜cÑ!×< a§o¡o¸Ñ&<Ô<Âgùs   ‚13r@   rD   rK   z0.067rX   rE   ÚGeneralé   rG   r_   é   rT   rO   )ÚopenpyxlÚload_workbookr   r   rP   Ú
worksheetsr   r   ÚrangeÚcellÚallr   rb   ra   )Úwsrc   Úheaderr2   r   Úpercent_cellÚnegative_cellÚquestion_cells           r   Útest_xlsx_read_backrs   b   sÚ  € Ü	×	Ò	¤¬
´5Ó(9Ó :Ó	;×	FÑ	FÀqÑ	I€BØ! !šuÓ%šu˜!�gŒg™u€FÐ%Ø”WÓÐÐä16°q¸!´Ó=²¨A�w‰w˜1 QˆwÓ'±€GÐ=ô ÑNÁgÓN×NÑNÐNÐNØ�1‰:×Ñ˜wÓ&Ð&Ð&Ø�1‰:×Ñ˜|Ó+Ð+Ð+à—7‘7˜q¨�7Ð+€LØ×Ñ¤¨Ó!1Ó1Ð1Ð1Ø×%Ñ%¨Ó/Ð/Ð/Ø—G‘G ¨!�GÐ,€MØ×Ñ¤'¨(Ó"3Ó3Ð3Ð3Ø×&Ñ&¨)Ó3Ð3Ð3Ø�7‰7�q ˆ7Ð#×)Ñ)Ñ1Ð1Ð1à—G‘G ¨!�GÐ,€MØ×Ñ .Ó0°]×5LÑ5LÐPSÓ5SÐSÐSà�7‰7�q ˆ7Ð$×*Ñ*¨hÓ6Ð6Ð6Ø�7‰7�q ˆ7Ð$×*Ñ*¨bÓ0Ð0Ñ0ùò- &ùò >s   ÁGÁ2Gc                  óÞ  • [        [        5      n U R                  S5      nUS   SR                  [        5      :X  d   eSUS   ;   d   eSUS   ;   d   eUS   R                  S	5      (       d   e[        [        R                  " U Vs/ s H  o"(       d  M  UPM     sn5      5      n[        S
 U 5       5      (       d   eUS   S   S:X  a  US   S   S:X  d   eUS   S   S:X  d   eg s  snf )Nz
r   Ú,z"6.7 %",6.7%,r.   z"$ (10,550)",-10550,rF   rK   z"'=SUM(A1:A9)?"c              3   óX   #   • U  H   n[        U5      [        [        5      :H  v •  M"     g 7f©N)r=   r   r0   s     r   r3   Ú1test_csv_quoting_and_prefixing.<locals>.<genexpr>Œ   s   é € Ð4ªt¨!Œs�1‹vœœW›Ö%ªtùs   ‚(*é
   rT   rO   rf   rg   rL   )
r   rP   ÚsplitÚjoinr   Ú
startswithÚlistÚcsvÚreaderrm   )r$   ÚlinesÚliner<   s       r   Útest_csv_quoting_and_prefixingr‚   }   s÷   € Ü”UÓ€DØ�J‰J�vÓ€EØ�‰8�s—x‘x¤Ó(Ó(Ð(Ð(ð ˜e A™hÓ&Ð&Ð&Ø! U¨1¡XÓ-Ð-Ð-ð �‰8×ÑÐ2×3Ñ3Ð3Ð3ô ”—
’
©UÓ;ªU T³dŸD©UÑ;Ó<Ó=€DÜÑ4©tÓ4×4Ñ4Ð4Ð4Ø�‰7�2‰;˜(Ó" t¨A¡w¨r¡{°bÓ'8Ð8Ð8Ø�‰7�2‰;Ð*Ó*Ð*Ñ*ùò <s   Â	
C*ÂC*rw   )Ú__doc__r~   Údecimalr   Úior   rh   Úquber.playground.batchr   r   Úquber.playground.exportr   r   r	   r
   r   r   r   ÚREFSr?   rP   rV   rY   rs   r‚   r   r   r   Ú<module>r‰      sé   ðñó Ý Ý ã ç 5ß o× oôð ØØØØØñð ØØØØ Øñð€ò(
ñ 	á�q 9±ÀwÐPUÐW[Ó7\Ñ]Ù�qÐ#3¹oÈlÐ\dÓ>eÑfÙØØ#à'ØØ" MÐ2Ø ñ	ñ		
ñ 	�q 6Ð1AÑBðó	€ò&Gò)ò1ó6+r   