
    h                        S SK Jr  S SKJrJrJrJrJr  S SKrS SK	J
r
  S SKJrJr  SrSr " S S	5      r\
  S       SS
 jj5       rg)    )annotations)BinaryIOcastTextIOOptionalIteratorN)contextmanager)is_dxf_streamdxf_infos   
   
c                  b    \ rS rSrSSS jjrSSS jjrSS jrSS jrSS jrSS jr	SS	 jr
S
rg)	ZipReader   c                    [         R                  " U5      (       d  [        SU S35      eXl        S U l        S U l        S U l        SU l        X l        SU l	        g )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      H/var/www/html/env/lib/python3.13/site-packages/ezdxf/tools/zipmanager.py__init__ZipReader.__init__   s[    !!"233A.//FGHH 06:,0,0 "    Nc                j  ^  SU 4S jjn[         R                  " T R                  5      T l        Ub  UOT R	                  5       T l        U" 5       T l        [        [        [        T 5      5      (       d  [        ST R
                   S35      eU" 5       T l        T R                  5         U" 5       T l        g )Nc                 j   > [        [        T R                  R                  T R                  5      5      $ N)r   r   r   openr   r   s   r   open_dxf_file%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&   ZipReader.open   s    	M #??4+@+@A ( --/ 	
 & T&$/00Ad0011EFGG%%r"   c                `    U R                  5       n[        U5      S:  a  US   $ [        S5      e)Nr   zNo DXF files found.)get_dxf_file_nameslenr   )r   dxf_file_namess     r   r,   !ZipReader.get_first_dxf_file_name/   s4    002~"!!$$/00r"   c                    U R                   c   eU R                   R                  5        Vs/ s H+  nUR                  5       R                  S5      (       d  M)  UPM-     sn$ s  snf )Nz.dxf)r   namelistlowerendswith)r   names     r   r0   ZipReader.get_dxf_file_names6   s^    +++ ((113
3zz|$$V, 3
 	
 
s   (A!A!c                    [        [        [        U 5      5      nUR                  S:  a  UR                  OSU l        UR                  U l        g )NAC1021zutf-8)r   r   r   versionr   r   )r   infos     r   r-   ZipReader.get_dxf_info>   s6    VT*+)-)@g,,r"   c                    U R                   c   eU R                   R                  5       R                  [        [        5      n[        XR                  U R                  5      $ r%   )r   readlinereplaceCRLFLFstrr   r   )r   	next_lines     r   r@   ZipReader.readlineD   sF    }}(((MM**,44T2>	9mmT[[99r"   c                V    U R                   c   eU R                   R                  5         g r%   )r   closer'   s    r   rH   ZipReader.closeI   s&    +++ r"   )r   r   r   r   r   r   r   )surrogateescape)r   rD   r%   )r   Optional[str]r*   None)r*   rD   )r*   z	list[str])r*   rL   )__name__
__module____qualname____firstlineno__r    r&   r,   r0   r-   r@   rH   __static_attributes__ r"   r   r   r      s%    	#(*1
':
!r"   r   c              #  h   #    [        XS9nUR                  U5        Uv   UR                  5         g 7f)N)r   )r   r&   rH   )zipfilenamefilenamer   
zip_readers       r   ctxZipReaderrW   N   s/      ;6JOOH
s   02)NrJ   )rT   rD   rU   rK   r   rD   r*   zIterator[ZipReader])
__future__r   typingr   r   r   r   r   r   
contextlibr	   ezdxf.lldxf.validatorr
   r   rB   rC   r   rW   rR   r"   r   <module>r\      sn    # = =  % 9
=! =!@  ##  	 r"   