§
    öÛgœ  ã                   óL   — d Z ddlZddlmZmZ edœdej        fd„Zd
d„Zd	„ Z	dS )z
itertools extensions
é    N)ÚcycleÚislice)ÚnextÚreturnc                 óP   — t          | t          d„ |D ¦   «         ¦  «        ¦  «        S )z}
	interlace(i1, i2, ..., in) -> (
		i1-0, i2-0, ..., in-0,
		i1-1, i2-1, ..., in-1,
		.
		.
		.
		i1-n, i2-n, ..., in-n,
	)
	c                 ó,   — g | ]}t          |¦  «        ‘ŒS © )Úiter)Ú.0Úxs     úQ/granary/edev/quantum/lib/python3.11/site-packages/postgresql/python/itertools.pyú
<listcomp>zinterlace.<locals>.<listcomp>   s   € Ð0Ð0Ð0 Q�˜a™œÐ0Ð0Ð0ó    )Úmapr   )r   Úiterss     r   Ú	interlacer   
   s+   € õ 	ˆD•%Ð0Ð0¨%Ð0Ñ0Ô0Ñ1Ô1Ñ2Ô2Ð2r   é   c              #   ó¬   K  — t          | ¦  «        } d}|}||k    r8t          t          | |¦  «        ¦  «        }t          |¦  «        }|V — ||k    °6dS dS )z¯
	Given an iterable, return an iterable producing chunks of the objects
	produced by the given iterable.

	chunks([o1,o2,o3,o4], chunksize = 2) -> [
		[o1,o2],
		[o3,o4],
	]
	r	   N)r
   Úlistr   Úlen)ÚiterableÚ	chunksizeÚlastÚlastsizes       r   Úchunkr      sl   è è € õ �‰NŒN€Ø
€Ø€Ø�9ÒÐÝ	�f�X˜yÑ)Ô)Ñ	*Ô	*€$Ý�‰YŒY€(Ø€*€*€*ð �9ÒÐÐÐÐÐr   c                 ó.   — | D ]} ||¦  «        r|c S ŒdS )zY
	Return the first item in the `iterable` that causes the `selector` to return
	`True`.
	Nr	   )r   Úselectorr   s      r   Úfindr   )   s;   € ð
 ð ð €QØ€Xˆa�[„[ð Ø
€8€8€8ððð r   )r   )
Ú__doc__ÚcollectionsÚ	itertoolsr   r   r   ÚIterabler   r   r   r	   r   r   ú<module>r#      s�   ððð ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #à!ð 3ð 3ð 3 kÔ&:ð 3ð 3ð 3ð 3ðð ð ð ð$ð ð ð ð r   