+
    i                        R t ^ RIHt ^ RIHtHtHtHt ^ RIH	t	 ]'       d   ^ RI
Ht  ! R R]]R3,          4      t ! R R4      tR	# )
zRelationship-related objects.)annotations)TYPE_CHECKINGAnyDictcast)CT_RelationshipsPartc                     a  ] tR t^tRtR V 3R lltRR R lltR R ltR R	 ltR
 R lt	]
R 4       t]
R R l4       tRR R lltR R lt]
R R l4       tRtV ;t# )RelationshipszGCollection object for |_Relationship| instances, having list semantics.c                   V ^8  d   QhRR/# )   baseURIstr )formats   "S/Users/agent/.openclaw/workspace/.venv/lib/python3.14/site-packages/docx/opc/rel.py__annotate__Relationships.__annotate__   s     7 7 7    c                	F   < \         \        V `  4        Wn        / V n        R # N)superr   __init___baseURI_target_parts_by_rId)selfr   	__class__s   &&r   r   Relationships.__init__   s    mT+-46!r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   reltyper   target
Part | strrIdis_externalboolreturnz'_Relationship'r   )r   s   "r   r   r      s4      $.58GK	r   c                h    \        W1W P                  V4      pWPV&   V'       g   W P                  V&   V# )z.Return a newly added |_Relationship| instance.)_Relationshipr   r   )r   r    r!   r#   r$   rels   &&&&& r   add_relationshipRelationships.add_relationship   s3     C&--MS	-3%%c*
r   c               $    V ^8  d   QhRRRRRR/# )r   r    r   target_partr	   r&   r(   r   )r   s   "r   r   r      s!      # D ] r   c                l    V P                  W4      pVf   V P                  pV P                  WV4      pV# )zdReturn relationship of `reltype` to `target_part`, newly added if not already
present in collection.)_get_matching	_next_rIdr*   )r   r    r-   r)   r#   s   &&&  r   
get_or_addRelationships.get_or_add   s9       6;..C''cBC
r   c               $    V ^8  d   QhRRRRRR/# )r   r    r   
target_refr&   r   )r   s   "r   r   r   (   s!      # 3 3 r   c                    V P                  WRR7      pVf!   V P                  pV P                  WVRR7      pVP                  # )zsReturn rId of external relationship of `reltype` to `target_ref`, newly added
if not already present in collection.T)r$   )r/   r0   r*   r#   )r   r    r4   r)   r#   s   &&&  r   get_or_add_ext_rel Relationships.get_or_add_ext_rel(   sG       $ G;..C''Sd'SCwwr   c                    V ^8  d   QhRRRR/# )r   r    r   r&   r	   r   )r   s   "r   r   r   1   s        r   c                <    V P                  V4      pVP                  # )zReturn target part of rel with matching `reltype`, raising |KeyError| if not
found and |ValueError| if more than one matching relationship is found.)_get_rel_of_typer-   )r   r    r)   s   && r   part_with_reltypeRelationships.part_with_reltype1   s     ##G,r   c                    V P                   # )zWDict mapping rIds to target parts for all the internal relationships in the
collection.)r   r   s   &r   related_partsRelationships.related_parts7   s     (((r   c                   V ^8  d   QhRR/# r   r&   r   r   )r   s   "r   r   r   >   s      S r   c                    \         P                  ! 4       pV P                  4        F?  pVP                  VP                  VP
                  VP                  VP                  4       KA  	  VP                  # )zgSerialize this relationship collection into XML suitable for storage as a
.rels file in an OPC package.)	r   newvaluesadd_relr#   r    r4   r$   xml)r   rels_elmr)   s   &  r   rG   Relationships.xml=   sP     $'');;=CSWWckk3>>3??S !||r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r    r   r!   r"   r$   r%   r&   z_Relationship | Noner   )r   s   "r   r   r   F   s,      $.=A	r   c                f    R R lpV P                  4        F  pV! WQW#4      '       g   K  Vu # 	  R# )zmReturn relationship of matching `reltype`, `target`, and `is_external` from
collection, or None if not found.c               (    V ^8  d   QhRRRRRRRR/# )	r   r)   r(   r    r   r!   r"   r$   r%   r   )r   s   "r   r   1Relationships._get_matching.<locals>.__annotate__L   s)     	( 	( 	( 	(j 	(W[ 	(r   c                    V P                   V8w  d   R # V P                  V8w  d   R # V P                  '       d   V P                  MV P                  pWB8H  # F)r    r$   r4   r-   )r)   r    r!   r$   
rel_targets   &&&& r   matches,Relationships._get_matching.<locals>.matchesL   s@    {{g%+-+.???J''r   N)rE   )r   r    r!   r$   rQ   r)   s   &&&&  r   r/   Relationships._get_matchingF   s0    	( ;;=CsV99
 ! r   c                   V ^8  d   QhRR/# )r   r    r   r   )r   s   "r   r   r   Y   s       r   c                   V P                  4        Uu. uF  q"P                  V8X  g   K  VNK  	  pp\        V4      ^ 8X  d   Rp\        WA,          4      h\        V4      ^8  d   Rp\	        WA,          4      hV^ ,          # u upi )zReturn single relationship of type `reltype` from the collection.

Raises |KeyError| if no matching relationship is found. Raises |ValueError| if
more than one matching relationship is found.
z*no relationship of type '%s' in collectionz1multiple relationships of type '%s' in collection)rE   r    lenKeyError
ValueError)r   r    r)   matchingtmpls   &&   r   r:   Relationships._get_rel_of_typeY   su     $(;;=K=CKK74JCC=Kx=A?D4>**x=1FDT^,,{ Ls
   BBc                   V ^8  d   QhRR/# rB   r   )r   s   "r   r   r   i   s     % %3 %r   c                r    \        ^\        V 4      ^,           4       F  pRV,          pW 9  g   K  Vu # 	  R# )zNext available rId in collection, starting from 'rId1' and making use of any
gaps in numbering, e.g. 'rId2' for rIds ['rId1', 'rId3'].zrId%dN)rangerV   )r   nrId_candidates   &  r   r0   Relationships._next_rIdh   s2     q#d)a-(A#aKM($$ )r   )r   r   rO   )__name__
__module____qualname____firstlineno____doc__r   r*   r1   r6   r;   propertyr?   rG   r/   r:   r0   __static_attributes____classcell__r   s   @r   r   r      sj    Q7 7
 ) )
  & % %r   r   r(   c                     a  ] tR t^rtRtRR V 3R lllt]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       tRtV ;t# )r(   z&Value object for relationship to part.c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r   r#   r   r    r!   r"   r   externalr%   r   )r   s   "r   r   _Relationship.__annotate__u   s4     + ++!$+.8+CF+RV+r   c                	|   < \         \        V `  4        Wn        W n        W0n        W@n        \        V4      V n        R # r   )	r   r(   r   _rId_reltype_targetr   r%   _is_external)r   r#   r    r!   r   rm   r   s   &&&&&&r   r   _Relationship.__init__u   s2     	mT+-	 Nr   c                   V ^8  d   QhRR/# )r   r&   r%   r   )r   s   "r   r   rn      s     ! !T !r   c                	    V P                   # r   )rs   r>   s   &r   r$   _Relationship.is_external   s       r   c                   V ^8  d   QhRR/# rB   r   )r   s   "r   r   rn      s       r   c                	    V P                   # r   )rq   r>   s   &r   r    _Relationship.reltype   s    }}r   c                   V ^8  d   QhRR/# rB   r   )r   s   "r   r   rn      s      S r   c                	    V P                   # r   )rp   r>   s   &r   r#   _Relationship.rId   s    yyr   c                   V ^8  d   QhRR/# )r   r&   r	   r   )r   s   "r   r   rn      s     * *T *r   c                	h    V P                   '       d   \        R 4      h\        RV P                  4      # )zOtarget_part property on _Relationship is undefined when target mode is Externalr	   )rs   rX   r   rr   r>   s   &r   r-   _Relationship.target_part   s1    a  FDLL))r   c                   V ^8  d   QhRR/# rB   r   )r   s   "r   r   rn      s     ? ?C ?r   c                	    V P                   '       d   \        \        V P                  4      # \        R V P                  4      pVP                  P                  V P                  4      # r   )rs   r   r   rr   partnamerelative_refr   )r   r!   s   & r   r4   _Relationship.target_ref   sH    T\\**&$,,/F??//>>r   )r   rs   rp   rq   rr   rO   )rb   rc   rd   re   rf   r   rg   r$   r    r#   r-   r4   rh   ri   rj   s   @r   r(   r(   r   st    0+ + ! !     * * ? ?r   N)rf   
__future__r   typingr   r   r   r   docx.opc.oxmlr   docx.opc.partr	   r   r   r(   r   r   r   <module>r      s=    # " 1 1 *"b%Do-. b%J'? '?r   