a
    ӗa                     @   sP  d dl Z d dlZd dlZd dlmZ eee Z	ej
Zg dZdd Zdd Zdev rdZd	Zd d
lT zd dlmZ ed W n ey   Y n0 d dlZzd dlmZ W n ey   Y n0 d dlZeee [ndev rldZdZd d
lT zd dlmZ ed W n ey"   Y n0 d dlZd dlZeee [zd dlmZ W n eyh   Y n0 nedeejd< d dlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ [edre% Z&dd Z'e( Z)e'dd e'dd e'dd e'dd e'dd e'd d! e'd"d# e'd$d% e'd&d' e'd(d) e'd*d+ e'd,d- e'd.d/ e'd0d1 e'd0d2 e'd3d e)Z*e( Z)e'dd e)Z+e( Z)e'd4d5 e'd6d e'd7d e'd8d9 e'd8d: e'd;d< e),e e'd=d> e'd?d e'd@d e'dAdB edCredDre'dEdC e)Z-e( Z)e'dd e'dd e'dd e'dFdG e'dHd edIr`e'dJd e'd d! e'dKd e'dLd e'dd e'd3d e'dMd e)Z.[)[[&['d Z/dNZ0dOZ1ddRdSZ2dTdU Z3dVdW Z4eg dX ddZd[Z5d\d] Z6ed[ e7ehe*kr8e8ehe-kr8ddQdd_d`daZ9dbdc Z:eda ddde Z;dfdg Z<dhdi Z=djdk Z>dldm Z?dndo Z@eg dp ddqdrZAddsdtZBd dulmCZCmDZD G dvdw dweCZEdxdy ZFeF ZG[Fddzd{ZHedkZIed| eIrd}d~ ZJeEeGjKeJeLeJeLZM[JdddZNed dd ZOeO \ZPZQ[Oedredsedrd ZRdN ZSZTeg d dd ZUdd ZVdd ZWdd ZXdd ZYeg d edrdd ZZdd Z[eddg edrdd Z\dd Z]eddg dddZ^G dd dZ_dd Z`dd ZaedseaZbdeb_cG dd de jdZeedkrLG dd dZfdd ZgdS )    N)_check_methods)altsepcurdirpardirseppathseplinesepdefpathnamepathdevnullSEEK_SETSEEK_CURSEEK_ENDfsencodefsdecodeget_exec_pathfdopenpopenextsepc                 C   s
   | t  v S N)globals)r
    r   %/home/manager/Python-3.9.10/Lib/os.py_exists)   s    r   c                 C   s6   zt | jW S  ty0   dd t| D  Y S 0 d S )Nc                 S   s   g | ]}|d  dkr|qS )r   _r   ).0nr   r   r   
<listcomp>0       z%_get_exports_list.<locals>.<listcomp>)list__all__AttributeErrordir)moduler   r   r   _get_exports_list,   s    r%   posix
)*)_exitr)   )_have_functionsntz
zno os specific module foundzos.path)r   r   r   r   r	   r   r   r   r*   c                 C   s"   |t v r| tv rtt |  d S r   )_globalsr*   _setadd)strfnr   r   r   _addh   s    r1   ZHAVE_FACCESSATaccessZHAVE_FCHMODATchmodZHAVE_FCHOWNATchownZHAVE_FSTATATstatZHAVE_FUTIMESATutimeZHAVE_LINKATlinkZHAVE_MKDIRATmkdirZHAVE_MKFIFOATmkfifoZHAVE_MKNODATmknodZHAVE_OPENATopenZHAVE_READLINKATreadlinkZHAVE_RENAMEATrenameZHAVE_SYMLINKATsymlinkZHAVE_UNLINKATunlinkrmdirZHAVE_UTIMENSATZHAVE_FCHDIRchdirZHAVE_FCHMODZHAVE_FCHOWNZHAVE_FDOPENDIRlistdirscandirZHAVE_FEXECVEexecveZHAVE_FTRUNCATEtruncateZHAVE_FUTIMENSZHAVE_FUTIMESZHAVE_FPATHCONFpathconfstatvfsfstatvfsZHAVE_FSTATVFSZHAVE_LCHFLAGSZchflagsZHAVE_LCHMODlchownZHAVE_LCHOWNZHAVE_LUTIMESZ
HAVE_LSTATZ
MS_WINDOWS        Fc                 C   s   t | \}}|s t |\}}|rz|rzt |szzt||d W n tyT   Y n0 t}t|trnttd}||krzd S zt| | W n" t	y   |rt 
| s Y n0 d S )N)exist_okZASCII)r   splitexistsmakedirsFileExistsErrorr   
isinstancebytesr8   OSErrorisdir)r
   moderM   headtailZcdirr   r   r   rP      s$    


