
    f3                        d dl mZ d dlmZ d dlZd dlZd dlmZ d dl	m
Z
mZ  G d d      ZdZ eee      j                          y)	    )annotations)
ModuleSpecN)
ModuleType)IterableSequencec                  t    e Zd ZdZ	 	 d	 	 	 	 	 ddZed        Zd ZddZddZ	ddZ
	 	 d	 	 	 	 	 dd	Zd
 Zy)VendorImporterz
    A PEP 302 meta path importer for finding optionally-vendored
    or otherwise naturally-installed packages from root_name.
    Nc                h    || _         t        |      | _        |xs |j                  dd      | _        y )Nextern_vendor)	root_namesetvendored_namesreplace
vendor_pkg)selfr   r   r   s       Q/app/.heroku/python/lib/python3.12/site-packages/pkg_resources/extern/__init__.py__init__zVendorImporter.__init__   s1     #!.1$N	(9(9(I(N    c              #  6   K   | j                   dz    d yw)zL
        Search first the vendor package then as a natural package.
        . N)r   r   s    r   search_pathzVendorImporter.search_path   s     
 oo##s   c                    |j                  | j                  dz         \  }}}| xr) t        t        |j                  | j
                              S )z,Figure out if the target module is vendored.r   )	partitionr   anymap
startswithr   )r   fullnamerootbasetargets        r   _module_matches_namespacez(VendorImporter._module_matches_namespace!   sG    %//0DEdFxLCF$5$5t7J7J KLLr   c                @   |j                  | j                  dz         \  }}}| j                  D ]<  }||z   }	 t        |       t
        j                  |   }|t
        j                  |<   |c S  t	         dj                  di t                     # t        $ r Y mw xY w)zK
        Iterate over the search path to locate and load fullname.
        r   zThe '{target}' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution. )	r   r   r   
__import__ImportErrorsysmodulesformatlocals)r   r    r!   r"   r#   prefixextantmods           r   load_modulezVendorImporter.load_module&   s     &//0DEdF&&Ff_F6" ++f%C$'CKK!J ' '   !'3 *03   s   B	BBc                8    | j                  |j                        S N)r0   name)r   specs     r   create_modulezVendorImporter.create_module<   s    		**r   c                     y r2   r&   )r   modules     r   exec_modulezVendorImporter.exec_module?   s    r   c                h    | j                  |      r t        j                  j                  ||       S dS )z(Return a module spec for vendored names.N)r$   	importlibutilspec_from_loader)r   r    pathr#   s       r   	find_speczVendorImporter.find_specB   s7     --h7 NN++Hd;	
 		
r   c                h    | t         j                  vr t         j                  j                  |        yy)zR
        Install this importer into sys.meta_path if not already present.
        N)r)   	meta_pathappendr   s    r   installzVendorImporter.installP   s'     s}}$MM  & %r   )r&   N)r   strr   zIterable[str]r   z
str | None)r    rC   )r4   r   )r7   r   )NN)r    rC   r=   zSequence[str] | Noner#   zModuleType | None)__name__
__module____qualname____doc__r   propertyr   r$   r0   r5   r8   r>   rB   r&   r   r   r	   r	   	   s     )+!%	OO &O 	O  M
,+ &*$(	

 #
 "	
'r   r	   )	backportsimportlib_resourcesjaracomore_itertools	packagingplatformdirszipp)
__future__r   importlib.machineryr   importlib.utilr:   r)   typesr   typingr   r   r	   namesrD   rB   r&   r   r   <module>rV      s@    " *  
  %L' L'j	 x  ' ' )r   