o
    Zh+                     @   s8   d Z ddlZddlmZ edddd Zd
dd	ZdS )zMiscellaneous utilities    N)	lru_cached   )maxsizec                 C   s6   zt | }t|ddrW dS W dS  ty   Y dS w )zG
    Simpler version of spyder.utils.programs.is_module_installed.
    __file__NTF)
__import__getattr	Exception)module_namemod r   P/var/www/html/lang_env/lib/python3.10/site-packages/spyder_kernels/utils/misc.pyis_module_installed   s   r   c                    s   d td   r(td s(td d s  dd  q	 r(td rt   s0d |durT |v rT fd	d
}d}|||v rP|d7 }|||v sF||  S )zBReturn a syntax-valid Python reference name from an arbitrary name z[^0-9a-zA-Z_]z([a-zA-Z]+[0-9a-zA-Z_]*)$z[a-zA-Z]r      Ndatac                    s    d|   S )Nz_%03dr   )indexnamer   r   <lambda>-   s    z$fix_reference_name.<locals>.<lambda>)joinresplitmatchstr)r   Z	blacklistZget_new_namer   r   r   r   fix_reference_name"   s"   r   )N)__doc__r   Zspyder_kernels.py3compatr   r   r   r   r   r   r   <module>   s   
