
    >ie                       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                    d  ee          D                       Zd eD             dgz   ZddgZd eD             Zej                            de          d             Zd Zd Zd Zd ZdS )    )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 c                (    g | ]}t           |         S  )files).0vs     8lib/python3.11/site-packages/dask/bag/tests/test_text.py
<listcomp>r   !   s    444E!H444    c                    g | ]}|d fS Nr   )r   fmts     r   r   r   #   s    	'	'	'#3+	'	'	'r   )Nz10 Basciizutf-8c                >    g | ]\  }}t           D ]}d D ]}||||f	S ))TF)	encodings)r   r   bsencodinginclude_paths        r   r   r   &   sc       R  	%	  	 	"h%    r   zfmt,bs,encoding,include_pathc                t   | t           j        vrt          j        d| z             t           j        |          fdt                                          D             }t          |d          5  t          d| |          }t          |          \  }d	                    |          t          k    sJ t          t          t                    | ||          }|r|                    d	          n|}t          |          \  }d	                    |          t          k    sJ |rt          |                    d
                    \  }t          t          d t                                          D                                 }	t          |          t          |	          k    sJ t!          ||	          D ]\  }
}|
                    |          sJ t          d| |d          }t          | }d	                    d |D                       t          k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nz%compress function not provided for %sc                T    i | ]$\  }}| |                                         %S r   )encode)r   kr   compressr   s      r   
<dictcomp>z"test_read_text.<locals>.<dictcomp>3   s5    HHH$!Qa!((8,,--HHHr   bmodez.test.accounts.*.json)compression	blocksizer   r   )r*   r+   r   r    r      c                F    g | ]\  }}|g|                     d           z  S )
)count)r   r$   r   s      r   r   z"test_read_text.<locals>.<listcomp>H   s-    FFF1aggdmm+FFFr   F)r*   r+   r   
collectionc              3  $   K   | ]}|D ]}|V  d S r   r   )r   blocklines      r   	<genexpr>z!test_read_text.<locals>.<genexpr>V   s/      ==u==tt=======r   )r
   r%   pytestskipr   itemsr   r	   r   joinexpectedsortedplucklistr   lenzipendswith)r   r   r   r    files2r'   Lopathsexpected_pathspathexpected_pathblocksr%   s     `          @r   test_read_textrH   .   s   
%.  ;cABBB~c"HHHHHH%++--HHHF	6	$	$	$ "J "J#X
 
 
 qzzwwqzzX%%%%5MM%
 
 
 '-AGGAJJJAqzzwwqzzX%%%% 	4qwwqzz**HU!FFFFFGG N u::^!4!44444'*5.'A'A 4 4#m}}]333333#
 
 
 Vww=======IIIIIE"J "J "J "J "J "J "J "J "J "J "J "J "J "J "J "J "J "Js   1F.H--H14H1c                8   d}| dz  }t          |d          5 }|                    d                    ||g                     d d d            n# 1 swxY w Y   t          |d          }|d                                         }t          |          dk    sJ d S )	Ns   abcdézdata.txtwb   
F)r0   r      )openwriter8   r	   r   r=   )tmp_pathdatafnfresults        r   $test_read_text_unicode_no_collectionrT   Y   s    D	J	B	b$ *1	

D$<(()))* * * * * * * * * * * * * * * 	"'''AqT\\^^Fv;;!s   +AAAc            	        d t          d          D             } t          |           5  t          j        ddi          5  t	          j        t                    5  t          dd          }t          |	                    dd	
                    }d d d            n# 1 swxY w Y   |dk    s
J d            |
                                                                dk    s
J d            t	          j        t                    5  t          ddd          }|	                    dd	
          }d d d            n# 1 swxY w Y   t          t          |           d	         }t          |          }t          |          dk    sJ t          t          |                                           d	         }t          |          }t          |          dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                    i | ]	}|d dd
S )02z.txtzline from {:02}r   )r   ns     r   r&   z,test_files_per_partition.<locals>.<dictcomp>f   s#    BBB1mmmm.BBBr      r   zsingle-threadedz*.txt
   )files_per_partitiond   r,   )npartitionsz-10 files should be grouped into one partitionzAll 20 lines should be readT)r[   r    )ranger   r   setr5   warnsUserWarningr	   r=   taker/   r   tupler>   )files3r'   lpp_pathsp_unique_pathsb_pathsb_unique_pathss           r   test_files_per_partitionrk   e   s   BBb		BBBF	6		 - - Z&7899 	- 	-k** 4 4g2>>>s22334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 777K7777799$$&&",,,.K,,,k** / /g2DQQQFF3AF../ / / / / / / / / / / / / / / CGnnQ'G \\N~&&",,,,C-..q1G \\N~&&",,,,,'	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-- - - - - - - - - - - - - - - - - -s   G< G$6BG$B  G$#B $A G$*D:.G$:D>>G$D>BG$G<$G(	(G<+G(	,G<<H H c                 l   t          ddid          5  t          j        t                    5  t	          dd                                           d d d            n# 1 swxY w Y   t	          ddd          } |                     d	
          } | ddgk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nz	.test.foos
   Jos
Alicer'   r(   r   )r   ignore)r   errorsr   r   zJos
Alice)r   r5   raisesUnicodeDecodeErrorr	   r   )rS   s    r   test_errorsrr      sF   	K!23#	>	>	> , ,]-.. 	? 	?kG444<<>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? ;JJJ&11'7++++++, , , , , , , , , , , , , , , , , ,s4   B)$AB)A"	"B)%A"	&5B))B-0B-c                    d} t          d| i          5  t          dd                                                                          dk    sJ t          ddd                                                                          dk    sJ t          dd                                          }|d         d	k    sJ |d
                             d          sJ t          ddd                                          }|d         d	k    sJ |d
                             d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nz*abc
def
123
$$$$
dog
cat
fish


$$$$helloz.test.delim.txtz$$$$)linedelimiter   rL   )rt   r+   hellor   )r   r	   r/   r   r?   )longstrvalss     r   test_complex_delimiterrz      s   DG	%w/	0	0 ( (*&AAAGGIIQQSSWXXXXX'vKKKUWWWYY   
 *&AAAIIKKBx7""""Aw'''''*&ANNNVVXXBx7""""Aw''''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   DD77D;>D;) 
__future__r   	functoolsr   r5   fsspec.compressionr   tlzr   daskr   r   dask.bag.textr	   
dask.bytesr
   
dask.utilsr   r   r8   r:   r9   fmt_bsr   fmt_bs_enc_pathmarkparametrizerH   rT   rk   rr   rz   r   r   r   <module>r      s   " " " " " "        $ $ $ $ $ $                       # # # # # #                  
''V
,
,
,
	.	.	 	  7744ffUmm44455	'	'	'	'	'>*:	:g	    7II'J 'J JI'JT	 	 	- - -6, , ,( ( ( ( (r   