
    >ie&                        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                            dd          d	             Zd
 ZdS )    )annotationsN)infer_storage_options
read_blockseek_delimiterstringify_pathc                    d} |                      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 ]9}fd|D             }d                     t	          d |                    |k    sJ :d S )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   c                :    g | ]\  }}t          ||d           S )r	   )r   ).0olfs      Alib/python3.11/site-packages/dask/bytes/tests/test_bytes_utils.py
<listcomp>z#test_read_block.<locals>.<listcomp>!   s+    :::daz!Q5)):::r   )joinioBytesIOr   filter)r   dataolsoutr   s       @r   test_read_blockr$      s   I>>22233D

4AaA%''''aA///8;;;;aA///8;;;;aA///8;;;;aA///=@@@@aA///3CCCCCaC51115EEEEEaA///36666aA///8;;;;aA///;>>>>0002J2J2JK 3 3::::c:::xxtS))**d222223 3r   c                 l   t          j        d          } t          | dd           |                                 dk    sJ dD ]C}|                     d           t          | d|           |                                 dk    sJ Dt          j        d	          } d
D ]C}|                     d           t          | d|           |                                 dk    sJ Dt          j        d          } |                     d           t          | dd           |                                 dk    sJ d S )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6688q====   	q			q%2....vvxx1}}}}} 	
%&&A$  	q			q&B////vvxx1}}}}} 	
;AFF1III1eQ6688q======r   c                    t          d          } |                     d          dk    s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 |                     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          } |                     d          dk    sJ |                     d          dk    sJ |                     d          dk    sJ |                     d          dk    sJ |                     d          dk    sJ |                     d          dk    sJ |                     d          dk    sJ |                     d          dk    sJ |                     d          dk    sJ | rJ t          d          } |                     d          dk    sJ |                     d          dk    sJ d }t          |          d!|d"k    sJ d#D ]"}t          d$|z            }|d         d%k    sJ #t          j        t                    5  t          d&dd'i           d d d            n# 1 swxY w Y   t          j        t                    5  t          d(dd'i           d d d            d S # 1 swxY w Y   d S ))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.   r0   )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_optionsrK   @   sO   	7	8	8B66*''''66&>>55555MMM ..v6,FFFF //7=HHHH	~	.	.B66*''''66&>>^++++MMM 008NJJJJ ..v6,FFFF //7=HHHH ,,V4
BBBB	F!(' 2
 
 
B 66*''''66*++++66*&&&&66&>>V####66&>>S    66&>>;;;;;66+%''''66.!!W,,,,66'??g%%%%MMM	U	V	VB66*,,,,66&>>_,,,,(A ##FA'F'FFFFF ( = ='(G((RSSv"<<<<<<	x	 	  N N7&)9LMMMN N N N N N N N N N N N N N N	x	 	  R R7*i9PQQQR R R R R R R R R R R R R R R R R Rs$   K;;K?K?L??MMzurlpath, expected_path))
c:\foo\barrL   )C:\\foo\barrM   )
c:/foo/barrN   )zfile:///c|\foo\barrL   )zfile:///C|/foo/bar
C:/foo/bar)zfile:///C:/foo/barrO   c                \    t          |           }|d         dk    sJ |d         |k    sJ d S )Nr.   r/   r0   )r   )urlpathexpected_pathrH   s      r   test_infer_storage_options_crS   w   sA     
w	'	'Bj>V####f:&&&&&&r   c                    t           j                            ddd          } t          j        |           }t          |          | k    sJ  G d d          } ||           }t          |          | k    sJ d}t          |          |u sJ d S )Nr0   tozfile.txtc                      e Zd ZdZd Zd ZdS ))test_stringify_path.<locals>.CustomFSPathz%For testing fspath on unknown objectsc                    || _         d S Nr0   )selfr0   s     r   __init__z2test_stringify_path.<locals>.CustomFSPath.__init__   s    DIIIr   c                    | j         S rY   rZ   )r[   s    r   
__fspath__z4test_stringify_path.<locals>.CustomFSPath.__fspath__   s
    9r   N)__name__
__module____qualname____doc__r\   r^    r   r   CustomFSPathrW      s8        33	 	 		 	 	 	 	r   rd   )r
   r   r   )osr0   r   pathlibPathr   )test_filepathr0   rd   s      r   test_stringify_pathri      s    GLLz::M <&&D$=0000        <&&D$=0000 D$4''''''r   )
__future__r   r   re   rf   rE   fsspec.utilsr   r   r   r   r$   r,   rK   markparametrizerS   ri   rc   r   r   <module>rn      s    " " " " " " 				 				             3 3 3*  64R 4R 4Rn 
 
' '
 
'( ( ( ( (r   