
    	h                        S r SSKJr  SSKrSSKJr  SSKJrJ	r	  SSK
Jr  SSKJrJrJrJrJrJrJrJrJr  SSK
Jr  \" 5       r\R/                  S	S
5        \R/                  SS5        \R/                  SS5        \R/                  SS5        \R/                  SS5         " S S\5      r " S S\5      r\" SS5      \" SS	5      /r\" S\-   \5      \" S\-   \5      \" SS5      \" SS5      /r " S S\5      rg) z
File manifest
    )	MimeTypesN)Serialisable)StringSequence)
fromstring)	ARC_CONTENT_TYPES	ARC_THEME	ARC_STYLE
THEME_TYPESTYLES_TYPECONTYPES_NSACTIVEXCTRLVBA)tostringzapplication/xmlz.xmlz8application/vnd.openxmlformats-package.relationships+xmlz.relsz$application/vnd.ms-office.vbaProjectz.binz8application/vnd.openxmlformats-officedocument.vmlDrawingz.vmlzimage/x-emfz.emfc                   :    \ rS rSrSr\" 5       r\" 5       rS rSr	g)FileExtension"   Defaultc                     Xl         X l        g N)	ExtensionContentType)selfr   r   s      M/var/www/html/env/lib/python3.13/site-packages/openpyxl/packaging/manifest.py__init__FileExtension.__init__)   s    "&    )r   r   N)
__name__
__module____qualname____firstlineno__tagnamer   r   r   r   __static_attributes__ r   r   r   r   "   s    GI(K'r   r   c                   :    \ rS rSrS r\" 5       r\" 5       rS rSr	g)Override.   c                     Xl         X l        g r   PartNamer   )r   r+   r   s      r   r   Override.__init__5   s     &r   )r   r+   N)
r   r    r!   r"   r#   r   r+   r   r   r$   r%   r   r   r'   r'   .   s    GxH(K'r   r'   relsxml/z/docProps/core.xmlz:application/vnd.openxmlformats-package.core-properties+xmlz/docProps/app.xmlzEapplication/vnd.openxmlformats-officedocument.extended-properties+xmlc                      ^  \ rS rSrSr\" \SS9r\" \SS9rSr	Sr
  SS jr\S 5       r\S	 5       rU 4S
 jrS rS rS rS rS rS rS rSrU =r$ )ManifestG   TypesT)expected_typeuniquez[Content_Types].xml)r   r'   c                 P    U(       d  [         nXl        U(       d  [        nX l        g r   )DEFAULT_TYPESr   DEFAULT_OVERRIDEr'   )r   r   r'   s      r   r   Manifest.__init__Q   s     #G'H r   c                 X    U R                    Vs/ s H  oR                  PM     sn$ s  snf r   )r'   r+   )r   parts     r   	filenamesManifest.filenames]   s     *.--8-$-888s   'c                    U R                    Vs1 s H/  n[        R                  R                  UR                  5      S   iM1     nn[        U5       Vs/ s H&  o3(       d  M  USS [        R                  S   U   4PM(     sn$ s  snf s  snf )zD
Map content types to file extensions
Skip parts without extensions
   NT)r'   ospathsplitextr+   sorted	mimetypes	types_map)r   r;   extsexts       r   
extensionsManifest.extensionsb   sy     AEN  /3NEKD\Y\cUX9QR)--d3C89\YY OYs   6B
B	"B	c                 (  > U R                    Vs/ s H  oR                  PM     nnU R                   H2  u  p4X2;  d  M  [        X45      nU R                   R	                  U5        M4     [
        TU ]  5       nUR                  S[        5        U$ s  snf )zB
Custom serialisation method to allow setting a default namespace
xmlns)	r   r   rI   r   appendsuperto_treesetr   )r   tdefaultsrH   mimetree	__class__s         r   rO   Manifest.to_treel   sw     *.6AKK6IC"$S/##D) ) w +& 7s   Bc                 N    U R                    H  nUR                  U:X  d  M    g   g)z6
Check whether a particular content type is contained
TNr'   r   r   content_typerQ   s      r   __contains__Manifest.__contains__z   s!     A}}, r   c                 X     [        U R                  U5      5      $ ! [         a     gf = f)z
Find specific content-type
N)nextfindallStopIteration)r   rZ   s     r   findManifest.find   s-    	\233 		s    
))c              #   ^   #    U R                    H  nUR                  U:X  d  M  Uv   M     g7f)z.
Find all elements of a specific content-type
NrX   rY   s      r   r_   Manifest.findall   s&      A}}, s   -	-c                 v    [        UR                  UR                  S9nU R                   R                  U5        g)zB
Add content object to the package manifest
# needs a contract...
r*   N)r'   rB   	mime_typerM   )r   objcts      r   rM   Manifest.append   s*    
 sxxS]]CR r   c                     U R                  U5        U R                  U5        U R                  UR                  5       S9  UR	                  U R
                  [        U R                  5       5      5        g)z
Write manifest to the archive
)r<   N)rM   
_write_vba_register_mimetypesnamelistwritestrrB   r   rO   )r   archiveworkbooks      r   _writeManifest._write   sU     	H!  7+;+;+= >HT\\^$<=r   c                     U Hn  n[         R                  R                  U5      S   nU(       d  M.  [        R                  S   U   n[        USS U5      nU R                  R                  U5        Mp     g)zD
Make sure that the mime type for all file extensions is registered
r?   Tr@   N)rA   rB   rC   rE   rF   r   r   rM   )r   r<   fnrH   rS   fes         r   rl   Manifest._register_mimetypes   sf     B''""2&r*C&&t,S1Ds12w-BLL# r   c                 |   UR                   (       a  [        UR                   R                  [        5      5      n[        R                  U5      nU R                  nUR                   HQ  nUR                  [        [        [        4;  a  M$  UR                  U;  d  M6  U R                  R                  U5        MS     gg)z9
Add content types from cached workbook when keeping VBA
N)vba_archiver   readr   r1   	from_treer<   r'   r+   r   r   r   rM   )r   rp   nodemfr<   overrides         r   rk   Manifest._write_vba   s     h22778IJKD##D)BIKK$$WdC,@@$$I5MM((2	 (	  r   )r%   r%   )r   r    r!   r"   r#   r   r   r   r'   rB   __elements__r   propertyr<   rI   rO   r[   ra   r_   rM   rq   rl   rk   r$   __classcell__)rU   s   @r   r1   r1   G   s    G]4@Ght<H D*L 	! 9 9 Z Z!>
$3 3r   r1   )__doc__rE   r   os.pathrA   !openpyxl.descriptors.serialisabler   openpyxl.descriptorsr   r   openpyxl.xml.functionsr   openpyxl.xml.constantsr   r	   r
   r   r   r   r   r   r   r   add_typer   r'   r7   r8   r1   r%   r   r   <module>r      s      : 1 -
 
 
 , K	 	  $f - 	  Mw W 	  96 B 	  Mv V 	  =& )	'L 	'	'| 	' &TU%*+ S9_k*S9_j)!#_` "ij	 {3| {3r   