
    hi                       d Z ddlmZ ddlmZmZmZ ddlmZ ddl	m
Z ddl	mZ ddlmZmZ ddlmZmZmZmZmZ dd	lmZmZmZmZ erdd
lmZ ej        ej        ej         dZ!	 	 	 d.d/dZ"	 	 	 d0d1dZ#d2dZ$ G d d e          Z% G d! d"e          Z& G d# d$e          Z' G d% d&e          Z( G d' d(e          Z) ed)e%            ed*e&            ed+e)            ed,e'            ed-e(           dS )3zMOPC-local oxml module to handle OPC-local concerns like relationship parsing.    )annotations)TYPE_CHECKINGCallablecast)etree)	NAMESPACE)RELATIONSHIP_TARGET_MODE)	parse_xmlregister_element_cls)ST_ContentTypeST_ExtensionST_TargetMode	XsdAnyUriXsdId)BaseOxmlElementOptionalAttributeRequiredAttribute
ZeroOrMore)PackURI)ctprrutf-8FNelementr   encodingstrpretty_printbool
standalonebool | Nonereturnbytesc                2    t          j        | |||          S N)r   r   r   r   tostring)r   r   r   r   s       e/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/pptx/opc/oxml.pyoxml_to_encoded_bytesr(   $   s&     >(*       elm
str | Nonec                2    t          j        | |||          S r$   r%   )r*   r   r   r   s       r'   oxml_tostringr-   /   s     >#|Xbccccr)   part_elmc                0    t          j        | dd          S )zProduce XML-file bytes for `part_elm`, suitable for writing directly to a `.xml` file.

    Includes XML-declaration header.
    UTF-8Tr   r   r%   )r.   s    r'   serialize_part_xmlr2   8   s    
 >(WFFFFr)   c                  X    e Zd ZU dZ ede          Zded<    ede          Z	ded<   dS )
CT_Defaultzw`<Default>` element.

    Specifies the default content type to be applied to a part with the specified extension.
    	Extensionr   	extensionContentTypecontentTypeN)
__name__
__module____qualname____doc__r   r   r6   __annotations__r   r8    r)   r'   r4   r4   @   sz          
 '&\ I     )(~ K      r)   r4   c                  X    e Zd ZU dZ ede          Zded<    ede          Z	ded<   dS )CT_Overridezp`<Override>` element.

    Specifies the content type to be applied for a part with the specified partname.
    PartNamer   partNamer7   r8   N)
r9   r:   r;   r<   r   r   rB   r=   r   r8   r>   r)   r'   r@   r@   N   sz          
 &%I H     )(~ K      r)   r@   c                      e Zd ZU dZ ede          Zded<    ede          Z	ded<    ede          Z
ded<    ed	eej        
          Zded<   eej        fdd            ZdS )CT_Relationshipzd`<Relationship>` element.

    Represents a single relationship from a source to a target part.
    Idr   rIdTypereltypeTarget
target_ref
TargetMode)default
targetModetarget_moder!   c                    t          t          t          dt          d          d                    }||_        ||_        ||_        ||_        |S )zdReturn a new `<Relationship>` element.

        `target_ref` is either a partname or a URI.
        z<Relationship xmlns="r   "/>)r   rD   r
   nsmaprF   rH   rJ   rM   )clsrF   rH   rJ   rN   relationships         r'   newzCT_Relationship.newk   sR     OY7_uUY{7_7_7_-`-`aa&","-r)   N)
