a
    aºDfD  ã                   @   s<  d dl Zd dlmZmZmZmZ d dlZd dl	m
Z
 ddlmZmZmZmZ edœdd„Zej jdœd	d
„Zd0eeeeeef  eej j edœdd„Zd1eeeej j edœdd„Zddœeeeeej j eejdœdd„Zddœeeeeej j eejdœdd„Zd2eeee eej j edœdd„Zd3eee eej j edœdd„Zd4eeee ejf eej j ejd œd!d"„Zddejdfeee eeeef  e
eej j ed#œd$d%„Zd5ee eej j ed&œd'd(„Z d6eeeeef  eeeee ejf  eej j ejd*œd+d,„Z d7ejeej j ejd-œd.d/„Z!dS )8é    N)ÚAnyÚOptionalÚSequenceÚUnion)Ú	DTypeLikeé   )ÚFloatNumTypeÚ
IntNumTypeÚNumTypeÚSizeType)Úreturnc                   C   s   t  dd¡S )Nr   l   ÿÿ )Ú	py_randomÚrandint© r   r   úh/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/albumentations/random_utils.pyÚget_random_seed
   s    r   c                   C   s   t j tƒ ¡S ©N)ÚnpÚrandomÚRandomStater   r   r   r   r   Úget_random_state   s    r   ç        ç      ð?)ÚlowÚhighÚsizeÚrandom_stater   c                 C   s   |d u rt ƒ }| | ||¡S r   )r   Úuniform)r   r   r   r   r   r   r   r      s    r   ç      à?)ÚalphaÚbetar   r   c                 C   s   |d u rt ƒ }| | |¡S r   )r   r    )r   r    r   r   r   r   r       s    r    )r   )Úd0Úd1Úmorer   Úkwargsr   c                O   s(   |d u rt ƒ }|j| |g|¢R i |¤ŽS r   )r   Úrand©r!   r"   r   r#   r$   r   r   r   r%   '   s    r%   c                O   s(   |d u rt ƒ }|j| |g|¢R i |¤ŽS r   )r   Úrandnr&   r   r   r   r'   3   s    r'   )ÚlocÚscaler   r   r   c                 C   s   |d u rt ƒ }| | ||¡S r   )r   Únormal)r(   r)   r   r   r   r   r   r*   ?   s    r*   )Úlamr   r   r   c                 C   s   |d u rt ƒ }| | |¡S r   )r   Úpoisson)r+   r   r   r   r   r   r,   J   s    r,   )Úxr   r   c                 C   s   |d u rt ƒ }| | ¡S r   )r   Úpermutation)r-   r   r   r   r   r.   T   s    r.   )r   r   r   Údtyper   r   c                 C   s   |d u rt ƒ }| | |||¡S r   )r   r   )r   r   r   r/   r   r   r   r   r   ]   s    r   )r   r   r   c                 C   s   |d u rt ƒ }| | ¡S r   )r   r   )r   r   r   r   r   r   i   s    r   T)Úar   ÚreplaceÚpr   r   c                 C   s   |d u rt ƒ }| | |||¡S r   )r   Úchoice)r0   r   r1   r2   r   r   r   r   r3   o   s    r3   )r0   r   r   c                 C   s   |du rt ƒ }| | ¡ | S )a•  Shuffles an array in-place, using a specified random state or creating a new one if not provided.

    Args:
        a (np.ndarray): The array to be shuffled.
        random_state (Optional[np.random.RandomState], optional): The random state used for shuffling. Defaults to None.

    Returns:
        np.ndarray: The shuffled array (note: the shuffle is in-place, so the original array is modified).
    N)r   Úshuffle)r0   r   r   r   r   r4   {   s    
r4   )r   r   NN)r   r   N)r   r   NN)r   NN)N)NN)NTNN)N)"r   r   Útypingr   r   r   r   Únumpyr   Znumpy.typingr   Z
core.typesr   r	   r
   r   Úintr   r   r   r   r    Zndarrayr%   r'   r*   r,   Úfloatr.   Úint32r   Úboolr3   r4   r   r   r   r   Ú<module>   sÊ       ü
û   ý
üü
úü
ú    ü
û   ý
ü þ
ýû
ú     û
ú þ
ý