rP   c                 C   sh   t |  t| \}}|s(t|\}}|rd|rdzt | W n tyR   Y qdY n0 t|\}}q(d S r   )r@   r   rN   rT   )r
   rW   rX   r   r   r   
removedirs   s    
rY   c                 C   sl   t |\}}|r(|r(t |s(t| t| | t | \}}|rh|rhzt| W n tyf   Y n0 d S r   )r   rN   rO   rP   r=   rY   rT   )oldnewrW   rX   r   r   r   renames   s    
r\   )rP   rY   r\   Tc                 C   s$   t d| ||| tt| |||S )Nzos.walk)sysaudit_walkfspath)toptopdownonerrorfollowlinksr   r   r   walk  s    ;re   c                 c   s  g }g }g }zt | }W n6 tyN } z|d ur8|| W Y d }~d S d }~0 0 | z,zt|}	W n ty   Y W q`Y n0 W nB ty } z*|d ur|| W Y d }~W d    d S d }~0 0 z|	 }
W n t y   d}
Y n0 |
r||	j n||	j |sX|
rX|r"d}n,z|	 }W n tyF   d}Y n0 | }|rX||	j qXW d    n1 sv0    Y  |r| ||fV  tj	tj
 }}|D ]4}|| |}|s||st||||E d H  qn,|D ]}t||||E d H  q| ||fV  d S )NFT)rC   rT   nextStopIterationis_dirappendr
   
is_symlinkr   islinkjoinr_   )ra   rb   rc   rd   dirsnondirsZ	walk_dirs
scandir_iterrorentryrh   Z	walk_intorj   rk   rl   dirnameZnew_pathr   r   r   r_   X  s\    $

.
r_   .follow_symlinksdir_fdc                c   s   t d| |||| t| tr(t| ds0t| } |sBt| d|d}t| t|d}zJ|srt	
|jrt|t|rt|| t| t|||E d H  W t| n
t| 0 d S )Nzos.fwalk	__index__Frt   rv   )r]   r^   rR   inthasattrr`   r5   r;   O_RDONLYstZS_ISDIRst_moder   samestat_fwalkrS   close)ra   rb   rc   ru   rv   orig_sttopfdr   r   r   fwalk  s    !r   c                 c   s  t | }g }g }|s|rd ng }	|D ]}
|
j}|r:t|}z4|
 rb|| |	d url|	|
 n
|| W q$ ty   z|
 r|| W n ty   Y n0 Y q$0 q$|r|||| fV  |	d u r|nt||	D ]}z@|s
|rt|| dd}n|\}}
|
jdd}t	|t
| d}W nD ty^ } z*|d ur>|| W Y d }~qW Y d }~n
d }~0 0 zH|szt|t|rt||}t||||||E d H  W t| qt| 0 q|s|||| fV  d S )NF)rv   ru   )ru   rx   )rC   r
   r   rh   ri   rT   rj   zipr5   r;   r{   r   r~   rl   r   r   )r   ZtoppathZisbytesrb   rc   ru   ro   rm   rn   Zentriesrq   r
   r   Zdirfderrdirpathr   r   r   r     sV    

