
    Og              
          d dl mZ d dlmZmZmZmZ d dlZd dlm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZmZ erd dlmZ d dlmZmZ d d	lmZ  ej:                  d
      Zdddddddddd	Z G d d      Z y)    )annotations)TYPE_CHECKINGIterableSequenceOptionalN)DXFStructureErrorDXF12   )
TableViewportTableTextstyleTable
LayerTableLinetypeTable
AppIDTable	ViewTableBlockRecordTableDimStyleTableUCSTable)Drawing)	DXFEntityDXFTagStorage)AbstractTagWriterezdxflayers	linetypesappids	dimstylesstylesucsviews	viewportsblock_records)	LAYERLTYPEAPPIDDIMSTYLESTYLEUCSVIEWVPORTBLOCK_RECORDc                  P    e Zd Zd	d
dZddZddZ	 	 	 	 	 	 ddZddZddZd Z	y)TablesSectionNc                n   |J || _         t               | _        t               | _        t               | _        t               | _        t               | _
        t               | _        t               | _        t               | _        t#               | _        || j'                  |       | j)                          y N)docr   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!   r   r"   _load_reset_not_loaded_tables)selfr0   entitiess      Z/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/sections/tables.py__init__zTablesSection.__init__)   s     l& l&$&:[
&-/JJx %%'    c           	         | j                   | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  f	S r/   )	r   r   r   r   r   r   r    r!   r"   )r3   s    r5   tableszTablesSection.tables;   sM    KKNNKKNNKKHHJJNN

 
	
r7   c                F   |d   }|j                         dk7  s|j                  d   dk7  rt        d      |d= g }d }|D ]  }|j                         dk(  rPt        |      r+t        j                  d| d       | j                  ||       |j                  j                  }|g}f|j                         d	k(  r| j                  ||       g }|j                  |        t        |      r7t        j                  d
j                  |             | j                  ||       y y )Nr   SECTIONr
   )   TABLESz+Critical structure error in TABLES section.TABLEz'Ignore missing ENDTAB entity in table "z".ENDTABz+Ignore missing ENDTAB entity in table "{}".)dxftype
base_classr   lenloggerdebug_load_tabledxfnameappendformat)r3   r4   section_headtable_records
table_nameentitys         r5   r1   zTablesSection._loadH   s/   (0!Y.,2I2I3
3 $=  QK)+
 	-F~~7*}%LLA*RP $$Z?#ZZ__
!'!X-  ];  $$V,!	-$ }LL=DDZP Z7 r7   c                    t        | t        |         }t        |t              r&|j	                  | j
                  t        |             yy)z
        Load table from tags.

        Args:
            name: table name e.g. VPORT
            table_entities: iterable of table records

        N)getattr
TABLENAMES
isinstancer   loadr0   iter)r3   rG   table_entitiestables       r5   rE   zTablesSection._load_tablem   s;     j./eU#JJtxxn!56 $r7   c                   | j                   j                  }| j                         D ]V  }|j                   |j                         }|j	                  | j                   |       |j                  |j                         X y r/   )r0   entitydbr9   next_handleresetaddhead)r3   rW   rU   handles       r5   r2   z&TablesSection._reset_not_loaded_tables|   s`    88$$[[] 	)Eyy !--/DHHf-UZZ(		)r7   c                Z   |j                  d       |j                  }| j                  j                  |       | j                  j                  |       | j
                  j                  |       | j                  j                  |       | j                  j                  |       | j                  j                  |       | j                  j                  |       | j                  j                  |       |t        kD  r| j                  j                  |       |j                  dd       y )Nz  0
SECTION
  2
TABLES
r   ENDSEC)	write_str
dxfversionr!   
export_dxfr   r   r   r    r   r   r   r	   r"   
write_tag2)r3   	tagwriterversions      r5   ra   zTablesSection.export_dxf   s    9:&&!!),!!),y)y)

i(I&y)!!),U?)))4Q)r7   c                    | j                         D ]7  }| j                  j                  j                         }|j	                  |       9 y r/   )r9   r0   rW   rX   
set_handle)r3   rU   r\   s      r5   create_table_handlesz"TablesSection.create_table_handles   s?     [[] 	%EXX&&224FV$	%r7   r/   )r0   r   r4   zOptional[list[DXFEntity]])returnzSequence[Table])r4   zlist[DXFEntity]rh   None)rG   strrT   zIterable[DXFEntity]rh   ri   )rh   ri   )rc   r   rh   ri   )
__name__
__module____qualname__r6   r9   r1   rE   r2   ra   rg    r7   r5   r-   r-   (   s>    ($
#8J77)<7	7)*%r7   r-   )!
__future__r   typingr   r   r   r   loggingezdxf.lldxf.constr   r	   rU   r   r   r   r   r   r   r   r   r   r   ezdxf.documentr   ezdxf.entitiesr   r   ezdxf.lldxf.tagwriterr   	getLoggerrC   rP   r-   rn   r7   r5   <module>rw      su    # > >  6   &77			7	# #

p% p%r7   