
    'j                        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dS )    )annotations)BinaryIOcastTextIOOptionalIteratorN)contextmanager)is_dxf_streamdxf_infos   
   
c                  J    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	dS )	ZipReadersurrogateescapezip_archive_namestrc                    t          j        |          st          d| d          || _        d | _        d | _        d | _        d| _        || _        d| _	        d S )N'z' is not a zip archive.cp1252AC1009)
zipfile
is_zipfileIOErrorr   zip_archivedxf_file_namedxf_fileencodingerrors
dxfversion)selfr   r   s      P/DATA/AppData/hermes/venv/lib/python3.11/site-packages/ezdxf/tools/zipmanager.py__init__zZipReader.__init__   sj    !"233 	IG.GGGHHH 06:,0,0 "    Nr   Optional[str]returnNonec                    d fd}t          j         j                   _        ||n                                  _         |             _        t          t          t                               st          d j         d           |             _                                           |             _        d S )Nr$   r   c                 h    t          t           j                             j                            S N)r   r   r   openr   r   s   r    open_dxf_filez%ZipReader.open.<locals>.open_dxf_file   s'    $"2"7"78J"K"KLLLr"   r   z' is not a DXF file.)r$   r   )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 	M 	M 	M 	M 	M #?4+@AA ( M--// 	
 & T&$//00 	HFd0FFFGGG%%r"   c                ~    |                                  }t          |          dk    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/   s@    0022~""!!$$/000r"   	list[str]c                Z    | j         J d | j                                         D             S )Nc                `    g | ]+}|                                                     d           )|,S )z.dxf)lowerendswith).0names     r    
<listcomp>z0ZipReader.get_dxf_file_names.<locals>.<listcomp>8   sD     
 
 
zz||$$V,,

 
 
r"   )r   namelistr*   s    r    r0   zZipReader.get_dxf_file_names6   sA    +++
 
(1133
 
 
 	
r"   c                    t          t          t          |                     }|j        dk     r|j        nd| _        |j        | _        d S )NAC1021zutf-8)r   r   r   versionr   r   )r   infos     r    r.   zZipReader.get_dxf_info>   s?    VT**++)-)@)@g,r"   c                    | j         J | j                                                             t          t                    }t          || j        | j                  S r(   )r   readlinereplaceCRLFLFr   r   r   )r   	next_lines     r    rA   zZipReader.readlineD   sI    }(((M**,,44T2>>	9dmT[999r"   c                J    | j         J | j                                          d S r(   )r   closer*   s    r    rG   zZipReader.closeI   s,    +++     r"   )r   )r   r   r(   )r   r#   r$   r%   )r$   r   )r$   r3   )r$   r%   )
__name__
__module____qualname__r!   r)   r-   r0   r.   rA   rG    r"   r    r   r      s        	# 	# 	# 	# 	#( ( ( ( (*1 1 1 1
 
 
 
' ' ' ': : : :
! ! ! ! ! !r"   r   r   zipfilenamer   filenamer#   r   r$   Iterator[ZipReader]c              #     K   t          | |          }|                    |           |V  |                                 d S )N)r   )r   r)   rG   )rL   rM   r   
zip_readers       r    ctxZipReaderrQ   N   sP       ;v666JOOH
r"   )Nr   )rL   r   rM   r#   r   r   r$   rN   )
__future__r   typingr   r   r   r   r   r   
contextlibr	   ezdxf.lldxf.validatorr
   r   rC   rD   r   rQ   rK   r"   r    <module>rV      s    # " " " " " = = = = = = = = = = = = = =  % % % % % % 9 9 9 9 9 9 9 9
=! =! =! =! =! =! =! =!@  ##      r"   