a [dg@sddlZddlZddlZddlZddlZddlZddlmZddlm Z gdZ GdddeZ ddZ e dfd d Z e fd d Ze fd dZddZddZe fddZeeefZdS)N)DistutilsError)ensure_directory)unpack_archiveunpack_zipfileunpack_tarfiledefault_filterUnrecognizedFormatextraction_driversunpack_directoryc@s eZdZdS)rN)__name__ __module__ __qualname__rrA/usr/local/lib/python3.9/site-packages/setuptools/archive_util.pyrsrcCs|SNr)srcdstrrrrsrc CsL|ptD]2}z||||Wnty2YqYq0dSqtd|dS)Nz!Not a recognized archive type: %s)r r)filename extract_dirprogress_filterZdriversZdriverrrrrs   rc Cstj|std||d|fi}t|D]\}}}||\}}|D],} || dtj|| f|tj|| <qH|D]T} tj|| } ||| | } | sqzt| tj|| } t| | t | | qzq.dS)Nz%s is not a directory/) ospathisdirrwalkjoinrshutilcopyfilecopystat) rrrpathsbasedirsfilesrrdftargetrrrr @s"   * r c Cst|std|ft|}|D]}|j}|ds,d|dvrPq,tj j |g|dR}|||}|szq,| drt |nHt || |j}t|d}||Wdn1s0Y|jd?} | r,t|| q,Wdn1s0YdS)Nz%s is not a zip filer..wb)zipfile is_zipfilerZipFileinfolistr startswithsplitrrrendswithrreadopenwriteZ external_attrchmod) rrrzinfonamer&datar%Zunix_attributesrrrr[s(        ( rcCs|durT|s|rT|j}|rHt|j}t||}t|}||}q|duoj| pj| }|rt|St ddS)NzGot unknown file type) ZislnkZissymZlinkname posixpathdirnamer7rnormpathZ _getmemberisfiler LookupError)tar_objZtar_member_objZlinkpathr!Zis_file_or_dirrrr_resolve_tar_file_or_dirs"    r?c csdd|_t||D]}|j}|dsd|dvr>qtjj|g|dR}zt ||}Wnt y|YqYn0|||}|sq| tj r|dd}||fVqWdn1s0YdS)NcWsdSrr)argsrrrz _iter_open_tar..rr') chown contextlibclosingr7r.r/rrrr?r=r0sep)r>rrmemberr7Z prelim_dst final_dstrrr_iter_open_tars"       rJc Cszt|}Wn6tjyD}ztd|f|WYd}~n d}~00t|||D].\}}z|||WqRtjy~YqR0qRdS)Nz/%s is not a compressed or uncompressed tar fileT)tarfiler2TarErrorrrJZ_extract_memberZ ExtractError)rrrtarobjerHrIrrrrs  r)r*rKrrr9rEZdistutils.errorsrZ pkg_resourcesr__all__rrrr rr?rJrr rrrrs&   $  %