
    @g                     r    d dl mZ d dlmZ ddlmZ  G d d      Z G d d      Zdd	Z G d
 d      Z	d Z
y)    )suppress)TextIOWrapper   )abcc                   "    e Zd ZdZd fdZd Zy)SpecLoaderAdapterz>
    Adapt a package spec to adapt the underlying loader.
    c                     | j                   S N)loaderspecs    R/var/www/openai/venv/lib/python3.12/site-packages/importlib_resources/_adapters.py<lambda>zSpecLoaderAdapter.<lambda>   s    $++    c                 ,    || _          ||      | _        y r
   )r   r   )selfr   adapters      r   __init__zSpecLoaderAdapter.__init__   s    	dmr   c                 .    t        | j                  |      S r
   )getattrr   r   names     r   __getattr__zSpecLoaderAdapter.__getattr__   s    tyy$''r   N)__name__
__module____qualname____doc__r   r    r   r   r   r      s     &> $(r   r   c                       e Zd ZdZd Zd Zy)TraversableResourcesLoaderz9
    Adapt a loader to provide TraversableResources.
    c                     || _         y r
   r   r   r   s     r   r   z#TraversableResourcesLoader.__init__   	    	r   c                 H    t        | j                        j                         S r
   )CompatibilityFilesr   _nativer   s     r   get_resource_readerz.TraversableResourcesLoader.get_resource_reader   s    !$)),4466r   N)r   r   r   r   r   r'   r   r   r   r    r       s    7r   r    c                 V    |dk(  rt        | g|i |S |dk(  r| S t        d| d      )NrrbzInvalid mode value 'z"', only 'r' and 'rb' are supported)r   
ValueError)filemodeargskwargss       r   _io_wrapperr0       s@    s{T3D3F33	
+D61ST
UUr   c                       e Zd ZdZ G d dej
                        Z G d dej
                        Z G d dej
                        Zd Z	e
d	        Zd
 Zd Zd Zy)r%   zj
    Adapter for an existing or non-existent resource reader
    to provide a compatibility .files().
    c                   D    e Zd ZdZd Zd Zd ZeZd Ze	d        Z
d	dZy)
CompatibilityFiles.SpecPathzk
        Path tied to a module spec.
        Can be read and exposes the resource reader children.
        c                      || _         || _        y r
   )_spec_reader)r   r   readers      r   r   z$CompatibilityFiles.SpecPath.__init__4   s    DJ!DLr   c                       j                   st        d      S t         fd j                   j                         D              S )Nr   c              3   ^   K   | ]$  }t         j                  j                  |       & y wr
   )r%   	ChildPathr6   ).0pathr   s     r   	<genexpr>z6CompatibilityFiles.SpecPath.iterdir.<locals>.<genexpr>;   s*      3D #,,T\\4@3s   *-)r6   itercontentsr   s   `r   iterdirz#CompatibilityFiles.SpecPath.iterdir8   s:    <<Bx  LL113  r   c                      yNFr   r@   s    r   is_filez#CompatibilityFiles.SpecPath.is_file@       r   c                     | j                   st        j                  |      S t        j                  | j                   |      S r
   )r6   r%   
OrphanPathr:   r   others     r   joinpathz$CompatibilityFiles.SpecPath.joinpathE   s1    <<)44U;;%//eDDr   c                 .    | j                   j                  S r
   )r5   r   r@   s    r   r   z CompatibilityFiles.SpecPath.nameJ   s    ::??"r   c                 T    t        | j                  j                  d       |g|i |S r
   )r0   r6   open_resourcer   r-   r.   r/   s       r   openz CompatibilityFiles.SpecPath.openN   s)    t||99$?WWPVWWr   Nr)   r   r   r   r   r   rA   rD   is_dirrJ   propertyr   rO   r   r   r   SpecPathr3   .   s=    	
	"		 	E
 
	# 
	#	Xr   rT   c                   F    e Zd ZdZd Zd Zd Zd Zd Ze	d        Z
