o
    ȝi                     @   sJ   d Z ddlZddlZG dd deZdd Zedd ZedddZdS )z#
    pdf2image filename generators
    Nc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	ThreadSafeGeneratorz8Wrapper around generator that protects concurrent accessc                 C   s   || _ t | _d S N)gen	threadingLocklock)selfr    r	   P/var/www/html/ocr-read/venv/lib/python3.10/site-packages/pdf2image/generators.py__init__   s   zThreadSafeGenerator.__init__c                 C   s   | S r   r	   r   r	   r	   r
   __iter__   s   zThreadSafeGenerator.__iter__c                 C   s4   | j  t| jW  d    S 1 sw   Y  d S r   )r   nextr   r   r	   r	   r
   __next__   s   $zThreadSafeGenerator.__next__N)__name__
__module____qualname____doc__r   r   r   r	   r	   r	   r
   r   	   s
    r   c                    s    fdd}|S )z0Decorator to make generator threadsafe. Fix #125c                     s   t  | i |S r   )r   )akwfr	   r
   g   s   zthreadsafe.<locals>.gr	   )r   r   r	   r   r
   
threadsafe   s   r   c                   c   s    	 t t V  q)zReturns a UUID4)struuiduuid4r	   r	   r	   r
   uuid_generator!   s   r       c                 c   s2    d}	 |d7 }t | t || t | V  q)z5Returns a joined prefix, iteration number, and suffixr   T   )r   zfill)prefixsuffixpadding_goalir	   r	   r
   counter_generator(   s    r&   )r   r   r   )r   r   r   objectr   r   r   r&   r	   r	   r	   r
   <module>   s    	
