
    
d+                     P    d Z ddlZddlmZ  ed          d             ZddZdS )	zMiscellaneous utilities    N)	lru_cached   )maxsizec                 n    	 t          |           }t          |dd          rdS dS # t          $ r Y dS w xY w)zG
    Simpler version of spyder.utils.programs.is_module_installed.
    __file__NTF)
__import__getattr	Exception)module_namemods     9lib/python3.11/site-packages/spyder_kernels/utils/misc.pyis_module_installedr      sV    

%% 3
D)) 	45   uus    & 
44c                     d                     t          j        d                       rRt          j        d           s=t          j        d d                   s dd          = rt          j        d           =t	                       sd |5 |v r1 fd	}d} ||          |v r|dz  } ||          |v  ||            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                     d| z  z   S )Nz_%03d )indexnames    r   <lambda>z$fix_reference_name.<locals>.<lambda>-   s    T7U?%;     )joinresplitmatchstr)r   	blacklistget_new_namer   s   `   r   fix_reference_namer    "   s	   7728,d3344D
 rx <dCC xT!W-- 	8D  rx <dCC  t99D !2!2;;;;l5!!Y..QJE l5!!Y..|E""Kr   )N)__doc__r   spyder_kernels.py3compatr   r   r    r   r   r   <module>r#      so      				 . . . . . . 3  "     r   