U
    ºmœd	  ã                   @   sN  d Z ddlZddlmZmZmZmZmZ eee	f Z
eeef ZddgZdeeeeef edœdd	„ZzBdd
lmZmZmZ eeƒsˆe‚eedƒr¦[[ddlmZmZ W n$ ek
rÌ   ddlmZmZ Y nX deƒ k�re	dƒdd„ fee ee	eegef ee
 dœdd„Zdeƒ k�rJdd„ fee eeegef ee dœdd„ZdS )zl
Interface for natsort to access fastnumbers functions without
having to worry if it is actually installed.
é    N)ÚCallableÚIterableÚIteratorÚTupleÚUnionÚ	try_floatÚtry_int©é   r   r   )Úfastnumbers_versionÚminimumÚreturnc                 C   sR   t jd| t jd�}|s$td | ¡ƒ‚| ddd¡\}}}t|ƒt|ƒt|ƒf|kS )Nz$^(\d+)\.(\d+)(\.(\d+))?([ab](\d+))?$)Úflagsz'Invalid fastnumbers version number '{}'é   r
   é   )ÚreÚmatchÚASCIIÚ
ValueErrorÚformatÚgroupÚint)r   r   r   ÚmajorÚminorÚpatch© r   úS/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/natsort/compat/fastnumbers.pyÚis_supported_fastnumbers   s    ýÿr   )Ú
fast_floatÚfast_intÚ__version__)é   r   r   )r   r   )r   r   Úinfc                 C   s   | S ©Nr   ©Úxr   r   r   Ú<lambda><   ó    r&   )r%   ÚmapÚnanÚon_failr   c                    s    |dkst ‚‡ ‡fdd„| D ƒS )NTc                 3   s   | ]}t |ˆ ˆd �V  qdS ))r)   ÚkeyN)r   ©Ú.0Úy©r)   r*   r   r   Ú	<genexpr>?   s     ztry_float.<locals>.<genexpr>©ÚAssertionError)r%   r(   r)   r*   r   r/   r   r   8   s    c                 C   s   | S r#   r   r$   r   r   r   r&   G   r'   )r%   r(   r*   r   c                    s   |dkst ‚‡ fdd„| D ƒS )NTc                 3   s   | ]}t |ˆ d �V  qdS ))r+   N)r   r,   ©r*   r   r   r0   J   s     ztry_int.<locals>.<genexpr>r1   )r%   r(   r*   r   r3   r   r   D   s    )r	   )Ú__doc__r   Útypingr   r   r   r   r   ÚstrÚfloatZ
StrOrFloatr   ZStrOrIntÚ__all__Úboolr   Zfastnumbersr   r   r    Zfn_verÚImportErrorr   r   Znatsort.compat.fake_fastnumbersÚglobalsr   r   r   r   Ú<module>   sL    ÿ þ
üû
ýü