L idZddlZddlZddlZddlZddlZddlmZ edZ dZ dZ dZdZd d Zd d Zy#e $re ZYwxYw) z Disk management utilities. N)utilc2d}tj|dgzD]l}tjtjj ||}t |dr||j dzz }U||jdzdzdzz }nt|dz S)z%Return the disk usage in a directory.r. st_blocksig@) oslistdirstatpathjoinhasattrrst_sizeint)r sizefiler s Q/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/joblib/disk.py disk_usedrs D 4 C5(4wwrww||D$/0 4 % DNNS( (D T\\S(1,3 3D4 tf} c d}t||dz|dz} t||dt|ddz}|S#ttf$r!}t d|dt |d |d}~wwxYw) z,Convert a memory text to its value in bytes.i)KMGNzInvalid literal for size give: z (type z') should be alike '10G', '500M', '50K'.)dictrfloatKeyError ValueErrortype)textkilounitsres rmemstr_to_bytesr%'s D 447dAg .E5b?U49%556 K j !-14: ?  s :A* A%%A*c tj|y#t$r(}|jtjk7rYd}~yd}~wwxYw)zgEnsure directory d exists (like mkdir -p on Unix) No guarantee that the directory is writable. N)rmakedirsOSErrorerrnoEEXIST)dr$s rmkdirpr,5s: A  77ell "  #s A AA g? c*g} tj|}|D]/}tj j ||}t||1y#tj$r1|+|tj|tjnYxwxYw)aRemove all subdirectories in this path. The directory indicated by `path` is left in place, and its subdirectories are erased. If onerror is set, it is called to handle the error with arguments (func, path, exc_info) where func is os.listdir, os.remove, or os.rmdir; path is the argument to that function that caused it to fail; and exc_info is a tuple returned by sys.exc_info(). If onerror is None, an exception is raised. N)onerror)rr errorsysexc_infor r delete_folder)r r/namesnamefullnames r rm_subdirsr7Hs E 4 177<<d+h01 88   BJJclln 5  6sAABBctjj|r|tj|d|yd} tj |} t |dk(s|r=tj|ddtjdj|ytdj|t |y#ttf$r|dz }|tkDrYnwxYwtjt)zBUtility function to cleanup a temporary folder if it still exists.NFr) ignore_errorsr/zSuccessfully deleted {}z*Expected empty folder {} but got {} files.r)rr isdirshutilrmtreer lenrdebugformatr( WindowsErrorRM_SUBDIRS_N_RETRYtimesleepRM_SUBDIRS_RETRY_TIME) folder_pathr/allow_non_empty err_countfiless rr3r3fs ww}}[!   MM+ug 6I ;/5zQ/ kPTU #<#C#CK#PQ%HOO +SZ"( .NI #55 6 01)sA C $CC&%C&)N)NT)__doc__r)rr;r1rBmultiprocessingrr@ NameErrorr(rr%r,rDrAr7r3rrrMsd   1<2gLs6AA