"r   c                 G   s   t | | d S r   )execvfileargsr   r   r   execl  s    r   c                 G   s    |d }t | |d d | d S N)rD   r   r   envr   r   r   execle   s    r   c                 G   s   t | | d S r   )execvpr   r   r   r   execlp(  s    r   c                 G   s    |d }t | |d d | d S r   )execvper   r   r   r   execlpe/  s    r   c                 C   s   t | | d S r   _execvper   r   r   r   r   8  s    r   c                 C   s   t | || d S r   r   r   r   r   r   r   @  s    r   )r   r   r   r   r   r   c                 C   s  |d urt }||f}nt}|f}t}t| rB|| g|R   d S d }t|}tdkrht| } tt|}|D ]}t	|| }z||g|R   W ql t
tfy }	 z|	}
W Y d }	~	qld }	~	0  ty }	 z|	}
|d u r|	}W Y d }	~	qld }	~	0 0 ql|d ur||
d S )Nr+   )rD   r   environr   rr   r   r
   r   maprl   FileNotFoundErrorNotADirectoryErrorrT   )r   r   r   Z	exec_funcZargrestZ	saved_exc	path_listr#   fullnameeZlast_excr   r   r   r   K  s6    


r   c              
   C   s   dd l }| d u rt} |  |dt z| d}W n tyN   d }Y n0 trz| d }W n ttfyv   Y n0 |d urt	d|}|d urt
|trt|}W d    n1 s0    Y  |d u rt}|tS )Nr   ignoreZPATHs   PATHz*env cannot contain 'PATH' and b'PATH' keys)warningsr   catch_warningssimplefilterBytesWarningget	TypeErrorsupports_bytes_environKeyError
ValueErrorrR   rS   r   r	   rN   r   )r   r   r   Z
path_listbr   r   r   r   k  s0    


&r   )MutableMappingMappingc                   @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )_Environc                 C   s"   || _ || _|| _|| _|| _d S r   )	encodekey	decodekeyencodevaluedecodevalue_data)selfdatar   r   r   r   r   r   r   __init__  s
    z_Environ.__init__c                 C   s<   z| j | | }W n ty0   t|d Y n0 | |S r   )r   r   r   r   r   keyvaluer   r   r   __getitem__  s
    z_Environ.__getitem__c                 C   s,   |  |}| |}t|| || j|< d S r   )r   r   putenvr   r   r   r   r   __setitem__  s    


z_Environ.__setitem__c                 C   s@   |  |}t| z| j|= W n ty:   t|d Y n0 d S r   )r   unsetenvr   r   )r   r   Z
encodedkeyr   r   r   __delitem__  s    
z_Environ.__delitem__c                 c   s$   t | j}|D ]}| |V  qd S r   )r    r   r   )r   keysr   r   r   r   __iter__  s    
z_Environ.__iter__c                 C   s
   t | jS r   )lenr   r   r   r   r   __len__  s    z_Environ.__len__c                    s$   d d fdd j D S )Nzenviron({{{}}})z, c                 3   s*   | ]"\}}d   | |V  qdS )z
{!r}: {!r}N)formatr   r   )r   r   r   r   r   r   	<genexpr>  s   z$_Environ.__repr__.<locals>.<genexpr>)r   rl   r   itemsr   r   r   r   __repr__  s
    
z_Environ.__repr__c                 C   s   t | S r   )dictr   r   r   r   copy  s    z_Environ.copyc                 C   s   || vr|| |< | | S r   r   r   r   r   r   
setdefault  s    z_Environ.setdefaultc                 C   s   |  | | S r   )update)r   otherr   r   r   __ior__  s    
z_Environ.__ior__c                 C   s$   t |tstS t| }|| |S r   rR   r   NotImplementedr   r   r   r   r[   r   r   r   __or__  s
    

z_Environ.__or__c                 C   s$   t |tstS t|}||  |S r   r   r   r   r   r   __ror__  s
    

