o
    vh                  
   @   s  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 eZd	e	jd
edejdedef
ddZd	e	jd
edeeedf dedef
ddZ	ddejde	jdedefddZde	jd
ededee fddZ	dde	jdedejfddZdS )     N)datetime)AnyDictOptionalUnion)genericmisc   )modelupdate_info_dictview_from_info_dict
dictionarykeymeta_strexisting_onlyreturnc                 C   sp   t |tjr
|j}n
t |tr|}ndS t|}z
| | }||k}W n ty/   | }Y nw |r6|| |< |S )NF)
isinstancer   StringWithLanguagevaluestrr   TextStringObjectKeyError)r   r   r   r   stringpdf_str	old_valuemod r   ]/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/pyhanko/pdf_utils/metadata/info.py_write_meta_string   s   


r   	meta_datec                 C   sP   t |tr|}n|dkrtjt d}ndS |r|| v r&t|| |< dS dS )Nnow)tzFT)r   r   r    tzlocalget_localzoner   pdf_date)r   r   r   r   r   r   r   r   _write_meta_date)   s   
r%   Fmetainfoonly_update_existingc              	   C   s  t |d| j|d}tj}z|d }||vr!t| d| }d}W n ttfy4   t|}d}Y nw ||d< | jr>|S |t	|d| j
|dO }|t	|d| j|dO }|t	|d| j|dO }|t	|d	| j|dO }|t |d
| j|dO }| jrtd| j|d< d}|S )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_stringr   r   r   r   =   sL   






	info_dictstrictc                 C   sn   z| | }W n
 t y   Y d S w zt|tjr tj||dW S W n
 tjy+   Y nw td|t	| d S )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_strr   r   r   _read_date_from_dictm   s$   rC   Tc              	   C   s   i }dD ]}zt | d|   ||< W q ty   Y qw t| d|d}|d ur.||d< t| d|d}|d ur=||d< d| v rLt | d d	|d
< tjdi |S )N)r1   r2   r3   r4   /r*   r<   r5   r)   r-   r,   r+   r6   r   )r   r1   r   rC   splitr
   DocumentMetadata)r:   r;   kwargss_entrycreation_datemod_dater   r   r   r      s$   )F)T)loggingr   typingr   r   r   r   r"   pyhanko.pdf_utilsr   r    r
   __all__	getLogger__name__r?   DictionaryObjectr   
MetaStringboolr   r%   rF   r   rC   r   r   r   r   r   <module>   sr    



0
