o
    ;Di                     @   s$  d dl mZmZmZ d dlZd dlZd dlmZ d dlZd dl	m
Z
 d dlmZmZ d dlmZmZ d dlmZmZ d dlmZmZ d d	lmZmZ d d
lmZmZ d dlmZ 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dZ'd'ddZ(d(d d!Z)d&d"d#Z*d$Z+d%Z,dS ))    )absolute_importprint_functiondivisionN)import_module)PY3)ieqeq_)fromavrotoavro)fromcsvtocsv)fromjsontojson)fromxlsxtoxlsx)fromxlstoxls)lookc                   C   s   t rtd td d S d S )Nz./tmpz./tmp/example.)r   _ensure_dir_write_read_into_url r   r   R/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/test/io/test_remotes.pytest_helper_local   s   r   c               
   C   N   zdd l } W n ty  } ztd|  W Y d }~d S d }~ww td d S )Nr   zSKIP FSSPEC helper tests: %s
PETL_TEST_)fsspecImportErrorpytestskip_write_read_from_env_matching)r   er   r   r   test_helper_fsspec      r!   c               
   C   r   )Nr   zSKIP SMB helper tests: %sPETL_SMB_URL)	smbclientr   r   r   _write_read_from_env_url)r$   r    r   r   r   test_helper_smb%   r"   r&   c                  C   sd   ddl m}  d}| |\}}}}}}t|d t|d t|d t|d t|d t|d	 d S )
Nr   )_parse_smb_urlz>smb://workgroup;user:password@server:444/share/folder/file.csv	workgroupserveri  userpasswordz\\server\share\folder\file.csv)petl.io.remotesr'   r   )r'   urldomainhostportr*   passwdserver_pathr   r   r   test_helper_smb_url_parse.   s   




r3   c                 C   s   t j| st |  d S d S N)ospathexistsmakedirs)	directoryr   r   r   r   A   s   r   c                 C   s   d}t j D ]+\}}| |  r2d||}t|tjdd t	| tdtjdd |d7 }q|dk rBd}t|tjd d S d S )	Nr   z
  {}: {} ->  fileendDONE    zSKIPPED
    For testing remote source define a environment variable:
    $ export PETL_TEST_<protocol>='<protocol>://myuser:mypassword@host:port/path/to/folder'r<   )
r5   environitemsupper
startswithformatprintsysstderrr   )prefixqvariablebase_urlfmsgmsgr   r   r   r   F   s   r   c                 C   sD   t | d}|dkrtdtjdd d S t| tdtjdd d S )Nr   zSKIPPED r:   r;   r>   )r5   getenvrF   rG   rH   r   )env_var_namerL   r   r   r   r%   V   s
   r%   c                 C   s   t | d t | dd t | dd t | dd t | dd	 t | d
d t | d t | dd t | ddd t | ddd t | ddd d S )Nzfilename10.csvzfilename11.csvgzzfilename12.csvxzzfilename13.csvzstzfilename14.csvlz4zfilename15.csvsnappyzfilename20.jsonzfilename21.jsonzfilename30.avrofastavro)pkgzfilename40.xlsxopenpyxlzfilename50.xlsxlwt)_write_read_file_into_url)rL   r   r   r   r   _   s   

r   c                 C   s   |  d}|d ur-|rd S |d | }dd l}|j|}|d u r-td| tjdd d S td| tjdd |r?| | }|S tj	| |}|S )Nz./.r   
    - %s SKIPPED r:   r;   z

    - %s )
rD   r   utilsinfer_compressionrF   rG   rH   r5   r6   join)rL   filenamecompressionis_localr   codec
source_urlr   r   r   _build_source_url_fromm   s    
re   c                 C   s&  t ||sd S t| ||}|d u rd S d }d|v r#tt| t|}nJd|v r=tt|ddd tt|ddd t|d}n0d|v rMtt|d	 t	|d	}n d
|v r[t
t| t|}nd|v rmtt|ddd t|dd}|d urtdt td| tt| tt| d S td| tjdd d S )Nz.avroz.xlsxtest1	overwrite)modetest2addz.xlstestz.jsonz.csvascii
)encodinglineterminator)rn   z	Expected:zActual:r\   r:   r;   )_is_installedre   r
   _tabler	   r   _table2r   r   r   r   r   r   r   _show__rows_fromr   rF   rG   rH   )rL   r`   ra   rW   rd   actualr   r   r   rZ      s8   







rZ   c                 C   s   t |  t t||d d S )N)limit)rF   r   )label	test_rowsru   r   r   r   rs      s   rs   c              
   C   sx   | d u rdS zt | }|d u}|s|p| }td| tjdd |W S  ty; } zt|tjd W Y d }~dS d }~ww )NTr\   r:   r;   r@   F)r   rF   rG   rH   	Exception)package_namemessagemodfoundrN   exmr   r   r   rp      s   rp   )namefriendsage)Bob4233)Jim1369)Joe8617)Ted2351)r~   )Giannis3112)James388)Stephen284)Jasonr   r   r4   )NN)r   )-
__future__r   r   r   rG   r5   	importlibr   r   petl.compatr   petl.test.helpersr   r   petl.io.avror	   r
   petl.io.csvr   r   petl.io.jsonr   r   petl.io.xlsxr   r   petl.io.xlsr   r   petl.util.visr   r   r!   r&   r3   r   r   r%   r   re   rZ   rs   rp   rq   rr   r   r   r   r   <module>   s6   			


!
