o
    ;Di,                     @   sJ  d dl mZmZmZ d dlZd dlmZmZ d dlmZ d dl	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 d dlmZmZmZ d dlmZmZmZmZmZm Z m!Z! erhd dlm"Z" z
d dl#Z#d dl$Z$W n e%y Z& zej'de& dd W Y dZ&[&dS dZ&[&ww dd Z(dd Z)dd Z*dd Z+dd Z,dd Z-dd Z.dd  Z/d!d" Z0d#d$ Z1d%d& Z2d'd( Z3d)d* Z4d+d, Z5d-d. Z6d/d0 Z7d1d2 Z8d3d4 Z9d5d6 Z:d7d8 Z;d9d: Z<d;d< Z=d=d> Z>d?d@ Z?dAdB Z@ddCdDZAdEdF ZBddGdHZCddIdJZDddKdLZEddMdNZFddOdPZGddRdSZHddTdUZIddWdXZJdYdZ ZKg d[ZLg d\g d]g d^g d_gZMeLgeM ZNeLgeMd d`  ZOeLgeMd`d  ZPeLd d` gdadb eMD  ZQeLgdcdb eMD  ZRg dddedfedgdhdieIdjdhdkdldmdfdnedodVgdpdqedrdidQeIdsdQdtdkdldmduedvdVgdwdxedydQdteIdzdidQdtdkdld{ed|dgd}d~eddQdeIddhdidQdtdkdeddVggZSeSd d ZTeSd  geSdd  ZUg ddedfedgdhdieIdjdhdkdldmdfdngdpdqedrdidQeIdsdQdtdkdldmdugdwdxedydQdteIdzdidQdtdkdld{gd}d~eddQdeIddhdidQdtdkdggZVg ddddedgdhdigg ddddfedydQdtgdddeddQdggZWddgdg dgdddggdg dgdg dgdg dgdg dgddggZXg dZYg ddeddgedddheIddQdddfdmded|gedggZZg ddeddgedddheIddQdddfdmded|edgedededggZ[eYeZgZ\eYe[gZ]eYeZe[gZ^eYeZd  eZd ggZ_ddgZ`ddb eaddD Zbddb eaddD Zce`geb Zde`gec ZeddgZfddb eaddQD Zgefgeg Zhddddgd`deHddgd`dddgd`dddggZiefgei ZjdS )    )absolute_importprint_functiondivisionN)datetimedate)Decimal)NamedTemporaryFile)PY3)cat)dicts)look)ieq)fromavrotoavro
appendavro)schema0schema1schema2schema3schema4schema5schema6)timezonezSKIP avro tests: %sT)allow_module_levelc                   C      t tt d S N)_read_from_mavro_filetable1r    r   r   O/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/test/io/test_avro.pytest_fromavro11$      r    c                   C   r   r   )r   table2r   r   r   r   r   test_fromavro22'   r!   r#   c                   C   r   r   )r   table3r   r   r   r   r   test_fromavro33*   r!   r%   c                   C   r   r   )_write_to_avro_filer   r   r   r   r   r   test_toavro11-   r!   r'   c                   C   r   r   )r&   r"   r   r   r   r   r   test_toavro220   r!   r(   c                   C   r   r   )r&   r$   r   r   r   r   r   test_toavro333   r!   r)   c                   C      t td  d S r   )r&   r   r   r   r   r   test_toavro106   r!   r+   c                   C      t ttt d S r   )r&   table01r   table10r   r   r   r   test_toavro139      r/   c                   C   r*   r   )r&   r"   r   r   r   r   test_toavro20<   r!   r1   c                   C   r*   r   )r&   r$   r   r   r   r   test_toavro30?   r!   r2   c                   C   r   r   )r&   table4r   r   r   r   r   test_toavro44B   r!   r4   c                   C   r   r   )r&   table5r   r   r   r   r   test_toavro55E   r!   r6   c                   C   r*   r   )r&   r5   r   r   r   r   test_toavro50H   r!   r7   c                   C   r*   r   )r&   table71r   r   r   r   test_toavro70K   r!   r9   c                   C   r*   r   )r&   table8r   r   r   r   test_toavro80N   r!   r;   c                   C   r*   r   )r&   table9r   r   r   r   test_toavro90Q   r!   r=   c                   C      t ttdd d S NF)print_tables)r&   table61r   r   r   r   r   test_toavro61T      rB   c                   C   r>   r?   )r&   table62r   r   r   r   r   test_toavro62W   rC   rE   c                   C   r>   r?   )r&   table63r   r   r   r   r   test_toavro63Z   rC   rG   c                   C   r>   r?   )r&   table60r   r   r   r   r   test_toavro60]   rC   rI   c                   C      t tttt d S r   )_append_to_avro_filetable11table12r   r   r   r   r   r   test_appendavro11`   rC   rN   c                   C   rJ   r   )rK   table21table22r   r"   r   r   r   r   test_appendavro22c   rC   rQ   c                   C   r,   r   )rK   rL   rM   r   r   r   r   r   test_appendavro10f   r0   rR   c               
   C   sx   t t} | d }|D ]}ddg|d< q
ztt|  W n ty7 } zd| }d|v s,J W Y d }~d S d }~ww J d)	Nfieldsnullstringtype%sBobFFailed schema conversion)dictr   _write_temp_avro_filer   
ValueError)nullable_schemaschema_fieldsfieldvexbobr   r   r   test_toavro_troubleshooting10i   s   rb   c               
   C   sf   t t} d | d d< zt| t W n ty. } zd| }d|v s#J W Y d }~d S d }~ww J d)N      rW   JoeFrY   )listr   r[   r   	TypeError)table0texjoer   r   r   test_toavro_troubleshooting11v   s   rk   c                 C   s<   t | | t|| }t|}|d u r| n|}t||| |S r   )_show__expect_rows_create_avro_exampler   _assert_rows_are_equals	test_rowstest_schematest_expectr@   test_filenametest_actualtest_expect2r   r   r   r      s   

r   c                 C   s"   t  }td| t| ||d |S )NzWriting avro file:schema)_get_tempfile_pathprintr   )rp   rq   rs   r   r   r   r[      s   
r[   c                 C   s<   t | | t| |}t|}|d u r| n|}t||| d S r   )rl   r[   r   rn   ro   r   r   r   r&      s
   

r&   c                 C   sf   t | | t || t }t| ||d t|||d t|}|d ur&|}nt| |}t||| d S )Nrv   )rl   rx   r   r   r   r
   rn   )
test_rows1
test_rows2rq   rr   r@   rs   rt   ru   r   r   r   rK      s   


rK   c                 C   s8   |rt d| | }td| t| | t| | d S )NzActual:z	
Schema:
)_show__rows_fromget_avro_schemary   r   )rr   rt   r@   avro_schemar   r   r   rn      s   


rn   c                 C   s   |r
t d| | d S d S )Nz

Expected:)r|   )rp   r@   limitr   r   r   rl      s   rl   c                 C   s   t |  t t||d d S )N)r   )ry   r   )labelrp   r   r   r   r   r|      s   r|      c                 C   s   t tt| |S r   )r   strround)float_valueroundingr   r   r   _decs   rC   r   c                 C   s4   t | ||||||}tr|jtjdS |jtjdS )N)tzinfo)r   r	   replacer   utcpytz)yearmonthdayhourminutesecondmicrosecondur   r   r   _utc   s   r   Fc                 C   s   t | dd}|j}|  |S )Nrdeletemode)r   nameclose)delete_on_closefrs   r   r   r   rx      s   rx   c                 C   sV   t | }t|}tddd}t ||| |jW  d    S 1 s$w   Y  d S )NFwbr   )fastavroparse_schemar   r   writerr   )rq   
test_tableparsed_schemarowsfor   r   r   rm      s   
$rm   )r   friendsage)rX   *   !   )Jim   E   )re   V      )Ted   3      c                 C   s   g | ]}|d d qS )r   r   r   .0itemr   r   r   
<listcomp>   s    r   c                 C   s   g | ]}|d d dg qS )r   r   Nr   r   r   r   r   r      s    )r   r   birthdaydeath	insurancedenypeter   i  
      i           iPF  z1.100mike   i  i  r   ihB  z1.010zack%   i  i  i>  z123.456gene/   i     i  i:  z-1.010rc   )r   r   r   r   )r   r   r   r   rX   r   r   )r   r   r   Nr   r   r   palettecolorsred)r   salmoncrimson	firebrickcoralpinkrosepurple)r   violetfuchsiamagentaindigoorchidlavendergreen)r   limeseagreengrassoliveforesttealblue)r   cyanaqua
aquamarine	turquoiseroyalskynavygold)r   yellowkhakimocassin
papayawhiplemonchiffonblack)array_stringarray_recordnulable_datemulti_union_timearray_bytes_decimalarray_fixed_decimal)abc1z654.321)f1f2i  rd         z987.654z456.789z321.123z456.654colsqrt_pow_ijc                    ,   g | ]   fd dt d d D gqS )c              
      s,   g | ]}t tt|  |  d qS 	   )r   mathsqrtpowr   ijr   r   r   *  s    $<listcomp>.<listcomp>rd   ranger   r   r  r   r   *  
       c                    r   )c                    s4   g | ]}t tttt|  |  d qS r   )r   r   r   r   r   r  r  r  r   r   r   -  s    ,r  rd   r  r	  r   r  r   r   -  r
  number
propertiesc                 C   sr   g | ]5}t |t t|t|t|t||| t|t|t|t||| ||  d gqS ))atansincostansquarer   loglog10exppower_xpower_minus_x)	r   r   r  r  r  r  r   r  r  )r   xr   r   r   r   5  s       )r   r   g    (@)r   budgetr   )r   colorre   
terminator)r   alias)NT)T)Tr   )r   )r   )r   r   r   r   )F)k
__future__r   r   r   r   r   r   decimalr   tempfiler   pytestpetl.compatr	   petl.transform.basicsr
   petl.util.baser   petl.util.visr   petl.test.helpersr   petl.io.avror   r   r   petl.test.io.test_avro_schemasr   r   r   r   r   r   r   r   r   r   ImportErroreskipr    r#   r%   r'   r(   r)   r+   r/   r1   r2   r4   r6   r7   r9   r;   r=   rB   rE   rG   rI   rN   rQ   rR   rb   rk   r   r[   r&   rK   rn   rl   r|   r   r   rx   rm   header1rows1r   rL   rM   r-   r.   r"   rO   rP   r$   r3   r5   header6rows61rows62rA   rD   rF   rH   header7r  rows70rows71table70r8   header8rows8r:   rows9r<   r   r   r   r   <module>   s2  $ 























