o
    iw                     @  sx   d dl mZ d dlZd dlmZ d dlmZmZ ddlm	Z	 ej
r3d dlmZ ddlmZ dd	lmZ G d
d dZdS )    )annotationsN)deque)
CollectionIterator   )combine)Callable)FS)Infoc                   @  sR   e Zd ZdddZ	ddddZdd ddfdddZddddZddddZdS ) BoundWalkerfsr	   c                 C  s
   || _ d S N)_fs)selfr    r   n/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/fontTools/misc/filesystem/_walk.py__init__   s   
zBoundWalker.__init__Npathstr
namespacesCollection[str] | Nonereturn!Iterator[tuple[str, Info | None]]c           
      c  s~    t |g}|j}|j}| jj}t}|r8| }|||dD ]}	|	jr0||	fV  ||||	j q||	fV  q|s|dfV  dS )z*Walk files using a *breadth first* search.)r   N)r   
appendleftpopr   scandirr   is_dirname)
r   r   r   queuepushr   Z_scan_combineZdir_pathinfor   r   r   
_iter_walk   s   

zBoundWalker._iter_walkc                 C  s   dS )NTr   )r   r!   r   r   r   <lambda>*   s    zBoundWalker.<lambda>/includeCallable[[str, Info], bool]Iterator[str]c                 c  s@    t }| ||D ]\}}|d ur|||r|||jV  q	d S r   )r   r"   r   )r   r%   r   r   r    r!   r   r   r   _filter(   s   zBoundWalker._filterc                 c      |  dd |E d H  d S )Nc                 S     |j S r   )is_file_r!   r   r   r   r#   4       z#BoundWalker.files.<locals>.<lambda>r(   r   r   r   r   r   files3      zBoundWalker.filesc                 c  r)   )Nc                 S  r*   r   )r   r,   r   r   r   r#   7   r.   z"BoundWalker.dirs.<locals>.<lambda>r/   r0   r   r   r   dirs6   r2   zBoundWalker.dirs)r   r	   r   )r   r   r   r   r   r   )r%   r&   r   r   r   r   r   r'   )r$   )r   r   r   r'   )__name__
__module____qualname__r   r"   r(   r1   r3   r   r   r   r   r      s    
r   )
__future__r   typingcollectionsr   collections.abcr   r   _pathr   TYPE_CHECKINGr   _baser	   _infor
   r   r   r   r   r   <module>   s    