ot+3IddZddlZddlZddlZddlZejeZdefdZ d dddZ dS) zHigh-level file operations.Nreturnct|to9t|o*d|vo&|tj|ko|dvS)N).z..) isinstancestrboolospathbasename)names R/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/utils/_shutil.pyis_safe_subdir_namer s]4 $ JJ $ $  $ BG$$T** * $  # F) max_triesctd|dzD]s} tj|||cS#t$rL}||ks|jtjtjfvrtd||Yd}~ld}~wwxYwdS)zMore robust shutil.rmtree. Retry on "Directory not empty" race condition: https://github.com/ansible/ansible/issues/34335#issuecomment-362995700 z Can't remove %s tree, reason: %sN) rangeshutilrmtreeOSErrorerrnoEEXIST ENOTEMPTYloggerwarning)r ignore_errorsonerrorries rrrs 1i!m $ $ H H H=}g>> > > > H H HI~~ 1"" NN=tQ G G G G G G G G H H Hs/ BABB)FN) __doc__rloggingr r getLogger__name__rr rrrrr's!!   8 $ $HHHHHHHHr