
    Xj:                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZ ddlmZmZ ej        ez  ZeZdde
e         defdZdej        de
e         fd	Zej        d
e
e         dej        fd            Zej        d
edej        fd            Zej        d
ddej        fd            Zd Zdej        ddfdZdej        fdZe j        	 dej        dd            Zd Zdede fdZ!ej        d             Z"e"                    ej#                  e j        d                         Ze j        dej$        fd            Z%e j        d             Z&d Z'dS )    N)Optionalcast   )ResourceReaderTraversableanchorreturnc                 :    t          t          |                     S )z3
    Get a Traversable resource for an anchor.
    )from_packageresolve)r   s    X/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/importlib_resources/_common.pyfilesr      s     (((    packagec                 d    | j         }t          |j        dd          }|dS  ||j                  S )z?
    Return the package's loader if it's a ResourceReader.
    get_resource_readerN)__spec__getattrloadername)r   specreaders      r   r   r      s<     DT["7>>F~t6$)r   candc                 6    t          t          j        |           S N)r   types
ModuleTyper   s    r   r   r   )   s     $'''r   c                 *    t          j        |           S r   )	importlibimport_moduler   s    r   _r"   .   s    "4(((r   c                 N    t          t                      j        d                   S )N__name__)r   _infer_caller	f_globalsr   s    r   r"   r"   3   s    =??,Z8999r   c                      fd} d }t          j                    t          j        |           }t          j        ||          }t	          |          j        S )zS
    Walk the stack and find the frame of the first caller not in this module.
    c                 0    | j         d         j         k    S )Nr   )filename)
frame_infostacks    r   is_this_filez#_infer_caller.<locals>.is_this_file=   s    "eAh&777r   c                     | j         dk    S )Nwrapper)function)r*   s    r   
is_wrapperz!_infer_caller.<locals>.is_wrapper@   s    "i//r   )inspectr+   	itertoolsfilterfalsenextframe)r,   r0   not_this_filecallersr+   s       @r   r%   r%   8   sk    
8 8 8 8 80 0 0 MOOE),>>M#J>>G==r   c                 D    | j         t          d| j         d          dS )z
    Provide a nicer error message when package is ``__main__``
    and its ``__spec__`` is ``None``
    (https://docs.python.org/3/reference/import.html#main-spec).
    NzCannot access resources for 'zU' as it does not appear to correspond to an importable module (its __spec__ is None).)r   	TypeErrorr$   )r   s    r   _assert_specr:   J   sD     bG,< b b b
 
 	
  r   c                     ddl m} t          |             ||           }|j                            |j                  }|                                S )z=
    Return a Traversable object for the given package.

    r   )	wrap_spec)future.adaptersr<   r:   r   r   r   r   )r   r<   r   r   s       r   r   r   W   sX     +*****9WD[,,TY77F<<>>r    )
_os_removec             #   ~  K   t          j        |          \  }}	 	 t          j        | |                        t          j        |           n# t          j        |           w xY w~ t          j        |          V  	  ||           d S # t          $ r Y d S w xY w# 	  ||           w # t          $ r Y w w xY wxY wN)suffix)tempfilemkstemposwriteclosepathlibPathFileNotFoundError)r   rB   r?   fdraw_paths        r   	_tempfilerM   e   s       #6222LB	HR"""HRLLLLBHRLLLLl8$$$$$	Jx       	 	 	DD		Jx      	 	 	D	sR   A B A%%B  B 
BBB< B,+B<,
B96B<8B99B<c                 8    t          | j        | j                  S rA   )rM   
read_bytesr   paths    r   
_temp_filerR      s    T_TY7777r   rQ   c                     t          j        t                    5  |                                 cddd           S # 1 swxY w Y   dS )a  
    Some Traversables implement ``is_dir()`` to raise an
    exception (i.e. ``FileNotFoundError``) when the
    directory doesn't exist. This function wraps that call
    to always return a boolean and only return True
    if there's a dir and it exists.
    NF)
contextlibsuppressrJ   is_dirrP   s    r   _is_present_dirrW      s     
	.	/	/  {{}}               5s   ;??c                 \    t          |           rt          |           nt          |           S )zu
    Given a Traversable object, return that object as a
    path on the local file system in a context manager.
    )rW   	_temp_dirrR   rP   s    r   as_filerZ      s)     .d33I9T???D9I9IIr   c              #      K   | V  dS )z7
    Degenerate behavior for pathlib.Path objects.
    N rP   s    r   r"   r"      s       JJJJJr   dirc              #   l   K   | 5 }t          j        |          V  ddd           dS # 1 swxY w Y   dS )zF
    Wrap tempfile.TemporaryDirectory to return a pathlib object.
    N)rH   rI   )r]   results     r   
_temp_pathr`      s      
 
 #l6"""""# # # # # # # # # # # # # # # # # #s   )--c              #      K   |                                  sJ t          t          j                              5 }t	          ||           V  ddd           dS # 1 swxY w Y   dS )zt
    Given a traversable dir, recursively replicate the whole tree
    to the file system in a context manager.
    N)rV   r`   rC   TemporaryDirectory_write_contents)rQ   temp_dirs     r   rY   rY      s       ;;==	H/11	2	2 .hh-----. . . . . . . . . . . . . . . . . .s   AA Ac                 (   |                      |j                  }|                                r<|                                 |                                D ]}t          ||           n'|                    |                                           |S r   )joinpathr   rV   mkdiriterdirrc   write_bytesrO   )targetsourcechilditems       r   rc   rc      s    OOFK((E}} /NN$$ 	) 	)DE4((((	) 	&++--...Lr   r   )r>   )(rT   	functoolsr    r1   r2   rE   rH   rC   r   typingr   r   abcr   r   r   strPackageAnchorr   r   singledispatchr   registerr"   r%   r:   r   contextmanagerremoverM   rR   boolrW   rZ   rI   rb   r`   rY   rc   r\   r   r   <module>ry      s                    				    ! ! ! ! ! ! ! ! , , , , , , , ,

S
 	) )(6" )k ) ) ) )!1 h~6N      ((6" (u'7 ( ( ( ( 	)C )E$ ) ) ) ) 	:D :U% : : : :  $

%* 

t 

 

 

 

%*       y    48 8 8
+ 
$ 
 
 
 
 J J J 	',     #H/ # # # # . . .    r   