
    Wwg              
          d dl Z d dlmZ d dlmZmZmZmZ d dlZd dlm	Z	m
Z
 ddlmZ ddgZ e j                  e      Zd	e	j"                  d
edej&                  dedef
dZd	e	j"                  d
edeeedf   dedef
dZ	 ddej.                  de	j"                  dedefdZde	j"                  d
ededee   fdZ	 dde	j"                  dedej.                  fdZy)    N)datetime)AnyDictOptionalUnion)genericmisc   )modelupdate_info_dictview_from_info_dict
dictionarykeymeta_strexisting_onlyreturnc                     t        |t        j                        r|j                  }nt        |t              r|}nyt        j                  |      }	 | |   }||k7  }|r|| |<   |S # t        $ r | }Y w xY w)NF)
isinstancer	   StringWithLanguagevaluestrr   TextStringObjectKeyError)r   r   r   r   stringpdf_str	old_valuemods           V/var/www/horilla/myenv/lib/python3.12/site-packages/pyhanko/pdf_utils/metadata/info.py_write_meta_stringr      s     (D334 	Hc	"&&v.G sO	7" !
3J	    s   
A% %A43A4	meta_datec                     t        |t              r|}n/|dk(  r)t        j                  t        j                               }ny|r|| v rt        j                  |      | |<   yy)Nnow)tzFT)r   r   r"   tzlocalget_localzoner   pdf_date)r   r   r    r   r   s        r   _write_meta_dater'   *   sY     )X&	e	 5 5 78C:-!**51
3    metainfoonly_update_existingc                    t        |d| j                  |      }t        j                  }	 |d   }||vrt	        j
                  | d|       }d}||d<   | j                  r|S |t        |d| j                  |      z  }|t        |d| j                  |      z  }|t        |d| j                  |      z  }|t        |d	| j                  |      z  }|t        |d
| j                  |      z  }| j                  r3t	        j
                  dj!                  | j                              |d<   d}|S # t        t        f$ r t	        j
                  |      }d}Y 	w xY w)N/ModDate)r   z	/Producerz; Tz/Titlez/Authorz/Subjectz/Creator/CreationDate,	/Keywords)r'   last_modifiedr   VENDORr   r   r   	TypeErrorxmp_unmanagedr   titleauthorsubjectcreatorcreatedkeywordsjoin)r)   r*   r+   r   producerproducer_strings         r   r   r   >   s   
 j$,,<PC ||H	{+?*%66"#2hZ0O C
 (D
h

2F C i4H C j$,,6J C j$,,6J C ot||;O C }}#44SXXdmm5LM[J; i  !228<s   %D0 0&EE	info_dictstrictc                    	 | |   }	 t        |t        j                        rt        j                  ||      S 	 t        j                  d|t        |             y # t         $ r Y y w xY w# t
        j                  $ r Y Ew xY w)Nr?   zBKey %s in info dict has value %s, which is not a valid date string)
r   r   r   r   parse_pdf_dater	   PdfReadErrorloggerwarningrepr)r>   r   r?   date_strs       r   _read_date_from_dictrH   n   s    S>h 8 89))(6BB :
 NNLX
     s"   A 0A* 	A'&A'*B ?B c                 >   i }dD ]%  }	 t        | d|j                                   ||<   ' t        | d|      }|||d<   t        | d|      }|||d<   d| v r t        | d         j	                  d	      |d
<   t        j                  di |S # t        $ r Y w xY w)N)r5   r6   r7   r8   /r.   rA   r9   r-   r1   r0   r/   r:    )r   r5   r   rH   splitr   DocumentMetadata)r>   r?   kwargss_entrycreation_datemod_dates         r   r   r      s      F< 	!)a/@,A"BCF7O )?6M  )y#Iz&IH"*i ;!78>>sCz!!+F++!  		s   "B	BB)F)T)loggingr   typingr   r   r   r   r$   pyhanko.pdf_utilsr   r	    r   __all__	getLogger__name__rD   DictionaryObjectr   
MetaStringboolr   r'   rM   r   rH   r   rK   r(   r   <module>r\      sT     - -  + 4
5			8	$((	  	
 
4((	 XsD() 	
 
. "'-

 
 -

"
"- - 
	-`''.1;?h. 9=,'',15,
,r(   