ó
    ˆ*£h±  ã                  ó¾   • S r SSKJr  SSKJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJrJr  SS	KJr  SS
KJr   " S S\
5      r " S S\5      r " S S\5      rg)zOverall .pptx package.é    )Úannotations)ÚIOÚIterator)ÚRELATIONSHIP_TYPE)Ú
OpcPackage©ÚPackURI)ÚCorePropertiesPart)ÚImageÚ	ImagePart)Ú	MediaPart)Úlazypropertyc                  ó|   • \ rS rSrSr\SS j5       rSS jrS rSS jr	S r
\S 5       r\S	 5       r\S
 5       rSrg)ÚPackageé   zAn overall .pptx package.c                óÒ   •  U R                  [        R                  5      $ ! [         a;    [        R
                  " U 5      nU R                  U[        R                  5        Us $ f = f)z˜Instance of |CoreProperties| holding read/write Dublin Core doc properties.

Creates a default core properties part if one is not present (not common).
)Úpart_related_byÚRTÚCORE_PROPERTIESÚKeyErrorr
   ÚdefaultÚ	relate_to)ÚselfÚ
core_propss     ÚI/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pptx/package.pyÚcore_propertiesÚPackage.core_properties   sW   € ð	Ø×'Ñ'¬×(:Ñ(:Ó;Ð;øÜó 	Ü+×3Ò3°DÓ9ˆJØ�N‰N˜:¤r×'9Ñ'9Ô:ØÒð	ús   ‚! ¡AA&Á%A&c                ó8   • U R                   R                  U5      $ )z¤
Return an |ImagePart| object containing the image in *image_file*. If
the image part already exists in this package, it is reused,
otherwise a new one is created.
)Ú_image_partsÚget_or_add_image_part)r   Ú
image_files     r   r    ÚPackage.get_or_add_image_part    s   € ð × Ñ ×6Ñ6°zÓBÐBó    c                ó8   • U R                   R                  U5      $ )zÃReturn a |MediaPart| object containing the media in *media*.