z_Environ.__ror__N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s   	r   c                     s   t dkrHdd } |  t} fdd}i }t D ]\}}||||< q0n(t fdd fdd	} }t}t||| |S )
Nr+   c                 S   s    t | tstdt| j | S )Nstr expected, not %s)rR   r/   r   typer   r   r   r   r   	check_str  s    
z!_createenviron.<locals>.check_strc                    s    |   S r   )upper)r   )encoder   r   r     s    z!_createenviron.<locals>.encodekeyc                    s(   t | tstdt| j |  dS )Nr   surrogateescape)rR   r/   r   r   r   r   r   encodingr   r   r     s    
z_createenviron.<locals>.encodec                    s   |   dS )Nr   )decoder   r   r   r   r     s    z_createenviron.<locals>.decode)r
   r/   r   r   r]   getfilesystemencodingr   )r   r   r   r   r   r   r   )r   r   r   _createenviron  s"    r   c                 C   s   t | |S r   )r   r   r   defaultr   r   r   getenv  s    r   )r   r   c                 C   s    t | tstdt| j | S )Nzbytes expected, not %s)rR   rS   r   r   r   r   r   r   r   _check_bytes  s    
r   c                 C   s   t | |S r   )environbr   r   r   r   r   getenvb  s    r   )r   r   c                     s4   t   t   fdd}  fdd}| |fS )Nc                    s&   t | } t| tr|  S | S d S r   )r`   rR   r/   r   filenamer   errorsr   r   r   $  s    
z_fscodec.<locals>.fsencodec                    s&   t | } t| tr|  S | S d S r   )r`   rR   rS   r   r   r   r   r   r   0  s    
z_fscodec.<locals>.fsdecode)r]   r   getfilesystemencodeerrors)r   r   r   r   r   _fscodec   s
    r   forkspawnvr   )P_WAITP_NOWAIT	P_NOWAITOc                 C   s   t |ttfstd|r"|d s*tdt }|spz$|d u rJ||| n|||| W q   td Y q0 n,| tkr||S t|d\}}t	|rq|t
|S d S )Nzargv must be a tuple or a listr   z"argv first element cannot be empty   )rR   tupler    r   r   r   r)   r   waitpid
WIFSTOPPEDwaitstatus_to_exitcode)rV   r   r   r   funcZpidZwpidZstsr   r   r   	_spawnvefM  s$    r   c                 C   s   t | ||d tS r   )r   r   rV   r   r   r   r   r   r   h  s    c                 C   s   t | |||tS r   )r   rD   rV   r   r   r   r   r   r   spawnveq  s    r   c                 C   s   t | ||d tS r   )r   r   r   r   r   r   spawnvp}  s    r   c                 C   s   t | |||tS r   )r   r   r   r   r   r   spawnvpe  s    r   )r   r   r   r   c                 G   s   t | ||S r   )r   r   r   r   r   spawnl  s    r   c                 G   s   |d }t | ||d d |S r   )r   r   r   r   r   spawnle  s    r   c                 G   s   t | ||S r   )r   r   r   r   r   spawnlp  s    r   c                 G   s   |d }t | ||d d |S r   )r   r   r   r   r   spawnlpe  s    r   rr   c                 C   s   t | tstdt|  |dvr.td| |dks>|d u rFtddd l}dd l}|dkr|j| d|j|d}t	|
|j|S |j| d|j|d	}t	|
|j|S d S )
Nz&invalid cmd type (%s, expected string))r   wzinvalid mode %rr   z+popen() does not support unbuffered streamsr   T)shellstdoutbufsize)r  stdinr  )rR   r/   r   r   r   
subprocessioZPopenZPIPE_wrap_closeTextIOWrapperr  r  )ZcmdrV   	bufferingr  r  procr   r   r   r     s(    
r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )r  c                 C   s   || _ || _d S r   )_stream_proc)r   streamr
  r   r   r   r     s    z_wrap_close.__init__c                 C   s8   | j   | j }|dkr d S tdkr,|S |d> S d S )Nr   r+      )r  r   r  waitr
   )r   Z