rF   r   rH   r   rJ   r   rN   r   r!   rD   )r9   r:   r;   r<   r   r   rF   r=   r   rH   rJ   r   r   RTMINTERNALrM   classmethodrT   r>   r)   r'   rD   rD   \   s          
 ! u--C----$$VY77G7777'') J     ('mS\  J     IL    [  r)   rD   c                  z    e Zd ZU dZded<   ded<    ed          Z	 dddZedd            Z	e
dd            ZdS )CT_Relationshipsz<`<Relationships>` element, the root element in a .rels file.zlist[CT_Relationship]relationship_lstz,Callable[[CT_Relationship], CT_Relationship]_insert_relationshippr:RelationshipFrF   r   rH   targetis_externalr   r!   rD   c                    |rt           j        nt           j        }t                              ||||          }|                     |          S )zFAdd a child `<Relationship>` element with attributes set as specified.)rU   EXTERNALrV   rD   rT   r[   )selfrF   rH   r]   r^   rN   rS   s          r'   add_relzCT_Relationships.add_rel   sC     '2Cclls|&**3MM((666r)   c                d    t          t          t          dt          d          d                    S )z'Return a new `<Relationships>` element.z<Relationships xmlns="r   rP   )r   rY   r
   rQ   rR   s    r'   rT   zCT_Relationships.new   s-     $i0Yt0Y0Y0Y&Z&Z[[[r)   r"   c                &    t          | dd          S )zReturn XML bytes, with XML-declaration, for this `<Relationships>` element.

        Suitable for saving in a .rels stream, not pretty printed and with an XML declaration at
        the top.
        r0   Tr1   )r(   )ra   s    r'   xml_file_byteszCT_Relationships.xml_file_bytes   s     %TGMMMMr)   N)F)
rF   r   rH   r   r]   r   r^   r   r!   rD   )r!   rY   )r!   r"   )r9   r:   r;   r<   r=   r   rS   rb   rW   rT   propertyrf   r>   r)   r'   rY   rY   {   s         FF++++FFFF:/00L HM7 7 7 7 7 \ \ \ [\ N N N XN N Nr)   rY   c                      e Zd ZU dZded<   ded<   ded<   ded	<    ed
          Z ed          ZddZddZ	e
dd            ZdS )CT_Typeszl`<Types>` element.

    The container element for Default and Override elements in [Content_Types].xml.
    zlist[CT_Default]default_lstzlist[CT_Override]override_lstzCallable[..., CT_Default]_add_defaultzCallable[..., CT_Override]_add_override
ct:Defaultct:Overrideextr   content_typer!   r4   c                0    |                      ||          S )zHAdd a child `<Default>` element with attributes set to parameter values.)r6   r8   )rl   )ra   rp   rq   s      r'   add_defaultzCT_Types.add_default   s      3L IIIr)   partnamer   r@   c                0    |                      ||          S )zIAdd a child `<Override>` element with attributes set to parameter values.)rB   r8   )rm   )ra   rt   rq   s      r'   add_overridezCT_Types.add_override   s    !!8!NNNr)   c                d    t          t          t          dt          d          d                    S )zReturn a new `<Types>` element.z<Types xmlns="r   rP   )r   ri   r
   rQ   rd   s    r'   rT   zCT_Types.new   s,     Hi(It(I(I(IJJKKKr)   N)rp   r   rq   r   r!   r4   )rt   r   rq   r   r!   r@   )r!   ri   )r9   r:   r;   r<   r=   r   rL   overriders   rv   rW   rT   r>   r)   r'   ri   ri      s          
 "!!!####++++----j&&Gz-((HJ J J JO O O O L L L [L L Lr)   ri   rn   ro   zct:Typesr\   zpr:Relationships)r   FN)
r   r   r   r   r   r   r   r    r!   r"   )NFN)r*   r   r   r+   r   r   r   r    )r.   r   r!   r"   )*r<   
__future__r   typingr   r   r   lxmlr   pptx.opc.constantsr   NSr	   rU   	pptx.oxmlr
   r   pptx.oxml.simpletypesr   r   r   r   r   pptx.oxml.xmlchemyr   r   r   r   pptx.opc.packurir   OPC_CONTENT_TYPESOPC_RELATIONSHIPSOFC_RELATIONSHIPSrQ   r(   r-   r2   r4   r@   rD   rY   ri   r>   r)   r'   <module>r      s   S S " " " " " " 0 0 0 0 0 0 0 0 0 0       . . . . . . > > > > > > 5 5 5 5 5 5 5 5                          )(((((( 


			 	 "	      "	d d d d dG G G G           /       o   >N N N N N N N N>L L L L L L L L:  \: . . .  ]K 0 0 0  Z * * *  & 8 8 8  ')9 : : : : :r)   