] @sddlZddlTddlZddlTddddddd d d d d ddddddddddddddddddd d!d"g Zd#Zd$Zd%Zd#Zd&Zd#Z dZ d'Z d(d)Z d*dZ d+dZd,dZd-dZd.dZejje_d/dZd0d Zd1d Zd2d3Zd4dZd5dZd6dZd7dZGd8d9d9eZd:dZd;dZd<d!Z d=Z!dS)>N)*normcaseisabsjoin splitdrivesplitsplitextbasenamedirname commonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfile expanduser expandvarsnormpathabspathcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenames:z::. zDev:NullcCst|trdSdSdS)N:r#) isinstancebytes)pathr*,/opt/alt/python35/lib64/python3.5/macpath.py _get_colonsr,cCs:t|ttfs0tdj|jj|jS)Nz2normcase() argument must be str or bytes, not '{}')r'r(str TypeErrorformat __class____name__lower)r)r*r*r+r"s cCs,t|}||ko+|dd|kS)N)r,)scolonr*r*r+r)s c Gsyt|}|}|s-|dd|x|D]}| sMt|rV|}q4|dd|kr||dd}||kr||}|dd|kr||}||}q4W|SWn1tttfk rtjd||YnXdS)Nrr3r)r,rr.AttributeError BytesWarning genericpath_check_arg_types)r4pr5r)tr*r*r+r4s(     cCst|}||kr,|dd|fSd}x>tt|D]*}|||d|krE|d}qEW|d|d||d}}|r||kr||}||fS)Nrr3)r,rangelen)r4r5colir)filer*r*r+rKs  % cCs?t|tr%tj|dtdStj|tttSdS)Nr&.)r'r(r9 _splitextrrr)r;r*r*r+r[scCs|dd|fS)Nrr*)r;r*r*r+rbscCst|dS)Nr)r)r4r*r*r+r nscCst|dS)Nr3)r)r4r*r*r+r oscCs7t|sdSt|}t|dko6|d S)NFr3)rrr>)r4 componentsr*r*r+ismountqs  rFc Cs:y'ddl}|jj|ddSWn dSYnXdS)NrrDF) Carbon.FileFileZResolveAliasFile)r4Carbonr*r*r+rws  c Cs0ytj|}Wntk r+dSYnXdS)NFT)oslstatOSError)r)str*r*r+rs   cCs|S)Nr*)r)r*r*r+rscCs|S)Nr*)r)r*r*r+rsc@seZdZdS) norm_errorN)r1 __module__ __qualname__r*r*r*r+rNs rNcCst|}||kr ||S|j|}d}xz|t|dkr|| r||dr|dkr||d|d=|d}qtdq8|d}q8W|j|}|dd|krt|dkr||t|kr|dd}|S)Nr3z+Cannot use :: immediately after volume namerDr6r6)r,rr>rNr)r4r5compsr@r*r*r+rs     >cCsOt|sEt|tr*tj}n tj}t||}t|S)N)rr'r(rJgetcwdbgetcwdrr)r)cwdr*r*r+rs   cCst|}yddl}Wntk r4|SYnX|s?|St|}|j|}|d|}xe|ddD]S}t||}y#|jj|ddj}Wqy|jj k rYqyXqyW|S)Nrr3) rrG ImportErrorr,rrrHZFSResolveAliasFileZ as_pathnameError)r)rIr5rEcr*r*r+r!s"    # T)"rJstatr9__all__rrrrrrrr r,rrrrrrC__doc__rr r rFrrrr ExceptionrNrrr!r"r*r*r*r+sJ