
    OAi                        % S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  \(       a  SSKJr  SS	KJr  SS
 jrSS jrSS jr\\S \S S.rS\S'   SS jrg)zSupport functions called by the C++ library binding layer.

Not intended to be called from Python, and subject to change at any time.
    )annotations)Callable)TYPE_CHECKING)warn)PdfError)Name)Pdf)
Dictionaryc                    [         R                  U R                  ;  a  g U R                  SSS9 nSU;   a  XS'   SSS5        g! , (       d  f       g= f! [         a  n[        S5      UeSnAff = f)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   )pdfversionmetaes       O/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pikepdf/_cpphelpers.pyupdate_xmp_pdfversionr      sy    }}CHH$X"'  
4')0%&	
 
 

  XOPVWWXs3   A AA 
AA A 
A1 A,,A1c                   U S:  a  [        SU  S35      e/ nU S:  a*  [        U S-
  S5      u  pUR                  U5        U S:  a  M*  [        S5      n[	        U5       Vs/ s H  oCU-   PM	     nnSR                  S U 5       5      $ s  snf )	z9Excel-style column numbering A..Z, AA..AZ..BA..ZZ.., AAA.   Can't represent z in alphabetic numberingr      A c              3  8   #    U  H  n[        U5      v   M     g 7fN)chr).0os     r   	<genexpr>_alpha.<locals>.<genexpr>0   s     (4a3q664s   )
ValueErrordivmodappendordreversedjoin)nprbasevordss         r   _alphar1   &   s    1u+A3.FGHH
A
a%a!eR 	 a% s8D (,1AXD,77(4((( -s    Bc                    SU s=::  a  S::  d  O  [        SU  S35      eSnSnU H  u  p4X:  d  M  X$-  nX-  n X:  a  M  M     U$ )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   _romanrL   3   s_    NdN+A3.@ABBN E(jEJA j ) L    c                4    [        U 5      R                  5       $ r   )r1   lowerxs    r   <lambda>rR   Q       6!9??$rM   c                4    [        U 5      R                  5       $ r   )rL   rO   rP   s    r   rR   rR   S   rS   rM   )r5   r   aRr-   zdict[str, Callable[[int], str]]LABEL_STYLE_MAPc                2   [        U [        5      (       a  [        U 5      $ Sn[        R                  U ;   a!  U [        R                     nU[        U5      -  n[        R
                  U ;   a  [        R                  U ;   a  U [        R                     OSn[        U[        5      (       d  [        S[        5        SnU [        R
                     n[        U[        5      (       a#  [        [        U5      SS    nU" U5      nX-  nU$ [        S[        5        U$ )z?Convert a label dictionary returned by qpdf into a text string.r   r   z9Page label dictionary has invalid non-integer start valueNz2Page label dictionary has invalid page label style)

isinstanceintstrr   PSStr   UserWarningrW   )
label_dictlabelprefixnumeric_valuestylestyle_fnrJ   s          r   label_from_label_dictrf   W   s    *c"":EvvDFF#V vv/3ww*/D
477+!---K[ M466"eT""&s5z!"~6H]+ENE L E{SLrM   N)r   r	   r   r[   returnNone)r+   rZ   rg   r[   )r`   zint | Dictionaryrg   r[   )__doc__
__future__r   collections.abcr   typingr   warningsr   pikepdf.exceptionsr   pikepdf.objectsr   pikepdf._corer	   r
   r   r1   rL   r[   rW   __annotations__rf    rM   r   <module>rs      s\   
 # $    '  !*X
)8 
		$		$40 rM   