a hT @ sd d Z ddlZddlZddlZddlmZ dZdZdZ dZ dZd d ZdddZ dd dZdd ZdS )zX Re-implementation of find_module and get_frozen_object from the deprecated imp module. N )module_from_spec c C s( t |trtj jntjj}|| |S )N) isinstancelist importlib machinery PathFinder find_specutil)modulepathsfinder r 3/usr/lib/python3.9/site-packages/setuptools/_imp.pyr s r c C sR t | |}|du rtd| |js>t|dr>tjd|j}d}d}t|jt }|j dksp|rt|jtjj rt}d}d }}n|j dks|rt|jtjjrt}d}d }}n|jr6|j }tj|d }|tjjv rd nd}|tjjv rt}n&|tjjv r t}n|tjjv rt}|tthv rBt||}nd}d }}|||||ffS )z7Just like 'imp.find_module()', but with package supportN Can't find %ssubmodule_search_locationsz__init__.pyfrozen zbuilt-inr rrb)r ImportErrorhas_locationhasattrr r spec_from_loaderloaderr typeorigin issubclassr FrozenImporter PY_FROZENBuiltinImporter C_BUILTINospathsplitextSOURCE_SUFFIXES PY_SOURCEBYTECODE_SUFFIXESPY_COMPILEDEXTENSION_SUFFIXESC_EXTENSIONopen) r r speckindfileZstaticr( suffixmoder r r find_module sF r6 c C s&