U
e5do � @ s� d dl Z d dlZdddddddd d
ddgZd
d� Zdd � Zdd� Zdd� Zdd� Zdd� Zdd� Z dd� Z
dd� Zdd
� Zdd� Z
dd� Zdd� ZdS )� N�commonprefix�exists�getatime�getctime�getmtime�getsize�isdir�isfile�samefile�sameopenfile�samestatc C s. zt �| � W n ttfk
r( Y dS X dS )NFT)�os�stat�OSError�
ValueError)�path� r �#/usr/lib64/python3.8/genericpath.pyr s
c C s6 zt �| �}W n ttfk
r( Y dS X t�|j�S �NF)r
r r r �S_ISREG�st_mode)r �str r r r s
c C s6 zt �| �}W n ttfk
r( Y dS X t�|j�S r )r
r r r �S_ISDIRr )�sr r r r r ' s
c C s t �| �jS �N)r
r �st_size��filenamer r r r 0 s c C s t �| �jS r )r
r �st_mtimer r r r r 5 s c C s t �| �jS r )r
r �st_atimer r r r r : s c C s t �| �jS r )r
r �st_ctimer r r r r ? s c C sl | sdS t | d ttf�s*tttj| ��} t| �}t| �}t|�D ]$\}}||| krB|d |� S qB|S )N� r ) �
isinstance�list�tuple�mapr
�fspath�min�max� enumerate)�m�s1�s2�i�cr r r r E s c C s | j |j ko| j|jkS r )�st_ino�st_dev)r+ r, r r r r W s
�c C s t �| �}t �|�}t||�S r )r
r r )�f1�f2r+ r, r r r r
^ s
c C s t �| �}t �|�}t||�S r )r
�fstatr )�fp1�fp2r+ r, r r r r k s
c C s� | � |�}|r"| � |�}t||�}| � |�}||krz|d }||k rz| ||d � |krp| d |� | |d � fS |d7 }q<| | d d� fS )N� r )�rfindr( )�p�sep�altsep�extsep�sepIndex�altsepIndex�dotIndex�
filenameIndexr r r � _splitexty s
r@ c G s` d }}|D ]<}t |t�r d}qt |t�r0d}qt| � d|jj���d �q|r\|r\td�d �d S )NFTz;() argument must be str, bytes, or os.PathLike object, not z.Can't mix strings and bytes in path components)r" �str�bytes� TypeError� __class__�__name__)�funcname�args�hasstr�hasbytesr r r r �_check_arg_types� s
�rJ )r
r �__all__r r r r r r r r r r
r r@ rJ r r r r �