Ë
    £èh+  ã                  óª   — d dl mZ d dlmZmZmZ d dlmZmZ d dl	m
Z
  G d„ d«      Z G d„ de«      Z	 d	 	 	 	 	 	 	 dd
„Zddd„ZdZd	d	d	ef	 	 	 dd„Zy)é    )Úannotations)ÚBinaryIOÚOptionalÚSequence)Úis_dxf_fileÚDXFStructureError)ÚPathc                  ó   — e Zd Zdd„Zdd„Zy)Ú	TagWriterc                ó   — || _         y ©N)Úfp)Úselfr   s     ú1lib/python3.12/site-packages/ezdxf/tools/strip.pyÚ__init__zTagWriter.__init__
   s	   € Øˆ�ó    c                óp   — | j                   j                  |«       | j                   j                  |«       y r   )r   Úwrite)r   Úraw_code_strÚraw_value_strs      r   r   zTagWriter.write   s"   € Ø�‰�‰�lÔ#Ø�‰�‰�mÕ$r   N©r   r   ©r   Úbytesr   r   )Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r   	   s   „ óô%r   r   c                  ó,   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zˆ xZS )ÚThumbnailRemoverc                ój   •— t         ‰| �  |«       d| _        d| _        d | _        d | _        d| _        y )NF)Úsuperr   Ú_start_sectionÚ
_skip_tagsÚ_section_codeÚ_section_valueÚremoved_thumbnail_image)r   r   Ú	__class__s     €r   r   zThumbnailRemover.__init__   s7   ø€ Ü‰Ñ˜ÔØ#ˆÔØˆŒØ.2ˆÔØ/3ˆÔØ',ˆÕ$r   c                ó¤  •— |j                  «       }|j                  «       }| j                  rDd| _        |dk(  r|dk(  rd| _        d| _        n$t        ‰| �  | j                  | j                  «       |dk(  r=|dk(  rd| _        d| _        || _        || _        y |dk(  r| j                  }d| _        |ry | j                  st        ‰| �  ||«       y y )NFó   2s   THUMBNAILIMAGETó   0s   SECTIONs   ENDSEC)Ústripr"   r#   r&   r!   r   r$   r%   )r   r   r   ÚcodeÚvalueÚskipr'   s         €r   r   zThumbnailRemover.write   sÓ   ø€ Ø×!Ñ!Ó#ˆØ×#Ñ#Ó%ˆØ×ÒØ"'ˆDÔØ�tŠ| Ð):Ò :Ø"&�”Ø/3�Õ,ô ‘‘˜d×0Ñ0°$×2EÑ2EÔFà�4Š<Ø˜
Ò"Ø&*�Ô#Ø"'�”à%1�Ô"Ø&3�Ô#ØØ˜)Ò#Ø—‘�Ø"'�”ÙØà�ŠÜ‰G‰M˜,¨Õ6ð r   r   r   )r   r   r   r   r   Ú__classcell__)r'   s   @r   r   r      s   ø„ õ-÷7ñ 7r   r   Fc           	     óV  — t        |«      }d}d}	 	 | j                  «       }|dk(  r|S 	 t        |«      }	 | j                  «       }
|
dk(  rt        d| j                  › d
�«      ‚|dz  }||vr|j                  ||
«       n<|r5|
j                  «       }|j                  dd¬«      }t        d|› d|› d�«       |dz  }Œ¬# t        $ r d}Y Œ¨w xY w# t        $ r@ |j                  «       j                  dd¬«      }	t        d| j                  › d|	› d	|› �«      ‚w xY w# t        $ r d}
Y Œáw xY w)Né   r   r   Úutf8Úignore)ÚencodingÚerrorsúCANCELED: "z" - found invalid group code "z
" at line z" - premature end of fileé   zremoving tag: (z, "z"))ÚsetÚreadlineÚEOFErrorÚintÚ
ValueErrorr+   Údecoder   Únamer   Úprint)ÚinfileÚ	tagwriterÚcodesÚverboseÚsearch_codesÚline_numberÚremoved_tagsr   r,   Úcode_strr   r-   Ú_values                r   Ú
strip_tagsrI   9   sv  € ô �u“:€LØ€KØ€LØ
ð	Ø!Ÿ?™?Ó,ˆLð ˜3ÒØÐð	Ü�|Ó$ˆDð	 Ø"ŸO™OÓ-ˆMð ˜CÒÜ#Ø˜fŸk™k˜]Ð*CÐDóð ð 	�qÑˆØ�|Ñ#Ø�O‰O˜L¨-Õ8áØ%×+Ñ+Ó-�ØŸ™¨v¸h˜ÓG�Ü˜¨ v¨S°°¸Ð;Ô<Ø˜AÑˆLðC øô ò 	ØŠLð	ûô ò 	Ø#×)Ñ)Ó+×2Ñ2¸FÈ8Ð2ÓTˆHÜ#Ø˜fŸk™k˜]ð +Ø'˜j¨
°;°-ðAóð ð	ûô ò 	 ØŠMð	 ús.   ’B= ªC ¶D Â=CÃ
CÃA	DÄD(Ä'D(c                óz  — |j                  d«      }|j                  d¬«       t        |«      }|j                  «       r:|r&t	        d|j
                  › d|j
                  › d�«       	 |j                  |«       |r&t	        d| j
                  › d|j
                  › d�«       	 | j                  |«       |s-|rt	        d	|j
                  › d�«       |j                  d¬«       y# t        $ r!}t	        dt        |«      › �«       Y d }~yd }~ww xY w# t        $ r!}t	        dt        |«      › �«       Y d }~yd }~ww xY w)
Nz.bakT©Ú
missing_okz
renaming "z" to "Ú"ú	IOError: Fzdeleting backup file ")	Úwith_suffixÚunlinkr	   Úexistsr?   r>   ÚrenameÚIOErrorÚstr)ÚsourceÚtargetÚbackuprC   Úbackup_fileÚ_targetÚes          r   Úsafe_renamer[   f   s%  € Ø×$Ñ$ VÓ,€KØ×Ñ $ÐÔ'Ü�6‹l€GØ‡~�~ÔÙÜ�J˜wŸ|™|˜n¨F°;×3CÑ3CÐ2DÀAÐFÔGð	Ø�N‰N˜;Ô'ñ
 Ü�
˜6Ÿ;™;˜- v¨f¯k©k¨]¸!Ð<Ô=ðØ�‰�fÔñ
 ÙÜÐ*¨;×+;Ñ+;Ð*<¸AÐ>Ô?Ø×Ñ dÐÔ+Øøô! ò 	Ü�Iœc !›f˜XÐ&Ô'Üûð	ûô ò Ü�	œ#˜a›&˜Ð"Ô#Üûðús0   Á(C# Â"D Ã#	DÃ,DÄDÄ	D:ÄD5Ä5D:)iç  c           	     ó¨  ‡‡— ˆˆfd„}‰rt        d| › d�«       	 t        | «      st        d| › d�«       y 	 t	        | «      }|j                  d«      Šd}‰rt        d	‰j                  › d�«       t        ‰d
