
    Bi                     r    d dl Z d dlZd dlZd dlZ G d d          Z e            Zd Zd Zd Zd Z	d Z
dS )	    Nc                       e Zd ZdS )_worker_StateN)__name__
__module____qualname__     l/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/pymupdf/_apply_pages.pyr   r      s        Dr	   r   c                     | t           _        |t           _        |t           _        |t           _        |t           _        d t           _        |r
 ||i | d S d S N)_worker_statepathpagefnpagefn_argspagefn_kwargsstatsdocument)r   initfninitfn_argsinitfn_kwargsr   r   r   r   s           r
   _worker_initr      sa     M!M +M"/MM!M .-}-----. .r	   c           	          t          j                     | z
  } | dk    r2t          j        dt          j                    d| dd| d           d S d S )N
   os.getpid()=z: 2fzs: .)timepymupdflogosgetpid)tlabels     r
   _stats_writer$   %   s\    	aABww8ry{{88q88888899999 wr	   c                 F   t           j        sct           j        rt          j                    }t	          j        t           j                  t           _        t           j        rt          |d           t           j        rt          j                    }t           j        |          }t           j        rt          |d           t           j        rt          j                    }t          j        |gt           j	        R i t           j
        }t           j        rt          |d           |S )Nzpymupdf.Document()z#_worker_state.document[page_number]z_worker_state.pagefn())r   r   r   r   r   Documentr   r$   r   r   r   )page_numberr"   pagerets       r
   
_worker_fnr*   +   s   ! 2 		A!(!1-2D!E!E 	20111 IKK!+.D ?Q=>>> IKK

&   ) C
  2Q0111Jr	   c
                     t          j        |t          | |||||||	f          5 }
|
                    t          |          }|                                cd d d            S # 1 swxY w Y   d S r   )multiprocessingPoolr   	map_asyncr*   get)r   pagesr   r   r   r   r   r   concurrencyr   poolresults               r
   _multiprocessingr4   G   s     
	]]		
 	
  
E22zz||                 s   /A  A$'A$c
                 B   	 d|t          j                    }t          j                    t          j                     	fd}
d }t                      }	 	rt	          j                    }t          |          D ]}t          j                    }|dk    r	 	  |
             n># t          $ r1}t          j
        dt          j                    d|            d }~ww xY w	 r)t          j
        dt          j                    d           t          j        d           nD# r)t          j
        dt          j                    d           t          j        d           w xY w|                    |           	rt          |d           	rt	          j                    }rt          j
        d           t          t          |                    D ]}                    |           	rt          |d           d gt          |          z  }t          t          |                    D ]l}                                \  }}r't          j
        d	|d
t          |                     ||         J t%          |t                    r|s|} n|||<   mt          |          D ]}                    d            rt          j
        d                                            |r|r$t          j
        dt          |                     |	rt	          j                    }|D ]M}rt          j
        d|d           t          j        |d          }rt          j
        d|d|           N	rt          |d           S S # 	rt	          j                    }|D ]M}rt          j
        d|d           t          j        |d          }rt          j
        d|d|           N	rt          |d           w w xY w)Nr   c            
      l   d } r.t          j        dt          j                    dd           t	          	
           	 r)t          j        dt          j                    d                                           }r,t          j        dt          j                    d|d           |d S 	 | s;rt          j                    }t          j                  } rt          |d           rt          j                    }| |         }rt          |d	           r0t          j        dt          j                    d
t                     rt          j                    } 	|gt          j
        R i t          j        }rt          |d|d           nF# t          $ r9}r+t          j        dt          j                    d|           |}Y d }~nd }~ww xY wr.t          j        dt          j                    d|d|                               ||f           )Nr   z	: initfn=z initfn_args=   z: calling get().z: page_num=r   zpymupdf.Document(path)zdocument[page_num]z: _worker_state=	page_num=z	 pagefn()z: exception e=z: sending page_num=z ret=)r   r   r    r!   r   r/   r   r&   r$   r   r   r   	Exceptionput)r   page_numr"   r(   r)   er   r   r   r   r   r   r   
queue_downqueue_upr   verboses         r
   childfnz_fork.<locals>.childfn{   s    	EKC29;;CC6CC[CCDDD		 		 		(	, ?=ry{{===>>>!~~''H =;ry{{;;x;;;<<< B ( IKK&/55H B$Q(@AAA $	A) : $8999 EK C29;; C C= C CDDD $	Af&2   (5 
  = $;x$;$;$;<<<   JGK(I29;;(I(IQ(I(IJJJ  KIry{{IIxII3IIJJJLL8S/+++Q(	,s   =C)F' '
G*1/G%%G*r   z: childfn() => e=z: calling os._exit(0)zcreate child processeszSending page numbers.zSend page numbersr8   z len(text)=zClosing queues.z%After concurrent, returning len(ret)=zwaiting for pid=r   zpid=z => e=zJoin all child proceses)r,   	cpu_countQueuelistr   ranger    forkr9   r   r   r!   _exitappendr$   lenr:   r/   
isinstanceclosewaitpid)r   r0   r   r   r   r   r   r   r1   r   r@   errorpidsr"   ipr<   r;   r)   textpidr=   r>   r?   s   ` `````` `           @@@r
   _forkrR   b   s    G%/11 !&((J$&&H6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,p E66DG7 		A{## 	 	A		AAvv	 				$   $Hry{{$H$HA$H$HIII "
  L$Jry{{$J$J$JKKKHQKKKK  L$Jry{{$J$J$JKKKHQKKKKKKNNNN 	64555  		A 	2K0111c%jj)) 	% 	%HNN8$$$$ 	1/000 fs5zz!s5zz"" 		! 		!A%\\^^NHd 97x773t9977888x=((($	**  ! E CMM
 {## 	! 	!ANN4    3GK 2333 	K 	DKBs3xxBBCCC  		A 	/ 	/C 423222333
3""A /-s----... 	756666	7  		A 	/ 	/C 423222333
3""A /-s----... 	756666	7sG   )A N$ +
B65D56
C1 ,C,,C11D55A N$ 5AE66F5N$ $A:P)r,   r    r   r   r   r   r   r$   r*   r4   rR   r   r	   r
   <module>rS      s        				  	 	 	 	 	 	 	 	. . .*: : :  8  6[7 [7 [7 [7 [7r	   