
     iw                        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
        rd dlmZ ddlmZ dd	lmZ  G d
 d          ZdS )    )annotationsN)deque)
CollectionIterator   )combine)Callable)FS)Infoc                  H    e Zd ZddZ	 dddZd ddfddZdddZdddZdS )BoundWalkerfsr
   c                    || _         d S N)_fs)selfr   s     i/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/fontTools/misc/filesystem/_walk.py__init__zBoundWalker.__init__   s        Npathstr
namespacesCollection[str] | Nonereturn!Iterator[tuple[str, Info | None]]c              #    K   t          |g          }|j        }|j        }| j        j        }t
          }|rJ |            } |||          D ]0}	|	j        r!||	fV   | |||	j                             *||	fV  1|J|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   _scan_combinedir_pathinfos
             r   
_iter_walkzBoundWalker._iter_walk   s       tfi  	)suuHh:>>> ) ); )"D.(((D(DI667777"D.((((  	) Djr   c                    dS )NT )r   r'   s     r   <lambda>zBoundWalker.<lambda>*   s    $ r   /includeCallable[[str, Info], bool]Iterator[str]c              #     K   t           }|                     ||          D ]&\  }}| |||          r |||j                  V  'd S r   )r   r(   r!   )r   r-   r   r   r%   r'   s         r   _filterzBoundWalker._filter(   sj       //$
;; 	0 	0JD$GGD$$7$7htTY/////	0 	0r   c              #  D   K   |                      d |          E d {V  d S )Nc                    |j         S r   )is_file_r'   s     r   r+   z#BoundWalker.files.<locals>.<lambda>4   s     r   r1   r   r   s     r   fileszBoundWalker.files3   s6      << < <dCCCCCCCCCCCr   c              #  D   K   |                      d |          E d {V  d S )Nc                    |j         S r   )r    r5   s     r   r+   z"BoundWalker.dirs.<locals>.<lambda>7   s     r   r7   r8   s     r   dirszBoundWalker.dirs6   s6      << ; ;TBBBBBBBBBBBr   )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(   r1   r9   r<   r*   r   r   r   r      s            ?C    , 0G/F-1		0 	0 	0 	0 	0D D D D DC C C C C C Cr   r   )
__future__r   typingcollectionsr   collections.abcr   r   _pathr   TYPE_CHECKINGr	   _baser
   _infor   r   r*   r   r   <module>rH      s    " " " " " "        0 0 0 0 0 0 0 0      	 'C 'C 'C 'C 'C 'C 'C 'C 'C 'Cr   