o
    Zh                     @   sH   d Z ddlZddlZddlmZ ddlmZ e	dZ
G dd dZdS ))PdfUnspHandler    NZ	pypdfium2c                   @   s>   e Zd ZdZdd Zdd ZdddZd	d
 Zedd Z	dS )r   a  
    Unsupported feature handler helper class.
    
    Attributes:
        handlers (dict[str, typing.Callable]):
            A dictionary of named handler functions to be called with an unsupported code (:attr:`FPDF_UNSP_*`) when PDFium detects an unsupported feature.
    c                 C   s   i | _ d | _d S N)handlers_configself r   U/var/www/html/lang_env/lib/python3.10/site-packages/pypdfium2/_helpers/unsupported.py__init__   s   
zPdfUnspHandler.__init__c                 C   s   | j  D ]}|| qd S r   )r   values)r   _typehandlerr   r   r	   __call__   s   
zPdfUnspHandler.__call__Tc                 C   sN   t jdd| _t| jd|  t | j t| j |r%t	j
| jd< dS dS )a  
        Attach the handler to PDFium, and register an exit function to keep the object alive for the rest of the session.
        
        Parameters:
            add_default (bool):
                If True, add a default callback that will log unsupported features as warning.
           )versionZFSDK_UnSupport_HandlerdefaultN)pdfium_cZUNSUPPORT_INFOr   pdfium_iZset_callbackZFSDK_SetUnSpObjProcessHandleratexitregister_keepr   _defaultr   )r   Zadd_defaultr   r   r	   setup!   s   	zPdfUnspHandler.setupc                 C   s   t | j t | j d S r   )idr   r   r   r   r   r	   r   4   s   
zPdfUnspHandler._keepc                 C   s   t dtj|   d S )NzUnsupported PDF feature: )
lib_loggerwarningr   ZUnsupportedInfoToStrget)r   r   r   r	   r   9   s   zPdfUnspHandler._defaultN)T)
__name__
__module____qualname____doc__r
   r   r   r   staticmethodr   r   r   r   r	   r      s    
r   )__all__r   loggingZpypdfium2.rawrawr   Zpypdfium2.internalZinternalr   	getLoggerr   r   r   r   r   r	   <module>   s   
