o
    hX	                     @   sd   d Z ddlZddlZddlZddlmZ dZdZdZ	dZ
dZd	d
 ZdddZdddZdd ZdS )zX
Re-implementation of find_module and get_frozen_object
from the deprecated imp module.
    N   )module_from_spec            c                 C   s(   t |trtj jntjj}|| |S N)
isinstancelist	importlib	machinery
PathFinder	find_specutil)modulepathsfinder r   B/var/www/html/venv/lib/python3.10/site-packages/setuptools/_imp.pyr      s
   
r   c           	      C   sJ  t | |}|du rtd|  |jst|drtjd|j}d}d}t|jt	}|j
dks8|rAt|jtjjrAt}d}d }}n\|j
dksP|rYt|jtjjrYt}d}d }}nD|jr|j
}tj|d	 }|tjjv rod
nd}|tjjv rzt}n|tjjv rt}n|tjjv rt}|tthv rt||}nd}d }}|||||ffS )z7Just like 'imp.find_module()', but with package supportNCan't find %ssubmodule_search_locationsz__init__.pyfrozen zbuilt-inr   rrb)r   ImportErrorhas_locationhasattrr   r   spec_from_loaderloaderr	   typeorigin
issubclassr   FrozenImporter	PY_FROZENBuiltinImporter	C_BUILTINospathsplitextSOURCE_SUFFIXES	PY_SOURCEBYTECODE_SUFFIXESPY_COMPILEDEXTENSION_SUFFIXESC_EXTENSIONopen)	r   r   speckindfilestaticr)   suffixmoder   r   r   find_module   sH   





r8   c                 C   s&   t | |}|std|  |j| S Nr   )r   r   r    get_code)r   r   r2   r   r   r   get_frozen_objectG   s   
r;   c                 C   s"   t | |}|std|  t|S r9   )r   r   r   )r   r   infor2   r   r   r   
get_moduleN   s   
r=   r   )__doc__r(   importlib.utilr   importlib.machinery
py34compatr   r,   r.   r0   r'   r%   r   r8   r;   r=   r   r   r   r   <module>   s    
	
*