If a media part for this media bytestream ("file") is already present
in this package, it is reused, otherwise a new one is created.
)Ú_media_partsÚget_or_add_media_part)r   Úmedias     r   r&   ÚPackage.get_or_add_media_part(   s   € ð × Ñ ×6Ñ6°uÓ=Ð=r#   c                ó<   ^ • U 4S jnU" 5       n[        SX14-  5      $ )z¸Return a |PackURI| instance representing the next available image partname.

Partname uses the next available sequence number. *ext* is used as the extention on the
returned partname.
c                 ó`  >• [        TR                  5        V s/ s HT  n U R                  R                  S5      (       d  M%  U R                  R                  c  M>  U R                  R                  PMV     sn 5      n[        U5       H  u  p#US-   nXC:  d  M  Us  $    [        U5      S-   $ s  sn f )Nz/ppt/media/imageé   ©ÚsortedÚ
iter_partsÚpartnameÚ
startswithÚidxÚ	enumerateÚlen)ÚpartÚ
image_idxsÚiÚ	image_idxr1   r   s        €r   Úfirst_available_image_idxÚ>Package.next_image_partname.<locals>.first_available_image_idx7   s    ø€ Üð !%§¡Ô 1óâ 1˜àŸ™×0Ñ0Ð1C×Dó &ð !ŸM™M×-Ñ-ó	 &�D—M‘M×%Ô%Ù 1ñó	ˆJô !*¨*Ö 5‘�Ø˜!‘e�Ø•?Ø’Jñ !6ô �z“? QÑ&Ð&ùòs   ™$B+ÁB+ÁB+z/ppt/media/image%d.%sr   )r   Úextr8   r1   s   `   r   Únext_image_partnameÚPackage.next_image_partname0   s%   ø€ õ	'ñ" (Ó)ˆÜÐ.°#°Ñ;Ó<Ð<r#   c                ó<   ^ • U 4S jnU" 5       n[        SX14-  5      $ )zÖReturn |PackURI| instance for next available media partname.

Partname is first available, starting at sequence number 1. Empty
sequence numbers are reused. *ext* is used as the extension on the
returned partname.
c                 ó.  >• [        TR                  5        V s/ s H;  n U R                  R                  S5      (       d  M%  U R                  R                  PM=     sn 5      n[        U5       H  u  p#US-   nXC:  d  M  Us  $    [        U5      S-   $ s  sn f )Nz/ppt/media/mediar+   r,   )r4   Ú
media_idxsr6   Ú	media_idxr1   r   s        €r   Úfirst_available_media_idxÚ>Package.next_media_partname.<locals>.first_available_media_idxS   sŒ   ø€ Üð !%§¡Ô 1óâ 1˜Ø—}‘}×/Ñ/Ð0B×Có &�D—M‘M×%Ô%Ù 1ñóˆJô !*¨*Ö 5‘�Ø˜!‘e�Ø•?Ø’Jñ !6ô �z“? QÑ&Ð&ùòs   ™$BÁBz/ppt/media/media%d.%sr   )r   r:   rA   r1   s   `   r   Únext_media_partnameÚPackage.next_media_partnameK   s%   ø€ õ	'ñ (Ó)ˆÜÐ.°#°Ñ;Ó<Ð<r#   c                ó   • U R                   $ )zE
Reference to the |Presentation| instance contained in this package.
)Úmain_document_part©r   s    r   Úpresentation_partÚPackage.presentation_partd   s   € ð
 ×&Ñ&Ð&r#   c                ó   • [        U 5      $ )zK
|_ImageParts| object providing access to the image parts in this
package.
)Ú_ImagePartsrG   s    r   r   ÚPackage._image_partsk   s   € ô ˜4Ó Ð r#   c                ó   • [        U 5      $ )z~Return |_MediaParts| object for this package.

The media parts object provides access to all the media parts in this
package.
)Ú_MediaPartsrG   s    r   r%   ÚPackage._media_partss   s   € ô ˜4Ó Ð r#   © N)Úreturnr
   )r!   ústr | IO[bytes])r:   ÚstrrQ   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    r&   r;   rC   ÚpropertyrH   r   r%   Ú__static_attributes__rP   r#   r   r   r      sh   † Ù#àó
ó ð
ôCò>ô=ò6=ð2 ñ'ó ð'ð ñ!ó ð!ð ñ!ó ó!r#   r   c                  óJ   ^ • \ rS rSrSrU 4S jrSS jrS	S jrS
S jrSr	U =r
$ )rK   é}   z0Provides access to the image parts in a package.c                ó6   >• [         [        U ]  5         Xl        g ©N)ÚsuperrK   Ú__init__Ú_package©r   ÚpackageÚ	__class__s     €r   r`   Ú_ImageParts.__init__€   ó   ø€ ÜŒk˜4Ñ)Ô+Ø�r#   c              #  ó  #   • / nU R                   R                  5        H^  nUR                  (       a  M  UR                  [        R
                  :w  a  M6  UR                  nX1;   a  MI  UR                  U5        Uv •  M`     g7f)z?Generate a reference to each |ImagePart| object in the package.N)ra   Ú	iter_relsÚis_externalÚreltyper   ÚIMAGEÚtarget_partÚappend)r   Úimage_partsÚrelÚ
image_parts       r   Ú__iter__Ú_ImageParts.__iter__„   sd   é € àˆØ—=‘=×*Ñ*Ö,ˆCØ��ÙØ�{‰{œbŸh™hÓ&ÙØŸ™ˆJØÓ(ÙØ×Ñ˜zÔ*ØÔò -ùs   ‚B Bc                ó¸   • [         R                  " U5      nU R                  UR                  5      nU(       a  U$ [        R
                  " U R                  U5      $ )a  Return |ImagePart| object containing the image in `image_file`.

`image_file` can be either a path to an image file or a file-like object
containing an image. If an image part containing this same image already exists,
that instance is returned, otherwise a new image part is created.
)r   Ú	from_fileÚ_find_by_sha1Úsha1r   Únewra   )r   r!   Úimagerp   s       r   r    Ú!_ImageParts.get_or_add_image_part’   sB   € ô —’ 
Ó+ˆØ×'Ñ'¨¯
©
Ó3ˆ
Þ'ˆzÐP¬Y¯]ª]¸4¿=¹=È%Ó-PÐPr#   c                ód   • U  H*  n[        US5      (       d  M  UR                  U:X  d  M(  Us  $    g)z¼
Return an |ImagePart| object belonging to this package or |None| if
no matching image part is found. The image part is identified by the
SHA1 hash digest of the image binary it contains.
rv   N)Úhasattrrv   )r   rv   rp   s      r   ru   Ú_ImageParts._find_by_sha1�   s5   € ó ˆJä˜: v×.Ñ.ÙØ�‰ $Õ&Ø!Ò!ñ ð r#   ©ra   )rQ   zIterator[ImagePart])r!   rR   rQ   r   )rv   rS   rQ   zImagePart | None)rT   rU   rV   rW   rX   r`   rq   r    ru   rZ   Ú__classcell__©rd   s   @r   rK   rK   }   s    ø† Ù:õ ôô	Q÷ò r#   rK   c                  ó>   ^ • \ rS rSrSrU 4S jrS rS rS rSr	U =r
$ )rN   é¬   z„Provides access to the media parts in a package.