d
dZy	)CompatibilityFiles.ChildPathzw
        Path tied to a resource reader child.
        Can be read but doesn't expose any meaningful children.
        c                      || _         || _        y r
   )r6   _name)r   r7   r   s      r   r   z%CompatibilityFiles.ChildPath.__init__W   s    !DLDJr   c                     t        d      S Nr   r>   r@   s    r   rA   z$CompatibilityFiles.ChildPath.iterdir[       8Or   c                 L    | j                   j                  | j                        S r
   )r6   is_resourcer   r@   s    r   rD   z$CompatibilityFiles.ChildPath.is_file^   s    <<++DII66r   c                 $    | j                          S r
   )rD   r@   s    r   rR   z#CompatibilityFiles.ChildPath.is_dira   s    ||~%%r   c                 B    t         j                  | j                  |      S r
   )r%   rG   r   rH   s     r   rJ   z%CompatibilityFiles.ChildPath.joinpathd   s    %00EBBr   c                     | j                   S r
   )rX   r@   s    r   r   z!CompatibilityFiles.ChildPath.nameg   s    ::r   c                 h    t        | j                  j                  | j                        |g|i |S r
   )r0   r6   rM   r   rN   s       r   rO   z!CompatibilityFiles.ChildPath.openk   s7    **4995t>BFL r   NrP   rQ   r   r   r   r:   rV   Q   s:    	
			7	&	C 
	 
		r   r:   c                   D    e Zd ZdZd Zd Zd ZeZd Ze	d        Z
d	dZy)
CompatibilityFiles.OrphanPathz
        Orphan path, not tied to a module spec or resource reader.
        Can't be read and doesn't expose any meaningful children.
        c                 D    t        |      dk  rt        d      || _        y )Nr   z/Need at least one path part to construct a path)lenr+   _path)r   
path_partss     r   r   z&CompatibilityFiles.OrphanPath.__init__v   s!    :" !RSS#DJr   c                     t        d      S rZ   r[   r@   s    r   rA   z%CompatibilityFiles.OrphanPath.iterdir{   r\   r   c                      yrC   r   r@   s    r   rD   z%CompatibilityFiles.OrphanPath.is_file~   rE   r   c                 D    t        j                  g | j                  | S r
   )r%   rG   rg   rH   s     r   rJ   z&CompatibilityFiles.OrphanPath.joinpath   s    %00D$**DeDDr   c                      | j                   d   S )N)rg   r@   s    r   r   z"CompatibilityFiles.OrphanPath.name   s    ::b>!r   c                     t        d      )NzCan't open orphan path)FileNotFoundErrorrN   s       r   rO   z"CompatibilityFiles.OrphanPath.open   s    #$<==r   NrP   rQ   r   r   r   rG   rd   p   s<    	
	$
		 	E 
	" 
	"	>r   rG   c                     || _         y r
   r   r"   s     r   r   zCompatibilityFiles.__init__   r#   r   c                     t        t              5  | j                  j                  j	                  | j                  j
                        cd d d        S # 1 sw Y   y xY wr
   )r   AttributeErrorr   r   r'   r   r@   s    r   r6   zCompatibilityFiles._reader   s6    n%99##77		G &%%s   9AAc                 :    | j                   }t        |d      r|S | S )zB
        Return the native reader if it supports files().
        files)r6   hasattr)r   r7   s     r   r&   zCompatibilityFiles._native   s!      1v;t;r   c                 .    t        | j                  |      S r
   )r   r6   )r   attrs     r   r   zCompatibilityFiles.__getattr__   s    t||T**r   c                 V    t         j                  | j                  | j                        S r
   )r%   rT   r   r6   r@   s    r   rt   zCompatibilityFiles.files   s    !**499dllCCr   N)r   r   r   r   r   TraversablerT   r:   rG   r   rS   r6   r&   r   rt   r   r   r   r%   r%   (   se    
!X3?? !XFCOO >>S__ >: H H<+Dr   r%   c                 6    t        | j                  t              S )z`
    Construct a package spec with traversable compatibility
    on the spec/loader/reader.
    )r   __spec__r    )packages    r   	wrap_specr}      s    
 W--/IJJr   NrP   )
contextlibr   ior    r   r   r    r0   r%   r}   r   r   r   <module>r      s=      
( 
(	7 	7VxD xDvKr   