
    li                         d Z ddlZddlZddlZddlZddlZddlZddlZddlmZ  ej                  e
      Z ej                  d      Zd Z G d dej                        Z G d d	      Zd
 Z G d de      Zy))AutoCastableAutoCloseableDEBUG_AUTOCLOSELIBRARY_AVAILABLE_debug_close    N)r   Fc                     t         sy 	 t        j                  t        j                  j                         | dz   j                                y # t        $ r t        | t        j                         Y y w xY w)N
)file)	r   oswritesysstderrfilenoencode	Exceptionprint)msgs    U/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pypdfium2/internal/bases.pyr   r      sR    $
""$s4x&7&7&9: $c

#$s   AA $A43A4c                       e Zd ZdZdZdZdZy)_STATEr         N)__name__
__module____qualname__INVALIDAUTOEXPLICITBYPARENT     r   r   r      s    GDHHr"   r   c                       e Zd Zed        Zy)r   c                     | j                   S N)rawselfs    r   _as_parameter_zAutoCastable._as_parameter_&   s    
 xxr"   N)r   r   r   propertyr)   r!   r"   r   r   r   $   s     r"   r   c                    t        d|j                  j                  j                          d|        t        st        d       y |j                  t
        j                  k7  sJ ||j                         rJ  | |g|i | y )NzClose (z) zR-> Cannot close object; pdfium library is destroyed. This may cause a memory leak.)r   valuenamelowerr   r   r   _tree_closed)
close_funcr&   obj_reprstateparentargskwargss          r   _close_templater6   .   sx    75;;++1134BxjABik;;&..(((>!4!4!666s$T$V$r"   c                   @    e Zd ZddddZd Zd Zd Zd Zd	 Zdd
Z	y)r   NT)obj
needs_freec                H   t        | d      rJ || _        || n|| _        || _        || _        t        j                  t        j                        | _	        t
        j                  rt        j                         nd | _        d | _        g | _        |r| j!                          y y )N
_finalizer)hasattr_close_func_obj_ex_args
_ex_kwargspypdfium2_cfg_Mutabler   r   _autoclose_stater   uuiduuid4_uuidr;   _kids_attach_finalizer)r(   r0   r8   r9   r4   r5   s         r   __init__zAutoCloseable.__init__=   s     4...%KDS	  - 6 6v{{ C%2%B%BTZZ\

""$ r"   c                     | j                   t        t        |             n| j                   j                  d d }dt        |       j                   d| dS )N   < >)rF   hexidtyper   )r(   
identifiers     r   __repr__zAutoCloseable.__repr__O   sI    &*jj&8SD]djjnnSb>Q
4:&&'qA66r"   c                 
   | j                   J t        j                  | j                  t        | j
                  | j                  t        |       | j                  | j                  | j                  | j                  	      | _         y r%   )r;   weakreffinalizer>   r6   r=   r&   reprrC   r3   r?   r@   r'   s    r   rH   zAutoCloseable._attach_finalizerT   s    &&&!**499otGWGWY]YaYacghlcmos  pE  pE  GK  GR  GR  TX  Ta  Ta  cg  cr  cr  sr"   c                 F    | j                   j                          d | _         y r%   )r;   detachr'   s    r   _detach_finalizerzAutoCloseable._detach_finalizerY   s     r"   c                 r    | j                   y| j                  d k7  r| j                  j                         ryy)NTF)r&   r3   r/   r'   s    r   r/   zAutoCloseable._tree_closed]   s0    88;;$4;;#;#;#=r"   c                 `    | j                   j                  t        j                  |             y r%   )rG   appendrU   ref)r(   ks     r   _add_kidzAutoCloseable._add_kidd   s    

7;;q>+r"   c                    | j                   sy| j                  sd | _         y| j                  D ]+  } |       }|s|j                   s|j                  d       - |rt        j
                  nt        j                  | j                  _        | j                          t        j                  | j                  _        d | _         d | _        | j                  j                          y)NFT)
_by_parent)r&   r;   rG   closer   r    r   rC   r,   r   clear)r(   rb   k_refr_   s       r   rc   zAutoCloseable.closeh   s     xxDHZZ 	)EAQUU4(	)
 :Dfoo#&,nn#

r"   )F)
r   r   r   rI   rS   rH   rZ   r/   r`   rc   r!   r"   r   r   r   ;   s+    .2t %$7
s
,r"   r   )__all__r   r   enumrD   rU   loggingrA   r   	getLoggerr   loggerrB   r   r   Enumr   r   r6   r   r!   r"   r   <module>rl      s|    d 	 
      )			8	$*M**51 $dii  
%C\ Cr"   