
    BPc6                         d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
 G d de
j                  Zedk    r e                                             dS dS )z
An extension to export multiple svg files from a single svg file containing layers.

Each defs is duplicated for each svg outputted.
    )unicode_literalsNc                   *    e Zd ZdZd Zd Zd Zd ZdS )	TarLayersz Entry point to our layers exportc                     t          j        | j                  }|                     |          D ],\  }}|                                                    |           -|S )zGReturns the current document as a new empty document with the same defs)copydeepcopydocumentlayers	getparentremove)selfnewdocnamelayers       ,/usr/share/inkscape/extensions/tar_layers.pymake_templatezTarLayers.make_template(   sX    t}--![[00 	, 	,MT5OO$$U++++    c              #      K   |                                                                 D ].}t          |t          j                  r|j        r|j        |fV  /d S )N)getrootiterchildren
isinstanceinkexLayerlabel)r   r	   nodes      r   r
   zTarLayers.layers/   sh      $$&&3355 	) 	)D$,, ) )z4((((	) 	)r   c                 T   t          j                    }|                    |           t          j        |dz             }t          j        t          j                              |_	        |
                                |_        |                    d           t          ||          S )Nz.svg)r   r   )tarinfofileobj)ioBytesIOwritetarfileTarInfocalendartimegmtimegmtimemtimetellsizeseekdict)r   r   docstringinfos        r   io_documentzTarLayers.io_document4   s}    		&D6M222_T[]]33
KKMM	AD&1111r   c           	         t          j        |d          }t          j        dk    rWddl}	 |                    t          j                                        t          j	                   n# t          j        $ r Y nw xY w|                                 }d}|                     | j                  D ]\  }}t          j        |          }|dk    r)|                                                    ||           n'|                                                    |           |} |j        di |                     ||           dS )zSave the tar file outputzw|)r   modewin32r   N )r"   opensysplatformmsvcrtsetmodestdoutfilenoosO_BINARYr   UnsupportedOperationr   r
   r	   r   r   r   replaceappendaddfiler0   )	r   streamtarr8   templatepreviousr   _layerr   s	            r   savezTarLayers.save=   sO   l6555 <7""MMMsz0022BK@@@@*    %%''"kk$-88 	< 	<NT6M&))E4  ""**8U;;;;  ""))%000HCK;;$**4::;;;;	< 	<s   <A) )A;:A;N)__name__
__module____qualname____doc__r   r
   r0   rG   r4   r   r   r   r   %   sV        **  ) ) )
2 2 2< < < < <r   r   __main__)rK   
__future__r   r<   r6   r   r"   r   r$   r&   r   OutputExtensionr   rH   runr4   r   r   <module>rP      s   (  ( ' ' ' ' ' 				 



   				   0< 0< 0< 0< 0<% 0< 0< 0<f zIKKOO r   