Supports iteration and :meth:`get()` using the media object SHA1 hash as
its key.
c                ó6   >• [         [        U ]  5         Xl        g r^   )r_   rN   r`   ra   rb   s     €r   r`   Ú_MediaParts.__init__³   rf   r#   c              #  ó(  #   • / nU R                   R                  5        Hn  nUR                  (       a  M  UR                  [        R
                  [        R                  4;  a  MF  UR                  nX1;   a  MY  UR                  U5        Uv •  Mp     g7f)z?Generate a reference to each |MediaPart| object in the package.N)	ra   rh   ri   rj   r   ÚMEDIAÚVIDEOrl   rm   )r   Úmedia_partsro   Ú
media_parts       r   rq   Ú_MediaParts.__iter__·   so   é € ð
 ˆØ—=‘=×*Ñ*Ö,ˆCØ��ÙØ�{‰{¤2§8¡8¬R¯X©XÐ"6Ó6ÙØŸ™ˆJØÓ(ÙØ×Ñ˜zÔ*ØÔò -ùs   ‚BBc                ó„   • U R                  UR                  5      nUc!  [        R                  " U R                  U5      nU$ )zÇReturn a |MediaPart| object containing the media in *media*.

If this package already contains a media part for the same
bytestream, that instance is returned, otherwise a new media part is
created.
)ru   rv   r   rw   ra   )r   r'   rˆ   s      r   r&   Ú!_MediaParts.get_or_add_media_partÈ   s8   € ð ×'Ñ'¨¯
©
Ó3ˆ
ØÑÜ"Ÿš t§}¡}°eÓ<ˆJØÐr#   c                ó>   • U  H  nUR                   U:X  d  M  Us  $    g)zÍReturn |MediaPart| object having *sha1* hash or None if not found.

All media parts belonging to this package are considered. A media
part is identified by the SHA1 hash digest of its bytestream
("file").
N)rv   )r   rv   rˆ   s      r   ru   Ú_MediaParts._find_by_sha1Ô   s%   € ó ˆJØ�‰ $Õ&Ø!Ò!ñ ð r#   r}   )rT   rU   rV   rW   rX   r`   rq   r&   ru   rZ   r~   r   s   @r   rN   rN   ¬   s!   ø† ñõ òò"
÷
ð 
r#   rN   N)rX   Ú
__future__r   Útypingr   r   Úpptx.opc.constantsr   r   Úpptx.opc.packager   Úpptx.opc.packurir	   Úpptx.parts.corepropsr
   Úpptx.parts.imager   r   Úpptx.parts.mediar   Ú	pptx.utilr   r   ÚobjectrK   rN   rP   r#   r   Ú<module>r˜      sK   ðÙ å "ç å 6Ý 'Ý $Ý 3ß -Ý &Ý "ôj!ˆjô j!ôZ,�&ô ,ô^2�&õ 2r#   