
    Ng              
          U d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 erddl
mZmZ ddlmZ ddZddZddZe	j        ee	j        ee	j        d e	j        ee	j        d iZded<   ddZdS )zSupport functions called by the C++ library binding layer.

Not intended to be called from Python, and subject to change at any time.
    )annotations)TYPE_CHECKINGCallable)warn)Name)PdfPdfError)
Dictionarypdfr   versionstrreturnNonec                    t           j        | j        vrdS 	 |                     dd          5 }d|v r||d<   ddd           dS # 1 swxY w Y   dS # t          $ r}t          d          |d}~ww xY w)z-Update XMP metadata to specified PDF version.NF)set_pikepdf_as_editorupdate_docinfozpdf:PDFVersionz6While trying to update XMP metadata, an error occurred)r   MetadataRootopen_metadata	Exceptionr	   )r   r   metaes       O/var/www/html/ai-engine/env/lib/python3.11/site-packages/pikepdf/_cpphelpers.pyupdate_xmp_pdfversionr      s    }CH$$X"'  
 
 	14'')0%&		1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1
  X X XOPPVWWXs9   A 
AA A		A A	A 
A1A,,A1nintc                :   | dk     rt          d|  d          g }| dk    r1t          | dz
  d          \  } }|                    |           | dk    1t          d          fdt	          |          D             }d                    d	 |D                       S )
z9Excel-style column numbering A..Z, AA..AZ..BA..ZZ.., AAA.   Can't represent z in alphabetic numberingr      Ac                    g | ]}|z   S  r#   ).0vbases     r   
<listcomp>z_alpha.<locals>.<listcomp>-   s    ,,,1TAX,,,     c              3  4   K   | ]}t          |          V  d S N)chr)r$   os     r   	<genexpr>z_alpha.<locals>.<genexpr>.   s(      ((a3q66((((((r(   )
ValueErrordivmodappendordreversedjoin)r   prordsr&   s       @r   _alphar8   $   s    1uuGAGGGHHH
A
a%%a!eR  1	 a%% s88D,,,,,,,D77((4((((((r(   c                    d| cxk    rdk    sn t          d|  d          d}d}|D ]\  }}| |k    r||z  }| |z  } | |k    |S )z>Convert integer n to Roman numeral representation as a string.r   i  r   z in Roman numerals))i  M)i  CM)i  D)i  CD)d   C)Z   XC)2   L)(   XL)
   X)	   IX)   V)   IV)r   Ir)   )r/   )r   roman_numeralsromanvaluenumerals        r   _romanrS   1   s    NNNNdNNNNAAAAABBBN E(  w5jjWEJA 5jj Lr(   c                D    t          |                                           S r+   )r8   lowerxs    r   <lambda>rX   O       fQiioo'' r(   c                D    t          |                                           S r+   )rS   rU   rV   s    r   rX   rX   Q   rY   r(   z dict[Name, Callable[[int], str]]LABEL_STYLE_MAP
label_dictint | Dictionaryc                "   t          | t                    rt          |           S d}t          j        | v r$| t          j                 }|t          |          z  }t          j        | v rt          j        | v r| t          j                 nd}t          |t                    st          dt                     d}| t          j                 }t          |t                    rt          |         } ||          }||z  }nt          dt                     |S )z?Convert a label dictionary returned by qpdf into a text string.r)   r   z9Page label dictionary has invalid non-integer start valuez2Page label dictionary has invalid page label style)

isinstancer   r   r   PSStr   UserWarningr[   )r\   labelprefixnumeric_valuestylestyle_fnrQ   s          r   label_from_label_dictri   U   s   *c"" :EvDF#V v/3w*/D/D
47++!--- 	K[   M46"eT"" 	T&u-HH]++EUNEEE{SSSLr(   N)r   r   r   r   r   r   )r   r   r   r   )r\   r]   r   r   )__doc__
__future__r   typingr   r   warningsr   pikepdf.objectsr   pikepdf._corer   r	   r
   r   r8   rS   r<   r   r!   aRr6   r[   __annotations__ri   r#   r(   r   <module>rs      s<    
 # " " " " " * * * * * * * *                   +++++++++******X X X X
) 
) 
) 
)   8 	FCFFF''FFF''5         r(   