o
    JQ8j                     @   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   ]/home/nk/hobo-godmode/plappi-mvp/.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    

