L iwddlmZddlZddlmZddlmZmZddlm Z ejrddlm Z ddl m Z dd lmZGd d Zy) ) annotationsN)deque) CollectionIterator)combine)Callable)FS)Infoc^eZdZd dZ d d dZdddf d dZd ddZd ddZy) BoundWalkerc||_yN)_fs)selffss e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/misc/filesystem/_walk.py__init__zBoundWalker.__init__s Nc#2Kt|g}|j}|j}|jj}t }|rK|}|||D]4} | j r || f|||| j/|| f6|rK|dfyw)z*Walk files using a *breadth first* search.) namespacesN)r appendleftpoprscandirris_dirname) rpathrqueuepushr_scan_combinedir_pathinfos r _iter_walkzBoundWalker._iter_walkstf ii  uHh:> );;"D.((DII67"D.(  )Djs B BBcy)NT)rr#s rzBoundWalker.*sr/c#Kt}|j||D]'\}}| |||s|||j)ywr)rr$r)rincluderrr!r#s r_filterzBoundWalker._filter(sK //$ ; 0JD$GD$$7tTYY// 0s!A AAc#FK|jd|Ed{y7w)Nc|jSr)is_file_r#s rr'z#BoundWalker.files..4s  rr+rrs rfileszBoundWalker.files3s<< .7s  rr1r2s rdirszBoundWalker.dirs6s<< ;TBBBr4)rr r)rstrrCollection[str] | Nonereturnz!Iterator[tuple[str, Info | None]])r*zCallable[[str, Info], bool]rr8rr9r: Iterator[str])r()rr8r:r;)__name__ __module__ __qualname__rr$r+r3r7r&rrr r sm?C%; *,0G-1 0, 0 0+ 0  0DCrr ) __future__rtyping collectionsrcollections.abcrr_pathr TYPE_CHECKINGr _baser _infor r r&rrrGs2" 0 'C'Cr