
    Ogk                        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     V/var/www/html/public_html/myphp/venv/lib/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$2E2EF4<
"&*#"'%1"&3#)#"'GM,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	 "OO-M C#fkk]*CD  	q|#OOL-8%++-vhGvS;<ALC   	L	  	#))+22F82TH#fkk] +'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$'6lG~~Jw||nF;3C3C2DAFG	NN;'
 
6;;-vfkk]!<=f
 *;+;+;*<A>?d+!  	Ic!fX&'	  	#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    ??-hmm_A>?OOtO, 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   - $XJa01	8$hZ ($ %  % x.K&&|4HE(q9:	h	 T+t%< (,I!"I	%fiugVL  ::Ak&&''IJKF!(A-56DAk&&'tL>4&IJF+vw?K  	#a&"#   	Ic!fX&'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    # / / @ % %$7y $7V 	*** *
 	*Z8 
 (;;
 ;r   