o
    ß¥µi~  ã                   @   s2   d
dd„Z dd„ Z		 ddd„Z		 ddd	„Zd S )Nc                 C   sH   |d u r| dkrd}n| dkrd}nd}n|}t |t| t|ƒ ƒ| ƒS )Né   é    é€   é   é   )ÚmaxÚroundÚfloat)ÚxÚbaseÚ
round_base© r   úk/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/models/cv/tinynas_classfication/global_utils.pyÚsmart_round   s   r   c                 C   sP   d}t | ƒD ]\}}|dkr|d7 }q|dkr$|d8 }|dkr#|  S q	 qd S )Né    ú(é   ú))Ú	enumerate)ÚsÚleft_paren_countÚindexr	   r   r   r   Úget_right_parentheses_index   s   
ÿr   Fc                 K   sÌ   g }t | ƒdkrbd}| ¡ D ]I}|  d¡}|dkrW| d|… |krWd}|| }|j| fd|i|¤Ž\}	}
|	d ur=| |	¡ |
} t | ƒdkrU| d dkrU|| dd … f  S  nq|s\J ‚t | ƒdks|dfS )	Nr   Fr   TÚ	no_createú;r   Ú )ÚlenÚkeysÚfindÚcreate_from_strÚappend)r   r   Únetblocks_dictÚkwargsÚ
block_listÚis_found_block_classÚthe_block_class_nameÚtmp_idxÚthe_block_classÚ	the_blockÚremaining_sr   r   r   Ú#create_netblock_list_from_str_inner"   s2   
ÿÿ
ÿ
€ñr)   c                 K   s.   t | f||dœ|¤Ž\}}t|ƒdksJ ‚|S )N)r   r    r   )r)   r   )r   r   r    r!   Úthe_listr(   r   r   r   Úcreate_netblock_list_from_str:   s   ÿÿ
ÿr+   )N)FN)r   r   r)   r+   r   r   r   r   Ú<module>   s   

þþ