ruạṛ
a �u:j� � @ sl d Z ddlZddlZddlZddlZddlmZ dZdZdZ dZ dZd d � Zddd�Z dd d�Zdd� ZdS )zX Re-implementation of find_module and get_frozen_object from the deprecated imp module. � N)�module_from_spec� � � � � c C s( t |t�rtj�� jntjj}|| |�S )N)� isinstance�list� importlib� machinery� PathFinder� find_spec�util)�module�paths�finder� r �B/opt/bart/bart_venv/lib/python3.9/site-packages/setuptools/_imp.pyr s ��r c C sR t | |�}|du r td| � ���|js@t|d�r@tj�d|j�}d}d}t|jt �}|j dksr|r�t|jtjj �r�t}d}d }}n�|j dks�|r�t|jtjj�r�t}d}d }}n�|j�r6|j }tj�|�d }|tjjv r�d nd}|tjjv �rt}t�|�}n0|tjjv �r"t}t|d�}n|tjjv �rBt}nd}d }}|||||ffS )z7Just like 'imp.find_module()', but with package supportN�Can't find �submodule_search_locationsz__init__.py����frozen� zbuilt-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�fileZstaticr( �suffix�moder r r �find_module sR ��� ��� r7 c C s( t | |�}|std| � ���|j�| �S �Nr )r r r �get_code)r r r2 r r r �get_frozen_objectL s r: c C s$ t | |�}|std| � ���t|�S r8 )r r r )r r �infor2 r r r � get_moduleS s r<