
    bi                       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
mZ d dlmZ d dlmZ d d	lmZ  ee
d
      Z
dddZdj'                   ee      D  cg c]  } e|    	 c}       ZeD cg c]  }|df c}dgz   ZddgZeD cg c]  \  }}eD ]  }dD ]  }||||f
   c}}}}Zej2                  j5                  de      d        Zd Zd Zd Zd Zyc c} w c c}w c c}}}}w )    )annotations)partialN)compr)concat)computeconfig)	read_text)utils)	filetextssync	schedulerz{"amount": 100, "name": "Alice"}
{"amount": 200, "name": "Bob"}
{"amount": 300, "name": "Charlie"}
{"amount": 400, "name": "Dennis"}
z{"amount": 500, "name": "Alice"}
{"amount": 600, "name": "Bob"}
{"amount": 700, "name": "Charlie"}
{"amount": 800, "name": "Dennis"}
)z.test.accounts.1.jsonz.test.accounts.2.json )Nz10 Basciizutf-8)TFzfmt,bs,encoding,include_pathc                8   | t         j                  vrt        j                  d| z         t         j                  |    }t        j                         D ci c]  \  }}| ||j                  |             }}}t        |d      5  t        d| ||      }t        |      \  }	dj                  |	      t        k(  sJ t        t        t              | |||      }
|r|
j                  d      n|
}t        |      \  }	dj                  |	      t        k(  sJ |rt        |
j                  d	            \  }t        t        t        j                         D cg c]  \  }}|g|j!                  d
      z   c}}            }t#        |      t#        |      k(  sJ t%        ||      D ]  \  }}|j'                  |      rJ  t        d| ||d      }t        | }	dj                  d |	D              t        k(  sJ 	 d d d        y c c}}w c c}}w # 1 sw Y   y xY w)Nz%compress function not provided for %sbmodez.test.accounts.*.json)compression	blocksizeencodingr   )r   r   r   include_pathr      
F)r   r   r   
collectionc              3  .   K   | ]  }|D ]  }|   y w)N ).0blocklines      S/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/bag/tests/test_text.py	<genexpr>z!test_read_text.<locals>.<genexpr>V   s     =u=tt=t=s   )r
   compresspytestskipfilesitemsencoder   r	   r   joinexpectedsortedplucklistr   countlenzipendswith)fmtbsr   r   r#   kvfiles2r   Lopathsexpected_pathspathexpected_pathblockss                   r!   test_read_textr>   .   s   
%.. ;cAB~~c"H:?++-H$!Qa!((8,--HFH	6	$ "J#X
 qzwwqzX%%%5M%
 'AGGAJAqzwwqzX%%%qwwqz*HU!F1aggdm+FGN u:^!4444'*5.'A 4#m}}]3334 #
 Vww===IIIE"J "J I* G)"J "Js,   "HCHH
5AH><H
HHc                    d}| dz  }t        |d      5 }|j                  dj                  ||g             d d d        t        |d      }|d   j	                         }t        |      dk(  sJ y # 1 sw Y   :xY w)	Ns   abcdézdata.txtwb   
F)r   r      )openwriter)   r	   r   r/   )tmp_pathdatafnfresults        r!   $test_read_text_unicode_no_collectionrJ   Y   sy    D	J	B	b$ *1	

D$<()* 	"'AqT\\^Fv;!* *s   #A00A9c            	     p   t        d      D  ci c]	  } | ddd }} t        |      5  t        j                  ddi      5  t	        j
                  t              5  t        dd	      }t        |j                  d
d            }d d d        dk(  sJ d       j                         j                         dk(  sJ d       t	        j
                  t              5  t        ddd      }|j                  d
d      }d d d        t        t               d   }t        |      }t        |      dk(  sJ t        t        |j                                d   }t        |      }t        |      dk(  sJ 	 d d d        d d d        y c c} w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   0xY w# 1 sw Y   y xY w)N   02z.txtzline from {:02}r   zsingle-threadedz*.txt
   )files_per_partitiond   r   )npartitionsz-10 files should be grouped into one partitionzAll 20 lines should be readT)rO   r   )ranger   r   setr$   warnsUserWarningr	   r/   taker.   r   tupler0   )	nfiles3r   lpp_pathsp_unique_pathsb_pathsb_unique_pathss	            r!   test_files_per_partitionr`   e   s   8=b	B12dm..BFB	6	 - ZZ&789 	-k* 4g2>s234 7KKK7779$$&",K.KK,k* /g2DQFF3AF./ CGnQ'G \N~&",,,C-.q1G \N~&",,,'	-- - C
4 4/ /	- 	-- -sZ   FF,F *FAF "F<A4F 1F,FF FF  F)	%F,,F5c                 2   t        ddid      5  t        j                  t              5  t	        dd      j                          d d d        t	        ddd      } | j                  d	
      } | ddgk(  sJ 	 d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)Nz	.test.foos
   Jos
Alicer   r   r   )r   ignore)r   errorsr   r   zJos
Alice)r   r$   raisesUnicodeDecodeErrorr	   r   )rI   s    r!   test_errorsrg      s    	K!23#	> ,]]-. 	?kG4<<>	? ;J&1'7++++, ,	? 	?, ,s"   BB1BB
	BBc                    d} t        d| i      5  t        dd      j                         j                         dk(  sJ t        ddd      j                         j                         dk(  sJ t        dd      j                         }|d   d	k(  sJ |d
   j	                  d      sJ t        ddd      j                         }|d   d	k(  sJ |d
   j	                  d      sJ 	 d d d        y # 1 sw Y   y xY w)Nz*abc
def
123
$$$$
dog
cat
fish


$$$$helloz.test.delim.txtz$$$$)linedelimiter   rB   )ri   r   hellor   )r   r	   r.   r   r1   )longstrvalss     r!   test_complex_delimiterro      s   DG	%w/	0 (*&AGGIQQSWXXXX'vKUWWY	

 *&AIIKBx7"""Aw'''*&ANVVXBx7"""Aw'''( ( (s   CC//C8) 
__future__r   	functoolsr   r$   fsspec.compressionr   tlzr   daskr   r   dask.bag.textr	   
dask.bytesr
   
dask.utilsr   r&   r)   r+   r*   fmt_bs	encodingsfmt_bs_enc_pathmarkparametrizer>   rJ   r`   rg   ro   )r5   r2   r3   r   r   s   00000r!   <module>r}      s(   "   $    #   
'V
,
	.	.	  77fUm4E!H45!&	'#3+	'>*:	:g	  R 	%	 	 	"h%%% 7I'J J'JT	-6,(S 5	's   C"2C'C,