returncoder   r   r   r     s    

z_wrap_close.closec                 C   s   | S r   r   r   r   r   r   	__enter__  s    z_wrap_close.__enter__c                 G   s   |    d S r   r   r   r   r   r   r   __exit__  s    z_wrap_close.__exit__c                 C   s   t | j|S r   )getattrr  )r   r
   r   r   r   __getattr__  s    z_wrap_close.__getattr__c                 C   s
   t | jS r   )iterr  r   r   r   r   r     s    z_wrap_close.__iter__N)	r   r   r   r   r   r  r  r  r   r   r   r   r   r    s   	r  c                 O   s:   t | tstdt|  dd l}|j| g|R i |S )Nz&invalid fd type (%s, expected integer)r   )rR   ry   r   r   r  r;   )fdr   kwargsr  r   r   r   r     s    
r   c                 C   s   t | ttfr| S t| }z|| }W n. tyV   t|drD ntd|j Y n0 t |ttfrj|S td	|jt|jd S )N
__fspath__z/expected str, bytes or os.PathLike object, not z7expected {}.__fspath__() to return str or bytes, not {})
rR   r/   rS   r   r  r"   rz   r   r   r   )r   Z	path_typeZ	path_reprr   r   r   _fspath  s"    
r  r`   c                   @   s.   e Zd Zejdd Zedd ZeeZ	dS )PathLikec                 C   s   t d S r   )NotImplementedErrorr   r   r   r   r  ,  s    zPathLike.__fspath__c                 C   s   | t u rt|dS tS )Nr  )r  r   r   )clssubclassr   r   r   __subclasshook__1  s    
zPathLike.__subclasshook__N)
r   r   r   abcabstractmethodr  classmethodr  GenericAlias__class_getitem__r   r   r   r   r  (  s
   

r  c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )_AddedDllDirectoryc                 C   s   || _ || _|| _d S r   )r   _cookie_remove_dll_directory)r   r   cookieZremove_dll_directoryr   r   r   r   <  s    z_AddedDllDirectory.__init__c                 C   s   |  | j d | _d S r   )r'  r&  r   r   r   r   r   r   @  s    z_AddedDllDirectory.closec                 C   s   | S r   r   r   r   r   r   r  C  s    z_AddedDllDirectory.__enter__c                 G   s   |    d S r   r  r  r   r   r   r  E  s    z_AddedDllDirectory.__exit__c                 C   s   | j rd| j S dS )Nz<AddedDllDirectory({!r})>z<AddedDllDirectory()>)r   r   r   r   r   r   r   G  s    z_AddedDllDirectory.__repr__N)r   r   r   r   r   r  r  r   r   r   r   r   r%  ;  s
   r%  c                 C   s    dd l }|| }t| ||jS )Nr   )r+   Z_add_dll_directoryr%  r'  )r   r+   r(  r   r   r   add_dll_directoryL  s    

r)  )rL   F)TNF)rs   TN)N)N)N)N)r   r   )hr   r]   r5   r|   Z_collections_abcr   r   r    ry   r#  builtin_module_namesZ_namesr!   r   r%   r
   r   r&   r)   ri   ImportErrorZ	posixpathr   r*   extendr+   ZntpathmodulesZos.pathr   r   r   r   r	   r   r   r   r   r,   r1   setr-   Zsupports_dir_fdZsupports_effective_idsr.   Zsupports_fdZsupports_follow_symlinksr   r   r   rP   rY   r\   re   r_   r;   rC   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rS   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r`   r   ABCr  r%  r)  r   r   r   r   <module>   s`  

(











































 
>R
18
		
 
-G




	

	


	

