ó
    ‰*£h*  ã                  ó˜   • S r SSKJr  SSKrSSKrSSKJrJrJ	r	J
r
  SSKJrJr  SSKJr  SSKJrJr  \(       a  SSKJr   " S	 S
\5      rg)z@Custom element classes for core properties-related XML elements.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚCallableÚcast)ÚnsdeclsÚqn)Ú	parse_xml)ÚBaseOxmlElementÚ	ZeroOrOne)Ú_Elementc                  ó0  • \ rS rSr% SrS\S'   \" SSS9r\" SSS9r\" S	SS9r	\" S
SS9r
\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9rS\S'   \" SSS9r\" SSS9r\" SSS9rS\" SSS5      -  r\SDS j5       r\SES j5       r\R8                  SFS j5       r\SES j5       r\R8                  SFS  j5       r\SES! j5       r\R8                  SFS" j5       r\SES# j5       r\R8                  SFS$ j5       r\SGS% j5       r \ R8                  SHS& j5       r \SES' j5       r!\!R8                  SFS( j5       r!\SES) j5       r"\"R8                  SFS* j5       r"\SES+ j5       r#\#R8                  SFS, j5       r#\SES- j5       r$\$R8                  SFS. j5       r$\SGS/ j5       r%\%R8                  SHS0 j5       r%\SGS1 j5       r&\&R8                  SHS2 j5       r&\SIS3 j5       r'\'R8                  SJS4 j5       r'\SES5 j5       r(\(R8                  SFS6 j5       r(\SES7 j5       r)\)R8                  SFS8 j5       r)\SES9 j5       r*\*R8                  SFS: j5       r*SKS; jr+SLS< jr,\SMS= j5       r-\.R^                  " S>5      r0\SNS? j5       r1SOS@ jr2SPSA jr3SQSB jr4Sr5gC)RÚCT_CorePropertiesé   aH  `<cp:coreProperties>` element, the root element of the Core Properties part.

