grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´iÔã@sZdZddlZddlmZddlmZddddœZdd d „Zdd d„Zddd„Z dd„Z dS)zFdistutils.file_util Utility functions for operating on single files. éN)ÚDistutilsFileError)ÚlogZcopyingz hard linkingzsymbolically linking)NÚhardÚsymé@c CsÈd}d}�zšzt|dƒ}Wn6tyP}ztd||jfƒ‚WYd}~n d}~00tj |¡r¤zt |¡Wn6ty¢}ztd||jfƒ‚WYd}~n d}~00zt|dƒ}Wn6tyè}ztd||jfƒ‚WYd}~n d}~00z| |¡}Wn8t�y0}ztd||jfƒ‚WYd}~n d}~00|�s<�q†z|  |¡Wqêt�y‚}ztd||jfƒ‚WYd}~qêd}~00qêW|�r–|  ¡|�rÄ|  ¡n|�r´|  ¡|�rÂ|  ¡0dS) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. NÚrbzcould not open '%s': %szcould not delete '%s': %sÚwbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) ÚopenÚOSErrorrÚstrerrorÚosÚpathÚexistsÚunlinkÚreadÚwriteÚclose)ÚsrcÚdstZ buffer_sizeÚfsrcÚfdstÚeÚbuf©rú+/usr/lib64/python3.9/distutils/file_util.pyÚ_copy_file_contentssT (  ÿ ÿ ÿ ÿ ýrécCs ddlm}ddlm} m} m} m} tj  |¡s %srr)Zdistutils.dep_utilrÚstatrrr r!r r ÚisfilerÚisdirÚjoinÚbasenameÚdirnamerÚdebugÚ _copy_actionÚKeyErrorÚ ValueErrorÚinforÚsamefileÚlinkr ÚsymlinkrÚutimeÚchmod)rrZ preserve_modeZpreserve_timesÚupdater.ÚverboseÚdry_runrrrr r!ÚdirÚactionÚstrrrÚ copy_fileCsV!  ÿ              r8c Csžddlm}m}m}m}m}ddl} |dkr:t d||¡|rB|S||ƒsVt d|ƒ‚||ƒrrt j   |||ƒ¡}n||ƒrŠt d||fƒ‚|||ƒƒs¦t d||fƒ‚d } zt   ||¡WnRt�y } z8| j\} } | | jkræd } nt d ||| fƒ‚WYd} ~ n d} ~ 00| �ršt|||d �zt  |¡Wnht�y˜} zN| j\} } zt  |¡Wnt�ynYn0t d |||| fƒ‚WYd} ~ n d} ~ 00|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr#r$r&r'Nrzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %s)r3zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr#r$r&r'Úerrnorr,rr r r%Úrenamer ÚargsZEXDEVr8r)rrr3r4rr#r$r&r'r9Zcopy_itrÚnumÚmsgrrrÚ move_file¦s`  ÿÿ ÿÿ   ÿ  þÿr>cCs>t|dƒ}z$|D]}| |d¡qW| ¡n | ¡0dS)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. ÚwÚ N)r rr)ÚfilenameÚcontentsÚfÚlinerrrÚ write_fileås  rE)r)rrrNrr)rr) Ú__doc__r Zdistutils.errorsrZ distutilsrr)rr8r>rErrrrÚs  þ 3ÿ dþ ?