
    ϔ j                     l   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mZ ddl	Z	ddl
mZ ddl	mZ  ej        e          Z e	j        d          Z ee          Zej        fdZd Z G d	 d
ej                  Z G d d          Z G d d          Zd Z G d d          Z G d de          ZdS ))AutoCastableAutoCloseableObjectTrackerLIBRARY_AVAILABLEDEBUG_AUTOCLOSE_debug_close_warn_close    N)defaultdict)cached_property)r   Fc                    |t           j        k     rd S 	 t          j        t          j                                        | dz                                              d S # t          $ r t          | t          j                   Y d S w xY w)N
)file)
r   valueoswritesysstderrfilenoencode	Exceptionprint)msgprios     lC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pypdfium2/internal/bases.pyr   r      s    o## $
""$$s4x&7&7&9&9::::: $ $ $c
#######$s   AA %BBc                 :    t          | t          j                   d S N)r   loggingWARNING)r   s    r   r   r       s    go&&&&&    c                       e Zd ZdZdZdZdZdS )_STATEr	         N)__name__
__module____qualname__INVALIDAUTOEXPLICITBYPARENT r   r   r!   r!   $   s"        GDHHHHr   r!   c                       e Zd ZdZd ZdS )_FinalizerInfo)
close_funcargskwargstrackedstatec                 b    || _         ||c| _        | _        || _        t          j        | _        d S r   )r/   r0   r1   r2   r!   r)   r3   )selfr/   r0   r1   r2   s        r   __init__z_FinalizerInfo.__init__6   s-    $!%v	4;[


r   Nr%   r&   r'   	__slots__r6   r,   r   r   r.   r.   4   s(        DI! ! ! ! !r   r.   c                       e Zd ZdZd ZdS )_FinalizerOwnerrawparentwreftypereprc                 P    ||c| _         | _        |||c| _        | _        | _        d S r   r;   )r5   r<   r=   r>   r?   r@   s         r   r6   z_FinalizerOwner.__init__>   s,     #V$+*.d'	49diiir   Nr7   r,   r   r   r:   r:   <   s(        9I; ; ; ; ;r   r:   c                 d   t          d| j        j                                         d|j                    t
          st          d|j         d           d S | j        t          j        k    sJ |j	        }|n|
                                rJ | j        rQ|j        |j        v s$J |j         d|j         d| d|j                     |j                            |j                    | j        |j        g| j        R i | j         t&          |j                                     |j                   d S )NzClose (z) z-> Cannot close z<; pdfium library is destroyed. This may cause a memory leak. z, )r   r3   namelowerr@   r   r   r!   r(   r=   _tree_closedr2   r>   _kidsremover/   r<   r0   r1   r   r?   )infoownerr=   s      r   _close_templaterK   C   sJ    B4:?0022BBejBBCCC ouzoooppp:''''\F ,&&(((((< 	,:-dd%*/d/duz/d/dV/d/dV\Vb/d/ddddL
+++DOEI9	999T[999%*$$UZ00000r   c                   :    e Zd Zed             Zed             ZdS )r   c                     | j         S r   )r<   r5   s    r   _as_parameter_zAutoCastable._as_parameter_]   s    
 xr   c                 *    t          j        |           S r   )weakrefrefrN   s    r   _wref_to_selfzAutoCastable._wref_to_selfd   s    {4   r   N)r%   r&   r'   propertyrO   r   rS   r,   r   r   r   r   [   sH          X ! ! _! ! !r   r   c                   p    e Zd ZdddddZed             Zed             Zd Zd Zd	 Z	d
 Z
d ZddZdS )r   NT)obj
needs_freer2   c                    t          | d          rJ t          ||||          | _        || n|| _        d | _        |r|                                  d S d S )N
_finalizer)hasattrr.   	_fin_info_fin_objrY   _attach_finalizer)r5   r/   rV   rW   r2   r0   r1   s          r   r6   zAutoCloseable.__init__k   sp     4.....'
D&'JJ #4 	%""$$$$$	% 	%r   c                     t                      S r   )setrN   s    r   rG   zAutoCloseable._kidsw   s    uur   c                 `    t           j        t          j        k     rt	          j                    nd S r   )r   r   r   r   uuiduuid4rN   s    r   _uuidzAutoCloseable._uuid{   s!    .4wFPtz|||DPr   c                     | j         t          t          |                     n| j         j        d d         }dt          |           j         d| dS )N   <rC   >)rc   hexidr?   r%   )r5   
identifiers     r   __repr__zAutoCloseable.__repr__   sM    &*jQSD]]]djnSbS>Q
64::&666666r   c           	      4   | j         J t          |           }t          | j        | j        | j        |t          |                     }t          j        | j	        t          | j        |          | _         t          |                             | j                   d S r   )rY   r?   r:   r<   r=   rS   r@   rQ   finalizer\   rK   r[   r   add)r5   own_typerJ   s      r   r]   zAutoCloseable._attach_finalizer   s    &&&::  $+t7I8UYZ^U_U_``!*4=/4>[`aah##D$677777r   c                     | j                                          d | _         t          t          |                                        | j                   d S r   )rY   detachr   r?   rH   rS   rN   s    r   _detach_finalizerzAutoCloseable._detach_finalizer   sE       d4jj!(();<<<<<r   c                 d    | j         dS | j        d k    r| j                                        rdS dS )NTF)r<   r=   rF   rN   s    r   rF   zAutoCloseable._tree_closed   s?    8 	4;$ 	4;#;#;#=#= 	4ur   c                 D    | j                             |j                   d S r   )rG   rn   rS   )r5   kids     r   _add_kidzAutoCloseable._add_kid   s    
)+++++r   Fc                    | j         sdS | j        s	d | _         dS g }| j        D ]*} |            }|r|j         r|                    |           +|D ]}|                    d           | j        r;t
                              d| j                    | j                                         |rt          j	        nt          j
        | j        _        |                                  t          j        | j        _        d | _         d | _        dS )NFT)
_by_parentz-Some kids weakrefs have not been cleaned up: )r<   rY   rG   appendcloseloggerwarningclearr!   r+   r*   r[   r3   r(   )r5   rx   
need_closek_wrefks        r   rz   zAutoCloseable.close   s   x 	5 	DH5 
j 	% 	%FA %QU %!!!$$$ 	% 	%AGGtG$$$$: 	NNW4:WWXXXJ2<Qv&/%~tr   )F)r%   r&   r'   r6   r   rG   rc   rk   r]   rr   rF   rv   rz   r,   r   r   r   r   i   s        .2tT 
% 
% 
% 
% 
%   _ Q Q _Q7 7 78 8 8= = =
  , , ,
     r   r   )__all__r   r   enumra   rQ   r   collectionsr
   pypdfium2_cfgpypdfium2._lazyr   r   	getLoggerr%   r{   _Mutabler   r_   r   DEBUGr   r   Enumr!   r.   r:   rK   r   r   r,   r   r   <module>r      s   D 				 



     # # # # # #     + + + + + + ) ) ) ) ) )		8	$	$*M*511 C   #= $ $ $ $' ' '    di    ! ! ! ! ! ! ! !; ; ; ; ; ; ; ;1 1 10! ! ! ! ! ! ! !P P P P P\ P P P P Pr   