o
    Œõ±j…  ã                   @   s’   d Z ddlZddlZddlmZ ddgiZg d¢Zdedœd	d
„Zddedœdd„Z	ddefdd„Z
defdd„Zdefdd„Zdefdd„ZdS )z#
Thin wrappers around `itertools`.
é    Né   )Útqdmzgithub.com/Ú	casperdcl)ÚchainÚproductÚpermutationsÚcombinationsÚcombinations_with_replacementÚbatched)ÚtotalÚ
tqdm_classc              	   O   sL   | du rz	t tt|ƒƒ} W n ttfy   Y nw |tj|Ž fd| i|¤ŽS )z Equivalent of `itertools.chain`.Nr   )ÚsumÚmapÚlenÚ	TypeErrorÚAttributeErrorÚ	itertoolsr   )r   r   Ú	iterablesÚkwargs© r   ú‰/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/tqdm/contrib/itertools.pyr      s   ÿr   é   )Úrepeatr   r   c              	   o   sl   � |du r!z	t tt|ƒƒ}W n ttfy   Y nw t |¡|  }|tj|d| iŽfd|i|¤ŽE dH  dS )z"Equivalent of `itertools.product`.Nr   r   )	Úlistr   r   r   r   ÚmathÚprodr   r   )r   r   r   r   r   Úlensr   r   r   r      s   €ÿ*r   c              	   K   sr   |du r+zt | ƒ}W n ttfy   Y nw |du r|n|}||kr%d}nt ||¡}|t | |¡fd|i|¤ŽS )z'Equivalent of `itertools.permutations`.Nr   r   )r   r   r   r   Úpermr   r   ©ÚiterableÚrr   r   r   Únr   r   r   r   $   s   ÿr   c              	   K   sb   |du r#zt | ƒ}W n ttfy   Y nw ||krd}nt ||¡}|t | |¡fd|i|¤ŽS )z'Equivalent of `itertools.combinations`.Nr   r   )r   r   r   r   Úcombr   r   r   r   r   r   r   4   s   ÿr   c              	   K   sŽ   |du r9zt | ƒ}W n ttfy   Y n$w d}t|| d |d dƒD ]}||9 }q$td|d ƒD ]}|| }q2|t | |¡fd|i|¤ŽS )z8Equivalent of `itertools.combinations_with_replacement`.Nr   éÿÿÿÿr   )r   r   r   Úranger   r	   )r   r    r   r   r   r!   Úir   r   r   r	   C   s   ÿ

r	   c              	   K   sb   |du rzt | ƒ}W n ttfy   Y nw |t | |¡f||dur*|| d | nddœ|¤ŽS )z"Equivalent of `itertools.batched`.Nr   )Ú
unit_scaler   )r   r   r   r   r
   )r   r!   r   r   r   r   r   r   r
   S   s   ÿÿþr
   )Ú__doc__r   r   Úautor   Ú	tqdm_autoÚ
__author__Ú__all__r   r   r   r   r	   r
   r   r   r   r   Ú<module>   s    

