a ÕDOgbã@slddlZddlZddlmZmZddlmZiaddd„Zddd „Z dd d „Z d d „Z ddd„Z dd„Z dS)éN)ÚDistutilsFileErrorÚDistutilsInternalError)Úlogéÿéc Csht|tƒstd|fƒ‚tj |¡}g}tj |¡s<|dkr@|St tj  |¡¡rV|Stj  |¡\}}|g}|rž|ržtj |¡sžtj  |¡\}}|  d|¡ql|D]À}tj  ||¡}tj  |¡} t | ¡rÌq¢|dkràt  d|¡|sZzt ||¡WnXtyN} z>| jtjkr$tj |¡s:td|| jdfƒ‚WYd} ~ n d} ~ 00| |¡dt| <q¢|S)Nz(mkpath: 'name' must be a string (got %r)Úrrz creating %szcould not create '%s': %séÿÿÿÿ)Ú isinstanceÚstrrÚosÚpathÚnormpathÚisdirÚ _path_createdÚgetÚabspathÚsplitÚinsertÚjoinrÚinfoÚmkdirÚOSErrorÚerrnoZEEXISTrÚargsÚappend) ÚnameÚmodeÚverboseÚdry_runZ created_dirsÚheadÚtailZtailsÚdZabs_headÚexc©r#ú7/opt/alt/python39/lib64/python3.9/distutils/dir_util.pyÚmkpathsB ÿ    ÿ  r%c CsNtƒ}|D] }| tj |tj |¡¡¡q t|ƒD]}t||||dq4dS)N©rr)ÚsetÚaddr r rÚdirnameÚsortedr%)Zbase_dirÚfilesrrrZneed_dirÚfileÚdirr#r#r$Ú create_treePs  r.c Csbddlm}|s(tj |¡s(td|ƒ‚zt |¡} Wn@tyv} z(|rPg} ntd|| jfƒ‚WYd} ~ n d} ~ 00|sˆt ||dg} | D]Ì} tj  || ¡} tj  || ¡}|   d¡r¼q|rtj  | ¡rt  | ¡}|dkrðt d||¡|st ||¡|  |¡qtj | ¡r<|  t| |||||||d ¡q|| ||||||d |  |¡q| S) Nr)Ú copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %s)rz.nfsrzlinking %s -> %sr&)Zdistutils.file_utilr/r r rrÚlistdirrÚstrerrorr%rÚ startswithÚislinkÚreadlinkrrÚsymlinkrÚextendÚ copy_tree)ÚsrcZdstZ preserve_modeZpreserve_timesZpreserve_symlinksÚupdaterrr/ÚnamesÚeZoutputsÚnZsrc_nameZdst_nameZ link_destr#r#r$r7csR ÿ ÿ     þÿþ r7cCsft |¡D]F}tj ||¡}tj |¡r@tj |¡s@t||ƒq | tj|f¡q | tj |f¡dS)N) r r0r rrr3Ú_build_cmdtuplerÚremoveÚrmdir)r Ú cmdtuplesÚfZreal_fr#r#r$r=¨s  r=c Csž|dkrt d|¡|rdSg}t||ƒ|D]j}z2|d|dƒtj |d¡}|tvrbt|=Wq.ty–}zt d||¡WYd}~q.d}~00q.dS)Nrz'removing '%s' (and everything under it)rzerror removing %s: %s) rrr=r r rrrÚwarn)Z directoryrrr@Úcmdrr"r#r#r$Ú remove_tree²s   rDcCs6tj |¡\}}|dd…tjkr2||dd…}|S)Nrr)r r Ú splitdriveÚsep)r Zdriver#r#r$Úensure_relativeÊsrG)rrr)rrr)rrrrrr)rr)r rZdistutils.errorsrrZ distutilsrrr%r.r7r=rDrGr#r#r#r$Ús  ? ÿ E