«      5 }	t        |d«      5 }
|rt        |	«      }nt        |	«      }	 t        |
||‰¬«      }d d d «       d d d «       |sjd}|r'j                  rt        d|j                  › d�«       d}dkD  r*|dk(  rdnd}t        d|j                  › d|› d|› d�«       d}|rt        ‰||‰«        |«        y # t        $ r!}t        dt        |«      › �«       Y d }~y d }~ww xY w# t        $ r#}t        dt        |«      › �«       d}Y d }~ŒØd }~wt        $ r }t        t        |«      «       d}Y d }~Œÿd }~ww xY w# 1 sw Y   �Œ	xY w# 1 sw Y   �ŒxY w)Nc                 ó‚   •— ‰ j                  «       r.‰rt        d‰ j                  › d�«       ‰ j                  d¬«       y y )Nzdeleting temp file: "rM   TrK   )rQ   r?   r>   rP   )Útmp_filerC   s   €€r   Úremove_tmp_filezstrip.<locals>.remove_tmp_fileŒ   s9   ø€ Ø�?‰?ÔÙÜÐ-¨h¯m©m¨_¸AÐ>Ô?Ø�O‰O tˆOÕ,ð r   z
Processing file: "rM   r6   z7" is not a DXF file, binary DXF files are not supportedrN   z
.ezdxf.tmpFzmake a temporary copy: "ÚwbÚrb)rB   rC   Tz"" - removed THUMBNAILIMAGE sectionr   r1   ÚtagÚtagsz" - Ú z removed)r?   r   rS   rT   r	   rO   r>   Úopenr   r   rI   r   r&   r[   )ÚfilenamerW   Ú	thumbnailrC   rB   r_   rZ   Úsource_fileÚerrorr   r@   rA   rF   rR   rc   r^   s      `           @r   r+   r+   …   sÖ  ù€ õ-ñ ÜÐ$ X J¨aÐ0Ô1ð	Ü˜8Ô$ÜØ˜h˜Zð ($ð %ôð ð %ô �x“.€KØ×&Ñ& |Ó4€HØ€EáÜÐ(¨¯©¨°qÐ9Ô:Ü	ˆh˜Ô	 ¤T¨+°tÔ%<ÀÙÜ(¨Ó,‰Iä! "›ˆIð	Ü% f¨i¸uÈgÔVˆL÷ &=×	ñ ØˆÙ˜×:Ò:Ü�A�k×&Ñ&Ð'Ð'IÐJÔKØˆFà˜!ÒØ(¨AÒ-‘5°6ˆDÜ�A�k×&Ñ&Ð' t¨L¨>¸¸4¸&ÀÐIÔJØˆFáÜ˜ +¨v°wÔ?áÕøôK ò Ü�	œ#˜a›&˜Ð"Ô#Üûðûô  ò 	Ü�Iœc !›f˜XÐ&Ô'Ø�EûÜ ò 	Ü”#�a“&ŒMØ�Eûð	ú÷ &=Ñ%<ú×	Ñ	úsq   ›D7 Á<GÂ	F:Â$E$Â3GÄ7	E!Å EÅE!Å$	F7Å-FÆF:ÆF7ÆF2Æ-F:Æ2F7Æ7F:Æ:G	Æ?GÇGN)F)r@   r   rA   r   rB   úSequence[int]Úreturnr;   )TF)rU   r	   rV   r	   rk   Úbool)rf   rT   rB   rj   )Ú
__future__r   Útypingr   r   r   Úezdxf.lldxf.validatorr   r   Úpathlibr	   r   r   rI   r[   ÚDEFAULT_CODESr+   r   r   r   Ú<module>rr      s�   ðõ #ß /Ñ /ß @Ý ÷%ñ %ô$7�yô $7ðV ð	*Øð*àð*ð ð*ð
 	ó*ôZð8 €ð
 ØØØ(ð;Øð;ð
 ô;r   