o
    LK&h	                     @   sl   d Z ddl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s9|rBt|jtjjrBt}d}d }}n[|j
dksQ|rZt|jtjjrZt}d}d }}nC|jr|j
}tj|d	 }|tjjv rpd
nd}|tjjv rt}t|}n|tjjv rt}t|d}n|tjjv rt}nd}d }}|||||ffS )z7Just like 'imp.find_module()', but with package supportNCan't find 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tokenizeopenBYTECODE_SUFFIXESPY_COMPILEDEXTENSION_SUFFIXESC_EXTENSION)	r   r   speckindfilestaticr)   suffixmoder   r   r   find_module   sP   




r9   c                 C   s(   t | |}|std|  |j| S Nr   )r   r   r    get_code)r   r   r3   r   r   r   get_frozen_objectL   s   
r<   c                 C   s$   t | |}|std|  t|S r:   )r   r   r   )r   r   infor3   r   r   r   
get_moduleS   s   
r>   r   )__doc__importlib.machineryr   importlib.utilr(   r-   r   r,   r0   r2   r'   r%   r   r9   r<   r>   r   r   r   r   <module>   s    
	
0