
    hk                        S SK Jr  S SKJrJrJr  S SKJrJr  S SK	J
r
   " S S5      r " S S\5      r S       SS
 jjrSSS jjrSrS	S	S	\4   SS jjrg)    )annotations)BinaryIOOptionalSequence)is_dxf_fileDXFStructureError)Pathc                  (    \ rS rSrSS jrSS jrSrg)	TagWriter	   c                    Xl         g Nfp)selfr   s     C/var/www/html/env/lib/python3.13/site-packages/ezdxf/tools/strip.py__init__TagWriter.__init__
   s        c                p    U R                   R                  U5        U R                   R                  U5        g r   )r   write)r   raw_code_strraw_value_strs      r   r   TagWriter.write   s"    l#m$r   r   Nr   r   r   bytesr   r   )__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r   	   s    %r   r   c                  <   ^  \ rS rSrSU 4S jjrSU 4S jjrSrU =r$ )ThumbnailRemover   c                j   > [         TU ]  U5        SU l        SU l        S U l        S U l        SU l        g )NF)superr   _start_section
_skip_tags_section_code_section_valueremoved_thumbnail_image)r   r   	__class__s     r   r   ThumbnailRemover.__init__   s7    #.2/3',$r   c                  > UR                  5       nUR                  5       nU R                  (       aF  SU l        US:X  a  US:X  a  SU l        SU l        O$[        TU ]  U R                  U R                  5        US:X  aB  US:X  a  SU l        SU l        Xl        X l        g US:X  a  U R                  nSU l        U(       a  g U R                  (       d  [        TU ]  X5        g g )NF   2s   THUMBNAILIMAGET   0s   SECTIONs   ENDSEC)stripr)   r*   r-   r(   r   r+   r,   )r   r   r   codevalueskipr.   s         r   r   ThumbnailRemover.write   s    !!###%"'Dt|): :"&/3, d00$2E2EF4<
"&*#"'%1"&3#)#"'GM,6 r   )r+   r,   r*   r)   r-   r   r   )r   r   r    r!   r   r   r"   __classcell__)r.   s   @r   r%   r%      s    -7 7r   r%   Fc           	     `   [        U5      nSnSn  U R                  5       nUS:X  a  U$  [        U5      n U R                  5       n
U
S:X  a  [        SU R                   S
35      eUS-  nX;  a  UR                  Xz5        O>U(       a2  U
R                  5       nUR                  SSS9n[        SU SU S35        US-  nM  ! [         a    Sn Nf = f! [         a=    UR                  5       R                  SSS9n	[        SU R                   SU	 S	U 35      ef = f! [         a    Sn
 Nf = f)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
ValueErrorr3   decoder   namer   print)infile	tagwritercodesverbosesearch_codesline_numberremoved_tagsr   r4   code_strr   r5   _values                r   
strip_tagsrR   9   sr    u:LKL
	!??,L 3	|$D	 "OO-M C#fkk]*CD  	q#OOL8%++-vhGvS;<ALC   	L	  	#))+22F82TH#fkk] +'j
;-A 	  	 M	 s.   C C D CCADD-,D-c                   UR                  S5      nUR                  SS9  [        U5      nUR                  5       (       a?  U(       a&  [	        SUR
                   SUR
                   S35         UR                  U5        U(       a&  [	        SU R
                   SUR
                   S35         U R                  U5        U(       d/  U(       a  [	        S	UR
                   S35        UR                  SS9  g! [         a!  n[	        S[        U5       35         S nAgS nAff = f! [         a!  n[	        S[        U5       35         S nAgS nAff = f)
Nz.bakT
missing_okz
renaming "z" to ""	IOError: Fzdeleting backup file ")	with_suffixunlinkr	   existsrH   rG   renameIOErrorstr)sourcetargetbackuprL   backup_file_targetes          r   safe_renamerd   f   s(   $$V,K$'6lG~~Jw||nF;3C3C2DAFG	NN;'
 
6;;-vfkk]!<=f
 *;+;+;*<A>?d+!  	Ic!fX&'	  	#a&"#s0   /C6 .D$ 6
D! DD!$
E.E

E)i  c           	       ^^ UU4S jnT(       a  [        SU  S35         [        U 5      (       d  [        SU  S35        g  [	        U 5      nUR                  S5      mSnT(       a  [        S	TR                   S35        [        TS
5       n	[        US5       n
U(       a  [        U	5      nO[        U	5      n [        XUTS9nS S S 5        S S S 5        U(       dz  SnU(       a,  WR                  (       a  [        SUR                   S35        SnWS:  a+  US:X  a  SOSn[        SUR                   SU SU S35        SnU(       a  [        TXqT5        U" 5         g ! [         a!  n[        S[        U5       35         S nAg S nAff = f! [         a#  n[        S[        U5       35        Sn S nANS nAf[         a!  n[        [        U5      5        Sn S nAGNS nAff = f! , (       d  f       GN'= f! , (       d  f       GN1= f)Nc                    > T R                  5       (       a0  T(       a  [        ST R                   S35        T R                  SS9  g g )Nzdeleting temp file: "rV   TrT   )rZ   rH   rG   rY   )tmp_filerL   s   r   remove_tmp_filestrip.<locals>.remove_tmp_file   s<    ??-hmm_A>?OOtO, r   z
Processing file: "rV   r?   z7" is not a DXF file, binary DXF files are not supportedrW   z
.ezdxf.tmpFzmake a temporary copy: "wbrb)rK   rL   Tz"" - removed THUMBNAILIMAGE sectionr   r:   tagtagsz" -  z removed)rH   r   r\   r]   r	   rX   rG   openr%   r   rR   r   r-   rd   )filenamer`   	thumbnailrL   rK   rh   rc   source_fileerrorr   rI   rJ   rO   r[   rm   rg   s      `           @r   r3   r3      s   - $XJa01	8$$hZ ($ %  % x.K&&|4HE(q9:	h	T+t%<(,I!"I	%fugVL &=	 ::Ak&&''IJKF!(A-56DAk&&'tL>4&IJF+w?K  	#a&"#   	Ic!fX&'E  	#a&ME	 &=%<		sq   E G6G$9FG6
F'FF
G!F3.G$3G! GG$G!!G$$
G3	.G66
HN)F)rI   r   rJ   r   rK   Sequence[int]returnrD   )TF)r^   r	   r_   r	   ru   bool)rp   r]   rK   rt   )
__future__r   typingr   r   r   ezdxf.lldxf.validatorr   r   pathlibr	   r   r%   rR   rd   DEFAULT_CODESr3   r#   r   r   <module>r|      s    # / / @ % %$7y $7V 	*** *
 	*Z8 
 (;;
 ;r   