Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
3 N”ªj”?ã'@sfdZdZdZdZdZdZdZdZdZddl Z ddl Z ddl Z ddl Z dd l Td d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0g'Z d1d2„Zd3d „Zd4d „Zd5d „Zd6d„Zd7d„Ze jje_d8d „Zd9d„Zd:d„Zd;d„Zdd„Zdadad?d„Zd@d„ZdAd „Z dBdCœdDd,„Z!dEdF„Z"e j#dGkZ$dJdHd.„Z%dId/„Z&dS)KaçCommon operations on Posix pathnames. Instead of importing this module directly, import os and refer to this module as os.path. The "os.path" name is an alias for this module on Posix systems; on other systems (e.g. Mac, Windows), os.path provides the same operations in a manner specific to that platform, and is an alias to another module (e.g. macpath, ntpath). Some of this can actually be useful on non-Posix systems too, e.g. for manipulation of the pathname component of URLs. Ú.z..ú/ú:z:/bin:/usr/binNz /dev/nullé)Ú*ÚnormcaseÚisabsÚjoinÚ splitdriveÚsplitÚsplitextÚbasenameÚdirnameÚ commonprefixÚgetsizeÚgetmtimeÚgetatimeÚgetctimeÚislinkÚexistsÚlexistsÚisdirÚisfileÚismountÚ expanduserÚ expandvarsÚnormpathÚabspathÚsamefileÚ sameopenfileÚsamestatÚcurdirÚpardirÚsepÚpathsepÚdefpathÚaltsepÚextsepÚdevnullÚrealpathÚsupports_unicode_filenamesÚrelpathÚ commonpathÚ ALLOW_MISSINGcCst|tƒrdSdSdS)Nó/r)Ú isinstanceÚbytes)Úpath©r1ú!/usr/lib64/python3.6/posixpath.pyÚ_get_sep)s r3cCs.tj|ƒ}t|ttfƒs*tdj|jjƒƒ‚|S)z6Normalize case of pathname. Has no effect under Posixz2normcase() argument must be str or bytes, not '{}') ÚosÚfspathr.r/ÚstrÚ TypeErrorÚformatÚ __class__Ú__name__)Úsr1r1r2r4s   cCstj|ƒ}t|ƒ}|j|ƒS)zTest whether a path is absolute)r4r5r3Ú startswith)r;r"r1r1r2r@s c Gs®tj|ƒ}t|ƒ}|}yd|s,|dd…|xJttj|ƒD]:}|j|ƒrN|}q:| s^|j|ƒrh||7}q:|||7}q:WWn.tttfk r¨t j d|f|žŽ‚YnX|S)zæJoin two or more pathname components, inserting '/' as needed. If any component is an absolute path, all previous path components will be discarded. An empty last part will result in a path that ends with a separator.Nrr) r4r5r3Úmapr<Úendswithr7ÚAttributeErrorÚ BytesWarningÚ genericpathÚ_check_arg_types)ÚaÚpr"r0Úbr1r1r2rKs    cCs`tj|ƒ}t|ƒ}|j|ƒd}|d|…||d…}}|rX||t|ƒkrX|j|ƒ}||fS)z€Split a pathname. Returns tuple "(head, tail)" where "tail" is everything after the final slash. Either part may be empty.éN)r4r5r3ÚrfindÚlenÚrstrip)rDr"ÚiÚheadÚtailr1r1r2r hs  cCs6tj|ƒ}t|tƒrd}d}nd}d}tj||d|ƒS)Nr-ó.rr)r4r5r.r/rAÚ _splitext)rDr"r&r1r1r2r ys  cCstj|ƒ}|dd…|fS)zJSplit a pathname into drive and path. On Posix, drive is always empty.Nr)r4r5)rDr1r1r2r ‡s cCs,tj|ƒ}t|ƒ}|j|ƒd}||d…S)z)Returns the final component of a pathnamerFN)r4r5r3rG)rDr"rJr1r1r2r �s cCsNtj|ƒ}t|ƒ}|j|ƒd}|d|…}|rJ||t|ƒkrJ|j|ƒ}|S)z-Returns the directory component of a pathnamerFN)r4r5r3rGrHrI)rDr"rJrKr1r1r2r šs   c Cs4ytj|ƒ}Wnttfk r&dSXtj|jƒS)z&Test whether a path is a symbolic linkF)r4ÚlstatÚOSErrorr?ÚstatÚS_ISLNKÚst_mode)r0Ústr1r1r2r¨s c Cs(ytj|ƒWntk r"dSXdS)zCTest whether a path exists. Returns True for broken symbolic linksFT)r4rOrP)r0r1r1r2r²s cCs´ytj|ƒ}Wntk r"dSXtj|jƒr4dSt|tƒrJt|dƒ}n t|dƒ}t |ƒ}ytj|ƒ}Wntk r~dSX|j }|j }||kr˜dS|j }|j }||kr°dSdS)z$Test whether a path is a mount pointFs..z..T) r4rOrPrQrRrSr.r/rr(Úst_devÚst_ino)r0Ús1ÚparentÚs2Údev1Údev2Úino1Úino2r1r1r2r¾s.    c Cs4tj|ƒ}t|tƒrd}nd}|j|ƒs,|St|ƒ}|j|dƒ}|dkrPt|ƒ}|dkr¢dtjkr–ddl }y|j tj ƒƒj }Wq t k r’|SXqôtjd}nRddl }|d|…}t|tƒrÊt|dƒ}y|j|ƒ}Wnt k rì|SX|j }t|tƒ�rtj|ƒ}d}nd }|j|ƒ}|||d…�p2|S) zOExpand ~ and ~user constructions. If user or $HOME is unknown, do nothing.ó~ú~rFrÚHOMENÚASCIIr-r)r4r5r.r/r<r3ÚfindrHÚenvironÚpwdÚgetpwuidÚgetuidÚpw_dirÚKeyErrorr6ÚgetpwnamÚfsencoderI) r0Útilder"rJrdÚuserhomeÚnameÚpwentÚrootr1r1r2rèsB            c Cs\tj|ƒ}t|tƒrVd|kr |Sts:ddl}|jd|jƒatj}d}d}t tddƒ}n:d|krb|St s|ddl}|jd |jƒa t j}d }d }tj }d}xÂ|||ƒ}|s¦P|j dƒ\}}|j d ƒ} | j|ƒrÞ| j|ƒrÞ| d d …} y.|dk�rtjtj tj| ƒƒ} n|| } Wntk �r&|}Yq–X||d…} |d|…| }t|ƒ}|| 7}q–W|S)zZExpand shell variables of form $var and ${var}. Unknown variables are left unchanged.ó$rNs\$(\w+|\{[^}]*\})ó{ó}Úenvironbú$z\$(\w+|\{[^}]*\})ú{ú}rFéÿÿÿÿ)r4r5r.r/Ú _varprogbÚreÚcompileraÚsearchÚgetattrÚ_varprogrcÚspanÚgroupr<r>rjÚfsdecoderhrH) r0ryr{ÚstartÚendrcrJÚmÚjrmÚvaluerLr1r1r2rsP          c Csþtj|ƒ}t|tƒr&d}d}d}d}nd}d}d}d}||krB|S|j|ƒ}|rr|j|d ƒrr|j|d ƒ rrd }|j|ƒ}g}xV|D]N}|||fkr˜q†||ks¼| r¬| s¼|rÈ|d |krÈ|j|ƒq†|r†|jƒq†W|}|j|ƒ}|rö|||}|pü|S) z0Normalize path, eliminating double slashes, etc.r-órMs..rÚrz..éérFrw) r4r5r.r/r<r ÚappendÚpopr) r0r"ÚemptyÚdotÚdotdotÚinitial_slashesÚcompsÚ new_compsÚcompr1r1r2rRs>          cCs@tj|ƒ}t|ƒs8t|tƒr&tjƒ}ntjƒ}t||ƒ}t|ƒS)zReturn an absolute path.) r4r5rr.r/ÚgetcwdbÚgetcwdrr)r0Úcwdr1r1r2rxs    F)ÚstrictcCs,tj|ƒ}t|dd…||iƒ\}}t|ƒS)zlReturn the canonical path of the specified filename, eliminating any symbolic links encountered in the path.Nr)r4r5Ú _joinrealpathr)Úfilenamer–r0Úokr1r1r2r(‡s c Cs†t|tƒrd}d}d}n d}d}d}|tkr2t}n|r|| }|dk �rq\|�r0t j | ƒnt| |ƒdfSd|| <t|t j| ƒ||ƒ\}} | �srt||ƒdfS||| <q\W|d fS) Nr-rMs..rrz..rFFT)r.r/r,ÚFileNotFoundErrorrPrÚ partitionr rr4rOrQrRrSr—Úreadlink)r0Úrestr–Úseenr"r r!Ú ignored_errorrmÚ_ÚnewpathrTÚis_linkr™r1r1r2r—�s`           r—Údarwinc Csò|s tdƒ‚tj|ƒ}t|tƒr.d}d}d}n d}d}d}|dkrH|}n tj|ƒ}ynd d „t|ƒj|ƒDƒ}d d „t|ƒj|ƒDƒ}tt||gƒƒ}|gt|ƒ|||d…}|sº|St |ŽSt t t t fk rìtjd ||ƒ‚YnXdS) z#Return a relative version of a pathzno path specifiedrMr-s..rrz..NcSsg|] }|r|‘qSr1r1)Ú.0Úxr1r1r2ú ëszrelpath..cSsg|] }|r|‘qSr1r1)r¤r¥r1r1r2r¦ìsr*)Ú ValueErrorr4r5r.r/rr rHrrr7r?r@ÚDeprecationWarningrArB) r0r�r r"r!Ú start_listÚ path_listrJÚrel_listr1r1r2r*Õs0   c s2|s tdƒ‚tttj|ƒƒ}t|dtƒr4d‰d‰nd‰d‰yƇfdd„|Dƒ}yt‡fd d „|Dƒƒ\}Wntk rŠtd ƒd ‚YnX‡fd d„|Dƒ}t|ƒ}t |ƒ}|}x.t |ƒD]"\}}|||kr¼|d |…}Pq¼W|rêˆn ˆd d…}|ˆj |ƒSt t fk �r,tjd|žŽ‚YnXd S)zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencerr-rMrrcsg|]}|jˆƒ‘qSr1)r )r¤r0)r"r1r2r¦ szcommonpath..c3s|]}|dd…ˆkVqdS)NrFr1)r¤rD)r"r1r2ú szcommonpath..z%Can't mix absolute and relative pathsNcsg|]}‡fdd„|Dƒ‘qS)csg|]}|r|ˆkr|‘qSr1r1)r¤Úc)r r1r2r¦sz)commonpath...r1)r¤r;)r r1r2r¦sr+)r+)r§Útupler=r4r5r.r/ÚsetÚminÚmaxÚ enumeraterr7r?rArB) ÚpathsÚ split_pathsrrWrYÚcommonrJr­Úprefixr1)r r"r2r+þs6  )N)'Ú__doc__r r!r&r"r#r$r%r'r4ÚsysrQrAÚ__all__r3rrrr r rNr r r rrrrr}rxrrrr(r—Úplatformr)r*r+r1r1r1r2Ú sZ           *25& C  )