a [Îdg ã@sŒddlZddlZddlZgd¢Zddd„Zddd„Zdd „Zd d „Zd d „Zdd„Z dd„Z e  d¡Z e  d¡Z dd„Zdd„Zdd„ZdS)éN)ÚglobÚiglobÚescapeFcCstt||dƒS)N)Ú recursive)Úlistr)Úpathnamer©rú9/usr/local/lib/python3.9/site-packages/setuptools/glob.pyrs rcCs"t||ƒ}|rt|ƒrt|ƒ}|S©N)Ú_iglobÚ _isrecursiveÚnext)rrÚitÚsrrr rs  rccsÎtj |¡\}}|r t|ƒr tnt}t|ƒsZ|rDtj |¡rV|Vntj |¡rV|VdS|sr|||ƒEdHdS||krŽt|ƒrŽt ||ƒ}n|g}t|ƒs t }|D]$}|||ƒD]}tj  ||¡Vq²q¤dSr ) ÚosÚpathÚsplitr Úglob2Úglob1Ú has_magicÚlexistsÚisdirr Úglob0Újoin)rrÚdirnameÚbasenameZ glob_in_dirÚdirsÚnamerrr r 0s(   r cCsT|s"t|tƒrtj d¡}ntj}zt |¡}WntyFgYS0t ||¡S©NÚASCII) Ú isinstanceÚbytesrÚcurdirÚencodeÚlistdirÚOSErrorÚfnmatchÚfilter)rÚpatternÚnamesrrr rTs   rcCs8|stj |¡r4|gSntj tj ||¡¡r4|gSgSr )rrrrr)rrrrr ras  rccs&|dd…Vt|ƒD] }|VqdS)Nr)Ú _rlistdir)rr(Úxrrr rqs rccs|s"t|tƒrtj d¡}ntj}zt |¡}WntjyFYdS0|D]>}|V|rhtj ||¡n|}t |ƒD]}tj ||¡VqtqLdSr) r r!rr"r#r$Úerrorrrr*)rr)r+rÚyrrr r*ys  r*z([*?[])s([*?[])cCs(t|tƒrt |¡}n t |¡}|duSr )r r!Úmagic_check_bytesÚsearchÚ magic_check)rÚmatchrrr rŽs   rcCst|tƒr|dkS|dkSdS)Ns**z**)r r!)r(rrr r –s r cCs<tj |¡\}}t|tƒr(t d|¡}n t d|¡}||S)Ns[\1]z[\1])rrÚ splitdriver r!r.Úsubr0)rÚdriverrr rs   r)F)F)rÚrer&Ú__all__rrr rrrr*Úcompiler0r.rr rrrrr Ú s  $