o
    ߥi	                     @   s`  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dedeeeef d	efd
dZz!ddlmZmZmZ eesGeeedrV[[ddlmZmZ W n eyh   ddlmZmZ Y nw de vre	ddd fdee dede	deegef d	ee
 f
ddZde vrdd fdee dedeegef d	ee fddZdS 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   N/home/ubuntu/.local/lib/python3.10/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 Nr   xr   r   r   <lambda><       r'   r&   mapnanon_failc                    s    |du sJ  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>r   )r&   r)   r*   r+   r   r0   r   r   8   s   c                 C   r#   r$   r   r%   r   r   r   r'   G   r(   c                    s   |du sJ  fdd| D S )NTc                 3   s    | ]	}t | d V  qdS ))r,   N)r   r-   r+   r   r   r1   J   s    ztry_int.<locals>.<genexpr>r   )r&   r)   r+   r   r2   r   r   D   s   )r	   )__doc__r   typingr   r   r   r   r   strfloat
StrOrFloatr   StrOrInt__all__boolr   fastnumbersr   r   r    fn_verImportErrorr   r   natsort.compat.fake_fastnumbersglobalsr   r   r   r   <module>   sf   





