
    bi&                        d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
 d Zd Zd Zej                  j                  dd      d	        Zd
 Zy)    )annotationsN)infer_storage_options
read_blockseek_delimiterstringify_pathc                    d} | j                  g d      }t        j                  |      }t        |dd      dk(  sJ t        |ddd      dk(  sJ t        |ddd      dk(  sJ t        |dd	d      dk(  sJ t        |dd
d      dk(  sJ t        |ddd      dk(  sJ t        |ddd      dk(  sJ t        |ddd      dk(  sJ t        |dd
d      dk(  sJ t        |ddd      dk(  sJ g dg dfD ]B  }|D cg c]  \  }}t        |||d       }}}dj                  t	        d |            |k(  rBJ  y c c}}w )N   
)s   123s   456s   789      s   23r   )	delimiters   123
      s   123
456
      123
456
789d       s   456
s   456
789))r   r   )r   r   )   r   )	   r   ))r      )r   r   )r   r   )joinioBytesIOr   filter)r   datafolsolouts          \/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/bytes/tests/test_bytes_utils.pytest_read_blockr!      sv   I>>23D


4AaA%'''aA/8;;;aA/8;;;aA/8;;;aA/=@@@aA/3CCCCaC515EEEEaA/3666aA/8;;;aA/;>>>02JK 369:daz!Q5)::xxtS)*d2223:s   D?c                    t        j                  d      } t        | dd       | j                         dk(  sJ dD ]6  }| j	                  d       t        | d|       | j                         dk(  r6J  t        j                  d	      } d
D ]6  }| j	                  d       t        | d|       | j                         dk(  r6J  t        j                  d      } | j	                  d       t        | dd       | j                         dk(  sJ y )Nr   r	   r   r   )r
   r   r   r
   )	blocksizer   s   123abc456abc789)r
   r   r   r   r   r   
   s   abcr   s   123
456   )r   r   r   tellseek)r   bss     r    test_seek_delimiter_endliner)   %   s    


#$A 1eQ668q==  	q	q%2.vvx1}} 	

%&A$ 	q	q&B/vvx1}} 	

;AFF1I1eQ668q==r   c                 L   t        d      } | j                  d      dk(  sJ | j                  d      dk(  sJ | rJ t        d      d   dk(  sJ t        d      d   dk(  sJ t        d      } | j                  d      dk(  sJ | j                  d      dk(  sJ | rJ t        d      d   dk(  sJ t        d	      d   d	k(  sJ t        d
      d   d
k(  sJ t        d      d   dk(  sJ t        dddi      } | j                  d      dk(  sJ | j                  d      dk(  sJ | j                  d      dk(  sJ | j                  d      dk(  sJ | j                  d      dk(  sJ | j                  d      dk(  sJ | j                  d      dk(  sJ | j                  d      dk(  sJ | j                  d      dk(  sJ | rJ t        d      } | j                  d      dk(  sJ | j                  d      dk(  sJ d }t        |      d!|d"k(  sJ d#D ]  }t        d$|z        }|d   d%k(  rJ  t        j                  t              5  t        d&dd'i       d d d        t        j                  t              5  t        d(dd'i       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w))Nz/mnt/datasets/test.csvprotocolfilepathz
./test.csvz../test.csvzC:\test.csvzd:\test.csvz	\test.csvz
.\test.csvztest.csvz<hdfs://username:pwd@Node:123/mnt/datasets/test.csv?q=1#fragmextravalue)inherit_storage_optionshdfsusernamepasswordpwdhostNodeport{   z/mnt/datasets/test.csv#fragm	url_queryzq=1url_fragmentfragmz4hdfs://User-name@Node-name.com/mnt/datasets/test.csvz	User-namezNode-name.comzhttp://127.0.0.1:8080/test.csvhttp)r+   r-   )s3gcsgsz%s://Bucket-name.com/test.csvzBucket-name.com/test.csvzfile:///bucket/file.csvcollidezhdfs:///bucket/file.csv)r   poppytestraisesKeyError)sour+   optionss       r    test_infer_storage_optionsrH   @   s   	7	8B66*'''66&>5555M6 .v6,FFF /7=HHH	~	.B66*'''66&>^+++M6 08NJJJ .v6,FFF /7=HHH ,V4
BBB	F!(' 2
B 66*'''66*+++66*&&&66&>V###66&>S   66&>;;;;66+%'''66.!W,,,66'?g%%%M6	U	VB66*,,,66&>_,,,(A #FA'FFFF ( ='(G((RSv"<<<<= 
x	  N7&)9LMN	x	  R7*i9PQR RN NR Rs   J6JJJ#zurlpath, expected_path))
c:\foo\barrI   )C:\\foo\barrJ   )
c:/foo/barrK   )zfile:///c|\foo\barrI   )zfile:///C|/foo/bar
C:/foo/bar)zfile:///C:/foo/barrL   c                B    t        |       }|d   dk(  sJ |d   |k(  sJ y )Nr+   r,   r-   )r   )urlpathexpected_pathrE   s      r    test_infer_storage_options_crP   w   s2     
w	'Bj>V###f:&&&r   c                     t         j                  j                  ddd      } t        j                  |       }t        |      | k(  sJ  G d d      } ||       }t        |      | k(  sJ d}t        |      |u sJ y )Nr-   tozfile.txtc                      e Zd ZdZd Zd Zy))test_stringify_path.<locals>.CustomFSPathz%For testing fspath on unknown objectsc                    || _         y Nr-   )selfr-   s     r    __init__z2test_stringify_path.<locals>.CustomFSPath.__init__   s	    DIr   c                    | j                   S rV   rW   )rX   s    r    
__fspath__z4test_stringify_path.<locals>.CustomFSPath.__fspath__   s    99r   N)__name__
__module____qualname____doc__rY   r[    r   r    CustomFSPathrT      s    3		r   ra   )r
   r   r   )osr-   r   pathlibPathr   )test_filepathr-   ra   s      r    test_stringify_pathrf      s~    GGLLz:M <<&D$=000  &D$=000 D$4'''r   )
__future__r   r   rb   rc   rB   fsspec.utilsr   r   r   r   r!   r)   rH   markparametrizerP   rf   r`   r   r    <module>rk      s_    " 	 	   3*64Rn 
'
'(r   