
     h4              
       d   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e         fdZde	j        dej        f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                     t          |t          j                  r|j        }nt          |t                    r|}ndS t          j        |          }	 | |         }||k    }n# t          $ r | }Y nw xY w|r|| |<   |S )NF)
isinstancer	   StringWithLanguagevaluestrr   TextStringObjectKeyError)r   r   r   r   stringpdf_str	old_valuemods           [/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/pyhanko/pdf_utils/metadata/info.py_write_meta_stringr      s     (D344  	Hc	"	" u&v..G sO	7"       
 "!
3Js   A! !A10A1	meta_datec                     t          |t                    r|}n/|dk    r't          j        t          j                              }ndS |r|| v rt          j        |          | |<   dS dS )Nnow)tzFT)r   r   r"   tzlocalget_localzoner   pdf_date)r   r   r    r   r   s        r   _write_meta_dater'   *   sz     )X&& 	e		 5 7 7888u C:--!*511
3tu    Fmetainfoonly_update_existingc                    t          |d| j        |          }t          j        }	 |d         }||vrt	          j        | d|           }d}n-# t          t          f$ r t	          j        |          }d}Y nw xY w||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        r1t	          j        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_strings         r   r   r   >   s   
 j$,<P  C |H	{+?**%6"00h00 O Ci    !28<< (D 
h
2F   C i4H   C j$,6J   C j$,6J   C ot|;O   C } #4SXXdm5L5LMM[Js   'A 'A87A8	info_dictc                    	 | |         }n# t           $ r Y d S w xY w	 t          |t          j                  rt          j        |          S n# t
          j        $ r Y nw xY wt                              d|t          |                     d S )NzBKey %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   date_strs      r   _read_date_from_dictrF   n   s    S>   tth 899 	4)(333	4    NNLX  
 4s    
-A AAc                 h   i }dD ]@}	 t          | d|                                                    ||<   1# t          $ r Y =w xY wt          | d          }|||d<   t          | d          }|||d<   d| v r+t          | d                                       d          |d	<   t          j        d
i |S )N)r5   r6   r7   r8   /r.   r9   r-   r1   r0   r/   r:    )r   r5   r   rF   splitr   DocumentMetadata)r>   kwargss_entrycreation_datemod_dates        r   r   r      s      F<  	!),A,A,A"BCCF7OO 	 	 	D	 )ODDM )y#Iz::H"*i ;!788>>sCCz!++F+++s   -6
AA)F)loggingr   typingr   r   r   r   r$   pyhanko.pdf_utilsr   r	    r   __all__	getLogger__name__rB   DictionaryObjectr   
MetaStringboolr   r'   rK   r   rF   r   rI   r(   r   <module>rZ      s          - - - - - - - - - - - -  + + + + + + + +      4
5		8	$	$(	  	
 
   4(	 XsD() 	
 
   . "'- -

 -

"- - 
	- - - -`'.1h   ,,',
, , , , , ,r(   