U
    md	                     @   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se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     

