U
    ¯Ê¹jQ  ã                   @   sD   d Z ddlZddlZddlZdd„ Zddd„ZG d	d
„ d
ejƒZdS )z? Misc utils

Hacked together by / Copyright 2020 Ross Wightman
é    Nc                 C   s   dd„ t  d|  ¡ ¡D ƒS )z9See http://www.codinghorror.com/blog/archives/001018.htmlc                 S   s    g | ]}|  ¡ rt|ƒn|‘qS © )ÚisdigitÚint)Ú.0Úsr   r   úN/var/www/html/bwave/python/venv/lib/python3.8/site-packages/timm/utils/misc.pyÚ
<listcomp>   s     znatural_key.<locals>.<listcomp>z(\d+))ÚreÚsplitÚlower)Zstring_r   r   r   Únatural_key
   s    r   FÚ c                 C   sX   |  dd¡}| jdd�}|jd| |d|d� |jd| |d	|d� | jf ||iŽ d S )
Nú-Ú_F)Úrequiredz--Ú
store_true)ÚdestÚactionÚhelpz--no-Ústore_false)ÚreplaceÚadd_mutually_exclusive_groupÚadd_argumentÚset_defaults)ÚparserÚnameÚdefaultr   Z	dest_nameÚgroupr   r   r   Úadd_bool_arg   s
    r   c                   @   s   e Zd Zddd„ZdS )ÚParseKwargsNc              	   C   sb   i }|D ]F}|  d¡\}}zt |¡||< W q tk
rL   t|ƒ||< Y qX qt|| j|ƒ d S )Nú=)r
   ÚastÚliteral_evalÚ
ValueErrorÚstrÚsetattrr   )Úselfr   Ú	namespaceÚvaluesÚoption_stringÚkwÚvalueÚkeyr   r   r   Ú__call__   s    zParseKwargs.__call__)N)Ú__name__Ú
__module__Ú__qualname__r-   r   r   r   r   r      s   r   )Fr   )Ú__doc__Úargparser!   r	   r   r   ÚActionr   r   r   r   r   Ú<module>   s   
