
    Ng                     j    d Z ddlZddlZ G d de          Zd Zed             Zed
d	            ZdS )z#
    pdf2image filename generators
    Nc                   $    e Zd ZdZd Zd Zd ZdS )ThreadSafeGeneratorz8Wrapper around generator that protects concurrent accessc                 D    || _         t          j                    | _        d S N)gen	threadingLocklock)selfr   s     P/var/www/html/ai-engine/env/lib/python3.11/site-packages/pdf2image/generators.py__init__zThreadSafeGenerator.__init__   s    N$$			    c                     | S r    r   s    r   __iter__zThreadSafeGenerator.__iter__   s    r   c                 l    | j         5  t          | j                  cd d d            S # 1 swxY w Y   d S r   )r
   nextr   r   s    r   __next__zThreadSafeGenerator.__next__   sy    Y 	" 	">>	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   )--N)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   	   sG        BB% % %  " " " " "r   r   c                       fd}|S )z0Decorator to make generator threadsafe. Fix #125c                  .    t           | i |          S r   )r   )akwfs     r   gzthreadsafe.<locals>.g   s    "11a;2;;///r   r   )r   r   s   ` r   
threadsafer       s#    0 0 0 0 0 Hr   c               #   N   K   	 t          t          j                              V  #)zReturns a UUID4)struuiduuid4r   r   r   uuid_generatorr%   !   s*       $*,, r       c              #      K   d}	 |dz  }t          |           t          |                              |          z   t          |          z   V  J)z5Returns a joined prefix, iteration number, and suffixr   T   )r"   zfill)prefixsuffixpadding_goalis       r   counter_generatorr/   (   sV       	
AE	Q&kkCFFLL666VDDDDEr   )r&   r&   r'   )r   r#   r   objectr   r    r%   r/   r   r   r   <module>r1      s         " " " " "& " " "         E E E E E Er   