
    Og                        d dl mZ d dlmZmZmZmZmZ d dlZd dl	m
Z
 d dlmZmZ dZdZ G d d	      Ze
	 	 d	 	 	 	 	 	 	 dd
       Zy)    )annotations)BinaryIOcastTextIOOptionalIteratorN)contextmanager)is_dxf_streamdxf_infos   
   
c                  H    e Zd Zd	d
dZdddZddZddZddZddZddZ	y)	ZipReaderc                    t        j                  |      st        d| d      || _        d | _        d | _        d | _        d| _        || _        d| _	        y )N'z' is not a zip archive.cp1252AC1009)
zipfile
is_zipfileIOErrorzip_archive_namezip_archivedxf_file_namedxf_fileencodingerrors
dxfversion)selfr   r   s      [/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/tools/zipmanager.py__init__zZipReader.__init__   s\    !!"23A.//FGHH 06:,0,0 "    Nc                X    d fd}t        j                   j                         _        ||n j	                          _         |        _        t        t        t                     st        d j
                   d       |        _         j                           |        _        y )Nc                 j    t        t         j                  j                   j                              S N)r   r   r   openr   r   s   r   open_dxf_filez%ZipReader.open.<locals>.open_dxf_file   s'    $"2"2"7"78J8J"KLLr    r   z' is not a DXF file.)returnr   )r   ZipFiler   r   get_first_dxf_file_namer   r   r
   r   r   r   get_dxf_info)r   r   r&   s   `  r   r$   zZipReader.open   s    	M #??4+@+@A ( --/ 	
 & T&$/0Ad0011EFGG%%r    c                ^    | j                         }t        |      dkD  r|d   S t        d      )Nr   zNo DXF files found.)get_dxf_file_nameslenr   )r   dxf_file_namess     r   r)   z!ZipReader.get_first_dxf_file_name/   s4    002~"!!$$/00r    c                    | j                   J | j                   j                         D cg c]#  }|j                         j                  d      r|% c}S c c}w )Nz.dxf)r   namelistlowerendswith)r   names     r   r,   zZipReader.get_dxf_file_names6   sY    +++ ((113
zz|$$V, 
 	
 
s   (Ac                    t        t        t        |             }|j                  dk  r|j                  nd| _        |j                  | _        y )NAC1021zutf-8)r   r   r   versionr   r   )r   infos     r   r*   zZipReader.get_dxf_info>   s6    VT*+)-)@g,,r    c                    | j                   J | j                   j                         j                  t        t              }t        || j                  | j                        S r#   )r   readlinereplaceCRLFLFstrr   r   )r   	next_lines     r   r9   zZipReader.readlineD   sH    }}(((MM**,44T2>	9dmmT[[99r    c                T    | j                   J | j                   j                          y r#   )r   closer%   s    r   r@   zZipReader.closeI   s&    +++ r    )surrogateescape)r   r=   r#   )r   Optional[str]r'   None)r'   r=   )r'   z	list[str])r'   rC   )
__name__
__module____qualname__r   r$   r)   r,   r*   r9   r@    r    r   r   r      s%    	#(*1
':
!r    r   c              #  p   K   t        | |      }|j                  |       | |j                          y w)N)r   )r   r$   r@   )zipfilenamefilenamer   
zip_readers       r   ctxZipReaderrL   N   s2      ;v6JOOH
s   46)NrA   )rI   r=   rJ   rB   r   r=   r'   zIterator[ZipReader])
__future__r   typingr   r   r   r   r   r   
contextlibr	   ezdxf.lldxf.validatorr
   r   r;   r<   r   rL   rG   r    r   <module>rQ      sn    # = =  % 9
=! =!@  ##  	 r    