�`^c@s�dZddlZddlZddlZddlZy
eZWn'ek
ridefd��YZnXddgZ d�Z
d�Zd �Zd
�Z
ejd�Zd�ZdS(
sFilename globbing utility.i�Nt_unicodecBseZRS((t__name__t
__module__(((s/sys/lib/python2.7/glob.pyR
stglobtiglobcCstt|��S(sReturn a list of paths matching a pathname pattern.
The pattern may contain simple shell-style wildcards a la
fnmatch. However, unlike fnmatch, filenames starting with a
dot are special cases that are not matched by '*' and '?'
patterns.
(tlistR(tpathname((s/sys/lib/python2.7/glob.pyRs ccs�t|�s*tjj|�r&|VndStjj|�\}}|snxttj|�D]}|Vq[WdS||kr�t|�r�t|�}n |g}t|�r�t}nt}x<|D]4}x+|||�D]}tjj ||�Vq�Wq�WdS(sReturn an iterator which yields the paths matching a pathname pattern.
The pattern may contain simple shell-style wildcards a la
fnmatch. However, unlike fnmatch, filenames starting with a
dot are special cases that are not matched by '*' and '?'
patterns.
N(
t has_magictostpathtlexiststsplittglob1tcurdirRtglob0tjoin(Rtdirnametbasenametnametdirstglob_in_dir((s/sys/lib/python2.7/glob.pyRs$
cCs�|stj}nt|t�rUt|t�rUt|tj�pLtj��}nytj|�}Wntj k
rgSX|ddkr�t
d�|�}ntj
||�S(Nit.cSs|ddkS(NiR((tx((s/sys/lib/python2.7/glob.pyt<lambda>Ms(RR
t
isinstanceRtunicodetsystgetfilesystemencodingtgetdefaultencodingtlistdirterrortfiltertfnmatch(Rtpatterntnames((s/sys/lib/python2.7/glob.pyRBscCsT|dkr(tjj|�rP|gSn(tjjtjj||��rP|gSgS(Nt(RR tisdirR
R(RR((s/sys/lib/python2.7/glob.pyRPs
!s[*?[]cCstj|�dk S(N(tmagic_checktsearchtNone(ts((s/sys/lib/python2.7/glob.pyR^s(t__doc__RRtreR RRt NameErrortobjectt__all__RRRRtcompileR%R(((s/sys/lib/python2.7/glob.pyt<module>s
%
|