Stored as `/docProps/core.xml`. Implements many of the Dublin Core document metadata
elements. String elements resolve to an empty string ("") if the element is not
present in the XML. String elements are limited in length to 255 unicode characters.
zCallable[[], etree_Element]Úget_or_add_revisionzcp:category© )Ú
successorszcp:contentStatuszdcterms:createdz
dc:creatorzdc:descriptionzdc:identifierzcp:keywordszdc:languagezcp:lastModifiedByzcp:lastPrintedzdcterms:modifiedzcp:revisionzetree_Element | NoneÚrevisionz
dc:subjectzdc:titlez
cp:versionz<cp:coreProperties %s/>
ÚcpÚdcÚdctermsc                óP   • U R                   n[        [        [        U5      5      nU$ )z+Return a new `<cp:coreProperties>` element.)Ú_coreProperties_tmplr   r   r
   )ÚclsÚxmlÚcorePropertiess      ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docx/oxml/coreprops.pyÚnewÚCT_CoreProperties.new/   s&   € ð ×&Ñ&ˆÜÔ/´¸3³Ó@ˆØÐó    c                ó$   • U R                  S5      $ )z+The text in the `dc:creator` child element.Úcreator©Ú_text_of_element©Úselfs    r   Úauthor_textÚCT_CoreProperties.author_text6   s   € ð ×$Ñ$ YÓ/Ð/r    c                ó(   • U R                  SU5        g )Nr"   ©Ú_set_element_text©r&   Úvalues     r   r'   r(   ;   ó   € à×Ñ˜y¨%Õ0r    c                ó$   • U R                  S5      $ ©NÚcategoryr#   r%   s    r   Úcategory_textÚCT_CoreProperties.category_text?   ó   € à×$Ñ$ ZÓ0Ð0r    c                ó(   • U R                  SU5        g r0   r*   r,   s     r   r2   r3   C   ó   € à×Ñ˜z¨5Õ1r    c                ó$   • U R                  S5      $ ©NÚdescriptionr#   r%   s    r   Úcomments_textÚCT_CoreProperties.comments_textG   s   € à×$Ñ$ ]Ó3Ð3r    c                ó(   • U R                  SU5        g r8   r*   r,   s     r   r:   r;   K   s   € à×Ñ˜}¨eÕ4r    c                ó$   • U R                  S5      $ ©NÚcontentStatusr#   r%   s    r   ÚcontentStatus_textÚ$CT_CoreProperties.contentStatus_textO   s   € à×$Ñ$ _Ó5Ð5r    c                ó(   • U R                  SU5        g r>   r*   r,   s     r   r@   rA   S   s   € à×Ñ˜°Õ6r    c                ó$   • U R                  S5      $ ©NÚcreated©Ú_datetime_of_elementr%   s    r   Úcreated_datetimeÚ"CT_CoreProperties.created_datetimeW   s   € à×(Ñ(¨Ó3Ð3r    c                ó(   • U R                  SU5        g rD   ©Ú_set_element_datetimer,   s     r   rH   rI   [   s   € à×"Ñ" 9¨eÕ4r    c                ó$   • U R                  S5      $ ©NÚ
identifierr#   r%   s    r   Úidentifier_textÚ!CT_CoreProperties.identifier_text_   s   € à×$Ñ$ \Ó2Ð2r    c                ó(   • U R                  SU5        g rN   r*   r,   s     r   rP   rQ   c   s   € à×Ñ˜|¨UÕ3r    c                ó$   • U R                  S5      $ ©NÚkeywordsr#   r%   s    r   Úkeywords_textÚCT_CoreProperties.keywords_textg   r4   r    c                ó(   • U R                  SU5        g rT   r*   r,   s     r   rV   rW   k   r6   r    c                ó$   • U R                  S5      $ ©NÚlanguager#   r%   s    r   Úlanguage_textÚCT_CoreProperties.language_texto   r4   r    c                ó(   • U R                  SU5        g rZ   r*   r,   s     r   r\   r]   s   r6   r    c                ó$   • U R                  S5      $ ©NÚlastModifiedByr#   r%   s    r   ÚlastModifiedBy_textÚ%CT_CoreProperties.lastModifiedBy_textw   s   € à×$Ñ$Ð%5Ó6Ð6r    c                ó(   • U R                  SU5        g r`   r*   r,   s     r   rb   rc   {   s   € à×ÑÐ/°Õ7r    c                ó$   • U R                  S5      $ ©NÚlastPrintedrF   r%   s    r   ÚlastPrinted_datetimeÚ&CT_CoreProperties.lastPrinted_datetime   s   € à×(Ñ(¨Ó7Ð7r    c                ó(   • U R                  SU5        g rf   rK   r,   s     r   rh   ri   ƒ   s   € à×"Ñ" =°%Õ8r    c                ó$   • U R                  S5      $ ©NÚmodifiedrF   r%   s    r   Úmodified_datetimeÚ#CT_CoreProperties.modified_datetime‡   s   € à×(Ñ(¨Ó4Ð4r    c                ó(   • U R                  SU5        g rl   rK   r,   s     r   rn   ro   ‹   s   € à×"Ñ" :¨uÕ5r    c                óœ   • U R                   nUc  g[        UR                  5      n [        U5      nUS:  a  SnU$ ! [         a    Sn Nf = f)z#Integer value of revision property.r   )r   ÚstrÚtextÚintÚ
ValueError)r&   r   Úrevision_strs      r   Úrevision_numberÚ!CT_CoreProperties.revision_number�   s\   € ð —=‘=ˆØÑØÜ˜8Ÿ=™=Ó)ˆð	Ü˜<Ó(ˆHð
 �a‹<ØˆHØˆøô ó 	àŠHð	ús   §< ¼AÁ
Ac                ó˜   • [        U[        5      (       a  US:  a  Sn[        X!-  5      eU R                  5       n[	        U5      Ul        g)z9Set revision property to string value of integer `value`.é   z1revision property requires positive int, got '%s'N)Ú
isinstancert   ru   r   rr   rs   )r&   r-   Útmplr   s       r   rw   rx       sB   € ô ˜%¤×%Ñ%¨°«ØFˆDÜ˜T™\Ó*Ð*Ø×+Ñ+Ó-ˆÜ˜E›
ˆ�r    c                ó$   • U R                  S5      $ ©NÚsubjectr#   r%   s    r   Úsubject_textÚCT_CoreProperties.subject_text©   ó   € à×$Ñ$ YÓ/Ð/r    c                ó(   • U R                  SU5        g r~   r*   r,   s     r   r€   r�   ­   r.   r    c                ó$   • U R                  S5      $ ©NÚtitler#   r%   s    r   Ú
title_textÚCT_CoreProperties.title_text±   s   € à×$Ñ$ WÓ-Ð-r    c                ó(   • U R                  SU5        g r…   r*   r,   s     r   r‡   rˆ   µ   s   € à×Ñ˜w¨Õ.r    c                ó$   • U R                  S5      $ ©NÚversionr#   r%   s    r   Úversion_textÚCT_CoreProperties.version_text¹   r‚   r    c                ó(   • U R                  SU5        g r‹   r*   r,   s     r   r�   rŽ   ½   r.   r    c                ó|   • [        X5      nUc  g UR                  n U R                  U5      $ ! [         a     g f = f)N)Úgetattrrs   Ú_parse_W3CDTF_to_datetimeru   )r&   Úproperty_nameÚelementÚdatetime_strs       r   rG   Ú&CT_CoreProperties._datetime_of_elementÁ   sE   € Ü˜$Ó.ˆØ‰?ØØ—|‘|ˆð	Ø×1Ñ1°,Ó?Ð?øÜó 	áð	ús   �. ®
;º;c                ó4   • SU-  n[        X5      nU" 5       nU$ )z@Return element returned by "get_or_add_" method for `prop_name`.zget_or_add_%s)r‘   )r&   Ú	prop_nameÚget_or_add_method_nameÚget_or_add_methodr”   s        r   Ú_get_or_addÚCT_CoreProperties._get_or_addÌ   s%   € à!0°9Ñ!<ÐÜ# DÓAÐÙ#Ó%ˆØˆr    c                óü   • U R                   R                  U5      nUc  [        SU-  5      eUR                  5       u  pEnUS:X  a  SOSn[	        U5      U-  n[	        U5      U-  n	[
        R                  " X‰S9n
X-   $ )znA |datetime| instance offset from `dt_` by timezone offset in `offset_str`.

`offset_str` is like `"-07:00"`.
z!'%s' is not a valid offset stringÚ+éÿÿÿÿrz   )ÚhoursÚminutes)Ú_offset_patternÚmatchru   Úgroupsrt   ÚdtÚ	timedelta)r   Údt_Ú
offset_strr£   ÚsignÚ	hours_strÚminutes_strÚsign_factorr    r¡   Útds              r   Ú
_offset_dtÚCT_CoreProperties._offset_dtÓ   s   € ð ×#Ñ#×)Ñ)¨*Ó5ˆØ‰=ÜÐ@À:ÑMÓNÐNØ',§|¡|£~Ñ$ˆ˜Ø  C›K‘b¨QˆÜ�I“ Ñ,ˆÜ�kÓ" [Ñ0ˆÜ�\Š\ Ñ7ˆØ‰xˆr    z([+-])(\d\d):(\d\d)c                óD  • SnUS S nUSS  nS nU H#  n [         R                  R                  X65      nM%     Uc  Sn[        Xa-  5      e[	        U5      S:X  a  U R                  XT5      nUR                  [         R                  R                  S9$ ! [         a     M�  f = f)N)z%Y-%m-%dT%H:%M:%Sz%Y-%m-%dz%Y-%mz%Yé   z+could not parse W3CDTF datetime string '%s'é   )Útzinfo)	r¥   ÚdatetimeÚstrptimeru   Úlenr®   ÚreplaceÚtimezoneÚutc)r   Ú
w3cdtf_strÚ	templatesÚparseable_partr¨   r§   r|   s          r   r’   Ú+CT_CoreProperties._parse_W3CDTF_to_datetimeå   sª   € ð
ˆ	ð $ C R˜ˆØ  �_ˆ
ØˆÛˆDðÜ—k‘k×*Ñ*¨>Ó@’ñ ð
 ‰;Ø@ˆDÜ˜TÑ.Ó/Ð/Üˆz‹?˜aÓØ—.‘. Ó1ˆCØ�{‰{¤"§+¡+§/¡/ˆ{Ð2Ð2øô ó Úðús   •BÂ
BÂBc                ój  • [        U[        R                  5      (       d  Sn[        U[	        U5      -  5      eU R                  U5      nUR                  S5      nXTl        US;   aM  U R                  [        S5      S5        UR                  [        S5      S5        U R                  [        S5      	 gg)	zCSet date/time value of child element having `prop_name` to `value`.z;property requires <type 'datetime.datetime'> object, got %sz%Y-%m-%dT%H:%M:%SZ)rE   rm   zxsi:fooÚbarzxsi:typezdcterms:W3CDTFN)r{   r¥   r´   ru   Útyper›   Ústrftimers   Úsetr	   Úattrib)r&   r˜   r-   r|   r”   Údt_strs         r   rL   Ú'CT_CoreProperties._set_element_datetime  s•   € ä˜%¤§¡×-Ñ-ØPˆDÜ˜T¤D¨£KÑ/Ó0Ð0Ø×"Ñ" 9Ó-ˆØ—‘Ð 4Ó5ˆØŒØÐ/Ó/ð
 �H‰H”R˜	“] EÔ*Ø�K‰Kœ˜:›Ð(8Ô9Ø—‘œB˜y›MÑ*ð 0r    c                ó®   • [        U[        5      (       d  [        U5      n[        U5      S:”  a  Sn[        X2-  5      eU R	                  U5      nX$l        g)z/Set string value of `name` property to `value`.éÿ   z0exceeded 255 char limit for property, got:

'%s'N)r{   rr   r¶   ru   r›   rs   )r&   r˜   r-   r|   r”   s        r   r+   Ú#CT_CoreProperties._set_element_text  sK   € ä˜%¤×%Ñ%Ü˜“JˆEäˆu‹:˜ÓØGˆDÜ˜T™\Ó*Ð*Ø×"Ñ" 9Ó-ˆØ�r    c                óT   • [        X5      nUc  gUR                  c  gUR                  $ )zwThe text in the element matching `property_name`.

The empty string if the element is not present or contains no text.
Ú )r‘   rs   )r&   r“   r”   s      r   r$   Ú"CT_CoreProperties._text_of_element   s-   € ô
 ˜$Ó.ˆØ‰?ØØ�<‰<ÑØØ�|‰|Ðr    N)Úreturnr   )rÌ   rr   )r-   rr   )rÌ   údt.datetime | None)r-   údt.datetime)rÌ   rt   )r-   rt   )r“   rr   rÌ   rÍ   )r˜   rr   rÌ   r   )r§   rÎ   r¨   rr   rÌ   rÎ   )rº   rr   rÌ   rÎ   )r˜   rr   r-   rÎ   rÌ   ÚNone)r˜   rr   r-   r   rÌ   rÏ   )r“   rr   rÌ   rr   )6Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   r1   r?   rE   r"   r9   rO   rU   r[   ra   rg   rm   r   r   r†   rŒ   r   r   Úclassmethodr   Úpropertyr'   Úsetterr2   r:   r@   rH   rP   rV   r\   rb   rh   rn   rw   r€   r‡   r�   rG   r›   r®   ÚreÚcompiler¢   r’   rL   r+   r$   Ú__static_attributes__r   r    r   r   r      sþ  ‡ ñð 5Ó4á˜°2Ñ6€HÙÐ0¸RÑ@€MÙÐ)°bÑ9€GÙ˜°Ñ4€GÙÐ,¸Ñ<€KÙ˜?°rÑ:€JÙ˜°2Ñ6€HÙ˜°2Ñ6€HÙÐ2¸rÑB€NÙÐ,¸Ñ<€KÙÐ+¸Ñ;€HÙ%.Ø "ñ&€HÐ"ó ñ ˜°Ñ4€GÙ�j¨RÑ0€EÙ˜°Ñ4€Gà6¹ÀÀtÈYÓ9WÑWÐàóó ðð ó0ó ð0ð ×Ñó1ó ð1ð ó1ó ð1ð ×Ñó2ó ð2ð ó4ó ð4ð ×Ñó5ó ð5ð ó6ó ð6ð ×Ñó7ó ð7ð ó4ó ð4ð ×Ñó5ó ð5ð ó3ó ð3ð ×Ñó4ó ð4ð ó1ó ð1ð ×Ñó2ó ð2ð ó1ó ð1ð ×Ñó2ó ð2ð ó7ó ð7ð ×Ñó8ó  ð8ð ó8ó ð8ð × Ñ ó9ó !ð9ð ó5ó ð5ð ×Ñó6ó ð6ð óó ðð  ×Ñó#ó ð#ð ó0ó ð0ð ×Ñó1ó ð1ð ó.ó ð.ð ×Ñó/ó ð/ð ó0ó ð0ð ×Ñó1ó ð1ô	ôð óó ðð —j’jÐ!7Ó8€Oàó3ó ð3ô<+ô"	÷
r    r   )rÔ   Ú
__future__r   r´   r¥   rÙ   Útypingr   r   r   r   Údocx.oxml.nsr   r	   Údocx.oxml.parserr
   Údocx.oxml.xmlchemyr   r   Ú
lxml.etreer   Úetree_Elementr   r   r    r   Ú<module>rã      s4   ðÙ Få "ã Û 	ß 5Ó 5ç $Ý &ß 9æÝ4ôY˜õ Yr    